Talk:Oni 2 (Angel Studios): Difference between revisions

From OniGalore
Jump to navigation Jump to search
(laying out my questions and the "launch arguments")
 
m (+cat)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==General engine discussion==
==Password field==
I don't have much experience reverse-engineering game data, but I have a lot of questions from looking through the strings in the game data files in the Oni 2 ISO, namely, BANKS.DAT, RB.DAT, SCPS_123.45 (the binary), and STREAMS.DAT:
What is that Password field for, on the game's Options screen? It's only four characters, and rather than allowing you to select A-Z for each space, each slot has a different selection of <strike>numbers</strike>characters that is allowed:
*What does "RB" mean? It occurs everywhere, including in the name of file RB.DAT.
# A-F and S
*There seem to be launch arguments available for the game, but how does one supply them to the game? Or, if they are console commands, how does one access the console? Or, if they are config settings, where does one place a .cfg? To find them, search the binary for the string "BASLUS". I have listed them under "Launch arguments" below. They seem like they would be tremendously useful.
# A-F and W
*There are references to a Chrysalis entity in RB.DAT. An entity is any kind of object, animate or inanimate.
# A-F and Y
*There are references to Konoko skateboarding. There's even a skateboard texture. What is that about? See "Entity/KonokoBoarder" in RB.DAT. KonokoGym sounds interesting too.
# Only A-F
*Among the other entities, which are often abbreviated to three characters, is "shn". Could that be who I think it is? I'd like to draw attention to the resources named "win32_shn_LODs[0-3].mod". Could these be rips from Oni? I'm suspicious that they ripped other resources from Oni, like the Lariat and back-roll throw animations. Of course, they could simply have asked the animator to reproduce those by hand. But they also seem to have the model/textures for the original Konoko in the dev build (she appears in Brawler). If "shn" is indeed Shinatama, she doesn't appear in Brawler, which seemingly spawns all characters (or maybe it doesn't!).
*It looks from the arguments below like they were thinking of co-op multiplayer, specifically local two-player mode. If we could utilize those arguments, perhaps we could activate it.
*What is that Password field for, on the game's Options screen? It's only four characters, and rather than allowing you to select A-Z for each space, the first slot only allows A-F and S, the second slot only allows A-F and W, the third slot allows A-F and Y, and the fourth slot allows only A-F. The A-F seems to be a reference to hexadecimal. The fact that the only characters allowed for the first three slots besides A-F are S, W, and Y implies to me that at least one password is "SWY_", where the '_' is something between A and F. However, I tried all those permutations and didn't see any result in the game. I cannot find a string anywhere in the game data that is of the form "SWY", nor "YWS" if written little-endian like Oni's tag codes. So I may be arriving at a wrong conclusion based on the allowed characters.
*It's possible that the Password is where cheat codes are entered. There's a single reference to cheats in the engine, a portion that reads "End Cheat Flying Mode [...] Start Cheat Flying Mode". Perhaps the mystery "SWY_" code above is the flying cheat?
*Does anyone want to try to extract the game data? I don't have the time, and since this is an unfinished PS2 game there's not a lot of modding potential in terms of bringing data into the game. But there's certainly some resources that I would like to see (for examples, take a look at any part of RB.DAT, or the beginning of STREAM.DAT at the names of the .stm files). Some interesting-sounding resources do not seem to appear in the dev build. Since AGE is a known engine, it's possible that someone has already attempted to reverse-engineer the format of these resources for the sake of another game. AGE eventually became an engine that powers games released for PC too, including the GTA series, which would have made it a matter of great interest for modders, but it's likely that the data formats have changed considerably since the time that Oni 2 was under development.
*The level scripts might be interesting to read. See the references to the "ScrOni" system in the binary, and the names of the .onc files in RB.DAT. Unfortunately it seems that the scripts are not encoded in plain-text.
--[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 04:28, 12 December 2016 (CET)


==Launch arguments==
The "A-F" business seems to be a reference to hexadecimal. The fact that the only characters outside of that range which are allowed for the first three slots are S, W, and Y implies to me that at least one password is "SWY_", where the '_' is something from A to F. However, I tried all those permutations and didn't see any result in the game. I cannot find a string anywhere in the game data that is of the form "SWY", nor "YWS" if written little-endian like Oni's tag codes. So I may be arriving at a wrong conclusion based on the allowed characters. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 04:28, 12 December 2016 (CET)
Found in the binary after the string "BASLUS", I'm not sure if these are launch args, console commands, or .cfg-type settings. My first thought was "launch args", since commands like "noui" would seem to need to be passed to the game at launch-time in order to take effect.
:Wrong conclusion indeed. The allowed sets of characters do ''not'' imply that any of the six combinations SWY[ABCDEF] must work as a valid password. The can very well be passwords like SAAA, BWBB, CCYC or even DDDD. So ultimately you need to test the whole bunch [ABCDEFS][ABCDEFW][ABCDEFY][ABCDEF]. The good news is that it's "only" 2058 combinations. --[[User:Geyser|geyser]] ([[User talk:Geyser|talk]]) 22:24, 25 March 2020 (CET)
::Yes, I see your point. It would be faster to just disassemble the binary to figure out what password(s) are allowed. I believe I attempted this in 2016, since I had just learned MIPS32 asm, but I apparently wasn't good enough to figure out what the password function wanted by reading the asm. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 22:44, 25 March 2020 (CET)


;ui
 
:use the frontend
Perhaps the Password field is where cheat codes are entered? There's a single reference to cheats in the engine, a portion that reads "End Cheat Flying Mode [...] Start Cheat Flying Mode". Perhaps the mystery "SWY_" code above is the flying cheat? --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 04:28, 12 December 2016 (CET)
;noui
 
:Bypass the frontend and go to game.
[[Category:Oni history]]
;devui
:use the dev frontend
;fullui
:use the full frontend
;nogame
:Never go into the game shell.  Useful for testing frontend.
;mission
:The "mission" to load.
;level
:The level to load
;players
:The number of human players in game.
;vsplit
:Want vertical split for 2 player mode instead of default horizontal split.
;sharevp
:All players share the same viewport.
;diff
:Difficulty to use.
;musicvol
:Music volume to use for playback.
;sfxvol
:Sound FX volume to use for playback.
;voicevol
:Voiceover volume to use for playback.
;nocutscenes
:Disables in-game cinematics.
;noattacking
:Prevents AI from attacking player.<br />
'''???''' (no text where there should be an argument; perhaps it's just a number? also, is this not the same as the "level" code above?)
:Specify which level to load.
;testloadsave
:Use test save file to run game.
;oldcam
:Start with the old camera system in the game.
;noactorreload
:Don't reload actor XML files when doing the "quick" restart.
;defaultcampack
:Use the default camera package instead of the campack in the layout directory.
;nocamcollision
:No camera collision.
;norumble
:No pad rumbling.
;noparticles
:No particle effects.
;unbreakable
:Player is unbreakable
;polar
:Use polar camera by default.
;nohud
:Don't draw the HUD.
;recompile
:Recompile all used scripts.
;noai
:Disables NPC movement/actions.
;notemplates
:Don't preload the actor templates.
;nopausemenu
:Do not show the pause menu when you press start, just freeze the frame.
;playerNN
:(Where NN is 0->Max players) Sets the specified player's name.
;modelNN
:(Where NN is 0->Max players) Sets the specified player's model to use.
;controlcfgNN
:(Where NN is 0->Max players) Sets the specified player's control configuration.
;controlmapNN
:(Where NN is 0->Max players) Sets the specified player's control mapping (i.e. Player 1 is using controller in port 3).

Latest revision as of 01:38, 4 May 2022

Password field

What is that Password field for, on the game's Options screen? It's only four characters, and rather than allowing you to select A-Z for each space, each slot has a different selection of numberscharacters that is allowed:

  1. A-F and S
  2. A-F and W
  3. A-F and Y
  4. Only A-F

The "A-F" business seems to be a reference to hexadecimal. The fact that the only characters outside of that range which are allowed for the first three slots are S, W, and Y implies to me that at least one password is "SWY_", where the '_' is something from A to F. However, I tried all those permutations and didn't see any result in the game. I cannot find a string anywhere in the game data that is of the form "SWY", nor "YWS" if written little-endian like Oni's tag codes. So I may be arriving at a wrong conclusion based on the allowed characters. --Iritscen (talk) 04:28, 12 December 2016 (CET)

Wrong conclusion indeed. The allowed sets of characters do not imply that any of the six combinations SWY[ABCDEF] must work as a valid password. The can very well be passwords like SAAA, BWBB, CCYC or even DDDD. So ultimately you need to test the whole bunch [ABCDEFS][ABCDEFW][ABCDEFY][ABCDEF]. The good news is that it's "only" 2058 combinations. --geyser (talk) 22:24, 25 March 2020 (CET)
Yes, I see your point. It would be faster to just disassemble the binary to figure out what password(s) are allowed. I believe I attempted this in 2016, since I had just learned MIPS32 asm, but I apparently wasn't good enough to figure out what the password function wanted by reading the asm. --Iritscen (talk) 22:44, 25 March 2020 (CET)


Perhaps the Password field is where cheat codes are entered? There's a single reference to cheats in the engine, a portion that reads "End Cheat Flying Mode [...] Start Cheat Flying Mode". Perhaps the mystery "SWY_" code above is the flying cheat? --Iritscen (talk) 04:28, 12 December 2016 (CET)