Oni (PlayStation 2)

From OniGalore
Jump to navigation Jump to search

Midway through Oni's development, in 1999, Take-Two Interactive purchased a stake in Bungie and became the publisher for the upcoming game. In addition to their investment, T2 stipulated that a PlayStation 2 port would be released alongside Oni for Windows and Macintosh. That port was created by Rockstar Toronto (known at the time as Rockstar Canada), and because the game had originally been intended for a PC with a hard drive, changes had to be made in order to load the game more quickly from CD-ROM. Even after this work, the PS2 version has been noted for its long load times.

Today, Oni runs well in the emulator PCSX2. When using this emulator, load times are reduced by placing an ISO of the game disc on your hard drive. You can also easily apply patches from within PCSX2 instead of having to buy a cheat device for your PS2, so this is the best way to run the game.

Gameplay differences

  • Cheats are entered differently; see HERE. Also, they do not require the game to be beaten first, which is extremely helpful since the console controls make this version harder.
  • The cooldown exploit has been fixed.
  • The AI for the androids in Training is glitchy or overly aggressive. They might try to attack you after beating Karen, and the training bots sometimes forget the defense/offense program they're supposed to be following and wantonly attack you. It remains to be seen if this is an overall glitch with AI in the PS2 version.
  • In the opening cutscene for Chapter 13, Konoko fires two or three times at the glass in the ceiling instead of once. (This probably means you have fewer bullets in your clip when the level starts.)

Visual differences

The PS2-only movie where Konoko hits you in the face repeatedly, ending with a kick where her shoe plants the Rockstar logo on the screen (see her foot in this art).

[more pictures coming later]

  • The intro and outro movies are 30 fps (NTSC) or 25 fps (PAL) instead of 15 fps, and intro in particular looks better on PS2. (These movies were turned into mod packages for PC Oni called "HQ Movies (Mac)" and "HQ Intro Movie (Windows)".)
  • The intro on PC starts with the Bungie logo sequence and then plays the anime intro as part of one movie, but on PS2 there are two intro movies: the first contains a ten-second Konoko-based presentation of the Rockstar logo and the original PC Bungie logo sequence; this movie is unskippable. The second movie contains the original anime intro and is skippable with a button press. See "Patches" for a PCSX2 patch which disables movie playback.
  • Different Main Menu.
  • When loading a level, instead of a progress bar against a black background, PS2 Oni has a proper loading screen – the game cycles through three different backgrounds for these.
  • The splashscreens for each level use the same images as on PC, but the title overlay has a different style.
  • The text used for subtitles is larger. Character names in the fly-in portraits are also redone to be much larger.
  • There is less texture variety due to limited memory. Various environmental objects, such as the crates at the very start of Chapter 1, are uniform instead of having differently colored variants.
  • Apparently there is less variety in enemies as well, but this is yet to be documented in detail. See this Reddit thread for a firsthand account of the nature of these cuts.
  • Lighting is handled differently; there seems to be a higher gamma to the graphical output.
  • Karen in Training is using the dark-haired female cop model.
  • Some of Shinatama's un-subtitled instructions in the PC version of Training are subtitled on PS2, but not all. Some of these PS2-only subtitles are abbreviated transcriptions, as seen when we compare SNDD and SUBT:
Staggering moves (00_01_76):
  • SNDD: "Be careful, Konoko! Some attacks are so powerful that they can stagger you even if you block them. Some super moves are so strong they can't be blocked at all!"
  • SUBT: "Some powerful attacks can stagger you. Supermoves cannot be blocked."
Training drone (00_01_89):
  • SNDD: "I'll activate a training drone to walk up and down the firing range. Fire at it to disable it."
  • SUBT: "Fire at the moving training drone to disable it."
Completion (00_01_82):
  • SNDD: "Your comlink stores lots of information about weapons, items, and mission objectives. It also has a help feature, and even a diary built right in."
  • SUBT: "Your comlink stores information about weapons, items and mission objectives. It also has a help feature and a diary."
  • ...and some wording has been re-distributed between SUBTs, presumably to even out the number of words appearing onscreen.
    • SNDDs 00_01_86 and 00_01_88:
"Perfect!"
"Let's try firing at some moving targets. Walk over to the table on the right. See the weapon lying there? That's a plasma rifle. Pick it up."
  • SUBTs 00_01_86 and 00_01_88:
"Perfect! Let's try firing on some moving targets."
"Walk over to the table on the right. See the weapon lying there? That's a plasma rifle. Pick it up."
  • In Chapter 1, the "-OMM- TTC 1.1" crate with the thedayismine code has had its message covered over with a metal plate, presumably a tongue-in-cheek way of saying that Dev Mode will not be available to the player.

