Defender II (USA)

Defender II (USA) is on a NROM board with 16,384 bytes of program. A crawl of 400 steps from power-on kept 45 paths that found new code. Played back over 27,325 frames, they executed 8,161 bytes of it, 50 percent.

What the rules named

The 133 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
$C40Da call3,267,810
The random byte: frames it ran in 16,690, bytes $001D,$001E,$001F,$0020,$0021,$0022,$0023,$0024,$0025,$0026,$0027, rotates 11, exclusive-ors 1
$C59Ca call521,931
Where two things are compared: instructions 4, pairs of bytes 15, bytes in all 15, times compared 3,953, X positions at $03C3,$03CD,$0583,$058D,$0683, Y positions at $001E,$03C1,$03CC,$0411,$042C,$0431,$0451,$04D1,$0581,$058C
$C47Ca call90,100
The sprite writers: frames it ran in 7,326, writes to the sprite page 579,648
$C448a call32,816
The poll: port $4016, reads a frame 8, strobes a frame 0
The poll: port $4017, reads a frame 8, strobes a frame 0
$D2CFa call16,690
The random byte: frames it ran in 16,690, bytes $0002, rotates 2, exclusive-ors 1
$C120a call16,443
The palette writers: frames it ran in 16,408, writes 98
The scroll writer: frames it ran in 16,408, writes in the blank 32,816
The picture writer: frames it ran in 16,408, writes 35,506, in the blank 35,226, while drawing 280
$F880a call16,402
The sound driver: frames it ran in 15,800, writes 32,803
$CBD4a call16,401
The sprite writers: frames it ran in 16,413, writes to the sprite page 1,719
$DB46a call14,500
Where two things are compared: instructions 3, pairs of bytes 2, bytes in all 3, times compared 25,005, Y positions at $03C1,$05A1,$05C1
$E814a call7,565
The sprite writers: frames it ran in 7,565, writes to the sprite page 99,610
$D950a call7,250
The sprite writers: frames it ran in 7,250, writes to the sprite page 448
$DC7Ba call7,250
The sprite writers: frames it ran in 7,250, writes to the sprite page 58,000
$E029a call7,250
The sprite writers: frames it ran in 7,250, writes to the sprite page 29,000
$E7AAa call7,250
The sprite writers: frames it ran in 7,250, writes to the sprite page 72,500
$DA1Ba call6,512
The sprite writers: frames it ran in 407, writes to the sprite page 6,512
$E9E6a call4,038
The sprite writers: frames it ran in 673, writes to the sprite page 6,730
$E9C7a call2,692
The sprite writers: frames it ran in 673, writes to the sprite page 6,730
$C603a call1,389
The sprite writers: frames it ran in 789, writes to the sprite page 1,680
$E9BAa call1,041
The sprite writers: frames it ran in 800, writes to the sprite page 12,492
$CA8Ea call205
The sprite writers: frames it ran in 205, writes to the sprite page 52,480
$C0D7a call157
The palette writers: frames it ran in 244, writes 2,860
The split: frames it ran in 244, scroll writes while drawing 314, status reads while drawing 2,794
$C983power-on45
The sprite writers: frames it ran in 16,780, writes to the sprite page 11,520
$CF50a call35
The sprite writers: frames it ran in 70, writes to the sprite page 140
$E76Ba call90,938
$DB1Da call36,604
$DC17a call28,884
$CAA1each frame (NMI)16,690
$D6D8a call16,656
$C073a call16,408
$C087a call16,408
$C434a call16,408
$CEE8a call16,402
$FA4Ca call16,402
$C3CCa call16,383
$E5A8a call14,761
$D73Ca call14,500
$D7EAa call14,500
$DBF1a call14,500
$E31Da call14,500
$D90Da call9,724
$CE5Ba call7,727
$D1DDa call7,608
$C144a call7,584
$CE1Da call7,584
$D449a call7,583
$DEE9a call7,580
$CD4Da call7,565
$E6D5a call7,322
$E6E1a call7,314
$E4D8a call7,259
$CD89a call7,250
$CF11a call7,250
$D098a call7,250
$D4E9a call7,250
$D5E8a call7,250
$D726a call7,250
$D7D0a call7,250
$D867a call7,250
$D8CDa call7,250
$D91Aa call7,250
$DB2Ba call7,250
$DBC1a call7,250
$DC49a call7,250
$DC62a call7,250
$DCCAa call7,250
$DE22a call7,250
$DE78a call7,250
$DE99a call7,250
$DEB3a call7,250
$DF77a call7,250
$DFC8a call7,250
$E046a call7,250
$E240a call7,250
$E306a call7,250
$E3D1a call7,250
$E47Aa call7,250
$E5C1a call7,250
$E611a call7,250
$E6BEa call7,250
$E6F8a call7,250
$E888a call7,250
$F89Ca call1,895
$F8BDa call1,751
$E45Da call1,469
$F8F9a call1,330
$C24Ca call1,186
$DA03a call814
$F8D4a call716
$DBB2a call687
$F8D8a call614
$CE51a call606
$C092a call410
$C139a call315
$F8FFa call250
$DA75a call168
$DA98a call168
$C346a call153
$C24Ea call104
$C324a call102
$C3E2a call98
$D6CCa call98
$DAD9a call93
$DA8Aa call85
$D6EAa call84
$F8DFa call83
$D1A8a call82
$DAA7a call56
$DAB1a call56
$DABEa call56
$F898a call56
$C177a call52
$C183a call52
$C303a call51
$D072a call35
$D17Ba call35
$DDD6a call30
$DE0Ea call30
$D6EDa call29
$D709a call29
$DA40a call28
$C1F8a call27
$F894a call23
$C261a call17
$C27Ea call17
$C355a call17
$CE91a call17
$CEC4a call17
$DDC3a call15
$F8AEa call9
$F89Ea call7
$F8A7a call5
$F8BAa call5
$D12Fa call1

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
$CA6A
The wait for the frame: waits on the byte at $00A2, times entered 7,294, turns 3,260,517, calls on each turn 1, writes of it under the frame interrupt 14,500, frames in all 16,825

The memory its routines share

449 bytes of memory were written by one routine and read by another, and 26 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
$056011712 across, 4 down
$001D1161 down
$00002566
$029C488
$00A0481
$0214371
$0380323
$0299321
$00D1312
$0244291
$03312721
$00D0161

The 24 busiest shared bytes

bytereads and writesroutines writingroutines reading
$000012,506,19866
$001D12,416,06526
$001E12,401,45626
$001F9,299,27825
$00219,292,22525
$00209,292,02224
$00247,680,19823
$00267,445,39523
$00277,213,51623
$00236,249,40923
$00014,541,76066
$00023,386,53166
$00033,180,20166
$00043,158,74866
$00251,916,64823
$00221,664,47923
$00071,426,07366
$0006945,32066
$0005454,74466
$03E0188,91266
$03F0188,83046
$0019184,79036
$001B159,62323
$0010120,50466

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

All the games