Skip to content

Latest commit

 

History

History
161 lines (136 loc) · 8.89 KB

File metadata and controls

161 lines (136 loc) · 8.89 KB

00 — Overview

Everything below was measured from the disc image. Nothing is taken from a database, a box scan, or prior knowledge of the title. Where the disc does not say, it is in 12-open-questions.md with the measurement that failed to settle it.

Offset convention

Stated once here and used everywhere (checklist step 25).

  • File offset — a byte position in a file as it sits in the ISO 9660 volume. Written 0x1234 and always qualified with the file name.
  • Resident offset — a byte position inside a file after every container in it has been expanded. Resident pieces are named <file>+s<offset> for a stream found at that offset and <file>+gap<offset> for the raw bytes between streams, so an address in this document is always attached to one named piece.
  • Hunk offset — a byte position relative to the start of a hunk's image, which is what LoadSeg relocates against. An absolute constant in a hunk executable is a hunk offset if a relocation entry covers it and a literal if not; tools/relocs.py --at answers that.

Where a number is a hunk offset it is labelled as one. Otherwise addresses are file or resident offsets as above.

What the disc is

Not one game. Three, and that turns out to matter for every size figure in this document.

Tree Files On disc Share
/SuperFrog 122 4,102,748 50.5 %
/SuperStardust 64 3,221,772 39.6 %
/Pool (Arcade Pool) 14 601,518 7.4 %
system (/c, /s, /libs, /devs, /fonts, root icons) 21 200,527 2.5 %
total 221 8,126,565

Super Stardust and Arcade Pool are demos, launched by their own scripts from a front-end menu. Super Stardust is three separate programs run in sequence.

Identity, read from the disc

volume identifier       SuperFrog_AGA
volume set identifier   SuperFrog_AGA
publisher identifier    Team 17
data preparer           Kenny Grant - ISOCD 1.04 by Pantaray, Inc. USA -
application identifier  s/startup-sequence
system identifier       CDTV
creation date           1994-08-24 12:17:15 +0
CATALOG                 5022358170384          (a real EAN-13)
  • Publisher: Team 17. Stated by the disc, not inferred.
  • Year: 1994 for the compilation master. The game itself is older — see 10-floppy-ancestry.md, which recovers the three-floppy layout of the earlier release from inside the CD executable.
  • Version: $VER: T17MENU 39.1 Kenny G (23.07.94) on the front-end menu, and $VER: T17Man 1.0 (9.8.94) on the document viewer. The game engine SuperFrogCD carries no $VER: and no bare build banner — see 09-text.md.
  • Author: the disc names exactly one person, Kenny Grant — and it names him twice, in the ISO preparer field and in the menu's own $VER: string as Kenny G. He is the mastering operator and the author of the front end. Nobody who wrote the game is named anywhere in the filesystem.
  • The system identifier says CDTV, not CD32, on a disc whose volume name ends _AGA.

Document map

Document What is in it
01-disc-and-filesystem.md Image geometry, PVD field by field, sector map, the 32-sector run, the preparer result
02-tm-block.md The .TM trademark block and what it says about tool-versus-label
03-timestamps.md Two calendar days, three bursts, and a root directory dated a week early
04-boot-chain.md Startup-sequence, the menu that writes its own script, all five scripts read in full
05-compression.md 158 Imploder streams, a ninth container, nesting depth, the three container forms
06-executables.md Hunk structure, relocation density, the dispatch table, the two-build diff done properly
07-graphics.md 320×256 five-plane display, stored copper lists, blitter geometry, tile layout, no C2P
08-audio.md No Red Book track; 34 modules in a format the checklist had not seen
09-text.md 1.05 % / 0.50 %, four languages in correct Latin-1, and a shipped markup language
10-floppy-ancestry.md The 1993 three-floppy layout, recovered exactly from the CD binary
11-label-comparison.md Superfrog against The Speris Legacy, the other Team 17 disc
12-open-questions.md What is still unresolved, with the measurement, and the predictions table

