This page contains notes for the game Dragon Ball 3: Gokuuden.
Version Differences#
PRG Bank 2#
Dragon Ball 3 - Gokuu Den (Japan) (PRG CRC32: 8EDEB257)
02/ABDB: AD 90 04 lda $0490
02/ABDE: C9 16 cmp #$16
02/ABE0: B0 0C bcs rowthree
02/ABE2: C9 15 cmp #$15
02/ABE4: B0 04 bcs rowtwo
02/ABE6: B9 F2 AB lda $ABF2,y
02/ABE9: 60 rts
rowtwo:
02/ABEA: B9 02 AC lda $AC02,y
02/ABED: 60 rts
rowthree:
02/ABEE: B9 12 AC lda $AC12,y
02/ABF1: 60 rts
02/ABF2: 04 00 01 07 01 02 03 04 00 04 07 01 05 07 04 07 ; when $0490 < 21
02/AC02: 00 07 02 01 00 06 01 00 04 00 01 04 07 03 05 00 ; when $0490 = 21
02/AC12: 00 01 08 01 00 03 04 02 00 04 09 04 06 01 04 00 ; when $0490 >= 22
Dragon Ball 3 - Gokuu Den (Japan) (Rev 1) (PRG CRC32: 6C6C2FEB)
02/ABDB: AD 90 04 lda $0490
02/ABDE: C9 16 cmp #$16
02/ABE0: B0 04 bcs rowtwo
02/ABE2: B9 EA AB lda $ABEA,y
02/ABE5: 60 rts
rowtwo:
02/ABE6: B9 FA AB lda $ABFA,y
02/ABE9: 60 rts
02/ABEA: 04 00 01 07 01 02 03 04 00 04 07 01 05 07 04 07 ; when $0490 < 22
02/ABFA: 00 07 02 01 00 06 01 00 04 00 01 04 07 03 05 00 ; when $0490 >= 22
02/AC0A: 00 01 08 01 00 03 04 02 00 04 09 04 06 01 04 00 ; never used?
All subsequent code and data in bank 2 is displaced by 8 bytes.
PRG Bank 3#
Dragon Ball 3 - Gokuu Den (Japan) (PRG CRC32: 8EDEB257)
03/8E23: AD EC 03 lda $03EC
03/8E26: F0 1E beq if03ECzero
03/8E28: BD A0 02 lda $02A0,x
03/8E2B: 85 00 sta $00
03/8E2D: AD E3 03 lda $03E3 ; \
03/8E30: C9 EF cmp #$EF ; |
03/8E32: D0 0B bne dontdoit ; |
03/8E34: AD E4 03 lda $03E4 ; |
03/8E37: C9 02 cmp #$02 ; | not present in "Rev 1" (PRG CRC32: 6C6C2FEB)
03/8E39: D0 04 bne dontdoit ; |
03/8E3B: A9 11 lda #$11 ; |
03/8E3D: 85 00 sta $00 ; |
dontdoit: ; /
03/8E3F: CA dex
03/8E40: 8A txa
03/8E41: 18 clc
03/8E42: 65 00 adc $00
03/8E44: AA tax
03/8E45: 60 rts
if03ECzero:
03/8E46: E8 inx
03/8E47: 60 rts
All subsequent code and data in bank 3 is displaced by 18 bytes.
PRG Bank 7#
Dragon Ball 3 - Gokuu Den (Japan) (PRG CRC32 8EDEB257)
07/D668: 58 cli
07/D669: A9 00 lda #$00 ; not present in "Rev 1" (PRG CRC32: 6C6C2FEB)
07/D66B: 20 3A DB jsr $DB3A ; not present in "Rev 1" (PRG CRC32: 6C6C2FEB)
07/D66E: A9 00 lda #$00
07/D670: 85 46 sta $46
07/D672: AD 02 20 lda $2002
07/D675: A5 55 lda $55
07/D677: 09 80 ora #$80
07/D679: 85 55 sta $55
07/D67B: 8D 00 20 sta $2000
07/D67E: 60 rts
All subsequent code and data in bank 7 is displaced by 5 bytes.
The subroutine at $DB3A (or at $DB35 in "Rev 1") writes the value in the accumulator to the FCG IRQ control register and to its shadow in RAM. Calling this subroutine with 0 in A (as the routine at $D668 does) disables FCG-generated IRQs.
07/DB3A: 85 6C sta $6C
07/DB3C: 8D 0A 60 sta $600A
07/DB3F: 60 rts