5,389
edits
m (→Patches: a caution about outro) |
(→Binary differences: tablification etc) |
||
Line 34: | Line 34: | ||
* The text of the PS2 credits is somewhat different; see [[Quotes/Credits#PS2_outro_differences|HERE]] for details. | * The text of the PS2 credits is somewhat different; see [[Quotes/Credits#PS2_outro_differences|HERE]] for details. | ||
== | ==Data storage: similarities, discrepancies, anomalies== | ||
The | The root directory of the PS2 Oni CD is roughly equivalent to the [[Oni_(folder)|Oni folder]] of a PC or Mac installation. This isn't clear at first, though, as the names of most files and folders are reduced to single- or double-digit codes. Actual names are reconstituted at runtime (by the game engine SLUS_200.64) using binary lookup tables named INDEX.DIR, which are present in every directory that has been subjected to reindexation. Possibly this was done to accommodate a file system such as MS-DOS on one of the machines involved in making the CD (MS-DOS filenames are case-insensitive, with a maximum of 8 characters for the filename and 3 characters for the "extension"). After decoding, the directory tree is as follows. | ||
{|border=1 cellspacing=0 style="font-size:75%" | |||
|- | |||
** 1/ - | !Actual name on disk | ||
*** 1 | !Decoded name if any | ||
*** | !Notes | ||
*** | |-valign=top | ||
*** 18 - outro.bik ( | | | ||
*** | *1/ | ||
*** | **1/ | ||
*** | ***... | ||
** | **19/ | ||
** | ***<nowiki>#</nowiki> (#=1-15) | ||
** | **20/ | ||
** INTRO1.PSS | ***<nowiki>#</nowiki> (#=1-15) | ||
** | **21/ | ||
** | ***<nowiki>#</nowiki> (#=1-15) | ||
** | **1,2 | ||
** | **<nowiki>#</nowiki> (#=3-17) | ||
** | | | ||
* | *GameDataFolder/ | ||
** SYSTEM.CNF | **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 [[OBD:TXMP|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) | |||
*[[OBD:Instance_file_format|Instance files]] (main game data structures, c.f. [[OBD:Oni_Binary_Data|OBD]]) | |||
|-valign=top | |||
|colspan=2| | |||
*ICONS/ | |||
**ONI1.ICO | |||
*MODULES/ | |||
**IOPRP16.IMG | |||
**LIBSD.IRX, MCMAN.IRX, MCSERV.IRX,<br />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 has an additional "icons" folder (empty) | |||
**Oni icon. The 18.12.2000 dev build instead has SLIME#.ICO (#=1,2,3) | |||
*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<br />has ten more such modules, and one more in a separate OLD folder) | |||
**A custom module specific to the game (Oni's "Sound System 2") | |||
*A separate folder containing the waveform data of all the sounds. | |||
**Per-level folders | |||
***SOUND.DAT referenced from level#_Final.dat, .SEP looked up from .DAT | |||
**Three short sounds of unclear purpose. | |||
*Intro and outro video sequences (18.12.2000 dev build has INTRO.PSS and OUTRO.PSS). | |||
*Some data for the loading screen interface (absent for the 18.12.2000 dev build). | |||
*A savegame/preference file inherited from a PC build (unused). | |||
|-valign=top | |||
| | |||
*2 | |||
*3 | |||
| | |||
*persist.dat | |||
*Preferences.txt | |||
| | |||
:A duplicate of PERSIST.DAT (also unused). | |||
:A vestigial file listing hard drive locations (absent for 18.12.2000 dev build). | |||
|- | |||
|colspan=2| | |||
*SLUS_200.64 | |||
*SYSTEM.CNF | |||
| | |||
:The game binary (a.k.a. executable a.k.a. engine) | |||
:Standard boot information for a PS2 game. | |||
|} | |||
;Notes | |||
*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 PC 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 PC 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'''); mostly they are just taking up 56 MB of storage space for nothing (the .PSS versions take up 188 MB). | |||
*persist.dat and PERSIST.DAT are [[Oni_(folder)/persist.dat|savegame/preference files]] of the Little Endian variety (i.e., created by a PC version of Oni), abnormally small. The PS2 engine doesn't use them, and relies on memory cards instead. | |||
*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 in '''SOUNDS/LEVEL#/SOUND.SEP''' (which contain raw VAG data without a header). The purpose of '''SOUNDS/LEVEL#/SOUND.RAW''' is not known (it is raw VAG data as well, with a size of about 1MB per chapter). Both the '''SOUND#.RAW''' files and the '''BINK#.VAG''' files are referenced from '''ONISS2.IRX''' directly, without involving the SNDD entries from '''level#_Final.dat''' files. | |||
*LOADING.RAW (absent for the 18.12.2000 dev build) appears to hold data for the loading screen. | |||
;Scripts | |||
:The PS2 level scripts are similar to [[OBD:Localization/German|some Mac Oni versions]] or the Japanese PC version, in that they include some pre-beta folders (script logic intended for now-missing chapters and test levels). | |||
;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). The few discrepancies between the PS2 implementation and the previously documented PC and Mac versions are covered by the [[OBD:Oni_Binary_Database|OBD]] documentation. | |||
==Patches== | ==Patches== |