Goonies II, The (USA)

Goonies II, The (USA) is on a UxROM board with 131,072 bytes of program. A crawl of 400 steps from power-on kept 17 paths that found new code. Played back over 13,297 frames, they executed 2,998 bytes of it, 2 percent.

What the rules named

The 61 routines the runs entered

Every place the game's code was entered, by a call, an interrupt or a jump through a table. The ones a rule named come first, with what the rule saw.

atentered bytimeswhat it is, and the evidence
$D4D7 (bank 7)a call4,692
The jump engine: tables 3, jumps through them 4,692
$C1BC (bank 7)a call3,478
The bank switch: writes 3,478, in the blank 2,018, while drawing 1,460
$82E8 (bank 2)a call3,279
The sound driver: frames it ran in 1,017, writes 1,070
$C1BE (bank 7)a call2,586
The bank switch: writes 2,586, in the blank 2,436, while drawing 150
$C1C0 (bank 7)a call2,586
The bank switch: writes 2,586, in the blank 2,511, while drawing 75
$D18F (bank 7)a call2,521
The poll: port $4016, reads a frame 16, strobes a frame 4
The poll: port $4017, reads a frame 16, strobes a frame 4
The random byte: frames it ran in 2,513, bytes $006C,$006D, rotates 2, exclusive-ors 1
$C07C (bank 7)each frame (NMI)2,512
The game inside the interrupt: frames it ran in 2,543, frames in all 2,797, the spin is at $C072
$C10E (bank 7)a call2,512
The scroll writer: frames it ran in 2,511, writes in the blank 5,022
$DF97 (bank 7)a call2,504
The palette writers: frames it ran in 2,504, writes 624
The picture writer: frames it ran in 2,504, writes 1,051, in the blank 1,025, while drawing 26
$A3CC (bank 2)a call2,497
The sprite writers: frames it ran in 2,513, writes to the sprite page 149,340
$C1A9 (bank 7)a call1,565
The sprite writers: frames it ran in 1,565, writes to the sprite page 6,260
$8CF0 (bank 6)a call938
The sprite writers: frames it ran in 938, writes to the sprite page 1,876
$CE6C (bank 7)a call318
The sprite writers: frames it ran in 318, writes to the sprite page 636
$C219 (bank 7)a call63
The bank switch: writes 454, in the blank 34, while drawing 420
$C008 (bank 7)power-on17
The sprite writers: frames it ran in 2,571, writes to the sprite page 3,840
$D11B (bank 7)a call15
The sprite writers: frames it ran in 15, writes to the sprite page 240
$CE38 (bank 7)a table9
The sprite writers: frames it ran in 27, writes to the sprite page 9
$CE53 (bank 7)a table9
The sprite writers: frames it ran in 9, writes to the sprite page 18
$CEE8 (bank 7)a table7
The sprite writers: frames it ran in 21, writes to the sprite page 21
$A453 (bank 2)a call44,822
$CC77 (bank 7)a call34,323
$C19A (bank 7)a call2,627
$C1F7 (bank 7)a call2,529
$8179 (bank 2)a call2,512
$C47D (bank 7)a call2,489
$CCFC (bank 7)a call2,489
$817F (bank 2)a call1,962
$861F (bank 2)a call1,375
$CE21 (bank 7)a table1,272
$D1FF (bank 7)a call1,226
$CEFD (bank 7)a table938
$CD1E (bank 7)a table931
$CD4F (bank 7)a table624
$CE81 (bank 7)a table309
$CDC8 (bank 7)a table286
$85F7 (bank 2)a call238
$CD58 (bank 7)a table212
$8592 (bank 2)a call199
$DE81 (bank 7)a call172
$817C (bank 2)a call131
$CD6D (bank 7)a table91
$C481 (bank 7)a call70
$C1CA (bank 7)a call48
$C1CC (bank 7)a call41
$D227 (bank 7)a call41
$C424 (bank 7)a call37
$D50B (bank 7)a call33
$DE42 (bank 7)a call33
$C0DD (bank 7)a call31
$C212 (bank 7)a call31
$DDFE (bank 7)a call26
$C483 (bank 7)a call24
$CBA3 (bank 7)a call17
$D1FA (bank 7)a call17
$C0D3 (bank 7)a call15
$823A (bank 2)a call14
$DE40 (bank 7)a call10
$DDE5 (bank 7)a call7
$CD37 (bank 7)a table4
$81AF (bank 2)a call2
$CC70 (bank 7)a call2

Where it waits

Loops a rule named that sit inside a routine and are not themselves a place the code is entered.

atwhat it is, and the evidence
$C072 (bank 7)
The counting spin: counts in the byte at $000F, turns 4,254,722, turns a frame 1,521, reads of it from outside the loop 0

The jump engine's tables

Each table sits right after a call to the engine. An entry is counted as far as the runs saw one taken; the true table may be longer. The last column is the byte of memory whose value picked the entry, where we could follow it: the game's mode, or what one of its objects is doing.

atentriestakenchosen by the byte at
$CD0C (bank 7)43$0000
$CD27 (bank 7)44$0001
$CE26 (bank 7)75$0001

The memory its routines share

308 bytes of memory were written by one routine and read by another, and 27 places were reached through an index, which is what a table or a set of object slots in memory looks like.

Reaches through an index: those that hold positions, then the longest

frombytes reachedinstructionspositions it holds
$070025613
$02002533
$00022096
$000719314
$000819311
$00001939
$00011936
$00091936
$00041935
$00031934
$00061933
$00051612

The 24 busiest shared bytes

bytereads and writesroutines writingroutines reading
$000F4,777,33212
$00024,279,12426
$006A278,76866
$006B217,31066
$0069125,56966
$007094,82033
$007189,67422
$00AB23,01226
$00AC18,05224
$000316,61826
$00BA16,00924
$000013,43626
$000412,40036
$000610,58236
$00179,56623
$00BB8,73224
$000D6,35166
$00155,83714
$00105,21963
$00084,56834
$00073,78125
$000B3,55922
$00013,39766
$00093,34913

This page shows none of the game's bytes. The listing these figures were read from stays with the cartridge.

All the games