Skip to content

Latest commit

 

History

History
90 lines (74 loc) · 4.33 KB

File metadata and controls

90 lines (74 loc) · 4.33 KB

01 — Overview

Tales of Destiny 2, PlayStation 2, Japan/Asia, product code SLPS-25172, one single-layer DVD mastered 10 November 2002 at 21:56:56.

Image 3,234,004,992 bytes, 1,579,104 sectors of 2,048 bytes
MD5 57cc3626a9cdc44bcde55efde9d22e78
SHA-1 3b2be72b751607a7a2a56d62feec71584b4b8c72
File system ISO 9660 and UDF, a DVD bridge disc — volume TOD2, publisher NAMCO LTD.
Files 16, in two directories
Boot SYSTEM.CNF → cdrom0:\SLPS_251.72;1, VER = 1.01, NTSC
Slack 278 of 1,579,104 sectors — 0.0176%

Sixteen files for a 3.2 GB disc. Two of them are 95% of it.

Where the 3.2 GB goes

File Bytes Share What
MOVIE.FPB 1,538,474,688 47.6% one MPEG-2 program stream
FILE.FPB 1,516,427,072 46.9% the game: 9,206 members
VIMAGE/MOVIMAGE.BIN 166,461,440 5.1% another game's movie reel
VIMAGE/CDIMAGE.BIN 6,234,112 0.2% another game's file table, contents removed
VENUS.ELF 3,735,360 0.1% another game's executable
SLPS_251.72 1,275,360 0.04% the boot executable — the game
VIRX/IOPRP255.IMG 264,449 I/O processor boot image
IOPRP243.IMG 253,201 I/O processor boot image
VIRX/*.IRX (5) 213,232 sound, pad, SIO2 drivers
FILESYS.IRX 40,684 the archive reader
SYSTEM.CNF 57 boot descriptor
VIMAGE/BGMIMAGE.BIN 1 a space character

Everything in the VIMAGE/ column, plus VENUS.ELF, belongs to a different game: Venus & Braves, SLPS-25196, which would not ship until July 2003. See 08.

The four facts

The 1995 compressor is still here. The in-house LZSS that Wolf Team wrote for the Super Famicom, used unchanged on the PlayStation in 1997 and 2000, is running on the PlayStation 2 in 2002. 9,469 blocks decode byte-exactly with the PlayStation decoder from tales-blockcodec-doc, unmodified — same nibble order, same 4,096-byte preloaded ring, same RING − 18 and RING − 17 cursors. 329 MB packed becomes 1,413 MB. This settles the question that specification's section 8 left open. See 04 and 10.

The archive directory is in the executable, and it packs two fields into one. FILE.FPB has no header. Its 9,206 members are described by an array of 9,207 u32 at virtual address 0x001DC314 inside SLPS_251.72. Members sit at 64-byte alignment, so the low six bits of a start offset are always zero — and are reused to carry the number of padding bytes after that member. One word gives both the extent and the exact length. The array's last entry is 0x5A62D740, which is FILE.FPB's size to the byte. See 05.

The linker left the whole game's overlay map in the shipped binary. SLPS_251.72 has 77 zero-length marker sections — .mnu_shop_end, .battle_b013_end, .fld_event_sp07_end, .minigame1_end, .mdl_viewer_end — and each one's address is exactly its overlay's load base plus that overlay's byte count. That is enough to name 65 of the 70 members of MIPS code in the archive and pin three load addresses. See 06.

Half of the scene bundles is copies. The 461 SCPK bundles hold 8,603 members between them, of which only 1,525 are distinct: 47.2% of the bytes are duplicates, and ten members are stored 461 or 462 times each. Tales of Eternia measured 50.6% on the same trade — a map load is one seek and one sequential read, so every scene carries its own copy of the common set. Two years and a console generation later, nothing about that decision changed. See 05.

Confidence

Claims are labelled as in the sibling pipelines:

  • Verified — a reimplementation reproduces the format over the whole relevant corpus, and disagreements are enumerated.
  • Consistent — the model explains every sample checked but has not been exhaustively proven.
  • Open — observed and not explained. Collected in 99 rather than softened in place.

Every number in these documents came out of a tool in tools/, and that tool's output is committed under reports/.

Continue with 02 — The disc.