Headline results

The band's ceiling breaks, on one of its two readings. Superfrog alone is 4,102,748 bytes on disc and 13,336,690 resident — 84,993 bytes and 0.64 % above Marvin's 13,251,697, which had been the maximum across fifteen discs. Read on disc it is 4.10 MB and sits comfortably inside the band. So the two readings now disagree about the same disc for the first time, which is worth more than either number alone. Full arithmetic in 05-compression.md.

The cruncher follows the label, and the mastering tool does not. Two predictions were written before either was measured and they point in opposite directions. Superfrog packs with the Imploder, exactly like The Speris Legacy, the other Team 17 disc — so the "cruncher follows the label" reading now spans two labels instead of one. But its .TM block is byte-identical to the twelve discs cut with the same tool and not to Speris's — so the .TM follows the tool. Same disc, same label, opposite answers. See 11-label-comparison.md.

The floppy release, recovered byte-exact. SuperFrogCD carries four parallel vocabularies of the same 85 asset names — SDDISK1:, DF0:, DF1:, DF2:. The union of the three floppy devices is exactly the SDDISK1 set, zero difference either way, so the disk-to-asset assignment of the earlier release is readable from the CD binary: disk 1 common, disk 2 worlds 1–3, disk 3 worlds 4–6, with four files deliberately duplicated across disks to avoid a swap. 10-floppy-ancestry.md.

A markup language, shipped in source with its comments. The four manual files are not data. They are scripts for an in-house viewer, T17Man, in a language with eleven directives, # comment banners, named asset bindings and a font table. All twelve asset references resolve to files that are on the disc. 09-text.md.

A build-machine assign left in 26 shipped files. Every level map carries @SDIFF:<level>-IFF at resident offset 0xAF, naming the IFF artwork it was built from. SDIFF: is created by no script on this disc and none of the eight targets shipped. The assign is spelled three different ways across the files — SDIFF 32 times, sdiff 10, Sdiff 10.

Two builds that a byte diff calls unrelated. MAINDEMO1 and MAINDEMO2 share zero end-aligned bytes and diverge at code offset 0x24. Mask the relocated longwords and they agree for 6,083 bytes, then differ by a single immediate: #$0001 against #$0002. Method note for open item 23 in 06-executables.md.

A ninth container format. Nine files in /SuperStardust/CRM begin PaCK. The 14-byte header is validated on all nine — 14 + packed == filesize every time — and on the four with a sibling in RAW/ the declared unpacked size equals that sibling's byte count exactly. The codec itself is not decoded; that is open question 3.

A one-byte video-mode difference, and it is a DisplayID. T17Man and T17Man.lace are both 24,172 bytes and differ in ten bytes across two runs: the $VER: date, and one byte turning SA_DisplayID from $00029000 (PAL:HighRes) into $00029004 (PAL:HighRes-Interlaced). Neither is NTSC.

What is not here, and that is the result

  • No Akiko. Zero pointer loads of $00B80000, $00B80030, $00B80038, $00B8003C; zero $C0DE0000. All four figures reported in 07-graphics.md.
  • No C2P. The six C2P constants appear 42,017 times as data and 37 times as an andi.l/eori.l immediate — but only $55555555 and $AAAAAAAA, never $F0F0F0F0, $0F0F0F0F, $CCCCCCCC or $33333333. A converter needs the whole ladder. The frame is planar in planar, the ninth such disc.
  • No save system. libs/nonvolatile.library ships and no game binary mentions it. Superfrog on CD32 does not save.
  • No bytecode VM of the Universe kind. What is there instead is a 64-way type dispatch over object records — five tables, 320 slots, 24 distinct handlers, 82.8 % of the slots pointing at one shared default.
  • No little-endian IFF. All 20 FORMs walk correctly big-endian, none little-endian. A clean negative on step 35.
  • No MS-DOS epoch. Zero 1980 timestamps, zero 1978. Two calendar days total.
  • No empty directories, and no .info file shared with any disc in the set.