Entry 239
Each disc file by file, and the four discs' unknowns
Documented in The Infection DVD, The Mutation DVD, The Outbreak DVD, The Quarantine DVD, The later volumes' unnamed code, The four discs, Event scripts, Text rendering.
Filesdocs/disc/layout.mddocs/disc/mutation.mddocs/disc/outbreak.mddocs/disc/quarantine.mddocs/disc/volumes.mddocs/disc/unnamed-code.mdtools/voldiff.pytools/iso.py
Asked for: settle the four unknowns docs/disc/volumes.md listed, and
give each game its own disc page, as Infection has.
The tools
tools/iso.py sums IMAGE: every file's SHA-1, in disc order. Each disc page's listing names, file by file, the other discs that hold the same bytes.tools/voldiff.py report ELF: every stretch of code that no carried name covers, as markdown. Each row gives its place, the names either side, its function prologues, and its strings and named calls.gapsandlooknow share its code (stretches,look_data).
The pages
docs/disc/mutation.md,outbreak.mdandquarantine.mdfollowlayout.md:- the volume;
SYSTEM.CNF;- every file in disc order, with the discs that share its bytes;
- what each file is;
- what changed from the volume before.
- All four are packed without gaps: 377-1830439, 386-1859588 and 390-2176898. All fit a DVD-5.
docs/disc/unnamed-code.mdholds the three reports: 423 stretches, 351 of them starting a function, 17 all zero.
The unknowns
-
KFED.BIN/KFAED.BIN. Quarantine's opcode 169 (0x001c52e8):- sets
game+0x7c; - reads both files into
$gp-29188 and -29184; - loads
ending.ccs; - runs gcmn
0x004f0a30, which startsSTFROLL_VOL4(the staff roll, thread0x004f0950) and waits for it; - frees both.
A scan of every word of the executable and the four overlays found:
- four instructions using those
$gpoffsets, all the handler's (two stores, two loads forccFree); - no absolute references and no stored pointer.
The staff roll draws with
ccKanji, on theeffonts. So the kanji are loaded and never read. - sets
-
STRT.BIN(Outbreak). Six gziptmp.ccsmembers:title1_st1t,title1_st1t2,title2_st1: the title'sxdt_models;str9999e,str9999:hack/comingplanes and rings;trial_v2st:trilog00-10.
They date from 2002-10-01 to 2003-03-13 (gzip times). No code opens the file:
ccCdInit's list has noSTRT, no string contains it, and no stream table names those scenes. The livetitle2_st1isSTRCMNE's, at another size. -
VOICE2. The skill words (spcVoiceData).SPC00-17and_Eare Infection'sVOICE/SPC*byte for byte.SPC18-20arecharTblrows 18-20, Tsukasa, Subaru and Sora: in Japanese, two clips each. Outbreak's disc lacks their English files, though its table (shared with Quarantine) names them; Quarantine has them. -
The CD modules. They did not move into
IOPRP243.IMG.- The image is the same on all four discs, built 2001-12-05. Its ROMDIR
lists 15 modules,
CDVDMANandCDVDFSVamong them (0x021a,PsII... 2430). ccCdInitreboots the IOP with it, then loads ten modules by name fromMODULES. No executable namescdvdmanorcdvdfsv.- Infection's and Mutation's
MODULES/CDVD*.IRXare 1.04 (PsIIcdvdman 134), never loaded. Outbreak and Quarantine dropped them.
- The image is the same on all four discs, built 2001-12-05. Its ROMDIR
lists 15 modules,
-
The stretches. All listed (above).
Infection's page had two open questions and one stale entry:
OUTSIDE.BIN: no stringOUTSIDEin any volume's code.- Reads by sector: every sector read comes from a name.
sceCdSearchFilehas seven callers:ccCdInit's six files andccMcard::MakeDir'sICON.BIN.- demo.prg's
strFileOpenlooks up the movies. - The rest opens by path: the overlays, the modules, and the IOP's voice files.
ICON.BINwas already decoded in the save page (iconBinTbl).
Measured along the way:
- Mutation's
STR1andSTR1E. Infection's sizes. 19 members differ only in the gzip time stamp (packed again on 2002-10-23; the inflated bytes are equal). One scene changed:str9102. - Quarantine's
STR3E. 230 MB smaller than Outbreak's, the same 48 scenes. 23 of them drop one of Outbreak's two Pcm tracks; the two setup chunks differ only in a padding byte (+0x07, perCCSTRM_PCM's DWARF). Frames are unchanged. - Fidchell's voice group (19,
BOSSTALK). Only Outbreak's disc carries it, though Quarantine's tables name it (andMIAE.BIN).
volumes.md is now solid. Its code table has the current carry's
figures: Outbreak's gcmn is 15.4% unnamed, not 20.4%.
What STRT.BIN's scenes look like; the port's stream player plays only table streams, so it cannot show them yet. The names of the functions in the unnamed stretches, which survive nowhere.