This page contains notes for the game Animaniacs (Genesis).
Unknown Debug#
01:7B60 32 3C MOVE.w #$8701,D1
01:7B64 08 38 BTST #7,($B073) //P2 Start button
01:7B6A 67 06 BEQ #$06 [01:7B72] //branch to $017B72 if P2 Start button not pressed
01:7B6C 0A 78 EORI.W #$0001,($B092) //toggle bit
01:7B72 08 38 BTST #0,($B093)
01:7B78 67 36 BEQ #$36 [01:7BB0] //branch to $017BB0 (exit) if FFB093 is #$00
01:7B6C 0A 78 EORI.W #$0001,($B092) //toggle bit OFF
01:7B7A 30 38 MOVE.w ($FB46),D0
01:7B7E 02 40 ANDI.W #$FFBF,D0
01:7B82 33 C0 MOVE.w D0,($00C00004)
01:7B88 33 C1 MOVE.w D1,($00C00004) //set backdrop to color $01
01:7B8E 32 3C MOVE.w #$0008,D1
01:7B92 51 C9 DBFa D1,#$FFFE [01:7B92]
01:7B96 33 FC MOVE.w #$8700,($00C00004) //set backdrop to color $00
01:7B9E 30 38 MOVE.w ($FB46),D0
01:7BA2 33 C0 MOVE.w D0,($00C00004)
01:7BA8 32 3C MOVE.w #$0008,D1
01:7BAC 51 C9 DBFa D1,#$FFFE [01:7BAC]
01:7BB0 4E 75 RTS
Debug 1-4 Init.#
01:7BB2 4A 38 TST.B ($B060) //debug menu index
01:7BB6 66 00 BNE #$00C8 [01:7C80] //branch to $017C80 if a debug menu has been loaded
01:7BBA 08 38 BTST #7,($B073) //P2 Start button
01:7BC0 67 00 BEQ #$00D2 [01:7C94] //branch to $017C94 if P2 Start button not pressed
P2 Start button pressed
01:7BC4 08 38 BTST #0,($B072) //P2 D-Pad Up
01:7BCA 67 02 BEQ #$02 [01:7BCE] //branch to $017BCE if P2 D-Pad Up not pressed
01:7BCC 60 36 BRA #$36 [01:7C04] //branch to debug menu 1
01:7BCE 08 38 BTST #1,($B072) //P2 D-Pad Down
01:7BD4 67 00 BEQ #$0004 [01:7BDA] //branch to $017BDA if P2 D-Pad Down not pressed
01:7BD8 60 54 BRA #$54 [01:7C2E] //branch to debug menu 2
01:7BDA 08 38 BTST #2,($B072) //P2 D-Pad Left
01:7BE0 67 00 BEQ #$0004 [01:7BE6] //branch to $017BE6 if P2 D-Pad Left not pressed
01:7BE4 60 64 BRA #$64 [01:7C4A] //branch to debug menu 3
01:7BE6 08 38 BTST #3,($B072) //P2 D-Pad Right
01:7BEC 67 00 BEQ #$00A6 [01:7C94] //branch to $017C94 if P2 D-Pad Right not pressed
debug menu 4 init.
01:7BF0 11 FC MOVE.b #$04,($B060) //set debug menu index 4
01:7BF6 42 78 CLR.W ($B06E)
01:7BFA 61 00 BSR #$0A10 [01:860C]
01:7BFE 61 00 BSR #$0A44 [01:8644]
01:7C02 60 22 BRA #$22 [01:7C26]
debug menu 1 init.
01:7C04 11 FC MOVE.b #$01,($B060) //set debug menu index 1
01:7C0A 61 00 BSR #$052A [01:8136]
01:7C0E 42 38 CLR.B ($B061)
01:7C12 42 38 CLR.B ($B062)
01:7C16 61 00 BSR #$064E [01:8266]
01:7C1A 41 F8 LEA ($F780),A0
01:7C1E 20 3C MOVE.l #$000000DF,D0
01:7C24 72 00 MOVEQ #$00,D1
01:7C26 20 C1 MOVE.l D1,(A0)+
01:7C28 51 C8 DBFa D0,#$FFFC [01:7C26]
01:7C2C 60 66 BRA #$66 [01:7C94]
debug menu 2 init.
01:7C2E 11 FC MOVE.b #$02,($B060) //set debug menu index 2
01:7C34 61 00 BSR #$0500 [01:8136]
01:7C38 42 38 CLR.B ($B061)
01:7C3C 42 38 CLR.B ($B062)
01:7C40 61 00 BSR #$071A [01:835C]
01:7C44 61 00 BSR #$07A6 [01:83EC]
01:7C48 60 4A BRA #$4A [01:7C94]
debug menu 3 init.
01:7C4A 11 FC MOVE.b #$03,($B060) //set debug menu index 3
01:7C50 61 00 BSR #$04E4 [01:8136]
01:7C54 42 38 CLR.B ($B061)
01:7C58 42 38 CLR.B ($B062)
01:7C5C 11 FC MOVE.b #$01,($B066)
01:7C62 11 FC MOVE.b #$01,($B067)
01:7C68 41 F8 LEA ($F780),A0
01:7C6C 20 3C MOVE.l #$000000DF,D0
01:7C72 72 00 MOVEQ #$00,D1
01:7C74 20 C1 MOVE.l D1,(A0)+
01:7C76 51 C8 DBFa D0,#$FFFC [01:7C74]
01:7C7A 61 00 BSR #$02F4 [01:7F70]
01:7C7E 60 14 BRA #$14 [01:7C94]
load debug menu
01:7C80 52 38 ADDQ.B #1,($B06C) //???
01:7C84 10 38 MOVE.b ($B060),D0 //debug menu index
01:7C88 02 40 ANDI.W #$00FF,D0 //examine only lower 8 bits
01:7C8C E5 48 LSL.W #2,D0 //x4
01:7C8E 20 7B MOVE.l $06(PC,D0),A0 //load pointer into A0 (see next section below for list of pointers)
01:7C92 4E 90 JSR (A0) //jump to debug menu main programming
exit
01:7C94 4A 38 TST.B ($B060) //debug menu index
01:7C98 4E 75 RTS //apparently, the programming that called this sub, if it still exists, will then check if a debug menu was loaded (non-zero value in FFB060).
Debug Menu 1-4 pointers#
Offset Pointer
00017C9A 00017CAA debug 1 (up)
00017C9E 00017D28 debug 2 (down)
00017CA2 00017EA2 debug 3 (left)
00017CA6 0001865C debug 4 (right)