Credits differences

  • Instead of using "Trailer" and "Farewell" for the credits, the PS2 credits have completely different music. This is probably because the PC credits sequence is 171 seconds long (that is, the textual credits, not counting the animated outro), but the NTSC version of the PS2 credits is 156 seconds and the PAL version is 204 seconds. (The differing frame rate of PAL's 25 fps vs. NTSC's 30 fps cannot account for this 48-second time difference, and the credits themselves are identical; the PAL version simply scrolls the credits 30% slower for some reason.) To cover these credit sequences of differing length, a new backing track with a house beat was composed by Rockstar Canada staff. The NTSC version's music fades out arbitrarily as the credits end, whereas the track behind the longer PAL version continues on an extended (and eyebrow-raising) riff on female pain sounds from the game and ends with an actual coda.
  • The text of the PS2 credits is somewhat different; see HERE for details.

Directories

The root directory of the PS2 CD-ROM is roughly equivalent to the Oni folder of a Windows or Mac installation (see subsections below for exceptions). This similarity isn't clear at first, as the names of the files and folders are represented by numbers. Most of Oni's original file and folder names would be too long for a PS2 disc's ISO 9660 Level 1 file system, which employs 8+3 naming. Thus, the actual names for these files are given in plain-text directory listings named INDEX.DIR alongside the renamed files. The game executable reads these .DIR files at runtime to find the desired file/folder. Here is the directory tree with de-indexed names:

