Oni 2 (Angel Studios)/Running
Running the game
The ISO can be found on epforums.org (registration required) and is playable on a modded PS2 or in an emulator. The only mature PS2 emulator is PCSX2. Although PCSX2 is available for both Windows and macOS, the Mac version has poor performance and exhibits graphical glitches with this particular game. (Lighting problems occur even when playing on a PS2, so it's likely that graphics code was being worked on when this game build was produced.) Thus, if you are on a Mac, you will ideally want to use Boot Camp to run the game in PCSX2 for Windows. PCSX2 has also been reported to work on Macs running Windows within Parallels Desktop and VMware Fusion; it does not seem to run in Oracle VM VirtualBox, which has problems with 3D acceleration as of v5.1.
To prevent glitched shadows when playing Oni 2 in PCSX2, you need to switch the GSdx plugin to Software mode and turn on the "Edge anti-aliasing" setting; this will severely cut performance compared to rendering in Hardware mode.
Playing the levels
Once Oni 2 is running, there is only one level available by choosing New Game. Additional levels, however, can be chosen from the Load Game menu. These are documented on ../#Story and levels. Levels can take a couple minutes to load, and some do not have loading screens, instead displaying a gray screen until they're done loading. The only levels that could be considered traditionally "game-like" are levels 1 (The Blast Chambers), 6 (Initial Attack), and 8 (The Rooftops). These were the primary levels used to prototype the game. The other levels were used by the developers to test features or scripting, but some are rather substantial, like level 14 (AI Abilities Test).
Launch arguments
Oni 2 accepts various launch arguments. To pass arguments to the game, you must use the package here: http://websvn.chrilly.net/listing.php?repname=Oni2&path=%2Fps2launchargs%2F. Here are the arguments, with descriptions taken directly from the engine. Note that we do not currently understand the syntax for the arguments that take parameters, like "-level". How is the number/whatever supplied after the argument?
Argument | Description | Effect |
---|---|---|
-ui | use the frontend | No effect (probably the default). |
-noui | Bypass the frontend and go to game. | Game starts by loading first level. |
-devui | use the dev frontend | No effect. |
-fullui | use the full frontend | Same UI for main menu, but game crashes when choosing "Load Game". |
-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. | No effect? |
-noattacking | Prevents AI from attacking player. | |
??? (no text) | Specify which level to load. | Is this argument just a number? Is it the same as "-level"? |
-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. | Pressing "Start" button removes HUD, brightens image, and pauses the game. |
-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). |