Oni (PlayStation 2): Difference between revisions

m
corrected file names for relic intro and outro
(→‎Data storage: more info on SOUND.RAW and BINK#.VAG)
m (corrected file names for relic intro and outro)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
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 been designed 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.
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 [https://pcsx2.net/ PCSX2]. When using this emulator, load times are greatly 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.
Today, Oni runs well in the emulator [https://pcsx2.net/ 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==
==Gameplay differences==
Line 10: Line 10:


==Visual differences==
==Visual differences==
[pictures coming later]
[[Image:Konoko from T2 PS2 intro.png|250px|thumb|right|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 [[:Image:Konoko Jump Kick.jpg|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 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 an added Rockstar logo sequence (with a special Konoko-based presentation) and the original PC Bungie logo sequence; this movie is unskippable (but see "Patches" for a movie-skipping patch). The second movie contains the original anime intro.
* 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 [https://www.youtube.com/watch?v=itX1fGbkpbo 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.
* 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.
* 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 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.
* 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 [https://www.reddit.com/r/oni/comments/lpgrx3/i_was_the_art_director_for_ps2_port/ 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.
* 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, probably a result of Rockstar's efforts to conserve resources due to limited memory.
* 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 subtitles are abbreviated transcriptions:
* 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:
** SNDD: "00_01_76 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!"
:: Staggering moves (00_01_76):
** SUBT: "00_01_76 Some powerful attacks can stagger you. Supermoves cannot be blocked."
:* 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!"
** SNDD: "00_01_89 I'll activate a training drone to walk up and down the firing range. Fire at it to disable it."
:* SUBT: "Some powerful attacks can stagger you. Supermoves cannot be blocked."
** SUBT: "00_01_89 Fire at the moving training drone to disable it."
:: Training drone (00_01_89):
*...and some wording has been re-distributed between SUBTs. Presumably these changes were due to limited screen space.
:* SNDD: "I'll activate a training drone to walk up and down the firing range. Fire at it to disable it."
** SNDDs:
:* SUBT: "Fire at the moving training drone to disable it."
::: "00_01_86 Shinatama: Perfect!"
:: Completion (00_01_82):
::: "00_01_88 Shinatama: 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."
:* 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."
:* SUBTs:
:* SUBT: "Your comlink stores information about weapons, items and mission objectives. It also has a help feature and a diary."
::: "00_01_86 Shinatama: Perfect! Let's try firing on some moving targets."
*...and some wording has been re-distributed between SUBTs, presumably to even out the number of words appearing onscreen.
:::"00_01_88 Shinatama: Walk over to the table on the right. See the weapon lying there? That's a plasma rifle. Pick it up."
** SNDDs 00_01_86 and 00_01_88:
* Instead of using "Trailer" and "Farewell" for the credits, the PS2 credits have completely different music. This is probably because [https://www.youtube.com/watch?v=Od1ReWIxduo the PC credits sequence] is 171 seconds long (that is, the textual credits, not the whole outro), but [https://www.youtube.com/watch?v=Yhqg_MF6dM8 the NTSC version] of the PS2 credits is 156 seconds and [https://www.youtube.com/watch?v=YX0OGl2-WLA 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.
::: "Perfect!"
* The text of the PS2 credits is somewhat different; see [[Quotes/Credits#PS2_outro_differences|HERE]] for details.
::: "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 <code>thedayismine</code> 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 [https://www.youtube.com/watch?v=Od1ReWIxduo the PC credits sequence] is 171 seconds long (that is, the textual credits, not counting the animated outro), but [https://www.youtube.com/watch?v=Yhqg_MF6dM8 the NTSC version] of the PS2 credits is 156 seconds and [https://www.youtube.com/watch?v=YX0OGl2-WLA 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 [[Quotes/Credits#PS2 outro differences|HERE]] for details.
 
==Directories==
The root directory of the PS2 CD-ROM is roughly equivalent to the [[Oni (folder)|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 [[wp:8.3 filename|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:


==Data storage==
The root directory of the PS2 CD-ROM is roughly equivalent to the [[Oni (folder)|Oni folder]] of a Windows or Mac installation. This isn't clear at first, as the names of the files and folders that would be found in a PC installation are represented by numbers due to the PS2 file system being limited to [[wp:8.3 filename|8+3 naming]]. The actual names for these files are given in plain-text directory listings named INDEX.DIR alongside the renamed files. After assigning these names, the directory tree is as follows.
{|border=1 cellspacing=0 style="font-size:75%"
{|border=1 cellspacing=0 style="font-size:75%"
|-
|-
!Name on disk
!Name on disk
!Indexed name
!De-indexed name
!Notes
!Notes
|-valign=top
|-valign=top
Line 52: Line 64:
**21/
**21/
***<nowiki>#</nowiki> (#=1-15)
***<nowiki>#</nowiki> (#=1-15)
**1,2
**2,18
**<nowiki>#</nowiki> (#=3-17)
**<nowiki>#</nowiki> (#=3-17)
|
|
Line 103: Line 115:
**Per-level folders
**Per-level folders
***SOUND.DAT referenced from level#_Final.dat, .SEP and .RAW looked up from .DAT
***SOUND.DAT referenced from level#_Final.dat, .SEP and .RAW looked up from .DAT
**Three short beep-like sounds (purpose unclear)
**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)
*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)
*Game data for the loading screen interface (absent for the 18.12.2000 dev build)
Line 126: Line 138:
|}
|}


===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.


;File notes
===Relic files===
*We find the familiar [[GameDataFolder]] at the expected location, as well as the [[IGMD]] subtree (level logic scripts) and the instance files ('''level#_Final.dat'''). Raw and separate files ('''level#_Final.raw''' and '''level#_Final.sep''') are fundamentally the same as for Mac and Windows demo, except that they are tucked away into '''raw''' and '''sep''' directories. 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.
*'''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).
*'''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).
*persist.dat and PERSIST.DAT are [[persist.dat|savegame/preference files]] of the little-endian variety (i.e., created in Windows or by the PS2) 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 anyway). 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).
*The [[persist.dat|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).
;Scripts
 
:The PS2 level scripts are similar to [[OBD:Localization/German|some Mac Oni versions]] or the Japanese Windows version, in that they include some pre-beta folders (script logic intended for now-missing chapters and test levels).
==Binary data format==
;Binary data
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.
: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). The few discrepancies between the PS2 implementation and the previously documented Windows/Mac versions 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 [[OBD:SNDD#PS2 implementation|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 three beep-like sounds picked from Oni's resources; they have a VAG header and are valid sounds for VAG-capable apps.
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 [[OBD:SNDD#PS2 implementation|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 [[Oni (folder)/GameDataFolder/IGMD/tctf_ii|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==
==Patches==