Name on disk De-indexed name Notes
  • 1/
    • 1/
      • ...
    • 19/
      • # (#=1-15)
    • 20/
      • # (#=1-15)
    • 21/
      • # (#=1-15)
    • 2,18
    • # (#=3-17)
  • GameDataFolder/
    • IGMD/
      • ...
    • pal/
      • level#_palette.pal (#=0-4,6,8-14,18-19)
    • raw/
      • level#_Final.raw (#=0-4,6,8-14,18-19)
    • sep/
      • level#_Final.sep (#=0-4,6,8-14,18-19)
    • intro.bik, outro.bik
    • level#_Final.dat (#=0-4,6,8-14,18-19)
  • Main game data container (c.f. GameDataFolder)
    • Level logic scripts written in BSL
      • (see IGMD for an expanded list)
  • Palette folder
    • Palette files referenced by a level's TXMP
  • Raw data folder
    • .raw files referenced from the respective .dat
  • Separate data folder
    • .sep files referenced from the respective .dat
  • Intro and outro sequences in Bink video format (unused)
  • Instance files (game data files)
  • ICONS/
    • ONI1.ICO
  • MODULES/
    • IOPRP16.IMG
    • LIBSD.IRX, MCMAN.IRX, MCSERV.IRX, PADMAN.IRX,
      SDRDRV.IRX, SIO2MAN.IRX
    • ONISS2.IRX
  • SOUNDS/
    • LEVEL#/ (#=0-4,6,8-14,18,19)
      • SOUND.DAT, SOUND.RAW, SOUND.SEP
    • BINK#.VAG (#=0,1,2)
  • INTRO1.PSS, INTRO2.PSS, OUTRO.PSS
  • LOADING.RAW
  • PERSIST.DAT
  • Icons folder (the 18.12.2000 dev build also has an empty "icons" folder)
    • Oni icon (the 18.12.2000 dev build instead has SLIME[1-3].ICO)
  • Standard folder for application modules (hardware drivers, etc.)
    • An "image" module (the 18.12.2000 dev build also has IOPRP165.IMG)
    • Six standard modules typical of PS2 games (the 18.12.2000 dev build has ten more modules,
      plus one in an OLD folder)
    • A custom module specific to the game (Oni's "SoundSystem2")
  • A separate folder containing the sound data
    • Per-level folders
      • SOUND.DAT referenced from level#_Final.dat, .SEP and .RAW looked up from .DAT
    • Three short beeps stored separately (used as menu sounds)
  • Intro and outro video sequences (18.12.2000 dev build has INTRO.PSS and OUTRO.PSS)
  • Game data for the loading screen interface (absent for the 18.12.2000 dev build)
  • A savegame/preference file (unused; see "File notes" below)
  • 2
  • 3
  • persist.dat
  • Preferences.txt
  • A duplicate of PERSIST.DAT (also unused, see "File notes" below)
  • A vestigial file listing locations for the game data (absent in 18.12.2000 dev build)
  • SLUS_200.64
  • SYSTEM.CNF
  • The game binary (a.k.a. executable)
  • Standard boot information for a PS2 game

Raw and separate files

Although the GameDataFolder generally matches the PC version, one notable exception is that raw and separate files are tucked away into raw and sep directories.

Palette files

There is also a pal directory holding a set of level#_palette.pal files (one per level); in PS2 Oni, all the textures (TXMP files) use compact 8-bit storage (i.e., each pixel is an index into a palette of 256 colors), as opposed to Windows and Mac TXMPs which typically use 16- or 24-bit color.

Relic files

  • intro.bik and outro.bik are not used by the engine (they're superseded by INTRO2.PSS and OUTRO.PSS); they're just taking up 56 MB of storage space for nothing (the .PSS versions take up another 188 MB).
  • The save-game files persist.dat and PERSIST.DAT are little-endian (i.e., created in Windows or on a PS2 dev unit) and are byte-identical to each other. Actual save data is stored in a standard PS2 format on the memory card (obviously the game cannot write to files on disc). They might be a development relic of the PS2 port since they are much smaller than a PC persist.dat (also, one is named in all-caps like the other files Rockstar added to the game directory).

Binary data format

The internal structure of level#_Final.dat and the corresponding .raw and .sep is compliant with the "VR31" iteration of instance files, although many resources were optimized for minimal storage space (textures use indexed colors, character animations has been split into a trimmed-down TRAM and an "extra" instance TREX that only exists for combat moves and such, etc.). These deviations in PS2 resource formats are covered by the OBD:PS2 page.

Sounds are encoded using Sony's VAG format/codec, and (unlike for other Oni versions) their waveform data isn't stored in level#_Final.raw (see SNDD). Instead the SNDD instances in level#_Final.dat contain links to SOUNDS/LEVEL#/SOUND.DAT, which in turn references waveform data stored either in SOUNDS/LEVEL#/SOUND.SEP (raw VAG data without any headers) or SOUNDS/LEVEL#/SOUND.RAW (raw VAG data with minimal headers to allow the lookup of each sound). The three BINK#.VAG files are beep-like sounds picked from Oni's game data (SNDDbeep43, SNDDbeep24 and SNDDbeep23, respectively); they have a VAG header and are valid sounds for VAG-capable apps.

Level scripts

The PS2 IGMD includes the same pre-beta folders as the European Mac releases: scripting logic intended for now-missing chapters and test levels. Some "test" subfolders are present for EnvWarehouse and manplant, with backups of the scripts for levels 1 and 2. When it comes to the Windows/Mac differences in the tctf_ii folder, the scripts match the Windows versions (although the folder is named "tctf_II" with capital 'i's in the INDEX.DIR). However, the PS2 scripts have differences of their own:

  • Many "sleep" commands have been added or removed to adjust cutscene timing.
  • Two dialogue lines in compound.bsl have been renamed, and in a number of places where dialogue is played, a short sleep command and a new dialogue line appear to be added afterward (see compound.bsl, lab_cutscene.bsl and warehouse_train2.bsl); could these be original lines split into two pieces?
  • A BSL function called gs_nearclipplane_set was added so that it could be called from warehouse_cutscene.bsl.
  • "input 1" isn't called at the beginning of Chapter 1 until after Shinatama introduces the HUD at the end of the intro, rather than before.
  • A possible fix in manplant_level_logic.bsl that disables the trigger volume for SP2 when SP3 is loaded (can it be reached by backtracking?).
  • A possible fix in roof.bsl that sets an objective when SP4 is loaded.
  • The PS2 version of BSL implements at least two new script variables, psx2_ambient2 and psx2_directional2 (both of them floats). They appear to be white light intensities (i.e., shades of gray) used for the Gouraud shading of characters and other M3GM (powerups, weapons, furniture, animated objects). In Windows/Mac Oni there is no possibility to adjust ambient or directional light intensities through scripts: the main directional light has intensity 0.7, the auxiliary directional light (turned on at higher quality settings) has intensity 0.3, and the ambient intensity is either 0.65 or 0.55 (larger if one directional light, smaller if two directional lights).

Patches

Punk7890 of TCRF (The Cutting Room Floor) found that a number of Dev Mode features were still present in the PS2 port. Some need hex-patching in order to activate them, and some can be toggled using the controller once activated, showing that Rockstar found these features useful during their port work. The patches (for the U.S. release of the game) are found HERE.

In order to apply the patches on a PS2, you would use a cheat device like GameShark, which few people have. If you're running Oni in PCSX2, you'll have an easy time adapting these patches. Create a plain-text file called FD9CD8FC.pnach (that's the CRC of the U.S. release of the game), and make sure there's no ".txt" at the end of the name. Place it in the "cheats" directory for PCSX2, and inside the file, create a line of text for each patch you want to use, using the following guide to convert the patch on the TCRF wiki:

TCRF wiki .pnach file
0033A904
00000001
becomes patch=1,EE,0033A904,word,00000001 # FPS counter

The comment at the end of the .pnach file's line is optional, but you will definitely want to label your patches.

An additional patch for skipping the intro movies is below, courtesy of Iritscen. Place this patch in a .pnach file to disable the movie-playing function so that the game skips right to the loading screen for the Main Menu. Make sure not to have this active when finishing the game or you won't see the outro movie and credits.

patch=1,EE,001C726C,word,00000000 # no movies