mirror of
https://github.com/pret/pokepinball.git
synced 2026-10-03 15:07:57 -04:00
33715 lines
561 KiB
NASM
Executable File
33715 lines
561 KiB
NASM
Executable File
INCLUDE "charmap.asm"
|
|
INCLUDE "macros.asm"
|
|
INCLUDE "constants.asm"
|
|
|
|
SECTION "rst 00", ROM0 [$00]
|
|
di
|
|
jp Entry
|
|
|
|
SECTION "rst 10", ROM0 [$10]
|
|
jp Func_468
|
|
|
|
SECTION "rst 18", ROM0 [$18]
|
|
jp JumpToFuncInTable
|
|
|
|
SECTION "rst 20", ROM0 [$20]
|
|
jp Func_486
|
|
|
|
SECTION "rst 40", ROM0 [$40]
|
|
jp Func_2f2
|
|
|
|
SECTION "rst 48", ROM0 [$48]
|
|
jp Func_3ec
|
|
|
|
SECTION "rst 50", ROM0 [$50]
|
|
jp Func_418
|
|
|
|
SECTION "rst 58", ROM0 [$58]
|
|
jp Func_445
|
|
|
|
SECTION "rst 60", ROM0 [$60]
|
|
jp Func_467
|
|
|
|
|
|
SECTION "Entry", ROM0 [$100]
|
|
|
|
Entry: ; 0x100
|
|
nop
|
|
jp Start
|
|
|
|
SECTION "Header", ROM0 [$104]
|
|
|
|
; The header is generated by rgbfix.
|
|
; The space here is allocated to prevent code from being overwritten.
|
|
ds $150 - $104
|
|
|
|
SECTION "Main", ROM0
|
|
|
|
Start: ; 0x150
|
|
ld [hGameBoyColorFlag], a
|
|
ld sp, hGameBoyColorFlag
|
|
di
|
|
xor a
|
|
ld [$ff0f], a
|
|
ld a, [$ff40] ; LCD Control
|
|
bit 7, a ; Check if LCD Display is enabled
|
|
jr nz, .LCDDisplayEnabled
|
|
set 7, a
|
|
ld [$ff40], a
|
|
.LCDDisplayEnabled
|
|
ld bc, $0002
|
|
call Func_948
|
|
.waitForVBlank
|
|
ld a, [$ff44] ; LY register (LCDC Y-Coordinate)
|
|
cp 145 ; > 144 means V-Blank
|
|
jr c, .waitForVBlank
|
|
ld a, $81
|
|
ld [$ff40], a ; Enable LCD Display
|
|
xor a
|
|
ld [$ff47], a ; Clear Palette Data
|
|
ld [$ff48], a
|
|
ld [$ff49], a
|
|
ld bc, $0002
|
|
call Func_948
|
|
.waitForVBlank2
|
|
ld a, [$ff44] ; LY register (LCDC Y-Coordinate)
|
|
cp 145 ; > 144 means V-Blank
|
|
jr c, .waitForVBlank2
|
|
xor a
|
|
ld [$ff40], a ; Disable LCD Display
|
|
ld hl, wc000
|
|
ld bc, $2000
|
|
call ClearData ; Clear WRAM Bank 0
|
|
ld hl, vTiles0
|
|
ld bc, $1000
|
|
call ClearData ; Clear First half of VRAM
|
|
ld a, $a
|
|
ld [$0000], a ; Enable RAM
|
|
ld a, $1
|
|
ld [$2000], a ; Load ROM Bank $1
|
|
ld a, $0
|
|
ld [$6000], a ; Enable ROM Banking Mode
|
|
ld a, $0
|
|
ld [$4000], a ; Set bits 5 and 6 of ROM Bank Number
|
|
ld a, $1
|
|
ld [hLoadedROMBank], a
|
|
ld a, $1
|
|
ld [$6000], a ; Enable RAM Banking Mode
|
|
ld a, $0
|
|
ld [$4000], a ; Load RAM Bank $0
|
|
ld sp, $dfff ; Initialize stack pointer to the end of WRAM Bank $1
|
|
ld hl, $ff80
|
|
ld bc, $007e
|
|
call ClearData ; Clear High RAM (HRAM)
|
|
call InitializeHRAM
|
|
call ClearOAMBuffer
|
|
xor a
|
|
ld [$d7fb], a
|
|
ld [$d7fc], a
|
|
ld [$d7fd], a
|
|
ld [$ffb0], a
|
|
ld [$ffb1], a
|
|
ld [$d8e1], a
|
|
ld [$d7fe], a
|
|
ld [$fffc], a
|
|
ld hl, $ff9e
|
|
xor a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld a, $8f
|
|
ld [hli], a
|
|
ld a, $a6
|
|
ld [hli], a
|
|
ld a, $0
|
|
ld [$d849], a
|
|
ld [$d84a], a
|
|
ld a, $f
|
|
call Func_52c
|
|
call Func_23b
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_222
|
|
call Func_12f8
|
|
rl a
|
|
and $1
|
|
ld [$fffb], a
|
|
call Func_13a8
|
|
ld a, [$fffb]
|
|
and a
|
|
jr z, .asm_222
|
|
ld a, $1
|
|
ld [$d917], a
|
|
.asm_222
|
|
ld a, $1
|
|
ld [$ffff], a ; Only enable LCD Status interrupt
|
|
ei
|
|
ld a, $ff
|
|
ld [$d810], a
|
|
call Func_97a
|
|
xor a
|
|
ld [$daa3], a
|
|
ld a, Bank(Func_1ffc)
|
|
ld hl, Func_1ffc
|
|
call BankSwitchSimple
|
|
Func_23b: ; 0x23b
|
|
ld a, [hGameBoyColorFlag]
|
|
cp $11
|
|
jr nz, .asm_248
|
|
ld a, $1
|
|
ld [hGameBoyColorFlag], a
|
|
ld [$fffd], a
|
|
ret
|
|
.asm_248
|
|
xor a
|
|
ld [hGameBoyColorFlag], a
|
|
ld [$fffd], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$24e,$2f2 - $24e
|
|
|
|
Func_2f2: ; 0x2f2
|
|
push af
|
|
push bc
|
|
push de
|
|
push hl
|
|
call $ff80
|
|
ld a, [$ff9e]
|
|
ld [$ff40], a
|
|
call Func_113a
|
|
ei
|
|
ld a, [$ff44]
|
|
cp $90
|
|
jr c, .asm_328
|
|
ld hl, $ff9f
|
|
ld c, $41
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
.asm_328
|
|
ld a, [$ffa2]
|
|
ld [$ffa8], a
|
|
ld a, [$ffa9]
|
|
ld [$ffaa], a
|
|
ld a, [$ffab]
|
|
ld [$ffac], a
|
|
ld a, [$ffad]
|
|
ld [$ffae], a
|
|
call ReadJoypad
|
|
ld a, [$daa3]
|
|
and a
|
|
jr nz, .asm_359
|
|
ld a, [hJoypadState]
|
|
cp $f
|
|
jr nz, .asm_359
|
|
ld a, [hNewlyPressedButtons]
|
|
and $f
|
|
jr z, .asm_359
|
|
ld hl, [sp+$8]
|
|
ld [hl], $c3
|
|
inc hl
|
|
ld [hl], $3
|
|
ld a, $1
|
|
ld [$daa3], a
|
|
.asm_359
|
|
ld hl, $ffb2
|
|
ld a, [hl]
|
|
inc [hl]
|
|
and a
|
|
jr nz, .asm_365
|
|
ld hl, $ffb3
|
|
inc [hl]
|
|
.asm_365
|
|
ld hl, $ffb4
|
|
inc [hl]
|
|
ld a, [$d8e1]
|
|
and a
|
|
call nz, Func_167b
|
|
ld a, [$d849]
|
|
and a
|
|
jr nz, .asm_37d
|
|
ld a, [$d85d]
|
|
and a
|
|
call nz, $0504
|
|
.asm_37d
|
|
ld a, [$d84a]
|
|
and a
|
|
jr z, .asm_39d
|
|
xor a
|
|
ld [$d84a], a
|
|
ld a, $1
|
|
ld [$d849], a
|
|
ld a, $bc
|
|
ld [$ff06], a
|
|
ld a, $0
|
|
ld [$ff07], a
|
|
ld hl, $ffff
|
|
set 2, [hl]
|
|
ld a, $4
|
|
ld [$ff07], a
|
|
.asm_39d
|
|
ld hl, $4000
|
|
ld a, [$d917]
|
|
and a
|
|
jr nz, .asm_3b5
|
|
ld a, [$d803]
|
|
rrca
|
|
ld [$d803], a
|
|
and $1
|
|
jr z, .asm_3b5
|
|
set 3, [hl]
|
|
jr .asm_3b7
|
|
.asm_3b5
|
|
res 3, [hl]
|
|
.asm_3b7
|
|
ld a, [$d4aa]
|
|
and a
|
|
call nz, $0e69
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
pop af
|
|
reti
|
|
|
|
INCBIN "baserom.gbc",$3c3,$3ec - $3c3
|
|
|
|
Func_3ec: ; 0x3ec
|
|
push af
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld a, [$ffb0]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $0408
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp [hl]
|
|
|
|
INCBIN "baserom.gbc",$3ff,$418 - $3ff
|
|
|
|
Func_418: ; 0x418
|
|
ei
|
|
push af
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld a, [$d849]
|
|
and a
|
|
jr z, .asm_42a
|
|
ld a, [$d85d]
|
|
and a
|
|
call nz, Func_504
|
|
.asm_42a
|
|
ld a, [$d84a]
|
|
and a
|
|
jr z, .asm_440
|
|
xor a
|
|
ld [$d84a], a
|
|
ld [$d849], a
|
|
ld a, $0
|
|
ld [$ff07], a
|
|
ld hl, $ffff
|
|
res 2, [hl]
|
|
.asm_440
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
pop af
|
|
reti
|
|
|
|
Func_445: ; 0x445
|
|
push af
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld hl, $045d ; todo
|
|
push hl
|
|
ld a, [$ffb1]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $0462 ; todo
|
|
add hl, bc
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, [hl]
|
|
push bc
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$45d,$467 - $45d
|
|
|
|
Func_467: ; 0x467
|
|
reti
|
|
|
|
Func_468: ; 0x468
|
|
ld a, [$ff40]
|
|
bit 7, a
|
|
ret z
|
|
ld hl, $ffb2
|
|
xor a
|
|
ld [hl], a
|
|
.asm_472
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_472
|
|
ret
|
|
|
|
JumpToFuncInTable: ; 0x477
|
|
; Jumps to a function in the pointer table immediately following
|
|
; a "rst $18" call. Function must be in the same Bank as the pointer table.
|
|
sla a
|
|
pop hl
|
|
push de
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
ld l, e
|
|
ld h, d
|
|
pop de
|
|
jp [hl]
|
|
|
|
Func_486: ; 0x486
|
|
rlca
|
|
add l
|
|
ld l, a
|
|
jr nc, .noCarry
|
|
inc h
|
|
.noCarry
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ret
|
|
|
|
Func_490: ; 0x490
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$d85b]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, e
|
|
ld [$d7bf], a
|
|
ld a, [$d85b]
|
|
ld [$d7c0], a
|
|
call $4090 ; todo
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
PlaySoundEffect: ; 0x4af
|
|
; input: de = sound effect id? I think d specifies something special and e holds the id
|
|
ld a, [$dead]
|
|
and a
|
|
ret nz
|
|
ld a, [$d800]
|
|
and a
|
|
jr z, .asm_4bd
|
|
ld a, d
|
|
and a
|
|
ret z
|
|
.asm_4bd
|
|
ld a, d
|
|
ld [$d800], a
|
|
ld d, $0
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$d85b]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
call $40c0 ; todo
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
Func_4d8: ; 0x4d8
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld a, [$ddcb]
|
|
ld hl, $ddfd
|
|
or [hl]
|
|
ld hl, $de2f
|
|
or [hl]
|
|
and $1
|
|
call z, PlaySoundEffect
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
Func_4ef: ; 0x4ef
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$d85b]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
call $40f0 ; todo
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
Func_504: ; 0x504
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$d85b]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
call $4180 ; todo
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, [$d801]
|
|
inc a
|
|
ld [$d801], a
|
|
and $3
|
|
ret nz
|
|
ld a, [$d800]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d800], a
|
|
ret
|
|
|
|
Func_52c: ; 0x52c
|
|
di
|
|
ld [$d85b], a
|
|
ei
|
|
ret
|
|
|
|
CallInFollowingTable: ; 0x532
|
|
; Calls a function in a table located immediately after a call to this function.
|
|
; Inputs: a = entry in the table
|
|
ld e, a
|
|
ld d, $0
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d ; multiplied a by 4 because entries in the table are 4 bytes each
|
|
pop hl
|
|
add hl, de
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
inc hl
|
|
ld a, [hl]
|
|
ld h, d
|
|
ld l, e
|
|
jp BankSwitch
|
|
|
|
BankSwitchSimple: ; 0x549
|
|
; Switches to Bank in register a and jumps to hl.
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a ; Load Bank
|
|
jp [hl]
|
|
|
|
BankSwitch: ; 0x54f
|
|
ld e, a
|
|
ld a, [hLoadedROMBank] ; currently-loaded Bank
|
|
cp e
|
|
jr z, .doJump
|
|
push af
|
|
ld a, e
|
|
call .loadNewBank
|
|
call .doJump
|
|
pop de
|
|
ld a, d
|
|
.loadNewBank
|
|
push hl
|
|
push de
|
|
ld hl, $ffff
|
|
ld d, [hl]
|
|
ld [hl], $0
|
|
ld [$2000], a
|
|
ld [hLoadedROMBank], a
|
|
ld [hl], d
|
|
pop de
|
|
pop hl
|
|
ret
|
|
.doJump
|
|
ld a, [$ff8b]
|
|
ld e, a
|
|
ld a, [$ff8a]
|
|
jp [hl]
|
|
|
|
Func_576: ; 0x576
|
|
ld a, [$ff40]
|
|
bit 7, a
|
|
ret z
|
|
ld a, [$ff9e]
|
|
res 7, a
|
|
ld [$ff9e], a
|
|
.asm_581
|
|
ld a, [$ff40]
|
|
bit 7, a
|
|
jr nz, .asm_581
|
|
ret
|
|
|
|
Func_588: ; 0x588
|
|
ld a, [$ffc4]
|
|
and a
|
|
call nz, Func_597
|
|
ld a, [$ff9e]
|
|
set 7, a
|
|
ld [$ff40], a
|
|
ld [$ff9e], a
|
|
ret
|
|
|
|
Func_597: ; 0x597
|
|
ld de, $ff68
|
|
ld a, $80
|
|
ld [de], a
|
|
inc de
|
|
ld b, $8
|
|
.asm_5a0
|
|
ld a, [$d80c]
|
|
call Func_5c2
|
|
dec b
|
|
jr nz, .asm_5a0
|
|
ld de, $ff6a
|
|
ld a, $80
|
|
ld [de], a
|
|
inc de
|
|
ld b, $4
|
|
.asm_5b2
|
|
ld a, [$d80d]
|
|
call Func_5c2
|
|
ld a, [$d80e]
|
|
call Func_5c2
|
|
dec b
|
|
jr nz, .asm_5b2
|
|
ret
|
|
|
|
Func_5c2: ; 0x5c2
|
|
push bc
|
|
ld b, $4
|
|
.asm_5c5
|
|
push af
|
|
push bc
|
|
and $3
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $05e1
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
pop bc
|
|
pop af
|
|
srl a
|
|
srl a
|
|
dec b
|
|
jr nz, .asm_5c5
|
|
pop bc
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$5e1,$5f7 - $5e1
|
|
|
|
InitializeHRAM: ; 0x5f7
|
|
; Initializes registers $ff80 - $ff8a
|
|
ld c, $80
|
|
ld b, $a ; number of bytes to load
|
|
ld hl, InitialHRAM
|
|
.loop
|
|
ld a, [hli]
|
|
ld [$ff00+c], a ; add register c to $ff00, and store register a into the resulting address
|
|
inc c
|
|
dec b
|
|
jr nz, .loop
|
|
ret
|
|
|
|
InitialHRAM:
|
|
; These $a bytes are initially load into $ff80 - $ff8a by InitializeHRAM.
|
|
db $3e, $d0, $e0, $46, $3e, $28, $3d, $20, $fd, $c9
|
|
|
|
WaitForLCD: ; 0x60f
|
|
; Wait for LCD controller to stop reading from both OAM and VRAM because
|
|
; CPU can't access OAM, VRAM, or palette data ($ff69, $ff6b) during this time.
|
|
ld a, [$ff41] ; LCDC Status register
|
|
and $3
|
|
jr nz, WaitForLCD
|
|
ld a, $a
|
|
.delay10Cycles
|
|
dec a
|
|
jr nz, .delay10Cycles
|
|
ret
|
|
|
|
Func_61b: ; 0x61b
|
|
ld a, [$ff44] ; LY register (LCDC Y-Coordinate)
|
|
cp $40
|
|
jr c, .asm_625
|
|
cp $80
|
|
jr c, .asm_63d
|
|
.asm_625
|
|
ld a, [$ff44] ; LY register (LCDC Y-Coordinate)
|
|
cp $40
|
|
jr c, .asm_625
|
|
cp $80
|
|
jr nc, .asm_625
|
|
.asm_62f
|
|
ld a, [$ff41]
|
|
and $3
|
|
jr nz, .asm_62f ; wait for lcd controller to finish transferring data
|
|
ld a, $15
|
|
.wait
|
|
dec a
|
|
jr nz, .wait
|
|
nop
|
|
nop
|
|
nop
|
|
.asm_63d
|
|
ret
|
|
|
|
Func_63e: ; 0xc3e
|
|
dec bc
|
|
.asm_63f
|
|
ld [hli], a
|
|
dec bc
|
|
bit 7, b
|
|
jr z, .asm_63f
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$646,$654 - $646
|
|
|
|
ClearData: ; 0x654
|
|
; Clears bc bytes starting at hl.
|
|
; bc can be a maximum of $7fff, since it checks bit 7 of b when looping.
|
|
xor a
|
|
dec bc
|
|
.clearLoop
|
|
ld [hli], a
|
|
dec bc
|
|
bit 7, b
|
|
jr z, .clearLoop
|
|
ret
|
|
|
|
Func_65d: ; 0x65d
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec bc
|
|
ld a, c
|
|
or b
|
|
jr nz, Func_65d
|
|
ret
|
|
|
|
Func_666: ; 0x666
|
|
bit 7, h
|
|
jr nz, .asm_679
|
|
ld [$fffa], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
scf
|
|
jr .asm_67d
|
|
.asm_679
|
|
ld [$4000], a
|
|
and a
|
|
.asm_67d
|
|
push af
|
|
.asm_67e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec bc
|
|
ld a, c
|
|
or b
|
|
jr nz, .asm_67e
|
|
pop af
|
|
ret nc
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
Func_68f: ; 0x68f
|
|
push de
|
|
ld d, a
|
|
ld a, [hLoadedROMBank]
|
|
ld e, a
|
|
ld a, d
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld d, [hl]
|
|
ld a, e
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, d
|
|
pop de
|
|
ret
|
|
|
|
LoadVideoData: ; 0x6a4
|
|
; Input:
|
|
; hl = address of pointer table
|
|
; a = index of item to load in pointer table
|
|
; This needs more documentation. It loads things like graphics and palettes.
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
.loadItem
|
|
ld a, [hli]
|
|
ld c, a
|
|
and [hl]
|
|
cp $ff ; two consecutive $ff bytes terminate the array
|
|
ret z
|
|
ld a, [hli]
|
|
ld b, a ; bc contains pointer to data to be loaded
|
|
push hl
|
|
push bc
|
|
ld a, [hli] ; a contains bank of data to be loaded
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl] ; de contains destination address for data
|
|
inc hl
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, [hl] ; bc contains last word of data struct
|
|
inc hl ; this is a wasted instruction
|
|
pop hl
|
|
call Func_6cb
|
|
pop hl
|
|
ld bc, $0005
|
|
add hl, bc
|
|
jr .loadItem
|
|
|
|
Func_6cb: ; 0x6cb
|
|
srl b
|
|
rr c
|
|
jp c, Func_6fd ; if lowest bit of bc is set
|
|
jp Func_6d5 ; This jumps to the next instruction... Strange.
|
|
|
|
Func_6d5: ; 0x6d5
|
|
ld [$fffa], a ; save bank of data to be loaded
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa] ; a contains bank of data to be loaded
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a ; switch bank to the bank of data to be loaded
|
|
srl b
|
|
rr c
|
|
rl a
|
|
and $1 ; checks bit 1 of the last word in the data struct
|
|
ld [$ff4f], a ; set VRAM Bank
|
|
.copyByte
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec bc
|
|
ld a, c
|
|
or b ; does bc = 0?
|
|
jr nz, .copyByte
|
|
xor a
|
|
ld [$ff4f], a ; set VRAM Bank to Bank 0
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a ; reload the previous ROM Bank
|
|
ret
|
|
|
|
Func_6fd: ; 0x6fd
|
|
ld [$fffa], a ; save bank of data to be loaded
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa] ; a contains bank of data to be loaded
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a ; switch bank to the bank of data to be loaded
|
|
ld a, e
|
|
bit 6, a
|
|
jr nz, .asm_717
|
|
ld de, $ff68
|
|
call Func_724
|
|
jr z, .asm_71d
|
|
xor a
|
|
.asm_717
|
|
ld de, $ff6a
|
|
call Func_724
|
|
.asm_71d
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
Func_724: ; 0x724
|
|
res 6, a
|
|
ld b, a
|
|
set 7, a
|
|
ld [de], a
|
|
inc de
|
|
.copyByte
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc b
|
|
dec c
|
|
ret z
|
|
bit 6, b
|
|
jr z, .copyByte
|
|
ret
|
|
|
|
Func_735: ; 0x735
|
|
push hl
|
|
ld hl, $ff40
|
|
bit 7, [hl]
|
|
pop hl
|
|
jp z, Func_666
|
|
; fall through
|
|
LoadVRAMData: ; 0x73f
|
|
; This loads some data into VRAM. It waits for the LCD H-Blank to copy the data 4 bytes at a time.
|
|
; input: hl = source of data
|
|
; a = bank of data to load
|
|
; de = destination of data
|
|
; bc = number of bytes to copy
|
|
bit 7, h
|
|
jr nz, .asm_752
|
|
ld [$fffa], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
scf
|
|
jr .asm_756
|
|
.asm_752
|
|
ld [$4000], a
|
|
and a
|
|
.asm_756
|
|
push af
|
|
call WaitForLCD
|
|
.loop
|
|
call Func_61b
|
|
.waitForHBlank
|
|
ld a, [$ff41]
|
|
and $3
|
|
jr nz, .waitForHBlank
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
dec bc
|
|
dec bc
|
|
dec bc
|
|
dec bc
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
ld a, b
|
|
or c
|
|
jr nz, .loop
|
|
pop af
|
|
ret nc
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
Func_790: ; 0x790
|
|
push hl
|
|
ld hl, $ff40
|
|
bit 7, [hl]
|
|
pop hl
|
|
jp nz, Func_7dc
|
|
bit 7, h
|
|
jr nz, .asm_7ad
|
|
ld [$fffa], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
scf
|
|
jr .asm_7b1
|
|
.asm_7ad
|
|
ld [$4000], a
|
|
and a
|
|
.asm_7b1
|
|
push af
|
|
ld a, e
|
|
bit 6, e
|
|
ld de, $ff68
|
|
jr z, .asm_7bf
|
|
res 6, a
|
|
ld de, $ff6a
|
|
.asm_7bf
|
|
set 7, a
|
|
ld [de], a
|
|
inc de
|
|
.asm_7c3
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
dec bc
|
|
dec bc
|
|
dec bc
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .asm_7c3
|
|
pop af
|
|
ret nc
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
Func_7dc: ; 0x7dc
|
|
bit 7, h
|
|
jr nz, .asm_7ef
|
|
ld [$fffa], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
scf
|
|
jr .asm_7f3
|
|
.asm_7ef
|
|
ld [$4000], a
|
|
and a
|
|
.asm_7f3
|
|
push af
|
|
ld a, e
|
|
bit 6, e
|
|
ld de, $ff68
|
|
jr z, .asm_801
|
|
res 6, a
|
|
ld de, $ff6a
|
|
.asm_801
|
|
push hl
|
|
ld h, d
|
|
ld l, e
|
|
set 7, a
|
|
call PutTileInVRAM
|
|
inc de
|
|
pop hl
|
|
call WaitForLCD
|
|
.asm_80e
|
|
call Func_61b
|
|
.asm_811
|
|
ld a, [$ff41]
|
|
and $3
|
|
jr nz, .asm_811
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
dec bc
|
|
dec bc
|
|
dec bc
|
|
dec bc
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
ld a, b
|
|
or c
|
|
jr nz, .asm_80e
|
|
pop af
|
|
ret nc
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
PutTileInVRAM: ; 0x848
|
|
; Puts a tile in VRAM.
|
|
; input: a = tile number
|
|
; hl = pointer to VRAM location where tile should be placed
|
|
push af
|
|
call WaitForLCD
|
|
call Func_61b
|
|
.asm_84f
|
|
ld a, [$ff41]
|
|
and $3
|
|
jr nz, .asm_84f ; wait for lcd controller to finish transferring data
|
|
pop af
|
|
ld [hl], a ; Store tile number in VRAM background map
|
|
ret
|
|
|
|
Func_858: ; 0x858
|
|
push af
|
|
call WaitForLCD
|
|
call Func_61b
|
|
.asm_85f
|
|
ld a, [$ff41]
|
|
and $3
|
|
jr nz, .asm_85f
|
|
ld a, $1
|
|
ld [$ff4f], a
|
|
pop af
|
|
ld [hl], a
|
|
xor a
|
|
ld [$ff4f], a
|
|
ret
|
|
|
|
Func_86f: ; 0x86f
|
|
ld [$fffa], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, [$ff40]
|
|
bit 7, a
|
|
jr nz, .asm_8ac
|
|
ld a, $1
|
|
ld [$ff4f], a
|
|
ld b, $4
|
|
.asm_887
|
|
push bc
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld bc, $001a
|
|
add hl, bc
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_887
|
|
xor a
|
|
ld [$ff4f], a
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
.asm_8ac
|
|
ld b, $4
|
|
.asm_8ae
|
|
push bc
|
|
ld a, [de]
|
|
call Func_858
|
|
inc hl
|
|
inc de
|
|
ld a, [de]
|
|
call Func_858
|
|
inc hl
|
|
inc de
|
|
ld a, [de]
|
|
call Func_858
|
|
inc hl
|
|
inc de
|
|
ld a, [de]
|
|
call Func_858
|
|
inc hl
|
|
inc de
|
|
ld a, [de]
|
|
call Func_858
|
|
inc hl
|
|
inc de
|
|
ld a, [de]
|
|
call Func_858
|
|
inc de
|
|
ld bc, $001b
|
|
add hl, bc
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_8ae
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
Func_8e1: ; 0x8e1
|
|
ld [$fffa], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, [$ff40]
|
|
bit 7, a
|
|
jr nz, .asm_902
|
|
ld a, c
|
|
ld [hli], a
|
|
.asm_8f5
|
|
ld a, [de]
|
|
ld [hl], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_8f5
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
.asm_902
|
|
ld a, c
|
|
call PutTileInVRAM
|
|
inc hl
|
|
.asm_907
|
|
ld a, [de]
|
|
call PutTileInVRAM
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_907
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
ClearOAMBuffer: ; 0x916
|
|
; Clears the OAM buffer by loading $f0 into all of the entries.
|
|
ld hl, wOAMBuffer ; 0xd000
|
|
ld b, 4 * 40 ; wOAMBuffer is 4 * 40 bytes long (40 OAM entries, 4 bytes each)
|
|
ld a, $f0 ; byte to write
|
|
.loop
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .loop
|
|
xor a
|
|
ld [$d802], a
|
|
ret
|
|
|
|
Func_926: ; 0x926
|
|
ld a, [$d802]
|
|
cp $a0
|
|
jr nc, .asm_93a
|
|
ld l, a
|
|
ld h, $d0
|
|
cpl
|
|
add $a1
|
|
ld b, a
|
|
ld a, $f0
|
|
.asm_936
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_936
|
|
.asm_93a
|
|
xor a
|
|
ld [$d802], a
|
|
ret
|
|
|
|
Func_93f: ; 0x93f
|
|
push bc
|
|
rst $10
|
|
pop bc
|
|
dec bc
|
|
ld a, c
|
|
or b
|
|
jr nz, Func_93f
|
|
ret
|
|
|
|
Func_948: ; 0x948
|
|
ld de, $06d6
|
|
.asm_94b
|
|
nop
|
|
nop
|
|
nop
|
|
dec de
|
|
ld a, d
|
|
or e
|
|
jr nz, .asm_94b
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, Func_948
|
|
ret
|
|
|
|
Func_959: ; 0x959
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld a, [$d811]
|
|
ld c, a
|
|
ld b, $0
|
|
inc a
|
|
cp $37
|
|
jr nz, .asm_96e
|
|
call Func_9fa
|
|
xor a
|
|
ld bc, $0000
|
|
.asm_96e
|
|
ld [$d811], a
|
|
ld hl, $d812
|
|
add hl, bc
|
|
ld a, [hl]
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
Func_97a: ; 0x97a
|
|
ld a, [$d810]
|
|
ld d, a
|
|
ld a, $0
|
|
ld a, [$afff]
|
|
.asm_983
|
|
cp d
|
|
jr c, .asm_989
|
|
sub d
|
|
jr .asm_983
|
|
.asm_989
|
|
ld [$d80f], a
|
|
ld [$d848], a
|
|
ld e, $1
|
|
ld hl, $09c4 ; todo
|
|
ld a, $36
|
|
.asm_996
|
|
push af
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, $0
|
|
push hl
|
|
ld hl, $d812
|
|
add hl, bc
|
|
ld [hl], e
|
|
ld a, [$d80f]
|
|
sub e
|
|
jr nc, .asm_9a8
|
|
add d
|
|
.asm_9a8
|
|
ld e, a
|
|
ld a, [hl]
|
|
ld [$d80f], a
|
|
pop hl
|
|
pop af
|
|
dec a
|
|
jr nz, .asm_996
|
|
call Func_9fa
|
|
call Func_9fa
|
|
call Func_9fa
|
|
ld a, $0
|
|
call Func_959
|
|
ld [$afff], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$9c4,$9fa - $9c4
|
|
|
|
Func_9fa: ; 0x9fa
|
|
ld a, [$d810]
|
|
ld d, a
|
|
ld bc, $d812
|
|
ld hl, $d831
|
|
ld e, $18
|
|
.asm_a06
|
|
ld a, [bc]
|
|
sub [hl]
|
|
jr nc, .asm_a0b
|
|
add d
|
|
.asm_a0b
|
|
ld [bc], a
|
|
dec e
|
|
jr nz, .asm_a06
|
|
ld bc, $d82a
|
|
ld hl, $d812
|
|
ld e, $1f
|
|
.asm_a17
|
|
ld a, [bc]
|
|
sub [hl]
|
|
jr nc, .asm_a1c
|
|
add d
|
|
.asm_a1c
|
|
ld [bc], a
|
|
dec e
|
|
jr nz, .asm_a17
|
|
ret
|
|
|
|
Func_a21: ; 0xa21
|
|
push bc
|
|
push hl
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $0a38
|
|
add hl, bc
|
|
ld l, [hl]
|
|
call Func_959
|
|
call Func_dd4
|
|
inc h
|
|
srl h
|
|
ld a, h
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$a38,$ab8 - $a38
|
|
|
|
ReadJoypad: ; 0xab8
|
|
; Reads the current state of the joypad and saves the state into
|
|
; some registers the game uses during gameplay. It remembers the joypad state
|
|
; from the current frame, previous frame, and two frames ago.
|
|
ld a, $20
|
|
ld [$ff00], a
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
and $f
|
|
swap a
|
|
ld b, a
|
|
ld a, $30
|
|
ld [$ff00], a
|
|
ld a, $10
|
|
ld [$ff00], a
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
and $f
|
|
or b
|
|
cpl ; a contains currently-pressed buttons
|
|
ld [hJoypadState], a
|
|
ld a, $30
|
|
ld [$ff00], a
|
|
ld a, [hJoypadState]
|
|
ld hl, hPreviousJoypadState
|
|
xor [hl] ; a contains buttons that are different from previous frame
|
|
push af
|
|
ld hl, hJoypadState
|
|
and [hl] ; a contains newly-pressed buttons compared to last frame
|
|
ld [hNewlyPressedButtons], a
|
|
ld [hPressedButtons], a
|
|
pop af
|
|
ld hl, hPreviousJoypadState
|
|
and [hl] ; a contains newly-pressed buttons compared to two frames ago
|
|
ld [hPrevPreviousJoypadState], a
|
|
ld a, [hJoypadState]
|
|
and a
|
|
jr z, .asm_b15
|
|
ld hl, hPreviousJoypadState
|
|
cp [hl]
|
|
jr nz, .asm_b15
|
|
; button(s) is pressed, and they're identical to the buttons pressed last frame.
|
|
; this code is related to holding down a button for an extended period of time.
|
|
ld hl, $ff9d
|
|
dec [hl]
|
|
jr nz, .asm_b1a
|
|
ld a, [hJoypadState]
|
|
ld [hPressedButtons], a
|
|
ld a, [$d807]
|
|
ld [$ff9d], a
|
|
jr .asm_b1a
|
|
.asm_b15
|
|
ld a, [$d806]
|
|
ld [$ff9d], a
|
|
.asm_b1a
|
|
ld a, [hJoypadState]
|
|
ld [hPreviousJoypadState], a
|
|
ld hl, $d808
|
|
ld a, [hJoypadState]
|
|
or [hl]
|
|
ld [hli], a
|
|
ld a, [hNewlyPressedButtons]
|
|
or [hl]
|
|
ld [hli], a
|
|
ld a, [hPressedButtons]
|
|
or [hl]
|
|
ld [hli], a
|
|
ret
|
|
|
|
Func_b2e: ; 0xb2e
|
|
ld hl, $d808
|
|
xor a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ret
|
|
|
|
IsKeyPressed2: ; 0xb36
|
|
ld a, [hJoypadState]
|
|
and [hl]
|
|
jr z, .asm_b3e
|
|
cp [hl]
|
|
jr z, .asm_b48
|
|
.asm_b3e
|
|
inc hl
|
|
ld a, [hJoypadState]
|
|
and [hl]
|
|
ret z
|
|
cp [hl]
|
|
jr z, .asm_b48
|
|
xor a
|
|
ret
|
|
.asm_b48
|
|
ld a, $1
|
|
and a
|
|
ret
|
|
|
|
IsKeyPressed: ; 0xb4c
|
|
; Checks if a key for the specified key config is pressed.
|
|
; input: hl = pointer to key config byte pair (e.g. wKeyConfigLeftFlipper)
|
|
; output: zero flag is set if a corresponding key is pressed
|
|
; zero flag is reset if no corresponding key is pressed
|
|
ld a, [hJoypadState]
|
|
and [hl]
|
|
jr z, .asm_b58
|
|
cp [hl]
|
|
jr nz, .asm_b58
|
|
ld a, [hNewlyPressedButtons]
|
|
and [hl]
|
|
ret nz
|
|
.asm_b58
|
|
inc hl
|
|
ld a, [hJoypadState]
|
|
and [hl]
|
|
ret z
|
|
cp [hl]
|
|
jr nz, .asm_b64
|
|
ld a, [hNewlyPressedButtons]
|
|
and [hl]
|
|
ret
|
|
.asm_b64
|
|
xor a
|
|
ret
|
|
|
|
Func_b66: ; 0xb66
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_b73
|
|
xor a
|
|
ld [$ffa3], a
|
|
ld [$ffa4], a
|
|
ld [$ffa5], a
|
|
ret
|
|
.asm_b73
|
|
ld de, $ff68
|
|
ld hl, $d200 ; todo
|
|
ld b, $0
|
|
ld c, $20
|
|
.asm_b7d
|
|
ld a, b
|
|
ld [$ff68], a
|
|
inc b
|
|
ld a, [$ff69]
|
|
ld [hli], a
|
|
ld a, b
|
|
ld [$ff68], a
|
|
inc b
|
|
ld a, [$ff69]
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .asm_b7d
|
|
ld b, $0
|
|
ld c, $20
|
|
.asm_b92
|
|
ld a, b
|
|
ld [$ff6a], a
|
|
inc b
|
|
ld a, [$ff6b]
|
|
ld [hli], a
|
|
ld a, b
|
|
ld [$ff6a], a
|
|
inc b
|
|
ld a, [$ff6b]
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .asm_b92
|
|
ld de, $ff68
|
|
ld b, $2
|
|
.asm_ba8
|
|
ld a, $80
|
|
ld [de], a
|
|
inc de
|
|
ld c, $20
|
|
.asm_bae
|
|
ld a, $ff
|
|
ld [de], a
|
|
ld [hli], a
|
|
ld a, $7f
|
|
ld [de], a
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .asm_bae
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_ba8
|
|
ret
|
|
|
|
Func_bbe: ; 0xbbe
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jp nz, Func_c19
|
|
ld hl, $ffa3
|
|
ld de, $d80c
|
|
ld b, $3
|
|
.asm_bcc
|
|
ld a, [de]
|
|
and $55
|
|
ld c, a
|
|
ld a, [de]
|
|
and $aa
|
|
srl a
|
|
and c
|
|
ld [hli], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_bcc
|
|
ld bc, $0002
|
|
call Func_93f
|
|
ld hl, $ffa3
|
|
ld de, $d80c
|
|
ld b, $3
|
|
.asm_be9
|
|
ld a, [de]
|
|
and $aa
|
|
srl a
|
|
add [hl]
|
|
ld [hli], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_be9
|
|
ld bc, $0002
|
|
call Func_93f
|
|
ld hl, $ffa3
|
|
ld de, $d80c
|
|
ld b, $3
|
|
.asm_c02
|
|
ld a, [de]
|
|
and $55
|
|
ld c, a
|
|
ld a, [de]
|
|
and $aa
|
|
srl a
|
|
or c
|
|
add [hl]
|
|
ld [hli], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_c02
|
|
ld bc, $0002
|
|
call Func_93f
|
|
ret
|
|
|
|
Func_c19: ; 0xc19
|
|
ld b, $10
|
|
.asm_c1b
|
|
push bc
|
|
ld de, $d200
|
|
ld hl, $d280
|
|
call Func_c2d
|
|
call Func_d61
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_c1b
|
|
ret
|
|
|
|
Func_c2d: ; 0xc2d
|
|
ld a, b
|
|
cp $1
|
|
jr z, .asm_c49
|
|
ld c, $40
|
|
.asm_c34
|
|
push bc
|
|
ld a, [hli]
|
|
sub $42
|
|
ld c, a
|
|
ld a, [hld]
|
|
sbc $8
|
|
ld b, a
|
|
call Func_c60
|
|
ld a, c
|
|
ld [hli], a
|
|
ld a, b
|
|
ld [hli], a
|
|
pop bc
|
|
dec c
|
|
jr nz, .asm_c34
|
|
ret
|
|
.asm_c49
|
|
ld c, $40
|
|
.asm_c4b
|
|
push bc
|
|
ld a, [hli]
|
|
sub $21
|
|
ld c, a
|
|
ld a, [hld]
|
|
sbc $4
|
|
ld b, a
|
|
call Func_c60
|
|
ld a, c
|
|
ld [hli], a
|
|
ld a, b
|
|
ld [hli], a
|
|
pop bc
|
|
dec c
|
|
jr nz, .asm_c4b
|
|
ret
|
|
|
|
Func_c60: ; 0xc60
|
|
push hl
|
|
ld a, [de]
|
|
and $1f
|
|
ld l, a
|
|
ld a, c
|
|
and $1f
|
|
cp l
|
|
jr nc, .asm_c70
|
|
ld a, c
|
|
and $e0
|
|
or l
|
|
ld c, a
|
|
.asm_c70
|
|
ld a, [de]
|
|
and $e0
|
|
ld l, a
|
|
inc de
|
|
ld a, [de]
|
|
srl a
|
|
rr l
|
|
srl a
|
|
rr l
|
|
ld a, c
|
|
and $e0
|
|
ld h, a
|
|
ld a, b
|
|
srl a
|
|
rr h
|
|
srl a
|
|
rr h
|
|
ld a, h
|
|
cp l
|
|
jr nc, .asm_ca3
|
|
ld h, $0
|
|
sla l
|
|
rl h
|
|
sla l
|
|
rl h
|
|
ld a, c
|
|
and $1f
|
|
or l
|
|
ld c, a
|
|
ld a, b
|
|
and $7c
|
|
or h
|
|
ld b, a
|
|
.asm_ca3
|
|
ld a, [de]
|
|
and $7c
|
|
ld l, a
|
|
ld a, b
|
|
and $7c
|
|
cp l
|
|
jr nc, .asm_cb2
|
|
ld a, b
|
|
and $3
|
|
or l
|
|
ld b, a
|
|
.asm_cb2
|
|
inc de
|
|
pop hl
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$cb5,$cb5 - $cb5
|
|
|
|
Func_cb5: ; 0xcb5
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jp nz, Func_cee
|
|
ld hl, $ffa3
|
|
ld b, $3
|
|
.asm_cc0
|
|
push bc
|
|
push hl
|
|
ld b, $3
|
|
.asm_cc4
|
|
ld a, [hl]
|
|
and $55
|
|
ld c, a
|
|
ld a, [hl]
|
|
and $aa
|
|
srl a
|
|
or c
|
|
cpl
|
|
inc a
|
|
add [hl]
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_cc4
|
|
ld bc, $0002
|
|
call Func_93f
|
|
pop hl
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_cc0
|
|
xor a
|
|
ld hl, $ffa3
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld bc, $0002
|
|
call Func_93f
|
|
ret
|
|
|
|
Func_cee: ; 0xcee
|
|
ld hl, $d280
|
|
ld de, $ff68
|
|
call Func_d9d
|
|
ld hl, $d2c0
|
|
ld de, $ff6a
|
|
call Func_d9d
|
|
ld b, $10
|
|
.asm_d02
|
|
push bc
|
|
ld hl, $d280
|
|
call Func_d11
|
|
call Func_d61
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_d02
|
|
ret
|
|
|
|
Func_d11: ; 0xd11
|
|
ld b, $40
|
|
.asm_d13
|
|
ld a, [hl]
|
|
and $1f
|
|
add $2
|
|
ld e, a
|
|
cp $1f
|
|
jr c, .asm_d1f
|
|
ld e, $1f
|
|
.asm_d1f
|
|
ld a, [hl]
|
|
and $e0
|
|
or e
|
|
ld [hl], a
|
|
ld a, [hli]
|
|
and $e0
|
|
ld e, [hl]
|
|
dec hl
|
|
srl e
|
|
rr a
|
|
srl e
|
|
rr a
|
|
add $10
|
|
ld e, a
|
|
jr nc, .asm_d38
|
|
ld e, $f8
|
|
.asm_d38
|
|
ld d, $0
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
ld a, [hl]
|
|
and $1f
|
|
or e
|
|
ld [hli], a
|
|
ld a, [hl]
|
|
and $7c
|
|
or d
|
|
ld [hl], a
|
|
ld a, [hl]
|
|
and $7c
|
|
add $8
|
|
ld e, a
|
|
cp $7c
|
|
jr c, .asm_d58
|
|
ld e, $7c
|
|
.asm_d58
|
|
ld a, [hl]
|
|
and $3
|
|
or e
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_d13
|
|
ret
|
|
|
|
Func_d61: ; 0d61
|
|
ld a, [$ffff]
|
|
res 0, a
|
|
ld [$ffff], a
|
|
ld hl, $d280
|
|
ld de, $ff68
|
|
ld a, $80
|
|
ld [de], a
|
|
inc de
|
|
.asm_d71
|
|
ld a, [$ff44]
|
|
cp $90
|
|
jr c, .asm_d71
|
|
ld b, $10
|
|
.asm_d79
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
dec b
|
|
jr nz, .asm_d79
|
|
inc de
|
|
ld a, $80
|
|
ld [de], a
|
|
inc de
|
|
ld b, $10
|
|
.asm_d8b
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
dec b
|
|
jr nz, .asm_d8b
|
|
ld a, [$ffff]
|
|
set 0, a
|
|
ld [$ffff], a
|
|
ret
|
|
|
|
Func_d9d: ; 0xd9d
|
|
ld b, $0
|
|
ld c, e
|
|
inc c
|
|
call WaitForLCD
|
|
.asm_da4
|
|
call Func_61b
|
|
.asm_da7
|
|
ld a, [$ff41]
|
|
and $3
|
|
jr nz, .asm_da7 ; wait for lcd controller to finish transferring data
|
|
ld a, b
|
|
ld [de], a
|
|
ld a, [$ff00+c]
|
|
ld [hli], a
|
|
inc b
|
|
ld a, b
|
|
ld [de], a
|
|
ld a, [$ff00+c]
|
|
ld [hli], a
|
|
inc b
|
|
ld a, b
|
|
ld [de], a
|
|
ld a, [$ff00+c]
|
|
ld [hli], a
|
|
inc b
|
|
ld a, b
|
|
ld [de], a
|
|
ld a, [$ff00+c]
|
|
ld [hli], a
|
|
inc b
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
ld a, b
|
|
cp $40
|
|
jr nz, .asm_da4
|
|
ret
|
|
|
|
Func_dd4: ; 0xdd4
|
|
push bc
|
|
ld c, l
|
|
ld b, $0
|
|
ld hl, $0000
|
|
bit 0, a
|
|
jr z, .asm_de0
|
|
add hl, bc
|
|
.asm_de0
|
|
sla c
|
|
rl b
|
|
bit 1, a
|
|
jr z, .asm_de9
|
|
add hl, bc
|
|
.asm_de9
|
|
sla c
|
|
rl b
|
|
bit 2, a
|
|
jr z, .asm_df2
|
|
add hl, bc
|
|
.asm_df2
|
|
sla c
|
|
rl b
|
|
bit 3, a
|
|
jr z, .asm_dfb
|
|
add hl, bc
|
|
.asm_dfb
|
|
sla c
|
|
rl b
|
|
bit 4, a
|
|
jr z, .asm_e04
|
|
add hl, bc
|
|
.asm_e04
|
|
sla c
|
|
rl b
|
|
bit 5, a
|
|
jr z, .asm_e0d
|
|
add hl, bc
|
|
.asm_e0d
|
|
sla c
|
|
rl b
|
|
bit 6, a
|
|
jr z, .asm_e16
|
|
add hl, bc
|
|
.asm_e16
|
|
sla c
|
|
rl b
|
|
bit 7, a
|
|
jr z, .asm_e1f
|
|
add hl, bc
|
|
.asm_e1f
|
|
pop bc
|
|
ret
|
|
|
|
ConvertHexByteToDecWord: ; 0xe21
|
|
; Convert the base-16 value in register a into a Binary Coded Decimal (base-10) word.
|
|
; Example: If a = $97, de = $0151.
|
|
ld b, a
|
|
ld hl, $0e3a ; todo
|
|
ld de, $0000
|
|
.asm_e28
|
|
srl b
|
|
ld a, [hli]
|
|
jr nc, .asm_e34
|
|
add e
|
|
daa
|
|
ld e, a
|
|
ld a, [hl]
|
|
adc d
|
|
daa
|
|
ld d, a
|
|
.asm_e34
|
|
inc hl
|
|
ld a, b
|
|
and a
|
|
jr nz, .asm_e28
|
|
ret
|
|
|
|
PowersOfTwo: ; 0xe3a
|
|
dw $0001
|
|
dw $0002
|
|
dw $0004
|
|
dw $0008
|
|
dw $0016
|
|
dw $0032
|
|
dw $0064
|
|
dw $0128
|
|
|
|
Func_e4a: ; 0xe4a
|
|
ld a, [hl]
|
|
cp $64
|
|
jr z, .asm_e53
|
|
inc a
|
|
ld [hl], a
|
|
scf
|
|
ret
|
|
.asm_e53
|
|
and a
|
|
ret
|
|
|
|
Func_e55: ; 0xe55
|
|
cp c
|
|
jr c, .asm_e5b
|
|
sub c
|
|
jr Func_e55
|
|
.asm_e5b
|
|
and a
|
|
ret
|
|
|
|
Func_e5d: ; 0xe5d
|
|
ld a, $1
|
|
ld [$d84a], a
|
|
.asm_e62
|
|
ld a, [$d84a]
|
|
and a
|
|
jr nz, .asm_e62
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$e69,$f0c - $e69
|
|
|
|
Func_f0c: ; 0xf0c
|
|
call Func_f34
|
|
ret nc
|
|
.asm_f10
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .asm_f10
|
|
scf
|
|
ret
|
|
|
|
Func_f1a: ; 0xf1a
|
|
push bc
|
|
push de
|
|
push hl
|
|
.asm_f1d
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .asm_f1d
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ld h, d
|
|
ld l, e
|
|
call Func_f74
|
|
call Func_fa1
|
|
call Func_f4c
|
|
ret
|
|
|
|
Func_f34: ; 0xf34
|
|
call Func_f62
|
|
jr nc, .asm_f3f
|
|
call Func_f7e
|
|
jr nc, .asm_f3f
|
|
ret
|
|
.asm_f3f
|
|
add hl, bc
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
call Func_f62
|
|
ret nc
|
|
call Func_f7e
|
|
ret
|
|
|
|
Func_f4c: ; 0xf4c
|
|
push bc
|
|
push hl
|
|
push de
|
|
inc bc
|
|
inc bc
|
|
inc bc
|
|
inc bc
|
|
ld d, h
|
|
ld e, l
|
|
add hl, bc
|
|
.asm_f56
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .asm_f56
|
|
pop de
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
Func_f62: ; 0xf62
|
|
push hl
|
|
add hl, bc
|
|
ld a, [hli]
|
|
cp $4e
|
|
jr nz, .asm_f71
|
|
ld a, [hl]
|
|
cp $54
|
|
jr nz, .asm_f71
|
|
scf
|
|
jr .asm_f72
|
|
.asm_f71
|
|
and a
|
|
.asm_f72
|
|
pop hl
|
|
ret
|
|
|
|
Func_f74: ; 0xf74
|
|
push hl
|
|
add hl, bc
|
|
ld a, $4e
|
|
ld [hli], a
|
|
ld a, $54
|
|
ld [hl], a
|
|
pop hl
|
|
ret
|
|
|
|
Func_f7e: ; 0xf7e
|
|
push bc
|
|
push de
|
|
push hl
|
|
inc bc
|
|
inc bc
|
|
ld de, $0000
|
|
.asm_f86
|
|
ld a, [hli]
|
|
add e
|
|
ld e, a
|
|
jr nc, .asm_f8c
|
|
inc d
|
|
.asm_f8c
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .asm_f86
|
|
ld a, [hli]
|
|
cp e
|
|
jr nz, .asm_f9c
|
|
ld a, [hl]
|
|
cp d
|
|
jr nz, .asm_f9c
|
|
scf
|
|
jr .asm_f9d
|
|
.asm_f9c
|
|
and a
|
|
.asm_f9d
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
Func_fa1: ; 0xfa1
|
|
push bc
|
|
push de
|
|
push hl
|
|
inc bc
|
|
inc bc
|
|
ld de, $0000
|
|
.asm_fa9
|
|
ld a, [hli]
|
|
add e
|
|
ld e, a
|
|
jr nc, .asm_faf
|
|
inc d
|
|
.asm_faf
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .asm_fa9
|
|
ld a, e
|
|
ld [hli], a
|
|
ld a, d
|
|
ld [hl], a
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$fbc,$10aa - $fbc
|
|
|
|
Func_10aa: ; 0x10aa
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
.asm_10ad
|
|
push bc
|
|
ld a, c
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, [hl]
|
|
inc hl
|
|
push af
|
|
ld a, [bc]
|
|
ld e, a
|
|
inc bc
|
|
ld a, [bc]
|
|
ld d, a
|
|
inc bc
|
|
pop af
|
|
push hl
|
|
call Func_10c5
|
|
pop hl
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_10ad
|
|
ret
|
|
|
|
Func_10c5: ; 0x10c5
|
|
push af
|
|
ld a, [$ff40]
|
|
bit 7, a
|
|
jr z, .asm_10d2
|
|
.asm_10cc
|
|
ld a, [$ff44]
|
|
cp $88
|
|
jr nc, .asm_10cc
|
|
.asm_10d2
|
|
pop af
|
|
ld hl, $d7fb
|
|
ld l, [hl]
|
|
ld h, $cb
|
|
inc bc
|
|
ld [hl], c
|
|
inc h
|
|
ld [hl], b
|
|
inc h
|
|
ld [hl], a
|
|
inc h
|
|
ld [hl], e
|
|
inc h
|
|
ld [hl], d
|
|
ld e, $ff
|
|
ld [$fffa], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
dec bc
|
|
ld a, [bc]
|
|
ld hl, $d7fa
|
|
add [hl]
|
|
cp $30
|
|
jr c, .asm_10fe
|
|
ld a, [bc]
|
|
ld e, $0
|
|
.asm_10fe
|
|
add $4
|
|
ld [hl], a
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld hl, $d7fb
|
|
ld l, [hl]
|
|
ld h, $ca
|
|
inc l
|
|
ld [hl], $0
|
|
dec l
|
|
ld [hl], e
|
|
ld hl, $d7fb
|
|
inc [hl]
|
|
ld a, [$ff40]
|
|
bit 7, a
|
|
ret nz
|
|
ld a, [$ffff]
|
|
push af
|
|
res 0, a
|
|
ld [$ffff], a
|
|
call Func_113a
|
|
pop af
|
|
ld [$ffff], a
|
|
ret
|
|
|
|
Func_1129: ; 0x1129
|
|
ld a, [$d7fb]
|
|
ld [$d7fc], a
|
|
ret
|
|
|
|
Func_1130: ; 0x1130
|
|
push hl
|
|
ld a, [$d7fb]
|
|
ld hl, $d7fc
|
|
cp [hl]
|
|
pop hl
|
|
ret
|
|
|
|
Func_113a: ; 0x113a
|
|
ld hl, $d7fc
|
|
ld a, [$d7fb]
|
|
cp [hl]
|
|
ret z
|
|
ld l, [hl]
|
|
ld h, $ca
|
|
ld [hl], $ff
|
|
.asm_1147
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_116c
|
|
push hl
|
|
inc h
|
|
ld e, [hl]
|
|
inc h
|
|
ld d, [hl]
|
|
inc h
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [hl]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
inc h
|
|
ld a, [hl]
|
|
inc h
|
|
ld h, [hl]
|
|
ld l, a
|
|
call Func_117a
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
pop hl
|
|
inc l
|
|
jr .asm_1147
|
|
.asm_116c
|
|
ld a, l
|
|
ld [$d7fc], a
|
|
ld hl, $d7fb
|
|
cp [hl]
|
|
ret nz
|
|
xor a
|
|
ld [$d7fa], a
|
|
ret
|
|
|
|
Func_117a: ; 0x117a
|
|
jp [hl]
|
|
|
|
INCBIN "baserom.gbc",$117b,$12a1 - $117b
|
|
|
|
Func_12a1: ; 0x12a1
|
|
ld [$fffa], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, [hl]
|
|
and $7
|
|
jr z, .asm_12e5
|
|
ld b, a
|
|
ld c, $0
|
|
.asm_12b5
|
|
push bc
|
|
ld a, $0
|
|
ld [$ff00+c], a
|
|
ld a, $30
|
|
ld [$ff00+c], a
|
|
ld b, $10
|
|
.asm_12be
|
|
ld e, $8
|
|
ld a, [hli]
|
|
ld d, a
|
|
.asm_12c2
|
|
bit 0, d
|
|
ld a, $10
|
|
jr nz, .asm_12ca
|
|
ld a, $20
|
|
.asm_12ca
|
|
ld [$ff00+c], a
|
|
ld a, $30
|
|
ld [$ff00+c], a
|
|
rr d
|
|
dec e
|
|
jr nz, .asm_12c2
|
|
dec b
|
|
jr nz, .asm_12be
|
|
ld a, $20
|
|
ld [$ff00+c], a
|
|
ld a, $30
|
|
ld [$ff00+c], a
|
|
pop bc
|
|
dec b
|
|
jr z, .asm_12e5
|
|
call Func_12ec
|
|
jr .asm_12b5
|
|
.asm_12e5
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
Func_12ec ; 0x12ec
|
|
ld de, $1b58
|
|
.asm_12ef
|
|
nop
|
|
nop
|
|
nop
|
|
dec de
|
|
ld a, d
|
|
or e
|
|
jr nz, .asm_12ef
|
|
ret
|
|
|
|
Func_12f8: ; 0x12f8
|
|
ld a, $e
|
|
ld hl, $4010 ; todo
|
|
call Func_12a1
|
|
call Func_12ec
|
|
ld a, [$ff00]
|
|
and $3
|
|
cp $3
|
|
jr nz, .asm_1346
|
|
ld a, $20
|
|
ld [$ff00], a
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, $30
|
|
ld [$ff00], a
|
|
ld a, $10
|
|
ld [$ff00], a
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, $30
|
|
ld [$ff00], a
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
ld a, [$ff00]
|
|
and $3
|
|
cp $3
|
|
jr nz, .asm_1346
|
|
ld a, $e
|
|
ld hl, $4000
|
|
call Func_12a1
|
|
call Func_12ec
|
|
and a
|
|
ret
|
|
.asm_1346
|
|
ld a, $e
|
|
ld hl, $4000
|
|
call Func_12a1
|
|
call Func_12ec
|
|
scf
|
|
ret
|
|
|
|
Func_1353: ; 0x1353
|
|
ld [$fffa], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$fffa]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
push af
|
|
push hl
|
|
ld a, $e4
|
|
ld [$ff47], a
|
|
ld de, $0010
|
|
add hl, de
|
|
ld de, vTiles1 ; tiles
|
|
call Func_65d
|
|
ld hl, vBGMap0 ; bgmap
|
|
ld de, $000c
|
|
ld a, $80
|
|
ld c, $d
|
|
.asm_1379
|
|
ld b, $14
|
|
.asm_137b
|
|
ld [hli], a
|
|
inc a
|
|
dec b
|
|
jr nz, .asm_137b
|
|
add hl, de
|
|
dec c
|
|
jr nz, .asm_1379
|
|
ld a, $81
|
|
ld [$ff40], a
|
|
ld bc, $0005
|
|
call Func_948
|
|
pop hl
|
|
pop af
|
|
call Func_12a1
|
|
ld bc, $0006
|
|
call Func_948
|
|
ld a, [$ffa3]
|
|
ld [$ff47], a
|
|
ld a, [$ff9e]
|
|
ld [$ff40], a
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
Func_13a8: ; 0x13a8
|
|
ld a, [$fffb]
|
|
and a
|
|
ret z
|
|
ld bc, $0078
|
|
call Func_948
|
|
call Func_1489
|
|
ld a, $e
|
|
ld hl, $69e6
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld a, $e
|
|
ld hl, $69f6
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld a, $e
|
|
ld hl, $6a06
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld a, $e
|
|
ld hl, $6a16
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld a, $e
|
|
ld hl, $6a26
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld a, $e
|
|
ld hl, $6a36
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld a, $e
|
|
ld hl, $6a46
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld a, $e
|
|
ld hl, $6a56
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld bc, $1000
|
|
ld a, $e
|
|
ld hl, $4156 ; todo
|
|
call Func_1353
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld bc, $1000
|
|
ld a, $e
|
|
ld hl, $5166 ; todo
|
|
call Func_1353
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld bc, $0860
|
|
ld a, $e
|
|
ld hl, $6176 ; todo
|
|
call Func_1353
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld bc, $00a0
|
|
ld a, $e
|
|
ld hl, $40a6 ; todo
|
|
call Func_1353
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld bc, $005a
|
|
ld a, $e
|
|
ld hl, $4030
|
|
call Func_1353
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld a, $e
|
|
ld hl, $4020
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ret
|
|
|
|
Func_1489: ; 0x1489
|
|
ld a, [$fffb]
|
|
and a
|
|
ret z
|
|
ld a, [$fffc]
|
|
and a
|
|
ret nz
|
|
ld a, $e
|
|
ld hl, $6a66 ; todo
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
ld a, $ff
|
|
ld [$fffc], a
|
|
ret
|
|
|
|
Func_14a4: ; 0x14a4
|
|
ld a, [$fffb]
|
|
and a
|
|
ret z
|
|
ld bc, $0002
|
|
call Func_948
|
|
ld a, [$fffc]
|
|
and a
|
|
ret z
|
|
ld a, $e
|
|
ld hl, $6a76
|
|
call Func_12a1
|
|
ld bc, $0004
|
|
call Func_948
|
|
xor a
|
|
ld [$fffc], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$14c4,$167b - $14c4
|
|
|
|
Func_167b: ; 0x167b
|
|
ld a, [$d8ad]
|
|
cp $1
|
|
ret nz
|
|
ld a, [$d8c7]
|
|
cp $ff
|
|
ret z
|
|
ld a, [$d8db]
|
|
and a
|
|
ret nz
|
|
ld hl, $d8e0
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $6
|
|
ret c
|
|
xor a
|
|
ld [hl], a
|
|
ld [$d8e2], a
|
|
call Func_18ac
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$169d,$16a2 - $169d
|
|
|
|
Func_16a2: ; 0x16a2
|
|
xor a
|
|
ld [$ff01], a
|
|
ld [$ff02], a
|
|
ld [$d8ad], a
|
|
dec a
|
|
ld [$d8c7], a
|
|
ld [$d8c8], a
|
|
call Func_16b5
|
|
ret
|
|
|
|
Func_16b5: ; 0x16b5
|
|
xor a
|
|
ld [$d8c5], a
|
|
ld [$d8ca], a
|
|
ld [$d8db], a
|
|
; fall through
|
|
Func_16bf: ; 0x16bf
|
|
xor a
|
|
ld [$d8af], a
|
|
ld [$d8b0], a
|
|
ld [$d8b1], a
|
|
ld [$d8b2], a
|
|
ld [$d8c6], a
|
|
ld [$d8c3], a
|
|
ld [$d8c4], a
|
|
ld [$d8b9], a
|
|
ld [$d8ba], a
|
|
ld [$d8dc], a
|
|
ld [$d8e2], a
|
|
ret
|
|
|
|
Func_16e2: ; 0x16e2
|
|
ld a, [$d8db]
|
|
and a
|
|
jr z, .asm_16ec
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_16ec
|
|
ld a, [$d8ae]
|
|
cp $1
|
|
jr nz, .asm_16f7
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_16f7
|
|
call Func_1925
|
|
jp Func_19e5
|
|
|
|
Func_16fd: ; 0x16fd
|
|
ld a, [$d8c5]
|
|
cp $2
|
|
jr nz, .asm_173c
|
|
xor a
|
|
ld [$d8e0], a
|
|
ld [$d8ae], a
|
|
inc a
|
|
ld [$d8ad], a
|
|
ld a, [$d8c7]
|
|
cp $ff
|
|
jr z, .asm_1735
|
|
bit 0, a
|
|
jr nz, .asm_172e
|
|
bit 1, a
|
|
jr nz, .asm_172e
|
|
bit 4, a
|
|
jr z, .asm_173a
|
|
xor a
|
|
ld [$d8ad], a
|
|
ld [$d8ae], a
|
|
ld a, [$d8c7]
|
|
jr .asm_173a
|
|
.asm_172e
|
|
scf
|
|
ret
|
|
|
|
xor a
|
|
ld [$d8ae], a
|
|
dec a
|
|
.asm_1735
|
|
inc a
|
|
ld [$d8ad], a
|
|
dec a
|
|
.asm_173a
|
|
and a
|
|
ret
|
|
.asm_173c
|
|
xor a
|
|
ld a, $f0
|
|
ret
|
|
|
|
Func_1740: ; 0x1740
|
|
ld a, [$d8ad]
|
|
cp $1
|
|
jr z, .asm_1752
|
|
cp $2
|
|
jr z, .asm_1752
|
|
and a
|
|
ld a, $ff
|
|
ret z
|
|
.asm_174f
|
|
ld a, $f0
|
|
ret
|
|
.asm_1752
|
|
ld a, [$d8e2]
|
|
and a
|
|
jr nz, .asm_174f
|
|
ld a, [$d8db]
|
|
and a
|
|
jr z, .asm_1762
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_1762
|
|
ld a, [$d8ae]
|
|
cp $2
|
|
jr nz, .asm_176d
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_176d
|
|
ld a, [$d8c7]
|
|
cp $ff
|
|
ret z
|
|
call Func_1932
|
|
jp Func_19e5
|
|
|
|
Func_1779: ; 0x1779
|
|
ld c, a
|
|
ld a, [$d8ad]
|
|
and a
|
|
ld a, [$d8c7]
|
|
ret z
|
|
ld a, [$d8ad]
|
|
cp $1
|
|
jr z, .asm_1790
|
|
cp $3
|
|
jr z, .asm_1790
|
|
ld a, $f0
|
|
ret
|
|
.asm_1790
|
|
ld a, [$d8db]
|
|
and a
|
|
jr nz, .asm_17df
|
|
ld a, c
|
|
inc a
|
|
ld [$d8de], a
|
|
ld a, l
|
|
ld [$d8c1], a
|
|
ld a, h
|
|
ld [$d8c2], a
|
|
ld a, [$d8c7]
|
|
cp $ff
|
|
ret z
|
|
ld a, [$d8ab]
|
|
ld [$d8ac], a
|
|
and a
|
|
jr z, .asm_17d6
|
|
ld a, [$d8de]
|
|
dec a
|
|
dec a
|
|
push af
|
|
ld c, a
|
|
ld b, $0
|
|
push hl
|
|
ld hl, $d89d
|
|
add hl, bc
|
|
ld a, [hl]
|
|
pop hl
|
|
ld [$d8ac], a
|
|
pop af
|
|
add a
|
|
ld c, a
|
|
ld b, $0
|
|
push hl
|
|
ld hl, $d88b
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld b, [hl]
|
|
pop hl
|
|
ld c, a
|
|
jp .asm_17d9
|
|
.asm_17d6
|
|
ld bc, $0280
|
|
.asm_17d9
|
|
call Func_1989
|
|
jp Func_19e5
|
|
.asm_17df
|
|
ld a, [$d8c5]
|
|
cp $2
|
|
ld a, $f0
|
|
jp nz, .asm_1869
|
|
ld hl, $d8de
|
|
ld a, [$d8c7]
|
|
bit 4, a
|
|
jp nz, .asm_1859
|
|
bit 1, a
|
|
jp nz, .asm_1804
|
|
bit 0, a
|
|
jp nz, .asm_1804
|
|
dec [hl]
|
|
ld a, [$d8c7]
|
|
jr z, .asm_1860
|
|
.asm_1804
|
|
ld a, [hl]
|
|
cp $1
|
|
jr z, .asm_186a
|
|
ld bc, $0280
|
|
ld a, [$d8ab]
|
|
ld [$d8ac], a
|
|
and a
|
|
jr z, .asm_1836
|
|
ld a, [$d8de]
|
|
dec a
|
|
dec a
|
|
push af
|
|
ld c, a
|
|
ld b, $0
|
|
push hl
|
|
ld hl, $d89d
|
|
add hl, bc
|
|
ld a, [hl]
|
|
pop hl
|
|
ld [$d8ac], a
|
|
pop af
|
|
add a
|
|
ld c, a
|
|
ld b, $0
|
|
push hl
|
|
ld hl, $d88b
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld b, [hl]
|
|
pop hl
|
|
ld c, a
|
|
.asm_1836
|
|
ld a, [$d8c7]
|
|
bit 1, a
|
|
jp nz, .asm_184e
|
|
ld a, [$d8bf]
|
|
add $80
|
|
ld [$d8bf], a
|
|
ld a, [$d8c0]
|
|
adc $2
|
|
ld [$d8c0], a
|
|
.asm_184e
|
|
ld a, [$d8bf]
|
|
ld l, a
|
|
ld a, [$d8c0]
|
|
ld h, a
|
|
jp .asm_17d9
|
|
.asm_1859
|
|
push af
|
|
ld a, $1
|
|
ld [$d8dc], a
|
|
pop af
|
|
.asm_1860
|
|
push af
|
|
xor a
|
|
ld [$d8cc], a
|
|
ld [$d8db], a
|
|
pop af
|
|
.asm_1869
|
|
ret
|
|
.asm_186a
|
|
ld a, [$d8dd]
|
|
and a
|
|
ld a, [$d8c7]
|
|
jr z, .asm_1860
|
|
call Func_19d7
|
|
jp Func_19e5
|
|
|
|
INCBIN "baserom.gbc",$1879,$18ac - $1879
|
|
|
|
Func_18ac: ; 0x18ac
|
|
ld a, [$d8ad]
|
|
cp $1
|
|
jr z, .asm_18be
|
|
cp $3
|
|
jr z, .asm_18be
|
|
and a
|
|
ld a, $ff
|
|
ret z
|
|
ld a, $f0
|
|
ret
|
|
.asm_18be
|
|
ld a, [$d8db]
|
|
and a
|
|
jr z, .asm_18c8
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_18c8
|
|
ld a, [$d8c7]
|
|
cp $ff
|
|
ret z
|
|
call Func_19ca
|
|
jp Func_19e5
|
|
|
|
Func_18d4: ; 0x18d4
|
|
ld [$d8cb], a
|
|
ld a, d
|
|
ld [$d8cc], a
|
|
ld a, l
|
|
ld [$d8bb], a
|
|
ld [$d8bd], a
|
|
ld a, h
|
|
ld [$d8bc], a
|
|
ld [$d8be], a
|
|
ld a, c
|
|
ld [$d8b3], a
|
|
ld [$d8b5], a
|
|
ld a, b
|
|
ld [$d8b4], a
|
|
ld [$d8b6], a
|
|
xor a
|
|
ld [$d8c5], a
|
|
call Func_16bf
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$18ff,$1925 - $18ff
|
|
|
|
Func_1925: ; 0x1925
|
|
ld a, $1
|
|
ld d, $0
|
|
ld hl, $1901 ; todo
|
|
ld bc, $0008
|
|
jp Func_18d4
|
|
|
|
Func_1932: ; 0x19332
|
|
ld a, $2
|
|
ld d, $0
|
|
ld hl, $d8cd
|
|
ld bc, $000c
|
|
call Func_18d4
|
|
ld hl, $1909
|
|
ld de, $d8cd
|
|
ld bc, $0004
|
|
call Func_65d
|
|
ld de, $0006
|
|
ld a, [$d8a8]
|
|
ld [$d8d1], a
|
|
call Func_1982
|
|
ld a, [$d8a9]
|
|
ld [$d8d2], a
|
|
call Func_1982
|
|
ld a, [$d8aa]
|
|
ld [$d8d3], a
|
|
call Func_1982
|
|
ld a, [$d8a7]
|
|
ld [$d8d4], a
|
|
call Func_1982
|
|
ld a, e
|
|
ld [$d8d5], a
|
|
ld a, d
|
|
ld [$d8d6], a
|
|
xor a
|
|
ld [$d8d7], a
|
|
ld [$d8d8], a
|
|
ret
|
|
|
|
Func_1982: ; 0x1982
|
|
add e
|
|
ld e, a
|
|
ld a, d
|
|
adc $0
|
|
ld d, a
|
|
ret
|
|
|
|
Func_1989: ; 0x1989
|
|
ld a, l
|
|
ld [$d8bf], a
|
|
ld a, h
|
|
ld [$d8c0], a
|
|
ld a, c
|
|
ld [$d8b7], a
|
|
ld a, b
|
|
ld [$d8b8], a
|
|
push bc
|
|
ld a, $3
|
|
ld d, $1
|
|
ld hl, $d8cd
|
|
ld bc, $0004
|
|
call Func_18d4
|
|
ld a, [$190d]
|
|
ld [$d8cd], a
|
|
ld a, [$d8ac]
|
|
ld [$d8ce], a
|
|
pop bc
|
|
ld a, c
|
|
ld [$d8cf], a
|
|
ld a, b
|
|
ld [$d8d0], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$19bd,$19ca - $19bd
|
|
|
|
Func_19ca: ; 0x19ca
|
|
ld a, $5
|
|
ld d, $0
|
|
ld hl, $191d ; todo
|
|
ld bc, $0008
|
|
jp Func_18d4
|
|
|
|
Func_19d7: ; 0x19d7
|
|
ld a, $6
|
|
ld d, $1
|
|
ld hl, $190d ; todo
|
|
ld bc, $0008
|
|
jp Func_18d4
|
|
|
|
INCBIN "baserom.gbc",$19e4,$19e5 - $19e4
|
|
|
|
Func_19e5: ; 0x19e5
|
|
ld a, [$d8ad]
|
|
cp $1
|
|
jr z, .asm_19f8
|
|
and a
|
|
jr nz, .asm_19f6
|
|
ld a, [$d8cb]
|
|
cp $1
|
|
jr z, .asm_1a02
|
|
.asm_19f6
|
|
scf
|
|
ret
|
|
.asm_19f8
|
|
ld a, [$d8cb]
|
|
cp $1
|
|
jr z, .asm_19f6
|
|
ld [$d8ad], a
|
|
.asm_1a02
|
|
xor a
|
|
ld [$d8c5], a
|
|
ld [$d8ae], a
|
|
ld a, $1
|
|
ld [$d8b9], a
|
|
ld [$d8db], a
|
|
ld a, [$18ff]
|
|
ld [$ff01], a
|
|
ld a, $1
|
|
ld [$ff02], a
|
|
ld a, $81
|
|
ld [$ff02], a
|
|
ld a, $f0
|
|
ret
|
|
|
|
Func_1a21: ; 0x1a21
|
|
call Func_1a59
|
|
call Func_1a89
|
|
jr c, .asm_1a3f
|
|
.asm_1a29
|
|
call Func_1aa9
|
|
call Func_1b3d
|
|
jr c, .asm_1a3f
|
|
ld a, [$d86c]
|
|
and a
|
|
jr z, .asm_1a29
|
|
call Func_1b60
|
|
jr c, .asm_1a3f
|
|
call Func_1b88
|
|
.asm_1a3f
|
|
call Func_1ba7
|
|
ret
|
|
|
|
Func_1a43: ; 0x1a43
|
|
xor a
|
|
ld [$d86e], a
|
|
call Func_1a59
|
|
call Func_1a89
|
|
jr c, .asm_1a54
|
|
ld a, $1
|
|
ld [$d86e], a
|
|
.asm_1a54
|
|
call Func_1ba7
|
|
ret
|
|
|
|
ret ; unused instruction?
|
|
|
|
Func_1a59: ; 0x1a59
|
|
ld [$d86a], a
|
|
ld a, h
|
|
ld [$d869], a
|
|
ld a, l
|
|
ld [$d868], a
|
|
ld a, $80
|
|
ld [$d866], a
|
|
ld a, $c2
|
|
ld [$d867], a
|
|
xor a
|
|
ld [$d86b], a
|
|
ld [$d86c], a
|
|
ld [$d86d], a
|
|
call Func_16a2
|
|
ld hl, $ffff
|
|
set 3, [hl]
|
|
xor a
|
|
ld [$ffb1], a
|
|
ld a, $1
|
|
ld [$d8e1], a
|
|
ret
|
|
|
|
Func_1a89: ; 0x1a89
|
|
call Func_16e2
|
|
cp $f0
|
|
jr z, .asm_1a9f
|
|
cp $ff
|
|
jp z, Func_1bb2
|
|
ld a, [$d8c8]
|
|
cp $81
|
|
jp nz, Func_1bb2
|
|
and a
|
|
ret
|
|
.asm_1a9f
|
|
ld a, [hNewlyPressedButtons]
|
|
bit 1, a
|
|
jp nz, Func_1bd3
|
|
rst $10
|
|
jr Func_1a89
|
|
|
|
Func_1aa9: ; 0x1aa9
|
|
ld a, [$d866]
|
|
ld l, a
|
|
ld a, [$d867]
|
|
ld h, a
|
|
ld de, wc000
|
|
ld b, $2
|
|
.asm_1ab6
|
|
ld c, $14
|
|
.asm_1ab8
|
|
ld a, [hli]
|
|
call Func_1ae2
|
|
dec c
|
|
jr nz, .asm_1ab8
|
|
ld a, l
|
|
add $c
|
|
ld l, a
|
|
jr nc, .asm_1ac6
|
|
inc h
|
|
.asm_1ac6
|
|
dec b
|
|
jr nz, .asm_1ab6
|
|
ld a, l
|
|
ld [$d866], a
|
|
ld a, h
|
|
ld [$d867], a
|
|
ld a, [$d86b]
|
|
inc a
|
|
ld [$d86b], a
|
|
cp $9
|
|
jr nz, .asm_1ae1
|
|
ld a, $1
|
|
ld [$d86c], a
|
|
.asm_1ae1
|
|
ret
|
|
|
|
Func_1ae2: ; 0x1ae2
|
|
push bc
|
|
push hl
|
|
xor $80
|
|
swap a
|
|
ld c, a
|
|
and $f
|
|
ld b, a
|
|
ld a, c
|
|
and $f0
|
|
ld c, a
|
|
ld a, [$d868]
|
|
ld l, a
|
|
ld a, [$d869]
|
|
ld h, a
|
|
add hl, bc
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$d86a]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc e
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
Func_1b3d: ; 0x1b3d
|
|
ld a, [$d86c]
|
|
ld [$d8dd], a
|
|
ld hl, wc000
|
|
ld a, $1
|
|
call Func_1779
|
|
cp $ff
|
|
jp z, Func_1bb2
|
|
cp $f0
|
|
jr z, .asm_1b56
|
|
and a
|
|
ret
|
|
.asm_1b56
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_B_BUTTON, a
|
|
jp nz, Func_1bd3
|
|
rst $10
|
|
jr Func_1b3d
|
|
|
|
Func_1b60: ; 0x1b60
|
|
ld a, $1
|
|
ld [$d8a8], a
|
|
ld a, $13
|
|
ld [$d8a9], a
|
|
call Func_1740
|
|
cp $ff
|
|
jp z, Func_1bb2
|
|
cp $f0
|
|
jr z, .asm_1b7e
|
|
ld bc, $001e
|
|
call Func_93f
|
|
and a
|
|
ret
|
|
.asm_1b7e
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_B_BUTTON, a
|
|
jp nz, Func_1bd3
|
|
rst $10
|
|
jr Func_1b60
|
|
|
|
Func_1b88: ; 0x1b88
|
|
ld a, [$d8c7]
|
|
ld b, a
|
|
cp $ff
|
|
jr z, Func_1bb2
|
|
and $f0
|
|
jr nz, Func_1bb2
|
|
bit 1, b
|
|
jr nz, .asm_1b9d
|
|
call Func_16a2
|
|
and a
|
|
ret
|
|
.asm_1b9d
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_B_BUTTON, a
|
|
jp nz, Func_1bd3
|
|
rst $10
|
|
jr Func_1b88
|
|
|
|
Func_1ba7: ; 0x1ba7
|
|
ld hl, $ffff
|
|
res 3, [hl]
|
|
xor a
|
|
ld [$d8e1], a
|
|
and a
|
|
ret
|
|
|
|
Func_1bb2: ; 0x1bb2
|
|
ld hl, $1bcf ; todo
|
|
ld a, [$d8c7]
|
|
cp $ff
|
|
jr z, .asm_1bc6
|
|
ld b, $3
|
|
.asm_1bbe
|
|
inc hl
|
|
sla a
|
|
jr c, .asm_1bc6
|
|
dec b
|
|
jr nz, .asm_1bbe
|
|
.asm_1bc6
|
|
ld a, [hl]
|
|
ld [$d86d], a
|
|
call Func_16a2
|
|
scf
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1bcf,$1bd3 - $1bcf
|
|
|
|
Func_1bd3: ; 0x1bd3
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld a, $5
|
|
ld [$d86d], a
|
|
call Func_16a2
|
|
scf
|
|
ret
|
|
|
|
Func_1be3: ; 0x1be3
|
|
ld a, $c0
|
|
ld [$ff56], a
|
|
ld a, $ff
|
|
ld [$d8ea], a
|
|
xor a
|
|
ld b, a
|
|
.asm_1bee
|
|
inc a
|
|
jr nz, .asm_1bee
|
|
inc b
|
|
jr nz, .asm_1bee
|
|
ld hl, $d8eb
|
|
ld a, [$ff4d]
|
|
bit 7, a
|
|
jr z, .asm_1c0c
|
|
ld [hl], $e
|
|
inc hl
|
|
ld [hl], $12
|
|
inc hl
|
|
ld [hl], $8
|
|
inc hl
|
|
ld [hl], $c
|
|
inc hl
|
|
ld [hl], $c
|
|
ret
|
|
.asm_1c0c
|
|
ld [hl], $6
|
|
inc hl
|
|
ld [hl], $8
|
|
inc hl
|
|
ld [hl], $2
|
|
inc hl
|
|
ld [hl], $4
|
|
inc hl
|
|
ld [hl], $5
|
|
ret
|
|
|
|
Func_1c1b: ; 0x1c1b
|
|
inc d
|
|
ret z
|
|
ld a, [$ff00+c]
|
|
bit 1, a
|
|
jr z, Func_1c1b
|
|
ret
|
|
|
|
Func_1c23: ; 0x1c23
|
|
inc d
|
|
ret z
|
|
ld a, [$ff00+c]
|
|
bit 1, a
|
|
jr nz, Func_1c23
|
|
ret
|
|
|
|
Func_1c2b: ; 0x1c2b
|
|
ld a, $c1
|
|
ld [$ff00+c], a
|
|
.asm_1c2e
|
|
dec d
|
|
jr nz, .asm_1c2e
|
|
ret
|
|
|
|
Func_1c32: ; 0x1c32
|
|
ld a, $c0
|
|
ld [$ff00+c], a
|
|
.asm_1c35
|
|
dec d
|
|
jr nz, .asm_1c35
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1c39,$1c50 - $1c39
|
|
|
|
Func_1c50: ; 0x1c50
|
|
ld a, $1
|
|
ld [$d8e9], a
|
|
ld b, $1a
|
|
ld c, $56
|
|
ld d, $0
|
|
ld e, d
|
|
call Func_1c23
|
|
ld a, d
|
|
and a
|
|
jp z, Func_1dc2
|
|
ld d, e
|
|
call Func_1c1b
|
|
ld a, d
|
|
and a
|
|
jp z, Func_1dc2
|
|
call Func_1c23
|
|
ld a, d
|
|
and a
|
|
jp z, Func_1dc2
|
|
call Func_1c1b
|
|
ld a, d
|
|
and a
|
|
jp z, Func_1dc2
|
|
cp $8
|
|
jp c, Func_1dc2
|
|
cp $2a
|
|
jp nc, Func_1dc2
|
|
ld a, $0
|
|
ld [$d8ea], a
|
|
ld d, b
|
|
call Func_1c32
|
|
ld d, b
|
|
call Func_1c2b
|
|
ld d, b
|
|
call Func_1c32
|
|
ld d, b
|
|
call Func_1c2b
|
|
ld d, b
|
|
call Func_1c32
|
|
ret
|
|
|
|
Func_1ca1: ; 0x1ca1
|
|
ld a, $2
|
|
ld [$d8e9], a
|
|
ld b, $1a
|
|
ld c, $56
|
|
ld d, b
|
|
ld e, $0
|
|
call Func_1c32
|
|
ld d, b
|
|
call Func_1c2b
|
|
ld d, b
|
|
call Func_1c32
|
|
ld d, b
|
|
call Func_1c2b
|
|
ld d, b
|
|
call Func_1c32
|
|
ld d, e
|
|
call Func_1c23
|
|
ld a, d
|
|
and a
|
|
jp z, Func_1dc2
|
|
ld d, e
|
|
call Func_1c1b
|
|
ld a, d
|
|
and a
|
|
jp z, Func_1dc2
|
|
ld d, e
|
|
call Func_1c23
|
|
ld a, d
|
|
and a
|
|
jp z, Func_1dc2
|
|
ld d, e
|
|
call Func_1c1b
|
|
ld a, d
|
|
and a
|
|
jp z, Func_1dc2
|
|
ld d, $1a
|
|
call Func_1c32
|
|
ld a, $0
|
|
ld [$d8ea], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1cef,$1cf8 - $1cef
|
|
|
|
Func_1cf8: ; 0x1cf8
|
|
xor a
|
|
ld [$d8e4], a
|
|
ld [$d8e5], a
|
|
push hl
|
|
push bc
|
|
ld hl, $d8e6
|
|
ld a, $5a
|
|
ld [hli], a
|
|
ld [hl], b
|
|
dec hl
|
|
ld b, $2
|
|
ld d, $1e
|
|
call Func_1c32
|
|
call Func_1d44
|
|
pop bc
|
|
pop hl
|
|
call Func_1ed3
|
|
call Func_1d44
|
|
ld a, [$d8e4]
|
|
ld [$d8e6], a
|
|
ld a, [$d8e5]
|
|
ld [$d8e7], a
|
|
ld hl, $d8e6
|
|
ld b, $2
|
|
call Func_1d44
|
|
ld hl, $d8ea
|
|
ld b, $1
|
|
call Func_1e3b
|
|
ld a, [$d8e6]
|
|
ld [$d8e4], a
|
|
ld a, [$d8e7]
|
|
ld [$d8e5], a
|
|
ret
|
|
|
|
Func_1d44: ; 0x1d44
|
|
ld a, [$d8ea]
|
|
cp $0
|
|
ret nz
|
|
ld c, $56
|
|
ld d, $16
|
|
call Func_1c2b
|
|
ld d, $16
|
|
call Func_1c32
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
.asm_1d59
|
|
inc b
|
|
jr z, .asm_1dae
|
|
ld a, $8
|
|
ld [$d8e3], a
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [$d8e4]
|
|
add e
|
|
ld [$d8e4], a
|
|
jr nc, .asm_1d75
|
|
ld a, [$d8e5]
|
|
inc a
|
|
ld [$d8e5], a
|
|
jr .asm_1d78
|
|
.asm_1d75
|
|
call Func_1ed3
|
|
.asm_1d78
|
|
ld a, e
|
|
rlca
|
|
ld e, a
|
|
jr nc, .asm_1d8d
|
|
ld a, [$d8eb]
|
|
ld d, a
|
|
call Func_1c2b
|
|
ld a, [$d8ec]
|
|
ld d, a
|
|
call Func_1c32
|
|
jr .asm_1d9b
|
|
.asm_1d8d
|
|
ld a, [$d8ed]
|
|
ld d, a
|
|
call Func_1c2b
|
|
ld a, [$d8ee]
|
|
ld d, a
|
|
call Func_1c32
|
|
.asm_1d9b
|
|
ld a, [$d8e3]
|
|
dec a
|
|
ld [$d8e3], a
|
|
jr z, .asm_1dac
|
|
call Func_1ed4
|
|
call Func_1ed4
|
|
jr .asm_1d78
|
|
.asm_1dac
|
|
jr .asm_1d59
|
|
.asm_1dae
|
|
call Func_1ed3
|
|
call Func_1ed3
|
|
call Func_1ed4
|
|
ld d, $16
|
|
call Func_1c2b
|
|
ld d, $16
|
|
call Func_1c32
|
|
ret
|
|
|
|
Func_1dc2: ; 0x1dc2
|
|
ld a, $2
|
|
ld [$d8ea], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1dc8,$1dd1 - $1dc8
|
|
|
|
Func_1dd1: ; 0x1dd1
|
|
ld a, [$d8ea]
|
|
or $4
|
|
ld [$d8ea], a
|
|
ret
|
|
|
|
Func_1dda: ; 0x1dda
|
|
xor a
|
|
ld [$d8e4], a
|
|
ld [$d8e5], a
|
|
push hl
|
|
ld hl, $d8e6
|
|
ld b, $2
|
|
call Func_1e3b
|
|
ld a, [$d8e7]
|
|
ld [$d8e8], a
|
|
ld b, a
|
|
pop hl
|
|
ld a, [$d8e6]
|
|
cp $5a
|
|
jp nz, Func_1dd1
|
|
call Func_1e3b
|
|
ld a, [$d8e4]
|
|
ld d, a
|
|
ld a, [$d8e5]
|
|
ld e, a
|
|
push de
|
|
ld hl, $d8e6
|
|
ld b, $2
|
|
call Func_1e3b
|
|
pop de
|
|
ld hl, $d8e6
|
|
ld a, [hli]
|
|
xor d
|
|
ld b, a
|
|
ld a, [hl]
|
|
xor e
|
|
or b
|
|
jr z, .asm_1e22
|
|
ld a, [$d8ea]
|
|
or $1
|
|
ld [$d8ea], a
|
|
.asm_1e22
|
|
push de
|
|
ld hl, $d8ea
|
|
ld b, $1
|
|
call Func_1d44
|
|
pop de
|
|
ld a, d
|
|
ld [$d8e4], a
|
|
ld a, e
|
|
ld [$d8e5], a
|
|
ld a, [$d8e8]
|
|
cp $82
|
|
ret z
|
|
ret
|
|
|
|
Func_1e3b: ; 0x1e3b
|
|
ld a, [$d8ea]
|
|
cp $0
|
|
ret nz
|
|
ld c, $56
|
|
ld d, $0
|
|
call Func_1c23
|
|
ld a, d
|
|
or a
|
|
jp z, Func_1dc2
|
|
ld d, $0
|
|
call Func_1c1b
|
|
ld a, d
|
|
or a
|
|
jp z, Func_1dc2
|
|
ld d, $0
|
|
call Func_1c23
|
|
ld a, d
|
|
or a
|
|
jp z, Func_1dc2
|
|
call Func_1ed4
|
|
call Func_1ed4
|
|
push af
|
|
pop af
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
.asm_1e6c
|
|
inc b
|
|
jr z, .asm_1eb9
|
|
ld a, $8
|
|
ld [$d8e3], a
|
|
.asm_1e74
|
|
ld d, $0
|
|
call Func_1c1b
|
|
call Func_1c23
|
|
ld a, [$d8ef]
|
|
cp d
|
|
jr nc, .asm_1e88
|
|
ld a, e
|
|
set 0, a
|
|
ld e, a
|
|
jr .asm_1e8c
|
|
.asm_1e88
|
|
ld a, e
|
|
res 0, a
|
|
ld e, a
|
|
.asm_1e8c
|
|
ld a, [$d8e3]
|
|
dec a
|
|
ld [$d8e3], a
|
|
jr z, .asm_1ea0
|
|
ld a, e
|
|
rlca
|
|
ld e, a
|
|
call Func_1ed4
|
|
call Func_1ed4
|
|
jr .asm_1e74
|
|
.asm_1ea0
|
|
ld a, e
|
|
ld [hli], a
|
|
ld a, [$d8e4]
|
|
add e
|
|
ld [$d8e4], a
|
|
jr nc, .asm_1eb4
|
|
ld a, [$d8e5]
|
|
inc a
|
|
ld [$d8e5], a
|
|
jr .asm_1eb7
|
|
.asm_1eb4
|
|
call Func_1ed3
|
|
.asm_1eb7
|
|
jr .asm_1e6c
|
|
.asm_1eb9
|
|
ld d, $0
|
|
call Func_1c1b
|
|
ld a, d
|
|
and a
|
|
jp z, Func_1dc2
|
|
ld d, $11
|
|
call Func_1c32
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1ec9,$1ed3 - $1ec9
|
|
|
|
Func_1ed3: ; 0x1ed3
|
|
ret
|
|
|
|
Func_1ed4: ; 0x1ed4
|
|
jr z, .asm_1ed6
|
|
.asm_1ed6
|
|
jr nz, .asm_1ed8
|
|
.asm_1ed8
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1ed9,$1f24 - $1ed9
|
|
|
|
LoadOAMData: ; 0x1f24
|
|
; This function loads OAM data, but it adds b and c to the x and y values for some reason.
|
|
; input: a = OAM data id (see OAMDataPointers)
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld e, a
|
|
ld d, $0
|
|
sla e
|
|
rl d ; multiply de by 2
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, Bank(OAMDataPointers)
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld hl, OAMDataPointers
|
|
add hl, de ; hl points to oam pointer in OAMDataPointers
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hl]
|
|
ld d, a ; de points to OAM data
|
|
ld a, [$d802]
|
|
ld l, a
|
|
ld h, (wOAMBuffer >> 8)
|
|
.loadOAMDataLoop
|
|
ld a, [de]
|
|
cp $80 ; OAM data list terminator
|
|
jr z, .doneReadingOAMData
|
|
add c
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
add b
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
jr .loadOAMDataLoop
|
|
.doneReadingOAMData
|
|
ld a, l
|
|
ld [$d802], a
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1f68,$1ffc - $1f68
|
|
|
|
Func_1ffc: ; 0x1ffc
|
|
ld a, $b
|
|
ld [$d806], a
|
|
ld a, $4
|
|
ld [$d807], a
|
|
ld [$ff8a], a
|
|
ld a, $f ; todo
|
|
ld hl, $4000
|
|
call BankSwitch
|
|
ld a, $1
|
|
ld [$d85d], a
|
|
ld a, $37
|
|
ld [$d470], a
|
|
ld [$d471], a
|
|
ld [$d472], a
|
|
ld a, SCREEN_ERASE_ALL_DATA
|
|
ld [wCurrentScreen], a
|
|
.asm_2025
|
|
call Func_2034
|
|
call Func_2043
|
|
call Func_926
|
|
call Func_b2e
|
|
rst $10
|
|
jr .asm_2025
|
|
|
|
Func_2034: ; 0x2034
|
|
ld a, [$d804]
|
|
and a
|
|
jr z, .asm_203f
|
|
dec a
|
|
ld [$d804], a
|
|
ret
|
|
.asm_203f
|
|
ld [$d803], a
|
|
ret
|
|
|
|
Func_2043: ; 0x2043
|
|
ld a, [wCurrentScreen]
|
|
call CallInFollowingTable
|
|
CallTable_2049: ; 0x2049
|
|
; First two bytes is function pointer.
|
|
; Third byte is bank of function.
|
|
; Fourth byte seems to be unused.
|
|
dw Func_8000
|
|
db Bank(Func_8000), $00
|
|
|
|
; SCREEN_ERASE_ALL_DATA
|
|
dw HandleEraseAllDataMenu
|
|
db Bank(HandleEraseAllDataMenu), $00
|
|
|
|
; SCREEN_COPYRIGHT
|
|
dw HandleCopyrightScreen
|
|
db Bank(HandleCopyrightScreen), $00
|
|
|
|
; SCREEN_TITLESCREEN
|
|
dw HandleTitlescreen
|
|
db Bank(HandleTitlescreen), $00
|
|
|
|
; SCREEN_PINBALL_GAME
|
|
dw HandlePinballGame
|
|
db Bank(HandlePinballGame), $00
|
|
|
|
; SCREEN_POKEDEX
|
|
dw HandlePokedexScreen
|
|
db Bank(HandlePokedexScreen), $00
|
|
|
|
; SCREEN_OPTIONS
|
|
dw HandleOptionsScreen
|
|
db Bank(HandleOptionsScreen), $00
|
|
|
|
; SCREEN_HIGH_SCORES
|
|
dw HandleHighScoresScreen
|
|
db Bank(HandleHighScoresScreen), $00
|
|
|
|
; SCREEN_FIELD_SELECT
|
|
dw HandleFieldSelectScreen
|
|
db Bank(HandleFieldSelectScreen), $00
|
|
; end of call table
|
|
|
|
Func_206d: ; 0x206d
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, $2
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
call $4d17 ; todo
|
|
jr c, .asm_2084
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
and a
|
|
ret
|
|
.asm_2084
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
scf
|
|
ret
|
|
|
|
Func_208c: ; 0x208c
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, $2
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
call $4ee0 ; todo
|
|
jr c, .asm_20a3
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
and a
|
|
ret
|
|
.asm_20a3
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
scf
|
|
ret
|
|
|
|
Func_20ab: ; 0x20ab
|
|
push af
|
|
xor a
|
|
ld [$ffb6], a
|
|
jr .asm_20c6
|
|
push af
|
|
ld a, b
|
|
xor c
|
|
ld [$ffb6], a
|
|
bit 7, b
|
|
jr z, .asm_20be
|
|
ld a, b
|
|
cpl
|
|
inc a
|
|
ld b, a
|
|
.asm_20be
|
|
bit 7, c
|
|
jr z, .asm_20c6
|
|
ld a, c
|
|
cpl
|
|
inc a
|
|
ld c, a
|
|
.asm_20c6
|
|
push de
|
|
push hl
|
|
ld a, b
|
|
cp c
|
|
jr nc, .asm_20ce
|
|
ld b, c
|
|
ld c, a
|
|
.asm_20ce
|
|
ld h, $3e
|
|
ld l, c
|
|
ld e, [hl]
|
|
inc h
|
|
ld d, [hl]
|
|
ld l, b
|
|
ld a, [hl]
|
|
dec h
|
|
ld l, [hl]
|
|
ld h, a
|
|
add hl, de
|
|
push af
|
|
ld d, $3e
|
|
ld a, b
|
|
sub c
|
|
ld e, a
|
|
ld a, [de]
|
|
ld c, a
|
|
inc d
|
|
ld a, [de]
|
|
ld b, a
|
|
ld a, l
|
|
sub c
|
|
ld l, a
|
|
ld a, h
|
|
sbc b
|
|
ld h, a
|
|
jr nc, .asm_20f1
|
|
pop af
|
|
ccf
|
|
jr .asm_20f2
|
|
.asm_20f1
|
|
pop af
|
|
.asm_20f2
|
|
rr h
|
|
rr l
|
|
ld b, h
|
|
ld c, l
|
|
ld a, [$ffb6]
|
|
rlca
|
|
jr nc, .asm_2107
|
|
ld a, c
|
|
cpl
|
|
add $1
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
adc $0
|
|
ld b, a
|
|
.asm_2107
|
|
pop hl
|
|
pop de
|
|
pop af
|
|
ret
|
|
|
|
Func_210b: ; 0x210b
|
|
push af
|
|
push hl
|
|
ld a, b
|
|
xor d
|
|
ld [$ffb7], a
|
|
bit 7, b
|
|
jr z, .asm_211f
|
|
ld a, c
|
|
cpl
|
|
add $1
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
adc $0
|
|
ld b, a
|
|
.asm_211f
|
|
push bc
|
|
ld b, e
|
|
call Func_20ab
|
|
ld l, c
|
|
ld h, b
|
|
ld bc, $0080
|
|
add hl, bc
|
|
ld l, h
|
|
ld h, $0
|
|
pop bc
|
|
ld c, e
|
|
call Func_20ab
|
|
add hl, bc
|
|
ld a, [$ffb7]
|
|
rlca
|
|
jr nc, .asm_2142
|
|
ld a, l
|
|
cpl
|
|
add $1
|
|
ld l, a
|
|
ld a, h
|
|
cpl
|
|
adc $0
|
|
ld h, a
|
|
.asm_2142
|
|
ld c, l
|
|
ld b, h
|
|
pop hl
|
|
pop af
|
|
ret
|
|
|
|
Func_2147: ; 0x2147
|
|
add $40
|
|
; fall through
|
|
Func_2149: ; 0x2149
|
|
push hl
|
|
ld [$ffb6], a
|
|
and $7f
|
|
cp $40
|
|
jr c, .asm_2155
|
|
cpl
|
|
add $81
|
|
.asm_2155
|
|
ld hl, $26be ; todo
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld e, [hl]
|
|
pop hl
|
|
ld d, $0
|
|
ld a, [$ffb6]
|
|
sla a
|
|
ret nc
|
|
ld d, $ff
|
|
ret
|
|
|
|
ApplyGravityToBall: ; 0x2168
|
|
; Adds a constant to the pinball's y velocity.
|
|
ld a, [$d549]
|
|
and a
|
|
ret z
|
|
ld de, $000b ; gravity added to y velocity every frame
|
|
ld hl, wBallYVelocity
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
add hl, de
|
|
ld a, l
|
|
ld [wBallYVelocity], a
|
|
ld a, h
|
|
ld [wBallYVelocity + 1], a
|
|
ret
|
|
|
|
LimitBallVelocity: ; 0x2180
|
|
; Ensures that the ball's x and y velocity are kept under a threshold.
|
|
; The ball can travel at a higher max speed when moving diagonally, since it
|
|
; limits the x and y components independently.
|
|
ld hl, wBallXVelocity + 1
|
|
call _LimitBallVelocity
|
|
ld hl, wBallYVelocity + 1
|
|
; fall through
|
|
_LimitBallVelocity: ; 0x2189
|
|
ld a, [hl]
|
|
bit 7, a ; is it negative velocity? (left or up)
|
|
jr nz, .negativeVelocity
|
|
cp $8
|
|
ret c
|
|
ld a, $7 ; max positive velocity
|
|
ld [hl], a
|
|
ret
|
|
.negativeVelocity
|
|
cp $f9
|
|
ret nc
|
|
ld a, $f9 ; max negative velocity
|
|
ld [hl], a
|
|
ret
|
|
|
|
MoveBallPosition: ; 0x219c
|
|
; Updates the ball's position according to its velocity
|
|
ld a, [wBallXPos]
|
|
ld [wPreviousBallXPos], a
|
|
ld a, [wBallXPos + 1]
|
|
ld [wPreviousBallXPos + 1], a
|
|
ld a, [wBallYPos]
|
|
ld [wPreviousBallYPos], a
|
|
ld a, [wBallYPos + 1]
|
|
ld [wPreviousBallYPos + 1], a
|
|
ld de, wBallXVelocity + 1
|
|
ld hl, wBallXPos
|
|
call AddVelocityToPosition
|
|
ld de, wBallYVelocity + 1
|
|
ld hl, wBallYPos
|
|
; fall through
|
|
|
|
AddVelocityToPosition: ; 0x21c3
|
|
ld a, [de]
|
|
bit 7, a
|
|
jr nz, .asm_21d1
|
|
cp $5
|
|
jr c, .asm_21da
|
|
ld bc, $04ff
|
|
jr .asm_21de
|
|
.asm_21d1
|
|
cp $fc
|
|
jr nc, .asm_21da
|
|
ld bc, $fb01
|
|
jr .asm_21de
|
|
.asm_21da
|
|
ld b, a
|
|
dec de
|
|
ld a, [de]
|
|
ld c, a
|
|
.asm_21de
|
|
ld a, [hl]
|
|
add c
|
|
ld [hli], a
|
|
ld a, [hl]
|
|
adc b
|
|
ld [hl], a
|
|
ret
|
|
|
|
Func_21e5: ; 0x21e5
|
|
cpl
|
|
inc a
|
|
; fall through
|
|
Func_21e7: ; 0x21e7
|
|
push hl
|
|
push bc
|
|
push de
|
|
ld [$ff8c], a
|
|
call Func_2147
|
|
ld a, e
|
|
ld [$ff8d], a
|
|
ld a, d
|
|
ld [$ff8e], a
|
|
call Func_210b
|
|
ld l, c
|
|
ld h, b
|
|
pop bc
|
|
push bc
|
|
ld a, [$ff8c]
|
|
call Func_2149
|
|
ld a, e
|
|
ld [$ff8f], a
|
|
ld a, d
|
|
ld [$ff90], a
|
|
call Func_210b
|
|
add hl, bc
|
|
pop de
|
|
pop bc
|
|
push hl
|
|
push de
|
|
ld a, [$ff8f]
|
|
ld e, a
|
|
ld a, [$ff90]
|
|
cpl
|
|
ld d, a
|
|
call Func_210b
|
|
ld l, c
|
|
ld h, b
|
|
pop bc
|
|
ld a, [$ff8d]
|
|
ld e, a
|
|
ld a, [$ff8e]
|
|
ld d, a
|
|
call Func_210b
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
pop bc
|
|
pop hl
|
|
ret
|
|
|
|
Func_222b: ; 0x222b
|
|
push hl
|
|
ld hl, $d7f8
|
|
ld [hl], $ff
|
|
bit 7, d
|
|
jr nz, .asm_2297
|
|
ld [hl], $0
|
|
ld a, d
|
|
cp $3
|
|
jr c, .asm_2254
|
|
ld a, $ff
|
|
ld [$d803], a
|
|
ld a, $1
|
|
ld [$d804], a
|
|
ld a, [wFlipperCollision]
|
|
and a
|
|
jr nz, .asm_2254
|
|
push de
|
|
ld de, $0008
|
|
call Func_4d8
|
|
pop de
|
|
.asm_2254
|
|
srl d
|
|
rr e
|
|
srl d
|
|
rr e
|
|
ld h, d
|
|
ld l, e
|
|
srl d
|
|
rr e
|
|
ld a, [$d7eb]
|
|
and a
|
|
jr z, .asm_226c
|
|
.asm_2268
|
|
add hl, de
|
|
dec a
|
|
jr nz, .asm_2268
|
|
.asm_226c
|
|
ld d, h
|
|
ld e, l
|
|
ld a, e
|
|
cpl
|
|
add $1
|
|
ld e, a
|
|
ld a, d
|
|
cpl
|
|
adc $0
|
|
ld d, a
|
|
ld a, [wBallSpin]
|
|
sra a
|
|
ld l, a
|
|
ld h, $0
|
|
bit 7, l
|
|
jr z, .asm_2286
|
|
ld h, $ff
|
|
.asm_2286
|
|
add hl, bc
|
|
ld b, h
|
|
ld c, l
|
|
push bc
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
ld a, b
|
|
ld [wBallSpin], a
|
|
pop bc
|
|
.asm_2297
|
|
pop hl
|
|
ret
|
|
|
|
LoadBallVelocity: ; 0x2299
|
|
; Loads velocity of the ball into bc and de
|
|
; bc = x velocity
|
|
; de = y velocity
|
|
push hl
|
|
ld hl, wBallXVelocity
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hl]
|
|
ld d, a
|
|
pop hl
|
|
ret
|
|
|
|
SetBallVelocity: ; 0x22a7
|
|
; Sets the x and y velocities of the ball.
|
|
; bc = x velocity
|
|
; de = y velocity
|
|
push hl
|
|
ld hl, wBallXVelocity
|
|
ld a, c
|
|
ld [hli], a
|
|
ld a, b
|
|
ld [hli], a
|
|
ld a, e
|
|
ld [hli], a
|
|
ld a, d
|
|
ld [hl], a
|
|
pop hl
|
|
ret
|
|
|
|
Func_22b5: ; 0x22b5
|
|
ld a, [wBallXPos + 1]
|
|
sub $4
|
|
push af
|
|
and $7
|
|
ld [wSubTileBallXPos], a ; sub-tile position
|
|
pop af
|
|
and $f8
|
|
ld c, a
|
|
ld a, [wBallYPos + 1]
|
|
sub $4
|
|
push af
|
|
and $7
|
|
ld [wSubTileBallYPos], a
|
|
pop af
|
|
and $f8
|
|
ld b, a
|
|
ld l, b ; bc contains tile coords of ball position
|
|
ld h, $0
|
|
sla l
|
|
rl h
|
|
sla l
|
|
rl h ; b was multiplied by 4 (y tile position)
|
|
srl c
|
|
srl c
|
|
srl c ; c was divided by 8 (x tile position)
|
|
ld b, $0
|
|
add hl, bc
|
|
ld a, l
|
|
ld [$d7f3], a
|
|
ld a, h
|
|
ld [$d7f4], a
|
|
ld a, [$d7ec]
|
|
ld c, a
|
|
ld a, [$d7ed]
|
|
ld b, a
|
|
add hl, bc
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$d7ee]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld bc, $001f ; number of tiles wide - 1
|
|
ld a, [hli]
|
|
ld [wUpperLeftCollisionAttribute], a
|
|
ld a, [hl]
|
|
ld [wUpperRightCollisionAttribute], a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld [wLowerLeftCollisionAttribute], a
|
|
ld a, [hl]
|
|
ld [wLowerRightCollisionAttribute], a
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, [$d7f1]
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, [wSubTileBallXPos]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, SubTileXPos_CollisionDataPointers
|
|
add hl, bc
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
ld a, [wSubTileBallYPos]
|
|
ld c, a
|
|
ld b, $10 ; number of times too loop over .asm_233d
|
|
.asm_233d
|
|
push bc
|
|
ld a, [de]
|
|
inc de
|
|
add c ; add the sub tile y pos
|
|
push af
|
|
srl a
|
|
srl a
|
|
srl a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wUpperLeftCollisionAttribute
|
|
add hl, bc
|
|
ld a, [hl]
|
|
call Func_248a
|
|
jr nc, .asm_235e
|
|
pop af
|
|
and $7
|
|
ld c, a
|
|
ld b, $0
|
|
add hl, bc
|
|
jr .asm_237b
|
|
.asm_235e
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
ld hl, $d7ef
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
add hl, bc
|
|
pop af
|
|
and $7
|
|
ld c, a
|
|
ld b, $0
|
|
add hl, bc
|
|
.asm_237b
|
|
ld a, [de]
|
|
inc de
|
|
and [hl]
|
|
push af
|
|
ld a, [de]
|
|
inc de
|
|
ld c, a
|
|
ld hl, $d7c9
|
|
add hl, bc
|
|
pop af
|
|
ld [hl], a
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_233d
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld hl, $d7c9
|
|
ld de, $d7d9
|
|
ld b, $4
|
|
.asm_239a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_239a
|
|
ld hl, $d7c9
|
|
ld de, $0000
|
|
ld b, $0
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_23c1
|
|
.asm_23b5
|
|
ld a, [hli]
|
|
inc b
|
|
and a
|
|
jr z, .asm_23c1
|
|
ld a, b
|
|
cp $11
|
|
jr nc, .asm_23ee
|
|
jr .asm_23b5
|
|
.asm_23c1
|
|
ld a, [hli]
|
|
inc b
|
|
and a
|
|
jr nz, .asm_23cd
|
|
ld a, b
|
|
cp $11
|
|
jr nc, .asm_23ee
|
|
jr .asm_23c1
|
|
.asm_23cd
|
|
push de
|
|
ld d, $1
|
|
ld c, b
|
|
dec c
|
|
.asm_23d2
|
|
ld a, [hli]
|
|
inc b
|
|
inc d
|
|
and a
|
|
jr nz, .asm_23d2
|
|
dec d
|
|
ld a, b
|
|
dec a
|
|
dec a
|
|
and $f
|
|
swap c
|
|
or c
|
|
ld c, a
|
|
ld a, d
|
|
cp e
|
|
pop de
|
|
jr c, .asm_23e9
|
|
ld e, a
|
|
ld d, c
|
|
.asm_23e9
|
|
ld a, b
|
|
cp $10
|
|
jr c, .asm_23c1
|
|
.asm_23ee
|
|
ld a, e
|
|
ld [$d7e9], a
|
|
and a
|
|
ret z
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, $2
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
push de
|
|
ld e, d
|
|
ld d, $0
|
|
ld hl, $4817 ; todo
|
|
add hl, de
|
|
ld a, [hl]
|
|
ld [$d7ea], a
|
|
sla e
|
|
rl d
|
|
ld hl, $4917 ; todo
|
|
add hl, de
|
|
ld a, [wBallYPos]
|
|
add [hl]
|
|
ld [wBallYPos], a
|
|
inc hl
|
|
ld a, [wBallYPos + 1]
|
|
adc [hl]
|
|
ld [wBallYPos + 1], a
|
|
ld hl, $4b17
|
|
add hl, de
|
|
ld a, [wBallXPos]
|
|
add [hl]
|
|
ld [wBallXPos], a
|
|
inc hl
|
|
ld a, [wBallXPos + 1]
|
|
adc [hl]
|
|
ld [wBallXPos + 1], a
|
|
pop de
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, d
|
|
swap a
|
|
and $f
|
|
ld e, a
|
|
ld a, d
|
|
and $f
|
|
sub e
|
|
jr nc, .asm_2449
|
|
add $10
|
|
.asm_2449
|
|
add e
|
|
add e
|
|
inc a
|
|
and $1e
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $250e ; todo
|
|
add hl, bc
|
|
ld a, [wSubTileBallXPos]
|
|
add $4
|
|
add [hl]
|
|
bit 3, a
|
|
ld c, b
|
|
jr z, .asm_2462
|
|
ld c, $2
|
|
.asm_2462
|
|
ld a, [wSubTileBallYPos]
|
|
add $4
|
|
inc hl
|
|
add [hl]
|
|
bit 3, a
|
|
jr z, .asm_246e
|
|
inc c
|
|
.asm_246e
|
|
ld hl, wUpperLeftCollisionAttribute
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d7f5], a
|
|
ld hl, $250a ; todo
|
|
add hl, bc
|
|
ld a, [$d7f3]
|
|
add [hl]
|
|
ld [$d7f6], a
|
|
ld a, [$d7f4]
|
|
adc $0
|
|
ld [$d7f7], a
|
|
ret
|
|
|
|
Func_248a: ; 0x248a
|
|
push af
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr nz, .asm_2495
|
|
pop af
|
|
and a
|
|
ret
|
|
.asm_2495
|
|
pop af
|
|
cp $d0
|
|
ccf
|
|
ret nc
|
|
cp $e0
|
|
jr nc, .asm_24ab
|
|
sub $d0
|
|
sla a
|
|
sla a
|
|
sla a
|
|
ld l, a
|
|
ld h, $c4
|
|
scf
|
|
ret
|
|
.asm_24ab
|
|
push de
|
|
sub $e0
|
|
ld b, a
|
|
ld a, [wCurrentStage]
|
|
cp $6 ; gengar stage buggy?
|
|
jr nc, .asm_24e0
|
|
bit 4, b
|
|
ld hl, $3800
|
|
ld a, [$d7af]
|
|
jr z, .asm_24c8
|
|
res 4, b
|
|
ld hl, $3980
|
|
ld a, [$d7b3]
|
|
.asm_24c8
|
|
ld de, $0080
|
|
cp $7
|
|
jr c, .asm_24d5
|
|
add hl, de
|
|
cp $e
|
|
jr c, .asm_24d5
|
|
add hl, de
|
|
.asm_24d5
|
|
ld e, b
|
|
sla e
|
|
sla e
|
|
sla e
|
|
add hl, de
|
|
pop de
|
|
scf
|
|
ret
|
|
.asm_24e0
|
|
bit 4, b
|
|
ld hl, $3b00
|
|
ld a, [$d7af]
|
|
jr z, .asm_24f2
|
|
res 4, b
|
|
ld hl, $3c80
|
|
ld a, [$d7b3]
|
|
.asm_24f2
|
|
ld de, $0080
|
|
cp $7
|
|
jr c, .asm_24ff
|
|
add hl, de
|
|
cp $e
|
|
jr c, .asm_24ff
|
|
add hl, de
|
|
.asm_24ff
|
|
ld e, b
|
|
sla e
|
|
sla e
|
|
sla e
|
|
add hl, de
|
|
pop de
|
|
scf
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$250a,$252e - $250a
|
|
|
|
SubTileXPos_CollisionDataPointers: ; 0x252e
|
|
dw SubTileXPos_CollisionData0
|
|
dw SubTileXPos_CollisionData1
|
|
dw $259E
|
|
dw $25CE
|
|
dw $25FE
|
|
dw $262E
|
|
dw $265E
|
|
dw $268E
|
|
|
|
SubTileXPos_CollisionData0: ; 0x253e
|
|
db $00, $10, $0B
|
|
db $00, $08, $0C
|
|
db $00, $04, $0D
|
|
db $01, $40, $0A
|
|
db $01, $01, $0E
|
|
db $03, $80, $09
|
|
db $13, $80, $0F
|
|
db $04, $80, $08
|
|
db $14, $80, $00
|
|
db $05, $80, $07
|
|
db $15, $80, $01
|
|
db $07, $40, $06
|
|
db $07, $01, $02
|
|
db $08, $10, $05
|
|
db $08, $08, $04
|
|
db $08, $04, $03
|
|
|
|
SubTileXPos_CollisionData1: ; 0x256e
|
|
db $00, $08, $0B
|
|
db $00, $04, $0C
|
|
db $00, $02, $0D
|
|
db $01, $20, $0A
|
|
db $11, $80, $0E
|
|
db $03, $40, $09
|
|
db $13, $40, $0F
|
|
db $04, $40, $08
|
|
db $14, $40, $00
|
|
db $05, $40, $07
|
|
db $15, $40, $01
|
|
db $07, $20, $06
|
|
db $17, $80, $02
|
|
db $08, $08, $05
|
|
db $08, $04, $04
|
|
db $08, $02, $03
|
|
|
|
INCBIN "baserom.gbc",$259e,$2720 - $259e
|
|
|
|
Func_2720: ; 0x2720
|
|
ld a, $ff
|
|
ld [$d4ea], a
|
|
call Func_272f
|
|
ld a, [$d4ea]
|
|
ld [$d4ec], a
|
|
ret
|
|
|
|
Func_272f: ; 0x272f
|
|
; not collisions
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
CallTable_2735: ; 0x2735
|
|
; STAGE_RED_FIELD_TOP
|
|
dw Func_143e1
|
|
db Bank(Func_143e1), $00
|
|
|
|
; STAGE_RED_FIELD_BOTTOM
|
|
dw Func_143f9
|
|
db Bank(Func_143f9), $00
|
|
|
|
dw Func_18061
|
|
db Bank(Func_18061), $00
|
|
|
|
dw Func_18062
|
|
db Bank(Func_18062), $00
|
|
|
|
; STAGE_BLUE_FIELD_TOP
|
|
dw Func_1c520
|
|
db Bank(Func_1c520), $00
|
|
|
|
; STAGE_BLUE_FIELD_BOTTOM
|
|
dw Func_1c536
|
|
db Bank(Func_1c536), $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw Func_181b1
|
|
db Bank(Func_181b1), $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw Func_181b1
|
|
db Bank(Func_181b1), $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw Func_19330
|
|
db Bank(Func_19330), $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw Func_19330
|
|
db Bank(Func_19330), $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw Func_2414d
|
|
db Bank(Func_2414d), $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw Func_2414d
|
|
db Bank(Func_2414d), $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw Func_19ab3
|
|
db Bank(Func_19ab3), $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw Func_19ab3
|
|
db Bank(Func_19ab3), $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw Func_25bbc
|
|
db Bank(Func_25bbc), $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw Func_25bbc
|
|
db Bank(Func_25bbc), $00
|
|
|
|
Func_2775: ; 0x2775
|
|
ld a, [$d4ea]
|
|
inc a
|
|
jr nz, .asm_27a2
|
|
ld a, [bc]
|
|
bit 7, a
|
|
jr nz, .asm_27a2
|
|
push bc
|
|
push de
|
|
call nc, Func_27da
|
|
pop hl
|
|
call c, Func_27a4
|
|
ld a, [$d4ea]
|
|
ld b, a
|
|
pop hl
|
|
ld [hl], $0
|
|
jr nc, .asm_27a2
|
|
ld a, [$d4ec]
|
|
cp b
|
|
jr z, .asm_27a2
|
|
ld a, [$d4eb]
|
|
ld [hli], a
|
|
ld a, [$d4ea]
|
|
ld [hl], a
|
|
scf
|
|
ret
|
|
.asm_27a2
|
|
and a
|
|
ret
|
|
|
|
Func_27a4: ; 0x27a4
|
|
xor a
|
|
ld [$d4eb], a
|
|
ld a, [hli]
|
|
ld d, a
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [wBallXPos + 1]
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
ld c, a
|
|
.asm_27b4
|
|
ld a, [$d4eb]
|
|
inc a
|
|
ld [$d4eb], a
|
|
ld a, [hli]
|
|
ld [$d4ea], a
|
|
cp $ff
|
|
ret z
|
|
ld a, [hli]
|
|
sub b
|
|
bit 7, a
|
|
jr z, .asm_27ca
|
|
cpl
|
|
inc a
|
|
.asm_27ca
|
|
cp d
|
|
ld a, [hli]
|
|
jr nc, .asm_27b4
|
|
sub c
|
|
bit 7, a
|
|
jr z, .asm_27d5
|
|
cpl
|
|
inc a
|
|
.asm_27d5
|
|
cp e
|
|
jr nc, .asm_27b4
|
|
scf
|
|
ret
|
|
|
|
Func_27da: ; 0x27da
|
|
ld a, [hli]
|
|
and a
|
|
jr z, .asm_27e8
|
|
dec hl
|
|
ld a, [$d4af]
|
|
ld c, a
|
|
ld b, $0
|
|
add hl, bc
|
|
ld c, [hl]
|
|
add hl, bc
|
|
.asm_27e8
|
|
ld a, [$d7e9]
|
|
and a
|
|
ret z
|
|
ld a, [$d7f5]
|
|
ld b, a
|
|
ld c, $ff
|
|
.asm_27f3
|
|
inc c
|
|
ld a, [hli]
|
|
cp $ff
|
|
ret z
|
|
cp b
|
|
jr nz, .asm_27f3
|
|
scf
|
|
ret
|
|
|
|
Func_27fd: ; 0x27fd
|
|
ld a, [wBallXPos + 1]
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
ld c, a
|
|
ld d, $0
|
|
.asm_2807
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
inc d
|
|
ld a, [hli]
|
|
sub b
|
|
cp $e8
|
|
ld a, [hli]
|
|
jr c, .asm_2807
|
|
sub c
|
|
cp $e8
|
|
jr c, .asm_2807
|
|
ld a, d
|
|
ld [$d578], a
|
|
ret
|
|
|
|
Func_281c: ; 0x281c
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
CallTable_2822: ; 0x2822
|
|
; not collisions
|
|
; STAGE_RED_FIELD_TOP
|
|
dw Func_1460e
|
|
db Bank(Func_1460e), $00
|
|
|
|
; STAGE_RED_FIELD_BOTTOM
|
|
dw Func_14652
|
|
db Bank(Func_14652), $00
|
|
|
|
dw Func_1806d
|
|
db Bank(Func_1806d), $00
|
|
|
|
dw Func_1806e
|
|
db Bank(Func_1806e), $00
|
|
|
|
; STAGE_BLUE_FIELD_TOP
|
|
dw Func_1c715
|
|
db Bank(Func_1c715), $00
|
|
|
|
; STAGE_BLUE_FIELD_BOTTOM
|
|
dw Func_1c769
|
|
db Bank(Func_1c769), $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw Func_18377
|
|
db Bank(Func_18377), $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw Func_18377
|
|
db Bank(Func_18377), $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw Func_19451
|
|
db Bank(Func_19451), $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw Func_19451
|
|
db Bank(Func_19451), $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw Func_2442a
|
|
db Bank(Func_2442a), $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw Func_2442a
|
|
db Bank(Func_2442a), $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw Func_19b88
|
|
db Bank(Func_19b88), $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw Func_19b88
|
|
db Bank(Func_19b88), $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw Func_25c5a
|
|
db Bank(Func_25c5a), $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw Func_25c5a
|
|
db Bank(Func_25c5a), $00
|
|
|
|
Func_2862: ; 0x2862
|
|
ld a, [$d7be]
|
|
and a
|
|
jr nz, .asm_287c
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_287b
|
|
ld a, $0
|
|
ld hl, $2890
|
|
ld de, $0052
|
|
ld bc, $0004
|
|
call Func_790
|
|
.asm_287b
|
|
ret
|
|
.asm_287c
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_288f
|
|
ld a, $0
|
|
ld hl, $2894
|
|
ld de, $0052
|
|
ld bc, $0004
|
|
call Func_790
|
|
.asm_288f
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$2890,$28a0 - $2890
|
|
|
|
Func_28a0: ; 0x28a0
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
xor a
|
|
ld [de], a
|
|
ret
|
|
|
|
Func_28a9: ; 0x28a9
|
|
ld a, [de]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [de], a
|
|
ret nz
|
|
push de
|
|
inc de
|
|
inc de
|
|
ld a, [de]
|
|
inc a
|
|
ld [de], a
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
add hl, bc
|
|
ld a, [hli]
|
|
pop de
|
|
and a
|
|
scf
|
|
ret z
|
|
push de
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
pop de
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$28c9,$30db - $28c9
|
|
|
|
Func_30db: ; 0x30db
|
|
ld a, $86
|
|
ld [$ffa6], a
|
|
ld a, $1
|
|
ld [$d5ca], a
|
|
ld [$d5cb], a
|
|
ret
|
|
|
|
Func_30e8: ; 0x30e8
|
|
ld a, $81
|
|
ld hl, $c600
|
|
ld b, $40
|
|
.asm_30ef
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_30ef
|
|
xor a
|
|
ld [$d5cc], a
|
|
ld [$d5d4], a
|
|
ld [$d5dc], a
|
|
ld [$d5e4], a
|
|
ld [$d5e9], a
|
|
ld [$d5ee], a
|
|
ret
|
|
|
|
Func_310a: ; 0x310a
|
|
ld a, $81
|
|
ld hl, $c640
|
|
ld b, $5
|
|
.asm_3111
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_3111
|
|
ld hl, $c6c0
|
|
ld b, $5
|
|
.asm_311d
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_311d
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$3125,$3129 - $3125
|
|
|
|
Func_3129: ; 0x3129
|
|
ld b, $0
|
|
ld a, [$d805]
|
|
and a
|
|
jp nz, Func_3268
|
|
.asm_3132
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
ld c, $81
|
|
cp $20
|
|
jr z, .asm_3175
|
|
cp $2c
|
|
jr z, .asm_3178
|
|
cp $24
|
|
jr z, .asm_317c
|
|
cp $5c
|
|
jr z, .asm_3184
|
|
cp $60
|
|
jr z, .asm_318d
|
|
cp $21
|
|
jr z, .asm_31a8
|
|
cp $78
|
|
jr z, .asm_31b1
|
|
cp $65
|
|
jr z, .asm_3196
|
|
cp $2a
|
|
jr z, .asm_319f
|
|
cp $2e
|
|
jr z, .asm_31ba
|
|
cp $3a
|
|
jr z, .asm_31c3
|
|
cp $30
|
|
jr c, .asm_316b
|
|
cp $3a
|
|
jr c, .asm_31cc
|
|
.asm_316b
|
|
cp $41
|
|
jr c, .asm_3173
|
|
cp $5b
|
|
jr c, .asm_31d0
|
|
.asm_3173
|
|
jr .asm_3132
|
|
.asm_3175
|
|
ld a, c
|
|
jr .asm_31d2
|
|
.asm_3178
|
|
inc c
|
|
dec e
|
|
jr .asm_31d3
|
|
.asm_317c
|
|
xor a
|
|
call Func_31e1
|
|
ld a, $83
|
|
jr .asm_31d2
|
|
.asm_3184
|
|
ld a, $1
|
|
call Func_31e1
|
|
ld a, $84
|
|
jr .asm_31d2
|
|
.asm_318d
|
|
ld a, $2
|
|
call Func_31e1
|
|
ld a, $85
|
|
jr .asm_31d2
|
|
.asm_3196
|
|
ld a, $3
|
|
call Func_31e1
|
|
ld a, $83
|
|
jr .asm_31d2
|
|
.asm_319f
|
|
ld a, $4
|
|
call Func_31e1
|
|
ld a, $87
|
|
jr .asm_31d2
|
|
.asm_31a8
|
|
ld a, $5
|
|
call Func_31e1
|
|
ld a, $85
|
|
jr .asm_31d2
|
|
.asm_31b1
|
|
ld a, $6
|
|
call Func_31e1
|
|
ld a, $85
|
|
jr .asm_31d2
|
|
.asm_31ba
|
|
ld a, $7
|
|
call Func_31e1
|
|
ld a, $86
|
|
jr .asm_31d2
|
|
.asm_31c3
|
|
ld a, $8
|
|
call Func_31e1
|
|
ld a, $83
|
|
jr .asm_31d2
|
|
.asm_31cc
|
|
add $56
|
|
jr .asm_31d2
|
|
.asm_31d0
|
|
add $bf
|
|
.asm_31d2
|
|
ld [de], a
|
|
.asm_31d3
|
|
bit 0, b
|
|
jr nz, .asm_31dd
|
|
set 7, e
|
|
ld a, c
|
|
ld [de], a
|
|
res 7, e
|
|
.asm_31dd
|
|
inc e
|
|
jp $3132
|
|
|
|
Func_31e1: ; 0x31e1
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld c, a
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ld a, c
|
|
jr z, .asm_31ed
|
|
add $9
|
|
.asm_31ed
|
|
ld c, a
|
|
sla a
|
|
sla a
|
|
add c
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $320e ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hli]
|
|
ld d, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, b
|
|
ld bc, $0010
|
|
call LoadVRAMData
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$320e,$3268 - $320e
|
|
|
|
Func_3268: ; 0x3268
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
ld c, $81
|
|
cp $20
|
|
jr z, .asm_3297
|
|
cp $2c
|
|
jr z, .asm_329a
|
|
cp $30
|
|
jr c, .asm_327d
|
|
cp $3a
|
|
jr c, .asm_329e
|
|
.asm_327d
|
|
cp $a0
|
|
jr c, .asm_3285
|
|
cp $e0
|
|
jr c, .asm_328f
|
|
.asm_3285
|
|
cp $e0
|
|
jr c, .asm_328d
|
|
cp $f4
|
|
jr c, .asm_3293
|
|
.asm_328d
|
|
jr Func_3268
|
|
.asm_328f
|
|
sub $80
|
|
jr .asm_32a0
|
|
.asm_3293
|
|
sub $50
|
|
jr .asm_32a0
|
|
.asm_3297
|
|
ld a, c
|
|
jr .asm_32a0
|
|
.asm_329a
|
|
inc c
|
|
dec e
|
|
jr .asm_32a1
|
|
.asm_329e
|
|
add $56
|
|
.asm_32a0
|
|
ld [de], a
|
|
.asm_32a1
|
|
set 7, e
|
|
ld a, c
|
|
ld [de], a
|
|
res 7, e
|
|
inc e
|
|
jr Func_3268
|
|
|
|
Func_32aa: ; 0x32aa
|
|
ld a, $1
|
|
ld [hli], a
|
|
ld a, [de]
|
|
ld [hli], a
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
push af
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
pop af
|
|
ld l, a
|
|
ld h, $c5
|
|
.asm_32c5
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
and a
|
|
jr nz, .asm_32c5
|
|
ret
|
|
|
|
Func_32cc: ; 0x32cc
|
|
ld a, $1
|
|
ld [hli], a
|
|
ld a, [de]
|
|
ld [hli], a
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
push af
|
|
inc de
|
|
ld a, [de]
|
|
ld [hli], a
|
|
inc de
|
|
pop af
|
|
ld e, a
|
|
ld d, $c5
|
|
ld hl, [sp+$5]
|
|
ld bc, $0801
|
|
.asm_32ec
|
|
ld a, [hl]
|
|
swap a
|
|
and $f
|
|
call Func_3309
|
|
dec b
|
|
ld a, [hld]
|
|
and $f
|
|
call Func_3309
|
|
dec b
|
|
jr nz, .asm_32ec
|
|
ld a, $30
|
|
ld [de], a
|
|
inc de
|
|
ld a, $20
|
|
ld [de], a
|
|
inc de
|
|
xor a
|
|
ld [de], a
|
|
ret
|
|
|
|
Func_3309: ; 0x3309
|
|
jr nz, .asm_3312
|
|
ld a, b
|
|
dec a
|
|
jr z, .asm_3312
|
|
ld a, c
|
|
and a
|
|
ret nz
|
|
.asm_3312
|
|
add $30
|
|
ld [de], a
|
|
inc de
|
|
ld c, $0
|
|
ld a, b
|
|
cp $6
|
|
jr z, .asm_3320
|
|
cp $3
|
|
ret nz
|
|
.asm_3320
|
|
ld a, $2c
|
|
ld [de], a
|
|
inc de
|
|
ret
|
|
|
|
Func_3325: ; 0x3325
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
ld a, [hl]
|
|
dec a
|
|
ld [hli], a
|
|
ret nz
|
|
ld a, [hld]
|
|
ld [hl], a
|
|
inc hl
|
|
inc hl
|
|
push hl
|
|
ld a, [hli]
|
|
ld e, a
|
|
cp [hl]
|
|
inc hl
|
|
jr nz, .asm_333c
|
|
ld a, [hl]
|
|
dec a
|
|
ld [hl], a
|
|
jr nz, .asm_333d
|
|
.asm_333c
|
|
dec e
|
|
.asm_333d
|
|
push de
|
|
ld d, $c6
|
|
inc hl
|
|
push hl
|
|
ld l, [hl]
|
|
ld h, $c5
|
|
call Func_3129
|
|
pop hl
|
|
inc hl
|
|
ld a, [hl]
|
|
dec a
|
|
ld [hl], a
|
|
pop de
|
|
pop hl
|
|
ld [hl], e
|
|
ret nz
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
ld [hl], $0
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$3357,$33c3 - $3357
|
|
|
|
Func_33c3: ; 0x33c3
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld d, $c6
|
|
push hl
|
|
ld l, [hl]
|
|
ld h, $c5
|
|
call Func_3129
|
|
pop hl
|
|
inc hl
|
|
ld a, [hl]
|
|
dec a
|
|
ld [hli], a
|
|
ret nz
|
|
ld a, [hl]
|
|
dec a
|
|
ld [hld], a
|
|
bit 7, a
|
|
ret z
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
ld [hl], $0
|
|
ret
|
|
|
|
Func_33e3: ; 0x33e3
|
|
ld a, [$d5ca]
|
|
and a
|
|
jr nz, .asm_33ed
|
|
ld [$d5cb], a
|
|
ret
|
|
.asm_33ed
|
|
ld c, $0
|
|
ld a, [$d5cc]
|
|
and a
|
|
jr z, .asm_33fe
|
|
push bc
|
|
ld hl, $d5cc
|
|
call Func_3325
|
|
pop bc
|
|
inc c
|
|
.asm_33fe
|
|
ld a, [$d5d4]
|
|
and a
|
|
jr z, .asm_340d
|
|
push bc
|
|
ld hl, $d5d4
|
|
call Func_3325
|
|
pop bc
|
|
inc c
|
|
.asm_340d
|
|
ld a, [$d5dc]
|
|
and a
|
|
jr z, .asm_341c
|
|
push bc
|
|
ld hl, $d5dc
|
|
call Func_3325
|
|
pop bc
|
|
inc c
|
|
.asm_341c
|
|
ld a, [$d5e4]
|
|
and a
|
|
jr z, .asm_342b
|
|
push bc
|
|
ld hl, $d5e4
|
|
call Func_33c3
|
|
pop bc
|
|
inc c
|
|
.asm_342b
|
|
ld a, [$d5e9]
|
|
and a
|
|
jr z, .asm_343a
|
|
push bc
|
|
ld hl, $d5e9
|
|
call Func_33c3
|
|
pop bc
|
|
inc c
|
|
.asm_343a
|
|
ld a, [$d5ee]
|
|
and a
|
|
jr z, .asm_3449
|
|
push bc
|
|
ld hl, $d5ee
|
|
call Func_33c3
|
|
pop bc
|
|
inc c
|
|
.asm_3449
|
|
ld a, c
|
|
and a
|
|
ret nz
|
|
ld [$d5ca], a
|
|
call Func_30e8
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_3466
|
|
ld a, $18
|
|
ld hl, $7030
|
|
ld de, $8830
|
|
ld bc, $0040
|
|
call Func_735
|
|
ret
|
|
.asm_3466
|
|
ld a, $27
|
|
ld hl, $4030
|
|
ld de, $8830
|
|
ld bc, $0040
|
|
call Func_735
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$3475,$351c - $3475
|
|
|
|
Func_351c: ; 0x351c
|
|
ld hl, $d464
|
|
ld a, e
|
|
ld [hli], a
|
|
ld a, d
|
|
ld [hli], a
|
|
ld a, c
|
|
ld [hli], a
|
|
ld a, b
|
|
ld [hli], a
|
|
xor a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld bc, $d464
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$3538,$3579 - $3538
|
|
|
|
Func_3579: ; 0x3579
|
|
ld hl, $d47a
|
|
xor a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ret
|
|
|
|
HandleTilts: ; 0x3582
|
|
call HandleLeftTilt
|
|
call HandleRightTilt
|
|
call HandleUpperTilt
|
|
ret
|
|
|
|
HandleLeftTilt: ; 0x358c
|
|
ld a, [wLeftTiltReset]
|
|
and a
|
|
jr nz, .tiltCoolDown
|
|
ld hl, wKeyConfigLeftTilt
|
|
call IsKeyPressed2
|
|
jr z, .tiltCoolDown
|
|
ld a, [wLeftTiltCounter]
|
|
cp $3
|
|
jr z, .startCoolDown
|
|
inc a
|
|
ld [wLeftTiltCounter], a
|
|
cp $1
|
|
jr nz, .skipSoundEffect
|
|
ld de, $003f
|
|
call PlaySoundEffect
|
|
.skipSoundEffect
|
|
ld a, [$d548]
|
|
ld hl, $d549
|
|
and [hl]
|
|
jr z, .skipBallMovement
|
|
ld a, [wBallXPos + 1]
|
|
dec a ; move ball's position to the left by 1 pixel
|
|
ld [wBallXPos + 1], a
|
|
.skipBallMovement
|
|
ld a, [$d79f]
|
|
inc a
|
|
ld [$d79f], a
|
|
ld a, $1
|
|
ld [wLeftTiltPushing], a
|
|
ret
|
|
.startCoolDown
|
|
ld a, $1
|
|
ld [wLeftTiltReset], a
|
|
.tiltCoolDown
|
|
xor a
|
|
ld [wLeftTiltPushing], a
|
|
ld a, [wLeftTiltCounter]
|
|
and a
|
|
jr z, .done
|
|
dec a
|
|
ld [wLeftTiltCounter], a
|
|
ld a, [$d79f]
|
|
dec a
|
|
ld [$d79f], a
|
|
ret
|
|
.done
|
|
ld hl, wKeyConfigLeftTilt
|
|
call IsKeyPressed2
|
|
ret nz
|
|
xor a
|
|
ld [wLeftTiltReset], a
|
|
ret
|
|
|
|
HandleRightTilt: ; 0x35f3
|
|
ld a, [wRightTiltReset]
|
|
and a
|
|
jr nz, .tiltCoolDown
|
|
ld hl, wKeyConfigRightTilt
|
|
call IsKeyPressed2
|
|
jr z, .tiltCoolDown
|
|
ld a, [wRightTiltCounter]
|
|
cp $3
|
|
jr z, .startCoolDown
|
|
inc a
|
|
ld [wRightTiltCounter], a
|
|
cp $1
|
|
jr nz, .skipSoundEffect
|
|
ld de, $003f
|
|
call PlaySoundEffect
|
|
.skipSoundEffect
|
|
ld a, [$d548]
|
|
ld hl, $d549
|
|
and [hl]
|
|
jr z, .skipBallMovement
|
|
ld a, [wBallXPos + 1]
|
|
inc a ; move ball's position to the right by 1 pixel
|
|
ld [wBallXPos + 1], a
|
|
.skipBallMovement
|
|
ld a, [$d79f]
|
|
dec a
|
|
ld [$d79f], a
|
|
ld a, $1
|
|
ld [wRightTiltPushing], a
|
|
ret
|
|
.startCoolDown
|
|
ld a, $1
|
|
ld [wRightTiltReset], a
|
|
.tiltCoolDown
|
|
xor a
|
|
ld [wRightTiltPushing], a
|
|
ld a, [wRightTiltCounter]
|
|
and a
|
|
jr z, .done
|
|
dec a
|
|
ld [wRightTiltCounter], a
|
|
ld a, [$d79f]
|
|
inc a
|
|
ld [$d79f], a
|
|
ret
|
|
.done
|
|
ld hl, wKeyConfigRightTilt
|
|
call IsKeyPressed2
|
|
ret nz
|
|
xor a
|
|
ld [wRightTiltReset], a
|
|
ret
|
|
|
|
HandleUpperTilt: ; 0x365a
|
|
ld a, [wUpperTiltReset]
|
|
and a
|
|
jr nz, .tiltCoolDown
|
|
ld hl, wKeyConfigUpperTilt
|
|
call IsKeyPressed2
|
|
jr z, .tiltCoolDown
|
|
ld a, [wUpperTiltCounter]
|
|
cp $4
|
|
jr z, .startCoolDown
|
|
inc a
|
|
ld [wUpperTiltCounter], a
|
|
cp $1
|
|
jr nz, .skipSoundEffect
|
|
ld de, $003f
|
|
call PlaySoundEffect
|
|
.skipSoundEffect
|
|
ld a, [$d548]
|
|
ld hl, $d549
|
|
and [hl]
|
|
jr z, .skipBallMovement
|
|
ld a, [wBallYPos + 1]
|
|
inc a ; move ball's position down by 1 pixel
|
|
ld [wBallYPos + 1], a
|
|
.skipBallMovement
|
|
ld a, [$d7a0]
|
|
dec a
|
|
ld [$d7a0], a
|
|
ld a, $1
|
|
ld [wUpperTiltPushing], a
|
|
ret
|
|
.startCoolDown
|
|
ld a, $1
|
|
ld [wUpperTiltReset], a
|
|
.tiltCoolDown
|
|
xor a
|
|
ld [wUpperTiltPushing], a
|
|
ld a, [wUpperTiltCounter]
|
|
and a
|
|
jr z, .done
|
|
dec a
|
|
ld [wUpperTiltCounter], a
|
|
ld a, [$d7a0]
|
|
inc a
|
|
ld [$d7a0], a
|
|
ret
|
|
.done
|
|
ld hl, wKeyConfigUpperTilt
|
|
call IsKeyPressed2
|
|
ret nz
|
|
xor a
|
|
ld [wUpperTiltReset], a
|
|
ret
|
|
|
|
ApplyTiltForces: ; 0x36c1
|
|
ld a, [$d548]
|
|
ld hl, $d549
|
|
and [hl]
|
|
ret z
|
|
ld c, $0
|
|
ld a, [wUpperTiltPushing]
|
|
srl a
|
|
rl c
|
|
ld a, [wRightTiltPushing]
|
|
srl a
|
|
rl c
|
|
ld a, [wLeftTiltPushing]
|
|
srl a
|
|
rl c
|
|
ld b, $0
|
|
sla c
|
|
ld hl, $372d ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
bit 7, h
|
|
ret nz
|
|
ld a, [$d7ea]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
add hl, bc
|
|
ld a, [hLoadedROMBank]
|
|
push af
|
|
ld a, $3c
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ld a, [wBallXVelocity]
|
|
add [hl]
|
|
ld [wBallXVelocity], a
|
|
inc hl
|
|
ld a, [wBallXVelocity + 1]
|
|
adc [hl]
|
|
ld [wBallXVelocity + 1], a
|
|
inc hl
|
|
ld a, [wBallYVelocity]
|
|
add [hl]
|
|
ld [wBallYVelocity], a
|
|
inc hl
|
|
ld a, [wBallYVelocity + 1]
|
|
adc [hl]
|
|
ld [wBallYVelocity + 1], a
|
|
pop af
|
|
ld [hLoadedROMBank], a
|
|
ld [$2000], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$372d,$4000 - $372d
|
|
|
|
|
|
SECTION "bank1", ROMX, BANK[$1]
|
|
|
|
OAMDataPointers: ; 0x4000
|
|
dw BallSpin0OAM
|
|
dw BallSpin1OAM
|
|
dw BallSpin2OAM
|
|
dw BallSpin3OAM
|
|
dw BallSpin4OAM
|
|
dw BallSpin5OAM
|
|
dw BallSpin6OAM
|
|
dw BallSpin7OAM
|
|
dw OAMData_8
|
|
dw OAMData_9
|
|
dw OAMData_a
|
|
dw OAMData_b
|
|
dw OAMData_c
|
|
dw OAMData_d
|
|
dw OAMData_e
|
|
dw OAMData_f
|
|
dw OAMData_10
|
|
dw OAMData_11
|
|
dw OAMData_12
|
|
dw OAMData_13
|
|
dw OAMData_14
|
|
dw OAMData_15
|
|
dw OAMData_16
|
|
dw OAMData_17
|
|
dw OAMData_18
|
|
dw OAMData_19
|
|
dw OAMData_1a
|
|
dw OAMData_1b
|
|
dw OAMData_1c
|
|
dw OAMData_1d
|
|
dw OAMData_1e
|
|
dw OAMData_1f
|
|
dw OAMData_20
|
|
dw OAMData_21
|
|
dw OAMData_22
|
|
dw OAMData_23
|
|
dw OAMData_24
|
|
dw OAMData_25
|
|
dw OAMData_26
|
|
dw OAMData_27
|
|
dw OAMData_28
|
|
dw OAMData_29
|
|
dw OAMData_2a
|
|
dw OAMData_2b
|
|
dw OAMData_2c
|
|
dw OAMData_2d
|
|
dw OAMData_2e
|
|
dw OAMData_2f
|
|
dw OAMData_30
|
|
dw OAMData_31
|
|
dw OAMData_32
|
|
dw OAMData_33
|
|
dw OAMData_34
|
|
dw OAMData_35
|
|
dw OAMData_36
|
|
dw OAMData_37
|
|
dw OAMData_38
|
|
dw OAMData_39
|
|
dw OAMData_3a
|
|
dw OAMData_3b
|
|
dw OAMData_3c
|
|
dw OAMData_3d
|
|
dw OAMData_3e
|
|
dw OAMData_3f
|
|
dw OAMData_40
|
|
dw OAMData_41
|
|
dw OAMData_42
|
|
dw OAMData_43
|
|
dw OAMData_44
|
|
dw OAMData_45
|
|
dw OAMData_46
|
|
dw OAMData_47
|
|
dw OAMData_48
|
|
dw OAMData_49
|
|
dw OAMData_4a
|
|
dw OAMData_4b
|
|
dw OAMData_4c
|
|
dw OAMData_4d
|
|
dw OAMData_4e
|
|
dw OAMData_4f
|
|
dw OAMData_50
|
|
dw OAMData_51
|
|
dw OAMData_52
|
|
dw OAMData_53
|
|
dw OAMData_54
|
|
dw OAMData_55
|
|
dw OAMData_56
|
|
dw OAMData_57
|
|
dw OAMData_58
|
|
dw OAMData_59
|
|
dw TitlescreenPikachuBlinkFrame1OAM
|
|
dw TitlescreenPikachuBlinkFrame2OAM
|
|
dw TitlescreenPikachuBlinkFrame3OAM
|
|
dw TitlescreenPokeball1OAM
|
|
dw TitlescreenPokeball2OAM
|
|
dw TitlescreenPokeball3OAM
|
|
dw TitlescreenPokeball4OAM
|
|
dw TitlescreenPokeball5OAM
|
|
dw OAMData_62
|
|
dw OAMData_63
|
|
dw OAMData_64
|
|
dw OAMData_65
|
|
dw OAMData_66
|
|
dw OAMData_67
|
|
dw OAMData_68
|
|
dw OAMData_69
|
|
dw PokeDexTextOAM
|
|
dw OAMData_6b
|
|
dw Digit0OAM
|
|
dw Digit1OAM
|
|
dw Digit2OAM
|
|
dw Digit3OAM
|
|
dw Digit4OAM
|
|
dw Digit5OAM
|
|
dw Digit6OAM
|
|
dw Digit7OAM
|
|
dw Digit8OAM
|
|
dw Digit9OAM
|
|
dw SlashCharacterOAM
|
|
dw OAMData_77
|
|
dw OAMData_78
|
|
dw OAMData_79
|
|
dw OAMData_7a
|
|
dw OAMData_7b
|
|
dw OAMData_7c
|
|
dw OAMData_7d
|
|
dw OAMData_7e
|
|
dw OAMData_7f
|
|
dw OAMData_80
|
|
dw OAMData_81
|
|
dw OAMData_82
|
|
dw OAMData_83
|
|
dw OAMData_84
|
|
dw OAMData_85
|
|
dw OAMData_86
|
|
dw OAMData_87
|
|
dw OAMData_88
|
|
dw OAMData_89
|
|
dw OAMData_8a
|
|
dw OAMData_8b
|
|
dw OAMData_8c
|
|
dw OAMData_8d
|
|
dw OAMData_8e
|
|
dw OAMData_8f
|
|
dw OAMData_90
|
|
dw OAMData_91
|
|
dw OAMData_92
|
|
dw OAMData_93
|
|
dw OAMData_94
|
|
dw OAMData_95
|
|
dw OAMData_96
|
|
dw OAMData_97
|
|
dw OAMData_98
|
|
dw OAMData_99
|
|
dw OAMData_9a
|
|
dw OAMData_9b
|
|
dw OAMData_9c
|
|
dw OAMData_9d
|
|
dw FieldSelectRedStageBorderOAM
|
|
dw FieldSelectBlueStageBorderOAM
|
|
dw OAMData_a0
|
|
dw OAMData_a1
|
|
dw OAMData_a2
|
|
dw OAMData_a3
|
|
dw OAMData_a4
|
|
dw OAMData_a5
|
|
dw OAMData_a6
|
|
dw OAMData_a7
|
|
dw OAMData_a8
|
|
dw OAMData_a9
|
|
dw OAMData_aa
|
|
dw OAMData_ab
|
|
dw OAMData_ac
|
|
dw OAMData_ad
|
|
dw OAMData_ae
|
|
dw OAMData_af
|
|
dw OAMData_b0
|
|
dw Timer0DigitOAM
|
|
dw Timer1DigitOAM
|
|
dw Timer2DigitOAM
|
|
dw Timer3DigitOAM
|
|
dw Timer4DigitOAM
|
|
dw Timer5DigitOAM
|
|
dw Timer6DigitOAM
|
|
dw Timer7DigitOAM
|
|
dw Timer8DigitOAM
|
|
dw Timer9DigitOAM
|
|
dw TimerColonOAM
|
|
dw OAMData_bc
|
|
dw OAMData_bd
|
|
dw OAMData_be
|
|
dw OAMData_bf
|
|
dw OAMData_c0
|
|
dw OAMData_c1
|
|
dw OAMData_c2
|
|
dw OAMData_c3
|
|
dw OAMData_c4
|
|
dw OAMData_c5
|
|
dw OAMData_c6
|
|
dw OAMData_c7
|
|
dw OAMData_c8
|
|
dw OAMData_c9
|
|
dw OAMData_ca
|
|
dw OAMData_cb
|
|
dw OAMData_cc
|
|
dw OAMData_cd
|
|
dw OAMData_ce
|
|
dw OAMData_cf
|
|
dw OAMData_d0
|
|
dw OAMData_d1
|
|
dw OAMData_d2
|
|
dw OAMData_d3
|
|
dw OAMData_d4
|
|
dw OAMData_d5
|
|
dw OAMData_d6
|
|
dw OAMData_d7
|
|
dw OAMData_d8
|
|
dw OAMData_d9
|
|
dw OAMData_da
|
|
dw OAMData_db
|
|
dw OAMData_dc
|
|
dw OAMData_dd
|
|
dw OAMData_de
|
|
dw OAMData_df
|
|
dw OAMData_e0
|
|
dw OAMData_e1
|
|
dw OAMData_e2
|
|
dw OAMData_e3
|
|
dw OAMData_e4
|
|
dw OAMData_e5
|
|
dw OAMData_e6
|
|
dw OAMData_e7
|
|
dw OAMData_e8
|
|
dw OAMData_e9
|
|
dw OAMData_ea
|
|
dw OAMData_eb
|
|
dw OAMData_ec
|
|
dw OAMData_ed
|
|
dw OAMData_ee
|
|
dw OAMData_ef
|
|
dw OAMData_f0
|
|
dw OAMData_f1
|
|
dw OAMData_f2
|
|
dw OAMData_f3
|
|
dw OAMData_f4
|
|
dw OAMData_f5
|
|
dw OAMData_f6
|
|
dw OAMData_f7
|
|
dw OAMData_f8
|
|
|
|
BallSpin0OAM: ; 0x41f2
|
|
db $08, $08, $42, $00
|
|
db $08, $00, $40, $00
|
|
db $80 ; terminator
|
|
|
|
BallSpin1OAM: ; 0x41fb
|
|
db $08, $08, $46, $00
|
|
db $08, $00, $44, $00
|
|
db $80 ; terminator
|
|
|
|
BallSpin2OAM: ; 0x4204
|
|
db $08, $08, $4a, $00
|
|
db $08, $00, $48, $00
|
|
db $80 ; terminator
|
|
|
|
BallSpin3OAM: ; 0x420d
|
|
db $08, $08, $4e, $00
|
|
db $08, $00, $4c, $00
|
|
db $80 ; terminator
|
|
|
|
BallSpin4OAM: ; 0x4216
|
|
db $08, $08, $52, $00
|
|
db $08, $00, $50, $00
|
|
db $80 ; terminator
|
|
|
|
BallSpin5OAM: ; 0x421f
|
|
db $08, $08, $56, $00
|
|
db $08, $00, $54, $00
|
|
db $80 ; terminator
|
|
|
|
BallSpin6OAM: ; 0x4228
|
|
db $08, $08, $5a, $00
|
|
db $08, $00, $58, $00
|
|
db $80 ; terminator
|
|
|
|
BallSpin7OAM: ; 0x4231
|
|
db $08, $08, $5e, $00
|
|
db $08, $00, $5c, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_8: ; 0x423a
|
|
db $0c, $05, $64, $02
|
|
db $0a, $fd, $62, $02
|
|
db $14, $f5, $60, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_9: ; 0x4247
|
|
db $0c, $05, $6a, $02
|
|
db $04, $fd, $68, $02
|
|
db $0c, $f5, $66, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_a: ; 0x4254
|
|
db $0a, $05, $70, $02
|
|
db $03, $fd, $6e, $02
|
|
db $fd, $f5, $6c, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_b: ; 0x4261
|
|
db $0c, $03, $64, $22
|
|
db $0a, $0b, $62, $22
|
|
db $14, $13, $60, $22
|
|
db $80 ; terminator
|
|
|
|
OAMData_c: ; 0x426e
|
|
db $0c, $03, $6a, $22
|
|
db $04, $0b, $68, $22
|
|
db $0c, $13, $66, $22
|
|
db $80 ; terminator
|
|
|
|
OAMData_d: ; 0x427b
|
|
db $0a, $03, $70, $22
|
|
db $03, $0b, $6e, $22
|
|
db $fd, $13, $6c, $22
|
|
db $80 ; terminator
|
|
|
|
OAMData_e: ; 0x4288
|
|
db $00, $09, $74, $04
|
|
db $00, $01, $72, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_f: ; 0x4291
|
|
db $00, $01, $76, $04
|
|
db $00, $09, $78, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_10: ; 0x429a
|
|
db $00, $09, $7c, $04
|
|
db $00, $01, $7a, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_11: ; 0x42a3
|
|
db $f5, $01, $3d, $51
|
|
db $f1, $06, $3e, $31
|
|
db $00, $09, $7c, $04
|
|
db $00, $01, $7a, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_12: ; 0x42b4
|
|
db $f1, $07, $3c, $11
|
|
db $f1, $02, $3e, $11
|
|
db $00, $09, $7c, $04
|
|
db $00, $01, $7a, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_13: ; 0x42c5
|
|
db $e9, $06, $3e, $31
|
|
db $e9, $01, $3c, $31
|
|
db $f1, $00, $3e, $31
|
|
db $f1, $08, $3c, $31
|
|
db $00, $09, $7c, $04
|
|
db $00, $01, $7a, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_14: ; 0x42de
|
|
db $e8, $01, $3e, $11
|
|
db $e8, $06, $3c, $11
|
|
db $f3, $01, $3c, $31
|
|
db $f3, $05, $3e, $31
|
|
db $00, $09, $7c, $04
|
|
db $00, $01, $7a, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_15: ; 0x42f7
|
|
db $e5, $09, $3e, $11
|
|
db $f1, $07, $3c, $11
|
|
db $e9, $02, $3f, $51
|
|
db $f2, $01, $3c, $31
|
|
db $00, $09, $7c, $04
|
|
db $00, $01, $7a, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_16: ; 0x4310
|
|
db $e8, $01, $3d, $51
|
|
db $f5, $00, $3f, $71
|
|
db $f2, $06, $3e, $31
|
|
db $e6, $07, $3c, $11
|
|
db $00, $09, $7c, $04
|
|
db $00, $01, $7a, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_17: ; 0x4329
|
|
db $0c, $05, $64, $11
|
|
db $0a, $fd, $62, $11
|
|
db $14, $f5, $60, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_18: ; 0x4336
|
|
db $0c, $03, $64, $31
|
|
db $0a, $0b, $62, $31
|
|
db $14, $13, $60, $31
|
|
db $80 ; terminator
|
|
|
|
OAMData_19: ; 0x4343
|
|
db $00, $08, $a2, $02
|
|
db $00, $00, $a0, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_1a: ; 0x434c
|
|
db $00, $10, $9e, $02
|
|
db $00, $08, $9c, $02
|
|
db $00, $00, $9a, $02
|
|
db $00, $f8, $98, $02
|
|
db $f0, $10, $96, $02
|
|
db $f0, $08, $94, $02
|
|
db $f0, $00, $92, $02
|
|
db $f0, $f8, $90, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_1b: ; 0x436d
|
|
db $01, $0f, $a7, $62
|
|
db $ff, $f7, $7f, $62
|
|
db $e7, $07, $7e, $02
|
|
db $e7, $fb, $a6, $02
|
|
db $f3, $f4, $a5, $42
|
|
db $e7, $12, $a6, $22
|
|
db $fd, $fd, $a7, $42
|
|
db $ef, $fa, $a6, $02
|
|
db $ed, $0c, $a6, $22
|
|
db $ef, $13, $a4, $22
|
|
db $e6, $02, $a5, $42
|
|
db $02, $05, $a7, $62
|
|
db $fc, $0b, $a7, $62
|
|
db $f7, $f9, $a4, $02
|
|
db $fb, $10, $a5, $62
|
|
db $f5, $09, $42, $00
|
|
db $f5, $01, $40, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_1c: ; 0x43b2
|
|
db $02, $11, $7f, $42
|
|
db $e6, $f9, $7e, $22
|
|
db $e6, $0f, $7e, $02
|
|
db $f5, $f0, $a5, $42
|
|
db $05, $05, $a7, $62
|
|
db $f0, $09, $42, $00
|
|
db $f0, $01, $40, $00
|
|
db $f5, $17, $a5, $62
|
|
db $01, $f7, $7f, $62
|
|
db $80 ; terminator
|
|
|
|
OAMData_1d: ; 0x43d7
|
|
db $ee, $09, $42, $00
|
|
db $ee, $01, $40, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_1e: ; 0x43e0
|
|
db $ed, $09, $42, $00
|
|
db $ed, $01, $40, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_1f: ; 0x43e9
|
|
db $ee, $09, $42, $00
|
|
db $ee, $01, $40, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_20: ; 0x43f2
|
|
db $f0, $09, $42, $00
|
|
db $f0, $01, $40, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_21: ; 0x43fb
|
|
db $f5, $09, $42, $00
|
|
db $f5, $01, $40, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_22: ; 0x4404
|
|
db $fb, $09, $42, $00
|
|
db $fb, $01, $40, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_23: ; 0x440d
|
|
db $02, $09, $42, $00
|
|
db $02, $01, $40, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_24: ; 0x4416
|
|
db $01, $09, $42, $00
|
|
db $01, $01, $40, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_25: ; 0x441f
|
|
db $02, $0a, $3a, $00
|
|
db $02, $02, $38, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_26: ; 0x4428
|
|
db $fb, $0a, $9e, $15
|
|
db $fb, $02, $9c, $15
|
|
db $ff, $15, $9a, $13
|
|
db $ff, $0d, $98, $13
|
|
db $ff, $05, $96, $13
|
|
db $ff, $fd, $94, $13
|
|
db $ef, $08, $92, $13
|
|
db $ef, $00, $90, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_27: ; 0x4449
|
|
db $fc, $0a, $1c, $15
|
|
db $fc, $02, $1a, $15
|
|
db $fe, $15, $9a, $13
|
|
db $ff, $0d, $a8, $13
|
|
db $ff, $05, $a6, $13
|
|
db $ff, $fd, $a4, $13
|
|
db $ef, $08, $a2, $13
|
|
db $ef, $00, $a0, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_28: ; 0x446a
|
|
db $ff, $08, $2e, $15
|
|
db $ff, $00, $2c, $15
|
|
db $ff, $10, $2a, $13
|
|
db $ff, $08, $28, $13
|
|
db $ff, $00, $26, $13
|
|
db $ff, $f8, $24, $13
|
|
db $ef, $10, $22, $13
|
|
db $ef, $08, $20, $13
|
|
db $ef, $00, $1e, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_29: ; 0x448f
|
|
db $ef, $03, $92, $15
|
|
db $f3, $0b, $94, $15
|
|
db $f3, $fb, $90, $15
|
|
db $0d, $09, $9e, $13
|
|
db $fd, $09, $9c, $13
|
|
db $0d, $01, $9a, $13
|
|
db $fd, $01, $98, $13
|
|
db $00, $11, $a0, $13
|
|
db $00, $f9, $96, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_2a: ; 0x44b4
|
|
db $f0, $04, $a4, $15
|
|
db $f3, $0c, $a6, $15
|
|
db $f3, $fc, $a2, $15
|
|
db $00, $12, $1e, $13
|
|
db $00, $0a, $1c, $13
|
|
db $00, $02, $1a, $13
|
|
db $00, $fa, $a8, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_2b: ; 0x44d1
|
|
db $f8, $10, $26, $15
|
|
db $f3, $08, $24, $15
|
|
db $f3, $00, $22, $15
|
|
db $f8, $f8, $20, $15
|
|
db $00, $10, $2e, $13
|
|
db $00, $08, $2c, $13
|
|
db $00, $00, $2a, $13
|
|
db $00, $f8, $28, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_2c: ; 0x44f2
|
|
db $00, $10, $9e, $13
|
|
db $00, $08, $9c, $13
|
|
db $00, $00, $9a, $13
|
|
db $00, $f8, $98, $13
|
|
db $f0, $10, $96, $13
|
|
db $f0, $08, $94, $13
|
|
db $f0, $00, $92, $13
|
|
db $f0, $f8, $90, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_2d: ; 0x4513
|
|
db $00, $10, $1e, $13
|
|
db $00, $08, $1c, $13
|
|
db $00, $00, $1a, $13
|
|
db $00, $f8, $a8, $13
|
|
db $f0, $10, $a6, $13
|
|
db $f0, $08, $a4, $13
|
|
db $f0, $00, $a2, $13
|
|
db $f0, $f8, $a0, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_2e: ; 0x4534
|
|
db $00, $10, $2e, $13
|
|
db $00, $08, $2c, $13
|
|
db $00, $00, $2a, $13
|
|
db $00, $f8, $28, $13
|
|
db $f0, $10, $26, $13
|
|
db $f0, $08, $24, $13
|
|
db $f0, $00, $22, $13
|
|
db $f0, $f8, $20, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_2f: ; 0x4555
|
|
db $00, $10, $9e, $13
|
|
db $00, $08, $9c, $13
|
|
db $00, $00, $9a, $13
|
|
db $00, $f8, $98, $13
|
|
db $f0, $10, $96, $13
|
|
db $f0, $08, $94, $13
|
|
db $f0, $00, $92, $13
|
|
db $f0, $f8, $90, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_30: ; 0x4576
|
|
db $00, $10, $1e, $13
|
|
db $00, $08, $1c, $13
|
|
db $00, $00, $1a, $13
|
|
db $00, $f8, $a8, $13
|
|
db $f0, $10, $a6, $13
|
|
db $f0, $08, $a4, $13
|
|
db $f0, $00, $a2, $13
|
|
db $f0, $f8, $a0, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_31: ; 0x4597
|
|
db $01, $10, $2e, $13
|
|
db $01, $08, $2c, $13
|
|
db $01, $00, $2a, $13
|
|
db $01, $f8, $28, $13
|
|
db $f1, $10, $26, $13
|
|
db $f1, $08, $24, $13
|
|
db $f1, $00, $22, $13
|
|
db $f1, $f8, $20, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_32: ; 0x45b8
|
|
db $10, $08, $30, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_33: ; 0x45bd
|
|
db $10, $08, $30, $26
|
|
db $80 ; terminator
|
|
|
|
OAMData_34: ; 0x45c2
|
|
db $10, $08, $32, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_35: ; 0x45c7
|
|
db $10, $08, $32, $26
|
|
db $80 ; terminator
|
|
|
|
OAMData_36: ; 0x45cc
|
|
db $10, $08, $34, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_37: ; 0x45d1
|
|
db $10, $08, $34, $26
|
|
db $80 ; terminator
|
|
|
|
OAMData_38: ; 0x45d6
|
|
db $10, $08, $36, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_39: ; 0x45db
|
|
db $08, $08, $37, $46
|
|
db $80 ; terminator
|
|
|
|
OAMData_3a: ; 0x45e0
|
|
db $10, $08, $90, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_3b: ; 0x45e5
|
|
db $10, $08, $92, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_3c: ; 0x45ea
|
|
db $10, $08, $94, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_3d: ; 0x45ef
|
|
db $10, $08, $96, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_3e: ; 0x45f4
|
|
db $10, $08, $98, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_3f: ; 0x45f9
|
|
db $10, $08, $9a, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_40: ; 0x45fe
|
|
db $10, $08, $9c, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_41: ; 0x4603
|
|
db $10, $08, $20, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_42: ; 0x4608
|
|
db $10, $08, $22, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_43: ; 0x460d
|
|
db $10, $08, $24, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_44: ; 0x4612
|
|
db $10, $08, $26, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_45: ; 0x4617
|
|
db $10, $08, $28, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_46: ; 0x461c
|
|
db $10, $08, $2a, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_47: ; 0x4621
|
|
db $10, $08, $2c, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_48: ; 0x4626
|
|
db $10, $08, $60, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_49: ; 0x462b
|
|
db $10, $08, $62, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_4a: ; 0x4630
|
|
db $10, $08, $64, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_4b: ; 0x4635
|
|
db $10, $08, $66, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_4c: ; 0x463a
|
|
db $10, $08, $68, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_4d: ; 0x463f
|
|
db $10, $08, $6a, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_4e: ; 0x4644
|
|
db $10, $08, $6c, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_4f: ; 0x4649
|
|
db $1f, $19, $20, $37
|
|
db $1f, $21, $1e, $37
|
|
db $0f, $19, $1c, $37
|
|
db $0f, $21, $1a, $37
|
|
db $1f, $10, $20, $17
|
|
db $1f, $08, $1e, $17
|
|
db $0f, $10, $1c, $17
|
|
db $0f, $08, $1a, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_50: ; 0x466a
|
|
db $1f, $19, $28, $37
|
|
db $1f, $21, $26, $37
|
|
db $0f, $19, $24, $37
|
|
db $0f, $21, $22, $37
|
|
db $1f, $10, $28, $17
|
|
db $1f, $08, $26, $17
|
|
db $0f, $10, $24, $17
|
|
db $0f, $08, $22, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_51: ; 0x468b
|
|
db $1f, $19, $38, $37
|
|
db $1f, $10, $38, $17
|
|
db $1f, $21, $2e, $37
|
|
db $0f, $19, $2c, $37
|
|
db $0f, $21, $2a, $37
|
|
db $1f, $08, $2e, $17
|
|
db $0f, $10, $2c, $17
|
|
db $0f, $08, $2a, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_52: ; 0x46ac
|
|
db $08, $f8, $60, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_53: ; 0x46b1
|
|
db $08, $08, $60, $00
|
|
db $08, $00, $60, $00
|
|
db $08, $f8, $60, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_54: ; 0x46be
|
|
db $08, $20, $60, $00
|
|
db $08, $18, $60, $00
|
|
db $08, $10, $60, $00
|
|
db $08, $08, $60, $00
|
|
db $08, $00, $60, $00
|
|
db $08, $f8, $60, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_55: ; 0x46d7
|
|
db $10, $20, $60, $00
|
|
db $10, $18, $60, $00
|
|
db $10, $10, $60, $00
|
|
db $10, $08, $60, $00
|
|
db $10, $00, $60, $00
|
|
db $10, $f8, $60, $00
|
|
db $08, $20, $60, $00
|
|
db $08, $18, $60, $00
|
|
db $08, $10, $60, $00
|
|
db $08, $08, $60, $00
|
|
db $08, $00, $60, $00
|
|
db $08, $f8, $60, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_56: ; 0x4708
|
|
db $10, $20, $60, $40
|
|
db $10, $18, $60, $40
|
|
db $10, $10, $60, $40
|
|
db $10, $08, $60, $40
|
|
db $10, $00, $60, $40
|
|
db $18, $20, $60, $40
|
|
db $18, $18, $60, $40
|
|
db $18, $10, $60, $40
|
|
db $18, $08, $60, $40
|
|
db $18, $00, $60, $40
|
|
db $18, $f8, $60, $40
|
|
db $10, $f8, $60, $40
|
|
db $08, $f8, $60, $40
|
|
db $08, $20, $59, $00
|
|
db $08, $18, $58, $00
|
|
db $08, $10, $57, $00
|
|
db $08, $08, $56, $00
|
|
db $08, $00, $55, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_57: ; 0x4751
|
|
db $18, $20, $60, $40
|
|
db $18, $18, $60, $40
|
|
db $18, $10, $60, $40
|
|
db $18, $08, $60, $40
|
|
db $18, $00, $60, $40
|
|
db $18, $f8, $60, $40
|
|
db $10, $f8, $60, $40
|
|
db $08, $f8, $60, $40
|
|
db $10, $20, $5f, $00
|
|
db $10, $18, $5e, $00
|
|
db $10, $10, $5d, $00
|
|
db $10, $08, $5c, $00
|
|
db $10, $00, $5b, $00
|
|
db $08, $20, $59, $00
|
|
db $08, $18, $58, $00
|
|
db $08, $10, $57, $00
|
|
db $08, $08, $56, $00
|
|
db $08, $00, $55, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_58: ; 0x479a
|
|
db $18, $f8, $60, $40
|
|
db $10, $f8, $5a, $00
|
|
db $08, $f8, $54, $00
|
|
db $18, $20, $65, $00
|
|
db $18, $18, $64, $00
|
|
db $18, $10, $63, $00
|
|
db $18, $08, $62, $00
|
|
db $18, $00, $61, $00
|
|
db $10, $20, $5f, $00
|
|
db $10, $18, $5e, $00
|
|
db $10, $10, $5d, $00
|
|
db $10, $08, $5c, $00
|
|
db $10, $00, $5b, $00
|
|
db $08, $20, $59, $00
|
|
db $08, $18, $58, $00
|
|
db $08, $10, $57, $00
|
|
db $08, $08, $56, $00
|
|
db $08, $00, $55, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_59: ; 0x47e3
|
|
db $08, $f8, $60, $40
|
|
db $18, $f8, $67, $00
|
|
db $10, $f8, $66, $00
|
|
db $18, $20, $65, $00
|
|
db $18, $18, $64, $00
|
|
db $18, $10, $63, $00
|
|
db $18, $08, $62, $00
|
|
db $18, $00, $61, $00
|
|
db $10, $20, $5f, $00
|
|
db $10, $18, $5e, $00
|
|
db $10, $10, $5d, $00
|
|
db $10, $08, $5c, $00
|
|
db $10, $00, $5b, $00
|
|
db $08, $20, $59, $00
|
|
db $08, $18, $58, $00
|
|
db $08, $10, $57, $00
|
|
db $08, $08, $56, $00
|
|
db $08, $00, $55, $00
|
|
db $80 ; terminator
|
|
|
|
TitlescreenPikachuBlinkFrame1OAM: ; 0x482c
|
|
db $10, $28, $3f, $00
|
|
db $10, $20, $3e, $00
|
|
db $10, $18, $3d, $00
|
|
db $10, $10, $3c, $00
|
|
db $10, $08, $3b, $00
|
|
db $80 ; terminator
|
|
|
|
TitlescreenPikachuBlinkFrame2OAM: ; 0x4841
|
|
db $18, $09, $44, $00
|
|
db $10, $10, $41, $00
|
|
db $10, $08, $40, $00
|
|
db $80 ; terminator
|
|
|
|
TitlescreenPikachuBlinkFrame3OAM: ; 0x484e
|
|
db $18, $09, $45, $00
|
|
db $10, $10, $43, $00
|
|
db $10, $08, $42, $00
|
|
db $80 ; terminator
|
|
|
|
; These next 5 OAM entries are for the individual frames of the
|
|
; bouncing pokeball on the titlescreen.
|
|
TitlescreenPokeball1OAM: ; 0x485b
|
|
db $14, $00, $4c, $02
|
|
db $0c, $00, $46, $31
|
|
db $14, $f8, $47, $02
|
|
db $0c, $f8, $46, $11
|
|
db $80 ; terminator
|
|
|
|
TitlescreenPokeball2OAM: ; 0x486c
|
|
db $15, $00, $4d, $02
|
|
db $0d, $00, $48, $31
|
|
db $15, $f8, $49, $02
|
|
db $0d, $f8, $48, $11
|
|
db $80 ; terminator
|
|
|
|
TitlescreenPokeball3OAM: ; 0x487d
|
|
db $13, $00, $4c, $02
|
|
db $0b, $00, $46, $31
|
|
db $13, $f8, $47, $02
|
|
db $0b, $f8, $46, $11
|
|
db $80 ; terminator
|
|
|
|
TitlescreenPokeball4OAM: ; 0x488e
|
|
db $11, $00, $4e, $02
|
|
db $09, $00, $4a, $31
|
|
db $11, $f8, $4b, $02
|
|
db $09, $f8, $4a, $11
|
|
db $80 ; terminator
|
|
|
|
TitlescreenPokeball5OAM: ; 0x489f
|
|
db $11, $00, $4c, $02
|
|
db $09, $00, $46, $31
|
|
db $11, $f8, $47, $02
|
|
db $09, $f8, $46, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_62: ; 0x48b0
|
|
db $10, $20, $53, $11
|
|
db $10, $18, $52, $11
|
|
db $08, $20, $51, $11
|
|
db $18, $0c, $50, $11
|
|
db $10, $0c, $4f, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_63: ; 0x48c5
|
|
db $10, $08, $70, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_64: ; 0x48ca
|
|
db $10, $10, $71, $31
|
|
db $10, $08, $71, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_65: ; 0x48d3
|
|
db $10, $18, $74, $17
|
|
db $10, $10, $73, $00
|
|
db $10, $08, $72, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_66: ; 0x48e0
|
|
db $10, $18, $77, $17
|
|
db $10, $10, $76, $00
|
|
db $10, $08, $75, $17
|
|
db $80 ; terminator
|
|
|
|
OAMData_67: ; 0x48ed
|
|
db $10, $08, $78, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_68: ; 0x48f2
|
|
db $10, $08, $79, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_69: ; 0x48f7
|
|
db $10, $08, $79, $11
|
|
db $80 ; terminator
|
|
|
|
PokeDexTextOAM: ; 0x48fc
|
|
; "POKeDEX" in the top-right corner of the Pokedex screen
|
|
db $12, $34, $7f, $11
|
|
db $12, $2c, $7e, $11
|
|
db $12, $24, $7d, $11
|
|
db $12, $1c, $7c, $11
|
|
db $12, $14, $7b, $11
|
|
db $12, $0c, $7a, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_6b: ; 0x4915
|
|
db $10, $08, $6f, $11
|
|
db $80 ; terminator
|
|
|
|
Digit0OAM: ; 0x491a
|
|
db $10, $08, $53, $11
|
|
db $80 ; terminator
|
|
|
|
Digit1OAM: ; 0x491f
|
|
db $10, $08, $54, $11
|
|
db $80 ; terminator
|
|
|
|
Digit2OAM: ; 0x4924
|
|
db $10, $08, $55, $11
|
|
db $80 ; terminator
|
|
|
|
Digit3OAM: ; 0x4929
|
|
db $10, $08, $56, $11
|
|
db $80 ; terminator
|
|
|
|
Digit4OAM: ; 0x492e
|
|
db $10, $08, $57, $11
|
|
db $80 ; terminator
|
|
|
|
Digit5OAM: ; 0x4933
|
|
db $10, $08, $58, $11
|
|
db $80 ; terminator
|
|
|
|
Digit6OAM: ; 0x4938
|
|
db $10, $08, $59, $11
|
|
db $80 ; terminator
|
|
|
|
Digit7OAM: ; 0x493d
|
|
db $10, $08, $5a, $11
|
|
db $80 ; terminator
|
|
|
|
Digit8OAM: ; 0x4942
|
|
db $10, $08, $5b, $11
|
|
db $80 ; terminator
|
|
|
|
Digit9OAM: ; 0x4947
|
|
db $10, $08, $5c, $11
|
|
db $80 ; terminator
|
|
|
|
SlashCharacterOAM: ; 0x494c
|
|
; "/" (used to separate seen/own count on the pokedex screen)
|
|
db $10, $08, $5e, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_77: ; 0x4951
|
|
db $11, $07, $34, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_78: ; 0x4956
|
|
db $0f, $07, $36, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_79: ; 0x495b
|
|
db $0f, $07, $38, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_7a: ; 0x4960
|
|
db $f4, $18, $26, $13
|
|
db $f4, $10, $24, $13
|
|
db $f4, $08, $22, $13
|
|
db $10, $00, $3a, $02
|
|
db $09, $10, $3e, $00
|
|
db $08, $08, $3c, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_7b: ; 0x4979
|
|
db $10, $28, $78, $00
|
|
db $10, $08, $5c, $02
|
|
db $10, $10, $5e, $02
|
|
db $10, $18, $60, $02
|
|
db $10, $20, $62, $02
|
|
db $20, $08, $64, $02
|
|
db $20, $10, $66, $02
|
|
db $20, $18, $68, $02
|
|
db $20, $20, $6a, $02
|
|
db $20, $28, $6c, $02
|
|
db $30, $08, $6e, $02
|
|
db $30, $10, $70, $02
|
|
db $30, $18, $72, $02
|
|
db $30, $20, $74, $02
|
|
db $30, $28, $76, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_7c: ; 0x49b6
|
|
db $11, $29, $7a, $02
|
|
db $11, $09, $40, $02
|
|
db $11, $11, $42, $02
|
|
db $11, $19, $44, $02
|
|
db $11, $21, $46, $02
|
|
db $21, $09, $48, $02
|
|
db $21, $11, $4a, $02
|
|
db $21, $19, $4c, $02
|
|
db $21, $21, $4e, $02
|
|
db $21, $29, $50, $02
|
|
db $31, $09, $52, $02
|
|
db $31, $11, $54, $02
|
|
db $31, $19, $56, $02
|
|
db $31, $21, $58, $02
|
|
db $31, $29, $5a, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_7d: ; 0x49f3
|
|
db $0c, $10, $2a, $04
|
|
db $0c, $08, $28, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_7e: ; 0x49fc
|
|
db $0d, $10, $2e, $04
|
|
db $0d, $08, $2c, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_7f: ; 0x4a05
|
|
db $0b, $10, $2a, $04
|
|
db $0b, $08, $28, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_80: ; 0x4a0e
|
|
db $09, $10, $32, $04
|
|
db $09, $08, $30, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_81: ; 0x4a17
|
|
db $09, $10, $2a, $04
|
|
db $09, $08, $28, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_82: ; 0x4a20
|
|
db $10, $08, $7c, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_83: ; 0x4a25
|
|
db $10, $08, $7c, $20
|
|
db $80 ; terminator
|
|
|
|
OAMData_84: ; 0x4a2a
|
|
db $10, $08, $7e, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_85: ; 0x4a2f
|
|
db $10, $08, $20, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_86: ; 0x4a34
|
|
db $18, $08, $7f, $00
|
|
db $10, $08, $7e, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_87: ; 0x4a3d
|
|
db $20, $25, $15, $02
|
|
db $18, $25, $0f, $02
|
|
db $10, $25, $0a, $02
|
|
db $18, $1d, $0e, $02
|
|
db $18, $15, $0d, $02
|
|
db $18, $0d, $0c, $02
|
|
db $18, $05, $0b, $02
|
|
db $10, $1d, $09, $02
|
|
db $10, $15, $08, $02
|
|
db $10, $0d, $07, $02
|
|
db $10, $05, $06, $02
|
|
db $20, $1d, $14, $02
|
|
db $20, $15, $13, $02
|
|
db $20, $0d, $12, $02
|
|
db $20, $05, $11, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_88: ; 0x4a7a
|
|
db $20, $f5, $10, $02
|
|
db $18, $f5, $02, $02
|
|
db $10, $f5, $01, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_89: ; 0x4a87
|
|
db $10, $f5, $10, $42
|
|
db $18, $f5, $02, $42
|
|
db $20, $f5, $01, $42
|
|
db $80 ; terminator
|
|
|
|
OAMData_8a: ; 0x4a94
|
|
db $20, $fd, $00, $02
|
|
db $18, $fd, $00, $02
|
|
db $10, $fd, $00, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_8b: ; 0x4aa1
|
|
db $20, $fd, $00, $02
|
|
db $18, $fd, $04, $02
|
|
db $10, $fd, $03, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_8c: ; 0x4aae
|
|
db $10, $fd, $00, $02
|
|
db $18, $fd, $04, $42
|
|
db $20, $fd, $03, $42
|
|
db $80 ; terminator
|
|
|
|
OAMData_8d: ; 0x4abb
|
|
db $18, $fd, $05, $02
|
|
db $20, $fd, $03, $42
|
|
db $10, $fd, $03, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_8e: ; 0x4ac8
|
|
db $0e, $2f, $1f, $02
|
|
db $0e, $27, $1e, $02
|
|
db $16, $2f, $29, $02
|
|
db $16, $27, $28, $02
|
|
db $16, $1f, $27, $02
|
|
db $16, $17, $26, $02
|
|
db $16, $0f, $25, $02
|
|
db $16, $07, $24, $02
|
|
db $16, $ff, $23, $02
|
|
db $16, $f7, $22, $02
|
|
db $16, $ef, $21, $02
|
|
db $16, $e7, $20, $02
|
|
db $0e, $1f, $1d, $02
|
|
db $0e, $17, $1c, $02
|
|
db $0e, $0f, $1b, $02
|
|
db $0e, $07, $1a, $02
|
|
db $0e, $ff, $19, $02
|
|
db $0e, $f7, $18, $02
|
|
db $0e, $ef, $17, $02
|
|
db $0e, $e7, $16, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_8f: ; 0x4b19
|
|
db $0e, $2f, $1f, $02
|
|
db $0e, $27, $1e, $02
|
|
db $16, $2f, $3b, $02
|
|
db $16, $27, $3a, $02
|
|
db $16, $1f, $39, $02
|
|
db $16, $17, $38, $02
|
|
db $16, $0f, $37, $02
|
|
db $16, $07, $36, $02
|
|
db $16, $ff, $35, $02
|
|
db $16, $f7, $34, $02
|
|
db $16, $ef, $33, $02
|
|
db $16, $e7, $32, $02
|
|
db $0e, $1f, $31, $02
|
|
db $0e, $17, $30, $02
|
|
db $0e, $0f, $2f, $02
|
|
db $0e, $07, $2e, $02
|
|
db $0e, $ff, $2d, $02
|
|
db $0e, $f7, $2c, $02
|
|
db $0e, $ef, $2b, $02
|
|
db $0e, $e7, $2a, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_90: ; 0x4b6a
|
|
db $1d, $14, $48, $02
|
|
db $1d, $0c, $47, $02
|
|
db $15, $1c, $45, $02
|
|
db $15, $14, $44, $02
|
|
db $15, $0c, $43, $02
|
|
db $15, $04, $42, $02
|
|
db $15, $fc, $41, $02
|
|
db $1d, $1c, $00, $02
|
|
db $1d, $fc, $00, $02
|
|
db $25, $1c, $4c, $22
|
|
db $25, $14, $4e, $02
|
|
db $25, $0c, $4e, $02
|
|
db $25, $04, $4d, $02
|
|
db $25, $fc, $4c, $02
|
|
db $1d, $04, $46, $02
|
|
db $0d, $1c, $40, $02
|
|
db $0d, $14, $3f, $02
|
|
db $0d, $0c, $3e, $02
|
|
db $0d, $04, $3d, $02
|
|
db $0d, $fc, $3c, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_91: ; 0x4bbb
|
|
db $1d, $14, $49, $02
|
|
db $1d, $0c, $47, $02
|
|
db $15, $1c, $45, $02
|
|
db $15, $14, $44, $02
|
|
db $15, $0c, $43, $02
|
|
db $15, $04, $42, $02
|
|
db $15, $fc, $41, $02
|
|
db $1d, $1c, $00, $02
|
|
db $1d, $fc, $00, $02
|
|
db $25, $1c, $4c, $22
|
|
db $25, $14, $4e, $02
|
|
db $25, $0c, $4e, $02
|
|
db $25, $04, $4d, $02
|
|
db $25, $fc, $4c, $02
|
|
db $1d, $04, $46, $02
|
|
db $0d, $1c, $40, $02
|
|
db $0d, $14, $3f, $02
|
|
db $0d, $0c, $3e, $02
|
|
db $0d, $04, $3d, $02
|
|
db $0d, $fc, $3c, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_92: ; 0x4c0c
|
|
db $1d, $14, $4a, $02
|
|
db $1d, $0c, $47, $02
|
|
db $15, $1c, $45, $02
|
|
db $15, $14, $44, $02
|
|
db $15, $0c, $43, $02
|
|
db $15, $04, $42, $02
|
|
db $15, $fc, $41, $02
|
|
db $1d, $1c, $00, $02
|
|
db $1d, $fc, $00, $02
|
|
db $25, $1c, $4c, $22
|
|
db $25, $14, $4e, $02
|
|
db $25, $0c, $4e, $02
|
|
db $25, $04, $4d, $02
|
|
db $25, $fc, $4c, $02
|
|
db $1d, $04, $46, $02
|
|
db $0d, $1c, $40, $02
|
|
db $0d, $14, $3f, $02
|
|
db $0d, $0c, $3e, $02
|
|
db $0d, $04, $3d, $02
|
|
db $0d, $fc, $3c, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_93: ; 0x4c5d
|
|
db $1d, $14, $4b, $02
|
|
db $1d, $0c, $47, $02
|
|
db $15, $1c, $45, $02
|
|
db $15, $14, $44, $02
|
|
db $15, $0c, $43, $02
|
|
db $15, $04, $42, $02
|
|
db $15, $fc, $41, $02
|
|
db $1d, $1c, $00, $02
|
|
db $1d, $fc, $00, $02
|
|
db $25, $1c, $4c, $22
|
|
db $25, $14, $4e, $02
|
|
db $25, $0c, $4e, $02
|
|
db $25, $04, $4d, $02
|
|
db $25, $fc, $4c, $02
|
|
db $1d, $04, $46, $02
|
|
db $0d, $1c, $40, $02
|
|
db $0d, $14, $3f, $02
|
|
db $0d, $0c, $3e, $02
|
|
db $0d, $04, $3d, $02
|
|
db $0d, $fc, $3c, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_94: ; 0x4cae
|
|
db $28, $eb, $10, $02
|
|
db $20, $2b, $00, $02
|
|
db $20, $eb, $00, $02
|
|
db $28, $33, $58, $42
|
|
db $20, $33, $62, $02
|
|
db $18, $33, $62, $02
|
|
db $18, $2b, $61, $02
|
|
db $10, $33, $58, $02
|
|
db $10, $2b, $57, $02
|
|
db $20, $23, $69, $02
|
|
db $20, $1b, $68, $02
|
|
db $20, $13, $67, $02
|
|
db $20, $0b, $66, $02
|
|
db $20, $03, $65, $02
|
|
db $20, $fb, $64, $02
|
|
db $20, $f3, $63, $02
|
|
db $18, $23, $60, $02
|
|
db $18, $1b, $5f, $02
|
|
db $18, $13, $5e, $02
|
|
db $18, $0b, $5d, $02
|
|
db $18, $03, $5c, $02
|
|
db $18, $fb, $5b, $02
|
|
db $18, $f3, $5a, $02
|
|
db $18, $eb, $59, $02
|
|
db $10, $23, $56, $02
|
|
db $10, $1b, $55, $02
|
|
db $10, $13, $54, $02
|
|
db $10, $0b, $53, $02
|
|
db $10, $03, $52, $02
|
|
db $10, $fb, $51, $02
|
|
db $10, $f3, $50, $02
|
|
db $10, $eb, $4f, $02
|
|
db $28, $2b, $71, $02
|
|
db $28, $23, $70, $02
|
|
db $28, $1b, $6f, $02
|
|
db $28, $13, $6e, $02
|
|
db $28, $0b, $6d, $02
|
|
db $28, $03, $6c, $02
|
|
db $28, $fb, $6b, $02
|
|
db $28, $f3, $6a, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_95: ; 0x4d4f
|
|
db $18, $18, $7d, $11
|
|
db $18, $10, $7c, $11
|
|
db $18, $08, $7b, $11
|
|
db $10, $10, $7a, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_96: ; 0x4d60
|
|
db $18, $08, $7d, $31
|
|
db $18, $10, $7c, $31
|
|
db $18, $18, $7b, $31
|
|
db $10, $10, $7a, $31
|
|
db $80 ; terminator
|
|
|
|
OAMData_97: ; 0x4d71
|
|
db $16, $30, $8b, $02
|
|
db $16, $28, $8a, $02
|
|
db $16, $20, $89, $02
|
|
db $16, $18, $88, $02
|
|
db $16, $10, $87, $02
|
|
db $16, $08, $86, $02
|
|
db $16, $00, $85, $02
|
|
db $16, $f8, $84, $02
|
|
db $16, $f0, $83, $02
|
|
db $16, $e8, $82, $02
|
|
db $0e, $30, $81, $02
|
|
db $0e, $28, $80, $02
|
|
db $0e, $20, $79, $02
|
|
db $0e, $18, $78, $02
|
|
db $0e, $10, $77, $02
|
|
db $0e, $08, $76, $02
|
|
db $0e, $00, $75, $02
|
|
db $0e, $f8, $74, $02
|
|
db $0e, $f0, $73, $02
|
|
db $0e, $e8, $72, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_98: ; 0x4dc2
|
|
db $18, $10, $8f, $04
|
|
db $18, $08, $8e, $04
|
|
db $10, $10, $8d, $04
|
|
db $10, $08, $8c, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_99: ; 0x4dd3
|
|
db $18, $10, $91, $04
|
|
db $18, $08, $90, $04
|
|
db $10, $10, $8d, $04
|
|
db $10, $08, $8c, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_9a: ; 0x4de4
|
|
db $18, $10, $93, $04
|
|
db $18, $08, $92, $04
|
|
db $10, $10, $8d, $04
|
|
db $10, $08, $8c, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_9b: ; 0x4df5
|
|
db $10, $10, $95, $04
|
|
db $10, $08, $94, $04
|
|
db $18, $10, $93, $04
|
|
db $18, $08, $92, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_9c: ; 0x4e06
|
|
db $18, $10, $97, $04
|
|
db $18, $08, $96, $04
|
|
db $10, $10, $95, $04
|
|
db $10, $08, $94, $04
|
|
db $80 ; terminator
|
|
|
|
OAMData_9d: ; 0x4e17
|
|
db $18, $10, $8f, $04
|
|
db $18, $08, $8e, $04
|
|
db $10, $10, $95, $04
|
|
db $10, $08, $94, $04
|
|
db $80 ; terminator
|
|
|
|
FieldSelectRedStageBorderOAM: ; 0x4e28
|
|
db $36, $1c, $71, $40
|
|
db $26, $24, $72, $60
|
|
db $2e, $24, $72, $60
|
|
db $36, $24, $70, $60
|
|
db $36, $17, $71, $40
|
|
db $36, $0f, $71, $40
|
|
db $36, $07, $71, $40
|
|
db $36, $ff, $71, $40
|
|
db $36, $f7, $71, $40
|
|
db $26, $e8, $72, $40
|
|
db $2e, $e8, $72, $40
|
|
db $36, $f0, $71, $40
|
|
db $36, $e8, $70, $40
|
|
db $22, $e8, $72, $40
|
|
db $22, $24, $72, $60
|
|
db $12, $24, $72, $60
|
|
db $1a, $24, $72, $60
|
|
db $0a, $24, $72, $20
|
|
db $12, $e8, $72, $40
|
|
db $1a, $e8, $72, $40
|
|
db $0a, $e8, $72, $00
|
|
db $e2, $1c, $71, $00
|
|
db $02, $e8, $72, $00
|
|
db $02, $24, $72, $20
|
|
db $fa, $24, $72, $20
|
|
db $f2, $24, $72, $20
|
|
db $ea, $24, $72, $20
|
|
db $e2, $17, $71, $00
|
|
db $e2, $0f, $71, $00
|
|
db $e2, $07, $71, $00
|
|
db $e2, $24, $70, $20
|
|
db $e2, $ff, $71, $00
|
|
db $e2, $f7, $71, $00
|
|
db $fa, $e8, $72, $00
|
|
db $f2, $e8, $72, $00
|
|
db $ea, $e8, $72, $00
|
|
db $e2, $f0, $71, $00
|
|
db $e2, $e8, $70, $00
|
|
db $80 ; terminator
|
|
|
|
FieldSelectBlueStageBorderOAM: ; 0x4ec1
|
|
db $36, $1c, $74, $40
|
|
db $26, $24, $75, $60
|
|
db $2e, $24, $75, $60
|
|
db $36, $24, $73, $60
|
|
db $36, $17, $74, $40
|
|
db $36, $0f, $74, $40
|
|
db $36, $07, $74, $40
|
|
db $36, $ff, $74, $40
|
|
db $36, $f7, $74, $40
|
|
db $26, $e8, $75, $40
|
|
db $2e, $e8, $75, $40
|
|
db $36, $f0, $74, $40
|
|
db $36, $e8, $73, $40
|
|
db $22, $e8, $75, $40
|
|
db $22, $24, $75, $60
|
|
db $12, $24, $75, $60
|
|
db $1a, $24, $75, $60
|
|
db $0a, $24, $75, $20
|
|
db $12, $e8, $75, $40
|
|
db $1a, $e8, $75, $40
|
|
db $0a, $e8, $75, $00
|
|
db $e2, $1c, $74, $00
|
|
db $02, $e8, $75, $00
|
|
db $02, $24, $75, $20
|
|
db $fa, $24, $75, $20
|
|
db $f2, $24, $75, $20
|
|
db $ea, $24, $75, $20
|
|
db $e2, $17, $74, $00
|
|
db $e2, $0f, $74, $00
|
|
db $e2, $07, $74, $00
|
|
db $e2, $24, $73, $20
|
|
db $e2, $ff, $74, $00
|
|
db $e2, $f7, $74, $00
|
|
db $fa, $e8, $75, $00
|
|
db $f2, $e8, $75, $00
|
|
db $ea, $e8, $75, $00
|
|
db $e2, $f0, $74, $00
|
|
db $e2, $e8, $73, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_a0: ; 0x4f5a
|
|
db $36, $1c, $77, $40
|
|
db $26, $24, $78, $60
|
|
db $2e, $24, $78, $60
|
|
db $36, $24, $76, $60
|
|
db $36, $17, $77, $40
|
|
db $36, $0f, $77, $40
|
|
db $36, $07, $77, $40
|
|
db $36, $ff, $77, $40
|
|
db $36, $f7, $77, $40
|
|
db $26, $e8, $78, $40
|
|
db $2e, $e8, $78, $40
|
|
db $36, $f0, $77, $40
|
|
db $36, $e8, $76, $40
|
|
db $22, $e8, $78, $40
|
|
db $22, $24, $78, $60
|
|
db $12, $24, $78, $60
|
|
db $1a, $24, $78, $60
|
|
db $0a, $24, $78, $20
|
|
db $12, $e8, $78, $40
|
|
db $1a, $e8, $78, $40
|
|
db $0a, $e8, $78, $00
|
|
db $e2, $1c, $77, $00
|
|
db $02, $e8, $78, $00
|
|
db $02, $24, $78, $20
|
|
db $fa, $24, $78, $20
|
|
db $f2, $24, $78, $20
|
|
db $ea, $24, $78, $20
|
|
db $e2, $17, $77, $00
|
|
db $e2, $0f, $77, $00
|
|
db $e2, $07, $77, $00
|
|
db $e2, $24, $76, $20
|
|
db $e2, $ff, $77, $00
|
|
db $e2, $f7, $77, $00
|
|
db $fa, $e8, $78, $00
|
|
db $f2, $e8, $78, $00
|
|
db $ea, $e8, $78, $00
|
|
db $e2, $f0, $77, $00
|
|
db $e2, $e8, $76, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_a1: ; 0x4ff3
|
|
db $10, $08, $7c, $08
|
|
db $80 ; terminator
|
|
|
|
OAMData_a2: ; 0x4ff8
|
|
db $08, $08, $7d, $48
|
|
db $80 ; terminator
|
|
|
|
OAMData_a3: ; 0x4ffd
|
|
db $10, $08, $7e, $08
|
|
db $80 ; terminator
|
|
|
|
OAMData_a4: ; 0x5002
|
|
db $10, $08, $7e, $28
|
|
db $80 ; terminator
|
|
|
|
OAMData_a5: ; 0x5007
|
|
db $03, $0a, $0f, $1d
|
|
db $fb, $0a, $0e, $1d
|
|
db $03, $02, $0d, $1d
|
|
db $fb, $02, $0c, $1d
|
|
db $07, $15, $0b, $1b
|
|
db $ff, $15, $0a, $1b
|
|
db $07, $0d, $09, $1b
|
|
db $ff, $0d, $08, $1b
|
|
db $07, $05, $07, $1b
|
|
db $ff, $05, $06, $1b
|
|
db $07, $fd, $05, $1b
|
|
db $ff, $fd, $04, $1b
|
|
db $f7, $08, $03, $1b
|
|
db $ef, $08, $02, $1b
|
|
db $f7, $00, $01, $1b
|
|
db $ef, $00, $00, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_a6: ; 0x5048
|
|
db $04, $0a, $1d, $1d
|
|
db $fc, $0a, $1c, $1d
|
|
db $04, $02, $1b, $1d
|
|
db $fc, $02, $1a, $1d
|
|
db $06, $15, $0b, $1b
|
|
db $fe, $15, $0a, $1b
|
|
db $07, $0d, $19, $1b
|
|
db $ff, $0d, $18, $1b
|
|
db $07, $05, $17, $1b
|
|
db $ff, $05, $16, $1b
|
|
db $07, $fd, $15, $1b
|
|
db $ff, $fd, $14, $1b
|
|
db $f7, $08, $13, $1b
|
|
db $ef, $08, $12, $1b
|
|
db $f7, $00, $11, $1b
|
|
db $ef, $00, $10, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_a7: ; 0x5089
|
|
db $07, $08, $2f, $1d
|
|
db $ff, $08, $2e, $1d
|
|
db $07, $00, $2d, $1d
|
|
db $ff, $00, $2c, $1d
|
|
db $07, $10, $2b, $1b
|
|
db $ff, $10, $2a, $1b
|
|
db $07, $08, $29, $1b
|
|
db $ff, $08, $28, $1b
|
|
db $07, $00, $27, $1b
|
|
db $ff, $00, $26, $1b
|
|
db $07, $f8, $25, $1b
|
|
db $ff, $f8, $24, $1b
|
|
db $f7, $10, $23, $1b
|
|
db $ef, $10, $22, $1b
|
|
db $f7, $08, $21, $1b
|
|
db $ef, $08, $20, $1b
|
|
db $f7, $00, $1f, $1b
|
|
db $ef, $00, $1e, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_a8: ; 0x50d2
|
|
db $15, $01, $0b, $0a
|
|
db $ef, $03, $02, $1d
|
|
db $f7, $03, $03, $1d
|
|
db $fb, $0b, $05, $1d
|
|
db $f3, $0b, $04, $1d
|
|
db $fb, $fb, $01, $1d
|
|
db $f3, $fb, $00, $1d
|
|
db $0d, $09, $0e, $1b
|
|
db $05, $09, $0d, $1b
|
|
db $fd, $09, $0c, $1b
|
|
db $0d, $01, $0a, $1b
|
|
db $05, $01, $09, $1b
|
|
db $fd, $01, $08, $1b
|
|
db $08, $11, $11, $1b
|
|
db $00, $11, $10, $1b
|
|
db $08, $f9, $07, $1b
|
|
db $00, $f9, $06, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_a9: ; 0x5117
|
|
db $f8, $04, $15, $1d
|
|
db $f0, $04, $14, $1d
|
|
db $fb, $0c, $17, $1d
|
|
db $f3, $0c, $16, $1d
|
|
db $fb, $fc, $13, $1d
|
|
db $f3, $fc, $12, $1d
|
|
db $08, $12, $1f, $1b
|
|
db $00, $12, $1e, $1b
|
|
db $08, $0a, $1d, $1b
|
|
db $00, $0a, $1c, $1b
|
|
db $08, $02, $1b, $1b
|
|
db $00, $02, $1a, $1b
|
|
db $08, $fa, $19, $1b
|
|
db $00, $fa, $18, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_aa: ; 0x5150
|
|
db $00, $10, $27, $1d
|
|
db $f8, $10, $26, $1d
|
|
db $fb, $08, $25, $1d
|
|
db $f3, $08, $24, $1d
|
|
db $fb, $00, $23, $1d
|
|
db $f3, $00, $22, $1d
|
|
db $00, $f8, $21, $1d
|
|
db $f8, $f8, $20, $1d
|
|
db $08, $10, $2f, $1b
|
|
db $00, $10, $2e, $1b
|
|
db $08, $08, $2d, $1b
|
|
db $00, $08, $2c, $1b
|
|
db $08, $00, $2b, $1b
|
|
db $00, $00, $2a, $1b
|
|
db $08, $f8, $29, $1b
|
|
db $00, $f8, $28, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_ab: ; 0x5191
|
|
db $08, $10, $0f, $1b
|
|
db $00, $10, $0e, $1b
|
|
db $08, $08, $0d, $1b
|
|
db $00, $08, $0c, $1b
|
|
db $08, $00, $0b, $1b
|
|
db $00, $00, $0a, $1b
|
|
db $08, $f8, $09, $1b
|
|
db $00, $f8, $08, $1b
|
|
db $f8, $10, $07, $1b
|
|
db $f0, $10, $06, $1b
|
|
db $f8, $08, $05, $1b
|
|
db $f0, $08, $04, $1b
|
|
db $f8, $00, $03, $1b
|
|
db $f0, $00, $02, $1b
|
|
db $f8, $f8, $01, $1b
|
|
db $f0, $f8, $00, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_ac: ; 0x51d2
|
|
db $08, $10, $1f, $1b
|
|
db $00, $10, $1e, $1b
|
|
db $08, $08, $1d, $1b
|
|
db $00, $08, $1c, $1b
|
|
db $08, $00, $1b, $1b
|
|
db $00, $00, $1a, $1b
|
|
db $08, $f8, $19, $1b
|
|
db $00, $f8, $18, $1b
|
|
db $f8, $10, $17, $1b
|
|
db $f0, $10, $16, $1b
|
|
db $f8, $08, $15, $1b
|
|
db $f0, $08, $14, $1b
|
|
db $f8, $00, $13, $1b
|
|
db $f0, $00, $12, $1b
|
|
db $f8, $f8, $11, $1b
|
|
db $f0, $f8, $10, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_ad: ; 0x5213
|
|
db $08, $10, $2f, $1b
|
|
db $00, $10, $2e, $1b
|
|
db $08, $08, $2d, $1b
|
|
db $00, $08, $2c, $1b
|
|
db $08, $00, $2b, $1b
|
|
db $00, $00, $2a, $1b
|
|
db $08, $f8, $29, $1b
|
|
db $00, $f8, $28, $1b
|
|
db $f8, $10, $27, $1b
|
|
db $f0, $10, $26, $1b
|
|
db $f8, $08, $25, $1b
|
|
db $f0, $08, $24, $1b
|
|
db $f8, $00, $23, $1b
|
|
db $f0, $00, $22, $1b
|
|
db $f8, $f8, $21, $1b
|
|
db $f0, $f8, $20, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_ae: ; 0x5254
|
|
db $08, $10, $0f, $1d
|
|
db $00, $10, $0e, $1b
|
|
db $08, $08, $0d, $1d
|
|
db $00, $08, $0c, $1b
|
|
db $08, $00, $0b, $1d
|
|
db $00, $00, $0a, $1b
|
|
db $08, $f8, $09, $1d
|
|
db $00, $f8, $08, $1b
|
|
db $f8, $10, $07, $1b
|
|
db $f0, $10, $06, $1b
|
|
db $f8, $08, $05, $1b
|
|
db $f0, $08, $04, $1b
|
|
db $f8, $00, $03, $1b
|
|
db $f0, $00, $02, $1b
|
|
db $f8, $f8, $01, $1b
|
|
db $f0, $f8, $00, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_af: ; 0x5295
|
|
db $08, $10, $1f, $1d
|
|
db $00, $10, $1e, $1b
|
|
db $08, $08, $1d, $1d
|
|
db $00, $08, $1c, $1b
|
|
db $08, $00, $1b, $1d
|
|
db $00, $00, $1a, $1b
|
|
db $08, $f8, $19, $1d
|
|
db $00, $f8, $18, $1b
|
|
db $f8, $10, $17, $1b
|
|
db $f0, $10, $16, $1b
|
|
db $f8, $08, $15, $1b
|
|
db $f0, $08, $14, $1b
|
|
db $f8, $00, $13, $1b
|
|
db $f0, $00, $12, $1b
|
|
db $f8, $f8, $11, $1b
|
|
db $f0, $f8, $10, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_b0: ; 0x52d6
|
|
db $09, $10, $2f, $1d
|
|
db $01, $10, $2e, $1b
|
|
db $09, $08, $2d, $1d
|
|
db $01, $08, $2c, $1b
|
|
db $09, $00, $2b, $1d
|
|
db $01, $00, $2a, $1b
|
|
db $09, $f8, $29, $1d
|
|
db $01, $f8, $28, $1b
|
|
db $f9, $10, $27, $1b
|
|
db $f1, $10, $26, $1b
|
|
db $f9, $08, $25, $1b
|
|
db $f1, $08, $24, $1b
|
|
db $f9, $00, $23, $1b
|
|
db $f1, $00, $22, $1b
|
|
db $f9, $f8, $21, $1b
|
|
db $f1, $f8, $20, $1b
|
|
db $80 ; terminator
|
|
|
|
Timer0DigitOAM: ; 0x5317
|
|
db $10, $08, $60, $08
|
|
db $80 ; terminator
|
|
|
|
Timer1DigitOAM: ; 0x531c
|
|
db $10, $08, $62, $08
|
|
db $80 ; terminator
|
|
|
|
Timer2DigitOAM: ; 0x5321
|
|
db $10, $08, $64, $08
|
|
db $80 ; terminator
|
|
|
|
Timer3DigitOAM: ; 0x5326
|
|
db $10, $08, $66, $08
|
|
db $80 ; terminator
|
|
|
|
Timer4DigitOAM: ; 0x532b
|
|
db $10, $08, $68, $08
|
|
db $80 ; terminator
|
|
|
|
Timer5DigitOAM: ; 0x5330
|
|
db $10, $08, $6a, $08
|
|
db $80 ; terminator
|
|
|
|
Timer6DigitOAM: ; 0x5335
|
|
db $10, $08, $6c, $08
|
|
db $80 ; terminator
|
|
|
|
Timer7DigitOAM: ; 0x533a
|
|
db $10, $08, $6e, $08
|
|
db $80 ; terminator
|
|
|
|
Timer8DigitOAM: ; 0x533f
|
|
db $10, $08, $70, $08
|
|
db $80 ; terminator
|
|
|
|
Timer9DigitOAM: ; 0x5344
|
|
db $10, $08, $72, $08
|
|
db $80 ; terminator
|
|
|
|
TimerColonOAM: ; 0x5349
|
|
db $10, $08, $74, $08
|
|
db $80 ; terminator
|
|
|
|
OAMData_bc: ; 0x534e
|
|
db $10, $10, $30, $11
|
|
db $10, $08, $2e, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_bd: ; 0x5357
|
|
db $10, $10, $34, $11
|
|
db $10, $08, $32, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_be: ; 0x5360
|
|
db $12, $10, $66, $15
|
|
db $02, $10, $64, $15
|
|
db $12, $08, $62, $15
|
|
db $02, $08, $60, $15
|
|
db $80 ; terminator
|
|
|
|
OAMData_bf: ; 0x5371
|
|
db $00, $0a, $68, $15
|
|
db $10, $10, $6c, $15
|
|
db $10, $08, $6a, $15
|
|
db $80 ; terminator
|
|
|
|
OAMData_c0: ; 0x537e
|
|
db $0f, $10, $70, $15
|
|
db $0f, $08, $6e, $15
|
|
db $80 ; terminator
|
|
|
|
OAMData_c1: ; 0x5387
|
|
db $00, $0b, $72, $15
|
|
db $10, $10, $76, $15
|
|
db $10, $08, $74, $15
|
|
db $80 ; terminator
|
|
|
|
OAMData_c2: ; 0x5394
|
|
db $08, $0f, $78, $22
|
|
db $08, $07, $78, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_c3: ; 0x539d
|
|
db $08, $0f, $7b, $62
|
|
db $08, $07, $7b, $42
|
|
db $80 ; terminator
|
|
|
|
OAMData_c4: ; 0x53a6
|
|
db $08, $0f, $7d, $62
|
|
db $08, $07, $7d, $42
|
|
db $80 ; terminator
|
|
|
|
OAMData_c5: ; 0x53af
|
|
db $08, $0f, $7e, $22
|
|
db $08, $07, $7e, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_c6: ; 0x53b8
|
|
db $08, $0f, $7c, $22
|
|
db $08, $07, $7c, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_c7: ; 0x53c1
|
|
db $08, $0f, $7a, $22
|
|
db $08, $07, $7a, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_c8: ; 0x53ca
|
|
db $18, $11, $96, $02
|
|
db $20, $29, $a6, $02
|
|
db $30, $21, $a4, $02
|
|
db $20, $21, $a2, $02
|
|
db $38, $19, $a0, $02
|
|
db $28, $19, $9e, $02
|
|
db $18, $19, $9c, $02
|
|
db $38, $11, $9a, $02
|
|
db $28, $11, $98, $02
|
|
db $38, $09, $94, $02
|
|
db $28, $09, $92, $02
|
|
db $18, $09, $90, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_c9: ; 0x53fb
|
|
db $18, $21, $2c, $02
|
|
db $18, $19, $28, $02
|
|
db $30, $09, $20, $02
|
|
db $20, $09, $1e, $02
|
|
db $28, $19, $2a, $02
|
|
db $30, $11, $26, $02
|
|
db $20, $11, $24, $02
|
|
db $10, $11, $22, $02
|
|
db $10, $09, $1c, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_ca: ; 0x5420
|
|
db $30, $08, $1a, $02
|
|
db $20, $08, $a8, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_cb: ; 0x5429
|
|
db $10, $18, $06, $1b
|
|
db $20, $10, $04, $1b
|
|
db $10, $10, $02, $1b
|
|
db $10, $08, $00, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_cc: ; 0x543a
|
|
db $20, $11, $0e, $0c
|
|
db $10, $11, $0c, $0c
|
|
db $22, $09, $0a, $0c
|
|
db $12, $09, $08, $0c
|
|
db $80 ; terminator
|
|
|
|
OAMData_cd: ; 0x544b
|
|
db $0f, $11, $30, $11
|
|
db $0f, $09, $2e, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_ce: ; 0x5454
|
|
db $10, $0f, $30, $11
|
|
db $10, $07, $2e, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_cf: ; 0x545d
|
|
db $11, $11, $30, $11
|
|
db $11, $09, $2e, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_d0: ; 0x5466
|
|
db $10, $17, $16, $1b
|
|
db $1f, $0f, $14, $1b
|
|
db $0f, $0f, $12, $1b
|
|
db $0f, $07, $10, $1b
|
|
db $80 ; terminator
|
|
|
|
OAMData_d1: ; 0x5477
|
|
db $10, $08, $36, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_d2: ; 0x547c
|
|
db $08, $08, $37, $46
|
|
db $80 ; terminator
|
|
|
|
OAMData_d3: ; 0x5481
|
|
db $10, $08, $38, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_d4: ; 0x5486
|
|
db $10, $08, $3a, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_d5: ; 0x548b
|
|
db $10, $08, $3c, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_d6: ; 0x5490
|
|
db $10, $08, $3e, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_d7: ; 0x5495
|
|
db $10, $08, $b0, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_d8: ; 0x549a
|
|
db $10, $08, $b2, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_d9: ; 0x549f
|
|
db $10, $08, $b4, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_da: ; 0x54a4
|
|
db $10, $08, $b6, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_db: ; 0x54a9
|
|
db $10, $08, $38, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_dc: ; 0x54ae
|
|
db $10, $08, $3a, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_dd: ; 0x54b3
|
|
db $10, $08, $7e, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_de: ; 0x54b8
|
|
db $10, $08, $bc, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_df: ; 0x54bd
|
|
db $10, $08, $a8, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_e0: ; 0x54c2
|
|
db $10, $10, $92, $13
|
|
db $10, $08, $90, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_e1: ; 0x54cb
|
|
db $10, $10, $96, $13
|
|
db $10, $08, $94, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_e2: ; 0x54d4
|
|
db $20, $18, $1e, $11
|
|
db $20, $10, $1c, $11
|
|
db $20, $08, $1a, $11
|
|
db $10, $18, $9c, $11
|
|
db $10, $10, $9a, $11
|
|
db $10, $08, $98, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_e3: ; 0x54ed
|
|
db $10, $18, $a2, $11
|
|
db $10, $10, $a0, $11
|
|
db $10, $08, $9e, $11
|
|
db $20, $18, $1e, $11
|
|
db $20, $10, $1c, $11
|
|
db $20, $08, $1a, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_e4: ; 0x5506
|
|
db $10, $1a, $a8, $11
|
|
db $10, $12, $a6, $11
|
|
db $10, $0a, $a4, $11
|
|
db $20, $18, $1e, $11
|
|
db $20, $10, $1c, $11
|
|
db $20, $08, $1a, $11
|
|
db $80 ; terminator
|
|
|
|
OAMData_e5: ; 0x551f
|
|
db $20, $18, $2a, $13
|
|
db $20, $10, $28, $13
|
|
db $20, $08, $26, $13
|
|
db $10, $18, $24, $13
|
|
db $10, $10, $22, $13
|
|
db $10, $08, $20, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_e6: ; 0x5538
|
|
db $20, $18, $36, $13
|
|
db $20, $10, $34, $13
|
|
db $20, $08, $32, $13
|
|
db $10, $18, $30, $13
|
|
db $10, $10, $2e, $13
|
|
db $10, $08, $2c, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_e7: ; 0x5551
|
|
db $20, $10, $76, $13
|
|
db $20, $08, $74, $13
|
|
db $10, $10, $72, $13
|
|
db $10, $08, $70, $13
|
|
db $20, $18, $2a, $13
|
|
db $10, $18, $24, $13
|
|
db $80 ; terminator
|
|
|
|
OAMData_e8: ; 0x556a
|
|
db $10, $10, $78, $22
|
|
db $10, $08, $78, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_e9: ; 0x5573
|
|
db $10, $10, $7b, $62
|
|
db $10, $08, $7b, $42
|
|
db $80 ; terminator
|
|
|
|
OAMData_ea: ; 0x557c
|
|
db $10, $10, $7d, $62
|
|
db $10, $08, $7d, $42
|
|
db $80 ; terminator
|
|
|
|
OAMData_eb: ; 0x5585
|
|
db $10, $10, $7e, $22
|
|
db $10, $08, $7e, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_ec: ; 0x558e
|
|
db $10, $10, $7c, $22
|
|
db $10, $08, $7c, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_ed: ; 0x5597
|
|
db $10, $10, $7a, $22
|
|
db $10, $08, $7a, $02
|
|
db $80 ; terminator
|
|
|
|
OAMData_ee: ; 0x55a0
|
|
db $10, $08, $38, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_ef: ; 0x55a5
|
|
db $10, $08, $3a, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_f0: ; 0x55aa
|
|
db $10, $08, $3a, $26
|
|
db $80 ; terminator
|
|
|
|
OAMData_f1: ; 0x55af
|
|
db $10, $08, $3c, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_f2: ; 0x55b4
|
|
db $10, $08, $3e, $06
|
|
db $80 ; terminator
|
|
|
|
OAMData_f3: ; 0x55b9
|
|
db $10, $08, $3e, $26
|
|
db $80 ; terminator
|
|
|
|
OAMData_f4: ; 0x55be
|
|
db $08, $08, $39, $46
|
|
db $80 ; terminator
|
|
|
|
OAMData_f5: ; 0x55c3
|
|
db $10, $08, $72, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_f6: ; 0x55c8
|
|
db $10, $08, $74, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_f7: ; 0x55cd
|
|
db $10, $08, $76, $00
|
|
db $80 ; terminator
|
|
|
|
OAMData_f8: ; 0x55d2
|
|
db $10, $08, $78, $00
|
|
db $80 ; terminator
|
|
|
|
INCBIN "baserom.gbc",$55d7,$8000 - $55d7 ; 0x55d7
|
|
|
|
|
|
SECTION "bank2", ROMX, BANK[$2]
|
|
|
|
Func_8000: ; 0x8000
|
|
ld a, [wScreenState]
|
|
rst $18
|
|
|
|
PointerTable_8004: ; 0x8004
|
|
dw Func_800a
|
|
dw Func_8104
|
|
dw Func_814e
|
|
|
|
Func_800a: ; 0x800a
|
|
xor a
|
|
ld [$ffc4], a
|
|
ld a, [hJoypadState]
|
|
cp D_UP
|
|
jr nz, .asm_8018
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_8021
|
|
.asm_8018
|
|
ld hl, wCurrentScreen
|
|
inc [hl]
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
.asm_8021
|
|
ld a, $45
|
|
ld [$ff9e], a
|
|
ld a, $e4
|
|
ld [$d80c], a
|
|
ld [$d80d], a
|
|
ld [$d80e], a
|
|
xor a
|
|
ld [hBoardXShift], a
|
|
ld [hBoardYShift], a
|
|
call Func_8049
|
|
call ClearOAMBuffer
|
|
call Func_b66
|
|
call Func_588
|
|
call Func_bbe
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
Func_8049: ; 0x8049
|
|
ld a, $1
|
|
ld [$ff4f], a
|
|
ld c, $ff
|
|
call FillTilesVRAM
|
|
call FillBackgroundsVRAM
|
|
xor a
|
|
ld [$ff4f], a
|
|
ld c, $0
|
|
call FillTilesVRAM
|
|
call FillBackgroundsVRAM
|
|
ld a, $80
|
|
ld de, $ff68
|
|
ld hl, $40e4 ; todo
|
|
call Func_80d1
|
|
ld a, $80
|
|
ld de, $ff6a
|
|
ld hl, $40f4 ; todo
|
|
call Func_80d1
|
|
ld hl, PointerTable_8089
|
|
xor a
|
|
call LoadVideoData
|
|
ld a, $2
|
|
ld bc, $4094 ; todo
|
|
ld de, $117b ; todo
|
|
call Func_10c5
|
|
ret
|
|
|
|
PointerTable_8089: ; 0x8089
|
|
dw Data_808b
|
|
|
|
Data_808b: ; 0x808b
|
|
dw $5c00
|
|
db $36
|
|
dw $8a00
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
INCBIN "baserom.gbc",$8094,$80b5 - $8094
|
|
|
|
FillBackgroundsVRAM: ; 0x80b5
|
|
ld hl, vBGMap0
|
|
.fillLoop
|
|
xor a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld a, h
|
|
cp $a0 ; end of VRAM
|
|
jr nz, .fillLoop
|
|
ret
|
|
|
|
FillTilesVRAM: ; 0x80c3
|
|
ld hl, vTiles0
|
|
.fillLoop
|
|
ld a, c
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld a, h
|
|
cp (vBGMap0 >> 8)
|
|
jr nz, .fillLoop
|
|
ret
|
|
|
|
Func_80d1: ; 0x80d1
|
|
ld [de], a
|
|
inc de
|
|
ld b, $4
|
|
.asm_80d5
|
|
ld c, $8
|
|
push hl
|
|
.asm_80d8
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, [hli]
|
|
ld [de], a
|
|
dec c
|
|
jr nz, .asm_80d8
|
|
pop hl
|
|
dec b
|
|
jr nz, .asm_80d5
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$80e4,$8104 - $80e4
|
|
|
|
Func_8104: ; 0x8104
|
|
ld a, [hNewlyPressedButtons]
|
|
ld b, a
|
|
and (D_DOWN | D_UP)
|
|
jr z, .asm_8115
|
|
ld a, [hGameBoyColorFlag]
|
|
ld [$ffc4], a
|
|
xor $1
|
|
ld [hGameBoyColorFlag], a
|
|
jr .asm_811d
|
|
.asm_8115
|
|
bit BIT_A_BUTTON, b
|
|
ret z
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
.asm_811d
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_812e
|
|
ld a, $2
|
|
ld bc, $413a ; todo
|
|
ld de, $117b ; todo
|
|
call Func_10c5
|
|
ret
|
|
.asm_812e
|
|
ld a, $2
|
|
ld bc, $4144 ; todo
|
|
ld de, $117b ; todo
|
|
call Func_10c5
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$813a,$814e - $813a
|
|
|
|
Func_814e: ; 0x414e
|
|
call Func_cb5
|
|
call Func_576
|
|
ld hl, wCurrentScreen
|
|
inc [hl]
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
HandleEraseAllDataMenu: ; 0x815d
|
|
ld a, [wScreenState]
|
|
rst $18
|
|
EraseAllDataMenuFunctions: ; 0x8161
|
|
dw CheckForResetButtonCombo
|
|
dw HandleEraseAllDataInput
|
|
dw ExitEraseAllDataMenu
|
|
|
|
CheckForResetButtonCombo: ; 0x8167
|
|
ld a, [hJoypadState]
|
|
cp (D_UP | D_RIGHT | START | SELECT)
|
|
jr z, .heldCorrectButtons
|
|
ld hl, wCurrentScreen
|
|
inc [hl]
|
|
ret
|
|
.heldCorrectButtons
|
|
ld a, $41
|
|
ld [$ff9e], a
|
|
ld a, $e4
|
|
ld [$d80c], a
|
|
xor a
|
|
ld [$d80d], a
|
|
ld [$d80e], a
|
|
ld [hBoardXShift], a
|
|
ld [hBoardYShift], a
|
|
ld a, [hGameBoyColorFlag]
|
|
ld hl, EraseAllDataGfxPointers
|
|
call LoadVideoData
|
|
call ClearOAMBuffer
|
|
call Func_b66
|
|
call Func_588
|
|
call Func_14a4
|
|
call Func_bbe
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
EraseAllDataGfxPointers: ; 0x81a2
|
|
dw EraseAllDataGfx_GameBoy
|
|
dw EraseAllDataGfx_GameBoyColor
|
|
|
|
EraseAllDataGfx_GameBoy: ; 0x81a6
|
|
dw EraseAllDataGfx
|
|
db Bank(EraseAllDataGfx)
|
|
dw vTiles2
|
|
dw $c00
|
|
|
|
dw EraseAllDataTilemap
|
|
db Bank(EraseAllDataTilemap)
|
|
dw vBGMap0
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
EraseAllDataGfx_GameBoyColor: ; 0x81b6
|
|
dw EraseAllDataGfx
|
|
db Bank(EraseAllDataGfx)
|
|
dw vTiles2
|
|
dw $c00
|
|
|
|
dw EraseAllDataTilemap
|
|
db Bank(EraseAllDataTilemap)
|
|
dw vBGMap0
|
|
dw $1000
|
|
|
|
dw $7c00
|
|
db $2F
|
|
dw vBGMap0
|
|
dw $1002
|
|
|
|
dw $4d80
|
|
db $37
|
|
dw $0000
|
|
dw $101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
HandleEraseAllDataInput: ; 0x81d4
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .checkForBButton
|
|
ld hl, $a000
|
|
xor a
|
|
ld b, a
|
|
.eraseSavedDataLoop
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .eraseSavedDataLoop
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
.checkForBButton
|
|
bit BIT_B_BUTTON, a
|
|
ret z
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
ExitEraseAllDataMenu: ; 0x820f
|
|
call Func_cb5
|
|
call Func_576
|
|
ld hl, wCurrentScreen
|
|
inc [hl]
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
HandleCopyrightScreen: ; 0x821e
|
|
ld a, [wScreenState]
|
|
rst $18
|
|
CopyrightScreenFunctions: ; 0x8222
|
|
dw FadeInCopyrightScreen
|
|
dw DisplayCopyrightScreen
|
|
dw FadeOutCopyrightScreenAndLoadData
|
|
|
|
FadeInCopyrightScreen: ; 0x8228
|
|
ld a, $41
|
|
ld [$ff9e], a
|
|
ld a, $e4
|
|
ld [$d80c], a
|
|
xor a
|
|
ld [$d80d], a
|
|
ld [$d80e], a
|
|
ld [hBoardXShift], a
|
|
ld [hBoardYShift], a
|
|
ld a, [hGameBoyColorFlag]
|
|
ld hl, CopyrightTextGfxPointers
|
|
call LoadVideoData
|
|
call ClearOAMBuffer
|
|
call Func_b66
|
|
call Func_588
|
|
call Func_14a4
|
|
ld bc, $0050
|
|
call Func_93f
|
|
call Func_bbe
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
CopyrightTextGfxPointers: ; 0x825e
|
|
dw CopyrightTextGfx_GameBoy
|
|
dw CopyrightTextGfx_GameBoyColor
|
|
|
|
CopyrightTextGfx_GameBoy: ; 0x8262
|
|
dw CopyrightTextGfx
|
|
db Bank(CopyrightTextGfx)
|
|
dw vTiles1
|
|
dw $1000
|
|
|
|
dw CopyrightScreenTilemap
|
|
db Bank(CopyrightScreenTilemap)
|
|
dw vBGMap0
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
CopyrightTextGfx_GameBoyColor: ; 0x8272
|
|
dw CopyrightTextGfx
|
|
db Bank(CopyrightTextGfx)
|
|
dw vTiles1
|
|
dw $1000 ; todo (This is the number of bytes to copy times 4 with two flags as lower 2 bits)
|
|
|
|
dw CopyrightScreenTilemap
|
|
db Bank(CopyrightScreenTilemap)
|
|
dw vBGMap0
|
|
dw $1000
|
|
|
|
dw $6400
|
|
db $31
|
|
dw vBGMap0
|
|
dw $1002
|
|
|
|
dw $5000 ; Some kind of GBC palette data
|
|
db $37
|
|
dw $0000
|
|
dw $101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
DisplayCopyrightScreen: ; 0x8290
|
|
ld b, $5a ; number of frames to show the copyright screen
|
|
.delayLoop
|
|
push bc
|
|
rst $10 ; wait for next frame
|
|
pop bc
|
|
ld a, b
|
|
cp $2d ; player can press A button to skip copyright screen once counter is below $2d
|
|
jr nc, .decrementCounter
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr nz, .done
|
|
.decrementCounter
|
|
dec b
|
|
jr nz, .delayLoop
|
|
.done
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
FadeOutCopyrightScreenAndLoadData: ; 0x82a8
|
|
call Func_cb5
|
|
call Func_576
|
|
ld hl, $a000
|
|
ld de, wRedHighScore1Points
|
|
ld bc, $0082
|
|
call Func_f0c
|
|
jr c, .loadedHighScores
|
|
ld [$ff8a], a
|
|
ld a, Bank(CopyInitialHighScores)
|
|
ld hl, CopyInitialHighScores
|
|
call BankSwitch
|
|
.loadedHighScores
|
|
ld hl, $a10c
|
|
ld de, wPokedexFlags
|
|
ld bc, $0098
|
|
call Func_f0c
|
|
jr c, .asm_82de
|
|
ld [$ff8a], a
|
|
ld a, $a
|
|
ld hl, $4d66
|
|
call BankSwitch
|
|
.asm_82de
|
|
ld hl, $a244
|
|
ld de, wKeyConfigs
|
|
ld bc, $000e
|
|
call Func_f0c
|
|
jr c, .asm_82f6
|
|
ld [$ff8a], a
|
|
ld a, $3
|
|
ld hl, $4a3a
|
|
call BankSwitch
|
|
.asm_82f6
|
|
ld hl, $a268
|
|
ld de, $d300
|
|
ld bc, $04c3 ; This is saved game data from when the player saves in the middle of a game.
|
|
call Func_f0c
|
|
jr c, .asm_8308
|
|
xor a
|
|
ld [$d7c2], a ; if this is non-zero, the main menu will prompt for "continue or new game?".
|
|
.asm_8308
|
|
ld hl, wCurrentScreen
|
|
inc [hl]
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
InitializeStage: ; 0x8311
|
|
ld hl, wc000
|
|
ld bc, $0a00
|
|
call ClearData
|
|
ld a, $1
|
|
ld [$ff4f], a
|
|
ld a, [$d805]
|
|
and a
|
|
jr nz, .asm_8331
|
|
ld hl, vBGMap1
|
|
ld bc, $0400
|
|
ld a, $0
|
|
call Func_63e
|
|
jr .asm_833c
|
|
.asm_8331
|
|
ld hl, vBGMap1
|
|
ld bc, $0400
|
|
ld a, $8
|
|
call Func_63e
|
|
.asm_833c
|
|
xor a
|
|
ld [$ff4f], a
|
|
call Func_8388
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
CallTable_8348: ; 0x8348
|
|
; STAGE_RED_FIELD_TOP
|
|
dw InitRedField
|
|
db Bank(InitRedField), $00
|
|
|
|
; STAGE_RED_FIELD_BOTTOM
|
|
dw InitRedField
|
|
db Bank(InitRedField), $00
|
|
|
|
dw $4000
|
|
db $06, $00
|
|
|
|
dw $4000
|
|
db $06, $00
|
|
|
|
; STAGE_BLUE_FIELD_TOP
|
|
dw InitBlueField
|
|
db Bank(InitBlueField), $00
|
|
|
|
; STAGE_BLUE_FIELD_BOTTOM
|
|
dw InitBlueField
|
|
db Bank(InitBlueField), $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw InitGengarBonusStage
|
|
db Bank(InitGengarBonusStage), $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw InitGengarBonusStage
|
|
db Bank(InitGengarBonusStage), $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw InitMewtwoBonusStage
|
|
db Bank(InitMewtwoBonusStage), $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw InitMewtwoBonusStage
|
|
db Bank(InitMewtwoBonusStage), $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw InitMeowthBonusStage
|
|
db Bank(InitMeowthBonusStage), $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw InitMeowthBonusStage
|
|
db Bank(InitMeowthBonusStage), $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw InitDiglettBonusStage
|
|
db Bank(InitDiglettBonusStage), $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw InitDiglettBonusStage
|
|
db Bank(InitDiglettBonusStage), $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw InitSeelBonusStage
|
|
db Bank(InitSeelBonusStage), $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw InitSeelBonusStage
|
|
db Bank(InitSeelBonusStage), $00
|
|
|
|
Func_8388: ; 0x8388
|
|
ld a, [$d7c1]
|
|
and a
|
|
jr z, .asm_8398
|
|
ld hl, wSubTileBallXPos
|
|
ld bc, $0037
|
|
call ClearData
|
|
ret
|
|
.asm_8398
|
|
ld a, [wCurrentStage]
|
|
cp $6
|
|
ret nc
|
|
ld hl, $d300
|
|
ld bc, $0170
|
|
call ClearData
|
|
ld hl, $d473 ; todo
|
|
ld bc, $0039
|
|
call ClearData
|
|
ld hl, $d4ad
|
|
ld bc, $034d
|
|
call ClearData
|
|
ret
|
|
|
|
StartBallForStage: ; 0x83ba
|
|
ld a, [$d7c1]
|
|
and a
|
|
jr z, .asm_83c7
|
|
call Func_8444
|
|
call Func_8461
|
|
ret
|
|
.asm_83c7
|
|
xor a
|
|
ld [wBallXVelocity], a
|
|
ld [wBallXVelocity + 1], a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld [$d7ae], a
|
|
ld [$d7af], a
|
|
ld [$d7b2], a
|
|
ld [$d7b3], a
|
|
ld [$d7b0], a
|
|
ld [$d7b1], a
|
|
ld [$d7b4], a
|
|
ld [$d7b5], a
|
|
ld [wBallSpin], a
|
|
ld [wBallRotation], a
|
|
inc a
|
|
ld [$d548], a
|
|
ld [$d549], a
|
|
ld a, $20
|
|
ld [$d7ab], a
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
CallTable_8404: ; 0x8404
|
|
; STAGE_RED_FIELD_TOP
|
|
dw StartBallRedField
|
|
db Bank(StartBallRedField), $00
|
|
|
|
; STAGE_RED_FIELD_BOTTOM
|
|
dw StartBallRedField
|
|
db Bank(StartBallRedField), $00
|
|
|
|
dw Func_1804a
|
|
db Bank(Func_1804a), $00
|
|
|
|
dw Func_1804a
|
|
db Bank(Func_1804a), $00
|
|
|
|
; STAGE_BLUE_FIELD_TOP
|
|
dw StartBallBlueField
|
|
db Bank(StartBallBlueField), $00
|
|
|
|
; STAGE_BLUE_FIELD_BOTTOM
|
|
dw StartBallBlueField
|
|
db Bank(StartBallBlueField), $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw StartBallGengarBonusStage
|
|
db Bank(StartBallGengarBonusStage), $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw StartBallGengarBonusStage
|
|
db Bank(StartBallGengarBonusStage), $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw StartBallMewtwoBonusStage
|
|
db Bank(StartBallMewtwoBonusStage), $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw StartBallMewtwoBonusStage
|
|
db Bank(StartBallMewtwoBonusStage), $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw StartBallMeowthBonusStage
|
|
db Bank(StartBallMeowthBonusStage), $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw StartBallMeowthBonusStage
|
|
db Bank(StartBallMeowthBonusStage), $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw StartBallDiglettBonusStage
|
|
db Bank(StartBallDiglettBonusStage), $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw StartBallDiglettBonusStage
|
|
db Bank(StartBallDiglettBonusStage), $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw StartBallSeelBonusStage
|
|
db Bank(StartBallSeelBonusStage), $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw StartBallSeelBonusStage
|
|
db Bank(StartBallSeelBonusStage), $00
|
|
|
|
Func_8444: ; 0x8444
|
|
ld a, [$d54b]
|
|
and a
|
|
jr z, .asm_8460
|
|
ld a, [$d550]
|
|
and a
|
|
jr nz, .asm_8460
|
|
ld a, [$d5bb]
|
|
and a
|
|
jr z, .asm_8460
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10464)
|
|
ld hl, Func_10464
|
|
call BankSwitch
|
|
.asm_8460
|
|
ret
|
|
|
|
Func_8461: ; 0x8461
|
|
ld a, [$d7c0]
|
|
call Func_52c
|
|
ld a, [$d7bf]
|
|
ld e, a
|
|
ld d, $0
|
|
call Func_490
|
|
ret
|
|
|
|
Func_8471: ; 0x8471
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
CallTable_8477: ; 0x8477
|
|
; STAGE_RED_FIELD_TOP
|
|
dw $4000
|
|
db $05, $00
|
|
|
|
; STAGE_RED_FIELD_BOTTOM
|
|
dw $401C
|
|
db $05, $00
|
|
|
|
dw $405F
|
|
db $06, $00
|
|
|
|
dw $4060
|
|
db $06, $00
|
|
|
|
; STAGE_BLUE_FIELD_TOP
|
|
dw $4165
|
|
db $07, $00
|
|
|
|
; STAGE_BLUE_FIELD_BOTTOM
|
|
dw $4191
|
|
db $07, $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw $418B
|
|
db $06, $00
|
|
|
|
; STAGE_GENGAR_BONUS
|
|
dw $418B
|
|
db $06, $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw $5310
|
|
db $06, $00
|
|
|
|
; STAGE_MEWTWO_BONUS
|
|
dw $5310
|
|
db $06, $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw $4128
|
|
db $09, $00
|
|
|
|
; STAGE_MEOWTH_BONUS
|
|
dw $4128
|
|
db $09, $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw $5a76
|
|
db $06, $00
|
|
|
|
; STAGE_DIGLETT_BONUS
|
|
dw $5a76
|
|
db $06, $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw $5b97
|
|
db $09, $00
|
|
|
|
; STAGE_SEEL_BONUS
|
|
dw $5b97
|
|
db $09, $00
|
|
|
|
Func_84b7: ; 0x84b7
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
|
|
INCBIN "baserom.gbc",$84bd,$8524 - $84bd
|
|
|
|
Func_8524: ; 0x8524
|
|
ld hl, $d46f
|
|
ld bc, $0c01
|
|
.asm_852a
|
|
ld a, [hl]
|
|
swap a
|
|
and $f
|
|
call Func_8543
|
|
inc de
|
|
dec b
|
|
ld a, [hld]
|
|
and $f
|
|
call Func_8543
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_852a
|
|
ld a, $86
|
|
ld [de], a
|
|
inc de
|
|
ret
|
|
|
|
Func_8543: ; 0x8543
|
|
jr nz, .asm_854c
|
|
ld a, b
|
|
dec a
|
|
jr z, .asm_854c
|
|
ld a, c
|
|
and a
|
|
ret nz
|
|
.asm_854c
|
|
add $86
|
|
ld [de], a
|
|
ld c, $0
|
|
ld a, b
|
|
cp $c
|
|
jr z, .asm_8561
|
|
cp $9
|
|
jr z, .asm_8561
|
|
cp $6
|
|
jr z, .asm_8561
|
|
cp $3
|
|
ret nz
|
|
.asm_8561
|
|
set 7, e
|
|
ld a, $82
|
|
ld [de], a
|
|
res 7, e
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$8569,$8576 - $8569
|
|
|
|
Func_8576: ; 0x8576
|
|
ld h, b
|
|
ld l, c
|
|
ld a, [$d477]
|
|
ld e, a
|
|
ld d, $d4
|
|
ld a, [$d47e]
|
|
and a
|
|
jr nz, .asm_8585
|
|
inc a
|
|
.asm_8585
|
|
ld b, a
|
|
jr asm_8592
|
|
|
|
Func_8588: ; 0x8588
|
|
ld h, b
|
|
ld l, c
|
|
ld a, [$d477]
|
|
ld e, a
|
|
ld d, $d4
|
|
ld b, $1
|
|
asm_8592:
|
|
push hl
|
|
ld a, [de]
|
|
add [hl]
|
|
daa
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, e
|
|
cp $60
|
|
jr nz, .asm_85be
|
|
ld e, $0
|
|
.asm_85be
|
|
pop hl
|
|
dec b
|
|
jr nz, asm_8592
|
|
ld a, e
|
|
ld [$d477], a
|
|
ret
|
|
|
|
Func_85c7: ; 0x85c7
|
|
ld a, [$ffb3]
|
|
and $3
|
|
ret nz
|
|
ld a, [$d478]
|
|
ld l, a
|
|
ld h, $d4
|
|
ld de, $d46a
|
|
ld a, [$d477]
|
|
cp l
|
|
jr nz, .asm_85de
|
|
ld [$d479], a
|
|
.asm_85de
|
|
push hl
|
|
ld a, [hli]
|
|
or [hl]
|
|
inc hl
|
|
or [hl]
|
|
inc hl
|
|
or [hl]
|
|
inc hl
|
|
or [hl]
|
|
inc hl
|
|
or [hl]
|
|
pop hl
|
|
jr nz, .asm_85f3
|
|
ld a, [$d479]
|
|
ld [$d478], a
|
|
ret
|
|
.asm_85f3
|
|
ld a, [de]
|
|
add [hl]
|
|
daa
|
|
ld [de], a
|
|
ld [hl], $0
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
ld [hl], $0
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
ld [hl], $0
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
ld [hl], $0
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
ld [hl], $0
|
|
inc de
|
|
inc hl
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [de], a
|
|
ld [hl], $0
|
|
call c, Func_8637
|
|
inc de
|
|
inc hl
|
|
ld a, l
|
|
cp $60
|
|
jr nz, .asm_862d
|
|
ld l, $0
|
|
.asm_862d
|
|
ld a, l
|
|
ld [$d478], a
|
|
ld a, $1
|
|
ld [$d49f], a
|
|
ret
|
|
|
|
Func_8637: ; 0x8637
|
|
push hl
|
|
ld hl, $d46a
|
|
ld a, $99
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
pop hl
|
|
ret
|
|
|
|
Func_8645: ; 0x8645
|
|
xor a
|
|
ld [$d49f], a
|
|
ld de, $c647
|
|
call Func_8524
|
|
ret
|
|
|
|
Func_8650: ; 0x8650
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr nz, .bottomStage
|
|
ld a, $86
|
|
ld [$ffa6], a
|
|
ret
|
|
.bottomStage
|
|
ld a, [wBallYPos + 1]
|
|
cp $84
|
|
jr nc, .asm_8670
|
|
ld a, [$ffa6]
|
|
sub $3
|
|
cp $86
|
|
jr nc, .asm_866d
|
|
ld a, $86
|
|
.asm_866d
|
|
ld [$ffa6], a
|
|
ret
|
|
.asm_8670
|
|
ld a, [$ffa6]
|
|
add $3
|
|
cp $90
|
|
jr c, .asm_867a
|
|
ld a, $90
|
|
.asm_867a
|
|
ld [$ffa6], a
|
|
ret
|
|
|
|
StartTimer: ; 0x867d
|
|
; Starts the timer that counts down with the specified starting time when things
|
|
; like CatchEm Mode starts.
|
|
; input: b = minutes
|
|
; c = seconds
|
|
ld a, c
|
|
ld [wTimerSeconds], a
|
|
ld a, b
|
|
ld [wTimerMinutes], a
|
|
xor a
|
|
ld [wTimerFrames], a
|
|
ld [$d57e], a
|
|
ld [$d57f], a
|
|
ld a, $1
|
|
ld [$d57d], a
|
|
ld a, $1
|
|
ld [$d580], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_1404a)
|
|
ld hl, Func_1404a
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_86a4: ; 0x86a4
|
|
ld a, [$d57f]
|
|
and a
|
|
ret nz
|
|
ld a, [wTimerFrames]
|
|
inc a
|
|
cp $3c
|
|
jr c, .asm_86b2
|
|
xor a
|
|
.asm_86b2
|
|
ld [wTimerFrames], a
|
|
ret c
|
|
ld hl, wTimerMinutes
|
|
ld a, [hld]
|
|
or [hl]
|
|
jr nz, .asm_86c3
|
|
ld a, $1
|
|
ld [$d57e], a
|
|
ret
|
|
.asm_86c3
|
|
ld a, [hl]
|
|
sub $1
|
|
daa
|
|
jr nc, .asm_86cb
|
|
ld a, $59
|
|
.asm_86cb
|
|
ld [hli], a
|
|
ld a, [hl]
|
|
sbc $0
|
|
daa
|
|
ld [hl], a
|
|
ret
|
|
|
|
Func_86d2: ; 0x86d2
|
|
xor a
|
|
ld [$d57d], a
|
|
ret
|
|
|
|
HandleInGameMenu: ; 0x86d7
|
|
; Routine responsible for the "SAVE"/"CANCEL" menu.
|
|
ld a, [$d917]
|
|
push af
|
|
ld a, $1
|
|
ld [$d917], a
|
|
call Func_30e8
|
|
xor a
|
|
ld [$d4aa], a
|
|
ld hl, wcBottomMessageText
|
|
ld a, $81
|
|
ld b, $30
|
|
.clearLoop
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .clearLoop
|
|
ld de, $c524
|
|
ld hl, SaveText
|
|
call Func_8797
|
|
ld de, $c564
|
|
ld hl, CancelText
|
|
call Func_8797
|
|
ld a, Bank(InGameMenuSymbolsGfx)
|
|
ld hl, InGameMenuSymbolsGfx
|
|
ld de, vTiles1 + $60
|
|
ld bc, $0010
|
|
call LoadVRAMData
|
|
ld a, $0
|
|
ld hl, wcBottomMessageText
|
|
ld de, vBGMap1
|
|
ld bc, $00c0
|
|
call LoadVRAMData
|
|
ld a, $60
|
|
ld [$ffa6], a
|
|
dec a
|
|
ld [$ffa2], a
|
|
ld a, $fd
|
|
ld [$ffaf], a
|
|
call HandleInGameMenuSelection
|
|
ld a, [wInGameMenuIndex]
|
|
and a
|
|
jr nz, .pickedCancel
|
|
ld a, $1
|
|
ld [$d7c2], a
|
|
ld hl, $d300
|
|
ld de, $a268
|
|
ld bc, $04c3
|
|
call Func_f1a
|
|
xor a
|
|
ld [$d803], a
|
|
ld [$d804], a
|
|
.pickedCancel
|
|
ld bc, $003c
|
|
call Func_93f
|
|
ld a, $86
|
|
ld [$ffa6], a
|
|
ld a, $83
|
|
ld [$ffa2], a
|
|
ld [$ffa8], a
|
|
ld a, $ff
|
|
ld [$ffaf], a
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_8778
|
|
ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy)
|
|
ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoy + $60
|
|
ld de, vTiles1 + $60
|
|
ld bc, $0010
|
|
call LoadVRAMData
|
|
jr .asm_8786
|
|
.asm_8778
|
|
ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor)
|
|
ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + $60
|
|
ld de, vTiles1 + $60
|
|
ld bc, $0010
|
|
call LoadVRAMData
|
|
.asm_8786
|
|
call Func_30e8
|
|
pop af
|
|
ld [$d917], a
|
|
ld a, $1
|
|
ld [$d4aa], a
|
|
ld a, [wInGameMenuIndex]
|
|
and a
|
|
ret
|
|
|
|
Func_8797: ; 0x8797
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
add $bf
|
|
ld [de], a
|
|
inc de
|
|
jr Func_8797
|
|
|
|
SaveText: ; 0x87a0
|
|
db "SAVE@"
|
|
|
|
CancelText: ; 0x87a5
|
|
db "CANCEL@"
|
|
|
|
HandleInGameMenuSelection: ; 0x87ac
|
|
ld a, $1
|
|
ld [wInGameMenuIndex], a
|
|
.waitForAButton
|
|
call MoveInGameMenuCursor
|
|
call DrawInGameMenu
|
|
rst $10
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .waitForAButton
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
MoveInGameMenuCursor: ; 0x87c5
|
|
; Moves the cursor up or down in the "SAVE"/"CANCEL" in-game menu
|
|
ld a, [hNewlyPressedButtons]
|
|
ld b, a
|
|
ld a, [wInGameMenuIndex]
|
|
bit BIT_D_UP, b
|
|
jr z, .didntPressUp
|
|
and a ; is the cursor already on "SAVE"?
|
|
ret z
|
|
dec a
|
|
ld [wInGameMenuIndex], a
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
.didntPressUp
|
|
bit BIT_D_DOWN, b
|
|
ret z
|
|
cp $1 ; is the cursor already on "CANCEL"?
|
|
ret z
|
|
inc a
|
|
ld [wInGameMenuIndex], a
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
DrawInGameMenu: ; 0x87ed
|
|
ld a, $81
|
|
ld [$c523], a
|
|
ld [$c563], a
|
|
ld a, [wInGameMenuIndex]
|
|
ld c, a
|
|
swap c
|
|
sla c
|
|
sla c
|
|
ld b, $0
|
|
ld hl, $c523
|
|
add hl, bc
|
|
ld a, $86
|
|
ld [hl], a
|
|
ld a, $0
|
|
ld hl, wcBottomMessageText
|
|
ld de, vBGMap1
|
|
ld bc, $00c0
|
|
call LoadVRAMData
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$8817,$c000 - $8817
|
|
|
|
|
|
SECTION "bank3", ROMX, BANK[$3]
|
|
|
|
HandleTitlescreen: ; 0xc000
|
|
ld a, [wScreenState]
|
|
rst $18 ; calls JumpToFuncInTable
|
|
PointerTable_c004: ; 0xc004
|
|
dw FadeInTitlescreen
|
|
dw TitlescreenLoop ; titlescreen loop
|
|
dw Func_c10e ; previously saved game menu
|
|
dw Func_c1cb ; game start, pokedex, option
|
|
dw GoToHighScoresFromTitlescreen ; go to high scores
|
|
|
|
FadeInTitlescreen: ; 0xc00e
|
|
ld a, $43
|
|
ld [$ff9e], a
|
|
ld a, $e4
|
|
ld [$d80c], a
|
|
ld a, $d2
|
|
ld [$d80d], a
|
|
ld a, $e1
|
|
ld [$d80e], a
|
|
xor a
|
|
ld [hBoardXShift], a
|
|
ld [hBoardYShift], a
|
|
ld hl, TitlescreenFadeInGfxPointers
|
|
ld a, [hGameBoyColorFlag]
|
|
call LoadVideoData
|
|
ld a, $1
|
|
ld [wTitleScreenGameStartCursorSelection], a
|
|
call ClearOAMBuffer
|
|
ld a, $2
|
|
ld [wTitleScreenPokeballAnimationCounter], a
|
|
call HandleTitlescreenAnimations
|
|
call Func_b66
|
|
ld a, $11
|
|
call Func_52c
|
|
ld de, $0004
|
|
call Func_490
|
|
call Func_588
|
|
call Func_bbe ; this does the fading
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
TitlescreenFadeInGfxPointers: ; 0xc057
|
|
dw TitlescreenFadeInGfx_GameBoy
|
|
dw TitlescreenFadeInGfx_GameBoyColor
|
|
|
|
TitlescreenFadeInGfx_GameBoy: ; 0xc05b
|
|
dw TitlescreenGfx
|
|
db Bank(TitlescreenGfx)
|
|
dw vTiles0
|
|
dw $6000
|
|
|
|
dw TitlescreenTilemap
|
|
db Bank(TitlescreenTilemap)
|
|
dw vBGMap0
|
|
dw $900
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
TitlescreenFadeInGfx_GameBoyColor: ; 0xc06b
|
|
dw TitlescreenFadeInGfx
|
|
db Bank(TitlescreenFadeInGfx)
|
|
dw vTiles0
|
|
dw $6000
|
|
|
|
dw TitlescreenTilemap
|
|
db Bank(TitlescreenTilemap)
|
|
dw vBGMap0
|
|
dw $900
|
|
|
|
dw $5c00
|
|
db $31
|
|
dw vBGMap0
|
|
dw $902
|
|
|
|
dw $4f80
|
|
db $37
|
|
dw $0000
|
|
dw $101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
TitlescreenLoop: ; 0xc089
|
|
call Func_c0ee
|
|
call HandleTitlescreenAnimations
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a ; was A button pressed?
|
|
jr z, .AButtonNotPressed
|
|
ld a, [wTitleScreenCursorSelection]
|
|
and a
|
|
jr nz, .asm_c0d3
|
|
; player chose "Game Start"
|
|
ld a, [$d7c2] ; if this is non-zero, the main menu will prompt for "continue or new game?".
|
|
and a
|
|
jr z, .noPreviouslySavedGame
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
xor a
|
|
ld [$d910], a
|
|
ld a, $2
|
|
ld [$d911], a
|
|
ld a, $1
|
|
ld [wTitleScreenGameStartCursorSelection], a
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
.noPreviouslySavedGame
|
|
ld de, $0000
|
|
call Func_490
|
|
rst $10
|
|
ld de, $0027
|
|
call PlaySoundEffect
|
|
ld bc, $0037
|
|
call Func_93f
|
|
ld a, $3
|
|
ld [wScreenState], a
|
|
ret
|
|
.asm_c0d3
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld a, $3
|
|
ld [wScreenState], a
|
|
ret
|
|
.AButtonNotPressed
|
|
bit BIT_B_BUTTON, a ; was B button pressed?
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld a, $4
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_c0ee: ; 0xc0ee
|
|
ld hl, wTitleScreenCursorSelection
|
|
ld c, $2
|
|
call Func_c1fc
|
|
ret
|
|
|
|
HandleTitlescreenAnimations: ; 0xc0f7
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_c104
|
|
ld bc, $2040
|
|
ld a, $62 ; seemingly-unused OAM data for titlescreen. It's just blank tiles.
|
|
call LoadOAMData
|
|
.asm_c104
|
|
call Func_c21d ; does nothing...
|
|
call HandleTitlescreenPikachuBlinkingAnimation
|
|
call HandleTitlescreenPokeballAnimation
|
|
ret
|
|
|
|
Func_c10e: ; 0xc10e
|
|
call Func_c1a2
|
|
call Func_c1b1
|
|
ld a, [$d910]
|
|
cp $6
|
|
ret nz
|
|
ld a, [hNewlyPressedButtons]
|
|
bit 0, a
|
|
jr z, .asm_c17c
|
|
ld de, $0000
|
|
call Func_490
|
|
rst $10
|
|
ld de, $0027
|
|
call PlaySoundEffect
|
|
ld bc, $0041
|
|
call Func_93f
|
|
ld a, [wTitleScreenGameStartCursorSelection]
|
|
and a
|
|
jr z, .asm_c177
|
|
call Func_cb5
|
|
call Func_576
|
|
ld a, [$d7c2]
|
|
and a
|
|
jr z, .asm_c173
|
|
ld hl, $a268
|
|
ld de, $d300
|
|
ld bc, $04c3
|
|
call Func_f0c
|
|
jr nc, .asm_c173
|
|
xor a
|
|
ld [$d7c2], a
|
|
ld hl, $d300
|
|
ld de, $a268
|
|
ld bc, $04c3
|
|
call Func_f1a
|
|
ld a, $1
|
|
ld [$d7c1], a
|
|
ld a, $4
|
|
ld [wCurrentScreen], a
|
|
ld a, $0
|
|
ld [wScreenState], a
|
|
ret
|
|
.asm_c173
|
|
xor a
|
|
ld [$d7c1], a
|
|
.asm_c177
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
.asm_c17c
|
|
bit 1, a
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld a, $8
|
|
ld [$d910], a
|
|
ld a, $2
|
|
ld [$d911], a
|
|
.asm_c18f
|
|
call Func_926
|
|
rst $10
|
|
call Func_c1b1
|
|
ld a, [$d910]
|
|
cp $e
|
|
jr nz, .asm_c18f
|
|
ld hl, wScreenState
|
|
dec [hl]
|
|
ret
|
|
|
|
Func_c1a2: ; 0xc1a2
|
|
ld a, [$d910]
|
|
cp $6
|
|
ret nz
|
|
ld hl, wTitleScreenGameStartCursorSelection
|
|
ld c, $1
|
|
call Func_c1fc
|
|
ret
|
|
|
|
Func_c1b1: ; 0xc1b1
|
|
call Func_c2df
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_c1c1
|
|
ld bc, $2040
|
|
ld a, $62
|
|
call LoadOAMData
|
|
.asm_c1c1
|
|
call Func_c21d
|
|
call HandleTitlescreenPikachuBlinkingAnimation
|
|
call HandleTitlescreenPokeballAnimation
|
|
ret
|
|
|
|
Func_c1cb: ; 0c1cb
|
|
call Func_cb5
|
|
call Func_576
|
|
ld a, [wTitleScreenCursorSelection]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, Data_c1e4
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wCurrentScreen], a
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Data_c1e4: ; 0xc1e4
|
|
db SCREEN_FIELD_SELECT, SCREEN_POKEDEX, SCREEN_OPTIONS
|
|
|
|
GoToHighScoresFromTitlescreen: ; 0xc1e7
|
|
call Func_cb5
|
|
call Func_576
|
|
ld a, SCREEN_HIGH_SCORES
|
|
ld [wCurrentScreen], a
|
|
ld a, $1
|
|
ld [wScreenState], a
|
|
xor a
|
|
ld [$da7f], a
|
|
ret
|
|
|
|
Func_c1fc: ; 0xc1fc
|
|
ld a, [hPressedButtons]
|
|
ld b, a
|
|
ld a, [hl]
|
|
bit 6, b
|
|
jr z, .asm_c20f
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [hl], a
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_c20f
|
|
bit 7, b
|
|
ret z
|
|
cp c
|
|
ret z
|
|
inc a
|
|
ld [hl], a
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_c21d: ; 0xc21d
|
|
; World's greatest function.
|
|
ret
|
|
|
|
HandleTitlescreenPikachuBlinkingAnimation: ; 0xc21e
|
|
ld a, [wTitleScreenBlinkAnimationFrame]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, TitleScreenBlinkAnimation
|
|
add hl, bc
|
|
ld bc, $3810
|
|
ld a, [hl]
|
|
cp $5a ; blink animation frame 1 OAM id
|
|
call nz, LoadOAMData
|
|
ld a, [wTitleScreenBlinkAnimationCounter]
|
|
dec a
|
|
jr nz, .done
|
|
inc hl
|
|
inc hl ; hl points to next frame in TitleScreenBlinkAnimation array
|
|
ld a, [hl]
|
|
and a ; reached the end of the animation frames?
|
|
jr z, .saveAnimationFrame
|
|
ld a, [wTitleScreenBlinkAnimationFrame]
|
|
inc a
|
|
.saveAnimationFrame
|
|
ld [wTitleScreenBlinkAnimationFrame], a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, (TitleScreenBlinkAnimation + 1)
|
|
add hl, bc
|
|
ld a, [hl] ; a contains second byte in the current animation frame data
|
|
cp $3c ; is this a long-duration animation frame?
|
|
jr c, .done
|
|
ld c, a
|
|
call Func_959
|
|
and $1f
|
|
add c
|
|
.done
|
|
ld [wTitleScreenBlinkAnimationCounter], a
|
|
ret
|
|
|
|
TitleScreenBlinkAnimation: ; 0xc25f
|
|
; Array of animation frames. The animation is looped when it finishes.
|
|
; first byte = OAM data id to load
|
|
; second byte = number of frames to show this animation.
|
|
db $5a, $c8
|
|
db $5b, $04
|
|
db $5c, $04
|
|
db $5b, $04
|
|
db $5a, $3c
|
|
db $5b, $03
|
|
db $5c, $03
|
|
db $5b, $03
|
|
db $5a, $03
|
|
db $5b, $03
|
|
db $5c, $03
|
|
db $5b, $03
|
|
db $00 ; terminator
|
|
|
|
HandleTitlescreenPokeballAnimation: ; 0xc278
|
|
ld a, [wTitleScreenCursorSelection]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, TitleScreenPokeballCoordOffsets
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld e, $0
|
|
ld a, [wScreenState] ; TODO: I think this is the "titlescreen state" byte.
|
|
cp $1
|
|
jr nz, .loadOAM ; skip getting the correct animation frame
|
|
ld a, [wTitleScreenBouncingBallAnimationFrame]
|
|
sla a
|
|
ld e, a
|
|
.loadOAM
|
|
ld d, $0
|
|
ld hl, TitleScreenPokeballAnimation
|
|
add hl, de
|
|
ld a, [hl] ; a contains OAM id
|
|
call LoadOAMData
|
|
ld a, [wTitleScreenPokeballAnimationCounter]
|
|
dec a
|
|
jr nz, .done
|
|
ld a, [wTitleScreenBouncingBallAnimationFrame]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, (TitleScreenPokeballAnimation + 2) ; first frame of actual animation
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .saveAnimationFrame ; end of list?
|
|
ld a, [wTitleScreenBouncingBallAnimationFrame]
|
|
inc a
|
|
.saveAnimationFrame
|
|
ld [wTitleScreenBouncingBallAnimationFrame], a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, (TitleScreenPokeballAnimation + 1) ; first duration
|
|
add hl, bc
|
|
ld a, [hl]
|
|
.done
|
|
ld [wTitleScreenPokeballAnimationCounter], a
|
|
ret
|
|
|
|
TitleScreenPokeballAnimation: ; 0xc2cc
|
|
; first byte = OAM id
|
|
; second byte = animation frame duration
|
|
db $5D, $02
|
|
db $5E, $06
|
|
db $5F, $02
|
|
db $60, $04
|
|
db $61, $06
|
|
db $5F, $04
|
|
db $00 ; terminator
|
|
|
|
TitleScreenPokeballCoordOffsets: ; 0xc2d9
|
|
db $67, $15
|
|
db $73, $15
|
|
db $7F, $15
|
|
|
|
Func_c2df: ; 0xc2df
|
|
ld bc, $4446
|
|
ld a, [$d910]
|
|
cp $6
|
|
jr nz, .asm_c2f0
|
|
ld a, [wTitleScreenGameStartCursorSelection]
|
|
add $58
|
|
jr .asm_c2fd
|
|
.asm_c2f0
|
|
ld a, [$d910]
|
|
sla a
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $432b
|
|
add hl, de
|
|
ld a, [hl]
|
|
.asm_c2fd
|
|
call LoadOAMData
|
|
ld a, [$d911]
|
|
dec a
|
|
jr nz, .asm_c327
|
|
ld a, [$d910]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $432d
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
ld a, [$d910]
|
|
jr z, .asm_c31d
|
|
inc a
|
|
ld [$d910], a
|
|
.asm_c31d
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $432c
|
|
add hl, bc
|
|
ld a, [hl]
|
|
.asm_c327
|
|
ld [$d911], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$c32b,$c34a - $c32b
|
|
|
|
HandleOptionsScreen: ; 0xc34a
|
|
ld a, [wScreenState]
|
|
rst $18
|
|
PointerTable_c34e: ; 0xc34e
|
|
dw Func_c35a
|
|
dw Func_c400
|
|
dw Func_c483
|
|
dw Func_c493
|
|
dw Func_c506
|
|
dw Func_c691
|
|
|
|
Func_c35a: ; 0xc35a
|
|
ld a, $47
|
|
ld [$ff9e], a
|
|
ld a, $e4
|
|
ld [$d80c], a
|
|
ld [$d80d], a
|
|
ld a, $d2
|
|
ld [$d80e], a
|
|
xor a
|
|
ld [hBoardXShift], a
|
|
ld [hBoardYShift], a
|
|
ld hl, PointerTable_c3b9
|
|
ld a, [hGameBoyColorFlag]
|
|
call LoadVideoData
|
|
call ClearOAMBuffer
|
|
ld a, $2
|
|
ld [$d921], a
|
|
ld [$d91d], a
|
|
ld a, $9
|
|
ld [$d91f], a
|
|
call Func_c43a
|
|
call Func_c948
|
|
call Func_b66
|
|
ld a, $12
|
|
call Func_52c
|
|
ld de, $0002
|
|
call Func_490
|
|
call Func_588
|
|
ld a, [wSoundTestCurrentBackgroundMusic]
|
|
ld hl, $9967
|
|
call RedrawSoundTestID
|
|
ld a, [wSoundTextCurrentSoundEffect]
|
|
ld hl, $99a7
|
|
call RedrawSoundTestID
|
|
call Func_bbe
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
PointerTable_c3b9: ; 0xc3b9
|
|
dw DataArray_c3bd
|
|
dw DataArray_c3d4
|
|
|
|
DataArray_c3bd: ; 0xc3bd
|
|
dw OptionMenuAndKeyConfigGfx
|
|
db Bank(OptionMenuAndKeyConfigGfx)
|
|
dw vTiles0
|
|
dw $5000
|
|
|
|
dw OptionMenuTilemap
|
|
db Bank(OptionMenuTilemap)
|
|
dw vBGMap0
|
|
dw $900
|
|
|
|
dw $7000
|
|
db $30
|
|
dw vBGMap1
|
|
dw $900
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
DataArray_c3d4: ; 0xc3d4
|
|
dw OptionMenuAndKeyConfigGfx
|
|
db Bank(OptionMenuAndKeyConfigGfx)
|
|
dw vTiles0
|
|
dw $5000
|
|
|
|
dw OptionMenuTilemap
|
|
db Bank(OptionMenuTilemap)
|
|
dw vBGMap0
|
|
dw $900
|
|
|
|
dw $7c00
|
|
db $30
|
|
dw vBGMap0
|
|
dw $902
|
|
|
|
dw $7000
|
|
db $30
|
|
dw vBGMap1
|
|
dw $900
|
|
|
|
dw $7400
|
|
db $30
|
|
dw vBGMap1
|
|
dw $902
|
|
|
|
dw $4e00
|
|
db $37
|
|
dw $0000
|
|
dw $101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Func_c400: ; 0xc400
|
|
call Func_c41a
|
|
call Func_c43a
|
|
call Func_c447
|
|
ld a, [hNewlyPressedButtons]
|
|
bit 1, a
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld a, $2
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_c41a: ; 0xc41a
|
|
ld a, [hPressedButtons]
|
|
ld b, a
|
|
ld a, [$d916]
|
|
bit 6, b
|
|
jr z, .asm_c429
|
|
and a
|
|
ret z
|
|
dec a
|
|
jr .asm_c430
|
|
.asm_c429
|
|
bit 7, b
|
|
ret z
|
|
cp $2
|
|
ret z
|
|
inc a
|
|
.asm_c430
|
|
ld [$d916], a
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_c43a: ; 0xc43a
|
|
call Func_c7ac
|
|
call Func_c80b
|
|
call Func_c88a
|
|
call Func_c92e
|
|
ret
|
|
|
|
Func_c447: ; 0xc447
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld a, [$d916]
|
|
and a
|
|
jr nz, .asm_c465
|
|
ld a, [$fffb]
|
|
and a
|
|
ret nz
|
|
call Func_c4f4
|
|
ld a, $3
|
|
ld [wScreenState], a
|
|
ret
|
|
.asm_c465
|
|
cp $1
|
|
jr nz, .asm_c477
|
|
call ClearOAMBuffer
|
|
ld hl, $ff9e
|
|
set 3, [hl]
|
|
ld a, $4
|
|
ld [wScreenState], a
|
|
ret
|
|
.asm_c477
|
|
ld de, $0000
|
|
call Func_490
|
|
ld a, $5
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_c483: ; 0xc483
|
|
call Func_cb5
|
|
call Func_576
|
|
ld a, SCREEN_TITLESCREEN
|
|
ld [wCurrentScreen], a
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_c493: ; 0xc493
|
|
call Func_c4b4
|
|
call Func_c4e6
|
|
call Func_c869
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_B_BUTTON, a
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
xor a
|
|
ld [$d803], a
|
|
ld [$d804], a
|
|
ld a, $1
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_c4b4: ; 0xc4b4
|
|
ld a, [hNewlyPressedButtons]
|
|
ld b, a
|
|
ld a, [$d917]
|
|
bit BIT_D_LEFT, b
|
|
jr z, .asm_c4ce
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d917], a
|
|
call Func_c4f4
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_c4ce
|
|
bit BIT_D_RIGHT, b
|
|
ret z
|
|
cp $1
|
|
ret z
|
|
inc a
|
|
ld [$d917], a
|
|
xor a
|
|
ld [$d803], a
|
|
ld [$d804], a
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_c4e6: ; 0xc4e6
|
|
call Func_c7ac
|
|
call Func_c80b
|
|
call Func_c88a
|
|
xor a
|
|
call Func_c8f1
|
|
ret
|
|
|
|
Func_c4f4: ; 0xc4f4
|
|
xor a
|
|
ld [$d91c], a
|
|
ld [$d91e], a
|
|
ld a, $2
|
|
ld [$d91d], a
|
|
ld a, $9
|
|
ld [$d91f], a
|
|
ret
|
|
|
|
Func_c506: ; 0xc506
|
|
call Func_c534
|
|
call Func_c554
|
|
call Func_c55a
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_B_BUTTON, a
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
call ClearOAMBuffer
|
|
ld hl, $ff9e
|
|
res 3, [hl]
|
|
ld hl, wKeyConfigBallStart
|
|
ld de, $a244
|
|
ld bc, $000e
|
|
call Func_f1a
|
|
ld a, $1
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_c534: ; 0xc534
|
|
ld a, [hNewlyPressedButtons]
|
|
ld b, a
|
|
ld a, [$d918]
|
|
bit BIT_D_UP, b
|
|
jr z, .asm_c543
|
|
and a
|
|
ret z
|
|
dec a
|
|
jr .asm_c54a
|
|
.asm_c543
|
|
bit BIT_D_DOWN, b
|
|
ret z
|
|
cp $7
|
|
ret z
|
|
inc a
|
|
.asm_c54a
|
|
ld [$d918], a
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_c554: ; 0xc554
|
|
ld a, $1
|
|
call Func_c8f1
|
|
ret
|
|
|
|
Func_c55a: ; 0xc55a
|
|
ld a, [$d918]
|
|
and a
|
|
jr nz, .asm_c572
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
call Func_ca3a
|
|
call Func_c948
|
|
ret
|
|
.asm_c572
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld bc, $001e
|
|
call Func_93f
|
|
ld a, [$d918]
|
|
dec a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $465f ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, [$d918]
|
|
dec a
|
|
sla a
|
|
call Func_c644
|
|
ld bc, $00ff
|
|
.asm_c59f
|
|
push bc
|
|
push hl
|
|
ld a, [$d918]
|
|
dec a
|
|
sla a
|
|
call Func_c621
|
|
call Func_c554
|
|
call Func_926
|
|
rst $10
|
|
pop hl
|
|
pop bc
|
|
ld a, [hJoypadState]
|
|
and a
|
|
jr z, .asm_c5c2
|
|
ld c, $0
|
|
call Func_c9be
|
|
call Func_c95f
|
|
jr .asm_c59f
|
|
.asm_c5c2
|
|
or c
|
|
jr nz, .asm_c59f
|
|
ld a, [$d918]
|
|
dec a
|
|
sla a
|
|
call Func_c639
|
|
push hl
|
|
ld bc, $001e
|
|
call Func_93f
|
|
pop hl
|
|
ld bc, $0020
|
|
add hl, bc
|
|
ld a, [$d918]
|
|
dec a
|
|
sla a
|
|
inc a
|
|
call Func_c644
|
|
ld bc, $00ff
|
|
ld d, $5a
|
|
.asm_c5e9
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld a, [$d918]
|
|
dec a
|
|
sla a
|
|
inc a
|
|
call Func_c621
|
|
call Func_c554
|
|
call Func_926
|
|
rst $10
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
dec d
|
|
ret z
|
|
ld a, [hJoypadState]
|
|
and a
|
|
jr z, .asm_c613
|
|
ld d, $ff
|
|
ld c, $0
|
|
call Func_c9be
|
|
call Func_c95f
|
|
jr .asm_c5e9
|
|
.asm_c613
|
|
or c
|
|
jr nz, .asm_c5e9
|
|
ld a, [$d918]
|
|
dec a
|
|
sla a
|
|
inc a
|
|
call Func_c639
|
|
ret
|
|
|
|
Func_c621: ; 0xc621
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $466d ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hl]
|
|
ld b, a
|
|
ld a, [$ffb3]
|
|
bit 2, a
|
|
ret z
|
|
ld a, $84
|
|
call LoadOAMData
|
|
ret
|
|
|
|
Func_c639: ; 0xc639
|
|
push hl
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, wKeyConfigBallStart
|
|
add hl, de
|
|
ld [hl], b
|
|
pop hl
|
|
ret
|
|
|
|
Func_c644: ; 0xc644
|
|
push hl
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wKeyConfigBallStart
|
|
add hl, bc
|
|
ld [hl], $0
|
|
pop hl
|
|
push hl
|
|
ld d, h
|
|
ld e, l
|
|
ld hl, $4689 ; todo
|
|
ld a, $3
|
|
ld bc, $0008
|
|
call LoadVRAMData
|
|
pop hl
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$c65f,$c691 - $c65f
|
|
|
|
Func_c691: ; 0xc91
|
|
call Func_c6bf
|
|
call Func_c6d9
|
|
call Func_c6e8
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_B_BUTTON, a
|
|
ret z
|
|
ld de, $0000
|
|
call Func_490
|
|
rst $10
|
|
rst $10
|
|
rst $10
|
|
ld a, $12
|
|
call Func_52c
|
|
ld de, $0002
|
|
call Func_490
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld a, $1
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_c6bf: ; 0xc6bf
|
|
ld a, [hNewlyPressedButtons]
|
|
ld b, a
|
|
ld a, [$d919]
|
|
bit BIT_D_UP, b
|
|
jr z, .asm_c6ce
|
|
and a
|
|
ret z
|
|
dec a
|
|
jr .asm_c6d5
|
|
.asm_c6ce
|
|
bit BIT_D_DOWN, b
|
|
ret z
|
|
cp $1
|
|
ret z
|
|
inc a
|
|
.asm_c6d5
|
|
ld [$d919], a
|
|
ret
|
|
|
|
Func_c6d9: ; 0xc6d9
|
|
call Func_c7ac
|
|
call Func_c80b
|
|
call Func_c88a
|
|
ld a, $2
|
|
call Func_c8f1
|
|
ret
|
|
|
|
Func_c6e8: ; 0xc6e8
|
|
ld a, [$d919]
|
|
and a
|
|
jr nz, UpdateSoundTestSoundEffectSelection
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, UpdateSoundTestBackgroundMusicSelection
|
|
ld de, $0000
|
|
call Func_490
|
|
rst $10
|
|
rst $10
|
|
rst $10
|
|
ld a, [wSoundTestCurrentBackgroundMusic]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, SongBanks
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld d, $0
|
|
ld a, [hl]
|
|
call Func_52c
|
|
call Func_490
|
|
ret
|
|
|
|
UpdateSoundTestBackgroundMusicSelection: ; 0xc715
|
|
ld a, [hPressedButtons] ; joypad state
|
|
ld b, a
|
|
ld a, [wSoundTestCurrentBackgroundMusic]
|
|
bit BIT_D_LEFT, b ; was the left dpad button pressed?
|
|
jr z, .checkIfRightPressed
|
|
dec a ; decrement background music id
|
|
bit 7, a ; did it wrap around to $ff?
|
|
jr z, .saveBackgroundMusicID
|
|
ld a, NUM_SONGS - 1
|
|
jr .saveBackgroundMusicID
|
|
.checkIfRightPressed
|
|
bit BIT_D_RIGHT, b ; was the right dpad button pressed?
|
|
ret z
|
|
inc a ; increment background music id
|
|
cp NUM_SONGS ; should it wrap around to 0?
|
|
jr nz, .saveBackgroundMusicID
|
|
xor a
|
|
.saveBackgroundMusicID
|
|
ld [wSoundTestCurrentBackgroundMusic], a
|
|
hlCoord 7, 11, vBGMap0
|
|
jp RedrawSoundTestID
|
|
|
|
UpdateSoundTestSoundEffectSelection: ; 0xc73a
|
|
ld a, [hNewlyPressedButtons] ; joypad state
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .didntPressAButton
|
|
ld a, [wSoundTextCurrentSoundEffect]
|
|
ld e, a
|
|
ld d, $0
|
|
call PlaySoundEffect
|
|
ret
|
|
.didntPressAButton
|
|
ld a, [hPressedButtons] ; joypad state
|
|
ld b, a
|
|
ld a, [wSoundTextCurrentSoundEffect]
|
|
bit BIT_D_LEFT, b ; was the left dpad button pressed?
|
|
jr z, .checkIfRightPressed
|
|
dec a ; decrement sound effect id
|
|
bit 7, a ; did it wrap around to $ff?
|
|
jr z, .saveSoundEffectID
|
|
ld a, NUM_SOUND_EFFECTS - 1
|
|
jr .saveSoundEffectID
|
|
.checkIfRightPressed
|
|
bit BIT_D_RIGHT, b ; was the right dpad button pressed?
|
|
ret z
|
|
inc a ; increment background music id
|
|
cp NUM_SOUND_EFFECTS ; should it wrap around to 0?
|
|
jr nz, .saveSoundEffectID
|
|
xor a
|
|
.saveSoundEffectID
|
|
ld [wSoundTextCurrentSoundEffect], a
|
|
hlCoord 7, 13, vBGMap0
|
|
; fall through
|
|
|
|
RedrawSoundTestID: ; 0xc76c
|
|
; Redraws the 2-digit id number for the sound test's current background music or sound effect id.
|
|
; input: a = id number
|
|
; hl = pointer to bg map location where the new 2-digit id should be drawn
|
|
push af ; save music or sound effect id number
|
|
swap a
|
|
and $f ; a contains high nybble of music id
|
|
call .drawDigit
|
|
pop af
|
|
and $f ; a contains low nybble of music id
|
|
.drawDigit
|
|
add $b7 ; hexadecimal digit tiles start at tile number $b7
|
|
call PutTileInVRAM
|
|
inc hl
|
|
ret
|
|
|
|
SongBanks: ; 0xc77e
|
|
db MUSIC_NOTHING_0F,BANK(Music_Nothing0F)
|
|
db MUSIC_BLUE_FIELD,BANK(Music_BlueField)
|
|
db MUSIC_CATCH_EM_RED,BANK(Music_CatchEmRed)
|
|
db MUSIC_HURRY_UP_RED,BANK(Music_HurryUpRed)
|
|
db MUSIC_POKEDEX,BANK(Music_Pokedex)
|
|
db MUSIC_GASTLY_GRAVEYARD,BANK(Music_GastlyInTheGraveyard)
|
|
db MUSIC_HAUNTER_GRAVEYARD,BANK(Music_HaunterInTheGraveyard)
|
|
db MUSIC_GENGAR_GRAVEYARD,BANK(Music_GengarInTheGraveyard)
|
|
db MUSIC_RED_FIELD,BANK(Music_RedField)
|
|
db MUSIC_CATCH_EM_BLUE,BANK(Music_CatchEmBlue)
|
|
db MUSIC_HURRY_UP_BLUE,BANK(Music_HurryUpBlue)
|
|
db MUSIC_HI_SCORE,BANK(Music_HiScore)
|
|
db MUSIC_GAME_OVER,BANK(Music_GameOver)
|
|
db MUSIC_WHACK_DIGLETT,BANK(Music_WhackTheDiglett)
|
|
db MUSIC_WHACK_DUGTRIO,BANK(Music_WhackTheDugtrio)
|
|
db MUSIC_SEEL_STAGE,BANK(Music_SeelStage)
|
|
db MUSIC_TITLE_SCREEN,BANK(Music_Title)
|
|
db MUSIC_MEWTWO_STAGE,BANK(Music_MewtwoStage)
|
|
db MUSIC_OPTIONS,BANK(Music_Options)
|
|
db MUSIC_FIELD_SELECT,BANK(Music_FieldSelect)
|
|
db MUSIC_MEOWTH_STAGE,BANK(Music_MeowthStage)
|
|
db MUSIC_END_CREDITS,BANK(Music_EndCredits)
|
|
db MUSIC_NAME_ENTRY,BANK(Music_NameEntry)
|
|
|
|
Func_c7ac: ; 0xc7ac
|
|
ld c, $0
|
|
ld a, [wScreenState]
|
|
cp $1
|
|
jr z, .asm_c7cc
|
|
ld a, [$d916]
|
|
and a
|
|
jr nz, .asm_c7cc
|
|
ld a, [$d917]
|
|
and a
|
|
jr nz, .asm_c7cc
|
|
ld a, [$d91e]
|
|
cp $4
|
|
jr nz, .asm_c7cc
|
|
ld a, [$d91c]
|
|
ld c, a
|
|
.asm_c7cc
|
|
sla c
|
|
ld b, $0
|
|
ld hl, $4806 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld bc, $5050
|
|
call LoadOAMData
|
|
ld a, [$d91d]
|
|
dec a
|
|
jr nz, .asm_c802
|
|
ld a, [$d91c]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4808
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_c7f5
|
|
ld a, [$d91c]
|
|
inc a
|
|
.asm_c7f5
|
|
ld [$d91c], a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4807 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
.asm_c802
|
|
ld [$d91d], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$c806,$c80b - $c806
|
|
|
|
Func_c80b: ; 0xc80b
|
|
ld c, $0
|
|
ld a, [wScreenState]
|
|
cp $1
|
|
jr z, .asm_c824
|
|
ld a, [$d916]
|
|
and a
|
|
jr nz, .asm_c824
|
|
ld a, [$d917]
|
|
and a
|
|
jr nz, .asm_c824
|
|
ld a, [$d91e]
|
|
ld c, a
|
|
.asm_c824
|
|
sla c
|
|
ld b, $0
|
|
ld hl, $485e ; todo
|
|
add hl, bc
|
|
ld bc, $7870
|
|
ld a, [hl]
|
|
call LoadOAMData
|
|
ld a, [$d91f]
|
|
dec a
|
|
jr nz, .asm_c85a
|
|
ld a, [$d91e]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4860 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
ld a, [$d91e]
|
|
jr z, .asm_c850
|
|
inc a
|
|
ld [$d91e], a
|
|
.asm_c850
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $485f ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
.asm_c85a
|
|
ld [$d91f], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$c85e,$c869 - $c85e
|
|
|
|
Func_c869: ; 0xc869
|
|
ld a, [$d916]
|
|
and a
|
|
ret nz
|
|
ld a, [$d917]
|
|
and a
|
|
ret nz
|
|
ld a, [$d91e]
|
|
cp $3
|
|
ret nz
|
|
ld a, [$d91f]
|
|
cp $1
|
|
ret nz
|
|
ld a, $55
|
|
ld [$d803], a
|
|
ld a, $40
|
|
ld [$d804], a
|
|
ret
|
|
|
|
Func_c88a: ; 0xc88a
|
|
ld a, [$d916]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $48eb ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld e, $0
|
|
ld a, [wScreenState]
|
|
cp $1
|
|
jr nz, .asm_c8a9
|
|
ld a, [$d920]
|
|
sla a
|
|
ld e, a
|
|
.asm_c8a9
|
|
ld d, $0
|
|
ld hl, $48de ; todo
|
|
add hl, de
|
|
ld a, [hl]
|
|
call LoadOAMData
|
|
ld a, [$d921]
|
|
dec a
|
|
jr nz, .asm_c8da
|
|
ld a, [$d920]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $48e0 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_c8cd
|
|
ld a, [$d920]
|
|
inc a
|
|
.asm_c8cd
|
|
ld [$d920], a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $48df ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
.asm_c8da
|
|
ld [$d921], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$c8de,$c8f1 - $c8de
|
|
|
|
Func_c8f1: ; 0xc8f1
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d917
|
|
add hl, bc
|
|
ld e, [hl]
|
|
sla c
|
|
ld hl, $4910 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld c, e
|
|
sla c
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hl]
|
|
ld b, a
|
|
ld a, $82
|
|
call LoadOAMData
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$c910,$c92e - $c910
|
|
|
|
Func_c92e: ; 0xc92e
|
|
ld a, [$d917]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4944 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, $85
|
|
call LoadOAMData
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$c944,$c948 - $c944
|
|
|
|
Func_c948: ; 0xc948
|
|
ld hl, $9c6d
|
|
ld de, wKeyConfigBallStart
|
|
ld b, $e
|
|
.asm_c950
|
|
push bc
|
|
ld a, [de]
|
|
call Func_c95f
|
|
inc de
|
|
ld bc, $0020
|
|
add hl, bc
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_c950
|
|
ret
|
|
|
|
Func_c95f: ; 0xc95f
|
|
push bc
|
|
push de
|
|
push hl
|
|
push hl
|
|
push af
|
|
ld hl, $d922
|
|
ld a, $81
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
pop af
|
|
ld hl, $d922
|
|
ld de, $49ae ; todo
|
|
ld b, $8
|
|
.asm_c979
|
|
srl a
|
|
push af
|
|
jr nc, .asm_c994
|
|
ld a, [de]
|
|
inc de
|
|
call Func_c9aa
|
|
ld a, [de]
|
|
inc de
|
|
call Func_c9aa
|
|
pop af
|
|
push af
|
|
and a
|
|
jr z, .asm_c996
|
|
ld a, $1a
|
|
call Func_c9aa
|
|
jr .asm_c996
|
|
.asm_c994
|
|
inc de
|
|
inc de
|
|
.asm_c996
|
|
pop af
|
|
dec b
|
|
jr nz, .asm_c979
|
|
pop de
|
|
ld hl, $d922
|
|
ld a, $0
|
|
ld bc, $0008
|
|
call Func_735
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ret
|
|
|
|
Func_c9aa: ; 0xc9aa
|
|
and a
|
|
ret z
|
|
ld [hli], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$c9ae,$c9be - $c9ae
|
|
|
|
Func_c9be: ; 0xc9be
|
|
push af
|
|
push bc
|
|
push hl
|
|
ld c, a
|
|
xor b
|
|
and c
|
|
ld hl, $d936
|
|
call Func_c9ff
|
|
ld a, b
|
|
ld hl, $d93f
|
|
call Func_c9ff
|
|
ld a, [$d947]
|
|
cp $3
|
|
jr nc, .asm_c9f3
|
|
ld hl, $d93e
|
|
add [hl]
|
|
sub $4
|
|
ld hl, $d936
|
|
call nc, Func_ca15
|
|
ld de, $d936
|
|
ld hl, $d93f
|
|
ld b, $8
|
|
.asm_c9ec
|
|
ld a, [de]
|
|
or [hl]
|
|
ld [hli], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_c9ec
|
|
.asm_c9f3
|
|
ld hl, $d93f
|
|
call Func_ca29
|
|
pop hl
|
|
pop bc
|
|
ld b, a
|
|
pop af
|
|
ld a, b
|
|
ret
|
|
|
|
Func_c9ff: ; 0xc9ff
|
|
push bc
|
|
ld bc, $0800
|
|
.asm_ca03
|
|
sla a
|
|
jr nc, .asm_ca0c
|
|
ld [hl], $ff
|
|
inc c
|
|
jr .asm_ca0e
|
|
.asm_ca0c
|
|
ld [hl], $0
|
|
.asm_ca0e
|
|
inc hl
|
|
dec b
|
|
jr nz, .asm_ca03
|
|
ld [hl], c
|
|
pop bc
|
|
ret
|
|
|
|
Func_ca15: ; 0xca15
|
|
push bc
|
|
inc a
|
|
ld c, a
|
|
ld b, $8
|
|
.asm_ca1a
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_ca23
|
|
ld [hl], $0
|
|
dec c
|
|
jr z, .asm_ca27
|
|
.asm_ca23
|
|
inc hl
|
|
dec b
|
|
jr nz, .asm_ca1a
|
|
.asm_ca27
|
|
pop bc
|
|
ret
|
|
|
|
Func_ca29: ; 0ca29
|
|
push bc
|
|
ld bc, $0800
|
|
.asm_ca2d
|
|
ld a, [hli]
|
|
and a
|
|
jr z, .asm_ca32
|
|
scf
|
|
.asm_ca32
|
|
rl c
|
|
dec b
|
|
jr nz, .asm_ca2d
|
|
ld a, c
|
|
pop bc
|
|
ret
|
|
|
|
Func_ca3a: ; 0ca3a
|
|
ld hl, $4a55 ; todo
|
|
ld de, wKeyConfigBallStart
|
|
ld b, $e
|
|
.asm_ca42
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_ca42
|
|
ld hl, wKeyConfigBallStart
|
|
ld de, $a244
|
|
ld bc, $000e
|
|
call Func_f1a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$ca55,$ca7f - $ca55
|
|
|
|
HandleHighScoresScreen: ; 0xca7f
|
|
ld a, [wScreenState]
|
|
rst $18
|
|
PointerTable_ca83: ; 0xca83
|
|
dw Func_ca8f
|
|
dw Func_cb14
|
|
dw Func_ccac
|
|
dw Func_ccb6
|
|
dw Func_cd6c
|
|
dw ExitHighScoresScreen
|
|
|
|
Func_ca8f: ; 0xca8f
|
|
ld hl, $d473
|
|
call Func_959
|
|
ld [hli], a
|
|
call Func_959
|
|
ld [hli], a
|
|
call Func_959
|
|
ld [hli], a
|
|
call Func_959
|
|
ld [hli], a
|
|
ld hl, $da36
|
|
ld a, [$da83]
|
|
and a
|
|
jr z, .asm_caae
|
|
ld hl, $da77
|
|
.asm_caae
|
|
ld b, $5
|
|
.asm_cab0
|
|
ld de, $d46f
|
|
ld c, $6
|
|
.asm_cab5
|
|
ld a, [de]
|
|
cp [hl]
|
|
jr c, .asm_cad0
|
|
jr nz, .asm_cac2
|
|
dec de
|
|
dec hl
|
|
dec c
|
|
jr nz, .asm_cab5
|
|
jr .asm_cad0
|
|
.asm_cac2
|
|
dec hl
|
|
dec c
|
|
jr nz, .asm_cac2
|
|
ld a, l
|
|
sub $7
|
|
ld l, a
|
|
jr nc, .asm_cacd
|
|
dec h
|
|
.asm_cacd
|
|
dec b
|
|
jr nz, .asm_cab0
|
|
.asm_cad0
|
|
ld a, b
|
|
ld [$da81], a
|
|
xor a
|
|
ld [$da80], a
|
|
inc b
|
|
ld hl, $da30
|
|
ld de, $da3d
|
|
ld a, [$da83]
|
|
and a
|
|
jr z, .asm_caeb
|
|
ld hl, $da71
|
|
ld de, $da7e
|
|
.asm_caeb
|
|
ld a, $5
|
|
.asm_caed
|
|
cp b
|
|
jr c, .asm_cb02
|
|
push af
|
|
jr nz, .asm_caf6
|
|
ld hl, $d476
|
|
.asm_caf6
|
|
ld c, $d
|
|
.asm_caf8
|
|
ld a, [hld]
|
|
ld [de], a
|
|
dec de
|
|
dec c
|
|
jr nz, .asm_caf8
|
|
pop af
|
|
dec a
|
|
jr nz, .asm_caed
|
|
.asm_cb02
|
|
ld a, [$da81]
|
|
cp $5
|
|
ld a, $1
|
|
jr nz, .asm_cb0c
|
|
xor a
|
|
.asm_cb0c
|
|
ld [$da7f], a
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
Func_cb14: ; 0xcb14
|
|
ld a, $43
|
|
ld [$ff9e], a
|
|
ld a, $e0
|
|
ld [$d80c], a
|
|
ld a, $e1
|
|
ld [$d80d], a
|
|
ld [$d80e], a
|
|
xor a
|
|
ld [hBoardXShift], a
|
|
ld [$ffab], a
|
|
ld [hBoardYShift], a
|
|
ld [$ffad], a
|
|
ld a, $e
|
|
ld [$ffa2], a
|
|
ld [$ffa8], a
|
|
ld a, $82
|
|
ld [$ffa9], a
|
|
ld [$ffaa], a
|
|
ld hl, $ff9f
|
|
set 6, [hl]
|
|
ld hl, $ffff
|
|
set 1, [hl]
|
|
ld a, $3
|
|
ld [$ffb0], a
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_cb51
|
|
ld a, [$da83]
|
|
inc a
|
|
.asm_cb51
|
|
ld hl, $4be3 ; todo
|
|
call LoadVideoData
|
|
call ClearOAMBuffer
|
|
ld a, $20
|
|
ld [$da82], a
|
|
call Func_d211
|
|
ld hl, $99c0
|
|
ld de, $da3d
|
|
call Func_d2cb
|
|
ld hl, $9dc0
|
|
ld de, $da7e
|
|
call Func_d2cb
|
|
ld a, [$da83]
|
|
and a
|
|
jr z, .asm_cb7f
|
|
ld hl, $ff9e
|
|
set 3, [hl]
|
|
.asm_cb7f
|
|
call Func_b66
|
|
ld a, [$da7f]
|
|
and a
|
|
jr z, .asm_cbbd
|
|
ld a, [$da81]
|
|
and a
|
|
jr nz, .asm_cb9b
|
|
ld a, $13
|
|
call Func_52c
|
|
ld de, $0001
|
|
call Func_490
|
|
jr .asm_cba6
|
|
.asm_cb9b
|
|
ld a, $13
|
|
call Func_52c
|
|
ld de, $0002
|
|
call Func_490
|
|
.asm_cba6
|
|
call Func_588
|
|
ld bc, $0009
|
|
call Func_d68a
|
|
ld bc, $03c9
|
|
call Func_d68a
|
|
call Func_bbe
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
.asm_cbbd
|
|
ld a, $10
|
|
call Func_52c
|
|
ld de, $0004
|
|
call Func_490
|
|
call Func_588
|
|
ld bc, $0009
|
|
call Func_d68a
|
|
ld bc, $03c9
|
|
call Func_d68a
|
|
call Func_bbe
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$cbe3,$ccac - $cbe3
|
|
|
|
Func_ccac: ; 0xccac
|
|
call Func_d18b
|
|
call Func_d1d2
|
|
call Func_d211
|
|
ret
|
|
|
|
Func_ccb6: ; 0xccb6
|
|
call Func_d4cf
|
|
call Func_d24f
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_ccd1
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
.asm_ccd1
|
|
bit 1, a
|
|
jr z, .asm_cce4
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
.asm_cce4
|
|
bit 3, a
|
|
jr z, .asm_ccfb
|
|
call Func_1a43
|
|
ld a, [hGameBoyColorFlag]
|
|
ld [$d8f0], a
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
.asm_ccfb
|
|
ld a, [hJoypadState]
|
|
cp (SELECT | D_UP)
|
|
ret nz
|
|
ld a, [hNewlyPressedButtons]
|
|
and (SELECT | D_UP)
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
call ClearOAMBuffer
|
|
ld bc, $473b
|
|
ld a, $94
|
|
call LoadOAMData
|
|
.asm_cd16
|
|
rst $10
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_B_BUTTON, a
|
|
jr z, .asm_cd24
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_cd24
|
|
bit 0, a
|
|
jr z, .asm_cd16
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
call CopyInitialHighScores
|
|
ld a, $30
|
|
ld hl, $6040 ; todo
|
|
ld de, $9840
|
|
ld bc, $01c0
|
|
call LoadVRAMData
|
|
ld a, $30
|
|
ld hl, $5840 ; todo
|
|
ld de, $9c40
|
|
ld bc, $01c0
|
|
call LoadVRAMData
|
|
ld hl, $99c0 ; todo
|
|
ld de, $da3d
|
|
call Func_d361
|
|
ld hl, $9dc0
|
|
ld de, $da7e
|
|
call Func_d361
|
|
ld hl, wRedHighScore1Points
|
|
ld de, $a000
|
|
ld bc, $0082
|
|
call Func_f1a
|
|
ret
|
|
|
|
Func_cd6c: ; 0xcd6c
|
|
ld a, [$ffb3]
|
|
and $1f
|
|
call z, Func_1a43
|
|
call Func_cf7d
|
|
call Func_cfa6
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_cdbb
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld a, [$da85]
|
|
and a
|
|
jr nz, .asm_cda1
|
|
ld a, [$d86e]
|
|
and a
|
|
jr z, .asm_cdbb
|
|
call ClearOAMBuffer
|
|
ld bc, $473b
|
|
ld a, $8e
|
|
call LoadOAMData
|
|
call Func_d042
|
|
jr .asm_cdc6
|
|
.asm_cda1
|
|
ld a, [$d8f0]
|
|
and a
|
|
jr z, .asm_cdbb
|
|
ld de, $0000
|
|
call Func_490
|
|
rst $10
|
|
call Func_cdce
|
|
push af
|
|
ld de, $0004
|
|
call Func_490
|
|
pop af
|
|
jr nc, .asm_cdc6
|
|
.asm_cdbb
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_B_BUTTON, a
|
|
ret z
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
.asm_cdc6
|
|
xor a
|
|
ld [$ff56], a
|
|
ld hl, wScreenState
|
|
dec [hl]
|
|
ret
|
|
|
|
Func_cdce: ; 0xcdce
|
|
push af
|
|
ld a, $0
|
|
ld [$abf6], a
|
|
pop af
|
|
call ClearOAMBuffer
|
|
call Func_1be3
|
|
call Func_ced1
|
|
push af
|
|
ld a, $1
|
|
ld [$abf6], a
|
|
pop af
|
|
di
|
|
ld a, [$d8ea]
|
|
cp $0
|
|
jp nz, .asm_ceb6
|
|
ld a, [$d8e9]
|
|
cp $1
|
|
jr z, .asm_ce23
|
|
push af
|
|
ld a, $2
|
|
ld [$abf6], a
|
|
pop af
|
|
ld b, $82
|
|
ld hl, wRedHighScore1Points
|
|
call Func_1cf8
|
|
ld a, [$d8ea]
|
|
cp $0
|
|
jp nz, .asm_ceb6
|
|
push af
|
|
ld a, $3
|
|
ld [$abf6], a
|
|
pop af
|
|
ld hl, $c4c0
|
|
call Func_1dda
|
|
ld a, [$d8ea]
|
|
cp $0
|
|
jp nz, .asm_ceb6
|
|
jr .asm_ce4d
|
|
.asm_ce23
|
|
push af
|
|
ld a, $4
|
|
ld [$abf6], a
|
|
pop af
|
|
ld hl, $c4c0
|
|
call Func_1dda
|
|
ld a, [$d8ea]
|
|
cp $0
|
|
jr nz, .asm_ceb6
|
|
push af
|
|
ld a, $5
|
|
ld [$abf6], a
|
|
pop af
|
|
ld b, $82
|
|
ld hl, wRedHighScore1Points
|
|
call Func_1cf8
|
|
ld a, [$d8ea]
|
|
cp $0
|
|
jr nz, .asm_ceb6
|
|
.asm_ce4d
|
|
push af
|
|
ld a, $6
|
|
ld [$abf6], a
|
|
pop af
|
|
call Func_ceca
|
|
rst $10
|
|
ld hl, $c4cc
|
|
ld b, $5
|
|
.asm_ce5d
|
|
push bc
|
|
push hl
|
|
ld d, h
|
|
ld e, l
|
|
ld hl, $da3d
|
|
call Func_cfcb
|
|
pop hl
|
|
pop bc
|
|
ld de, $000d
|
|
add hl, de
|
|
dec b
|
|
jr nz, .asm_ce5d
|
|
push af
|
|
ld a, $7
|
|
ld [$abf6], a
|
|
pop af
|
|
ld hl, $c50d
|
|
ld b, $5
|
|
.asm_ce7c
|
|
push bc
|
|
push hl
|
|
ld d, h
|
|
ld e, l
|
|
ld hl, $da7e
|
|
call Func_cfcb
|
|
pop hl
|
|
pop bc
|
|
ld de, $000d
|
|
add hl, de
|
|
dec b
|
|
jr nz, .asm_ce7c
|
|
push af
|
|
ld a, $8
|
|
ld [$abf6], a
|
|
pop af
|
|
ld hl, $99c0
|
|
ld de, $da3d
|
|
call Func_d361
|
|
ld hl, $9dc0
|
|
ld de, $da7e
|
|
call Func_d361
|
|
ld hl, wRedHighScore1Points
|
|
ld de, $a000
|
|
ld bc, $0082
|
|
call Func_f1a
|
|
and a
|
|
ret
|
|
.asm_ceb6
|
|
push af
|
|
ld a, $9
|
|
ld [$abf6], a
|
|
pop af
|
|
call Func_ceca
|
|
rst $10
|
|
push af
|
|
ld a, $a
|
|
ld [$abf6], a
|
|
pop af
|
|
scf
|
|
ret
|
|
|
|
Func_ceca: ; 0xceca
|
|
ld a, [$ff44]
|
|
and a
|
|
jr nz, Func_ceca
|
|
ei
|
|
ret
|
|
|
|
Func_ced1: ; 0xced1
|
|
ld hl, $4f4b ; todo
|
|
ld de, $da87
|
|
call Func_28a0
|
|
ld bc, $4800
|
|
ld a, [$da88]
|
|
call LoadOAMData
|
|
ld bc, $473b
|
|
ld a, $8f
|
|
call LoadOAMData
|
|
call Func_926
|
|
rst $10
|
|
ld a, $1
|
|
ld [$d8e9], a
|
|
ld b, $b4
|
|
.asm_cef6
|
|
push bc
|
|
xor a
|
|
ld [$ffb2], a
|
|
.asm_cefa
|
|
ld b, $2
|
|
ld c, $56
|
|
ld a, [$ff00+c]
|
|
and b
|
|
jr z, .asm_cf09
|
|
ld a, [$ffb2]
|
|
and a
|
|
jr z, .asm_cefa
|
|
jr .asm_cf0e
|
|
.asm_cf09
|
|
call Func_1c50
|
|
jr .asm_cf40
|
|
.asm_cf0e
|
|
ld hl, $4f4b
|
|
ld de, $da87
|
|
call Func_28a9
|
|
jr nc, .asm_cf40
|
|
ld bc, $4800
|
|
ld a, [$da88]
|
|
call LoadOAMData
|
|
ld bc, $473b
|
|
ld a, $8f
|
|
call LoadOAMData
|
|
call Func_926
|
|
call Func_1ca1
|
|
ld a, [$da89]
|
|
cp $6
|
|
jr nz, .asm_cf40
|
|
ld hl, $4f4b ; todo
|
|
ld de, $da87
|
|
call Func_28a0
|
|
.asm_cf40
|
|
pop bc
|
|
ld a, [$d8ea]
|
|
cp $0
|
|
ret z
|
|
dec b
|
|
jr nz, .asm_cef6
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$cf4b,$cf58 - $cf4b
|
|
|
|
Func_cf58: ; 0xcf58
|
|
cp $5
|
|
ret z
|
|
push af
|
|
ld de, $0002
|
|
call PlaySoundEffect
|
|
call ClearOAMBuffer
|
|
rst $10
|
|
pop af
|
|
ld bc, $473b ; todo
|
|
add $8f
|
|
call LoadOAMData
|
|
.asm_cf6f
|
|
rst $10
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_cf6f
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_cf7d: ; 0xcf7d
|
|
ld a, [$d809]
|
|
ld b, a
|
|
ld a, [$da85]
|
|
bit 6, b
|
|
jr z, .asm_cf95
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$da85], a
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_cf95
|
|
bit 7, b
|
|
ret z
|
|
cp $1
|
|
ret z
|
|
inc a
|
|
ld [$da85], a
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_cfa6: ; 0xcfa6
|
|
ld bc, $473b
|
|
ld a, $87
|
|
call LoadOAMData
|
|
ld a, [$d8f0]
|
|
and a
|
|
jr z, .asm_cfb6
|
|
ld a, $2
|
|
.asm_cfb6
|
|
ld e, a
|
|
ld a, [$d86e]
|
|
add e
|
|
xor $3
|
|
add $8a
|
|
call LoadOAMData
|
|
ld a, [$da85]
|
|
add $88
|
|
call LoadOAMData
|
|
ret
|
|
|
|
Func_cfcb: ; 0xcfcb
|
|
ld a, e
|
|
ld [$ff8c], a
|
|
ld a, d
|
|
ld [$ff8d], a
|
|
push hl
|
|
ld b, $5
|
|
.asm_cfd4
|
|
ld a, [$ff8c]
|
|
ld e, a
|
|
ld a, [$ff8d]
|
|
ld d, a
|
|
call Func_d005
|
|
call Func_d017
|
|
jr c, .asm_cfe5
|
|
dec b
|
|
jr nz, .asm_cfd4
|
|
.asm_cfe5
|
|
inc b
|
|
pop de
|
|
ld hl, $fff3
|
|
add hl, de
|
|
ld a, $5
|
|
.asm_cfed
|
|
cp b
|
|
ret c
|
|
push af
|
|
jr nz, .asm_cff8
|
|
ld a, [$ff8c]
|
|
ld l, a
|
|
ld a, [$ff8d]
|
|
ld h, a
|
|
.asm_cff8
|
|
ld c, $d
|
|
.asm_cffa
|
|
ld a, [hld]
|
|
ld [de], a
|
|
dec de
|
|
dec c
|
|
jr nz, .asm_cffa
|
|
pop af
|
|
dec a
|
|
jr nz, .asm_cfed
|
|
ret
|
|
|
|
Func_d005: ; 0xd005
|
|
ld c, $7
|
|
.asm_d007
|
|
ld a, [de]
|
|
cp [hl]
|
|
jr nz, .asm_d010
|
|
dec de
|
|
dec hl
|
|
dec c
|
|
jr nz, .asm_d007
|
|
.asm_d010
|
|
ld a, c
|
|
ld [$ff8e], a
|
|
call Func_d035
|
|
ret
|
|
|
|
Func_d017: ; 0xd017
|
|
ld c, $6
|
|
.asm_d019
|
|
ld a, [de]
|
|
cp [hl]
|
|
jr c, .asm_d02b
|
|
jr nz, .asm_d030
|
|
dec de
|
|
dec hl
|
|
dec c
|
|
jr nz, .asm_d019
|
|
ld a, [$ff8e]
|
|
and a
|
|
jr nz, .asm_d02b
|
|
ld b, $5
|
|
.asm_d02b
|
|
call Func_d035
|
|
scf
|
|
ret
|
|
.asm_d030
|
|
call Func_d035
|
|
and a
|
|
ret
|
|
|
|
Func_d035: ; 0xd035
|
|
ld a, e
|
|
sub c
|
|
ld e, a
|
|
jr nc, .asm_d03b
|
|
dec d
|
|
.asm_d03b
|
|
ld a, l
|
|
sub c
|
|
ld l, a
|
|
jr nc, .asm_d041
|
|
dec h
|
|
.asm_d041
|
|
ret
|
|
|
|
Func_d042: ; 0xd042
|
|
ld a, [hJoypadState]
|
|
ld [$da86], a
|
|
ld b, a
|
|
ld a, $80
|
|
bit BIT_D_LEFT, b
|
|
jr z, .asm_d052
|
|
ld a, $7f
|
|
jr .asm_d058
|
|
.asm_d052
|
|
bit BIT_D_RIGHT, b
|
|
jr z, .asm_d058
|
|
ld a, $10
|
|
.asm_d058
|
|
ld [$d8a7], a
|
|
ld a, $e0
|
|
ld [$d8aa], a
|
|
ld a, $30
|
|
ld hl, $63c0
|
|
ld de, $c280
|
|
ld bc, $0040
|
|
call Func_666
|
|
ld a, $0
|
|
ld hl, $9840
|
|
ld de, $c2c0
|
|
ld bc, $01c0
|
|
call LoadVRAMData
|
|
ld a, $30
|
|
ld hl, $6280
|
|
ld de, $c480
|
|
ld bc, $0040
|
|
call Func_666
|
|
call Func_d6b6
|
|
call Func_d0e3
|
|
ret c
|
|
ld a, [$da86]
|
|
bit 2, a
|
|
jr z, .asm_d0a2
|
|
ld de, $da06
|
|
call Func_d107
|
|
call Func_d0f5
|
|
ret c
|
|
.asm_d0a2
|
|
ld a, $30
|
|
ld hl, $5bc0 ; todo
|
|
ld de, $c280
|
|
ld bc, $0040
|
|
call Func_666
|
|
ld a, $0
|
|
ld hl, $9c40
|
|
ld de, $c2c0
|
|
ld bc, $01c0
|
|
call LoadVRAMData
|
|
ld a, $30
|
|
ld hl, $5a80 ; todo
|
|
ld de, $c480
|
|
ld bc, $0040
|
|
call Func_666
|
|
call Func_d6b6
|
|
call Func_d0e3
|
|
ret c
|
|
ld a, [$da86]
|
|
bit 2, a
|
|
ret z
|
|
ld de, $da47
|
|
call Func_d107
|
|
call Func_d0f5
|
|
ret
|
|
|
|
Func_d0e3: ; 0xd0e3
|
|
ld a, $2a
|
|
ld hl, $6200
|
|
call Func_1a21
|
|
ld a, [$d86d]
|
|
and a
|
|
ret z
|
|
call Func_cf58
|
|
scf
|
|
ret
|
|
|
|
Func_d0f5: ; 0xd0f5
|
|
ld a, $29
|
|
ld hl, $7b00
|
|
call Func_1a21
|
|
ld a, [$d86d]
|
|
and a
|
|
ret z
|
|
call Func_cf58
|
|
scf
|
|
ret
|
|
|
|
Func_d107: ; 0xd107
|
|
ld hl, $c280
|
|
ld a, $c0
|
|
ld b, $20
|
|
.asm_d10e
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_d10e
|
|
ld hl, $c280
|
|
ld b, $5
|
|
.asm_d136
|
|
ld c, $4
|
|
.asm_d138
|
|
ld a, [de]
|
|
swap a
|
|
call Func_d159
|
|
ld a, [de]
|
|
call Func_d159
|
|
inc de
|
|
inc hl
|
|
dec c
|
|
jr nz, .asm_d138
|
|
ld a, l
|
|
add $4c
|
|
ld l, a
|
|
jr nc, .asm_d14e
|
|
inc h
|
|
.asm_d14e
|
|
ld a, e
|
|
add $9
|
|
ld e, a
|
|
jr nc, .asm_d155
|
|
inc d
|
|
.asm_d155
|
|
dec b
|
|
jr nz, .asm_d136
|
|
ret
|
|
|
|
Func_d159: ; 0xd159
|
|
and $f
|
|
sla a
|
|
sla a
|
|
xor $80
|
|
ld [hli], a
|
|
inc a
|
|
ld [hli], a
|
|
inc a
|
|
push bc
|
|
push hl
|
|
ld bc, $001e
|
|
add hl, bc
|
|
ld [hli], a
|
|
inc a
|
|
ld [hli], a
|
|
pop hl
|
|
pop bc
|
|
ret
|
|
|
|
ExitHighScoresScreen: ; 0xd171
|
|
call Func_cb5
|
|
call Func_576
|
|
ld hl, $ff9f
|
|
res 6, [hl]
|
|
ld hl, $ffff
|
|
res 1, [hl]
|
|
ld a, SCREEN_TITLESCREEN
|
|
ld [wCurrentScreen], a
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_d18b: ; 0xd18b
|
|
ld a, [hPressedButtons]
|
|
ld b, a
|
|
ld a, [$da81]
|
|
ld e, a
|
|
sla e
|
|
sla e
|
|
add e
|
|
sla e
|
|
add e
|
|
ld e, a
|
|
ld a, [$da80]
|
|
add e
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, wRedHighScore1Name
|
|
ld a, [$da83]
|
|
and a
|
|
jr z, .asm_d1ae
|
|
ld hl, wBlueHighScore1Name
|
|
.asm_d1ae
|
|
add hl, de
|
|
ld a, [hl]
|
|
bit 4, b
|
|
jr z, .asm_d1bd
|
|
inc a
|
|
cp $38
|
|
jr nz, .asm_d1c7
|
|
ld a, $a
|
|
jr .asm_d1c7
|
|
.asm_d1bd
|
|
bit 5, b
|
|
ret z
|
|
dec a
|
|
cp $9
|
|
jr nz, .asm_d1c7
|
|
ld a, $37
|
|
.asm_d1c7
|
|
ld [hl], a
|
|
call Func_d46f
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_d1d2: ; 0xd1d2
|
|
ld a, [hNewlyPressedButtons]
|
|
ld b, a
|
|
ld a, [$da80]
|
|
bit BIT_A_BUTTON, b
|
|
jr z, .asm_d1fc
|
|
inc a
|
|
cp $3
|
|
jr nz, .asm_d202
|
|
ld de, $0745
|
|
call PlaySoundEffect
|
|
xor a
|
|
ld [$da7f], a
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ld hl, wRedHighScore1Points
|
|
ld de, $a000
|
|
ld bc, $0082
|
|
call Func_f1a
|
|
ret
|
|
.asm_d1fc
|
|
bit 1, b
|
|
ret z
|
|
and a
|
|
ret z
|
|
dec a
|
|
.asm_d202
|
|
ld [$da80], a
|
|
ld a, $20
|
|
ld [$da82], a
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_d211: ; 0xd211
|
|
ld a, [$da7f]
|
|
and a
|
|
ret z
|
|
ld a, [hJoypadState]
|
|
and (D_RIGHT | D_LEFT)
|
|
jr z, .asm_d221
|
|
xor a
|
|
ld [$da82], a
|
|
ret
|
|
.asm_d221
|
|
ld a, [$da82]
|
|
inc a
|
|
ld [$da82], a
|
|
bit 5, a
|
|
ret z
|
|
ld a, [$da81]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $5247 ; todo
|
|
add hl, de
|
|
ld c, [hl]
|
|
ld a, [$da80]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $524c ; todo
|
|
add hl, de
|
|
ld b, [hl]
|
|
ld a, $86
|
|
call LoadOAMData
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$d247,$d24f - $d247
|
|
|
|
Func_d24f: ; 0xd24f
|
|
ld a, [$da84]
|
|
inc a
|
|
cp $28
|
|
jr c, .asm_d258
|
|
xor a
|
|
.asm_d258
|
|
ld [$da84], a
|
|
ld a, [$da83]
|
|
and a
|
|
ld c, $77
|
|
ld a, $95
|
|
ld hl, $527b ; todo
|
|
jr z, .asm_d26d
|
|
ld a, $96
|
|
ld hl, $52a3
|
|
.asm_d26d
|
|
push af
|
|
ld a, [$da84]
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld b, [hl]
|
|
pop af
|
|
call LoadOAMData
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$d27b,$d2cb - $d27b
|
|
|
|
Func_d2cb: ; 0xd2cb
|
|
ld b, $5
|
|
.asm_d2cd
|
|
push bc
|
|
push hl
|
|
dec de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
ld a, l
|
|
add $5
|
|
ld l, a
|
|
ld b, $3
|
|
.asm_d2d9
|
|
ld a, [de]
|
|
call Func_d348
|
|
dec de
|
|
dec hl
|
|
dec b
|
|
jr nz, .asm_d2d9
|
|
pop hl
|
|
push hl
|
|
ld a, l
|
|
add $6
|
|
ld l, a
|
|
ld bc, $0c01
|
|
.asm_d2eb
|
|
ld a, [de]
|
|
swap a
|
|
and $f
|
|
call Func_d30e
|
|
inc hl
|
|
dec b
|
|
ld a, [de]
|
|
and $f
|
|
call Func_d30e
|
|
dec de
|
|
inc hl
|
|
dec b
|
|
jr nz, .asm_d2eb
|
|
xor a
|
|
call Func_d317
|
|
pop hl
|
|
ld bc, hBoardYShift
|
|
add hl, bc
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_d2cd
|
|
ret
|
|
|
|
Func_d30e: ; 0xd30e
|
|
jr nz, Func_d317
|
|
ld a, b
|
|
dec a
|
|
jr z, Func_d317
|
|
ld a, c
|
|
and a
|
|
ret nz
|
|
; fall through
|
|
Func_d317: ; 0xd317
|
|
push de
|
|
push af
|
|
call Func_d336
|
|
pop af
|
|
ld c, $0
|
|
sla a
|
|
add e
|
|
ld [hl], a
|
|
cp $fe
|
|
jr z, .asm_d328
|
|
inc a
|
|
.asm_d328
|
|
push hl
|
|
push af
|
|
ld a, l
|
|
add $20
|
|
ld l, a
|
|
jr nc, .asm_d331
|
|
inc h
|
|
.asm_d331
|
|
pop af
|
|
ld [hl], a
|
|
pop hl
|
|
pop de
|
|
ret
|
|
|
|
Func_d336: ; 0xd336
|
|
ld e, $6c
|
|
ld a, b
|
|
cp $3
|
|
ret z
|
|
cp $6
|
|
ret z
|
|
cp $9
|
|
ret z
|
|
cp $c
|
|
ret z
|
|
ld e, $58
|
|
ret
|
|
|
|
Func_d348: ; 0xd348
|
|
ld c, $0
|
|
sla a
|
|
add $90
|
|
ld [hl], a
|
|
cp $fe
|
|
jr z, .asm_d354
|
|
inc a
|
|
.asm_d354
|
|
push hl
|
|
push af
|
|
ld a, l
|
|
add $20
|
|
ld l, a
|
|
jr nc, .asm_d35d
|
|
inc h
|
|
.asm_d35d
|
|
pop af
|
|
ld [hl], a
|
|
pop hl
|
|
ret
|
|
|
|
Func_d361: ; 0xd361
|
|
ld b, $5
|
|
.asm_d363
|
|
push bc
|
|
push hl
|
|
dec de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
ld a, l
|
|
add $5
|
|
ld l, a
|
|
ld b, $3
|
|
.asm_d36f
|
|
ld a, [de]
|
|
call Func_d3e2
|
|
dec de
|
|
dec hl
|
|
dec b
|
|
jr nz, .asm_d36f
|
|
pop hl
|
|
push hl
|
|
ld a, l
|
|
add $6
|
|
ld l, a
|
|
ld bc, $0c01
|
|
.asm_d381
|
|
ld a, [de]
|
|
swap a
|
|
and $f
|
|
call Func_d3a4
|
|
inc hl
|
|
dec b
|
|
ld a, [de]
|
|
and $f
|
|
call Func_d3a4
|
|
dec de
|
|
inc hl
|
|
dec b
|
|
jr nz, .asm_d381
|
|
xor a
|
|
call Func_d3ad
|
|
pop hl
|
|
ld bc, hBoardYShift
|
|
add hl, bc
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_d363
|
|
ret
|
|
|
|
Func_d3a4: ; 0xd3a4
|
|
jr nz, Func_d3ad
|
|
ld a, b
|
|
dec a
|
|
jr z, Func_d3ad
|
|
ld a, c
|
|
and a
|
|
ret nz
|
|
; fall through
|
|
Func_d3ad: ; 0xd3ad
|
|
push de
|
|
push af
|
|
call Func_d3d0
|
|
pop af
|
|
ld c, $0
|
|
sla a
|
|
add e
|
|
call PutTileInVRAM
|
|
cp $fe
|
|
jr z, .asm_d3c0
|
|
inc a
|
|
.asm_d3c0
|
|
push hl
|
|
push af
|
|
ld a, l
|
|
add $20
|
|
ld l, a
|
|
jr nc, .asm_d3c9
|
|
inc h
|
|
.asm_d3c9
|
|
pop af
|
|
call PutTileInVRAM
|
|
pop hl
|
|
pop de
|
|
ret
|
|
|
|
Func_d3d0: ; 0xd3d0
|
|
ld e, $6c
|
|
ld a, b
|
|
cp $3
|
|
ret z
|
|
cp $6
|
|
ret z
|
|
cp $9
|
|
ret z
|
|
cp $c
|
|
ret z
|
|
ld e, $58
|
|
ret
|
|
|
|
Func_d3e2: ; 0xd3e2
|
|
ld c, $0
|
|
sla a
|
|
add $90
|
|
call PutTileInVRAM
|
|
cp $fe
|
|
jr z, .asm_d3f0
|
|
inc a
|
|
.asm_d3f0
|
|
push hl
|
|
push af
|
|
ld a, l
|
|
add $20
|
|
ld l, a
|
|
jr nc, .asm_d3f9
|
|
inc h
|
|
.asm_d3f9
|
|
pop af
|
|
call PutTileInVRAM
|
|
pop hl
|
|
ret
|
|
|
|
CopyInitialHighScores: ; 0xd3ff
|
|
ld hl, InitialHighScores
|
|
ld de, wRedHighScore1Points
|
|
call CopyInitialHighScoresForStage
|
|
ld hl, InitialHighScores
|
|
ld de, wBlueHighScore1Points
|
|
|
|
CopyInitialHighScoresForStage: ; 0xd40e
|
|
; input: hl = address of high score entries
|
|
; de = destination address for high score entries to be copied
|
|
ld b, $5 ; 5 high score entries to copy
|
|
.copyHighScoreEntry
|
|
ld c, $6 ; high score points are 6 bytes long
|
|
.copyPoints
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .copyPoints
|
|
ld c, $3 ; name is 3 bytes
|
|
.copyName
|
|
ld a, [hli]
|
|
sub $37
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .copyName
|
|
ld c, $4
|
|
.asm_d424 ; TODO: what are these 4 bytes used for?
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .asm_d424
|
|
dec b
|
|
jr nz, .copyHighScoreEntry
|
|
ret
|
|
|
|
INCLUDE "data/initial_high_scores.asm" ; 0xd42e
|
|
|
|
Func_d46f: ; 0xd46f
|
|
ld a, [$da81]
|
|
ld d, a
|
|
sla a
|
|
add d
|
|
ld d, a
|
|
ld e, $0
|
|
srl d
|
|
rr e
|
|
srl d
|
|
rr e
|
|
srl d
|
|
rr e
|
|
ld a, [$da80]
|
|
add e
|
|
ld e, a
|
|
ld hl, $9843
|
|
ld a, [$da83]
|
|
and a
|
|
jr z, .asm_d496
|
|
ld hl, $9c43
|
|
.asm_d496
|
|
add hl, de
|
|
push hl
|
|
ld a, [$da81]
|
|
ld e, a
|
|
sla e
|
|
sla e
|
|
add e
|
|
sla e
|
|
add e
|
|
ld e, a
|
|
ld a, [$da80]
|
|
add e
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, wRedHighScore1Name
|
|
ld a, [$da83]
|
|
and a
|
|
jr z, .asm_d4b8
|
|
ld hl, wBlueHighScore1Name
|
|
.asm_d4b8
|
|
add hl, de
|
|
ld a, [hl]
|
|
sla a
|
|
add $90
|
|
pop hl
|
|
call PutTileInVRAM
|
|
ld de, $0020
|
|
add hl, de
|
|
cp $fe
|
|
jr z, .asm_d4cb
|
|
inc a
|
|
.asm_d4cb
|
|
call PutTileInVRAM
|
|
ret
|
|
|
|
Func_d4cf: ; 0xd4cf
|
|
ld a, [hNewlyPressedButtons]
|
|
ld b, a
|
|
ld a, [$da83]
|
|
bit 4, b
|
|
jr z, .asm_d4e3
|
|
and a
|
|
ret nz
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
jr .asm_d4f0
|
|
.asm_d4e3
|
|
bit 5, b
|
|
ret z
|
|
and a
|
|
ret z
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
jr .asm_d537
|
|
.asm_d4f0
|
|
call ClearOAMBuffer
|
|
call $557b
|
|
ld a, $a5
|
|
ld [$ffa7], a
|
|
xor a
|
|
ld [$ffa6], a
|
|
ld a, $2
|
|
ld [hBoardXShift], a
|
|
ld hl, $ff9e
|
|
set 5, [hl]
|
|
ld b, $27
|
|
.asm_d508
|
|
push bc
|
|
ld a, $27
|
|
sub b
|
|
bit 0, b
|
|
call nz, $5626
|
|
ld hl, $ffa7
|
|
dec [hl]
|
|
dec [hl]
|
|
dec [hl]
|
|
dec [hl]
|
|
ld hl, hBoardXShift
|
|
inc [hl]
|
|
inc [hl]
|
|
inc [hl]
|
|
inc [hl]
|
|
rst $10
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_d508
|
|
xor a
|
|
ld [hBoardXShift], a
|
|
ld hl, $ff9e
|
|
res 5, [hl]
|
|
set 3, [hl]
|
|
ld a, $1
|
|
ld [$da83], a
|
|
call $55d0
|
|
ret
|
|
.asm_d537
|
|
call ClearOAMBuffer
|
|
call $557b
|
|
ld a, $7
|
|
ld [$ffa7], a
|
|
xor a
|
|
ld [$ffa6], a
|
|
ld a, $a0
|
|
ld [hBoardXShift], a
|
|
ld hl, $ff9e
|
|
set 5, [hl]
|
|
res 3, [hl]
|
|
ld b, $27
|
|
.asm_d551
|
|
push bc
|
|
ld a, b
|
|
bit 0, b
|
|
call nz, $5626
|
|
ld hl, $ffa7
|
|
inc [hl]
|
|
inc [hl]
|
|
inc [hl]
|
|
inc [hl]
|
|
ld hl, hBoardXShift
|
|
dec [hl]
|
|
dec [hl]
|
|
dec [hl]
|
|
dec [hl]
|
|
rst $10
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_d551
|
|
xor a
|
|
ld [hBoardXShift], a
|
|
ld hl, $ff9e
|
|
res 5, [hl]
|
|
xor a
|
|
ld [$da83], a
|
|
call $55d0
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$d57b,$d68a - $d57b
|
|
|
|
Func_d68a: ; 0xd68a
|
|
push bc
|
|
ld hl, wPokedexFlags
|
|
ld bc, $9700
|
|
.asm_d691
|
|
bit 1, [hl]
|
|
jr z, .asm_d696
|
|
inc c
|
|
.asm_d696
|
|
inc hl
|
|
dec b
|
|
jr nz, .asm_d691
|
|
ld a, c
|
|
pop bc
|
|
cp NUM_POKEMON
|
|
ret nz
|
|
ld hl, vBGMap0
|
|
add hl, bc
|
|
call Func_d6aa
|
|
ld hl, vBGMap1
|
|
add hl, bc
|
|
; fall through
|
|
Func_d6aa: ; 0xd6aa
|
|
ld a, $56
|
|
call PutTileInVRAM
|
|
inc hl
|
|
ld a, $57
|
|
call PutTileInVRAM
|
|
ret
|
|
|
|
Func_d6b6: ; 0xd6b6
|
|
ld hl, wPokedexFlags
|
|
ld bc, $9700
|
|
.asm_d6bc
|
|
bit 1, [hl]
|
|
jr z, .asm_d6c1
|
|
inc c
|
|
.asm_d6c1
|
|
inc hl
|
|
dec b
|
|
jr nz, .asm_d6bc
|
|
ld a, c
|
|
cp NUM_POKEMON
|
|
ret nz
|
|
ld hl, $c289
|
|
ld a, $56
|
|
ld [hli], a
|
|
ld a, $57
|
|
ld [hli], a
|
|
ret
|
|
|
|
HandleFieldSelectScreen: ; 0xd6d3
|
|
ld a, [wScreenState]
|
|
rst $18
|
|
PointerTable_d6d7: ; 0xd6d7
|
|
dw LoadFieldSelectScreen
|
|
dw ChooseFieldToPlay
|
|
dw ExitFieldSelectScreen
|
|
|
|
LoadFieldSelectScreen: ; 0xd6dd
|
|
ld a, $43
|
|
ld [$ff9e], a
|
|
ld a, $e4
|
|
ld [$d80c], a
|
|
ld a, $d2
|
|
ld [$d80d], a
|
|
ld [$d80e], a
|
|
xor a
|
|
ld [hBoardXShift], a
|
|
ld [hBoardYShift], a
|
|
ld hl, FieldSelectGfxPointers
|
|
ld a, [hGameBoyColorFlag]
|
|
call LoadVideoData
|
|
call ClearOAMBuffer
|
|
ld a, $8
|
|
ld [wFieldSelectBlinkingBorderFrame], a
|
|
call Func_b66
|
|
ld a, $12
|
|
call Func_52c
|
|
ld de, $0003
|
|
call Func_490
|
|
call Func_588
|
|
call Func_bbe
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
FieldSelectGfxPointers: ; 0xd71c
|
|
dw FieldSelectGfx_GameBoy
|
|
dw FieldSelectGfx_GameBoyColor
|
|
|
|
FieldSelectGfx_GameBoy: ; 0xd720
|
|
dw FieldSelectScreenGfx
|
|
db Bank(FieldSelectScreenGfx)
|
|
dw vTiles1 - $100
|
|
dw $3400
|
|
|
|
dw FieldSelectTilemap
|
|
db Bank(FieldSelectTilemap)
|
|
dw vBGMap0
|
|
dw $900
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
FieldSelectGfx_GameBoyColor: ; 0xd730
|
|
dw FieldSelectScreenGfx
|
|
db Bank(FieldSelectScreenGfx)
|
|
dw vTiles1 - $100
|
|
dw $3400
|
|
|
|
dw FieldSelectTilemap
|
|
db Bank(FieldSelectTilemap)
|
|
dw vBGMap0
|
|
dw $900
|
|
|
|
dw $7c00
|
|
db $2C
|
|
dw vBGMap0
|
|
dw $902
|
|
|
|
dw $5100
|
|
db $37
|
|
dw $0000
|
|
dw $91
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
ChooseFieldToPlay: ; 0xd74e
|
|
call MoveFieldSelectCursor
|
|
ld hl, $583d ; todo
|
|
call AnimateBlinkingFieldSelectBorder
|
|
ld a, [hNewlyPressedButtons]
|
|
and (A_BUTTON | B_BUTTON)
|
|
ret z
|
|
ld [$d8f6], a
|
|
ld a, $18 ; number of frames to blink the border after selecting the Field
|
|
ld [wFieldSelectBlinkingBorderTimer], a
|
|
ld a, $1
|
|
ld [wFieldSelectBlinkingBorderFrame], a
|
|
ld de, $0001
|
|
call PlaySoundEffect
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
ExitFieldSelectScreen: ; 0xd774
|
|
ld a, [$d8f6] ; this holds the button that was pressed (A or B)
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .didntPressA
|
|
ld hl, $5846
|
|
call AnimateBlinkingFieldSelectBorder
|
|
ld a, [wFieldSelectBlinkingBorderTimer]
|
|
dec a
|
|
ld [wFieldSelectBlinkingBorderTimer], a
|
|
ret nz
|
|
.didntPressA
|
|
ld a, [hJoypadState]
|
|
push af
|
|
call Func_cb5
|
|
call Func_576
|
|
ld a, [$d8f6]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .pressedB
|
|
ld a, [wSelectedFieldIndex]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, StartingStages
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wCurrentStage], a
|
|
pop af
|
|
xor a
|
|
ld [$d7c2], a
|
|
ld hl, $d300
|
|
ld de, $a268
|
|
ld bc, $04c3
|
|
call Func_f1a
|
|
xor a
|
|
ld [$d7c1], a
|
|
; Start a round of Pinball! Yayy
|
|
ld a, SCREEN_PINBALL_GAME
|
|
ld [wCurrentScreen], a
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
.pressedB
|
|
pop af
|
|
ld a, SCREEN_TITLESCREEN
|
|
ld [wCurrentScreen], a
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
StartingStages: ; 0xd7d1
|
|
; wSelectedFieldIndex is used to index this array
|
|
db STAGE_RED_FIELD_BOTTOM, STAGE_BLUE_FIELD_BOTTOM
|
|
|
|
MoveFieldSelectCursor: ; 0x57d3
|
|
; When the player presses Right or Left, the stage is
|
|
; illuminated with a blinking border. This function keeps tracks
|
|
; of which field is currently selected.
|
|
ld a, [hPressedButtons]
|
|
ld b, a
|
|
ld a, [wSelectedFieldIndex]
|
|
bit BIT_D_LEFT, b
|
|
jr z, .didntPressLeft
|
|
and a
|
|
ret z ; if cursor is already hovering over Red stage, don't do anything
|
|
dec a ; move cursor over Red stage
|
|
ld [wSelectedFieldIndex], a
|
|
ld de, $003c
|
|
call PlaySoundEffect
|
|
ret
|
|
.didntPressLeft
|
|
bit BIT_D_RIGHT, b
|
|
ret z
|
|
cp $1
|
|
ret z ; if cursor is already hovering over Blue stage, don't do anything
|
|
inc a ; move cursor over Red stage
|
|
ld [wSelectedFieldIndex], a
|
|
ld de, $003d
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
AnimateBlinkingFieldSelectBorder: ; 0xd7fb
|
|
; This makes the border of the currently-selected Field blink in the Field Select screen.
|
|
push hl
|
|
ld a, [wSelectedFieldIndex]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $584f ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [$d915]
|
|
sla a
|
|
ld e, a
|
|
ld d, $0
|
|
pop hl
|
|
push hl
|
|
add hl, de
|
|
ld a, [hl]
|
|
call LoadOAMData
|
|
ld a, [wFieldSelectBlinkingBorderFrame]
|
|
dec a
|
|
jr nz, .asm_d838
|
|
inc hl
|
|
inc hl
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_d82b
|
|
ld a, [$d915]
|
|
inc a
|
|
.asm_d82b
|
|
ld [$d915], a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
pop hl
|
|
push hl
|
|
inc hl
|
|
add hl, bc
|
|
ld a, [hl]
|
|
.asm_d838
|
|
ld [wFieldSelectBlinkingBorderFrame], a
|
|
pop hl
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$d83d,$d853 - $d83d
|
|
|
|
HandlePinballGame: ; 0xd853
|
|
ld a, [wScreenState]
|
|
rst $18
|
|
PointerTable_d857: ; 0xd857
|
|
dw Func_d861
|
|
dw Func_d87f
|
|
dw Func_d909
|
|
dw Func_da36
|
|
dw Func_dab2
|
|
|
|
Func_d861: ; 0xd861
|
|
xor a
|
|
ld [$d908], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(InitializeStage)
|
|
ld hl, InitializeStage
|
|
call BankSwitch
|
|
call Func_30e8
|
|
ld a, $1
|
|
ld [$d85d], a
|
|
ld [$d4aa], a
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
Func_d87f: ; 0xd87f
|
|
ld a, $67
|
|
ld [$ff9e], a
|
|
ld a, $e4
|
|
ld [$d80c], a
|
|
ld a, $e1
|
|
ld [$d80d], a
|
|
ld a, $e4
|
|
ld [$d80e], a
|
|
ld a, [$d7ab]
|
|
ld [hBoardXShift], a
|
|
xor a
|
|
ld [hBoardYShift], a
|
|
ld a, $7
|
|
ld [$ffa7], a
|
|
ld a, $83
|
|
ld [$ffa2], a
|
|
ld [$ffa8], a
|
|
ld a, $ff
|
|
ld [$ffaf], a
|
|
ld hl, $ff9f
|
|
set 6, [hl]
|
|
ld hl, $ffff
|
|
set 1, [hl]
|
|
ld a, $1
|
|
ld [$ffb0], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartBallForStage)
|
|
ld hl, StartBallForStage
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e6c2)
|
|
ld hl, Func_e6c2
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_ed5e)
|
|
ld hl, Func_ed5e
|
|
call BankSwitch
|
|
call ClearOAMBuffer
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_84b7)
|
|
ld hl, Func_84b7
|
|
call BankSwitch
|
|
ld a, [$d849]
|
|
and a
|
|
call nz, Func_e5d
|
|
ld a, $1
|
|
ld [$d4aa], a
|
|
xor a
|
|
ld [$d7c1], a
|
|
call Func_b66
|
|
call Func_588
|
|
call Func_bbe
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
Func_d909: ; 0xd909
|
|
; main loop for stage logic
|
|
xor a
|
|
ld [wFlipperCollision], a
|
|
ld [$d7eb], a
|
|
call ApplyGravityToBall
|
|
call LimitBallVelocity
|
|
xor a
|
|
ld [$d7e9], a
|
|
call HandleTilts
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ld [$ff8a], a
|
|
ld a, Bank(HandleFlippers)
|
|
ld hl, HandleFlippers
|
|
call nz, BankSwitch ; only perform flipper routines on the lower-half of stages
|
|
ld a, [wFlipperCollision]
|
|
and a
|
|
ld a, [$d7ea]
|
|
push af
|
|
call Func_22b5 ; collision stuff
|
|
pop af
|
|
jr z, .noFlipperCollision
|
|
ld [$d7ea], a
|
|
.noFlipperCollision
|
|
call Func_2720 ; not collision-related
|
|
call Func_281c ; not collision-related
|
|
ld hl, wKeyConfigMenu
|
|
call IsKeyPressed
|
|
jr z, .didntPressMenuKey
|
|
ld de, $034c
|
|
call PlaySoundEffect
|
|
ld [$ff8a], a
|
|
ld a, Bank(HandleInGameMenu)
|
|
ld hl, HandleInGameMenu
|
|
call BankSwitch
|
|
jp z, SaveGame
|
|
.didntPressMenuKey
|
|
ld a, [$d7e9] ; check for collision flag
|
|
and a
|
|
jr z, .asm_d9a2
|
|
call ApplyTiltForces
|
|
call LoadBallVelocity
|
|
ld a, [$d7ea]
|
|
call Func_21e7
|
|
call Func_222b
|
|
ld a, [wFlipperCollision]
|
|
and a
|
|
jr z, .asm_d993
|
|
ld hl, $d7bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, e
|
|
sub l
|
|
ld e, a
|
|
ld a, d
|
|
sbc h
|
|
ld d, a
|
|
ld hl, $d7ba
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, c
|
|
add l
|
|
ld c, a
|
|
ld a, b
|
|
adc h
|
|
ld b, a
|
|
jr .asm_d999
|
|
.asm_d993
|
|
ld a, [$d7f8]
|
|
and a
|
|
jr nz, .asm_d9a2
|
|
.asm_d999
|
|
ld a, [$d7ea]
|
|
call Func_21e5
|
|
call SetBallVelocity
|
|
.asm_d9a2
|
|
call MoveBallPosition
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_ece9)
|
|
ld hl, Func_ece9
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_84b7)
|
|
ld hl, Func_84b7
|
|
call BankSwitch
|
|
call Func_33e3
|
|
ld a, [$d5cb]
|
|
and a
|
|
jr nz, .asm_d9e9
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_85c7)
|
|
ld hl, Func_85c7
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8650)
|
|
ld hl, Func_8650
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8645)
|
|
ld hl, Func_8645
|
|
call BankSwitch
|
|
call Func_dba9
|
|
call Func_dc7c
|
|
call Func_dcb4
|
|
.asm_d9e9
|
|
ld a, [$d57d]
|
|
and a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_86a4)
|
|
ld hl, Func_86a4
|
|
call nz, BankSwitch
|
|
ld a, [$d4ae]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d4ae], a
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
SaveGame: ; 0xda05
|
|
ld de, $0000
|
|
call Func_490
|
|
ld bc, $0004
|
|
call Func_93f
|
|
call Func_cb5
|
|
ld a, [$d849]
|
|
and a
|
|
call nz, Func_e5d
|
|
call Func_576
|
|
ld hl, $ff9f
|
|
res 6, [hl]
|
|
ld hl, $ffff
|
|
res 1, [hl]
|
|
xor a
|
|
ld [$d4aa], a
|
|
ld a, SCREEN_TITLESCREEN
|
|
ld [wCurrentScreen], a
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_da36: ; 0xda36
|
|
xor a
|
|
ld [hJoypadState], a
|
|
ld [hNewlyPressedButtons], a
|
|
ld [hPressedButtons], a
|
|
ld [wFlipperCollision], a
|
|
ld [$d7eb], a
|
|
xor a
|
|
ld [$d7e9], a
|
|
ld [$d548], a
|
|
ld [$d549], a
|
|
call HandleTilts
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ld [$ff8a], a
|
|
ld a, Bank(HandleFlippers)
|
|
ld hl, HandleFlippers
|
|
call nz, BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_84b7)
|
|
ld hl, Func_84b7
|
|
call BankSwitch
|
|
call Func_33e3
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_85c7)
|
|
ld hl, Func_85c7
|
|
call BankSwitch
|
|
ld a, [$d5ca]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4c9]
|
|
and a
|
|
jr z, .asm_daa9
|
|
ld a, [$d49c]
|
|
cp $2
|
|
jr z, .asm_daa9
|
|
call Func_f533
|
|
ld a, [$d49c]
|
|
and a
|
|
jr z, .asm_daa9
|
|
ld a, $2
|
|
ld [$d49c], a
|
|
ld [$d4aa], a
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5dc
|
|
ld de, $28db
|
|
call Func_32aa
|
|
ret
|
|
.asm_daa9
|
|
xor a
|
|
ld [$d49c], a
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
Func_dab2: ; 0xdab2
|
|
xor a
|
|
ld [$d803], a
|
|
ld a, [$d616]
|
|
and a
|
|
jp nz, Func_db5d
|
|
ld a, [$d495]
|
|
and a
|
|
jr nz, .asm_dae6
|
|
ld a, [$d496]
|
|
and a
|
|
jr nz, .asm_db28
|
|
call Func_cb5
|
|
ld a, [$d849]
|
|
and a
|
|
call z, Func_e5d
|
|
call Func_576
|
|
ld hl, $ff9f
|
|
res 6, [hl]
|
|
ld hl, $ffff
|
|
res 1, [hl]
|
|
ld a, $1
|
|
ld [wScreenState], a
|
|
ret
|
|
.asm_dae6
|
|
ld de, $0000
|
|
call Func_490
|
|
ld bc, $0004
|
|
call Func_93f
|
|
call Func_cb5
|
|
ld a, [$d849]
|
|
and a
|
|
call nz, Func_e5d
|
|
call Func_576
|
|
ld hl, $ff9f
|
|
res 6, [hl]
|
|
ld hl, $ffff
|
|
res 1, [hl]
|
|
ld a, [wCurrentStage]
|
|
ld [$d4ad], a
|
|
ld a, [$d4af]
|
|
ld [$d4b0], a
|
|
ld a, [$d497]
|
|
ld [wCurrentStage], a
|
|
xor a
|
|
ld [$d496], a
|
|
ld [$d495], a
|
|
ld a, $0
|
|
ld [wScreenState], a
|
|
ret
|
|
.asm_db28
|
|
ld de, $0000
|
|
call Func_490
|
|
ld bc, $0004
|
|
call Func_93f
|
|
call Func_cb5
|
|
ld a, [$d849]
|
|
and a
|
|
call nz, Func_e5d
|
|
call Func_576
|
|
ld hl, $ff9f
|
|
res 6, [hl]
|
|
ld hl, $ffff
|
|
res 1, [hl]
|
|
ld a, [$d4ad]
|
|
ld [wCurrentStage], a
|
|
ld a, [$d4b0]
|
|
ld [$d4af], a
|
|
ld a, $1
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_db5d: ; 0xdb5d
|
|
xor a
|
|
ld [$d616], a
|
|
ld de, $0000
|
|
call Func_490
|
|
ld bc, $0004
|
|
call Func_93f
|
|
call Func_cb5
|
|
call Func_576
|
|
ld hl, $ff9f
|
|
res 6, [hl]
|
|
ld hl, $ffff
|
|
res 1, [hl]
|
|
xor a
|
|
ld [$d4aa], a
|
|
ld a, [wCurrentStage]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5b99 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$da83], a
|
|
ld a, $7
|
|
ld [wCurrentScreen], a
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$db99,$dba9 - $db99
|
|
|
|
Func_dba9: ; 0xdba9
|
|
ld a, $85
|
|
ld [$c644], a
|
|
ld a, [$d49d]
|
|
xor $3
|
|
inc a
|
|
add $86
|
|
ld [$c645], a
|
|
ret
|
|
|
|
Func_dbba: ; 0xdbba
|
|
ld a, $1
|
|
ld [$d4a1], a
|
|
ld a, $ff
|
|
ld [$d4a2], a
|
|
ld a, $3b
|
|
ld [$d4a3], a
|
|
ld a, $14
|
|
ld [$d4a4], a
|
|
ld a, $2
|
|
ld [$d4a5], a
|
|
ret
|
|
|
|
Func_dbd4: ; 0xdbd4
|
|
ld a, [$d4a3]
|
|
ld [$d4a6], a
|
|
ld a, [$d4a4]
|
|
ld [$d4a7], a
|
|
ld a, [$d4a5]
|
|
ld [$d4a8], a
|
|
ld a, $0
|
|
ld [$d4a1], a
|
|
ld a, $ff
|
|
ld [$d4a2], a
|
|
ld a, $3b
|
|
ld [$d4a3], a
|
|
ld a, $3c
|
|
ld [$d4a4], a
|
|
ld a, $ff
|
|
ld [$d4a5], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$dc00,$dc49 - $dc00
|
|
|
|
Func_dc49: ; 0xdc49
|
|
ld a, [wCurrentStage]
|
|
rst $18
|
|
PointerTable_dc4d: ; 0xdc4d
|
|
dw $5D76
|
|
dw $5D76
|
|
dw $5E4E
|
|
dw $5E4E
|
|
dw $5E4F
|
|
dw $5E4F
|
|
dw $5F1A
|
|
dw $5F1A
|
|
dw $5F7E
|
|
dw $5F7E
|
|
dw $5FE2
|
|
dw $5FE2
|
|
dw $6056
|
|
dw $6056
|
|
dw $608b
|
|
dw $608b
|
|
|
|
INCBIN "baserom.gbc",$dc6d,$dc7c - $dc6d
|
|
|
|
Func_dc7c: ; 0xdc7c
|
|
ld hl, $c640
|
|
ld a, $83
|
|
ld [hli], a
|
|
ld a, $81
|
|
ld [hli], a
|
|
ld a, $81
|
|
ld [hl], a
|
|
ld a, [$d460]
|
|
call ConvertHexByteToDecWord
|
|
ld hl, $c641
|
|
ld c, $1
|
|
ld a, d
|
|
call .asm_dca0
|
|
ld a, e
|
|
swap a
|
|
call .asm_dca0
|
|
ld a, e
|
|
ld c, $0
|
|
.asm_dca0
|
|
and $f
|
|
jr nz, .asm_dca7
|
|
ld a, c
|
|
and a
|
|
ret nz
|
|
.asm_dca7
|
|
ld c, $0
|
|
add $86
|
|
ld [hli], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$dcad,$dcb4 - $dcad
|
|
|
|
Func_dcb4: ; 0xdcb4
|
|
ld a, [$d517]
|
|
cp $f
|
|
ld a, $81
|
|
jr nz, .asm_dcbf
|
|
ld a, $84
|
|
.asm_dcbf
|
|
ld [$c646], a
|
|
ret
|
|
|
|
Func_dcc3: ; 0xdcc3
|
|
xor a
|
|
ld [$d4c8], a
|
|
ld a, [$d47e]
|
|
cp $2
|
|
jr nc, .asm_dcdd
|
|
ld a, $2a
|
|
ld hl, Func_c400
|
|
ld de, $8400
|
|
ld bc, $0200
|
|
call Func_735
|
|
ret
|
|
.asm_dcdd
|
|
cp $3
|
|
jr nc, .asm_dcf0
|
|
ld a, $2a
|
|
ld hl, $4a00
|
|
ld de, $8400
|
|
ld bc, $0200
|
|
call Func_735
|
|
ret
|
|
.asm_dcf0
|
|
cp $5
|
|
jr nc, .asm_dd03
|
|
ld a, $2a
|
|
ld hl, $4c00
|
|
ld de, $8400
|
|
ld bc, $0200
|
|
call Func_735
|
|
ret
|
|
.asm_dd03
|
|
ld a, $2a
|
|
ld hl, $4e00
|
|
ld de, $8400
|
|
ld bc, $0200
|
|
call Func_735
|
|
ret
|
|
|
|
Func_dd12: ; 0xdd12
|
|
ld a, $1
|
|
ld [$d4c8], a
|
|
ld a, [$d47e]
|
|
cp $2
|
|
jr nc, .asm_dd2d
|
|
ld a, $2a
|
|
ld hl, $5000
|
|
ld de, $8400
|
|
ld bc, $0200
|
|
call Func_735
|
|
ret
|
|
.asm_dd2d
|
|
cp $3
|
|
jr nc, .asm_dd40
|
|
ld a, $2a
|
|
ld hl, $5200
|
|
ld de, $8400
|
|
ld bc, $0200
|
|
call Func_735
|
|
ret
|
|
.asm_dd40
|
|
cp $5
|
|
jr nc, .asm_dd53
|
|
ld a, $2a
|
|
ld hl, $5400
|
|
ld de, $8400
|
|
ld bc, $0200
|
|
call Func_735
|
|
ret
|
|
.asm_dd53
|
|
ld a, $2a
|
|
ld hl, $5600
|
|
ld de, $8400
|
|
ld bc, $0200
|
|
call Func_735
|
|
ret
|
|
|
|
Func_dd62: ; 0xdd62
|
|
ld a, $2
|
|
ld [$d4c8], a
|
|
ld a, $2a
|
|
ld hl, $5800
|
|
ld de, $8400
|
|
ld bc, $0200
|
|
call Func_735
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$dd76,$e0fe - $dd76
|
|
|
|
HandleFlippers: ; 0xe0fe
|
|
xor a
|
|
ld [wFlipperCollision], a
|
|
ld [$ffbf], a
|
|
ld [$d7ba], a
|
|
ld [$d7bb], a
|
|
call Func_e118
|
|
call Func_e1f0
|
|
ld a, [wFlipperCollision]
|
|
and a
|
|
call nz, HandleFlipperCollision
|
|
ret
|
|
|
|
Func_e118: ; 0xe118
|
|
call PlayFlipperSoundIfPressed
|
|
ld a, [$d7af]
|
|
ld [$d7b6], a
|
|
ld a, [$d7b3]
|
|
ld [$d7b7], a
|
|
ld hl, wKeyConfigLeftFlipper
|
|
call IsKeyPressed2
|
|
ld hl, $fccd
|
|
jr z, .asm_e13b
|
|
ld a, [$d7be]
|
|
and a
|
|
jr nz, .asm_e13b
|
|
ld hl, $0333
|
|
.asm_e13b
|
|
ld a, [$d7af]
|
|
and a
|
|
jr nz, .asm_e145
|
|
bit 7, h
|
|
jr nz, .asm_e14d
|
|
.asm_e145
|
|
cp $f
|
|
jr nz, .asm_e150
|
|
bit 7, h
|
|
jr nz, .asm_e150
|
|
.asm_e14d
|
|
ld hl, $0000
|
|
.asm_e150
|
|
ld a, l
|
|
ld [$d7b0], a
|
|
ld a, h
|
|
ld [$d7b1], a
|
|
ld a, [$d7ae]
|
|
ld c, a
|
|
ld a, [$d7af]
|
|
ld b, a
|
|
add hl, bc
|
|
bit 7, h
|
|
jr nz, .asm_e16f
|
|
ld a, h
|
|
cp $10
|
|
jr c, .asm_e172
|
|
ld hl, $0f00
|
|
jr .asm_e172
|
|
.asm_e16f
|
|
ld hl, $0000
|
|
.asm_e172
|
|
ld a, l
|
|
ld [$d7ae], a
|
|
ld a, h
|
|
ld [$d7af], a
|
|
ld hl, wKeyConfigRightFlipper
|
|
call IsKeyPressed2
|
|
ld hl, $fccd
|
|
jr z, .asm_e18e
|
|
ld a, [$d7be]
|
|
and a
|
|
jr nz, .asm_e18e
|
|
ld hl, $0333
|
|
.asm_e18e
|
|
ld a, [$d7b3]
|
|
and a
|
|
jr nz, .asm_e198
|
|
bit 7, h
|
|
jr nz, .asm_e1a0
|
|
.asm_e198
|
|
cp $f
|
|
jr nz, .asm_e1a3
|
|
bit 7, h
|
|
jr nz, .asm_e1a3
|
|
.asm_e1a0
|
|
ld hl, $0000
|
|
.asm_e1a3
|
|
ld a, l
|
|
ld [$d7b4], a
|
|
ld a, h
|
|
ld [$d7b5], a
|
|
ld a, [$d7b2]
|
|
ld c, a
|
|
ld a, [$d7b3]
|
|
ld b, a
|
|
add hl, bc
|
|
bit 7, h
|
|
jr nz, .asm_e1c2
|
|
ld a, h
|
|
cp $10
|
|
jr c, .asm_e1c5
|
|
ld hl, $0f00
|
|
jr .asm_e1c5
|
|
.asm_e1c2
|
|
ld hl, $0000
|
|
.asm_e1c5
|
|
ld a, l
|
|
ld [$d7b2], a
|
|
ld a, h
|
|
ld [$d7b3], a
|
|
ret
|
|
|
|
PlayFlipperSoundIfPressed: ; 0xe1ce
|
|
ld a, [$d7be]
|
|
and a
|
|
ret nz
|
|
ld hl, wKeyConfigLeftFlipper
|
|
call IsKeyPressed
|
|
jr z, .asm_e1e2
|
|
ld de, $000c
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_e1e2
|
|
ld hl, wKeyConfigRightFlipper
|
|
call IsKeyPressed
|
|
ret z
|
|
ld de, $000c
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_e1f0: ; 0xe1f0
|
|
ld a, [wBallXPos + 1]
|
|
cp $50 ; which half of the screen is the ball in?
|
|
jp nc, Func_e226 ; right half of screen
|
|
ld hl, wBallXPos
|
|
ld c, $ba
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [$d7b6]
|
|
ld [$ffc2], a
|
|
ld a, [$d7af]
|
|
ld [$ffc3], a
|
|
call Func_e25a
|
|
ld a, [wFlipperCollision]
|
|
and a
|
|
ret z
|
|
ld a, [$d7b0]
|
|
ld [$ffc0], a
|
|
ld a, [$d7b1]
|
|
ld [$ffc1], a
|
|
ret
|
|
|
|
Func_e226: ; 0xe226
|
|
; ball is in right half of screen
|
|
ld hl, wBallXPos
|
|
ld c, $ba
|
|
ld a, [hli]
|
|
sub $1
|
|
cpl
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
sbc $a0
|
|
cpl
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
ld a, [$d7b7]
|
|
ld [$ffc2], a
|
|
ld a, [$d7b3]
|
|
ld [$ffc3], a
|
|
call Func_e25a
|
|
ld a, [wFlipperCollision]
|
|
and a
|
|
ret z
|
|
ld a, [$d7b4]
|
|
ld [$ffc0], a
|
|
ld a, [$d7b5]
|
|
ld [$ffc1], a
|
|
ret
|
|
|
|
Func_e25a: ; 0xe25a
|
|
ld a, [$ffbb]
|
|
sub $2b
|
|
ret c
|
|
cp $30
|
|
ret nc
|
|
ld [$ffbb], a
|
|
ld a, [$ffbd]
|
|
sub $7b
|
|
ret c
|
|
cp $20
|
|
ret nc
|
|
ld [$ffbd], a
|
|
ld a, [$ffc2]
|
|
.asm_e270
|
|
push af
|
|
ld l, $0
|
|
ld h, a
|
|
sla a
|
|
sla h
|
|
sla h
|
|
add h
|
|
ld h, a
|
|
ld a, [$ffbb]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
add hl, bc
|
|
ld a, [$ffbd]
|
|
ld c, a
|
|
ld b, $0
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
ld a, h
|
|
cp $40
|
|
jr nc, .asm_e2aa
|
|
add $40
|
|
ld h, a
|
|
ld a, $3d
|
|
jr .asm_e2ac
|
|
.asm_e2aa
|
|
ld a, $3e
|
|
.asm_e2ac
|
|
call Func_68f
|
|
ld b, a
|
|
and a
|
|
jr nz, .asm_e2c1
|
|
pop af
|
|
ld hl, $ffc3
|
|
cp [hl]
|
|
ret z
|
|
jr c, .asm_e2be
|
|
dec a
|
|
jr .asm_e270
|
|
.asm_e2be
|
|
inc a
|
|
jr .asm_e270
|
|
.asm_e2c1
|
|
pop af
|
|
ld a, b
|
|
ld [$ffbf], a
|
|
ld h, d
|
|
ld l, e
|
|
ld a, h
|
|
cp $20
|
|
jr nc, .asm_e2d3
|
|
add $60
|
|
ld h, a
|
|
ld a, $3e
|
|
jr .asm_e2d8
|
|
.asm_e2d3
|
|
add $20
|
|
ld h, a
|
|
ld a, $3f
|
|
.asm_e2d8
|
|
call Func_68f
|
|
ld [$d7b8], a
|
|
ld a, $1
|
|
ld [wFlipperCollision], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$e2e4,$e379 - $e2e4
|
|
|
|
Func_e379: ; 0xe379
|
|
ld a, b
|
|
xor d
|
|
ld [$ffbe], a
|
|
bit 7, b
|
|
jr z, .asm_e388
|
|
ld a, c
|
|
cpl
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
inc bc
|
|
.asm_e388
|
|
bit 7, d
|
|
jr z, .asm_e393
|
|
ld a, e
|
|
cpl
|
|
ld e, a
|
|
ld a, d
|
|
cpl
|
|
ld d, a
|
|
inc de
|
|
.asm_e393
|
|
push bc
|
|
push de
|
|
ld c, d
|
|
call Func_e410
|
|
pop de
|
|
pop bc
|
|
push hl
|
|
push bc
|
|
push de
|
|
ld c, e
|
|
call Func_e410
|
|
pop de
|
|
pop bc
|
|
push hl
|
|
push bc
|
|
push de
|
|
ld b, d
|
|
call Func_e410
|
|
pop de
|
|
pop bc
|
|
push hl
|
|
ld b, e
|
|
call Func_e410
|
|
ld c, l
|
|
ld l, h
|
|
xor a
|
|
ld h, a
|
|
pop de
|
|
add hl, de
|
|
rl a
|
|
pop de
|
|
add hl, de
|
|
jr nc, .asm_e3bf
|
|
inc a
|
|
.asm_e3bf
|
|
ld b, l
|
|
ld l, h
|
|
ld h, a
|
|
pop de
|
|
add hl, de
|
|
ld a, [$ffbe]
|
|
bit 7, a
|
|
ret z
|
|
ld a, c
|
|
sub $1
|
|
cpl
|
|
ld c, a
|
|
ld a, b
|
|
sbc $0
|
|
cpl
|
|
ld b, a
|
|
ld a, l
|
|
sbc $0
|
|
cpl
|
|
ld l, a
|
|
ld a, h
|
|
sbc $0
|
|
cpl
|
|
ld h, a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$e3de,$e410 - $e3de
|
|
|
|
Func_e410: ; 0xe410
|
|
ld a, b
|
|
cp c
|
|
jr nc, .asm_e416
|
|
ld b, c
|
|
ld c, a
|
|
.asm_e416
|
|
ld h, $3e
|
|
ld l, c
|
|
ld e, [hl]
|
|
inc h
|
|
ld d, [hl]
|
|
ld l, b
|
|
ld a, [hl]
|
|
dec h
|
|
ld l, [hl]
|
|
ld h, a
|
|
add hl, de
|
|
push af
|
|
ld d, $3e
|
|
ld a, b
|
|
sub c
|
|
ld e, a
|
|
ld a, [de]
|
|
ld c, a
|
|
inc d
|
|
ld a, [de]
|
|
ld b, a
|
|
ld a, l
|
|
sub c
|
|
ld l, a
|
|
ld a, h
|
|
sbc b
|
|
ld h, a
|
|
jr nc, .asm_e43c
|
|
pop af
|
|
ccf
|
|
rr h
|
|
rr l
|
|
ret
|
|
.asm_e43c
|
|
pop af
|
|
rr h
|
|
rr l
|
|
ret
|
|
|
|
HandleFlipperCollision: ; 0xe442
|
|
; This is called when the ball is colliding with either the
|
|
; right or left flipper.
|
|
ld a, $1
|
|
ld [$d7e9], a
|
|
xor a
|
|
ld [$d7f3], a
|
|
ld [$d7f4], a
|
|
ld [$d7f5], a
|
|
ld [$d7f6], a
|
|
ld [$d7f7], a
|
|
ld a, [$ffbf]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, Data_e538
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hl]
|
|
ld b, a
|
|
ld a, [$ffc0]
|
|
ld e, a
|
|
ld a, [$ffc1]
|
|
ld d, a
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d ; multiplied de by 4
|
|
call Func_e379
|
|
ld a, b
|
|
ld [$d7bc], a
|
|
ld a, l
|
|
ld [$d7bd], a
|
|
ld a, [wBallXPos + 1]
|
|
cp $50
|
|
ld a, [$d7b8]
|
|
jr c, .asm_e48b
|
|
cpl
|
|
inc a
|
|
.asm_e48b
|
|
ld [$d7ea], a
|
|
ld a, $1
|
|
ld [$d7eb], a
|
|
ld a, [$d7bd]
|
|
bit 7, a
|
|
ret z
|
|
xor a
|
|
ld [$d7bc], a
|
|
ld [$d7bd], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$e4a1,$e538 - $e4a1
|
|
|
|
Data_e538: ; 0xe538
|
|
dw $0000
|
|
dw $000C
|
|
dw $001C
|
|
dw $0030
|
|
dw $0038
|
|
dw $0048
|
|
dw $005C
|
|
dw $006C
|
|
dw $0070
|
|
dw $0080
|
|
dw $0094
|
|
dw $00A4
|
|
dw $00B4
|
|
dw $00C4
|
|
dw $00D4
|
|
dw $00E4
|
|
dw $00F8
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
dw $00FC
|
|
|
|
Func_e578: ; 0xe578
|
|
ld a, [wCurrentStage]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $65a7 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, [hli]
|
|
and a
|
|
jr z, .asm_e598
|
|
ld a, [$d4af]
|
|
sla a
|
|
ld c, a
|
|
sla a
|
|
add c
|
|
ld c, a
|
|
ld b, $0
|
|
add hl, bc
|
|
.asm_e598
|
|
ld de, $d7ec
|
|
ld b, $6
|
|
.asm_e59d
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_e59d
|
|
call Func_e656
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$e5a7,$e656 - $e5a7
|
|
|
|
Func_e656: ; 0xe656
|
|
ld hl, $d7ec
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, [$d7ee]
|
|
ld de, $c700
|
|
ld bc, $0300
|
|
call Func_666
|
|
ld hl, $d7ec
|
|
ld [hl], $0
|
|
inc hl
|
|
ld [hl], $c7
|
|
inc hl
|
|
ld [hl], $0
|
|
ret
|
|
|
|
Func_e674: ; 0xe674
|
|
push af
|
|
ld a, [$d548]
|
|
push af
|
|
xor a
|
|
ld [$d548], a
|
|
ld [$d803], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_84b7)
|
|
ld hl, Func_84b7
|
|
call BankSwitch
|
|
call Func_926
|
|
pop af
|
|
ld [$d548], a
|
|
pop af
|
|
ld [wCurrentStage], a
|
|
xor a
|
|
ld [$ffa3], a
|
|
ld [$ffa4], a
|
|
ld [$ffa5], a
|
|
rst $10
|
|
call Func_e5d
|
|
call Func_576
|
|
call ClearOAMBuffer
|
|
call Func_1129
|
|
call Func_e578
|
|
call Func_e6c2
|
|
call Func_e5d
|
|
call Func_588
|
|
ld a, $e4
|
|
ld [$ffa3], a
|
|
ld a, $e1
|
|
ld [$ffa4], a
|
|
ld a, $e4
|
|
ld [$ffa5], a
|
|
ret
|
|
|
|
Func_e6c2: ; 0xe6c2
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ld a, $86
|
|
jr z, .asm_e6d5
|
|
ld a, [$d5ca]
|
|
and a
|
|
ld a, $86
|
|
jr nz, .asm_e6d5
|
|
ld a, $90
|
|
.asm_e6d5
|
|
ld [$ffa6], a
|
|
ld hl, StageGfxPointers_GameBoy
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .loadData
|
|
ld hl, StageGfxPointers_GameBoyColor
|
|
.loadData
|
|
ld a, [wCurrentStage]
|
|
call LoadVideoData
|
|
xor a
|
|
ld [$d7f2], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8471)
|
|
ld hl, Func_8471
|
|
call BankSwitch
|
|
ret
|
|
|
|
StageGfxPointers_GameBoy: ; 0xe6f7
|
|
dw StageRedFieldTopGfx_GameBoy
|
|
dw StageRedFieldBottomGfx_GameBoy
|
|
dw Data_e896
|
|
dw Data_e8bd
|
|
dw Data_e8f2
|
|
dw Data_e982
|
|
dw Data_ea12
|
|
dw Data_ea12
|
|
dw Data_eabe
|
|
dw Data_eabe
|
|
dw Data_eb4e
|
|
dw Data_eb4e
|
|
dw Data_ebd7
|
|
dw Data_ebd7
|
|
dw Data_ec60
|
|
dw Data_ec60
|
|
|
|
StageGfxPointers_GameBoyColor: ; 0xe717
|
|
dw StageRedFieldTopGfx_GameBoyColor
|
|
dw StageRedFieldBottomGfx_GameBoyColor
|
|
dw Data_e8a6
|
|
dw Data_e8d4
|
|
dw Data_e92c
|
|
dw Data_e9bc
|
|
dw Data_ea5a
|
|
dw Data_ea5a
|
|
dw Data_eaf8
|
|
dw Data_eaf8
|
|
dw Data_eb88
|
|
dw Data_eb88
|
|
dw Data_ec11
|
|
dw Data_ec11
|
|
dw Data_ec9a
|
|
dw Data_ec9a
|
|
|
|
StageRedFieldTopGfx_GameBoy: ; 0xe737
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $680
|
|
|
|
dw StageRedFieldTopGfx1
|
|
db Bank(StageRedFieldTopGfx1)
|
|
dw vTiles0 + $1A0
|
|
dw $980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $800
|
|
|
|
dw StageRedFieldTopGfx2
|
|
db Bank(StageRedFieldTopGfx2)
|
|
dw vTiles0 + $600
|
|
dw $0800
|
|
|
|
dw StageRedFieldTopStatusBarSymbolsGfx_GameBoy
|
|
db Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy)
|
|
dw vTiles1
|
|
dw $0400
|
|
|
|
dw StageRedFieldTopGfx3
|
|
db Bank(StageRedFieldTopGfx3)
|
|
dw vTiles1 + $100
|
|
dw $0680
|
|
|
|
dw StageRedFieldTopBaseGameBoyGfx
|
|
db Bank(StageRedFieldTopBaseGameBoyGfx)
|
|
dw vTiles1 + $2A0
|
|
dw $3580
|
|
|
|
dw StageRedFieldTopTilemap_GameBoy
|
|
db Bank(StageRedFieldTopTilemap_GameBoy)
|
|
dw vBGMap0
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
StageRedFieldTopGfx_GameBoyColor: ; 0xe771
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw StageRedFieldTopGfx1
|
|
db Bank(StageRedFieldTopGfx1)
|
|
dw vTiles0 + $1A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0800
|
|
|
|
dw StageRedFieldTopGfx2
|
|
db Bank(StageRedFieldTopGfx2)
|
|
dw vTiles0 + $600
|
|
dw $0800
|
|
|
|
dw StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor
|
|
db Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor)
|
|
dw vTiles1
|
|
dw $0400
|
|
|
|
dw StageRedFieldTopGfx3
|
|
db Bank(StageRedFieldTopGfx3)
|
|
dw vTiles1 + $100
|
|
dw $0680
|
|
|
|
dw StageRedFieldTopBaseGameBoyColorGfx
|
|
db Bank(StageRedFieldTopBaseGameBoyColorGfx)
|
|
dw vTiles1 + $2A0
|
|
dw $3580
|
|
|
|
dw StageRedFieldTopGfx4
|
|
db Bank(StageRedFieldTopGfx4)
|
|
dw vTiles1
|
|
dw $4002
|
|
|
|
dw StageRedFieldTopGfx5
|
|
db Bank(StageRedFieldTopGfx5)
|
|
dw vTiles0
|
|
dw $0802
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw StageRedJapaneseCharactersGfx
|
|
db Bank(StageRedJapaneseCharactersGfx)
|
|
dw vTiles0 + $200
|
|
dw $1002
|
|
|
|
dw StageRedJapaneseCharactersGfx2
|
|
db Bank(StageRedJapaneseCharactersGfx2)
|
|
dw vTiles1 + $100
|
|
dw $0802
|
|
|
|
dw StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor
|
|
db Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor)
|
|
dw vTiles1
|
|
dw $0402
|
|
|
|
dw StageRedFieldTopTilemap_GameBoyColor
|
|
db Bank(StageRedFieldTopTilemap_GameBoyColor)
|
|
dw vBGMap0
|
|
dw $1000
|
|
|
|
dw StageRedFieldTopTilemap2_GameBoyColor
|
|
db Bank(StageRedFieldTopTilemap2_GameBoyColor)
|
|
dw vBGMap0
|
|
dw $1002
|
|
|
|
dw $4980
|
|
db $37
|
|
dw $0000
|
|
dw $0101
|
|
|
|
dw StageRedFieldTopGfx6
|
|
db Bank(StageRedFieldTopGfx6)
|
|
dw vTiles0 + $7C0
|
|
dw $0102
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
StageRedFieldBottomGfx_GameBoy: ; 0xe7ea
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw StageRedFieldBottomGfx1
|
|
db Bank(StageRedFieldBottomGfx1)
|
|
dw vTiles0 + $1A0
|
|
dw $0580
|
|
|
|
dw StageRedFieldBottomGfx2
|
|
db Bank(StageRedFieldBottomGfx2)
|
|
dw vTiles0 + $300
|
|
dw $0200
|
|
|
|
dw StageRedFieldBottomGfx3
|
|
db Bank(StageRedFieldBottomGfx3)
|
|
dw vTiles0 + $380
|
|
dw $0080
|
|
|
|
dw StageRedFieldBottomGfx4
|
|
db Bank(StageRedFieldBottomGfx4)
|
|
dw vTiles0 + $3C0
|
|
dw $1100
|
|
|
|
dw StageRedFieldBottomBaseGameBoyGfx
|
|
db Bank(StageRedFieldBottomBaseGameBoyGfx)
|
|
dw vTiles1
|
|
dw $4000
|
|
|
|
dw SaverTextOffGfx
|
|
db Bank(SaverTextOffGfx)
|
|
dw vTiles1 + $2A0
|
|
dw $0100
|
|
|
|
dw StageRedFieldBottomTilemap_GameBoy
|
|
db Bank(StageRedFieldBottomTilemap_GameBoy)
|
|
dw vBGMap0
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
StageRedFieldBottomGfx_GameBoyColor: ; 0xe824
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw StageRedFieldBottomGfx1
|
|
db Bank(StageRedFieldBottomGfx1)
|
|
dw vTiles0 + $1A0
|
|
dw $0580
|
|
|
|
dw StageRedFieldBottomGfx2
|
|
db Bank(StageRedFieldBottomGfx2)
|
|
dw vTiles0 + $300
|
|
dw $0200
|
|
|
|
dw StageRedFieldBottomGfx3
|
|
db Bank(StageRedFieldBottomGfx3)
|
|
dw vTiles0 + $380
|
|
dw $0080
|
|
|
|
dw StageRedFieldBottomGfx4
|
|
db Bank(StageRedFieldBottomGfx4)
|
|
dw vTiles0 + $3C0
|
|
dw $1100
|
|
|
|
dw StageRedFieldBottomBaseGameBoyColorGfx
|
|
db Bank(StageRedFieldBottomBaseGameBoyColorGfx)
|
|
dw vTiles1
|
|
dw $4000
|
|
|
|
dw StageRedFieldBottomGfx5
|
|
db Bank(StageRedFieldBottomGfx5)
|
|
dw vTiles1
|
|
dw $4002
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw SaverTextOffGfx
|
|
db Bank(SaverTextOffGfx)
|
|
dw vTiles1 + $2A0
|
|
dw $0100
|
|
|
|
dw StageRedJapaneseCharactersGfx
|
|
db Bank(StageRedJapaneseCharactersGfx)
|
|
dw vTiles0 + $200
|
|
dw $1002
|
|
|
|
dw StageRedJapaneseCharactersGfx2
|
|
db Bank(StageRedJapaneseCharactersGfx2)
|
|
dw vTiles1 + $100
|
|
dw $0802
|
|
|
|
dw StageRedFieldBottomBaseGameBoyColorGfx
|
|
db Bank(StageRedFieldBottomBaseGameBoyColorGfx)
|
|
dw vTiles1
|
|
dw $0402
|
|
|
|
dw StageRedFieldBottomTilemap_GameBoyColor
|
|
db Bank(StageRedFieldBottomTilemap_GameBoyColor)
|
|
dw vBGMap0
|
|
dw $1000
|
|
|
|
dw StageRedFieldBottomTilemap2_GameBoyColor
|
|
db Bank(StageRedFieldBottomTilemap2_GameBoyColor)
|
|
dw vBGMap0
|
|
dw $1002
|
|
|
|
dw $4A80
|
|
db $37
|
|
dw $0000
|
|
dw $0101
|
|
|
|
dw StageRedFieldTopGfx6
|
|
db Bank(StageRedFieldTopGfx6)
|
|
dw vTiles0 + $7C0
|
|
dw $0102
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_e896: ; 0xe896
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0800
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_e8a6: ; 0xe8a6
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0800
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_e8bd: ; 0xe8bd
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $4380
|
|
db $2A
|
|
dw $8380
|
|
dw $1200
|
|
|
|
dw SaverTextOffGfx
|
|
db Bank(SaverTextOffGfx)
|
|
dw vTiles1 + $2a0
|
|
dw $0100
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_e8d4: ; 0xe8d4
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $4380
|
|
db $2A
|
|
dw $8380
|
|
dw $1200
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw SaverTextOffGfx
|
|
db Bank(SaverTextOffGfx)
|
|
dw vTiles1 + $2A0
|
|
dw $0100
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_e8f2: ; 0xe8f2
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $67A0
|
|
db $35
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0800
|
|
|
|
dw $6A00
|
|
db $35
|
|
dw $8600
|
|
dw $0800
|
|
|
|
dw $7000
|
|
db $1A
|
|
dw $8800
|
|
dw $0400
|
|
|
|
dw $6600
|
|
db $35
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $72A0
|
|
db $1A
|
|
dw $8AA0
|
|
dw $3580
|
|
|
|
dw $7000
|
|
db $2F
|
|
dw $9800
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_e92c: ; 0xe92c
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $67A0
|
|
db $35
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0800
|
|
|
|
dw $6A00
|
|
db $35
|
|
dw $8600
|
|
dw $0800
|
|
|
|
dw $4000
|
|
db $28
|
|
dw $8800
|
|
dw $0400
|
|
|
|
dw $6600
|
|
db $35
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $42A0
|
|
db $28
|
|
dw $8AA0
|
|
dw $3580
|
|
|
|
dw $5000
|
|
db $28
|
|
dw $8800
|
|
dw $4002
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw $6800
|
|
db $31
|
|
dw $9800
|
|
dw $1000
|
|
|
|
dw $6C00
|
|
db $31
|
|
dw $9800
|
|
dw $1002
|
|
|
|
dw $4B00
|
|
db $37
|
|
dw $0000
|
|
dw $0101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_e982: ; 0xe982
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw StageRedFieldBottomGfx1
|
|
db Bank(StageRedFieldBottomGfx1)
|
|
dw vTiles0 + $1A0
|
|
dw $0580
|
|
|
|
dw StageRedFieldBottomGfx2
|
|
db Bank(StageRedFieldBottomGfx2)
|
|
dw vTiles0 + $300
|
|
dw $0200
|
|
|
|
dw StageRedFieldBottomGfx3
|
|
db Bank(StageRedFieldBottomGfx3)
|
|
dw vTiles0 + $380
|
|
dw $0080
|
|
|
|
dw StageRedFieldBottomGfx4
|
|
db Bank(StageRedFieldBottomGfx4)
|
|
dw vTiles0 + $3C0
|
|
dw $1100
|
|
|
|
dw $7000
|
|
db $19
|
|
dw $8800
|
|
dw $4000
|
|
|
|
dw SaverTextOffGfx
|
|
db Bank(SaverTextOffGfx)
|
|
dw vTiles1 + $2A0
|
|
dw $0100
|
|
|
|
dw $4000
|
|
db $30
|
|
dw $9800
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_e9bc: ; 0xe9bc
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw StageRedFieldBottomGfx1
|
|
db Bank(StageRedFieldBottomGfx1)
|
|
dw vTiles0 + $1A0
|
|
dw $0580
|
|
|
|
dw StageRedFieldBottomGfx2
|
|
db Bank(StageRedFieldBottomGfx2)
|
|
dw vTiles0 + $300
|
|
dw $0200
|
|
|
|
dw StageRedFieldBottomGfx3
|
|
db Bank(StageRedFieldBottomGfx3)
|
|
dw vTiles0 + $380
|
|
dw $0080
|
|
|
|
dw StageRedFieldBottomGfx4
|
|
db Bank(StageRedFieldBottomGfx4)
|
|
dw vTiles0 + $3C0
|
|
dw $1100
|
|
|
|
dw $4000
|
|
db $29
|
|
dw $8800
|
|
dw $4000
|
|
|
|
dw $5000
|
|
db $29
|
|
dw $8800
|
|
dw $4002
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw SaverTextOffGfx
|
|
db Bank(SaverTextOffGfx)
|
|
dw vTiles1 + $2A0
|
|
dw $0100
|
|
|
|
dw $7000
|
|
db $31
|
|
dw $9800
|
|
dw $1000
|
|
|
|
dw $7400
|
|
db $31
|
|
dw $9800
|
|
dw $1002
|
|
|
|
dw $4B80
|
|
db $37
|
|
dw $0000
|
|
dw $0101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_ea12: ; 0xea12
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0C80
|
|
|
|
dw $7000
|
|
db $1C
|
|
dw $8800
|
|
dw $4000
|
|
|
|
dw $7D00
|
|
db $22
|
|
dw $8900
|
|
dw $0600
|
|
|
|
dw $7E80
|
|
db $21
|
|
dw $8A80
|
|
dw $0080
|
|
|
|
dw $7EA0
|
|
db $21
|
|
dw $81A0
|
|
dw $0400
|
|
|
|
dw $7BA0
|
|
db $26
|
|
dw $82A0
|
|
dw $0580
|
|
|
|
dw $7D00
|
|
db $26
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7D60
|
|
db $26
|
|
dw $8AA0
|
|
dw $0A80
|
|
|
|
dw $4800
|
|
db $32
|
|
dw $9800
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_ea5a: ; 0xea5a
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw StageRedFieldBottomGfx4
|
|
db Bank(StageRedFieldBottomGfx4)
|
|
dw vTiles0 + $3C0
|
|
dw $1100
|
|
|
|
dw $6000
|
|
db $27
|
|
dw $8800
|
|
dw $4000
|
|
|
|
dw $7D00
|
|
db $22
|
|
dw $8900
|
|
dw $0600
|
|
|
|
dw $7E80
|
|
db $21
|
|
dw $8A80
|
|
dw $0080
|
|
|
|
dw $7EA0
|
|
db $21
|
|
dw $81A0
|
|
dw $0400
|
|
|
|
dw $7BA0
|
|
db $26
|
|
dw $82A0
|
|
dw $0580
|
|
|
|
dw $7D00
|
|
db $26
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7D60
|
|
db $26
|
|
dw $8AA0
|
|
dw $0A80
|
|
|
|
dw $7000
|
|
db $27
|
|
dw $8800
|
|
dw $4002
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw $5000
|
|
db $32
|
|
dw $9800
|
|
dw $1000
|
|
|
|
dw $5400
|
|
db $32
|
|
dw $9800
|
|
dw $1002
|
|
|
|
dw $5080
|
|
db $37
|
|
dw $0000
|
|
dw $0101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_eabe: ; 0xeabe
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $59A0
|
|
db $32
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0C80
|
|
|
|
dw $5C00
|
|
db $32
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7000
|
|
db $1F
|
|
dw $8800
|
|
dw $4000
|
|
|
|
dw $5800
|
|
db $32
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $5C60
|
|
db $32
|
|
dw $8AA0
|
|
dw $0A80
|
|
|
|
dw $7000
|
|
db $32
|
|
dw $9800
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_eaf8: ; 0xeaf8
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $59A0
|
|
db $32
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0C80
|
|
|
|
dw $5C00
|
|
db $32
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7000
|
|
db $20
|
|
dw $8800
|
|
dw $4000
|
|
|
|
dw $5800
|
|
db $32
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $5C60
|
|
db $32
|
|
dw $8AA0
|
|
dw $0A80
|
|
|
|
dw vTiles0
|
|
db $20
|
|
dw $8800
|
|
dw $4002
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw $7800
|
|
db $32
|
|
dw $9800
|
|
dw $1000
|
|
|
|
dw $7C00
|
|
db $32
|
|
dw $9800
|
|
dw $1002
|
|
|
|
dw $4F00
|
|
db $37
|
|
dw $0000
|
|
dw $0101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_eb4e: ; 0xeb4e
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $41A0
|
|
db $33
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0C80
|
|
|
|
dw $4400
|
|
db $33
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7600
|
|
db $17
|
|
dw $8800
|
|
dw $2800
|
|
|
|
dw $4000
|
|
db $33
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $4460
|
|
db $33
|
|
dw $8AA0
|
|
dw $0D80
|
|
|
|
dw $5800
|
|
db $33
|
|
dw $9800
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_eb88: ; 0xeb88
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $41A0
|
|
db $33
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0C80
|
|
|
|
dw $4400
|
|
db $33
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7200
|
|
db $2A
|
|
dw $8800
|
|
dw $2400
|
|
|
|
dw $4000
|
|
db $33
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $4460
|
|
db $33
|
|
dw $8AA0
|
|
dw $0D80
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw $6000
|
|
db $33
|
|
dw $9800
|
|
dw $1000
|
|
|
|
dw $6400
|
|
db $33
|
|
dw $9800
|
|
dw $1002
|
|
|
|
dw $4C80
|
|
db $37
|
|
dw $0000
|
|
dw $0101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_ebd7: ; 0xebd7
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $7AA0
|
|
db $2B
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0C80
|
|
|
|
dw $7D00
|
|
db $2B
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7000
|
|
db $23
|
|
dw $8800
|
|
dw $3800
|
|
|
|
dw $7900
|
|
db $2B
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $7D60
|
|
db $2B
|
|
dw $8AA0
|
|
dw $0A00
|
|
|
|
dw $7800
|
|
db $33
|
|
dw $9800
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_ec11: ; 0xec11
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $7AA0
|
|
db $2B
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0C80
|
|
|
|
dw $7D00
|
|
db $2B
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7000
|
|
db $21
|
|
dw $8800
|
|
dw $3800
|
|
|
|
dw $7900
|
|
db $2B
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $7D60
|
|
db $2B
|
|
dw $8AA0
|
|
dw $0A00
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw $7000
|
|
db $34
|
|
dw $9800
|
|
dw $1000
|
|
|
|
dw $7400
|
|
db $34
|
|
dw $9800
|
|
dw $1002
|
|
|
|
dw $4A00
|
|
db $37
|
|
dw $0000
|
|
dw $0101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_ec60: ; 0xec60
|
|
dw Alphabet1Gfx
|
|
db Bank(Alphabet1Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $71A0
|
|
db $26
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0C80
|
|
|
|
dw $7400
|
|
db $26
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7000
|
|
db $24
|
|
dw $8800
|
|
dw $3400
|
|
|
|
dw $7000
|
|
db $26
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $7460
|
|
db $26
|
|
dw $8AA0
|
|
dw $1280
|
|
|
|
dw $5000
|
|
db $35
|
|
dw $9800
|
|
dw $1000
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_ec9a: ; 0xec9a
|
|
dw Alphabet2Gfx
|
|
db Bank(Alphabet2Gfx)
|
|
dw vTiles0
|
|
dw $0680
|
|
|
|
dw $71A0
|
|
db $26
|
|
dw $81A0
|
|
dw $0980
|
|
|
|
dw PinballPokeballGfx
|
|
db Bank(PinballPokeballGfx)
|
|
dw vTiles0 + $400
|
|
dw $0C80
|
|
|
|
dw $7400
|
|
db $26
|
|
dw $87A0
|
|
dw $0180
|
|
|
|
dw $7000
|
|
db $25
|
|
dw $8800
|
|
dw $2C00
|
|
|
|
dw $7000
|
|
db $26
|
|
dw $8900
|
|
dw $0680
|
|
|
|
dw $7460
|
|
db $26
|
|
dw $8AA0
|
|
dw $1280
|
|
|
|
dw TimerDigitsGfx
|
|
db Bank(TimerDigitsGfx)
|
|
dw vTiles0 + $600
|
|
dw $0582
|
|
|
|
dw $5800
|
|
db $35
|
|
dw $9800
|
|
dw $1000
|
|
|
|
dw $5C00
|
|
db $35
|
|
dw $9800
|
|
dw $1002
|
|
|
|
dw $4880
|
|
db $37
|
|
dw $0000
|
|
dw $0101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Func_ece9: ; 0xece9
|
|
call Func_ed5e
|
|
ld a, [wBallYPos + 1]
|
|
add $10
|
|
cp $18
|
|
jr c, .asm_ed13
|
|
cp $b8
|
|
ret c
|
|
ld a, [wCurrentStage]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $6d4e ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $ff
|
|
jr z, .asm_ed2e
|
|
call Func_e674
|
|
ld a, [wBallYPos + 1]
|
|
sub $88
|
|
ld [wBallYPos + 1], a
|
|
ret
|
|
.asm_ed13
|
|
ld a, [wCurrentStage]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $6d3e ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $ff
|
|
jr z, .asm_ed2e
|
|
call Func_e674
|
|
ld a, [wBallYPos + 1]
|
|
add $88
|
|
ld [wBallYPos + 1], a
|
|
ret
|
|
.asm_ed2e
|
|
ld a, $1
|
|
ld [$d4ae], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dc49)
|
|
ld hl, Func_dc49
|
|
call BankSwitch
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$ed3e,$ed5e - $ed3e
|
|
|
|
Func_ed5e: ; 0xed5e
|
|
ld hl, $d7ab
|
|
ld a, [$d7ac]
|
|
and a
|
|
jr nz, .asm_ed7f
|
|
ld a, [wBallXPos + 1]
|
|
cp $9a
|
|
ld a, $2
|
|
jr nc, .asm_ed72
|
|
ld a, $fe
|
|
.asm_ed72
|
|
ld [$d7aa], a
|
|
add [hl]
|
|
cp $22
|
|
jr z, .asm_ed7f
|
|
bit 7, a
|
|
jr nz, .asm_ed7f
|
|
ld [hl], a
|
|
.asm_ed7f
|
|
ld a, [hl]
|
|
ld hl, $d79f
|
|
sub [hl]
|
|
ld [hBoardXShift], a
|
|
xor a
|
|
ld hl, $d7a0
|
|
sub [hl]
|
|
ld [hBoardYShift], a
|
|
ret
|
|
|
|
Func_ed8e: ; 0xed8e
|
|
xor a
|
|
ld [$d803], a
|
|
ld [$d804], a
|
|
ld [$d622], a
|
|
ld a, [$d460]
|
|
ld [$d620], a
|
|
ld a, [$d47e]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $6f2f
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d621], a
|
|
.asm_edac
|
|
xor a
|
|
ld [hJoypadState], a
|
|
ld [hNewlyPressedButtons], a
|
|
ld [hPressedButtons], a
|
|
call HandleTilts
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ld [$ff8a], a
|
|
ld a, $3
|
|
ld hl, HandleFlippers
|
|
call nz, BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_84b7)
|
|
ld hl, Func_84b7
|
|
call BankSwitch
|
|
call Func_33e3
|
|
call Func_926
|
|
rst $10
|
|
ld a, [$d7af]
|
|
and a
|
|
jr nz, .asm_edac
|
|
ld a, [$d7b3]
|
|
and a
|
|
jr nz, .asm_edac
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
call nz, Func_f269
|
|
call Func_959
|
|
and $f0
|
|
ld [$d61a], a
|
|
xor a
|
|
ld [$d61b], a
|
|
ld [$d61e], a
|
|
.asm_6df7
|
|
ld a, [$d61a]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $7339
|
|
add hl, bc
|
|
ld a, [$d619]
|
|
add [hl]
|
|
ld c, a
|
|
ld hl, $7439
|
|
add hl, bc
|
|
ld a, [hli]
|
|
bit 7, a
|
|
jr nz, .asm_ee56
|
|
call Func_eef9
|
|
ld [$d61d], a
|
|
push af
|
|
ld de, $0009
|
|
call PlaySoundEffect
|
|
pop af
|
|
call Func_f196
|
|
ld a, [$d61b]
|
|
cp $a
|
|
jr nc, .asm_ee29
|
|
ld a, $a
|
|
.asm_ee29
|
|
ld b, a
|
|
.asm_ee2a
|
|
push bc
|
|
call Func_eeee
|
|
ld a, [$d61e]
|
|
and a
|
|
jr nz, .asm_ee47
|
|
call Func_ef1e
|
|
jr z, .asm_ee47
|
|
ld [$d61e], a
|
|
ld a, $32
|
|
ld [$d61b], a
|
|
ld de, $0728
|
|
call PlaySoundEffect
|
|
.asm_ee47
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_ee2a
|
|
ld a, [$d61b]
|
|
inc a
|
|
ld [$d61b], a
|
|
cp $3c
|
|
jr z, .asm_ee69
|
|
.asm_ee56
|
|
ld a, [$d61a]
|
|
and $f0
|
|
ld b, a
|
|
ld a, [$d61a]
|
|
inc a
|
|
and $f
|
|
or b
|
|
ld [$d61a], a
|
|
jp .asm_6df7
|
|
.asm_ee69
|
|
ld a, [$d61d]
|
|
cp $5
|
|
jr nz, .asm_ee78
|
|
ld de, $0c42
|
|
call PlaySoundEffect
|
|
jr .asm_ee7e
|
|
.asm_ee78
|
|
ld de, $0c43
|
|
call PlaySoundEffect
|
|
.asm_ee7e
|
|
ld b, $28
|
|
.asm_ee80
|
|
push bc
|
|
rst $10
|
|
pop bc
|
|
call Func_ef1e
|
|
jr nz, .asm_ee8b
|
|
dec b
|
|
jr nz, .asm_ee80
|
|
.asm_ee8b
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ld a, [$d61d]
|
|
call nz, Func_f2a0
|
|
ld b, $80
|
|
.asm_ee96
|
|
push bc
|
|
ld a, b
|
|
and $f
|
|
jr nz, .asm_eeae
|
|
bit 4, b
|
|
jr z, .asm_eea8
|
|
ld a, [$d61d]
|
|
call LoadBillboardPicture
|
|
jr .asm_eeae
|
|
.asm_eea8
|
|
ld a, [$d61d]
|
|
call Func_f196
|
|
.asm_eeae
|
|
rst $10
|
|
pop bc
|
|
call Func_ef1e
|
|
jr nz, .asm_eeb8
|
|
dec b
|
|
jr nz, .asm_ee96
|
|
.asm_eeb8
|
|
ld a, [$d619]
|
|
add $a
|
|
cp $fa
|
|
jr nz, .asm_eec3
|
|
ld a, $64
|
|
.asm_eec3
|
|
ld [$d619], a
|
|
ld a, [$d61d]
|
|
rst $18
|
|
PointerTable_eeca: ; 0xeeca
|
|
dw Func_ef35
|
|
dw Func_ef4f
|
|
dw Func_ef69
|
|
dw Func_ef83
|
|
dw Func_efa7
|
|
dw Func_efb2
|
|
dw Func_eff3
|
|
dw Func_f034
|
|
dw Func_f03a
|
|
dw Func_f040
|
|
dw Func_f040
|
|
dw Func_f040
|
|
dw Func_f0c1
|
|
dw Func_f172
|
|
dw Func_f172
|
|
dw Func_f172
|
|
dw Func_f172
|
|
dw Func_f172
|
|
|
|
Func_eeee: ; 0xeeee
|
|
push bc
|
|
ld bc, $0200
|
|
.asm_eef2
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .asm_eef2
|
|
pop bc
|
|
ret
|
|
|
|
Func_eef9: ; 0xeef9
|
|
cp $8
|
|
jr nz, .asm_ef09
|
|
ld a, [$d620]
|
|
and a
|
|
jr nz, .asm_ef06
|
|
ld a, $7
|
|
ret
|
|
.asm_ef06
|
|
ld a, $8
|
|
ret
|
|
.asm_ef09
|
|
cp $9
|
|
jr nz, .asm_ef14
|
|
push hl
|
|
ld hl, $d621
|
|
add [hl]
|
|
pop hl
|
|
ret
|
|
.asm_ef14
|
|
cp $d
|
|
ret nz
|
|
push hl
|
|
ld hl, $d498
|
|
add [hl]
|
|
pop hl
|
|
ret
|
|
|
|
Func_ef1e: ; 0xef1e
|
|
push bc
|
|
ld hl, wKeyConfigRightFlipper
|
|
call IsKeyPressed
|
|
jr nz, .asm_ef2d
|
|
ld hl, wKeyConfigLeftFlipper
|
|
call IsKeyPressed
|
|
.asm_ef2d
|
|
pop bc
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$ef2f,$ef35 - $ef2f
|
|
|
|
Func_ef35: ; 0xef35
|
|
ld a, $0
|
|
ld [$d4a1], a
|
|
ld a, $ff
|
|
ld [$d4a2], a
|
|
ld a, $3b
|
|
ld [$d4a3], a
|
|
ld a, $1e
|
|
ld [$d4a4], a
|
|
ld a, $2
|
|
ld [$d4a5], a
|
|
ret
|
|
|
|
Func_ef4f: ; 0xef4f
|
|
ld a, $0
|
|
ld [$d4a1], a
|
|
ld a, $ff
|
|
ld [$d4a2], a
|
|
ld a, $3b
|
|
ld [$d4a3], a
|
|
ld a, $3c
|
|
ld [$d4a4], a
|
|
ld a, $2
|
|
ld [$d4a5], a
|
|
ret
|
|
|
|
Func_ef69: ; 0xef69
|
|
ld a, $0
|
|
ld [$d4a1], a
|
|
ld a, $ff
|
|
ld [$d4a2], a
|
|
ld a, $3b
|
|
ld [$d4a3], a
|
|
ld a, $5a
|
|
ld [$d4a4], a
|
|
ld a, $2
|
|
ld [$d4a5], a
|
|
ret
|
|
|
|
Func_ef83: ; 0xef83
|
|
ld a, $1
|
|
ld [$d51d], a
|
|
ld a, $f
|
|
ld [$d517], a
|
|
xor a
|
|
ld [$d85d], a
|
|
call Func_310a
|
|
rst $10
|
|
ld a, $0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_50000)
|
|
ld hl, Func_50000
|
|
call BankSwitch
|
|
ld a, $1
|
|
ld [$d85d], a
|
|
ret
|
|
|
|
Func_efa7: ; 0xefa7
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_efb2: ; 0xefb2
|
|
ld a, $8
|
|
call Func_a21
|
|
ld [$d61f], a
|
|
ld b, $80
|
|
.asm_efbc
|
|
push bc
|
|
ld a, b
|
|
and $f
|
|
jr nz, .asm_efd8
|
|
bit 4, b
|
|
jr z, .asm_efd0
|
|
ld a, [$d61f]
|
|
add $12
|
|
call LoadBillboardPicture
|
|
jr .asm_efd8
|
|
.asm_efd0
|
|
ld a, [$d61f]
|
|
add $12
|
|
call Func_f196
|
|
.asm_efd8
|
|
rst $10
|
|
pop bc
|
|
ld a, [hNewlyPressedButtons]
|
|
and $21
|
|
jr nz, .asm_efe3
|
|
dec b
|
|
jr nz, .asm_efbc
|
|
.asm_efe3
|
|
ld a, [$d61f]
|
|
inc a
|
|
swap a
|
|
ld e, a
|
|
ld d, $0
|
|
ld bc, $0000
|
|
call Func_351c
|
|
ret
|
|
|
|
Func_eff3: ; 0xeff3
|
|
ld a, $8
|
|
call Func_a21
|
|
ld [$d61f], a
|
|
ld b, $80
|
|
.asm_effd
|
|
push bc
|
|
ld a, b
|
|
and $f
|
|
jr nz, .asm_f019
|
|
bit 4, b
|
|
jr z, .asm_f011
|
|
ld a, [$d61f]
|
|
add $1b
|
|
call LoadBillboardPicture
|
|
jr .asm_f019
|
|
.asm_f011
|
|
ld a, [$d61f]
|
|
add $1b
|
|
call Func_f196
|
|
.asm_f019
|
|
rst $10
|
|
pop bc
|
|
ld a, [hNewlyPressedButtons]
|
|
and $21
|
|
jr nz, .asm_f024
|
|
dec b
|
|
jr nz, .asm_effd
|
|
.asm_f024
|
|
ld a, [$d61f]
|
|
inc a
|
|
swap a
|
|
ld c, a
|
|
ld b, $0
|
|
ld de, $0000
|
|
call Func_351c
|
|
ret
|
|
|
|
Func_f034: ; 0xf034
|
|
ld a, $1
|
|
ld [$d622], a
|
|
ret
|
|
|
|
Func_f03a: ; 0xf03a
|
|
ld a, $2
|
|
ld [$d622], a
|
|
ret
|
|
|
|
Func_f040: ; 0xf040
|
|
ld a, $10
|
|
ld [$d47f], a
|
|
ld a, $e
|
|
ld [$d480], a
|
|
ld a, [$d47e]
|
|
cp $5
|
|
jr z, .asm_f07b
|
|
ld de, $063a
|
|
call PlaySoundEffect
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld de, $2907
|
|
ld hl, $d5cc
|
|
call Func_32aa
|
|
ld a, [$d47e]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $70bb
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d47e], a
|
|
add $30
|
|
ld [$c512], a
|
|
jr .asm_f0b0
|
|
.asm_f07b
|
|
ld de, $0f4d
|
|
call PlaySoundEffect
|
|
ld bc, $34e8
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld bc, $100
|
|
ld de, $0000
|
|
push bc
|
|
push de
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5d4
|
|
ld de, $2948
|
|
call Func_32cc
|
|
pop de
|
|
pop bc
|
|
ld hl, $d5cc
|
|
ld de, $2922
|
|
call Func_32aa
|
|
.asm_f0b0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_155bb)
|
|
ld hl, Func_155bb
|
|
call BankSwitch
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$f0bb,$f0c1 - $f0bb
|
|
|
|
Func_f0c1: ; 0xf0c1
|
|
ld a, $4
|
|
call Func_a21
|
|
ld [$d61f], a
|
|
ld b, $80
|
|
.asm_f0cb
|
|
push bc
|
|
ld a, b
|
|
and $f
|
|
jr nz, .asm_f0e7
|
|
bit 4, b
|
|
jr z, .asm_f0df
|
|
ld a, [$d61f]
|
|
add $24
|
|
call LoadBillboardPicture
|
|
jr .asm_f0e7
|
|
.asm_f0df
|
|
ld a, [$d61f]
|
|
add $24
|
|
call Func_f196
|
|
.asm_f0e7
|
|
rst $10
|
|
pop bc
|
|
ld a, [hNewlyPressedButtons]
|
|
and $21
|
|
jr nz, .asm_f0f2
|
|
dec b
|
|
jr nz, .asm_f0cb
|
|
.asm_f0f2
|
|
ld a, $3
|
|
ld [$d610], a
|
|
xor a
|
|
ld [$d611], a
|
|
ld [$d612], a
|
|
ld a, [$d482]
|
|
call Func_f14a
|
|
ld b, c
|
|
ld a, [$d61f]
|
|
inc a
|
|
ld hl, $d482
|
|
add [hl]
|
|
cp $64
|
|
jr c, .asm_f113
|
|
ld a, $63
|
|
.asm_f113
|
|
ld [hl], a
|
|
call Func_f14a
|
|
ld a, c
|
|
cp b
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call nz, BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_16f95)
|
|
ld hl, Func_16f95
|
|
call BankSwitch
|
|
ld a, [$d60c]
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_f154)
|
|
ld hl, Func_f154
|
|
call BankSwitch ; no need for BankSwitch here...
|
|
ld a, [$d60d]
|
|
add $14
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_f154)
|
|
ld hl, Func_f154
|
|
call BankSwitch ; no need for BankSwitch here...
|
|
ret
|
|
|
|
Func_f14a: ; 0xf14a
|
|
ld c, $0
|
|
.asm_f14c
|
|
cp $19
|
|
ret c
|
|
sub $19
|
|
inc c
|
|
jr .asm_f14c
|
|
|
|
Func_f154: ; 0xf154
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
CallTable_f15a: ; 0xf15a
|
|
dw $6F28
|
|
db $05, $00
|
|
|
|
dw $6F28
|
|
db $05, $00
|
|
|
|
dw $6F28
|
|
db $05, $00
|
|
|
|
dw $6F28
|
|
db $05, $00
|
|
|
|
dw $55F2
|
|
db $07, $00
|
|
|
|
dw $55F2
|
|
db $07, $00
|
|
|
|
Func_f172: ; 0xf172
|
|
ld a, $1
|
|
ld [$d623], a
|
|
ret
|
|
|
|
LoadBillboardPicture: ; 0xf178
|
|
; Loads a billboard picture's tiles into VRAM
|
|
; input: a = billboard picture id
|
|
push hl
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
add c ; a has been multplied by 3 becuase entires in BillboardPicturePointers are 3 bytes long
|
|
ld c, a
|
|
ld hl, BillboardPicturePointers
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld h, b
|
|
ld l, c
|
|
ld de, $8900 ; destination address to copy the tiles
|
|
ld bc, $180 ; billboard pictures are $180 bytes
|
|
call LoadVRAMData ; loads the tiles into VRAM
|
|
pop hl
|
|
ret
|
|
|
|
Func_f196: ; 0xf196
|
|
push hl
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
add c
|
|
ld c, a
|
|
ld hl, BillboardPicturePointers
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld h, b
|
|
ld l, c
|
|
ld bc, $0180
|
|
add hl, bc
|
|
ld de, $8900
|
|
ld bc, $0180
|
|
call LoadVRAMData
|
|
pop hl
|
|
ret
|
|
|
|
BillboardPicturePointers: ; 0xf1b8
|
|
dw BallSaver30SecondsOnPic
|
|
db Bank(BallSaver30SecondsOnPic)
|
|
|
|
dw BallSaver60SecondsOnPic
|
|
db Bank(BallSaver60SecondsOnPic)
|
|
|
|
dw BallSaver90SecondsOnPic
|
|
db Bank(BallSaver90SecondsOnPic)
|
|
|
|
dw PikachuSaverOnPic
|
|
db Bank(PikachuSaverOnPic)
|
|
|
|
dw ExtraBallOnPic
|
|
db Bank(ExtraBallOnPic)
|
|
|
|
dw SmallRewardOnPic
|
|
db Bank(SmallRewardOnPic)
|
|
|
|
dw BigRewardOnPic
|
|
db Bank(BigRewardOnPic)
|
|
|
|
dw CatchEmModeOnPic
|
|
db Bank(CatchEmModeOnPic)
|
|
|
|
dw EvolutionModeOnPic
|
|
db Bank(EvolutionModeOnPic)
|
|
|
|
dw GreatBallOnPic
|
|
db Bank(GreatBallOnPic)
|
|
|
|
dw UltraBallOnPic
|
|
db Bank(UltraBallOnPic)
|
|
|
|
dw MasterBallOnPic
|
|
db Bank(MasterBallOnPic)
|
|
|
|
dw BonusMultiplierOnPic
|
|
db Bank(BonusMultiplierOnPic)
|
|
|
|
dw GoToGengarBonusOnPic
|
|
db Bank(GoToGengarBonusOnPic)
|
|
|
|
dw GoToMewtwoBonusOnPic
|
|
db Bank(GoToMewtwoBonusOnPic)
|
|
|
|
dw GoToMeowthBonusOnPic
|
|
db Bank(GoToMeowthBonusOnPic)
|
|
|
|
dw GoToDiglettBonusOnPic
|
|
db Bank(GoToDiglettBonusOnPic)
|
|
|
|
dw GoToSeelBonusOnPic
|
|
db Bank(GoToSeelBonusOnPic)
|
|
|
|
dw SmallReward100PointsOnPic
|
|
db Bank(SmallReward100PointsOnPic)
|
|
|
|
dw SmallReward200PointsOnPic
|
|
db Bank(SmallReward200PointsOnPic)
|
|
|
|
dw SmallReward300PointsOnPic
|
|
db Bank(SmallReward300PointsOnPic)
|
|
|
|
dw SmallReward400PointsOnPic
|
|
db Bank(SmallReward400PointsOnPic)
|
|
|
|
dw SmallReward500PointsOnPic
|
|
db Bank(SmallReward500PointsOnPic)
|
|
|
|
dw SmallReward600PointsOnPic
|
|
db Bank(SmallReward600PointsOnPic)
|
|
|
|
dw SmallReward700PointsOnPic
|
|
db Bank(SmallReward700PointsOnPic)
|
|
|
|
dw SmallReward800PointsOnPic
|
|
db Bank(SmallReward800PointsOnPic)
|
|
|
|
dw SmallReward900PointsOnPic
|
|
db Bank(SmallReward900PointsOnPic)
|
|
|
|
dw BigReward1000000PointsOnPic
|
|
db Bank(BigReward1000000PointsOnPic)
|
|
|
|
dw BigReward2000000PointsOnPic
|
|
db Bank(BigReward2000000PointsOnPic)
|
|
|
|
dw BigReward3000000PointsOnPic
|
|
db Bank(BigReward3000000PointsOnPic)
|
|
|
|
dw BigReward4000000PointsOnPic
|
|
db Bank(BigReward4000000PointsOnPic)
|
|
|
|
dw BigReward5000000PointsOnPic
|
|
db Bank(BigReward5000000PointsOnPic)
|
|
|
|
dw BigReward6000000PointsOnPic
|
|
db Bank(BigReward6000000PointsOnPic)
|
|
|
|
dw BigReward7000000PointsOnPic
|
|
db Bank(BigReward7000000PointsOnPic)
|
|
|
|
dw BigReward8000000PointsOnPic
|
|
db Bank(BigReward8000000PointsOnPic)
|
|
|
|
dw BigReward9000000PointsOnPic
|
|
db Bank(BigReward9000000PointsOnPic)
|
|
|
|
dw BonusMultiplierX1OnPic
|
|
db Bank(BonusMultiplierX1OnPic)
|
|
|
|
dw BonusMultiplierX2OnPic
|
|
db Bank(BonusMultiplierX2OnPic)
|
|
|
|
dw BonusMultiplierX3OnPic
|
|
db Bank(BonusMultiplierX3OnPic)
|
|
|
|
dw BonusMultiplierX4OnPic
|
|
db Bank(BonusMultiplierX4OnPic)
|
|
|
|
dw BonusMultiplierX5OnPic
|
|
db Bank(BonusMultiplierX5OnPic)
|
|
|
|
dw PalletTownPic
|
|
db Bank(PalletTownPic)
|
|
|
|
dw ViridianCityPic
|
|
db Bank(ViridianCityPic)
|
|
|
|
dw ViridianForestPic
|
|
db Bank(ViridianForestPic)
|
|
|
|
dw PewterCityPic
|
|
db Bank(PewterCityPic)
|
|
|
|
dw MtMoonPic
|
|
db Bank(MtMoonPic)
|
|
|
|
dw CeruleanCityPic
|
|
db Bank(CeruleanCityPic)
|
|
|
|
dw VermilionCitySeasidePic
|
|
db Bank(VermilionCitySeasidePic)
|
|
|
|
dw VermilionCityStreetsPic
|
|
db Bank(VermilionCityStreetsPic)
|
|
|
|
dw RockMountainPic
|
|
db Bank(RockMountainPic)
|
|
|
|
dw LavenderTownPic
|
|
db Bank(LavenderTownPic)
|
|
|
|
dw CeladonCityPic
|
|
db Bank(CeladonCityPic)
|
|
|
|
dw CyclingRoadPic
|
|
db Bank(CyclingRoadPic)
|
|
|
|
dw FuchsiaCityPic
|
|
db Bank(FuchsiaCityPic)
|
|
|
|
dw SafariZonePic
|
|
db Bank(SafariZonePic)
|
|
|
|
dw SaffronCityPic
|
|
db Bank(SaffronCityPic)
|
|
|
|
dw SeafoamIslandsPic
|
|
db Bank(SeafoamIslandsPic)
|
|
|
|
dw CinnabarIslandPic
|
|
db Bank(CinnabarIslandPic)
|
|
|
|
dw IndigoPlateauPic
|
|
db Bank(IndigoPlateauPic)
|
|
|
|
Func_f269: ; 0xf269
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_f27c
|
|
ld a, $37
|
|
ld hl, $4aa8
|
|
ld de, $0030
|
|
ld bc, $0008
|
|
call Func_7dc
|
|
.asm_f27c
|
|
ld a, $3
|
|
ld de, $7288
|
|
ld hl, $9887
|
|
call Func_86f
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$f288,$f2a0 - $f288
|
|
|
|
Func_f2a0: ; 0xf2a0
|
|
push hl
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
add c
|
|
ld c, a
|
|
ld hl, $72be
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld h, b
|
|
ld l, c
|
|
ld de, $0030
|
|
ld bc, $0010
|
|
call Func_7dc
|
|
pop hl
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$f2be,$f533 - $f2be
|
|
|
|
Func_f533: ; 0xf533
|
|
call Func_30e8
|
|
call Func_f55c
|
|
call Func_f57f
|
|
ld a, $60
|
|
ld [$ffa6], a
|
|
dec a
|
|
ld [$ffa2], a
|
|
ld a, $fd
|
|
ld [$ffaf], a
|
|
call Func_f5a0
|
|
ld a, $90
|
|
ld [$ffa6], a
|
|
ld a, $83
|
|
ld [$ffa2], a
|
|
ld [$ffa8], a
|
|
ld a, $ff
|
|
ld [$ffaf], a
|
|
call Func_30e8
|
|
ret
|
|
|
|
Func_f55c: ; 0xf55c
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .gameboyColor
|
|
ld a, $35
|
|
ld hl, $61c0
|
|
ld de, $8830
|
|
ld bc, $0010
|
|
call LoadVRAMData
|
|
ret
|
|
.gameboyColor
|
|
ld a, $35
|
|
ld hl, $63c0
|
|
ld de, $8830
|
|
ld bc, $0010
|
|
call LoadVRAMData
|
|
ret
|
|
|
|
Func_f57f: ; 0xf57f
|
|
xor a
|
|
ld [$d4aa], a
|
|
ld hl, wcBottomMessageText
|
|
ld a, $81
|
|
ld b, $40
|
|
.clearLoop
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .clearLoop
|
|
ld a, $0
|
|
ld hl, wcBottomMessageText
|
|
ld de, vBGMap1
|
|
ld bc, $00c0
|
|
call LoadVRAMData
|
|
ret
|
|
|
|
Func_f5a0: ; 0xf5a0
|
|
ld de, $c540
|
|
ld hl, $3069 ; todo
|
|
call Func_f7b1
|
|
ld de, $c580
|
|
ld hl, $3070
|
|
call Func_f7b1
|
|
ld hl, $d489
|
|
call Func_f8b5
|
|
ld hl, $d48f
|
|
call Func_f8b5
|
|
ld a, $1
|
|
ld [$d4ab], a
|
|
call Func_f626
|
|
call Func_f64e
|
|
call Func_f60a
|
|
call Func_f676
|
|
ld a, $1
|
|
ld [$d4ab], a
|
|
call Func_f70d
|
|
ld a, [$d616]
|
|
and a
|
|
ret z
|
|
ld a, $10
|
|
call Func_52c
|
|
ld de, $0005
|
|
call Func_490
|
|
ld hl, wcBottomMessageText
|
|
ld bc, $0040
|
|
call Func_f81b
|
|
ld de, $c520
|
|
ld hl, $3094
|
|
call Func_f7b1
|
|
ld bc, $0040
|
|
ld de, $0000
|
|
call Func_f80d
|
|
.asm_f602
|
|
rst $10
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_f602
|
|
ret
|
|
|
|
Func_f60a: ; 0xf60a
|
|
ld a, [wCurrentStage]
|
|
rst $18
|
|
PointerTable_f60d: ; 0xf60d
|
|
dw $7945
|
|
dw $7945
|
|
dw $79F2
|
|
dw $79F2
|
|
dw $79F3
|
|
dw $79F3
|
|
dw $7AF6
|
|
dw $7AF6
|
|
dw $7AF7
|
|
dw $7AF7
|
|
dw $7AF8
|
|
dw $7AF8
|
|
|
|
Func_f626: ; 0xf626
|
|
ld de, $c501
|
|
ld hl, $3006 ; todo
|
|
call Func_f7b1
|
|
ld hl, $c501
|
|
ld a, [$d628]
|
|
call Func_f78e
|
|
ld bc, $0040
|
|
ld de, $0000
|
|
call Func_f80d
|
|
ld hl, $d628
|
|
ld de, $7921
|
|
call Func_f853
|
|
call Func_f824
|
|
ret
|
|
|
|
Func_f64e: ; 0xf64e
|
|
ld de, wcBottomMessageText
|
|
ld hl, $3019 ; todo
|
|
call Func_f7b1
|
|
ld hl, wcBottomMessageText
|
|
ld a, [$d629]
|
|
call Func_f78e
|
|
ld bc, $0040
|
|
ld de, $0000
|
|
call Func_f80d
|
|
ld hl, $d629
|
|
ld de, $7927
|
|
call Func_f853
|
|
call Func_f824
|
|
ret
|
|
|
|
Func_f676: ; 0xf676
|
|
ld b, $4
|
|
.asm_f678
|
|
push bc
|
|
ld hl, $c520
|
|
ld de, wcBottomMessageText
|
|
ld bc, $00e0
|
|
call Func_65d
|
|
ld bc, $00c0
|
|
ld de, $0000
|
|
call Func_f80d
|
|
ld a, [$d4ab]
|
|
and a
|
|
jr z, .asm_f69f
|
|
rst $10
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_f69f
|
|
xor a
|
|
ld [$d4ab], a
|
|
.asm_f69f
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_f678
|
|
ld de, $c540
|
|
ld hl, $307a ; todo
|
|
call Func_f7b1
|
|
ld de, $c580
|
|
ld hl, $3086 ; todo
|
|
call Func_f7b1
|
|
ld hl, $c550
|
|
ld a, [$d482]
|
|
call Func_f78e
|
|
ld bc, $0040
|
|
ld de, $0040
|
|
call Func_f80d
|
|
.asm_f6c7
|
|
push de
|
|
push hl
|
|
ld hl, $d494
|
|
ld de, $c586
|
|
call Func_f8bd
|
|
ld bc, $0040
|
|
ld de, $0080
|
|
call Func_f80d
|
|
ld de, $003e
|
|
call PlaySoundEffect
|
|
ld a, [$d4ab]
|
|
and a
|
|
jr z, .asm_f6f2
|
|
rst $10
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_f6f2
|
|
xor a
|
|
ld [$d4ab], a
|
|
.asm_f6f2
|
|
pop hl
|
|
pop de
|
|
ld a, [$d482]
|
|
and a
|
|
jr z, .asm_f709
|
|
dec a
|
|
ld [$d482], a
|
|
ld hl, $d48f
|
|
ld de, $d489
|
|
call Func_f902
|
|
jr .asm_f6c7
|
|
.asm_f709
|
|
call Func_f83a
|
|
ret
|
|
|
|
Func_f70d: ; 0xf70d
|
|
ld b, $4
|
|
.asm_f70f
|
|
push bc
|
|
ld hl, $c520
|
|
ld de, wcBottomMessageText
|
|
ld bc, $00e0
|
|
call Func_65d
|
|
ld bc, $00c0
|
|
ld de, $0000
|
|
call Func_f80d
|
|
ld a, [$d4ab]
|
|
and a
|
|
jr z, .asm_f736
|
|
rst $10
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_f736
|
|
xor a
|
|
ld [$d4ab], a
|
|
.asm_f736
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_f70f
|
|
ld de, $c560
|
|
ld hl, $308d
|
|
call Func_f7b1
|
|
ld hl, $d46f
|
|
ld de, $c566
|
|
call Func_f8bd
|
|
ld bc, $0040
|
|
ld de, $0060
|
|
call Func_f80d
|
|
ld de, $003e
|
|
call PlaySoundEffect
|
|
ld a, [$d4ab]
|
|
and a
|
|
jr z, .asm_f76c
|
|
rst $10
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_f76c
|
|
xor a
|
|
ld [$d4ab], a
|
|
.asm_f76c
|
|
ld hl, $d46a
|
|
ld de, $d48f
|
|
call Func_f902
|
|
ld hl, $d46f
|
|
ld de, $c566
|
|
call Func_f8bd
|
|
ld bc, $0040
|
|
ld de, $0060
|
|
call Func_f80d
|
|
call Func_f83a
|
|
call Func_f83a
|
|
ret
|
|
|
|
Func_f78e: ; 0xf78e
|
|
push hl
|
|
call ConvertHexByteToDecWord
|
|
pop hl
|
|
ld c, $1
|
|
ld a, d
|
|
call .asm_f7a4
|
|
inc hl
|
|
ld a, e
|
|
swap a
|
|
call .asm_f7a4
|
|
inc hl
|
|
ld c, $0
|
|
ld a, e
|
|
; fall through
|
|
.asm_f7a4
|
|
and $f
|
|
jr nz, .asm_f7ab
|
|
ld a, c
|
|
and a
|
|
ret nz
|
|
.asm_f7ab
|
|
add $86
|
|
ld [hl], a
|
|
ld c, $0
|
|
ret
|
|
|
|
Func_f7b1: ; 0xf7b1
|
|
ld a, [$d805]
|
|
and a
|
|
jr nz, .asm_f7e0
|
|
.asm_f7b7
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
cp $30
|
|
jr c, .asm_f7c6
|
|
cp $3a
|
|
jr nc, .asm_f7c6
|
|
add $56
|
|
jr .asm_f7dc
|
|
.asm_f7c6
|
|
cp $41
|
|
jr c, .asm_f7d2
|
|
cp $5b
|
|
jr nc, .asm_f7d2
|
|
add $bf
|
|
jr .asm_f7dc
|
|
.asm_f7d2
|
|
cp $65
|
|
jr nz, .asm_f7da
|
|
ld a, $83
|
|
jr .asm_f7dc
|
|
.asm_f7da
|
|
ld a, $81
|
|
.asm_f7dc
|
|
ld [de], a
|
|
inc de
|
|
jr .asm_f7b7
|
|
.asm_f7e0
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
cp $30
|
|
jr c, .asm_f7ef
|
|
cp $3a
|
|
jr nc, .asm_f7ef
|
|
add $56
|
|
jr .asm_f809
|
|
.asm_f7ef
|
|
cp $a0
|
|
jr c, .asm_f7fb
|
|
cp $e0
|
|
jr nc, .asm_f7fb
|
|
sub $80
|
|
jr .asm_f809
|
|
.asm_f7fb
|
|
cp $e0
|
|
jr c, .asm_f807
|
|
cp $f4
|
|
jr nc, .asm_f807
|
|
sub $50
|
|
jr .asm_f809
|
|
.asm_f807
|
|
ld a, $81
|
|
.asm_f809
|
|
ld [de], a
|
|
inc de
|
|
jr .asm_f7e0
|
|
|
|
Func_f80d: ; 0xf80d
|
|
ld hl, $9c00
|
|
add hl, de
|
|
push hl
|
|
ld hl, wcBottomMessageText
|
|
add hl, de
|
|
pop de
|
|
call LoadVRAMData
|
|
ret
|
|
|
|
Func_f81b: ; 0xf81b
|
|
ld a, $81
|
|
ld [hli], a
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, Func_f81b
|
|
ret
|
|
|
|
Func_f824: ; 0xf824
|
|
call Func_f83a
|
|
ld hl, wcBottomMessageText
|
|
ld bc, $0040
|
|
call Func_f81b
|
|
ld hl, $c548
|
|
ld bc, $0038
|
|
call Func_f81b
|
|
ret
|
|
|
|
Func_f83a: ; 0xf83a
|
|
ld a, [$d4ab]
|
|
and a
|
|
ret z
|
|
ld b, $46
|
|
.asm_f841
|
|
push bc
|
|
rst $10
|
|
pop bc
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr nz, .asm_f84e
|
|
dec b
|
|
jr nz, .asm_f841
|
|
ret
|
|
.asm_f84e
|
|
xor a
|
|
ld [$d4ab], a
|
|
ret
|
|
|
|
Func_f853: ; 0xf853
|
|
push hl
|
|
ld hl, $d483
|
|
call Func_f8b5
|
|
pop hl
|
|
.asm_f85b
|
|
push de
|
|
push hl
|
|
ld hl, $d488
|
|
ld de, $c546
|
|
call Func_f8bd
|
|
ld bc, $0040
|
|
ld de, $0040
|
|
call Func_f80d
|
|
ld de, $003e
|
|
call PlaySoundEffect
|
|
ld a, [$d4ab]
|
|
and a
|
|
jr z, .asm_f886
|
|
rst $10
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_f886
|
|
xor a
|
|
ld [$d4ab], a
|
|
.asm_f886
|
|
pop hl
|
|
pop de
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_f899
|
|
dec [hl]
|
|
push de
|
|
push hl
|
|
ld hl, $d483
|
|
call Func_f902
|
|
pop hl
|
|
pop de
|
|
jr .asm_f85b
|
|
.asm_f899
|
|
ld hl, $d489
|
|
ld de, $d483
|
|
call Func_f902
|
|
ld hl, $d48e
|
|
ld de, $c586
|
|
call Func_f8bd
|
|
ld bc, $0040
|
|
ld de, $0080
|
|
call Func_f80d
|
|
ret
|
|
|
|
Func_f8b5: ; 0xf8b5
|
|
xor a
|
|
ld b, $6
|
|
.asm_f8b8
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_f8b8
|
|
ret
|
|
|
|
Func_f8bd: ; 0xf8bd
|
|
ld bc, $0c01
|
|
.asm_f8c0
|
|
ld a, [hl]
|
|
swap a
|
|
call Func_f8d5
|
|
inc de
|
|
dec b
|
|
ld a, [hld]
|
|
call Func_f8d5
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_f8c0
|
|
ld a, $86
|
|
ld [de], a
|
|
inc de
|
|
ret
|
|
|
|
Func_f8d5: ; 0xf8d5
|
|
and $f
|
|
jr nz, .asm_f8e0
|
|
ld a, b
|
|
dec a
|
|
jr z, .asm_f8e0
|
|
ld a, c
|
|
and a
|
|
ret nz
|
|
.asm_f8e0
|
|
add $86
|
|
ld [de], a
|
|
ld c, $0
|
|
ld a, b
|
|
cp $c
|
|
jr z, .asm_f8f5
|
|
cp $9
|
|
jr z, .asm_f8f5
|
|
cp $6
|
|
jr z, .asm_f8f5
|
|
cp $3
|
|
ret nz
|
|
.asm_f8f5
|
|
push de
|
|
ld a, e
|
|
add $20
|
|
ld e, a
|
|
jr nc, .asm_f8fd
|
|
inc d
|
|
.asm_f8fd
|
|
ld a, $82
|
|
ld [de], a
|
|
pop de
|
|
ret
|
|
|
|
Func_f902: ; 0xf902
|
|
ld a, [de]
|
|
add [hl]
|
|
daa
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [hli], a
|
|
inc de
|
|
ld a, [de]
|
|
adc [hl]
|
|
daa
|
|
ld [hli], a
|
|
inc de
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$f921,$10000 - $f921
|
|
|
|
|
|
SECTION "bank4", ROMX, BANK[$4]
|
|
|
|
Func_10000: ; 0x10000
|
|
ld c, a
|
|
ld a, [$d54b]
|
|
and a
|
|
ret z
|
|
ld a, c
|
|
ld [$d54c], a
|
|
ld a, [$d550]
|
|
cp $1
|
|
jp z, $4a95
|
|
cp $2
|
|
jr nz, .asm_10021
|
|
ld [$ff8a], a
|
|
ld a, $c
|
|
ld hl, $41ce
|
|
call BankSwitch
|
|
ret
|
|
.asm_10021
|
|
ld a, [wCurrentStage]
|
|
call CallInFollowingTable
|
|
CallTable_10027: ; 0x10027
|
|
dw $4000
|
|
db $08, $00
|
|
|
|
dw $4000
|
|
db $08, $00
|
|
|
|
dw $4000
|
|
db $08, $00
|
|
|
|
dw $4000
|
|
db $08, $00
|
|
|
|
dw $42BC
|
|
db $08, $00
|
|
|
|
dw $42BC
|
|
db $08, $00
|
|
|
|
StartCatchEmMode: ; 0x1003f
|
|
ld a, [$d54b] ; current game mode?
|
|
and a
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d54b], a ; set to catchem mode?
|
|
xor a
|
|
ld [$d550], a
|
|
ld [$d54d], a
|
|
ld a, [wCurrentStage]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
push bc
|
|
ld hl, WildMonOffsetsPointers
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, [wCurrentMap]
|
|
sla a
|
|
ld c, a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hl]
|
|
ld b, a
|
|
pop de
|
|
ld hl, WildMonPointers
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
add hl, bc
|
|
call Func_959 ; random number?
|
|
and $f
|
|
call .asm_10130
|
|
ld c, a
|
|
ld b, $0
|
|
add hl, bc
|
|
ld a, [$d55b] ; this probably gets set to $08 when the rare mons should be used.
|
|
sla a
|
|
ld c, a
|
|
add hl, bc
|
|
ld a, [hl] ; a contains mon id
|
|
dec a
|
|
ld [wCurrentMon], a
|
|
ld a, [wCurrentMon]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, EvolutionLineIds
|
|
add hl, bc
|
|
ld c, [hl]
|
|
ld h, b
|
|
ld l, c
|
|
add hl, bc
|
|
add hl, bc ; multiply the evolution line id by 3
|
|
ld bc, Data_13685
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld [$d5c1], a
|
|
ld [$d5be], a
|
|
ld a, [hli]
|
|
ld [$d5c2], a
|
|
ld a, [hli]
|
|
ld [$d5c3], a
|
|
ld hl, $d586
|
|
ld a, [$d5b6]
|
|
ld c, a
|
|
and a
|
|
ld b, $18
|
|
jr z, .asm_100c7
|
|
.asm_100ba
|
|
ld a, $1
|
|
ld [hli], a
|
|
xor a
|
|
ld [hli], a
|
|
dec b
|
|
dec c
|
|
jr nz, .asm_100ba
|
|
ld a, b
|
|
and a
|
|
jr z, .asm_100ce
|
|
.asm_100c7
|
|
xor a
|
|
ld [hli], a
|
|
inc a
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_100c7
|
|
.asm_100ce
|
|
ld a, [wCurrentMon]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
ld hl, CatchEmTimerData
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hl]
|
|
ld b, a
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartTimer)
|
|
ld hl, StartTimer
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dbd4)
|
|
ld hl, Func_dbd4
|
|
call BankSwitch
|
|
call Func_10696
|
|
call Func_3579
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_1011d
|
|
ld a, $28
|
|
ld hl, $6300
|
|
ld de, $8ae0
|
|
ld bc, $0020
|
|
call Func_735
|
|
ld a, $0
|
|
ld hl, $2898
|
|
ld de, $9906
|
|
ld bc, $0008
|
|
call Func_735
|
|
.asm_1011d
|
|
call SetPokemonSeenFlag
|
|
ld a, [wCurrentStage]
|
|
rst $18 ; todo this is a funciton table after rst $18, not assembly instructions
|
|
ld [hl], c
|
|
ld c, b
|
|
ld [hl], c
|
|
ld c, b
|
|
adc d
|
|
ld c, c
|
|
adc d
|
|
ld c, c
|
|
adc h
|
|
ld c, c
|
|
adc h
|
|
ld c, c
|
|
.asm_10130 ; I think this checks to see if it should be Mew
|
|
push af
|
|
cp $f
|
|
jr nz, .asm_10155
|
|
ld a, c
|
|
cp $60
|
|
jr nz, .asm_10155
|
|
ld a, b
|
|
cp $1
|
|
jr nz, .asm_10155
|
|
ld a, [$d55b]
|
|
cp $8
|
|
jr nz, .asm_10155
|
|
ld a, [$d62f]
|
|
cp $2
|
|
jr nz, .asm_10155
|
|
pop af
|
|
xor a
|
|
ld [$d62f], a
|
|
ld a, $10
|
|
ret
|
|
.asm_10155
|
|
pop af
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$10157,$10464 - $10157
|
|
|
|
Func_10464: ; 0x10464
|
|
ld a, [wCurrentMon]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
add c
|
|
ld c, a
|
|
jr nc, .noCarry
|
|
inc b
|
|
.noCarry
|
|
ld hl, $74c0 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld h, b
|
|
ld l, c
|
|
ld de, $c400
|
|
ld bc, $0080
|
|
call Func_666
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$10488,$10696 - $10488
|
|
|
|
Func_10696: ; 0x10696
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5cc
|
|
ld de, $29b7
|
|
call Func_32aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$106a6,$106b6 - $106a6
|
|
|
|
Func_106b6: ; 0x106b6
|
|
ld a, [wCurrentMon]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b ; bc was just multiplied by 16
|
|
ld hl, PokemonNames + 1
|
|
add hl, bc
|
|
ld de, $2a67 ; todo "You got an"
|
|
ld bc, $2a91 ; todo
|
|
ld a, [hl]
|
|
; check if mon's name starts with a vowel, so it can print "an", instead of "a"
|
|
cp $41
|
|
jr z, .asm_106f1
|
|
cp $49
|
|
jr z, .asm_106f1
|
|
cp $55
|
|
jr z, .asm_106f1
|
|
cp $45
|
|
jr z, .asm_106f1
|
|
cp $4f
|
|
jr z, .asm_106f1
|
|
ld de, $2a56 ; todo "You got a"
|
|
ld bc, $2a79
|
|
.asm_106f1
|
|
push hl
|
|
push bc
|
|
push de
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5cc
|
|
pop de
|
|
call Func_32aa
|
|
ld hl, $d5d4
|
|
pop de
|
|
call Func_32aa
|
|
pop hl
|
|
ld de, $c520
|
|
ld b, $0 ; count the number of letters in mon's name in register b
|
|
.readLetter
|
|
ld a, [hli]
|
|
and a
|
|
jr z, .endOfName
|
|
ld [de], a
|
|
inc de
|
|
inc b
|
|
jr .readLetter
|
|
.endOfName
|
|
ld a, $20
|
|
ld [de], a
|
|
inc de
|
|
xor a
|
|
ld [de], a
|
|
ld a, [$d5db]
|
|
add b
|
|
ld [$d5db], a
|
|
ld a, $14
|
|
sub b
|
|
srl a
|
|
ld b, a
|
|
ld a, [$d5d8]
|
|
add b
|
|
ld [$d5d8], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$10732,$10753 - $10732
|
|
|
|
SetPokemonSeenFlag: ; 0x10753
|
|
ld a, [$d550]
|
|
and a
|
|
ld a, [wCurrentMon]
|
|
jr z, .asm_10766
|
|
ld a, [$d552]
|
|
cp $ff
|
|
jr nz, .asm_10766
|
|
ld a, [wCurrentMon]
|
|
.asm_10766
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
set 0, [hl]
|
|
ld hl, wPokedexFlags
|
|
ld de, $a10c
|
|
ld bc, $0098
|
|
call Func_f1a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1077c,$107f8 - $1077c
|
|
|
|
Func_107f8: ; 0x107f8
|
|
ld a, [wTimerFrames]
|
|
and a
|
|
ret nz
|
|
ld a, [wTimerMinutes]
|
|
and a
|
|
ret nz
|
|
ld a, [wTimerSeconds]
|
|
cp $20
|
|
jr nz, .asm_10810
|
|
ld de, $0749
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_10810
|
|
cp $10
|
|
jr nz, .asm_1081b
|
|
ld de, $0a4a
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_1081b
|
|
cp $5
|
|
ret nz
|
|
ld de, $0d4b
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$10825,$10ab3 - $10825
|
|
|
|
Func_10ab3: ; 0x10ab3
|
|
ld a, [$d54b]
|
|
and a
|
|
ret nz
|
|
ld a, [wCurrentStage]
|
|
rst $18
|
|
; CallTable todo
|
|
|
|
INCBIN "baserom.gbc",$10abc,$1126c - $10abc
|
|
|
|
WildMonOffsetsPointers: ; 0x1126c
|
|
dw RedStageWildMonDataOffsets
|
|
dw RedStageWildMonDataOffsets
|
|
dw RedStageWildMonDataOffsets
|
|
dw RedStageWildMonDataOffsets
|
|
dw BlueStageWildMonDataOffsets
|
|
dw BlueStageWildMonDataOffsets
|
|
|
|
RedStageWildMonDataOffsets: ; 0x11278
|
|
dw (RedStagePalletTownWildMons - RedStageWildMons) ; PALLET_TOWN
|
|
dw $0000 ; VIRIDIAN_CITY (unused in Red Stage)
|
|
dw (RedStageViridianForestWildMons - RedStageWildMons) ; VIRIDIAN_FOREST
|
|
dw (RedStagePewterCityWildMons - RedStageWildMons) ; PEWTER_CITY
|
|
dw $0000 ; MT_MOON (unused in Red Stage)
|
|
dw (RedStageCeruleanCityWildMons - RedStageWildMons) ; CERULEAN_CITY
|
|
dw (RedStageVermilionSeasideWildMons - RedStageWildMons) ; VERMILION_SEASIDE
|
|
dw $0000 ; VERMILION_STREETS (unused in Red Stage)
|
|
dw (RedStageRockMountainWildMons - RedStageWildMons) ; ROCK_MOUNTAIN
|
|
dw (RedStageLavenderTownWildMons - RedStageWildMons) ; LAVENDER_TOWN
|
|
dw $0000 ; CELADON_CITY (unused in Red Stage)
|
|
dw (RedStageCyclingRoadWildMons - RedStageWildMons) ; CYCLING_ROAD
|
|
dw $0000 ; FUCHSIA_CITY (unused in Red Stage)
|
|
dw (RedStageSafariZoneWildMons - RedStageWildMons) ; SAFARI_ZONE
|
|
dw $0000 ; SAFFRON_CITY (unused in Red Stage)
|
|
dw (RedStageSeafoamIslandsWildMons - RedStageWildMons) ; SEAFOAM_ISLANDS
|
|
dw (RedStageCinnabarIslandWildMons - RedStageWildMons) ; CINNABAR_ISLAND
|
|
dw (RedStageIndigoPlateauWildMons - RedStageWildMons) ; INDIGO_PLATEAU
|
|
|
|
BlueStageWildMonDataOffsets: ; 0x1129c
|
|
dw $0000 ; PALLET_TOWN (unused in Blue Stage)
|
|
dw (BlueStageViridianCityWildMons - BlueStageWildMons) ; VIRIDIAN_CITY
|
|
dw (BlueStageViridianForestWildMons - BlueStageWildMons) ; VIRIDIAN_FOREST
|
|
dw $0000 ; PEWTER_CITY (unused in Blue Stage)
|
|
dw (BlueStageMtMoonWildMons - BlueStageWildMons) ; MT_MOON
|
|
dw (BlueStageCeruleanCityWildMons - BlueStageWildMons) ; CERULEAN_CITY
|
|
dw $0000 ; VERMILION_SEASIDE (unused in Blue Stage)
|
|
dw (BlueStageVermilionStreetsWildMons - BlueStageWildMons) ; VERMILION_STREETS
|
|
dw (BlueStageRockMountainWildMons - BlueStageWildMons) ; ROCK_MOUNTAIN
|
|
dw $0000 ; LAVENDER_TOWN (unused in Blue Stage)
|
|
dw (BlueStageCeladonCityWildMons - BlueStageWildMons) ; CELADON_CITY
|
|
dw $0000 ; CYCLING_ROAD (unused in Blue Stage)
|
|
dw (BlueStageFuchsiaCityWildMons - BlueStageWildMons) ; FUCHSIA_CITY
|
|
dw (BlueStageSafariZoneWildMons - BlueStageWildMons) ; SAFARI_ZONE
|
|
dw (BlueStageSaffronCityWildMons - BlueStageWildMons) ; SAFFRON_CITY
|
|
dw $0000 ; SEAFOAM_ISLANDS (unused in Blue Stage)
|
|
dw (BlueStageCinnabarIslandWildMons - BlueStageWildMons) ; CINNABAR_ISLAND
|
|
dw (BlueStageIndigoPlateauWildMons - BlueStageWildMons) ; INDIGO_PLATEAU
|
|
|
|
WildMonPointers: ; 0x112c0
|
|
dw RedStageWildMons
|
|
dw RedStageWildMons
|
|
dw RedStageWildMons
|
|
dw RedStageWildMons
|
|
dw BlueStageWildMons
|
|
dw BlueStageWildMons
|
|
|
|
INCLUDE "data/red_wild_mons.asm"
|
|
INCLUDE "data/blue_wild_mons.asm"
|
|
|
|
INCBIN "baserom.gbc",$115ce,$1161d - $115ce
|
|
|
|
INCLUDE "data/evolution_lines.asm"
|
|
|
|
INCBIN "baserom.gbc",$116b4,$11a3e - $116b4
|
|
|
|
INCLUDE "data/mon_names.asm"
|
|
|
|
INCBIN "baserom.gbc",$123ae,$12a22 - $123ae
|
|
|
|
INCLUDE "data/catchem_timer_values.asm"
|
|
|
|
INCBIN "baserom.gbc",$12b50,$13685 - $12b50
|
|
|
|
Data_13685: ; 0x13685
|
|
; Each 3-byte entry is related to an evolution line. Don't know what this is for, yet.
|
|
db $12, $12, $10
|
|
db $10, $10, $10
|
|
db $12, $12, $0E
|
|
db $14, $14, $12
|
|
db $14, $14, $10
|
|
db $0A, $0A, $0E
|
|
db $11, $13, $10
|
|
db $0B, $0B, $10
|
|
db $12, $12, $0E
|
|
db $12, $14, $0E
|
|
db $10, $12, $10
|
|
db $11, $12, $0E
|
|
db $11, $12, $0E
|
|
db $12, $13, $10
|
|
db $11, $11, $10
|
|
db $12, $12, $10
|
|
db $08, $08, $10
|
|
db $10, $10, $10
|
|
db $10, $10, $10
|
|
db $11, $11, $0E
|
|
db $10, $10, $0E
|
|
db $14, $14, $0E
|
|
db $30, $30, $10
|
|
db $12, $12, $10
|
|
db $12, $12, $10
|
|
db $10, $10, $10
|
|
db $10, $10, $10
|
|
db $12, $14, $10
|
|
db $10, $12, $10
|
|
db $0C, $0C, $12
|
|
db $12, $14, $0C
|
|
db $12, $14, $0E
|
|
db $30, $30, $10
|
|
db $14, $14, $10
|
|
db $12, $12, $0E
|
|
db $12, $12, $0E
|
|
db $14, $14, $0E
|
|
db $12, $12, $10
|
|
db $14, $14, $0E
|
|
db $10, $10, $0E
|
|
db $12, $12, $10
|
|
db $14, $14, $10
|
|
db $14, $12, $10
|
|
db $02, $02, $10
|
|
db $12, $12, $10
|
|
db $12, $12, $10
|
|
db $14, $10, $10
|
|
db $14, $10, $10
|
|
db $14, $12, $10
|
|
db $11, $11, $10
|
|
db $14, $14, $10
|
|
db $12, $12, $10
|
|
db $10, $10, $10
|
|
db $12, $12, $10
|
|
db $0F, $0F, $0E
|
|
db $12, $12, $0E
|
|
db $23, $23, $10
|
|
db $13, $13, $10
|
|
db $13, $13, $10
|
|
db $12, $12, $10
|
|
db $12, $14, $10
|
|
db $14, $14, $0E
|
|
db $12, $12, $0E
|
|
db $12, $14, $10
|
|
db $18, $18, $0C
|
|
db $16, $16, $0C
|
|
db $14, $14, $10
|
|
db $12, $12, $10
|
|
db $10, $10, $0E
|
|
db $12, $12, $0E
|
|
db $12, $12, $0E
|
|
db $0C, $0C, $12
|
|
db $26, $36, $12
|
|
db $13, $13, $10
|
|
db $13, $13, $10
|
|
db $13, $13, $10
|
|
db $12, $12, $0E
|
|
db $14, $14, $0E
|
|
db $14, $14, $0E
|
|
|
|
|
|
SECTION "bank5", ROMX, BANK[$5]
|
|
|
|
INCBIN "baserom.gbc",$14000,$1404a - $14000
|
|
|
|
Func_1404a: ; 0x1404a
|
|
ld a, [$d57d]
|
|
and a
|
|
ret z
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret nz
|
|
ld a, [$d580]
|
|
and a
|
|
ret z
|
|
ld a, $f
|
|
ld [$d581], a
|
|
call Func_1762f
|
|
ld hl, $d582
|
|
ld a, $ff
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld hl, $d582
|
|
ld a, [wTimerMinutes]
|
|
and $f
|
|
call Func_1764f
|
|
ld a, [wTimerSeconds]
|
|
swap a
|
|
and $f
|
|
call Func_1764f
|
|
ld a, [wTimerSeconds]
|
|
and $f
|
|
call Func_1764f
|
|
ld a, e
|
|
srl a
|
|
srl a
|
|
ld d, $90
|
|
call Func_1764f
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$14091,$143e1 - $14091
|
|
|
|
Func_143e1: ; 0x143e1
|
|
; not collisions.
|
|
call Func_14474 ; voltorbs
|
|
call Func_14498
|
|
call Func_144b6
|
|
call Func_144c0
|
|
call Func_144da
|
|
call Func_14439
|
|
call Func_144ac
|
|
jp Func_1441e
|
|
|
|
Func_143f9: ; 0x143f9
|
|
ld a, [wBallYPos + 1]
|
|
cp $56
|
|
jr nc, .asm_14412
|
|
call Func_1444d
|
|
call Func_144cd
|
|
call Func_14467
|
|
call Func_1445a
|
|
call Func_14443
|
|
jp Func_1441e
|
|
.asm_14412
|
|
call Func_14481
|
|
call Func_144e4
|
|
call Func_144a2
|
|
jp Func_1448e
|
|
|
|
Func_1441e: ; 0x1441e
|
|
xor a
|
|
ld [$d578], a
|
|
ld a, [$d551]
|
|
and a
|
|
ret z
|
|
ld a, [wCurrentStage]
|
|
ld hl, $45d2 ; todo
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp Func_27fd
|
|
|
|
INCBIN "baserom.gbc",$14439,$14439 - $14439
|
|
|
|
Func_14439: ; 0x14439
|
|
ld de, $45b5
|
|
ld bc, $d5fe
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_14443: ; 0x14443
|
|
ld de, $45bb
|
|
ld bc, $d601
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_1444d: ; 0x1444d
|
|
ld de, $45af
|
|
ld hl, $459d
|
|
ld bc, $d5c7
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_1445a: ; 0x1445a
|
|
ld de, $45c9
|
|
ld hl, $45c1
|
|
ld bc, $d60a
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_14467: ; 0x14467
|
|
ld de, $44f4
|
|
ld hl, $44ee
|
|
ld bc, $d4ed
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_14474: ; 0x14474
|
|
ld de, $4515 ; todo
|
|
ld hl, $44fd ; todo
|
|
ld bc, $d4cb
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_14481: ; 0x14481
|
|
ld de, $452d
|
|
ld hl, $4521
|
|
ld bc, $d4d8
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_1448e: ; 0x1448e
|
|
ld de, $4536
|
|
ld bc, $d4dc
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_14498: ; 0x14498
|
|
ld de, $453c ; todo
|
|
ld bc, $d507
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_144a2: ; 0x144a2
|
|
ld de, $4542
|
|
ld bc, $d50d
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_144ac: ; 0x144ac
|
|
ld de, $4551
|
|
ld bc, $d5f7
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_144b6: ; 0x144b6
|
|
ld de, $455d ; todo
|
|
ld bc, $d51f
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_144c0: ; 0x144c0
|
|
ld de, $457d ; todo
|
|
ld hl, $4578 ; todo
|
|
ld bc, $d500
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_144cd: ; 0x144cd
|
|
ld de, $4588
|
|
ld hl, $4583
|
|
ld bc, $d500
|
|
and a
|
|
jp Func_2775
|
|
|
|
INCBIN "baserom.gbc",$144da,$144da - $144da
|
|
|
|
Func_144da: ; 0x144da
|
|
ld de, $458e
|
|
ld bc, $d4fb
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_144e4: ; 0x144e4
|
|
ld de, $4594
|
|
ld bc, $d515
|
|
scf
|
|
jp Func_2775
|
|
|
|
INCBIN "baserom.gbc",$144ee,$1460e - $144ee
|
|
|
|
Func_1460e: ; 0x1460e
|
|
; not collisions
|
|
call Func_14d85
|
|
call Func_14dea
|
|
call Func_1535d
|
|
call Func_15575
|
|
call Func_15270
|
|
call Func_1581f
|
|
call Func_1660c
|
|
call Func_16781
|
|
call Func_15e93
|
|
call Func_160f0
|
|
call Func_161e0
|
|
call Func_164e3
|
|
call Func_146a9
|
|
call Func_174ea
|
|
call Func_148cf
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30188)
|
|
ld hl, Func_30188
|
|
call BankSwitch
|
|
ld a, $0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_14652: ; 0x14652
|
|
call Func_14795
|
|
call Func_15f86
|
|
call Func_147aa
|
|
call Func_14880
|
|
call Func_14e10
|
|
call Func_154a9
|
|
call Func_15575
|
|
call Func_151cb
|
|
call Func_1652d
|
|
call Func_1660c
|
|
call Func_167ff
|
|
call Func_169a6
|
|
call Func_16d9d
|
|
call Func_16279
|
|
call Func_161af
|
|
call Func_164e3
|
|
call Func_14733
|
|
call Func_146a2
|
|
call Func_174d0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30188)
|
|
ld hl, Func_30188
|
|
call BankSwitch
|
|
ld a, $0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_146a2: ; 0x146a2
|
|
call Func_146a9
|
|
call nz, Func_14707
|
|
ret
|
|
|
|
Func_146a9: ; 0x146a9
|
|
ld a, [$d4a3]
|
|
ld hl, $d4a4
|
|
or [hl]
|
|
ret z
|
|
ld a, [wBallXPos + 1]
|
|
cp $9a
|
|
jr nc, .asm_146e8
|
|
ld a, [$d4a3]
|
|
dec a
|
|
ld [$d4a3], a
|
|
bit 7, a
|
|
jr z, .asm_146e8
|
|
ld a, $3b
|
|
ld [$d4a3], a
|
|
ld a, [hl]
|
|
dec a
|
|
bit 7, a
|
|
jr nz, .asm_146cf
|
|
ld [hl], a
|
|
.asm_146cf
|
|
inc a
|
|
ld c, $0
|
|
cp $2
|
|
jr c, .asm_146e4
|
|
ld c, $4
|
|
cp $6
|
|
jr c, .asm_146e4
|
|
ld c, $10
|
|
cp $b
|
|
jr c, .asm_146e4
|
|
ld c, $ff
|
|
.asm_146e4
|
|
ld a, c
|
|
ld [$d4a2], a
|
|
.asm_146e8
|
|
ld a, [$d4a2]
|
|
ld c, $0
|
|
and a
|
|
jr z, .asm_146fe
|
|
ld c, $1
|
|
cp $ff
|
|
jr z, .asm_146fe
|
|
ld hl, $ffb3
|
|
and [hl]
|
|
jr z, .asm_146fe
|
|
ld c, $0
|
|
.asm_146fe
|
|
ld a, [$d4a1]
|
|
cp c
|
|
ld a, c
|
|
ld [$d4a1], a
|
|
ret
|
|
|
|
Func_14707: ; 0x14707
|
|
ld a, [$d4a1]
|
|
and a
|
|
jr nz, .asm_1471c
|
|
ld a, $5
|
|
ld hl, $472b
|
|
ld de, $99a8
|
|
ld bc, $0004
|
|
call Func_735
|
|
ret
|
|
.asm_1471c
|
|
ld a, $5
|
|
ld hl, $472f
|
|
ld de, $99a8
|
|
ld bc, $0004
|
|
call Func_735
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1472b,$14733 - $1472b
|
|
|
|
Func_14733: ; 0x14733
|
|
ld c, $0
|
|
ld a, [$d49b]
|
|
and a
|
|
jr z, .asm_1473d
|
|
ld c, $1
|
|
.asm_1473d
|
|
ld a, [$d4a9]
|
|
cp c
|
|
ld a, c
|
|
ld [$d4a9], a
|
|
ret z
|
|
ld c, $0
|
|
ld a, [$d49b]
|
|
and a
|
|
jr z, .asm_14750
|
|
ld c, $2
|
|
.asm_14750
|
|
ld b, $0
|
|
ld hl, $475f
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1475f,$14795 - $1475f
|
|
|
|
Func_14795: ; 0x14795
|
|
ld a, [$d5c7]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d5c7], a
|
|
ld a, $1
|
|
ld [$d5bf], a
|
|
ld de, $0006
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_147aa: ; 0x147aa
|
|
ld a, [$d4ed]
|
|
and a
|
|
jp z, $4834
|
|
xor a
|
|
ld [$d4ed], a
|
|
ld a, [$d4ee]
|
|
sub $1
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d4f0
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $3
|
|
jr z, .asm_14834
|
|
inc a
|
|
ld [hld], a
|
|
ld [hl], $50
|
|
ld hl, $d4f7
|
|
add hl, bc
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, c
|
|
and a
|
|
jr z, .asm_14807
|
|
ld a, $6a
|
|
ld [$c7f0], a
|
|
ld a, $6b
|
|
ld [$c810], a
|
|
ld a, $5
|
|
call Func_149d9
|
|
ld a, [$d4f2]
|
|
add $4
|
|
call Func_149f5
|
|
ld a, $8
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, [$d4f2]
|
|
cp $3
|
|
call z, Func_14920
|
|
jr .asm_14830
|
|
.asm_14807
|
|
ld a, $66
|
|
ld [$c7e3], a
|
|
ld a, $67
|
|
ld [$c803], a
|
|
ld a, $2
|
|
call Func_149d9
|
|
ld a, [$d4f0]
|
|
call Func_149f5
|
|
ld a, $7
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, [$d4f0]
|
|
cp $3
|
|
call z, Func_14947
|
|
.asm_14830
|
|
call Func_1496d
|
|
ret
|
|
.asm_14834
|
|
ld a, [$d4ef]
|
|
and a
|
|
jr z, .asm_14857
|
|
dec a
|
|
ld [$d4ef], a
|
|
jr nz, .asm_14857
|
|
ld a, [$d4f0]
|
|
sub $3
|
|
jr nz, .asm_1484d
|
|
ld [$d4f0], a
|
|
call Func_149f5
|
|
.asm_1484d
|
|
ld a, $64
|
|
ld [$c7e3], a
|
|
ld a, $65
|
|
ld [$c803], a
|
|
.asm_14857
|
|
ld a, [$d4f1]
|
|
and a
|
|
jr z, .asm_1487c
|
|
dec a
|
|
ld [$d4f1], a
|
|
jr nz, .asm_1487c
|
|
ld a, [$d4f2]
|
|
sub $3
|
|
jr nz, .asm_14872
|
|
ld [$d4f2], a
|
|
add $4
|
|
call Func_149f5
|
|
.asm_14872
|
|
ld a, $68
|
|
ld [$c7f0], a
|
|
ld a, $69
|
|
ld [$c810], a
|
|
.asm_1487c
|
|
call Func_14990
|
|
ret
|
|
|
|
Func_14880: ; 0x14880
|
|
ld hl, $d4f7
|
|
dec [hl]
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr nz, .asm_148a6
|
|
dec [hl]
|
|
ld a, [hld]
|
|
cp $ff
|
|
jr nz, .asm_148a6
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [$d4f0]
|
|
and a
|
|
jr z, .asm_148a6
|
|
cp $3
|
|
jr z, .asm_148a6
|
|
dec a
|
|
ld [$d4f0], a
|
|
call Func_149f5
|
|
.asm_148a6
|
|
ld hl, $d4f9
|
|
dec [hl]
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr nz, .asm_148ce
|
|
dec [hl]
|
|
ld a, [hld]
|
|
cp $ff
|
|
jr nz, .asm_148ce
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [$d4f2]
|
|
and a
|
|
jr z, .asm_148ce
|
|
cp $3
|
|
jr z, .asm_148ce
|
|
dec a
|
|
ld [$d4f2], a
|
|
add $4
|
|
call Func_149f5
|
|
.asm_148ce
|
|
ret
|
|
|
|
Func_148cf: ; 0x148cf
|
|
ld b, $0
|
|
ld hl, $d4f8
|
|
ld a, [hld]
|
|
or [hl]
|
|
jr z, .asm_148f8
|
|
dec [hl]
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr nz, .asm_148f8
|
|
dec [hl]
|
|
ld a, [hld]
|
|
cp $ff
|
|
jr nz, .asm_148f8
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [$d4f0]
|
|
and a
|
|
jr z, .asm_148f8
|
|
cp $3
|
|
jr z, .asm_148f8
|
|
dec a
|
|
ld [$d4f0], a
|
|
.asm_148f8
|
|
ld hl, $d4fa
|
|
ld a, [hld]
|
|
or [hl]
|
|
jr z, .asm_1491f
|
|
dec [hl]
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr nz, .asm_1491f
|
|
dec [hl]
|
|
ld a, [hld]
|
|
cp $ff
|
|
jr nz, .asm_1491f
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [$d4f2]
|
|
and a
|
|
jr z, .asm_1491f
|
|
cp $3
|
|
jr z, .asm_1491f
|
|
dec a
|
|
ld [$d4f2], a
|
|
.asm_1491f
|
|
ret
|
|
|
|
Func_14920: ; 0x14920
|
|
ld hl, $d62b
|
|
call Func_e4a
|
|
jr nc, .asm_14937
|
|
ld c, $a
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
.asm_14937
|
|
ld a, $1
|
|
ld [$d55a], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_301ec)
|
|
ld hl, Func_301ec
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_14947: ; 0x14947
|
|
ld hl, $d62b
|
|
call Func_e4a
|
|
jr nc, .asm_1495e
|
|
ld c, $a
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
.asm_1495e
|
|
xor a
|
|
ld [$d55a], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_301ec)
|
|
ld hl, Func_301ec
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_1496d: ; 0x1496d
|
|
ld a, $55
|
|
ld [$d803], a
|
|
ld a, $4
|
|
ld [$d804], a
|
|
ld a, $2
|
|
ld [$d7eb], a
|
|
ld bc, $34be
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld de, $000f
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_14990: ; 0x14990
|
|
ld a, [$d4ef]
|
|
and a
|
|
jr nz, .asm_149b6
|
|
ld a, [$d4f3]
|
|
and a
|
|
jr z, .asm_149a2
|
|
dec a
|
|
ld [$d4f3], a
|
|
jr .asm_149b6
|
|
.asm_149a2
|
|
call Func_1130
|
|
ret nz
|
|
ld a, $14
|
|
ld [$d4f3], a
|
|
ld a, [$d4f4]
|
|
xor $1
|
|
ld [$d4f4], a
|
|
call Func_149d9
|
|
.asm_149b6
|
|
ld a, [$d4f1]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4f5]
|
|
and a
|
|
jr z, .asm_149c6
|
|
dec a
|
|
ld [$d4f5], a
|
|
ret
|
|
.asm_149c6
|
|
call Func_1130
|
|
ret nz
|
|
ld a, $14
|
|
ld [$d4f5], a
|
|
ld a, [$d4f6]
|
|
xor $1
|
|
ld [$d4f6], a
|
|
add $3
|
|
; fall through
|
|
Func_149d9: ; 0x149d9
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4a11 ; todo
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_149e9
|
|
ld hl, $4a83 ; todo
|
|
.asm_149e9
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_149f5: ; 0x149f5
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4af5 ; todo
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_14a05
|
|
ld hl, $4c8d ; todo
|
|
.asm_14a05
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$14a11,$14d85 - $14a11
|
|
|
|
Func_14d85: ; 0x14d85
|
|
ld a, [$d4cb]
|
|
and a
|
|
jr z, .asm_14db9
|
|
xor a
|
|
ld [$d4cb], a
|
|
call Func_14dc9
|
|
ld a, $10
|
|
ld [$d4d6], a
|
|
ld a, [$d4cc]
|
|
sub $3
|
|
ld [$d4d7], a
|
|
ld a, $4 ; is this also referring to Bank(Func_10000)?
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld bc, $34be
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ret
|
|
.asm_14db9
|
|
ld a, [$d4d6]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d4d6], a
|
|
ret nz
|
|
ld a, $ff
|
|
ld [$d4d7], a
|
|
ret
|
|
|
|
Func_14dc9: ; 0x14dc9
|
|
ld a, $ff
|
|
ld [$d803], a
|
|
ld a, $3
|
|
ld [$d804], a
|
|
ld hl, $0200
|
|
ld a, l
|
|
ld [$d7bc], a
|
|
ld a, h
|
|
ld [$d7bd], a
|
|
ld a, $80
|
|
ld [wFlipperCollision], a
|
|
ld de, $000e
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_14dea: ; 0x14dea
|
|
ld a, [$d507]
|
|
and a
|
|
jr z, Func_14e10
|
|
xor a
|
|
ld [$d507], a
|
|
ld a, [wBallYVelocity]
|
|
ld c, a
|
|
ld a, [wBallYVelocity + 1]
|
|
ld b, a
|
|
ld a, c
|
|
ld [$d50b], a
|
|
ld a, b
|
|
ld [$d50c], a
|
|
ld a, $c
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
; fall through
|
|
Func_14e10: ; 0x14e10
|
|
ld hl, $d50b
|
|
ld a, [hli]
|
|
or [hl]
|
|
ret z
|
|
ld a, [$d50b]
|
|
ld c, a
|
|
ld a, [$d50c]
|
|
ld b, a
|
|
bit 7, b
|
|
jr nz, .asm_14e2e
|
|
ld a, c
|
|
sub $7
|
|
ld c, a
|
|
ld a, b
|
|
sbc $0
|
|
ld b, a
|
|
jr nc, .asm_14e3b
|
|
jr .asm_14e38
|
|
.asm_14e2e
|
|
ld a, c
|
|
add $7
|
|
ld c, a
|
|
ld a, b
|
|
adc $0
|
|
ld b, a
|
|
jr nc, .asm_14e3b
|
|
.asm_14e38
|
|
ld bc, $0000
|
|
.asm_14e3b
|
|
ld a, c
|
|
ld [$d50b], a
|
|
ld a, b
|
|
ld [$d50c], a
|
|
ld hl, $d50b
|
|
ld a, [$d509]
|
|
add [hl]
|
|
ld [$d509], a
|
|
inc hl
|
|
ld a, [$d50a]
|
|
adc [hl]
|
|
bit 7, a
|
|
ld c, $0
|
|
jr z, .asm_14e5e
|
|
add $18
|
|
ld c, $1
|
|
jr .asm_14e66
|
|
.asm_14e5e
|
|
cp $18
|
|
jr c, .asm_14e66
|
|
sub $18
|
|
ld c, $1
|
|
.asm_14e66
|
|
ld [$d50a], a
|
|
ld a, c
|
|
and a
|
|
ret z
|
|
ld bc, $34ac
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld hl, $d62d
|
|
call Func_e4a
|
|
ld a, [$d517]
|
|
cp $f
|
|
jr nz, .asm_14e8a
|
|
call Func_14ea7
|
|
ret
|
|
.asm_14e8a
|
|
inc a
|
|
ld [$d517], a
|
|
call Func_14ea7
|
|
ld a, [$d517]
|
|
cp $f
|
|
jr nz, .asm_14e9d
|
|
ld a, $64
|
|
ld [$d51e], a
|
|
.asm_14e9d
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret nz
|
|
call Func_14ece
|
|
ret
|
|
|
|
Func_14ea7: ; 0x14ea7
|
|
ld a, [$d51e]
|
|
and a
|
|
ret nz
|
|
ld a, [$d517]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4ebe ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld d, $0
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$14ebe,$14ece - $14ebe
|
|
|
|
Func_14ece: ; 0x14ece
|
|
ld a, [$d517]
|
|
ld c, a
|
|
sla c
|
|
ld b, $0
|
|
ld hl, $4eeb ; todo
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_14ee1
|
|
ld hl, $509b
|
|
.asm_14ee1
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$14eeb,$151cb - $14eeb
|
|
|
|
Func_151cb: ; 0x151cb
|
|
ld a, [$d50d]
|
|
and a
|
|
jr z, .asm_15229
|
|
xor a
|
|
ld [$d50d], a
|
|
ld a, [$d513]
|
|
and a
|
|
jr nz, .asm_15229
|
|
ld a, [$d50e]
|
|
sub $a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d50f
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [hl], $1
|
|
and a
|
|
ret nz
|
|
ld bc, $34b2
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld hl, $d50f
|
|
ld a, [hli]
|
|
and [hl]
|
|
inc hl
|
|
and [hl]
|
|
inc hl
|
|
and [hl]
|
|
jr z, .asm_1522d
|
|
ld a, $1
|
|
ld [$d513], a
|
|
ld a, $80
|
|
ld [$d514], a
|
|
ld bc, $34b8
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld de, $0009
|
|
call PlaySoundEffect
|
|
ld hl, $d62c
|
|
call Func_e4a
|
|
jr .asm_1522d
|
|
.asm_15229
|
|
call Func_15270
|
|
ret z
|
|
.asm_1522d
|
|
ld hl, $d512
|
|
ld b, $4
|
|
.asm_15232
|
|
ld a, [hld]
|
|
push hl
|
|
call Func_1523c
|
|
pop hl
|
|
dec b
|
|
jr nz, .asm_15232
|
|
ret
|
|
|
|
Func_1523c: ; 0x1523c
|
|
and a
|
|
jr z, .asm_1524e
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_15249
|
|
ld hl, $52dd ; todo
|
|
jr .asm_1525b
|
|
.asm_15249
|
|
ld hl, $531d ; todo
|
|
jr .asm_1525b
|
|
.asm_1524e
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_15258
|
|
ld hl, $52e5
|
|
jr .asm_1525b
|
|
.asm_15258
|
|
ld hl, $5325
|
|
.asm_1525b
|
|
push bc
|
|
dec b
|
|
sla b
|
|
ld e, b
|
|
ld d, $0
|
|
add hl, de
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, [hl]
|
|
ld a, $5
|
|
ld de, $117b
|
|
call Func_10c5
|
|
pop bc
|
|
ret
|
|
|
|
Func_15270: ; 0x15270
|
|
ld a, [$d513]
|
|
and a
|
|
jr z, .asm_152a6
|
|
ld a, [$d514]
|
|
dec a
|
|
ld [$d514], a
|
|
jr nz, .asm_1528d
|
|
ld [$d513], a
|
|
ld a, $1
|
|
ld [$d608], a
|
|
ld a, $3
|
|
ld [$d607], a
|
|
xor a
|
|
.asm_1528d
|
|
and $7
|
|
ret nz
|
|
ld a, [$d514]
|
|
srl a
|
|
srl a
|
|
srl a
|
|
and $1
|
|
ld hl, $d50f
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld a, $1
|
|
and a
|
|
ret
|
|
.asm_152a6
|
|
ld hl, wKeyConfigLeftFlipper
|
|
call IsKeyPressed
|
|
jr z, .asm_152c2
|
|
ld hl, $d50f
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hl]
|
|
ld d, a
|
|
ld a, c
|
|
ld [hld], a
|
|
ld a, d
|
|
ld [hld], a
|
|
ld a, e
|
|
ld [hld], a
|
|
ld a, b
|
|
ld [hl], a
|
|
ret
|
|
.asm_152c2
|
|
ld hl, wKeyConfigRightFlipper
|
|
call IsKeyPressed
|
|
ret z
|
|
ld hl, $d50f
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hl]
|
|
ld d, a
|
|
ld a, e
|
|
ld [hld], a
|
|
ld a, b
|
|
ld [hld], a
|
|
ld a, c
|
|
ld [hld], a
|
|
ld a, d
|
|
ld [hl], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$152dd,$1535d - $152dd
|
|
|
|
Func_1535d: ; 0x1535d
|
|
ld a, [$d5f7]
|
|
and a
|
|
jp z, .asm_1544c
|
|
xor a
|
|
ld [$d5f7], a
|
|
ld a, [$d4af]
|
|
bit 0, a
|
|
jp z, .asm_1544c
|
|
ld a, [$d5fc]
|
|
and a
|
|
jp nz, .asm_1544c
|
|
xor a
|
|
ld [$d544], a
|
|
ld [$d542], a
|
|
ld [$d546], a
|
|
call Func_159c9
|
|
ld a, $b
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, [$d5f8]
|
|
sub $e
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d5f9
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [hl], $1
|
|
and a
|
|
ret nz
|
|
ld bc, $34b2
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld hl, $d5f9
|
|
ld a, [hli]
|
|
and [hl]
|
|
inc hl
|
|
and [hl]
|
|
jr nz, .asm_153c0
|
|
ld de, $0009
|
|
call PlaySoundEffect
|
|
jp Func_15450
|
|
.asm_153c0
|
|
ld a, $1
|
|
ld [$d5fc], a
|
|
ld a, $80
|
|
ld [$d5fd], a
|
|
ld a, $10
|
|
ld [$d47f], a
|
|
ld a, $e
|
|
ld [$d480], a
|
|
ld bc, $34b8
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld a, [$d47e]
|
|
cp $5
|
|
jr z, .asm_15412
|
|
ld de, $063a
|
|
call PlaySoundEffect
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld de, $2907
|
|
ld hl, $d5cc
|
|
call Func_32aa
|
|
ld a, [$d47e]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5505 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d47e], a
|
|
add $30
|
|
ld [$c512], a
|
|
jr .asm_15447
|
|
.asm_15412
|
|
ld de, $0f4d
|
|
call PlaySoundEffect
|
|
ld bc, $34e8
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld bc, $0100
|
|
ld de, $0000
|
|
push bc
|
|
push de
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5d4
|
|
ld de, $2948
|
|
call Func_32cc
|
|
pop de
|
|
pop bc
|
|
ld hl, $d5cc
|
|
ld de, $2922
|
|
call Func_32aa
|
|
.asm_15447
|
|
call Func_155a7
|
|
jr Func_15450
|
|
.asm_1544c
|
|
call Func_154a9
|
|
ret z
|
|
|
|
Func_15450
|
|
ld a, [$d4af]
|
|
bit 0, a
|
|
ret z
|
|
ld hl, $d5fb
|
|
ld b, $3
|
|
.asm_1545b
|
|
ld a, [hld]
|
|
push hl
|
|
call Func_15465
|
|
pop hl
|
|
dec b
|
|
jr nz, .asm_1545b
|
|
ret
|
|
|
|
Func_15465: ; 0x15465
|
|
and a
|
|
jr z, .asm_15477
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_15472
|
|
ld hl, $5511 ; todo
|
|
jr .asm_15484
|
|
.asm_15472
|
|
ld hl, $5543 ; todo
|
|
jr .asm_15484
|
|
.asm_15477
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_15481
|
|
ld hl, $5517 ; todo
|
|
jr .asm_15484
|
|
.asm_15481
|
|
ld hl, $5549 ; todo
|
|
.asm_15484
|
|
push bc
|
|
dec b
|
|
sla b
|
|
ld e, b
|
|
ld d, $0
|
|
add hl, de
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, [hl]
|
|
ld a, $5
|
|
ld de, $117b
|
|
call Func_10c5
|
|
pop bc
|
|
ret
|
|
|
|
Func_15499: ; 0x15499
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret nz
|
|
ld b, $3
|
|
.asm_1549f
|
|
push hl
|
|
xor a
|
|
call Func_15465
|
|
pop hl
|
|
dec b
|
|
jr nz, .asm_1549f
|
|
ret
|
|
|
|
Func_154a9: ; 0x154a9
|
|
ld a, [$d5fc]
|
|
and a
|
|
jr z, .asm_154d6
|
|
ld a, [$d5fd]
|
|
dec a
|
|
ld [$d5fd], a
|
|
jr nz, .asm_154bb
|
|
ld [$d5fc], a
|
|
.asm_154bb
|
|
and $7
|
|
jr nz, .asm_154d4
|
|
ld a, [$d5fd]
|
|
srl a
|
|
srl a
|
|
srl a
|
|
and $1
|
|
ld hl, $d5f9
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld a, $1
|
|
and a
|
|
ret
|
|
.asm_154d4
|
|
xor a
|
|
ret
|
|
.asm_154d6
|
|
ld hl, wKeyConfigLeftFlipper
|
|
call IsKeyPressed
|
|
jr z, .asm_154ee
|
|
ld hl, $d5f9
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld a, c
|
|
ld [hld], a
|
|
ld a, e
|
|
ld [hld], a
|
|
ld a, b
|
|
ld [hl], a
|
|
ret
|
|
.asm_154ee
|
|
ld hl, wKeyConfigRightFlipper
|
|
call IsKeyPressed
|
|
ret z
|
|
ld hl, $d5f9
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld a, b
|
|
ld [hld], a
|
|
ld a, c
|
|
ld [hld], a
|
|
ld a, e
|
|
ld [hl], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$15505,$15575 - $15505
|
|
|
|
Func_15575: ; 0x15575
|
|
ld a, [$d5f3]
|
|
and a
|
|
ret nz
|
|
ld hl, $d47f
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld b, [hl]
|
|
or b
|
|
ret z
|
|
dec bc
|
|
ld a, b
|
|
ld [hld], a
|
|
ld [hl], c
|
|
or c
|
|
ret nz
|
|
ld a, [$d47e]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $550b ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d47e], a
|
|
and a
|
|
jr z, .asm_155a3
|
|
ld a, $10
|
|
ld [$d47f], a
|
|
ld a, $e
|
|
ld [$d480], a
|
|
.asm_155a3
|
|
call Func_155a7
|
|
ret
|
|
|
|
Func_155a7: ; 0x155a7
|
|
ld a, [$d47e]
|
|
ld c, a
|
|
sla c
|
|
ld b, $0
|
|
ld hl, $55d7 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $5
|
|
call Func_10aa
|
|
; fall through
|
|
|
|
Func_155bb: ; 0x155bb
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret z
|
|
; gameboy color
|
|
ld a, [$d47e]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $57f7 ; todo
|
|
add hl, bc
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, [hl]
|
|
ld a, $5
|
|
ld de, $1266
|
|
call Func_10c5
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$155d7,$1581f - $155d7
|
|
|
|
Func_1581f: ; 0x1581f
|
|
ld a, [$d51f]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d51f], a
|
|
ld bc, $34a6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld a, [$d520]
|
|
sub $11
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d521
|
|
add hl, bc
|
|
ld [hl], $1
|
|
ld a, [$d521]
|
|
and a
|
|
call nz, Func_1587c
|
|
ld a, [$d522]
|
|
and a
|
|
call nz, Func_158c0
|
|
ld a, [$d523]
|
|
and a
|
|
call nz, Func_15904
|
|
ld a, [$d524]
|
|
and a
|
|
call nz, Func_1591e
|
|
ld a, [$d525]
|
|
and a
|
|
call nz, Func_15931
|
|
ld a, [$d526]
|
|
and a
|
|
call nz, Func_15944
|
|
ld a, [$d527]
|
|
and a
|
|
call nz, Func_1597d
|
|
ld a, [$d528]
|
|
and a
|
|
call nz, Func_15990
|
|
ret
|
|
|
|
Func_1587c: ; 0x1587c
|
|
xor a
|
|
ld [$d521], a
|
|
ld a, [$d542]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d542], a
|
|
ld a, $1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret c
|
|
ld a, [$d543]
|
|
cp $3
|
|
ret z
|
|
inc a
|
|
ld [$d543], a
|
|
set 7, a
|
|
ld [$d52f], a
|
|
cp $83
|
|
ret nz
|
|
ld a, [$d4af]
|
|
and $1
|
|
or $6
|
|
ld [$d4af], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
call Func_159f4
|
|
ret
|
|
|
|
Func_158c0: ; 0x158c0
|
|
xor a
|
|
ld [$d522], a
|
|
ld a, [$d542]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d542], a
|
|
ld a, $1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret c
|
|
ld a, [$d543]
|
|
cp $3
|
|
ret z
|
|
inc a
|
|
ld [$d543], a
|
|
set 7, a
|
|
ld [$d52f], a
|
|
cp $83
|
|
ret nz
|
|
ld a, [$d4af]
|
|
and $1
|
|
or $6
|
|
ld [$d4af], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
call Func_159f4
|
|
ret
|
|
|
|
Func_15904: ; 0x15904
|
|
xor a
|
|
ld [$d523], a
|
|
ld a, [$d546]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d546], a
|
|
ld a, $3
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_1591e: ; 0x1591e
|
|
xor a
|
|
ld [$d524], a
|
|
ld [$d544], a
|
|
ld [$d546], a
|
|
ld a, $1
|
|
ld [$d542], a
|
|
call Func_159c9
|
|
ret
|
|
|
|
Func_15931: ; 0x15931
|
|
xor a
|
|
ld [$d525], a
|
|
ld [$d544], a
|
|
ld [$d542], a
|
|
ld a, $1
|
|
ld [$d546], a
|
|
call Func_159c9
|
|
ret
|
|
|
|
Func_15944: ; 0x15944
|
|
xor a
|
|
ld [$d526], a
|
|
ld a, [$d544]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d544], a
|
|
ld a, $2
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret c
|
|
ld a, [$d545]
|
|
cp $3
|
|
ret z
|
|
inc a
|
|
ld [$d545], a
|
|
cp $3
|
|
jr z, .asm_1596e
|
|
set 7, a
|
|
.asm_1596e
|
|
ld [$d530], a
|
|
ld a, [$d545]
|
|
cp $2
|
|
ret c
|
|
ld a, $80
|
|
ld [$d532], a
|
|
ret
|
|
|
|
Func_1597d: ; 0x1597d
|
|
xor a
|
|
ld [$d527], a
|
|
ld [$d542], a
|
|
ld [$d546], a
|
|
ld a, $1
|
|
ld [$d544], a
|
|
call Func_159c9
|
|
ret
|
|
|
|
Func_15990: ; 0x15990
|
|
xor a
|
|
ld [$d528], a
|
|
ld a, [$d544]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d544], a
|
|
ld a, $2
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret c
|
|
ld a, [$d545]
|
|
cp $3
|
|
ret z
|
|
inc a
|
|
ld [$d545], a
|
|
cp $3
|
|
jr z, .asm_159ba
|
|
set 7, a
|
|
.asm_159ba
|
|
ld [$d530], a
|
|
ld a, [$d545]
|
|
cp $2
|
|
ret c
|
|
ld a, $80
|
|
ld [$d532], a
|
|
ret
|
|
|
|
Func_159c9: ; 0x159c9
|
|
ld a, [$d7ad]
|
|
bit 7, a
|
|
ret nz
|
|
ld c, a
|
|
ld a, [$d4af]
|
|
and $1
|
|
or c
|
|
ld [$d4af], a
|
|
ld a, $ff
|
|
ld [$d7ad], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
call Func_159f4
|
|
ld a, $1
|
|
ld [$d580], a
|
|
call Func_1404a
|
|
ret
|
|
|
|
Func_159f4: ; 0x159f4
|
|
ld a, [$ff9e]
|
|
bit 7, a
|
|
jr z, .asm_15a13
|
|
ld a, [$d7f2]
|
|
and $fe
|
|
ld c, a
|
|
ld a, [$d4af]
|
|
and $fe
|
|
cp c
|
|
jr z, .asm_15a13
|
|
add c
|
|
cp $2
|
|
jr z, .asm_15a13
|
|
ld de, $0000
|
|
call PlaySoundEffect
|
|
.asm_15a13
|
|
ld a, [$d7f2]
|
|
swap a
|
|
ld c, a
|
|
ld a, [$d4af]
|
|
sla a
|
|
or c
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5a3f ; todo
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_15a2d
|
|
ld hl, $5d05
|
|
.asm_15a2d
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $5
|
|
call Func_10aa
|
|
ld a, [$d4af]
|
|
ld [$d7f2], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$15a3f,$15e93 - $15a3f
|
|
|
|
Func_15e93: ; 0x15e93
|
|
ld a, [$d4fb]
|
|
and a
|
|
jr z, .asm_15eda
|
|
xor a
|
|
ld [$d4fb], a
|
|
ld bc, $34d0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld de, $0005
|
|
call PlaySoundEffect
|
|
ld hl, $5f69 ; todo
|
|
ld de, $d4fd
|
|
call Func_28a0
|
|
xor a
|
|
ld [wBallXVelocity], a
|
|
ld [wBallXVelocity + 1], a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld [wBallXPos], a
|
|
ld [wBallYPos], a
|
|
ld a, $7c
|
|
ld [wBallXPos + 1], a
|
|
ld a, $78
|
|
ld [wBallYPos + 1], a
|
|
xor a
|
|
ld [$d549], a
|
|
.asm_15eda
|
|
ld hl, $5f69 ; todo
|
|
ld de, $d4fd
|
|
call Func_28a9
|
|
push af
|
|
ld a, [$d4fd]
|
|
and a
|
|
jr nz, .asm_15ef8
|
|
ld a, $19
|
|
ld [$d4fd], a
|
|
xor a
|
|
ld [$d4fe], a
|
|
ld a, $6
|
|
ld [$d4ff], a
|
|
.asm_15ef8
|
|
pop af
|
|
ret nc
|
|
ld a, [$d4ff]
|
|
cp $1
|
|
jr nz, .asm_15f35
|
|
xor a
|
|
ld [$d548], a
|
|
ld a, [$d545]
|
|
cp $2
|
|
jr c, .asm_15f1e
|
|
ld a, $8
|
|
jr nz, .asm_15f11
|
|
xor a
|
|
.asm_15f11
|
|
ld [$d55b], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartCatchEmMode)
|
|
ld hl, StartCatchEmMode
|
|
call BankSwitch
|
|
.asm_15f1e
|
|
ld hl, $d62a
|
|
call Func_e4a
|
|
ret nc
|
|
ld c, $19
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
ret
|
|
.asm_15f35
|
|
ld a, [$d4ff]
|
|
cp $4
|
|
jr nz, .asm_15f42
|
|
ld a, $1
|
|
ld [$d548], a
|
|
ret
|
|
.asm_15f42
|
|
ld a, [$d4ff]
|
|
cp $5
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d549], a
|
|
xor a
|
|
ld [wBallXVelocity + 1], a
|
|
ld a, $2
|
|
ld [wBallYVelocity + 1], a
|
|
ld de, $0006
|
|
call PlaySoundEffect
|
|
ld a, $5
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$15f69,$15f86 - $15f69
|
|
|
|
Func_15f86: ; 0x15f86
|
|
ld a, [$d4d8]
|
|
and a
|
|
jr z, .asm_15f99
|
|
call Func_5fb8
|
|
call Func_15fa6
|
|
xor a
|
|
ld [$d4d8], a
|
|
call $5fda
|
|
.asm_15f99
|
|
ld a, [$d4da]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d4da], a
|
|
call z, Func_5fb8
|
|
ret
|
|
|
|
Func_15fa6: ; 0x15fa6
|
|
ld a, $10
|
|
ld [$d4da], a
|
|
ld a, [$d4d9]
|
|
sub $6
|
|
ld [$d4db], a
|
|
sla a
|
|
inc a
|
|
jr asm_15fc0
|
|
|
|
Func_5fb8: ; 0x5fb8
|
|
ld a, [$d4db]
|
|
cp $ff
|
|
ret z
|
|
sla a
|
|
asm_15fc0
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $6010 ; todo
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_15fd0
|
|
ld hl, $6080
|
|
.asm_15fd0
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$15fda,$160f0 - $15fda
|
|
|
|
Func_160f0: ; 0x160f0
|
|
ld a, [$d5fe]
|
|
and a
|
|
jr z, .asm_16137
|
|
xor a
|
|
ld [$d5fe], a
|
|
ld bc, $34d0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld de, $0021
|
|
call PlaySoundEffect
|
|
xor a
|
|
ld hl, wBallXVelocity
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d549], a
|
|
ld [wBallXPos], a
|
|
ld [wBallYPos], a
|
|
ld a, $11
|
|
ld [wBallXPos + 1], a
|
|
ld a, $23
|
|
ld [wBallYPos + 1], a
|
|
ld a, $10
|
|
ld [$d600], a
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
.asm_16137
|
|
ld a, [$d600]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d600], a
|
|
cp $f
|
|
jr nz, .asm_1614f
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dd12)
|
|
ld hl, Func_dd12
|
|
call BankSwitch
|
|
ret
|
|
.asm_1614f
|
|
cp $c
|
|
jr nz, .asm_1615e
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dd62)
|
|
ld hl, Func_dd62
|
|
call BankSwitch
|
|
ret
|
|
.asm_1615e
|
|
cp $9
|
|
jr nz, .asm_1616d
|
|
xor a
|
|
ld [$d548], a
|
|
ld [wBallSpin], a
|
|
ld [wBallRotation], a
|
|
ret
|
|
.asm_1616d
|
|
cp $6
|
|
jr nz, .asm_1618e
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10ab3)
|
|
ld hl, Func_10ab3
|
|
call BankSwitch
|
|
ld a, $1
|
|
ld [$d548], a
|
|
ld [$d549], a
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ret
|
|
.asm_1618e
|
|
cp $3
|
|
jr nz, .asm_1619d
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dd12)
|
|
ld hl, Func_dd12
|
|
call BankSwitch
|
|
ret
|
|
.asm_1619d
|
|
and a
|
|
ret nz
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dcc3)
|
|
ld hl, Func_dcc3
|
|
call BankSwitch
|
|
ld a, $2
|
|
ld [wBallYVelocity + 1], a
|
|
ret
|
|
|
|
Func_161af: ; 0x161af
|
|
ld a, [$d604]
|
|
and a
|
|
ret z
|
|
ld a, [wBallYPos + 1]
|
|
sub $fe
|
|
cp $30
|
|
ret nc
|
|
ld c, $0
|
|
ld b, a
|
|
ld h, b
|
|
ld l, c
|
|
srl b
|
|
rr c
|
|
srl b
|
|
rr c
|
|
srl h
|
|
rr l
|
|
add hl, bc
|
|
ld a, [wBallXPos + 1]
|
|
sub $38
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
sla c
|
|
add hl, bc
|
|
jr asm_1620f
|
|
|
|
Func_161e0: ; 0x161e0
|
|
ld a, [$d604]
|
|
and a
|
|
ret z
|
|
ld a, [wBallYPos + 1]
|
|
sub $86
|
|
cp $30
|
|
ret nc
|
|
ld c, $0
|
|
ld b, a
|
|
ld h, b
|
|
ld l, c
|
|
srl b
|
|
rr c
|
|
srl b
|
|
rr c
|
|
srl h
|
|
rr l
|
|
add hl, bc
|
|
ld a, [wBallXPos + 1]
|
|
sub $38
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
sla c
|
|
add hl, bc
|
|
asm_1620f: ; 0x1620f
|
|
ld bc, $4000
|
|
add hl, bc
|
|
ld de, wBallXVelocity
|
|
ld a, $3c
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3c
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
push bc
|
|
ld a, $3c
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3c
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
bit 7, b
|
|
jr z, .asm_1624e
|
|
ld a, c
|
|
cpl
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
inc bc
|
|
.asm_1624e
|
|
pop hl
|
|
bit 7, h
|
|
jr z, .asm_1625a
|
|
ld a, l
|
|
cpl
|
|
ld l, a
|
|
ld a, h
|
|
cpl
|
|
ld h, a
|
|
inc hl
|
|
.asm_1625a
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
ld a, h
|
|
cp $2
|
|
ret c
|
|
ld a, [$d804]
|
|
and a
|
|
ret nz
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ld de, $0004
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_16279: ; 0x16279
|
|
ld a, [$d601]
|
|
and a
|
|
jr z, .asm_162ae
|
|
xor a
|
|
ld [$d601], a
|
|
ld a, [$d604]
|
|
and a
|
|
ret z
|
|
ld a, [$d603]
|
|
and a
|
|
jr nz, .asm_162ae
|
|
xor a
|
|
ld hl, wBallXVelocity
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d549], a
|
|
ld [wBallXPos], a
|
|
ld [wBallYPos], a
|
|
ld a, $50
|
|
ld [wBallXPos + 1], a
|
|
ld a, $16
|
|
ld [wBallYPos + 1], a
|
|
ld a, $13
|
|
ld [$d603], a
|
|
.asm_162ae
|
|
ld a, [$d603]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d603], a
|
|
ld a, $18
|
|
ld [$d606], a
|
|
ld a, [$d603]
|
|
cp $12
|
|
jr nz, .asm_162d4
|
|
ld de, $0021
|
|
call PlaySoundEffect
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dd12)
|
|
ld hl, Func_dd12
|
|
call BankSwitch
|
|
ret
|
|
.asm_162d4
|
|
cp $f
|
|
jr nz, .asm_162e3
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dd62)
|
|
ld hl, Func_dd62
|
|
call BankSwitch
|
|
ret
|
|
.asm_162e3
|
|
cp $c
|
|
jr nz, .asm_162f2
|
|
xor a
|
|
ld [$d548], a
|
|
ld [wBallSpin], a
|
|
ld [wBallRotation], a
|
|
ret
|
|
.asm_162f2
|
|
cp $9
|
|
jr nz, .asm_162fa
|
|
call Func_16352
|
|
ret
|
|
.asm_162fa
|
|
cp $6
|
|
jr nz, .asm_16317
|
|
xor a
|
|
ld [$d604], a
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dd12)
|
|
ld hl, Func_dd12
|
|
call BankSwitch
|
|
ret
|
|
.asm_16317
|
|
cp $3
|
|
jr nz, .asm_16330
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dcc3)
|
|
ld hl, Func_dcc3
|
|
call BankSwitch
|
|
ld a, $2
|
|
ld [wBallYVelocity + 1], a
|
|
ld a, $80
|
|
ld [wBallXVelocity], a
|
|
ret
|
|
.asm_16330
|
|
and a
|
|
ret nz
|
|
call Func_16425
|
|
ld a, [$d622]
|
|
cp $1
|
|
ret nz
|
|
call Func_959
|
|
and $8
|
|
ld [$d55b], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartCatchEmMode)
|
|
ld hl, StartCatchEmMode
|
|
call BankSwitch
|
|
xor a
|
|
ld [$d622], a
|
|
ret
|
|
|
|
Func_16352: ; 0x16352
|
|
xor a
|
|
ld [$d533], a
|
|
ld a, $d
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
jr nc, .asm_1636d
|
|
ld a, $1
|
|
ld [$d548], a
|
|
ld [$d549], a
|
|
ret
|
|
.asm_1636d
|
|
ld a, [$d624]
|
|
cp $3
|
|
jr nz, .asm_163b3
|
|
ld a, [$d607]
|
|
and a
|
|
jr nz, .asm_163b3
|
|
.asm_1637a
|
|
ld a, [$d623]
|
|
and a
|
|
jr nz, .asm_16389
|
|
xor a
|
|
ld [$d625], a
|
|
ld a, $40
|
|
ld [$d626], a
|
|
.asm_16389
|
|
xor a
|
|
ld [$d623], a
|
|
ld a, $1
|
|
ld [$d495], a
|
|
ld [$d4ae], a
|
|
ld a, [$d498]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $6420
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d497], a
|
|
call Func_163f2
|
|
xor a
|
|
ld [$d609], a
|
|
ld [$d622], a
|
|
ld a, $1e
|
|
ld [$d607], a
|
|
ret
|
|
.asm_163b3
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_ed8e)
|
|
ld hl, Func_ed8e
|
|
call BankSwitch
|
|
xor a
|
|
ld [$d608], a
|
|
ld a, [$d61d]
|
|
cp $d
|
|
jr nc, .asm_1637a
|
|
ld a, $1
|
|
ld [$d548], a
|
|
ld [$d549], a
|
|
ld a, [$d622]
|
|
cp $2
|
|
ret nz
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10ab3)
|
|
ld hl, Func_10ab3
|
|
call BankSwitch
|
|
ld a, [$d7ad]
|
|
ld c, a
|
|
ld a, [$d4af]
|
|
and $1
|
|
or c
|
|
ld [$d4af], a
|
|
xor a
|
|
ld [$d622], a
|
|
ret
|
|
|
|
Func_163f2: ; 0x163f2
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5dc
|
|
ld a, [$d497]
|
|
ld de, $2e83
|
|
cp $d
|
|
jr z, .asm_1640f
|
|
ld de, $2e9e
|
|
cp $7
|
|
jr z, .asm_1640f
|
|
ld de, $2eb8
|
|
.asm_1640f
|
|
call Func_32aa
|
|
ld de, $0000
|
|
call Func_490
|
|
rst $10
|
|
ld de, $3c23
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$16420,$16425 - $16420
|
|
|
|
Func_16425: ; 0x16425
|
|
ld a, [wCurrentStage]
|
|
and $1
|
|
sla a
|
|
ld c, a
|
|
ld a, [$d604]
|
|
add c
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $644d ; todo
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_16441
|
|
ld hl, $64a1 ; todo
|
|
.asm_16441
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1644d,$164e3 - $1644d
|
|
|
|
Func_164e3: ; 0x164e3
|
|
ld a, [$d607]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d607], a
|
|
ret nz
|
|
ld a, [$d54b]
|
|
and a
|
|
ret nz
|
|
ld a, [$d609]
|
|
and a
|
|
jr z, .asm_164ff
|
|
ld a, [$d498]
|
|
add $15
|
|
jr .asm_16506
|
|
.asm_164ff
|
|
ld a, [$d608]
|
|
and a
|
|
ret z
|
|
ld a, $1a
|
|
.asm_16506
|
|
ld hl, wCurrentStage
|
|
bit 0, [hl]
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30256)
|
|
ld hl, Func_30256
|
|
call nz, BankSwitch
|
|
ld a, [$d604]
|
|
and a
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d604], a
|
|
ld a, $80
|
|
ld [$d533], a
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
call nz, Func_16425
|
|
ret
|
|
|
|
Func_1652d: ; 0x1652d
|
|
ld a, [$d4dc]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d4dc], a
|
|
ld a, [$d4de]
|
|
and a
|
|
jr z, .asm_16566
|
|
xor a
|
|
ld [$d544], a
|
|
ld [$d542], a
|
|
ld [$d546], a
|
|
ld hl, wBallXVelocity
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld [wBallSpin], a
|
|
ld [wBallRotation], a
|
|
ld a, $80
|
|
ld [wBallYVelocity], a
|
|
ld a, $fa
|
|
ld [wBallYVelocity + 1], a
|
|
ld a, $1
|
|
ld [$d549], a
|
|
ld de, $000a
|
|
call PlaySoundEffect
|
|
.asm_16566
|
|
ld a, $ff
|
|
ld [$d4ec], a
|
|
ld a, [$d4de]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4e0]
|
|
and a
|
|
jr nz, .asm_16582
|
|
call Func_1658f
|
|
ld a, $1
|
|
ld [$d4e0], a
|
|
ld [$d4de], a
|
|
ret
|
|
.asm_16582
|
|
ld hl, wKeyConfigBallStart
|
|
call IsKeyPressed
|
|
ret z
|
|
ld a, $1
|
|
ld [$d4de], a
|
|
ret
|
|
|
|
Func_1658f: ; 0x1658f
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_f269)
|
|
ld hl, Func_f269
|
|
call nz, BankSwitch
|
|
.showNextMap
|
|
ld a, [$d4e1]
|
|
inc a
|
|
cp $7 ; number of maps to choose from at the start of play
|
|
jr c, .gotMapId
|
|
xor a ; wrap around to 0
|
|
.gotMapId
|
|
ld [$d4e1], a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, RedStageInitialMaps
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wCurrentMap], a
|
|
push af
|
|
ld de, $0048
|
|
call PlaySoundEffect
|
|
pop af
|
|
add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers
|
|
ld [$ff8a], a
|
|
ld a, Bank(LoadBillboardPicture)
|
|
ld hl, LoadBillboardPicture
|
|
call BankSwitch
|
|
ld b, $20 ; number of frames to delay before the next map is shown
|
|
.waitOnCurrentMap
|
|
push bc
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_eeee)
|
|
ld hl, Func_eeee
|
|
call BankSwitch
|
|
ld hl, wKeyConfigBallStart
|
|
call IsKeyPressed
|
|
jr nz, .ballStartKeyPressed
|
|
pop bc
|
|
dec b
|
|
jr nz, .waitOnCurrentMap
|
|
jr .showNextMap
|
|
.ballStartKeyPressed
|
|
pop bc
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30253)
|
|
ld hl, Func_30253
|
|
call BankSwitch
|
|
ld bc, $2cd1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_3118f)
|
|
ld hl, Func_3118f
|
|
call BankSwitch
|
|
ld a, [wCurrentMap]
|
|
ld [$d4e3], a
|
|
xor a
|
|
ld [$d4e2], a
|
|
ret
|
|
|
|
RedStageInitialMaps: ; 0x16605
|
|
db PALLET_TOWN
|
|
db VIRIDIAN_FOREST
|
|
db PEWTER_CITY
|
|
db CERULEAN_CITY
|
|
db VERMILION_SEASIDE
|
|
db ROCK_MOUNTAIN
|
|
db LAVENDER_TOWN
|
|
|
|
Func_1660c: ; 0x1660c
|
|
ld a, [$d515]
|
|
and a
|
|
jr z, .asm_1667b
|
|
xor a
|
|
ld [$d515], a
|
|
ld a, [$d51c]
|
|
and a
|
|
jr nz, .asm_1667b
|
|
ld a, [$d51d]
|
|
and a
|
|
jr nz, .asm_16634
|
|
ld a, [$d516]
|
|
sub $1c
|
|
ld hl, $d518
|
|
cp [hl]
|
|
jr nz, .asm_1667b
|
|
ld a, [$d517]
|
|
cp $f
|
|
jr nz, .asm_16667
|
|
.asm_16634
|
|
ld hl, $673c ; todo
|
|
ld de, $d519
|
|
call Func_28a0
|
|
ld a, [$d51d]
|
|
and a
|
|
jr nz, .asm_16647
|
|
xor a
|
|
ld [$d517], a
|
|
.asm_16647
|
|
ld a, $1
|
|
ld [$d51c], a
|
|
xor a
|
|
ld [wBallXVelocity], a
|
|
ld [wBallXVelocity + 1], a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld [wBallSpin], a
|
|
ld [wBallRotation], a
|
|
ld [$d549], a
|
|
call Func_30e8
|
|
jr .asm_1667b
|
|
.asm_16667
|
|
ld hl, $6761 ; todo
|
|
ld de, $d519
|
|
call Func_28a0
|
|
ld a, $2
|
|
ld [$d51c], a
|
|
ld de, $003b
|
|
call PlaySoundEffect
|
|
.asm_1667b
|
|
ld a, [$d51c]
|
|
and a
|
|
call z, Func_16766
|
|
call Func_1669e
|
|
ld a, [$d517]
|
|
cp $f
|
|
ret nz
|
|
ld a, [$d51e]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d51e], a
|
|
cp $5a
|
|
ret nz
|
|
ld de, $0f22
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_1669e: ; 0x1669e
|
|
ld a, [$d51c]
|
|
cp $1
|
|
jr nz, .asm_16719
|
|
ld hl, $673c ; todo
|
|
ld de, $d519
|
|
call Func_28a9
|
|
ret nc
|
|
ld a, [$d51b]
|
|
cp $1
|
|
jr nz, .asm_166f7
|
|
xor a
|
|
ld [$d85d], a
|
|
call Func_310a
|
|
rst $10
|
|
ld a, $1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_50000)
|
|
ld hl, Func_50000
|
|
call BankSwitch
|
|
ld a, $1
|
|
ld [$d85d], a
|
|
ld a, $ff
|
|
ld [$d803], a
|
|
ld a, $60
|
|
ld [$d804], a
|
|
ld hl, $d62e
|
|
call Func_e4a
|
|
jr nc, .asm_166f0
|
|
ld c, $a
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
.asm_166f0
|
|
ld de, $1610
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_166f7
|
|
ld a, [$d51b]
|
|
cp $11
|
|
ret nz
|
|
ld a, $fc
|
|
ld [wBallYVelocity + 1], a
|
|
ld a, $1
|
|
ld [$d549], a
|
|
ld bc, $34ca
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
xor a
|
|
ld [$d51c], a
|
|
ret
|
|
.asm_16719
|
|
cp $2
|
|
jr nz, .asm_16732
|
|
ld hl, $6761 ; todo
|
|
ld de, $d519
|
|
call Func_28a9
|
|
ret nc
|
|
ld a, [$d51b]
|
|
cp $1
|
|
ret nz
|
|
xor a
|
|
ld [$d51c], a
|
|
ret
|
|
.asm_16732
|
|
ld a, [$ffb3]
|
|
swap a
|
|
and $1
|
|
ld [$d51a], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1673c,$16766 - $1673c
|
|
|
|
Func_16766: ; 0x16766
|
|
ld hl, wKeyConfigLeftFlipper
|
|
call IsKeyPressed2
|
|
jr z, .asm_16774
|
|
ld hl, $d518
|
|
ld [hl], $0
|
|
ret
|
|
.asm_16774
|
|
ld hl, wKeyConfigRightFlipper
|
|
call IsKeyPressed2
|
|
ret z
|
|
ld hl, $d518
|
|
ld [hl], $1
|
|
ret
|
|
|
|
Func_16781: ; 0x16781
|
|
ld a, [$d500]
|
|
and a
|
|
jr z, .asm_167bd
|
|
xor a
|
|
ld [$d500], a
|
|
ld a, [$d503]
|
|
and a
|
|
jr nz, .asm_167c2
|
|
ld bc, $34ca
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld a, [$d502]
|
|
xor $1
|
|
set 1, a
|
|
ld [$d502], a
|
|
ld a, $14
|
|
ld [$d503], a
|
|
call Func_16859
|
|
ld a, $6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret
|
|
.asm_167bd
|
|
ld a, [$d503]
|
|
and a
|
|
ret z
|
|
.asm_167c2
|
|
dec a
|
|
ld [$d503], a
|
|
ret nz
|
|
ld a, [$d502]
|
|
res 1, a
|
|
ld [$d502], a
|
|
call Func_16859
|
|
ld a, [$d502]
|
|
and $1
|
|
ld c, a
|
|
ld a, [$d4af]
|
|
and $fe
|
|
or c
|
|
ld [$d4af], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
call Func_159f4
|
|
ld de, $0007
|
|
call PlaySoundEffect
|
|
ld a, [$d4af]
|
|
bit 0, a
|
|
jp nz, Func_15450
|
|
jp Func_15499
|
|
|
|
Func_167ff: ; 0x167ff
|
|
ld a, [$d500]
|
|
and a
|
|
jr z, .asm_16839
|
|
xor a
|
|
ld [$d500], a
|
|
ld a, [$d503]
|
|
and a
|
|
jr nz, .asm_1683e
|
|
ld bc, $34ca
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld a, [$d502]
|
|
xor $1
|
|
ld [$d502], a
|
|
ld a, $14
|
|
ld [$d503], a
|
|
call Func_16878
|
|
ld a, $6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret
|
|
.asm_16839
|
|
ld a, [$d503]
|
|
and a
|
|
ret z
|
|
.asm_1683e
|
|
dec a
|
|
ld [$d503], a
|
|
ret nz
|
|
ld a, [$d502]
|
|
and $1
|
|
ld c, a
|
|
ld a, [$d4af]
|
|
and $fe
|
|
or c
|
|
ld [$d4af], a
|
|
ld de, $0007
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_16859: ; 0x16859
|
|
ld a, [$d502]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $6899 ; todo
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1686c
|
|
ld hl, $6910 ; todo
|
|
.asm_1686c
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_16878: ; 0x16878
|
|
ld a, [$d502]
|
|
and $1
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $695a ; todo
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1688d
|
|
ld hl, $6980 ; todo
|
|
.asm_1688d
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$16899,$169a6 - $16899
|
|
|
|
Func_169a6: ; 0x169a6
|
|
ld a, [$ffb3]
|
|
and $1f
|
|
ret nz
|
|
ld bc, $0000
|
|
.asm_169ae
|
|
push bc
|
|
ld hl, $d52f
|
|
add hl, bc
|
|
bit 7, [hl]
|
|
jr z, .asm_169c5
|
|
ld a, [hl]
|
|
res 7, a
|
|
ld hl, $ffb3
|
|
bit 5, [hl]
|
|
jr z, .asm_169c2
|
|
inc a
|
|
.asm_169c2
|
|
call Func_169cd
|
|
.asm_169c5
|
|
pop bc
|
|
inc c
|
|
ld a, c
|
|
cp $5
|
|
jr nz, .asm_169ae
|
|
ret
|
|
|
|
Func_169cd: ; 0x169cd
|
|
push af
|
|
sla c
|
|
ld hl, $69ed
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_169db
|
|
ld hl, $6bef
|
|
.asm_169db
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
pop af
|
|
sla a
|
|
ld c, a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$169ed,$16d9d - $169ed
|
|
|
|
Func_16d9d: ; 016d9d
|
|
ld a, [$d60a]
|
|
and a
|
|
jp z, $6e51
|
|
xor a
|
|
ld [$d60a], a
|
|
ld de, $000d
|
|
call PlaySoundEffect
|
|
ld a, [$d60b]
|
|
sub $21
|
|
jr nz, .asm_16ddc
|
|
ld a, $9
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, [$d610]
|
|
cp $3
|
|
jr nz, .asm_16e35
|
|
ld a, $1
|
|
ld [$d610], a
|
|
ld a, $3
|
|
ld [$d611], a
|
|
ld a, [$d60c]
|
|
set 7, a
|
|
ld [$d60c], a
|
|
jr .asm_16e35
|
|
.asm_16ddc
|
|
ld a, $a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, [$d611]
|
|
cp $3
|
|
jr nz, .asm_16e35
|
|
ld a, $1
|
|
ld [$d610], a
|
|
ld a, $1
|
|
ld [$d611], a
|
|
ld a, $80
|
|
ld [$d612], a
|
|
ld a, [$d60d]
|
|
set 7, a
|
|
ld [$d60d], a
|
|
ld a, [$d482]
|
|
inc a
|
|
cp $64
|
|
jr c, .asm_16e10
|
|
ld a, $63
|
|
.asm_16e10
|
|
ld [$d482], a
|
|
jr nc, .asm_16e24
|
|
ld c, $19
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
.asm_16e24
|
|
ld a, [$d60c]
|
|
ld [$d614], a
|
|
ld a, [$d60d]
|
|
ld [$d615], a
|
|
ld a, $1
|
|
ld [$d613], a
|
|
.asm_16e35
|
|
ld bc, $34ac
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld a, [$d60c]
|
|
call Func_16f28
|
|
ld a, [$d60d]
|
|
add $14
|
|
call Func_16f28
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$16e51,$16f28 - $16e51
|
|
|
|
Func_16f28: ; 0x16f28
|
|
push af
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_16f33
|
|
pop af
|
|
call Func_16f38
|
|
ret
|
|
.asm_16f33
|
|
pop af
|
|
call Func_16f7b
|
|
ret
|
|
|
|
Func_16f38: ; 0x16f38
|
|
push af
|
|
res 7, a
|
|
ld hl, $d60e
|
|
cp $14
|
|
jr c, .asm_16f47
|
|
ld hl, $d60f
|
|
sub $a
|
|
.asm_16f47
|
|
cp [hl]
|
|
jr z, .asm_16f5c
|
|
ld [hl], a
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
ld hl, $6fc8
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $5
|
|
call Func_10aa
|
|
.asm_16f5c
|
|
pop af
|
|
ld bc, $0000
|
|
bit 7, a
|
|
jr z, .asm_16f68
|
|
res 7, a
|
|
set 1, c
|
|
.asm_16f68
|
|
cp $14
|
|
jr c, .asm_16f6e
|
|
set 2, c
|
|
.asm_16f6e
|
|
ld hl, $71e4
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_16f7b: ; 0x16f7b
|
|
bit 7, a
|
|
jr z, .asm_16f83
|
|
res 7, a
|
|
add $a
|
|
.asm_16f83
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
ld hl, $7228
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_16f95: ; 0x16f95
|
|
ld a, [$d482]
|
|
inc a
|
|
cp $64
|
|
jr c, .asm_16f9f
|
|
ld a, $63
|
|
.asm_16f9f
|
|
ld b, a
|
|
xor a
|
|
ld hl, $6fc1 ; todo
|
|
ld c, $7
|
|
.asm_16fa6
|
|
bit 0, b
|
|
jr z, .asm_16fac
|
|
add [hl]
|
|
daa
|
|
.asm_16fac
|
|
srl b
|
|
inc hl
|
|
dec c
|
|
jr nz, .asm_16fa6
|
|
push af
|
|
swap a
|
|
and $f
|
|
ld [$d60c], a
|
|
pop af
|
|
and $f
|
|
ld [$d60d], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$16fc1,$174d0 - $16fc1
|
|
|
|
Func_174d0: ; 0x174d0
|
|
call Func_174ea
|
|
ret nc
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $7528 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, $5
|
|
ld de, $117b
|
|
call Func_10c5
|
|
ret
|
|
|
|
Func_174ea: ; 0x174ea
|
|
ld a, [$d624]
|
|
ld hl, $d625
|
|
cp [hl]
|
|
ret z
|
|
ld a, [$d626]
|
|
dec a
|
|
ld [$d626], a
|
|
jr nz, .asm_17514
|
|
ld a, [$d625]
|
|
ld [$d624], a
|
|
cp $3
|
|
jr c, .asm_1750f
|
|
ld a, $1
|
|
ld [$d609], a
|
|
ld a, $3
|
|
ld [$d607], a
|
|
.asm_1750f
|
|
ld a, [$d624]
|
|
scf
|
|
ret
|
|
.asm_17514
|
|
and $7
|
|
ret nz
|
|
ld a, [$d626]
|
|
bit 3, a
|
|
jr nz, .asm_17523
|
|
ld a, [$d624]
|
|
scf
|
|
ret
|
|
.asm_17523
|
|
ld a, [$d625]
|
|
scf
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$17528,$175f5 - $17528
|
|
|
|
DrawTimer: ; 0x175f5
|
|
; Loads the OAM data for the timer in the top-right corner of the screen.
|
|
ld a, [wTimerMinutes]
|
|
and $f
|
|
call DrawTimerDigit
|
|
ld a, $a ; colon
|
|
call DrawTimerDigit
|
|
ld a, [wTimerSeconds]
|
|
swap a
|
|
and $f
|
|
call DrawTimerDigit ; tens digit of the minutes
|
|
ld a, [wTimerSeconds]
|
|
and $f
|
|
call DrawTimerDigit ; ones digit of the minutes
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$17615,$17625 - $17615
|
|
|
|
DrawTimerDigit: ; 0x17625
|
|
add $b1 ; the timer digits' OAM ids start at $b1
|
|
call LoadOAMData
|
|
ld a, b
|
|
add $8
|
|
ld b, a
|
|
ret
|
|
|
|
Func_1762f: ; 0x1762f
|
|
ld de, $600c
|
|
ld a, [wCurrentStage]
|
|
cp $6
|
|
ret nc
|
|
ld de, $0000
|
|
bit 0, a
|
|
ret z
|
|
ld de, $3004
|
|
ld a, [$d54b]
|
|
and a
|
|
ret z
|
|
ld a, [$d550]
|
|
and a
|
|
ret nz
|
|
ld de, $3008
|
|
ret
|
|
|
|
Func_1764f: ; 0x1764f
|
|
push bc
|
|
push de
|
|
cp [hl]
|
|
jr z, .asm_1765d
|
|
push af
|
|
push hl
|
|
add d
|
|
call Func_17665
|
|
pop hl
|
|
pop af
|
|
ld [hl], a
|
|
.asm_1765d
|
|
inc hl
|
|
pop de
|
|
ld a, d
|
|
add $10
|
|
ld d, a
|
|
pop bc
|
|
ret
|
|
|
|
Func_17665: ; 0x17665
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
ld hl, $7679 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $5
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$17679,$17e81 - $17679
|
|
|
|
Func_17e81: ; 0x17e81
|
|
ld a, [$d548]
|
|
and a
|
|
ret z
|
|
ld hl, wBallSpin
|
|
ld a, [wBallRotation]
|
|
add [hl]
|
|
ld [wBallRotation], a
|
|
ld a, [wBallXPos + 1]
|
|
inc a
|
|
ld hl, hBoardXShift
|
|
sub [hl]
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
inc a
|
|
sub $10
|
|
ld hl, hBoardYShift
|
|
sub [hl]
|
|
ld c, a
|
|
ld a, [wBallRotation]
|
|
srl a
|
|
srl a
|
|
srl a ; divide wBallRotation by 8 because
|
|
srl a ; there are 8 frames of the ball spinning
|
|
and $7
|
|
add $0
|
|
call LoadOAMData
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret nz
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret nz
|
|
ld a, [$fffb]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4c5]
|
|
inc a
|
|
ld hl, hBoardXShift
|
|
sub [hl]
|
|
ld b, a
|
|
ld a, [$d4c6]
|
|
inc a
|
|
sub $10
|
|
ld hl, hBoardYShift
|
|
sub [hl]
|
|
ld c, a
|
|
ld a, [$d4c7]
|
|
srl a
|
|
srl a
|
|
srl a
|
|
srl a
|
|
and $7
|
|
add $0
|
|
call LoadOAMData
|
|
ld a, [wBallXPos + 1]
|
|
ld [$d4c5], a
|
|
ld a, [wBallYPos + 1]
|
|
ld [$d4c6], a
|
|
ld a, [wBallRotation]
|
|
ld [$d4c7], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$17efb,$18000 - $17efb
|
|
|
|
|
|
SECTION "bank6", ROMX, BANK[$6]
|
|
|
|
INCBIN "baserom.gbc",$18000,$1804a - $18000
|
|
|
|
Func_1804a: ; 0x1804a
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $b0
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $98
|
|
ld [wBallYPos + 1], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1805f,$18061 - $1805f
|
|
|
|
Func_18061: ; 0x18061
|
|
ret
|
|
|
|
Func_18062: ; 0x18062
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_1448e)
|
|
ld hl, Func_1448e
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_1806d: ; 0x1806d
|
|
ret
|
|
|
|
Func_1806e: ; 0x1806e
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_1652d)
|
|
ld hl, Func_1652d
|
|
call BankSwitch
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$18079,$18099 - $18079
|
|
|
|
InitGengarBonusStage: ; 0x18099
|
|
ld a, [$d7c1]
|
|
and a
|
|
jr z, .asm_180ac
|
|
xor a
|
|
ld [$d674], a
|
|
ld a, $8
|
|
ld [$d690], a
|
|
ld [$d6a1], a
|
|
ret
|
|
.asm_180ac
|
|
ld a, $1
|
|
ld [$d7ac], a
|
|
ld a, [$d47e]
|
|
ld [$d481], a
|
|
xor a
|
|
ld [$d4c8], a
|
|
ld [$d47e], a
|
|
ld [$d49a], a
|
|
ld hl, $4121 ; todo
|
|
ld de, $d659
|
|
call Func_18112
|
|
call Func_18112
|
|
call Func_18112
|
|
ld hl, $413c ; todo
|
|
ld de, $d67e
|
|
call Func_18112
|
|
call Func_18112
|
|
ld hl, $414e ; todo
|
|
ld de, $d698
|
|
call Func_18112
|
|
xor a
|
|
ld [$d67b], a
|
|
ld [$d695], a
|
|
ld hl, $d6a2
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d656], a
|
|
ld bc, $0130 ; 1 minute 30 seconds
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartTimer)
|
|
ld hl, StartTimer
|
|
call BankSwitch
|
|
ld a, $f
|
|
call Func_52c
|
|
ld de, $0005
|
|
call Func_490
|
|
ret
|
|
|
|
Func_18112: ; 0x18112
|
|
ld b, $3
|
|
.asm_18114
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_18114
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$18121,$18157 - $18121
|
|
|
|
StartBallGengarBonusStage: ; 0x18157
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $a6
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $56
|
|
ld [wBallYPos + 1], a
|
|
xor a
|
|
ld [$d7ab], a
|
|
ld [$d4af], a
|
|
ld [$d653], a
|
|
xor a
|
|
ld [$d674], a
|
|
ld a, $8
|
|
ld [$d690], a
|
|
ld [$d6a1], a
|
|
ld a, [$d4c9]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d4c9], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1818b,$181b1 - $1818b
|
|
|
|
Func_181b1: ; 0x181b1
|
|
call Func_181be
|
|
call Func_18259
|
|
call Func_182e4
|
|
call Func_18350
|
|
ret
|
|
|
|
Func_181be: ; 0x181be
|
|
ld a, [$d659]
|
|
and a
|
|
ret z
|
|
ld a, [$d65f]
|
|
ld b, a
|
|
ld a, [$d661]
|
|
add $10
|
|
ld c, a
|
|
ld a, [$d65b]
|
|
call Func_1820d
|
|
ld a, $1
|
|
jr c, .asm_181fe
|
|
ld a, [$d668]
|
|
ld b, a
|
|
ld a, [$d66a]
|
|
add $10
|
|
ld c, a
|
|
ld a, [$d664]
|
|
call Func_1820d
|
|
ld a, $2
|
|
jr c, .asm_181fe
|
|
ld a, [$d671]
|
|
ld b, a
|
|
ld a, [$d673]
|
|
add $10
|
|
ld c, a
|
|
ld a, [$d66d]
|
|
call Func_1820d
|
|
ld a, $3
|
|
ret nc
|
|
.asm_181fe
|
|
ld [$d4eb], a
|
|
ld [$d657], a
|
|
add $4
|
|
ld [$d4ea], a
|
|
ld [$d658], a
|
|
ret
|
|
|
|
Func_1820d: ; 0x1820d
|
|
cp $4
|
|
jr z, .asm_18257
|
|
ld a, [wBallXPos + 1]
|
|
sub b
|
|
cp $20
|
|
jr nc, .asm_18257
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
sub c
|
|
cp $20
|
|
jr nc, .asm_18257
|
|
ld c, a
|
|
ld e, c
|
|
ld d, $0
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
ld l, b
|
|
ld h, $0
|
|
add hl, de
|
|
ld de, $5100
|
|
add hl, de
|
|
ld a, $3a
|
|
call Func_68f
|
|
bit 7, a
|
|
jr nz, .asm_18257
|
|
sla a
|
|
ld [$d7ea], a
|
|
ld a, $1
|
|
ld [$d7e9], a
|
|
scf
|
|
ret
|
|
.asm_18257
|
|
and a
|
|
ret
|
|
|
|
Func_18259: ; 0x18259
|
|
ld a, [$d67e]
|
|
and a
|
|
ret z
|
|
ld a, [$d684]
|
|
add $fe
|
|
ld b, a
|
|
ld a, [$d686]
|
|
add $c
|
|
ld c, a
|
|
ld a, [$d680]
|
|
call Func_18298
|
|
ld a, $1
|
|
jr c, .asm_18289
|
|
ld a, [$d68d]
|
|
add $fe
|
|
ld b, a
|
|
ld a, [$d68f]
|
|
add $c
|
|
ld c, a
|
|
ld a, [$d689]
|
|
call Func_18298
|
|
ld a, $2
|
|
ret nc
|
|
.asm_18289
|
|
ld [$d4eb], a
|
|
ld [$d67c], a
|
|
add $7
|
|
ld [$d4ea], a
|
|
ld [$d67d], a
|
|
ret
|
|
|
|
Func_18298: ; 0x18298
|
|
cp $5
|
|
jr z, .asm_182e2
|
|
ld a, [wBallXPos + 1]
|
|
sub b
|
|
cp $20
|
|
jr nc, .asm_182e2
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
sub c
|
|
cp $28
|
|
jr nc, .asm_182e2
|
|
ld c, a
|
|
ld e, c
|
|
ld d, $0
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
ld l, b
|
|
ld h, $0
|
|
add hl, de
|
|
ld de, $4c00
|
|
add hl, de
|
|
ld a, $3a
|
|
call Func_68f
|
|
bit 7, a
|
|
jr nz, .asm_182e2
|
|
sla a
|
|
ld [$d7ea], a
|
|
ld a, $1
|
|
ld [$d7e9], a
|
|
scf
|
|
ret
|
|
.asm_182e2
|
|
and a
|
|
ret
|
|
|
|
Func_182e4: ; 0x182e4
|
|
ld a, [$d698]
|
|
and a
|
|
ret z
|
|
ld a, [$d69e]
|
|
ld b, a
|
|
ld a, [$d6a0]
|
|
add $c
|
|
ld c, a
|
|
call Func_18308
|
|
ld a, $1
|
|
ret nc
|
|
ld [$d4eb], a
|
|
ld [$d696], a
|
|
add $9
|
|
ld [$d4ea], a
|
|
ld [$d697], a
|
|
ret
|
|
|
|
Func_18308: ; 0x18308
|
|
ld a, [wBallXPos + 1]
|
|
sub b
|
|
cp $30
|
|
jr nc, .asm_1834e
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
sub c
|
|
cp $40
|
|
jr nc, .asm_1834e
|
|
ld c, a
|
|
ld a, c
|
|
sla a
|
|
add c
|
|
ld e, a
|
|
ld d, $0
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
ld l, b
|
|
ld h, $0
|
|
add hl, de
|
|
ld de, $4000
|
|
add hl, de
|
|
ld a, $3a
|
|
call Func_68f
|
|
bit 7, a
|
|
jr nz, .asm_1834e
|
|
sla a
|
|
ld [$d7ea], a
|
|
ld a, $1
|
|
ld [$d7e9], a
|
|
scf
|
|
ret
|
|
.asm_1834e
|
|
and a
|
|
ret
|
|
|
|
Func_18350: ; 0x18350
|
|
ld de, $4368 ; todo
|
|
ld hl, $435d ; todo
|
|
ld bc, $d654
|
|
and a
|
|
jp Func_2775
|
|
|
|
INCBIN "baserom.gbc",$1835d,$18377 - $1835d
|
|
|
|
Func_18377: ; 0x18377
|
|
call Func_18464
|
|
call Func_1860b
|
|
call Func_187b1
|
|
call Func_18d34
|
|
call Func_183b7
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_107f8)
|
|
ld hl, Func_107f8
|
|
call BankSwitch
|
|
ld a, [$d57e]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d57e], a
|
|
ld a, $1
|
|
ld [$d7be], a
|
|
call Func_2862
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_86d2)
|
|
ld hl, Func_86d2
|
|
call BankSwitch
|
|
ld a, [$d6a2]
|
|
cp $5
|
|
ret nc
|
|
ld a, $1
|
|
ld [$d6a8], a
|
|
ret
|
|
|
|
Func_183b7: ; 0x183b7
|
|
ld a, [$d653]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4b4]
|
|
cp $8a
|
|
ret nc
|
|
ld a, $1
|
|
ld [$d4af], a
|
|
ld [$d653], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
call Func_183db
|
|
call Func_18d91
|
|
ret
|
|
|
|
Func_183db: ; 0x183db
|
|
ld a, [$d4af]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $43f8
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_183ee
|
|
ld hl, $442e
|
|
.asm_183ee
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $6
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$183f8,$18464 - $183f8
|
|
|
|
Func_18464: ; 0x18464
|
|
ld a, [$d659]
|
|
and a
|
|
ret z
|
|
ld a, [$d657]
|
|
and a
|
|
jr z, .asm_184d5
|
|
xor a
|
|
ld [$d657], a
|
|
ld a, [$d7be]
|
|
and a
|
|
jr nz, .asm_184d5
|
|
ld a, [$d658]
|
|
sub $5
|
|
ld c, a
|
|
sla a
|
|
sla a
|
|
sla a
|
|
add c
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d65d
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
ld a, [de]
|
|
and a
|
|
jr nz, .asm_184d5
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
ld hl, $45e6
|
|
call Func_28a0
|
|
pop de
|
|
ld a, $1
|
|
ld [de], a
|
|
ld a, [$d67b]
|
|
inc a
|
|
ld [$d67b], a
|
|
ld bc, $34d6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld a, $33
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ld hl, $0100
|
|
ld a, l
|
|
ld [$d7bc], a
|
|
ld a, h
|
|
ld [$d7bd], a
|
|
ld a, $80
|
|
ld [wFlipperCollision], a
|
|
ld de, $002c
|
|
call PlaySoundEffect
|
|
.asm_184d5
|
|
ld bc, $0830
|
|
ld de, $d65d
|
|
ld hl, $d675
|
|
call Func_1850c
|
|
ld bc, $5078
|
|
ld de, $d666
|
|
ld hl, $d677
|
|
call Func_1850c
|
|
ld bc, $3050
|
|
ld de, $d66f
|
|
ld hl, $d679
|
|
call Func_1850c
|
|
ld de, $d65d
|
|
call Func_18562
|
|
ld de, $d666
|
|
call Func_18562
|
|
ld de, $d66f
|
|
call Func_18562
|
|
ret
|
|
|
|
Func_1850c: ; 0x1850c
|
|
ld a, [de]
|
|
and a
|
|
ret nz
|
|
inc de
|
|
push hl
|
|
ld a, [hli]
|
|
push af
|
|
push bc
|
|
ld a, [hl]
|
|
inc a
|
|
and $1f
|
|
ld [hl], a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4542
|
|
add hl, bc
|
|
pop bc
|
|
pop af
|
|
and a
|
|
jr nz, .asm_18534
|
|
ld a, [de]
|
|
add [hl]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [de]
|
|
adc $0
|
|
ld [de], a
|
|
pop hl
|
|
cp c
|
|
ret c
|
|
ld a, $1
|
|
ld [hl], a
|
|
ret
|
|
.asm_18534
|
|
ld a, [de]
|
|
sub [hl]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [de]
|
|
sbc $0
|
|
ld [de], a
|
|
pop hl
|
|
cp b
|
|
ret nc
|
|
xor a
|
|
ld [hl], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$18542,$18562 - $18542
|
|
|
|
Func_18562: ; 0x18562
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $45d9
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a9
|
|
pop de
|
|
ret nc
|
|
ld a, [de]
|
|
dec de
|
|
and a
|
|
jr nz, .asm_1858a
|
|
ld a, [de]
|
|
cp $4
|
|
ret nz
|
|
ld hl, $45dd
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
ret
|
|
.asm_1858a
|
|
cp $1
|
|
ret nz
|
|
ld a, [de]
|
|
cp $12
|
|
ret nz
|
|
ld a, [$d67b]
|
|
cp $a
|
|
jr nz, .asm_185b1
|
|
ld a, $1
|
|
ld [$d67e], a
|
|
ld [$d687], a
|
|
xor a
|
|
ld [$d659], a
|
|
ld [$d662], a
|
|
ld [$d66b], a
|
|
ld de, $0006
|
|
call Func_490
|
|
ret
|
|
.asm_185b1
|
|
ld c, a
|
|
ld a, [$d65d]
|
|
and a
|
|
jr nz, .asm_185b9
|
|
inc c
|
|
.asm_185b9
|
|
ld a, [$d666]
|
|
and a
|
|
jr nz, .asm_185c0
|
|
inc c
|
|
.asm_185c0
|
|
ld a, [$d66f]
|
|
and a
|
|
jr nz, .asm_185c7
|
|
inc c
|
|
.asm_185c7
|
|
ld a, c
|
|
cp $a
|
|
ret nc
|
|
ld hl, $45dd
|
|
push de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
pop de
|
|
inc de
|
|
xor a
|
|
ld [de], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$185d9,$1860b - $185d9
|
|
|
|
Func_1860b: ; 0x1860b
|
|
ld a, [$d67e]
|
|
and a
|
|
ret z
|
|
ld a, [$d67c]
|
|
and a
|
|
jr z, .asm_1867c
|
|
xor a
|
|
ld [$d67c], a
|
|
ld a, [$d7be]
|
|
and a
|
|
jr nz, .asm_1867c
|
|
ld a, [$d67d]
|
|
sub $8
|
|
ld c, a
|
|
sla a
|
|
sla a
|
|
sla a
|
|
add c
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d682
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
ld a, [de]
|
|
and a
|
|
jr nz, .asm_1867c
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
ld hl, $478a
|
|
call Func_28a0
|
|
pop de
|
|
ld a, $1
|
|
ld [de], a
|
|
ld a, [$d695]
|
|
inc a
|
|
ld [$d695], a
|
|
ld bc, $34e2
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld a, $33
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ld hl, $0100
|
|
ld a, l
|
|
ld [$d7bc], a
|
|
ld a, h
|
|
ld [$d7bd], a
|
|
ld a, $80
|
|
ld [wFlipperCollision], a
|
|
ld de, $002d
|
|
call PlaySoundEffect
|
|
.asm_1867c
|
|
ld bc, $5078
|
|
ld de, $d682
|
|
ld hl, $d691
|
|
call Func_186a1
|
|
ld bc, $1038
|
|
ld de, $d68b
|
|
ld hl, $d693
|
|
call Func_186a1
|
|
ld de, $d682
|
|
call Func_186f7
|
|
ld de, $d68b
|
|
call Func_186f7
|
|
ret
|
|
|
|
Func_186a1: ; 0x186a1
|
|
ld a, [de]
|
|
and a
|
|
ret nz
|
|
inc de
|
|
push hl
|
|
ld a, [hli]
|
|
push af
|
|
push bc
|
|
ld a, [hl]
|
|
inc a
|
|
and $1f
|
|
ld [hl], a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $46d7
|
|
add hl, bc
|
|
pop bc
|
|
pop af
|
|
and a
|
|
jr nz, .asm_186c9
|
|
ld a, [de]
|
|
add [hl]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [de]
|
|
adc $0
|
|
ld [de], a
|
|
pop hl
|
|
cp c
|
|
ret c
|
|
ld a, $1
|
|
ld [hl], a
|
|
ret
|
|
.asm_186c9
|
|
ld a, [de]
|
|
sub [hl]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [de]
|
|
sbc $0
|
|
ld [de], a
|
|
pop hl
|
|
cp b
|
|
ret nc
|
|
xor a
|
|
ld [hl], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$186d7,$186f7 - $186d7
|
|
|
|
Func_186f7: ; 0x186f7
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $477d
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a9
|
|
pop de
|
|
ret nc
|
|
ld a, [de]
|
|
dec de
|
|
and a
|
|
jr nz, .asm_1871f
|
|
ld a, [de]
|
|
cp $4
|
|
ret nz
|
|
ld hl, $4781
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
ret
|
|
.asm_1871f
|
|
cp $1
|
|
ret nz
|
|
ld a, [de]
|
|
cp $12
|
|
jr nz, .asm_18761
|
|
ld a, [$d695]
|
|
cp $a
|
|
jr nz, .asm_18740
|
|
ld a, $1
|
|
ld [$d656], a
|
|
call Func_18d72
|
|
call Func_18d91
|
|
ld de, $0000
|
|
call Func_490
|
|
ret
|
|
.asm_18740
|
|
ld c, a
|
|
ld a, [$d682]
|
|
and a
|
|
jr nz, .asm_18748
|
|
inc c
|
|
.asm_18748
|
|
ld a, [$d68b]
|
|
and a
|
|
jr nz, .asm_1874f
|
|
inc c
|
|
.asm_1874f
|
|
ld a, c
|
|
cp $a
|
|
ret nc
|
|
ld hl, $4781
|
|
push de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
pop de
|
|
inc de
|
|
xor a
|
|
ld [de], a
|
|
ret
|
|
.asm_18761
|
|
cp $13
|
|
ret nz
|
|
ld a, [$d695]
|
|
cp $a
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d698], a
|
|
xor a
|
|
ld [$d67e], a
|
|
ld [$d687], a
|
|
ld de, $005e
|
|
call Func_4ef
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1877d,$187b1 - $1877d
|
|
|
|
Func_187b1: ; 0x187b1
|
|
ld a, [$d698]
|
|
and a
|
|
ret z
|
|
ld a, [$d696]
|
|
and a
|
|
jp z, .asm_1885d
|
|
xor a
|
|
ld [$d696], a
|
|
ld a, [$d7be]
|
|
and a
|
|
jp nz, .asm_1885d
|
|
ld a, [$d697]
|
|
sub $a
|
|
ld c, a
|
|
sla a
|
|
sla a
|
|
sla a
|
|
add c
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d69c
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
ld a, [de]
|
|
and a
|
|
jp nz, .asm_1885d
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
ld a, [$d6a2]
|
|
inc a
|
|
ld [$d6a2], a
|
|
cp $5
|
|
jr nc, .asm_18804
|
|
ld hl, $4b2b
|
|
call Func_28a0
|
|
pop de
|
|
ld a, $2
|
|
ld [de], a
|
|
ld de, $0037
|
|
call PlaySoundEffect
|
|
jr .asm_18826
|
|
.asm_18804
|
|
ld hl, $4b32
|
|
call Func_28a0
|
|
pop de
|
|
ld a, $3
|
|
ld [de], a
|
|
ld a, $1
|
|
ld [$d7be], a
|
|
call Func_2862
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_86d2)
|
|
ld hl, Func_86d2
|
|
call BankSwitch
|
|
ld de, $0000
|
|
call Func_490
|
|
.asm_18826
|
|
ld bc, $34ee
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld a, $33
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ld hl, $0200
|
|
ld a, l
|
|
ld [$d7bc], a
|
|
ld a, h
|
|
ld [$d7bd], a
|
|
ld a, $80
|
|
ld [wFlipperCollision], a
|
|
ld a, [$d69f]
|
|
add $0
|
|
ld [$d69f], a
|
|
ld a, [$d6a0]
|
|
adc $ff
|
|
ld [$d6a0], a
|
|
.asm_1885d
|
|
ld a, [$d69c]
|
|
cp $2
|
|
jr nc, .asm_18869
|
|
call Func_18876
|
|
jr .asm_1886c
|
|
.asm_18869
|
|
call Func_188e1
|
|
.asm_1886c
|
|
ld de, $d69c
|
|
call Func_189af
|
|
call Func_1894c
|
|
ret
|
|
|
|
Func_18876: ; 0x18876
|
|
ld a, [$d6a3]
|
|
cp $1
|
|
jr z, .asm_1889b
|
|
cp $2
|
|
jr z, .asm_1889b
|
|
ld a, [$d69a]
|
|
cp $1
|
|
jr z, .asm_1888c
|
|
cp $2
|
|
jr nz, .asm_1889b
|
|
.asm_1888c
|
|
ld a, $1
|
|
ld [$d6a4], a
|
|
ld a, $11
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
.asm_1889b
|
|
ld a, [$d69a]
|
|
ld hl, $d6a3
|
|
cp [hl]
|
|
ret z
|
|
ld a, [$d69c]
|
|
and a
|
|
jr nz, .asm_188da
|
|
ld a, [$d6a0]
|
|
add $80
|
|
cp $a0
|
|
jr nc, .asm_188da
|
|
ld a, [$d69a]
|
|
and a
|
|
jr z, .asm_188ca
|
|
ld a, [$d69f]
|
|
add $0
|
|
ld [$d69f], a
|
|
ld a, [$d6a0]
|
|
adc $3
|
|
ld [$d6a0], a
|
|
jr .asm_188da
|
|
.asm_188ca
|
|
ld a, [$d69f]
|
|
add $0
|
|
ld [$d69f], a
|
|
ld a, [$d6a0]
|
|
adc $1
|
|
ld [$d6a0], a
|
|
.asm_188da
|
|
ld a, [$d69a]
|
|
ld [$d6a3], a
|
|
ret
|
|
|
|
Func_188e1: ; 0x188e1
|
|
ld a, [$d6a3]
|
|
cp $1
|
|
jr z, .asm_18901
|
|
cp $2
|
|
jr z, .asm_18901
|
|
ld a, [$d69a]
|
|
cp $1
|
|
jr z, .asm_188f7
|
|
cp $2
|
|
jr nz, .asm_18901
|
|
.asm_188f7
|
|
ld a, $1
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
.asm_18901
|
|
ld a, [$d69a]
|
|
cp $6
|
|
ret z
|
|
ld a, [$d69a]
|
|
ld hl, $d6a3
|
|
cp [hl]
|
|
ret z
|
|
ld a, [$d69c]
|
|
cp $3
|
|
jr nz, .asm_1891d
|
|
ld a, [$d69b]
|
|
cp $9
|
|
jr c, .asm_18945
|
|
.asm_1891d
|
|
ld a, [$d69a]
|
|
and a
|
|
jr z, .asm_18935
|
|
ld a, [$d69f]
|
|
add $0
|
|
ld [$d69f], a
|
|
ld a, [$d6a0]
|
|
adc $fd
|
|
ld [$d6a0], a
|
|
jr .asm_18945
|
|
.asm_18935
|
|
ld a, [$d69f]
|
|
add $0
|
|
ld [$d69f], a
|
|
ld a, [$d6a0]
|
|
adc $ff
|
|
ld [$d6a0], a
|
|
.asm_18945
|
|
ld a, [$d69a]
|
|
ld [$d6a3], a
|
|
ret
|
|
|
|
Func_1894c: ; 0x1894c
|
|
ld a, [$d6a6]
|
|
and a
|
|
jr nz, .asm_1898f
|
|
ld a, [$d6a4]
|
|
and a
|
|
jr z, .asm_1898f
|
|
ld a, [$d6a5]
|
|
cp $3
|
|
jr z, .asm_18980
|
|
inc a
|
|
ld [$d6a5], a
|
|
ld a, [$d548]
|
|
ld hl, $d549
|
|
and [hl]
|
|
jr z, .asm_18973
|
|
ld a, [$d4b6]
|
|
inc a
|
|
ld [$d4b6], a
|
|
.asm_18973
|
|
ld a, [$d7a0]
|
|
dec a
|
|
ld [$d7a0], a
|
|
ld a, $1
|
|
ld [wUpperTiltPushing], a
|
|
ret
|
|
.asm_18980
|
|
ld de, $002b
|
|
call PlaySoundEffect
|
|
ld a, $1
|
|
ld [$d6a6], a
|
|
xor a
|
|
ld [$d6a4], a
|
|
.asm_1898f
|
|
xor a
|
|
ld [wUpperTiltPushing], a
|
|
ld a, [$d6a5]
|
|
and a
|
|
jr z, .asm_189a5
|
|
dec a
|
|
ld [$d6a5], a
|
|
ld a, [$d7a0]
|
|
inc a
|
|
ld [$d7a0], a
|
|
ret
|
|
.asm_189a5
|
|
ld a, [$d6a4]
|
|
and a
|
|
ret nz
|
|
xor a
|
|
ld [$d6a6], a
|
|
ret
|
|
|
|
Func_189af: ; 0x189af
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4a57
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a9
|
|
pop de
|
|
ret nc
|
|
ld a, [de]
|
|
dec de
|
|
and a
|
|
jr nz, .asm_189d7
|
|
ld a, [de]
|
|
cp $4
|
|
ret nz
|
|
ld hl, $4a61
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
ret
|
|
.asm_189d7
|
|
cp $1
|
|
jr nz, .asm_189ed
|
|
ld a, [de]
|
|
cp $60
|
|
ret nz
|
|
ld hl, $4a61
|
|
push de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
pop de
|
|
inc de
|
|
xor a
|
|
ld [de], a
|
|
ret
|
|
.asm_189ed
|
|
cp $2
|
|
jr nz, .asm_18a04
|
|
ld a, [de]
|
|
cp $3
|
|
ret nz
|
|
ld hl, $4a6a
|
|
push de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
pop de
|
|
inc de
|
|
ld a, $1
|
|
ld [de], a
|
|
ret
|
|
.asm_18a04
|
|
cp $3
|
|
jr nz, .asm_18a3c
|
|
ld a, [de]
|
|
cp $1
|
|
jr nz, .asm_18a14
|
|
ld de, $002e
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_18a14
|
|
cp $fe
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d6a8], a
|
|
ld a, $1
|
|
ld [$d498], a
|
|
ld a, $1
|
|
ld [$d49a], a
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5dc
|
|
ld de, $2f7b
|
|
call Func_32aa
|
|
ld de, $4b2a
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_18a3c
|
|
cp $4
|
|
ret nz
|
|
ld a, [de]
|
|
cp $2
|
|
ret nz
|
|
ld hl, $4a61
|
|
push de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
pop de
|
|
inc de
|
|
xor a
|
|
ld [de], a
|
|
ld de, $0007
|
|
call Func_490
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$18a57,$18d34 - $18a57
|
|
|
|
Func_18d34: ; 0x18d34
|
|
ld a, [$d654]
|
|
and a
|
|
jr z, .asm_18d71
|
|
xor a
|
|
ld [$d654], a
|
|
ld a, [$d7be]
|
|
and a
|
|
jr nz, .asm_18d71
|
|
ld bc, $34b2
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld a, $ff
|
|
ld [$d803], a
|
|
ld a, $3
|
|
ld [$d804], a
|
|
ld hl, $0100
|
|
ld a, l
|
|
ld [$d7bc], a
|
|
ld a, h
|
|
ld [$d7bd], a
|
|
ld a, $80
|
|
ld [wFlipperCollision], a
|
|
ld de, $002f
|
|
call Func_4d8
|
|
.asm_18d71
|
|
ret
|
|
|
|
Func_18d72: ; 0x18d72
|
|
ld a, [$d656]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4ddb
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_18d85
|
|
ld hl, $4ed1
|
|
.asm_18d85
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $6
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_18d91: ; 0x18d91
|
|
ld a, [$d656]
|
|
and a
|
|
ld hl, $4dc9
|
|
jr z, .asm_18d9d
|
|
ld hl, $4dd2
|
|
.asm_18d9d
|
|
ld de, $c7c7
|
|
call Func_18db2
|
|
ld de, $c7ae
|
|
call Func_18db2
|
|
ld de, $c823
|
|
call Func_18db2
|
|
ld de, $c84d
|
|
; fall through
|
|
|
|
Func_18db2: ; 0x18db2
|
|
push hl
|
|
ld b, $3
|
|
.asm_18db5
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, e
|
|
add $1e
|
|
ld e, a
|
|
jr nc, .asm_18dc4
|
|
inc d
|
|
.asm_18dc4
|
|
dec b
|
|
jr nz, .asm_18db5
|
|
pop hl
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$18dc9,$1924f - $18dc9
|
|
|
|
InitMewtwoBonusStage: ; 0x1924f
|
|
ld a, [$d7c1]
|
|
and a
|
|
ret nz
|
|
xor a
|
|
ld [$d4af], a
|
|
ld a, $1
|
|
ld [$d7ac], a
|
|
ld a, [$d47e]
|
|
ld [$d481], a
|
|
xor a
|
|
ld [$d4c8], a
|
|
ld [$d47e], a
|
|
ld [$d49a], a
|
|
ld hl, $52ab ; todo
|
|
ld de, $d6b6
|
|
ld b, $c
|
|
.asm_19275
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_19275
|
|
ld hl, $52db ; todo
|
|
ld de, $d6ac
|
|
ld b, $8
|
|
.asm_1928c
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_1928c
|
|
ld bc, $0200 ; 2 minutes 0 seconds
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartTimer)
|
|
ld hl, StartTimer
|
|
call BankSwitch
|
|
ld a, $12
|
|
call Func_52c
|
|
ld de, $0001
|
|
call Func_490
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$192ab,$192e3 - $192ab
|
|
|
|
StartBallMewtwoBonusStage: ; 0x192e3
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $a6
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $56
|
|
ld [wBallYPos + 1], a
|
|
ld a, $80
|
|
ld [wBallXVelocity], a
|
|
xor a
|
|
ld [$d7ab], a
|
|
ld [$d4af], a
|
|
ld [$d6a9], a
|
|
ld a, [$d4c9]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d4c9], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$19310,$19330 - $19310
|
|
|
|
Func_19330: ; 0x19330
|
|
call Func_19414
|
|
call Func_19337
|
|
ret
|
|
|
|
Func_19337: ; 0x19337
|
|
ld hl, $d6bb
|
|
ld bc, $0601
|
|
.asm_1933d
|
|
push bc
|
|
push hl
|
|
ld a, [hli]
|
|
add $f8
|
|
ld b, a
|
|
ld a, [hld]
|
|
add $8
|
|
ld c, a
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
ld a, [hl]
|
|
dec hl
|
|
dec hl
|
|
bit 0, [hl]
|
|
call nz, Func_1936f
|
|
pop hl
|
|
pop bc
|
|
ld a, c
|
|
jr c, .asm_19360
|
|
ld de, $0008
|
|
add hl, de
|
|
inc c
|
|
dec b
|
|
jr nz, .asm_1933d
|
|
ret
|
|
.asm_19360
|
|
ld [$d4eb], a
|
|
ld [$d6b4], a
|
|
add $0
|
|
ld [$d4ea], a
|
|
ld [$d6b5], a
|
|
ret
|
|
|
|
Func_1936f: ; 0x1936f
|
|
cp $b
|
|
jp z, Func_19412
|
|
ld a, [wBallXPos + 1]
|
|
sub b
|
|
cp $20
|
|
jp nc, Func_19412
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
sub c
|
|
cp $20
|
|
jp nc, Func_19412
|
|
ld c, a
|
|
ld e, a
|
|
ld d, $0
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
ld l, b
|
|
ld h, $0
|
|
add hl, de
|
|
sla l
|
|
rl h
|
|
sla l
|
|
rl h
|
|
ld de, $4000
|
|
add hl, de
|
|
ld de, wBallXVelocity
|
|
ld a, $39
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $39
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
push bc
|
|
ld a, $39
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $39
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
bit 7, b
|
|
jr z, .asm_193ea
|
|
ld a, c
|
|
cpl
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
inc bc
|
|
.asm_193ea
|
|
pop hl
|
|
bit 7, h
|
|
jr z, .asm_193f6
|
|
ld a, l
|
|
cpl
|
|
ld l, a
|
|
ld a, h
|
|
cpl
|
|
ld h, a
|
|
inc hl
|
|
.asm_193f6
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
ld a, h
|
|
cp $2
|
|
jr c, .asm_19410
|
|
ld a, [$d804]
|
|
and a
|
|
jr nz, .asm_19410
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
.asm_19410
|
|
scf
|
|
ret
|
|
|
|
Func_19412: ; 0x19312
|
|
and a
|
|
ret
|
|
|
|
Func_19414: ; 0x19414
|
|
ld a, [$d4ea]
|
|
inc a
|
|
jr nz, .asm_1944f
|
|
ld a, [$d6aa]
|
|
bit 7, a
|
|
jr nz, .asm_1944f
|
|
ld a, [$d7e9]
|
|
and a
|
|
ret z
|
|
ld a, [$d7f5]
|
|
sub $10
|
|
ret c
|
|
cp $c
|
|
ret nc
|
|
ld a, $1
|
|
ld [$d4eb], a
|
|
add $6
|
|
ld [$d4ea], a
|
|
ld b, a
|
|
ld hl, $d6aa
|
|
ld [hl], $0
|
|
ld a, [$d4ec]
|
|
cp b
|
|
jr z, .asm_1944f
|
|
ld a, [$d4eb]
|
|
ld [hli], a
|
|
ld a, [$d4ea]
|
|
ld [hl], a
|
|
scf
|
|
ret
|
|
.asm_1944f
|
|
and a
|
|
ret
|
|
|
|
Func_19451: ; 0x19451
|
|
call Func_19531
|
|
call Func_19701
|
|
call Func_1948b
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_107f8)
|
|
ld hl, Func_107f8
|
|
call BankSwitch
|
|
ld a, [$d57e]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d57e], a
|
|
ld a, $1
|
|
ld [$d7be], a
|
|
call Func_2862
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_86d2)
|
|
ld hl, Func_86d2
|
|
call BankSwitch
|
|
ld a, [$d6b1]
|
|
cp $8
|
|
ret nc
|
|
ld a, $1
|
|
ld [$d6b3], a
|
|
ret
|
|
|
|
Func_1948b: ; 0x1948b
|
|
ld a, [$d6a9]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4b4]
|
|
cp $8a
|
|
ret nc
|
|
ld a, $1
|
|
ld [$d4af], a
|
|
ld [$d6a9], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
call Func_194ac
|
|
ret
|
|
|
|
Func_194ac: ; 0x194ac
|
|
ld a, [$d4af]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $54c9
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_194bf
|
|
ld hl, $54fd
|
|
.asm_194bf
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $6
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$194c9,$19531 - $194c9
|
|
|
|
Func_19531: ; 0x19531
|
|
ld a, [$d6aa]
|
|
and a
|
|
jr z, .asm_195a2
|
|
xor a
|
|
ld [$d6aa], a
|
|
ld a, [$d7be]
|
|
and a
|
|
jr nz, .asm_195a2
|
|
ld a, [$d6af]
|
|
cp $2
|
|
jr nc, .asm_195a2
|
|
ld bc, $34ee
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld a, [$d6b0]
|
|
inc a
|
|
cp $3
|
|
jr nz, .asm_19565
|
|
ld a, [$d6b1]
|
|
inc a
|
|
ld [$d6b1], a
|
|
xor a
|
|
.asm_19565
|
|
ld [$d6b0], a
|
|
call Func_1988e
|
|
ld a, [$d6b1]
|
|
cp $8
|
|
jr z, .asm_19582
|
|
ld a, $2
|
|
ld de, $d6ae
|
|
call Func_19679
|
|
ld de, $0039
|
|
call PlaySoundEffect
|
|
jr .asm_195a2
|
|
.asm_19582
|
|
ld a, $3
|
|
ld de, $d6ae
|
|
call Func_19679
|
|
ld a, $1
|
|
ld [$d7be], a
|
|
call Func_2862
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_86d2)
|
|
ld hl, Func_86d2
|
|
call BankSwitch
|
|
ld de, $0000
|
|
call Func_490
|
|
.asm_195a2
|
|
call Func_195ac
|
|
ld de, $d6af
|
|
call Func_195f5
|
|
ret
|
|
|
|
Func_195ac: ; 0x195ac
|
|
ld a, [$d6af]
|
|
and a
|
|
ret nz
|
|
ld hl, $d6bd
|
|
ld de, $0008
|
|
ld b, $6
|
|
.asm_195b9
|
|
ld a, [hl]
|
|
cp $2b
|
|
jr nz, .asm_195ce
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
ld a, [hl]
|
|
cp $2
|
|
ret nz
|
|
ld a, $1
|
|
ld de, $d6ae
|
|
call Func_19679
|
|
ret
|
|
.asm_195ce
|
|
add hl, de
|
|
dec b
|
|
jr nz, .asm_195b9
|
|
ret
|
|
|
|
Func_195d3: ; 0x195d3
|
|
ld hl, $d6bd
|
|
ld de, $0008
|
|
ld b, $6
|
|
.asm_195db
|
|
ld a, [hl]
|
|
cp $18
|
|
jr nz, .asm_195f0
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
ld a, [hl]
|
|
cp $2
|
|
ret nz
|
|
ld d, h
|
|
ld e, l
|
|
dec de
|
|
ld a, $1
|
|
call Func_19876
|
|
ret
|
|
.asm_195f0
|
|
add hl, de
|
|
dec b
|
|
jr nz, .asm_195db
|
|
ret
|
|
|
|
Func_195f5: ; 0x195f5
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5691
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a9
|
|
pop de
|
|
ret nc
|
|
ld a, [de]
|
|
rst $18
|
|
CallTable_1960d: ; 0x1960d
|
|
dw Func_19615
|
|
dw Func_1961e
|
|
dw Func_1962f
|
|
dw Func_19638
|
|
|
|
Func_19615: ; 0x19615
|
|
dec de
|
|
ld a, [de]
|
|
cp $4
|
|
ret nz
|
|
xor a
|
|
jp Func_19679
|
|
|
|
Func_1961e: ; 0x1961e
|
|
dec de
|
|
ld a, [de]
|
|
cp $c
|
|
jr nz, .asm_19628
|
|
call Func_195d3
|
|
ret
|
|
.asm_19628
|
|
cp $d
|
|
ret nz
|
|
xor a
|
|
jp Func_19679
|
|
|
|
Func_1962f: ; 0x1962f
|
|
dec de
|
|
ld a, [de]
|
|
cp $1
|
|
ret nz
|
|
xor a
|
|
jp Func_19679
|
|
|
|
Func_19638: ; 0x19638
|
|
dec de
|
|
ld a, [de]
|
|
cp $1
|
|
jr nz, .asm_19645
|
|
ld de, $0040
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_19645
|
|
cp $20
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d6b3], a
|
|
ld a, [$d499]
|
|
ld [$d498], a
|
|
ld a, [$d62f]
|
|
cp $2
|
|
jr z, .asm_1965e
|
|
inc a
|
|
ld [$d62f], a
|
|
.asm_1965e
|
|
ld a, $1
|
|
ld [$d49a], a
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5dc
|
|
.asm_1966b
|
|
ld de, $2f97
|
|
call Func_32aa
|
|
ld de, $4b2a
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_19679: ; 0x19679
|
|
push af
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5691
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
pop de
|
|
inc de
|
|
pop af
|
|
ld [de], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$19691,$19701 - $19691
|
|
|
|
Func_19701: ; 0x19701
|
|
ld a, [$d6b4]
|
|
and a
|
|
jr z, .asm_19742
|
|
xor a
|
|
ld [$d6b4], a
|
|
ld a, [$d7be]
|
|
and a
|
|
jr nz, .asm_19742
|
|
ld a, [$d6b5]
|
|
sub $1
|
|
sla a
|
|
sla a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d6ba
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
ld a, [de]
|
|
and a
|
|
jr nz, .asm_19742
|
|
dec de
|
|
ld a, $2
|
|
call Func_19876
|
|
ld bc, $34d6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld de, $0038
|
|
call PlaySoundEffect
|
|
.asm_19742
|
|
ld de, $d6bd
|
|
call Func_1978b
|
|
ld de, $d6c5
|
|
call Func_1978b
|
|
ld de, $d6cd
|
|
call Func_1978b
|
|
ld de, $d6d5
|
|
call Func_1978b
|
|
ld de, $d6dd
|
|
call Func_1978b
|
|
ld de, $d6e5
|
|
call Func_1978b
|
|
ld de, $d6b6
|
|
call Func_19833
|
|
ld de, $d6be
|
|
call Func_19833
|
|
ld de, $d6c6
|
|
call Func_19833
|
|
ld de, $d6ce
|
|
call Func_19833
|
|
ld de, $d6d6
|
|
call Func_19833
|
|
ld de, $d6de
|
|
call Func_19833
|
|
ret
|
|
|
|
Func_1978b: ; 0x1978b
|
|
ld a, [de]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
inc a
|
|
cp $48
|
|
jr c, .asm_19797
|
|
xor a
|
|
.asm_19797
|
|
ld [de], a
|
|
ld hl, $57a4
|
|
add hl, bc
|
|
dec de
|
|
ld a, [hld]
|
|
ld [de], a
|
|
dec de
|
|
ld a, [hl]
|
|
ld [de], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$197a3,$19833 - $197a3
|
|
|
|
Func_19833: ; 0x19833
|
|
ld a, [de]
|
|
and a
|
|
ret z
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5916
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a9
|
|
pop de
|
|
ret nc
|
|
ld a, [de]
|
|
rst $18
|
|
CallTable_19852: ; 0x19852
|
|
dw $585A
|
|
dw $5863
|
|
dw $586C
|
|
dw $586D
|
|
|
|
INCBIN "baserom.gbc",$1985a,$19876 - $1985a
|
|
|
|
Func_19876: ; 0x19876
|
|
push af
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5916
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
pop de
|
|
inc de
|
|
pop af
|
|
ld [de], a
|
|
ret
|
|
|
|
Func_1988e: ; 0x1988e
|
|
ld a, [$d6b1]
|
|
sla a
|
|
sla a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $58ce
|
|
add hl, bc
|
|
ld de, $d6bd
|
|
ld b, $6
|
|
.asm_198a3
|
|
ld a, [hli]
|
|
push bc
|
|
push de
|
|
push hl
|
|
bit 7, a
|
|
jr nz, .asm_198b7
|
|
ld [de], a
|
|
dec de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
ld a, $3
|
|
call Func_19876
|
|
jr .asm_198c0
|
|
.asm_198b7
|
|
dec de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
xor a
|
|
ld [de], a
|
|
.asm_198c0
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
ld a, e
|
|
add $8
|
|
ld e, a
|
|
jr nc, .asm_198ca
|
|
inc d
|
|
.asm_198ca
|
|
dec b
|
|
jr nz, .asm_198a3
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$198ce,$199f2 - $198ce
|
|
|
|
InitDiglettBonusStage: ; 0x199f2
|
|
ld a, [$d7c1]
|
|
and a
|
|
ret nz
|
|
xor a
|
|
ld [$d4af], a
|
|
ld a, $1
|
|
ld [$d7ac], a
|
|
ld a, [$d47e]
|
|
ld [$d481], a
|
|
xor a
|
|
ld [$d4c8], a
|
|
ld [$d47e], a
|
|
ld [$d49a], a
|
|
ld a, $1
|
|
ld hl, $d73d
|
|
ld b, $1f
|
|
.asm_19a17
|
|
ld [hli], a
|
|
dec b
|
|
jr nz, .asm_19a17
|
|
ld a, $1
|
|
ld [$d761], a
|
|
ld a, $c
|
|
ld [$d762], a
|
|
xor a
|
|
ld [$d763], a
|
|
ld [$d764], a
|
|
ld a, $11
|
|
call Func_52c
|
|
ld de, $0001
|
|
call Func_490
|
|
ret
|
|
|
|
StartBallDiglettBonusStage: ; 0x19a38
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $a6
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $56
|
|
ld [wBallYPos + 1], a
|
|
ld a, $40
|
|
ld [wBallXVelocity], a
|
|
xor a
|
|
ld [$d7ab], a
|
|
ld [$d4af], a
|
|
ld [$d73a], a
|
|
ld hl, $d73d
|
|
ld b, $1f
|
|
.asm_19a60
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_19a67
|
|
ld a, $1
|
|
ld [hl], a
|
|
.asm_19a67
|
|
inc hl
|
|
dec b
|
|
jr nz, .asm_19a60
|
|
xor a
|
|
ld [$d75c], a
|
|
ld [$d75d], a
|
|
ld [$d765], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$19a76,$19ab3 - $19a76
|
|
|
|
Func_19ab3: ; 0x19ab3
|
|
call Func_19aba
|
|
call Func_19b4b
|
|
ret
|
|
|
|
Func_19aba: ; 0x19aba
|
|
ld a, [$d4ea]
|
|
inc a
|
|
jr nz, .asm_19b16
|
|
ld a, [$d73b]
|
|
bit 7, a
|
|
jr nz, .asm_19b16
|
|
ld a, [$d7e9]
|
|
and a
|
|
ret z
|
|
ld a, [$d7f5]
|
|
sub $19
|
|
ret c
|
|
cp $33
|
|
ret nc
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5b18 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $a
|
|
jr nc, .asm_19aed
|
|
ld a, [wBallXPos + 1]
|
|
cp $48
|
|
ld a, $11
|
|
jr nc, .asm_19af7
|
|
xor a
|
|
jr .asm_19af7
|
|
.asm_19aed
|
|
ld a, [wBallXPos + 1]
|
|
cp $68
|
|
ld a, $11
|
|
jr nc, .asm_19af7
|
|
xor a
|
|
.asm_19af7
|
|
add [hl]
|
|
ld [$d4eb], a
|
|
add $0
|
|
ld [$d4ea], a
|
|
ld b, a
|
|
ld hl, $d73b
|
|
ld [hl], $0
|
|
ld a, [$d4ec]
|
|
cp b
|
|
jr z, .asm_19b16
|
|
ld a, [$d4eb]
|
|
ld [hli], a
|
|
ld a, [$d4ea]
|
|
ld [hl], a
|
|
scf
|
|
ret
|
|
.asm_19b16
|
|
and a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$19b18,$19b4b - $19b18
|
|
|
|
Func_19b4b: ; 0x19b4b
|
|
ld a, [$d4ea]
|
|
inc a
|
|
jr nz, .asm_19b86
|
|
ld a, [$d75f]
|
|
bit 7, a
|
|
jr nz, .asm_19b86
|
|
ld a, [$d7e9]
|
|
and a
|
|
ret z
|
|
ld a, [$d7f5]
|
|
sub $14
|
|
ret c
|
|
cp $5
|
|
ret nc
|
|
ld a, $1
|
|
ld [$d4eb], a
|
|
add $1f
|
|
ld [$d4ea], a
|
|
ld b, a
|
|
ld hl, $d75f
|
|
ld [hl], $0
|
|
ld a, [$d4ec]
|
|
cp b
|
|
jr z, .asm_19b86
|
|
ld a, [$d4eb]
|
|
ld [hli], a
|
|
ld a, [$d4ea]
|
|
ld [hl], a
|
|
scf
|
|
ret
|
|
.asm_19b86
|
|
and a
|
|
ret
|
|
|
|
Func_19b88: ; 0x19b88
|
|
call Func_19c52
|
|
call Func_1aad4
|
|
call Func_19b92
|
|
ret
|
|
|
|
Func_19b92: ; 0x19b92
|
|
ld a, [$d73a]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4b4]
|
|
cp $8a
|
|
ret nc
|
|
ld a, $1
|
|
ld [$d4af], a
|
|
ld [$d73a], a
|
|
xor a
|
|
ld [$c853], a
|
|
ld [$c873], a
|
|
ld [$c893], a
|
|
ld a, $5
|
|
ld [$c872], a
|
|
ld a, $7
|
|
ld [$c892], a
|
|
call Func_19bbd
|
|
ret
|
|
|
|
Func_19bbd: ; 0x19bbd
|
|
ld a, [$d4af]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5bda
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_19bd0
|
|
ld hl, $5c16
|
|
.asm_19bd0
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $6
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$19bda,$19c52 - $19bda
|
|
|
|
Func_19c52: ; 0x19c52
|
|
ld a, [$d73b]
|
|
and a
|
|
jr z, .asm_19cc8
|
|
xor a
|
|
ld [$d73b], a
|
|
ld bc, $34d6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld de, $0035
|
|
call PlaySoundEffect
|
|
ld hl, $0100
|
|
ld a, l
|
|
ld [$d7bc], a
|
|
ld a, h
|
|
ld [$d7bd], a
|
|
ld a, $80
|
|
ld [wFlipperCollision], a
|
|
ld a, [$d73c]
|
|
sub $1
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d73d
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $6
|
|
jr nc, .asm_19cc8
|
|
ld a, $8
|
|
ld [hl], a
|
|
call Func_19da8
|
|
call Func_19df0
|
|
ld hl, $d73d
|
|
ld bc, $1f00
|
|
xor a
|
|
.asm_19ca0
|
|
ld a, [hli]
|
|
and a
|
|
jr z, .asm_19ca8
|
|
cp $6
|
|
jr c, .asm_19ca9
|
|
.asm_19ca8
|
|
inc c
|
|
.asm_19ca9
|
|
dec b
|
|
jr nz, .asm_19ca0
|
|
ld a, c
|
|
cp $1f
|
|
jr nz, .asm_19cc8
|
|
ld hl, $6c75
|
|
ld de, $d761
|
|
call Func_28a0
|
|
ld a, $1
|
|
ld [$d764], a
|
|
call Func_1ac2c
|
|
ld de, $0002
|
|
call Func_490
|
|
.asm_19cc8
|
|
call $5cdd
|
|
ld a, [$d765]
|
|
and a
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d765], a
|
|
ld a, [$d764]
|
|
and a
|
|
call nz, Func_1ac2c
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$19cdd,$19da8 - $19cdd
|
|
|
|
Func_19da8: ; 0x19da8
|
|
cp $6
|
|
jr c, .asm_19dae
|
|
ld a, $6
|
|
.asm_19dae
|
|
push bc
|
|
ld b, a
|
|
sla c
|
|
ld a, c
|
|
sla c
|
|
add c
|
|
add b
|
|
dec a
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
ld hl, $5f15
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $6
|
|
call Func_10aa
|
|
pop bc
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$19dcd,$19df0 - $19dcd
|
|
|
|
Func_19df0: ; 0x19df0
|
|
sla c
|
|
ld a, c
|
|
sla c
|
|
add c
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5e13
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hli]
|
|
ld d, a
|
|
ld a, $2
|
|
ld [de], a
|
|
inc de
|
|
ld [de], a
|
|
ld a, e
|
|
add $1f
|
|
ld e, a
|
|
jr nc, .asm_19e0d
|
|
inc d
|
|
.asm_19e0d
|
|
ld a, $2
|
|
ld [de], a
|
|
inc de
|
|
ld [de], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$19e13,$1aad4 - $19e13
|
|
|
|
Func_1aad4: ; 0x1aad4
|
|
ld a, [$d75f]
|
|
and a
|
|
jr z, .asm_1ab2c
|
|
xor a
|
|
ld [$d75f], a
|
|
ld a, [$d764]
|
|
bit 0, a
|
|
jr z, .asm_1ab2c
|
|
cp $7
|
|
jr z, .asm_1ab2c
|
|
inc a
|
|
ld [$d764], a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $6c62
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld de, $d761
|
|
call Func_28a0
|
|
ld bc, $34ee
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld de, $0036
|
|
call PlaySoundEffect
|
|
ld a, $33
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ld hl, $0200
|
|
ld a, l
|
|
ld [$d7bc], a
|
|
ld a, h
|
|
ld [$d7bd], a
|
|
ld a, $80
|
|
ld [wFlipperCollision], a
|
|
.asm_1ab2c
|
|
call Func_1ab30
|
|
ret
|
|
|
|
Func_1ab30: ; 0x1ab30
|
|
ld a, [$d764]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $6c62
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld de, $d761
|
|
call Func_28a9
|
|
ret nc
|
|
ld a, [$d764]
|
|
and a
|
|
ret z
|
|
cp $1
|
|
jr nz, .asm_1ab64
|
|
ld a, [$d763]
|
|
cp $3
|
|
ret nz
|
|
ld hl, $6c75
|
|
ld de, $d761
|
|
call Func_28a0
|
|
ld a, $1
|
|
ld [$d764], a
|
|
ret
|
|
.asm_1ab64
|
|
cp $2
|
|
jr nz, .asm_1ab7d
|
|
ld a, [$d763]
|
|
cp $1
|
|
ret nz
|
|
ld hl, $6c7f
|
|
ld de, $d761
|
|
call Func_28a0
|
|
ld a, $3
|
|
ld [$d764], a
|
|
ret
|
|
.asm_1ab7d
|
|
cp $3
|
|
jr nz, .asm_1ab96
|
|
ld a, [$d763]
|
|
cp $3
|
|
ret nz
|
|
ld hl, $6c7f
|
|
ld de, $d761
|
|
call Func_28a0
|
|
ld a, $3
|
|
ld [$d764], a
|
|
ret
|
|
.asm_1ab96
|
|
cp $4
|
|
jr nz, .asm_1abaf
|
|
ld a, [$d763]
|
|
cp $1
|
|
ret nz
|
|
ld hl, $6c89
|
|
ld de, $d761
|
|
call Func_28a0
|
|
ld a, $5
|
|
ld [$d764], a
|
|
ret
|
|
.asm_1abaf
|
|
cp $5
|
|
jr nz, .asm_1abc8
|
|
ld a, [$d763]
|
|
cp $3
|
|
ret nz
|
|
ld hl, $6c89
|
|
ld de, $d761
|
|
call Func_28a0
|
|
ld a, $5
|
|
ld [$d764], a
|
|
ret
|
|
.asm_1abc8
|
|
cp $6
|
|
jr nz, .asm_1abe1
|
|
ld a, [$d763]
|
|
cp $1
|
|
ret nz
|
|
ld hl, $6c93
|
|
ld de, $d761
|
|
call Func_28a0
|
|
ld a, $7
|
|
ld [$d764], a
|
|
ret
|
|
.asm_1abe1
|
|
cp $7
|
|
ret nz
|
|
ld a, [$d763]
|
|
cp $1
|
|
jr nz, .asm_1abf2
|
|
ld de, $0000
|
|
call Func_490
|
|
ret
|
|
.asm_1abf2
|
|
cp $2
|
|
ret nz
|
|
ld hl, $6c72
|
|
ld de, $d761
|
|
call Func_28a0
|
|
xor a
|
|
ld [$d764], a
|
|
ld [$d498], a
|
|
ld a, $1
|
|
ld [$d49a], a
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5dc
|
|
ld de, $2fb3
|
|
call Func_32aa
|
|
ld de, $4b2a
|
|
call PlaySoundEffect
|
|
ld a, $1
|
|
ld [$d7be], a
|
|
call Func_2862
|
|
ld hl, $6c56
|
|
jr asm_1ac2f
|
|
|
|
Func_1ac2c: ; 0x1ac2c
|
|
ld hl, $6c4a
|
|
asm_1ac2f:
|
|
ld de, $c768
|
|
ld b, $3
|
|
.asm_1ac34
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld a, e
|
|
add $1d
|
|
ld e, a
|
|
jr nc, .asm_1ac46
|
|
inc d
|
|
.asm_1ac46
|
|
dec b
|
|
jr nz, .asm_1ac34
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1ac4a,$1c000 - $1ac4a
|
|
|
|
|
|
SECTION "bank7", ROMX, BANK[$7]
|
|
|
|
InitBlueField: ; 0x1c000
|
|
ld a, [$d7c1]
|
|
and a
|
|
ret nz
|
|
xor a
|
|
ld hl, $d46f
|
|
ld [hld], a
|
|
ld [hld], a
|
|
ld [hld], a
|
|
ld [hld], a
|
|
ld [hld], a
|
|
ld [hl], a
|
|
ld [$d460], a
|
|
ld [$d49b], a
|
|
ld [$d4c9], a
|
|
ld [$d47e], a
|
|
ld [$d4c8], a
|
|
ld hl, $d624
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d7ac], a
|
|
ld [$d7be], a
|
|
ld [wCurrentMap], a ; PALLET_TOWN
|
|
ld a, $1
|
|
ld [$d49d], a
|
|
ld [$d482], a
|
|
ld a, $2
|
|
ld [$d545], a
|
|
ld a, $3
|
|
ld [$d49e], a
|
|
ld [$d610], a
|
|
ld a, $2
|
|
ld [$d498], a
|
|
ld [$d499], a
|
|
ld a, $80
|
|
ld [$d52f], a
|
|
ld [$d532], a
|
|
ld a, $82
|
|
ld [$d530], a
|
|
xor a
|
|
ld [$d648], a
|
|
ld [$d649], a
|
|
ld [$d64a], a
|
|
ld [$d643], a
|
|
ld [$d644], a
|
|
ld [$d645], a
|
|
ld [$d646], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dbba)
|
|
ld hl, Func_dbba
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_1d65f)
|
|
ld hl, Func_1d65f
|
|
call BankSwitch
|
|
ld a, $10
|
|
call Func_52c
|
|
ld de, $0001
|
|
call Func_490
|
|
ret
|
|
|
|
StartBallBlueField: ; 0x1c08d
|
|
ld a, [$d496]
|
|
and a
|
|
jp nz, Func_1c129
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $a7
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $98
|
|
ld [wBallYPos + 1], a
|
|
xor a
|
|
ld [$d549], a
|
|
ld [$d580], a
|
|
call Func_1c7c7
|
|
ld a, [$d4c9]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d4c9], a
|
|
xor a
|
|
ld [$d50b], a
|
|
ld [$d50c], a
|
|
ld [$d51d], a
|
|
ld [$d51e], a
|
|
ld [$d517], a
|
|
ld hl, $d50f
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d4f0], a
|
|
ld [$d4f2], a
|
|
ld hl, $d5f9
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d47e], a
|
|
ld [$d611], a
|
|
ld [$d612], a
|
|
ld [$d628], a
|
|
ld [$d629], a
|
|
ld [$d62a], a
|
|
ld [$d62b], a
|
|
ld [$d62c], a
|
|
ld [$d63a], a
|
|
ld [$d63b], a
|
|
ld [$d63d], a
|
|
ld [$d63c], a
|
|
ld [$d62d], a
|
|
ld [$d62e], a
|
|
ld [$d613], a
|
|
inc a
|
|
ld [$d482], a
|
|
ld [$d4ef], a
|
|
ld [$d4f1], a
|
|
ld a, $3
|
|
ld [$d610], a
|
|
call Func_1d65f
|
|
ld a, $10
|
|
call Func_52c
|
|
ld de, $0001
|
|
call Func_490
|
|
ret
|
|
|
|
Func_1c129: ; 0x1c129
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $50
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $16
|
|
ld [wBallYPos + 1], a
|
|
xor a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld [wBallXVelocity], a
|
|
ld [wBallXVelocity + 1], a
|
|
ld [$d496], a
|
|
ld [$d7ab], a
|
|
ld [$d7be], a
|
|
ld a, [$d481]
|
|
ld [$d47e], a
|
|
ld a, $10
|
|
call Func_52c
|
|
ld de, $0001
|
|
call Func_490
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1c165,$1c520 - $1c165
|
|
|
|
Func_1c520: ; 0x1c520
|
|
call Func_1c55a ; shellders
|
|
call Func_1c567 ; spinner
|
|
call Func_1c57e
|
|
call Func_1c592
|
|
call Func_1c588
|
|
call Func_1c5c0
|
|
call Func_1c5eb
|
|
ret
|
|
|
|
Func_1c536: ; 0x1c536
|
|
ld a, [wBallYPos + 1]
|
|
cp $56
|
|
jr nc, .asm_1c54d
|
|
call Func_1c5de
|
|
call Func_1c5b3
|
|
call Func_1c5a6
|
|
call Func_1c5d4
|
|
call Func_1c5eb
|
|
ret
|
|
.asm_1c54d
|
|
call Func_1c571
|
|
call Func_1c59c
|
|
call Func_1c5ca
|
|
call Func_1c607
|
|
ret
|
|
|
|
Func_1c55a: ; 0x1c55a
|
|
ld de, $4644
|
|
ld hl, $462e
|
|
ld bc, $d4cb
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_1c567: ; 0x1c567
|
|
ld de, $4650
|
|
ld bc, $d507
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_1c571: ; 0x1c571
|
|
ld de, $4625
|
|
ld hl, $4611
|
|
ld bc, $d4d8
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_1c57e: ; 0x1c57e
|
|
ld de, $4656
|
|
ld bc, $d51f
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_1c588: ; 0x1c588
|
|
ld de, $4665
|
|
ld bc, $d635
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_1c592: ; 0x1c592
|
|
ld de, $466b
|
|
ld bc, $d630
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_1c59c: ; 0x1c59c
|
|
ld de, $4671
|
|
ld bc, $d515
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_1c5a6: ; 0x1c5a6
|
|
ld de, $4686
|
|
ld hl, $467a
|
|
ld bc, $d60a
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_1c5b3: ; 0x1c5b3
|
|
ld de, $4695
|
|
ld hl, $468f
|
|
ld bc, $d4ed
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_1c5c0: ; 0x1c5c0
|
|
ld de, $469e
|
|
ld bc, $d5f7
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_1c5ca: ; 0x1c5ca
|
|
ld de, $46aa
|
|
ld bc, $d50d
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_1c5d4: ; 0x1c5d4
|
|
ld de, $46b9
|
|
ld bc, $d601
|
|
scf
|
|
jp Func_2775
|
|
|
|
Func_1c5de: ; 0x1c5de
|
|
ld de, $46d1
|
|
ld hl, $46bf
|
|
ld bc, $d5c7
|
|
and a
|
|
jp Func_2775
|
|
|
|
Func_1c5eb: ; 0x1c5eb
|
|
xor a
|
|
ld [$d578], a
|
|
ld a, [$d551]
|
|
and a
|
|
ret z
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr nz, .asm_1c601
|
|
ld hl, $46d7 ; todo
|
|
jp Func_27fd
|
|
.asm_1c601
|
|
ld hl, $46fc ; todo
|
|
jp Func_27fd
|
|
|
|
Func_1c607: ; 0x1c607
|
|
ld de, $470f
|
|
ld bc, $d4dc
|
|
scf
|
|
jp Func_2775
|
|
|
|
INCBIN "baserom.gbc",$1c611,$1c715 - $1c611
|
|
|
|
Func_1c715: ; 0x1c715
|
|
call Func_1c9c1
|
|
call Func_1ca5f
|
|
call Func_1e356
|
|
call Func_1e58c
|
|
call Func_1e66a
|
|
call Func_1cfaa
|
|
call Func_1d0a1
|
|
call Func_1d216
|
|
call Func_1d32d
|
|
call Func_1ea3b
|
|
call Func_1dbd2
|
|
call Func_1ef09
|
|
call Func_1e9c0
|
|
call Func_1c8b6
|
|
call Func_1f18a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_146a9)
|
|
ld hl, Func_146a9
|
|
call BankSwitch
|
|
call Func_1f27b
|
|
call Func_1df15
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30188)
|
|
ld hl, Func_30188
|
|
call BankSwitch
|
|
ld a, $0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_1c769: ; 0x1c769
|
|
call Func_1ca4a
|
|
call Func_1ce40
|
|
call Func_1dbd2
|
|
call Func_1ca85
|
|
call Func_1e4b8
|
|
call Func_1e58c
|
|
call Func_1e5c5
|
|
call Func_1c7d7
|
|
call Func_1d0a1
|
|
call Func_1ead4
|
|
call Func_1d438
|
|
call Func_1e757
|
|
call Func_1e9c0
|
|
call Func_1ea0a
|
|
call Func_1c8b6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_14733)
|
|
ld hl, Func_14733
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_146a2)
|
|
ld hl, Func_146a2
|
|
call BankSwitch
|
|
call Func_1f261
|
|
call Func_1de93
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30188)
|
|
ld hl, Func_30188
|
|
call BankSwitch
|
|
ld a, $0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_1c7c7: ; 0x1c7c7
|
|
ld a, $0
|
|
ld [$d4af], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_1c7d7: ; 0x1c7d7
|
|
ld a, [$d4dc]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d4dc], a
|
|
ld a, [$d4de]
|
|
and a
|
|
jr z, .asm_1c810
|
|
xor a
|
|
ld [$d544], a
|
|
ld [$d542], a
|
|
ld [$d546], a
|
|
ld hl, wBallXVelocity
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld [wBallSpin], a
|
|
ld [wBallRotation], a
|
|
ld a, $71
|
|
ld [wBallYVelocity], a
|
|
ld a, $fa
|
|
ld [wBallYVelocity + 1], a
|
|
ld a, $1
|
|
ld [$d549], a
|
|
ld de, $000a
|
|
call PlaySoundEffect
|
|
.asm_1c810
|
|
ld a, $ff
|
|
ld [$d4ec], a
|
|
ld a, [$d4de]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4e0]
|
|
and a
|
|
jr nz, .asm_1c82c
|
|
call Func_1c839
|
|
ld a, $1
|
|
ld [$d4e0], a
|
|
ld [$d4de], a
|
|
ret
|
|
.asm_1c82c
|
|
ld hl, wKeyConfigBallStart
|
|
call IsKeyPressed
|
|
ret z
|
|
ld a, $1
|
|
ld [$d4de], a
|
|
ret
|
|
|
|
Func_1c839: ; 0x1c839
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_f269)
|
|
ld hl, Func_f269
|
|
call nz, BankSwitch
|
|
.showNextMap
|
|
ld a, [$d4e1]
|
|
inc a
|
|
cp $7 ; number of maps to choose from at the start of play
|
|
jr c, .gotMapId
|
|
xor a ; wrap around to 0
|
|
.gotMapId
|
|
ld [$d4e1], a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, BlueStageInitialMaps
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [wCurrentMap], a
|
|
push af
|
|
ld de, $0048
|
|
call PlaySoundEffect
|
|
pop af
|
|
add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers
|
|
ld [$ff8a], a
|
|
ld a, Bank(LoadBillboardPicture)
|
|
ld hl, LoadBillboardPicture
|
|
call BankSwitch
|
|
ld b, $20 ; number of frames to delay before the next map is shown
|
|
.waitOnCurrentMap
|
|
push bc
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_eeee)
|
|
ld hl, Func_eeee
|
|
call BankSwitch
|
|
ld hl, wKeyConfigBallStart
|
|
call IsKeyPressed
|
|
jr nz, .ballStartKeyPressed
|
|
pop bc
|
|
dec b
|
|
jr nz, .waitOnCurrentMap
|
|
jr .showNextMap
|
|
.ballStartKeyPressed
|
|
pop bc
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30253)
|
|
ld hl, Func_30253
|
|
call BankSwitch
|
|
ld bc, $2cd1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_3118f)
|
|
ld hl, Func_3118f
|
|
call BankSwitch
|
|
ld a, [wCurrentMap]
|
|
ld [$d4e3], a
|
|
xor a
|
|
ld [$d4e2], a
|
|
ret
|
|
|
|
BlueStageInitialMaps: ; 0x1c8af
|
|
db VIRIDIAN_CITY
|
|
db VIRIDIAN_FOREST
|
|
db MT_MOON
|
|
db CERULEAN_CITY
|
|
db VERMILION_STREETS
|
|
db ROCK_MOUNTAIN
|
|
db CELADON_CITY
|
|
|
|
Func_1c8b6: ; 0x1c8b6
|
|
ld a, [$d64c]
|
|
inc a
|
|
cp $3c
|
|
jr z, .asm_1c8c2
|
|
ld [$d64c], a
|
|
ret
|
|
.asm_1c8c2
|
|
xor a
|
|
ld [$d64c], a
|
|
ld hl, $d64d
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $5
|
|
ret nz
|
|
ld a, [$d644]
|
|
and a
|
|
jr nz, .asm_1c8e1
|
|
ld a, [$d643]
|
|
and a
|
|
jr nz, .asm_1c8e5
|
|
ld a, [$d545]
|
|
cp $2
|
|
jr nc, .asm_1c8e5
|
|
.asm_1c8e1
|
|
xor a
|
|
ld [$d64b], a
|
|
.asm_1c8e5
|
|
ld a, [$d644]
|
|
and a
|
|
jr nz, .asm_1c8f8
|
|
ld a, [$d643]
|
|
and a
|
|
jr nz, .asm_1c8fc
|
|
ld a, [$d543]
|
|
cp $3
|
|
jr z, .asm_1c8fc
|
|
.asm_1c8f8
|
|
xor a
|
|
ld [$d64b], a
|
|
.asm_1c8fc
|
|
xor a
|
|
ld [$d64d], a
|
|
xor a
|
|
ld [$d64a], a
|
|
ld [$d649], a
|
|
ld [$d648], a
|
|
ld a, [$d63e]
|
|
cp $1
|
|
jr z, .asm_1c97f
|
|
cp $3
|
|
jr z, .asm_1c97f
|
|
.asm_1c915
|
|
ld a, [$d644]
|
|
cp $0
|
|
jr z, .asm_1c925
|
|
ld a, [$d55a]
|
|
cp $0
|
|
jr nz, .asm_1c933
|
|
jr .asm_1c947
|
|
.asm_1c925
|
|
ld a, [$d643]
|
|
cp $0
|
|
jr nz, .asm_1c933
|
|
ld a, [$d545]
|
|
cp $2
|
|
jr c, .asm_1c947
|
|
.asm_1c933
|
|
ld a, [$d64b]
|
|
cp $1
|
|
jr z, .asm_1c947
|
|
ld a, $1
|
|
ld [$d63e], a
|
|
ld [$d64b], a
|
|
ld [$d640], a
|
|
jr .asm_1c99e
|
|
.asm_1c947
|
|
ld a, [$d644]
|
|
cp $0
|
|
jr z, .asm_1c955
|
|
ld a, [$d55a]
|
|
cp $0
|
|
jr z, .asm_1c969
|
|
.asm_1c955
|
|
ld a, [$d643]
|
|
cp $0
|
|
jr nz, .asm_1c969
|
|
ld a, [$d543]
|
|
cp $3
|
|
jr nz, .asm_1c97f
|
|
ld a, [$d54b]
|
|
and a
|
|
jr nz, .asm_1c97f
|
|
.asm_1c969
|
|
ld a, [$d64b]
|
|
cp $3
|
|
jr z, .asm_1c915
|
|
ld a, $3
|
|
ld [$d63e], a
|
|
ld [$d64b], a
|
|
ld a, $1
|
|
ld [$d640], a
|
|
jr .asm_1c99e
|
|
.asm_1c97f
|
|
ld a, [$d641]
|
|
and a
|
|
jr nz, .asm_1c993
|
|
xor a
|
|
ld [$d63e], a
|
|
ld a, $1
|
|
ld [$d640], a
|
|
ld [$d64a], a
|
|
jr .asm_1c99e
|
|
.asm_1c993
|
|
ld a, $2
|
|
ld [$d63e], a
|
|
ld a, $1
|
|
ld [$d640], a
|
|
ret
|
|
.asm_1c99e
|
|
ld a, [$d63e]
|
|
cp $0
|
|
jr nz, .asm_1c9ac
|
|
ld a, $1
|
|
ld [$d64a], a
|
|
jr .asm_1c9c0
|
|
.asm_1c9ac
|
|
cp $1
|
|
jr nz, .asm_1c9b7
|
|
ld a, $1
|
|
ld [$d649], a
|
|
jr .asm_1c9c0
|
|
.asm_1c9b7
|
|
cp $3
|
|
jr nz, .asm_1c9c0
|
|
ld a, $1
|
|
ld [$d648], a
|
|
.asm_1c9c0
|
|
ret
|
|
|
|
Func_1c9c1: ; 0x1c9c1
|
|
ld a, [$d4cb]
|
|
and a
|
|
jr z, .asm_1ca19
|
|
xor a
|
|
ld [$d4cb], a
|
|
call Func_1ca29
|
|
ld a, [$d641]
|
|
and a
|
|
jr nz, .asm_1c9f2
|
|
ld a, $1
|
|
ld [$d641], a
|
|
ld a, [$d63e]
|
|
cp $0
|
|
jr nz, .asm_1c9f2
|
|
ld a, $2
|
|
ld [$d63e], a
|
|
ld a, $1
|
|
ld [$d640], a
|
|
ld a, $3
|
|
ld [$d64c], a
|
|
ld [$d64d], a
|
|
.asm_1c9f2
|
|
ld a, $10
|
|
ld [$d4d6], a
|
|
ld a, [$d4cc]
|
|
sub $3
|
|
ld [$d4d7], a
|
|
ld a, $4
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld bc, $34be
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ret
|
|
.asm_1ca19
|
|
ld a, [$d4d6]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d4d6], a
|
|
ret nz
|
|
ld a, $ff
|
|
ld [$d4d7], a
|
|
ret
|
|
|
|
Func_1ca29: ; 0x1ca29
|
|
ld a, $ff
|
|
ld [$d803], a
|
|
ld a, $3
|
|
ld [$d804], a
|
|
ld hl, $0200
|
|
ld a, l
|
|
ld [$d7bc], a
|
|
ld a, h
|
|
ld [$d7bd], a
|
|
ld a, $80
|
|
ld [wFlipperCollision], a
|
|
ld de, $000e
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_1ca4a: ; 1ca4a
|
|
ld a, [$d5c7]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d5c7], a
|
|
ld a, $1
|
|
ld [$d5bf], a
|
|
ld de, $0006
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1ca5f,$1ca5f - $1ca5f
|
|
|
|
Func_1ca5f: ; 0x1ca5f
|
|
ld a, [$d507]
|
|
and a
|
|
jr z, Func_1ca85
|
|
xor a
|
|
ld [$d507], a
|
|
ld a, [wBallYVelocity]
|
|
ld c, a
|
|
ld a, [wBallYVelocity + 1]
|
|
ld b, a
|
|
ld a, c
|
|
ld [$d50b], a
|
|
ld a, b
|
|
ld [$d50c], a
|
|
ld a, $c
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
; fall through
|
|
|
|
Func_1ca85: ; 0x1ca85
|
|
ld hl, $d50b
|
|
ld a, [hli]
|
|
or [hl]
|
|
ret z
|
|
ld a, [$d50b]
|
|
ld c, a
|
|
ld a, [$d50c]
|
|
ld b, a
|
|
bit 7, b
|
|
jr nz, .asm_1caa3
|
|
ld a, c
|
|
sub $7
|
|
ld c, a
|
|
ld a, b
|
|
sbc $0
|
|
ld b, a
|
|
jr nc, .asm_1cab0
|
|
jr .asm_1caad
|
|
.asm_1caa3
|
|
ld a, c
|
|
add $7
|
|
ld c, a
|
|
ld a, b
|
|
adc $0
|
|
ld b, a
|
|
jr nc, .asm_1cab0
|
|
.asm_1caad
|
|
ld bc, $0000
|
|
.asm_1cab0
|
|
ld a, c
|
|
ld [$d50b], a
|
|
ld a, b
|
|
ld [$d50c], a
|
|
ld hl, $d50b
|
|
ld a, [$d509]
|
|
add [hl]
|
|
ld [$d509], a
|
|
inc hl
|
|
ld a, [$d50a]
|
|
adc [hl]
|
|
bit 7, a
|
|
ld c, $0
|
|
jr z, .asm_1cad3
|
|
add $18
|
|
ld c, $1
|
|
jr .asm_1cadb
|
|
.asm_1cad3
|
|
cp $18
|
|
jr c, .asm_1cadb
|
|
sub $18
|
|
ld c, $1
|
|
.asm_1cadb
|
|
ld [$d50a], a
|
|
ld a, c
|
|
and a
|
|
ret z
|
|
ld bc, $34ac
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld hl, $d62d
|
|
call Func_e4a
|
|
ld a, [$d517]
|
|
cp $f
|
|
jr nz, .asm_1caff
|
|
call Func_1cb1c
|
|
ret
|
|
.asm_1caff
|
|
inc a
|
|
ld [$d517], a
|
|
call Func_1cb1c
|
|
ld a, [$d517]
|
|
cp $f
|
|
jr nz, .asm_1cb12
|
|
ld a, $64
|
|
ld [$d51e], a
|
|
.asm_1cb12
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret nz
|
|
call Func_1cb43
|
|
ret
|
|
|
|
Func_1cb1c: ; 0x1cb1c
|
|
ld a, [$d51e]
|
|
and a
|
|
ret nz
|
|
ld a, [$d517]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4b33 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld d, $0
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1cb33,$1cb43 - $1cb33
|
|
|
|
Func_1cb43: ; 0x1cb43
|
|
ld a, [$d517]
|
|
ld c, a
|
|
sla c
|
|
ld b, $0
|
|
ld hl, $4b60 ; todo
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1cb56
|
|
ld hl, $4d10 ; todo
|
|
.asm_1cb56
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $7
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1cb60,$1ce40 - $1cb60
|
|
|
|
Func_1ce40: ; 1ce40
|
|
ld a, [$d4d8]
|
|
and a
|
|
jr z, .asm_1ce53
|
|
call Func_1ce72
|
|
call Func_1ce60
|
|
xor a
|
|
ld [$d4d8], a
|
|
call Func_1ce94
|
|
.asm_1ce53
|
|
ld a, [$d4da]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d4da], a
|
|
call z, Func_1ce72
|
|
ret
|
|
|
|
Func_1ce60: ; 0x1ce60
|
|
ld a, $10
|
|
ld [$d4da], a
|
|
ld a, [$d4d9]
|
|
sub $1
|
|
ld [$d4db], a
|
|
sla a
|
|
inc a
|
|
jr asm_1ce7a
|
|
|
|
Func_1ce72: ; 1ce72
|
|
ld a, [$d4db]
|
|
cp $ff
|
|
ret z
|
|
sla a
|
|
asm_1ce7a: ; 0x1ce7a
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4eca
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1ce8a
|
|
ld hl, $4f3a
|
|
.asm_1ce8a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $7
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_1ce94: ; 0x1ce94
|
|
ld a, $ff
|
|
ld [$d803], a
|
|
ld a, $3
|
|
ld [$d804], a
|
|
ld hl, $0200
|
|
ld a, l
|
|
ld [$d7bc], a
|
|
ld a, h
|
|
ld [$d7bd], a
|
|
ld a, $80
|
|
ld [wFlipperCollision], a
|
|
ld a, [$d4d9]
|
|
sub $1
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4ec8
|
|
add hl, bc
|
|
ld a, [$d7ea]
|
|
add [hl]
|
|
ld [$d7ea], a
|
|
ld de, $000b
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1cec8,$1cfaa - $1cec8
|
|
|
|
Func_1cfaa: ; 0x1cfaa
|
|
ld a, [$d51f]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d51f], a
|
|
ld bc, $34a6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld a, [$d4af]
|
|
cp $0
|
|
jr nz, .asm_1cfe5
|
|
ld a, $1
|
|
ld [$d4af], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
ld a, $1
|
|
ld [$d580], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_1404a)
|
|
ld hl, Func_1404a
|
|
call BankSwitch
|
|
.asm_1cfe5
|
|
ld a, [$d520]
|
|
sub $7
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d521
|
|
add hl, bc
|
|
ld [hl], $1
|
|
ld a, [$d521]
|
|
and a
|
|
call nz, Func_1d010
|
|
ld a, [$d522]
|
|
and a
|
|
call nz, Func_1d047
|
|
ld a, [$d523]
|
|
and a
|
|
call nz, Func_1d080
|
|
ld a, [$d524]
|
|
and a
|
|
call nz, Func_1d091
|
|
ret
|
|
|
|
Func_1d010: ; 0x1d010
|
|
xor a
|
|
ld [$d521], a
|
|
ld a, [$d542]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d542], a
|
|
ld a, $1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret c
|
|
ld a, [$d543]
|
|
cp $3
|
|
ret z
|
|
inc a
|
|
ld [$d543], a
|
|
cp $3
|
|
jr z, .asm_1d03e
|
|
set 7, a
|
|
ld [$d52f], a
|
|
ret
|
|
.asm_1d03e
|
|
ld [$d52f], a
|
|
ld a, $80
|
|
ld [$d531], a
|
|
ret
|
|
|
|
Func_1d047: ; 0x1d047
|
|
xor a
|
|
ld [$d522], a
|
|
ld a, [$d544]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d544], a
|
|
ld a, $2
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ret c
|
|
ld a, [$d545]
|
|
cp $3
|
|
ret z
|
|
inc a
|
|
ld [$d545], a
|
|
cp $3
|
|
jr z, .asm_1d071
|
|
set 7, a
|
|
.asm_1d071
|
|
ld [$d530], a
|
|
ld a, [$d545]
|
|
cp $2
|
|
ret c
|
|
ld a, $80
|
|
ld [$d532], a
|
|
ret
|
|
|
|
Func_1d080: ; 0x1d080
|
|
xor a
|
|
ld [$d523], a
|
|
ld [$d544], a
|
|
ld [$d546], a
|
|
ld a, $1
|
|
ld [$d542], a
|
|
ret c
|
|
ret
|
|
|
|
Func_1d091: ; 0x1d091
|
|
xor a
|
|
ld [$d524], a
|
|
ld [$d542], a
|
|
ld [$d546], a
|
|
ld a, $1
|
|
ld [$d544], a
|
|
ret
|
|
|
|
Func_1d0a1: ; 0x1d0a1
|
|
ld a, [$d515]
|
|
and a
|
|
jr z, .asm_1d110
|
|
xor a
|
|
ld [$d515], a
|
|
ld a, [$d51c]
|
|
and a
|
|
jr nz, .asm_1d110
|
|
ld a, [$d51d]
|
|
and a
|
|
jr nz, .asm_1d0c9
|
|
ld a, [$d516]
|
|
sub $d
|
|
ld hl, $d518
|
|
cp [hl]
|
|
jr nz, .asm_1d110
|
|
ld a, [$d517]
|
|
cp $f
|
|
jr nz, .asm_1d0fc
|
|
.asm_1d0c9
|
|
ld hl, $51d1 ; todo
|
|
ld de, $d519
|
|
call Func_28a0
|
|
ld a, [$d51d]
|
|
and a
|
|
jr nz, .asm_1d0dc
|
|
xor a
|
|
ld [$d517], a
|
|
.asm_1d0dc
|
|
ld a, $1
|
|
ld [$d51c], a
|
|
xor a
|
|
ld [wBallXVelocity], a
|
|
ld [wBallXVelocity + 1], a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld [wBallSpin], a
|
|
ld [wBallRotation], a
|
|
ld [$d549], a
|
|
call Func_30e8
|
|
jr .asm_1d110
|
|
.asm_1d0fc
|
|
ld hl, $51f6 ; todo
|
|
ld de, $d519
|
|
call Func_28a0
|
|
ld a, $2
|
|
ld [$d51c], a
|
|
ld de, $003b
|
|
call PlaySoundEffect
|
|
.asm_1d110
|
|
ld a, [$d51c]
|
|
and a
|
|
call z, Func_1d1fb
|
|
call Func_1d133
|
|
ld a, [$d517]
|
|
cp $f
|
|
ret nz
|
|
ld a, [$d51e]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d51e], a
|
|
cp $5a
|
|
ret nz
|
|
ld de, $0f22
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_1d133: ; 0x1d133
|
|
ld a, [$d51c]
|
|
cp $1
|
|
jr nz, .asm_1d1ae
|
|
ld hl, $51d1 ; todo
|
|
ld de, $d519
|
|
call Func_28a9
|
|
ret nc
|
|
ld a, [$d51b]
|
|
cp $1
|
|
jr nz, .asm_1d18c
|
|
xor a
|
|
ld [$d85d], a
|
|
call Func_310a
|
|
rst $10
|
|
ld a, $1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_50000)
|
|
ld hl, Func_50000
|
|
call BankSwitch
|
|
ld a, $1
|
|
ld [$d85d], a
|
|
ld a, $ff
|
|
ld [$d803], a
|
|
ld a, $60
|
|
ld [$d804], a
|
|
ld hl, $d62e
|
|
call Func_e4a
|
|
jr nc, .asm_1d185
|
|
ld c, $a
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
.asm_1d185
|
|
ld de, $1610
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_1d18c
|
|
ld a, [$d51b]
|
|
cp $11
|
|
ret nz
|
|
ld a, $fc
|
|
ld [wBallYVelocity + 1], a
|
|
ld a, $1
|
|
ld [$d549], a
|
|
ld bc, $34ca
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
xor a
|
|
ld [$d51c], a
|
|
ret
|
|
.asm_1d1ae
|
|
cp $2
|
|
jr nz, .asm_1d1c7
|
|
ld hl, $51f6 ; todo
|
|
ld de, $d519
|
|
call Func_28a9
|
|
ret nc
|
|
ld a, [$d51b]
|
|
cp $1
|
|
ret nz
|
|
xor a
|
|
ld [$d51c], a
|
|
ret
|
|
.asm_1d1c7
|
|
ld a, [$ffb3]
|
|
swap a
|
|
and $1
|
|
ld [$d51a], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1d1d1,$1d1fb - $1d1d1
|
|
|
|
Func_1d1fb: ; 0x1d1fb
|
|
ld hl, wKeyConfigLeftFlipper
|
|
call IsKeyPressed2
|
|
jr z, .asm_1d209
|
|
ld hl, $d518
|
|
ld [hl], $0
|
|
ret
|
|
.asm_1d209
|
|
ld hl, wKeyConfigRightFlipper
|
|
call IsKeyPressed2
|
|
ret z
|
|
ld hl, $d518
|
|
ld [hl], $1
|
|
ret
|
|
|
|
Func_1d216: ; 0x1d216
|
|
ld a, [$d630]
|
|
and a
|
|
jr z, .asm_1d253
|
|
xor a
|
|
ld [$d630], a
|
|
ld bc, $34d0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld de, $0005
|
|
call PlaySoundEffect
|
|
ld hl, $5312 ; todo
|
|
ld de, $d632
|
|
call Func_28a0
|
|
xor a
|
|
ld [wBallXVelocity], a
|
|
ld [wBallXVelocity + 1], a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld [wBallXPos], a
|
|
ld [wBallYPos], a
|
|
xor a
|
|
ld [$d549], a
|
|
.asm_1d253
|
|
ld hl, $5312 ; todo
|
|
ld de, $d632
|
|
call Func_28a9
|
|
push af
|
|
ld a, [$d632]
|
|
and a
|
|
jr nz, .asm_1d271
|
|
ld a, $19
|
|
ld [$d632], a
|
|
xor a
|
|
ld [$d633], a
|
|
ld a, $6
|
|
ld [$d634], a
|
|
.asm_1d271
|
|
pop af
|
|
ret nc
|
|
ld a, [$d634]
|
|
cp $1
|
|
jr nz, .asm_1d2b6
|
|
xor a
|
|
ld [$d548], a
|
|
ld a, [$d543]
|
|
cp $3
|
|
jr nz, .asm_1d299
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10ab3)
|
|
ld hl, Func_10ab3
|
|
call BankSwitch
|
|
ld a, [$d643]
|
|
and a
|
|
ret z
|
|
ld a, $1
|
|
ld [$d642], a
|
|
.asm_1d299
|
|
ld hl, $d63a
|
|
call Func_e4a
|
|
ld hl, $d62a
|
|
call Func_e4a
|
|
ret nc
|
|
ld c, $19
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
ret
|
|
.asm_1d2b6
|
|
ld a, [$d634]
|
|
cp $4
|
|
jr nz, .asm_1d2c3
|
|
ld a, $1
|
|
ld [$d548], a
|
|
ret
|
|
.asm_1d2c3
|
|
ld a, [$d634]
|
|
cp $5
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d549], a
|
|
ld a, $b0
|
|
ld [wBallXVelocity], a
|
|
ld a, $0
|
|
ld [wBallXVelocity + 1], a
|
|
xor a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld de, $0006
|
|
call PlaySoundEffect
|
|
ld a, [$d642]
|
|
cp $0
|
|
jr nz, .asm_1d2f8
|
|
ld a, $f
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
.asm_1d2f8
|
|
xor a
|
|
ld [$d642], a
|
|
ld [$d64c], a
|
|
ld [$d64d], a
|
|
ld a, $1
|
|
ld [$d641], a
|
|
ld a, $2
|
|
ld [$d63e], a
|
|
ld a, $1
|
|
ld [$d640], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1d312,$1d32d - $1d312
|
|
|
|
Func_1d32d: ; 0x1d32d
|
|
ld a, [$d635]
|
|
and a
|
|
jr z, .asm_1d36a
|
|
xor a
|
|
ld [$d635], a
|
|
ld bc, $34d0
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld de, $0005
|
|
call PlaySoundEffect
|
|
ld hl, $541d
|
|
ld de, $d637
|
|
call Func_28a0
|
|
xor a
|
|
ld [wBallXVelocity], a
|
|
ld [wBallXVelocity + 1], a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld [wBallXPos], a
|
|
ld [wBallYPos], a
|
|
xor a
|
|
ld [$d549], a
|
|
.asm_1d36a
|
|
ld hl, $541d
|
|
ld de, $d637
|
|
call Func_28a9
|
|
push af
|
|
ld a, [$d637]
|
|
and a
|
|
jr nz, .asm_1d388
|
|
ld a, $19
|
|
ld [$d637], a
|
|
xor a
|
|
ld [$d638], a
|
|
ld a, $6
|
|
ld [$d639], a
|
|
.asm_1d388
|
|
pop af
|
|
ret nc
|
|
ld a, [$d639]
|
|
cp $1
|
|
jr nz, .asm_1d3cb
|
|
xor a
|
|
ld [$d548], a
|
|
ld a, [$d545]
|
|
cp $2
|
|
jr c, .asm_1d3ae
|
|
ld a, $8
|
|
jr nz, .asm_1d3a1
|
|
xor a
|
|
.asm_1d3a1
|
|
ld [$d55b], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartCatchEmMode)
|
|
ld hl, StartCatchEmMode
|
|
call BankSwitch
|
|
.asm_1d3ae
|
|
ld hl, $d63b
|
|
call Func_e4a
|
|
ld hl, $d62a
|
|
call Func_e4a
|
|
ret nc
|
|
ld c, $19
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
ret
|
|
.asm_1d3cb
|
|
ld a, [$d639]
|
|
cp $4
|
|
jr nz, .asm_1d3d8
|
|
ld a, $1
|
|
ld [$d548], a
|
|
ret
|
|
.asm_1d3d8
|
|
ld a, [$d639]
|
|
cp $5
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d549], a
|
|
ld a, $4f
|
|
ld [wBallXVelocity], a
|
|
ld a, $ff
|
|
ld [wBallXVelocity + 1], a
|
|
xor a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld de, $0006
|
|
call PlaySoundEffect
|
|
ld a, $e
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
xor a
|
|
ld [$d64c], a
|
|
ld [$d64d], a
|
|
ld a, $1
|
|
ld [$d641], a
|
|
ld a, $2
|
|
ld [$d63e], a
|
|
ld a, $1
|
|
ld [$d640], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1d41d,$1d438 - $1d41d
|
|
|
|
Func_1d438: ; 0x1d438
|
|
call Func_1d692
|
|
ld a, [$d60a]
|
|
and a
|
|
jp z, Func_1d51b
|
|
xor a
|
|
ld [$d60a], a
|
|
ld de, $000d
|
|
call PlaySoundEffect
|
|
ld a, [$d60b]
|
|
sub $f
|
|
jr nz, .asm_1d48e
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_1d45c
|
|
ld a, $1f
|
|
jr .asm_1d45e
|
|
.asm_1d45c
|
|
ld a, $29
|
|
.asm_1d45e
|
|
call Func_1d5f2
|
|
ld a, $3c
|
|
ld [$d647], a
|
|
ld a, $9
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, [$d610]
|
|
cp $3
|
|
jp nz, asm_1d4fa
|
|
ld a, $1
|
|
ld [$d610], a
|
|
ld a, $3
|
|
ld [$d611], a
|
|
ld a, [$d60c]
|
|
set 7, a
|
|
ld [$d60c], a
|
|
jr asm_1d4fa
|
|
.asm_1d48e
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_1d497
|
|
ld a, $21
|
|
jr .asm_1d499
|
|
.asm_1d497
|
|
ld a, $2b
|
|
.asm_1d499
|
|
call Func_1d5f2
|
|
ld a, $1e
|
|
ld [$d647], a
|
|
ld a, $a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, [$d611]
|
|
cp $3
|
|
jr nz, asm_1d4fa
|
|
ld a, $1
|
|
ld [$d610], a
|
|
ld a, $1
|
|
ld [$d611], a
|
|
ld a, $80
|
|
ld [$d612], a
|
|
ld a, [$d60d]
|
|
set 7, a
|
|
ld [$d60d], a
|
|
ld a, [$d482]
|
|
inc a
|
|
cp $64
|
|
jr c, .asm_1d4d5
|
|
ld a, $63
|
|
.asm_1d4d5
|
|
ld [$d482], a
|
|
jr nc, .asm_1d4e9
|
|
ld c, $19
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
.asm_1d4e9
|
|
ld a, [$d60c]
|
|
ld [$d614], a
|
|
ld a, [$d60d]
|
|
ld [$d615], a
|
|
ld a, $1
|
|
ld [$d613], a
|
|
asm_1d4fa: ; 0x1d4fa
|
|
ld bc, $34ac
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld a, [$d60c]
|
|
call Func_1d5f2
|
|
ld a, [$d60d]
|
|
add $14
|
|
call Func_1d5f2
|
|
ld a, $3c
|
|
ld [$d647], a
|
|
ret
|
|
|
|
Func_1d51b: ; 0x1d51b
|
|
call Func_1d5bf
|
|
ld a, [$d612]
|
|
and a
|
|
jr z, .asm_1d559
|
|
dec a
|
|
ld [$d612], a
|
|
cp $70
|
|
jr nz, .asm_1d538
|
|
ld a, $2
|
|
ld [$d610], a
|
|
ld a, $2
|
|
ld [$d611], a
|
|
jr .asm_1d559
|
|
.asm_1d538
|
|
and a
|
|
jr nz, .asm_1d559
|
|
ld a, $3
|
|
ld [$d610], a
|
|
xor a
|
|
ld [$d611], a
|
|
ld a, [$d482]
|
|
call Func_1d65f
|
|
ld a, [$d60c]
|
|
call Func_1d5f2
|
|
ld a, [$d60d]
|
|
add $14
|
|
call Func_1d5f2
|
|
ret
|
|
.asm_1d559
|
|
ld a, [$d610]
|
|
cp $2
|
|
jr c, .asm_1d58b
|
|
cp $3
|
|
ld a, [$ffb3]
|
|
jr c, .asm_1d56a
|
|
srl a
|
|
srl a
|
|
.asm_1d56a
|
|
ld b, a
|
|
and $3
|
|
jr nz, .asm_1d58b
|
|
bit 3, b
|
|
jr nz, .asm_1d580
|
|
ld a, [$d60c]
|
|
res 7, a
|
|
ld [$d60c], a
|
|
call Func_1d5f2
|
|
jr .asm_1d58b
|
|
.asm_1d580
|
|
ld a, [$d60c]
|
|
set 7, a
|
|
ld [$d60c], a
|
|
call Func_1d5f2
|
|
.asm_1d58b
|
|
ld a, [$d611]
|
|
cp $2
|
|
ret c
|
|
cp $3
|
|
ld a, [$ffb3]
|
|
jr c, .asm_1d59b
|
|
srl a
|
|
srl a
|
|
.asm_1d59b
|
|
ld b, a
|
|
and $3
|
|
ret nz
|
|
bit 3, b
|
|
jr nz, .asm_1d5b1
|
|
ld a, [$d60d]
|
|
res 7, a
|
|
ld [$d60d], a
|
|
add $14
|
|
call Func_1d5f2
|
|
ret
|
|
.asm_1d5b1
|
|
ld a, [$d60d]
|
|
set 7, a
|
|
ld [$d60d], a
|
|
add $14
|
|
call Func_1d5f2
|
|
ret
|
|
|
|
Func_1d5bf: ; 0x1d5bf
|
|
ld a, [$d5ca]
|
|
and a
|
|
ret nz
|
|
ld a, [$d613]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d613], a
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5cc
|
|
ld de, $2958
|
|
call Func_32aa
|
|
ld hl, $c512
|
|
ld a, [$d614]
|
|
and $7f
|
|
jr z, .asm_1d5e9
|
|
add $30
|
|
ld [hli], a
|
|
.asm_1d5e9
|
|
ld a, [$d615]
|
|
res 7, a
|
|
add $30
|
|
ld [hl], a
|
|
ret
|
|
|
|
Func_1d5f2: ; 0x1d5f2
|
|
push af
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_1d5fd
|
|
pop af
|
|
call Func_1d602
|
|
ret
|
|
.asm_1d5fd
|
|
pop af
|
|
call Func_1d645
|
|
ret
|
|
|
|
Func_1d602: ; 0x1d602
|
|
push af
|
|
res 7, a
|
|
ld hl, $d60e
|
|
cp $14
|
|
jr c, .asm_1d611
|
|
ld hl, $d60f
|
|
sub $a
|
|
.asm_1d611
|
|
cp [hl]
|
|
jr z, .asm_1d626
|
|
ld [hl], a
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
ld hl, $56be
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $7
|
|
call Func_10aa
|
|
.asm_1d626
|
|
pop af
|
|
ld bc, $0000
|
|
bit 7, a
|
|
jr z, .asm_1d632
|
|
res 7, a
|
|
set 1, c
|
|
.asm_1d632
|
|
cp $14
|
|
jr c, .asm_1d638
|
|
set 2, c
|
|
.asm_1d638
|
|
ld hl, $5946
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $7
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_1d645: ; 0x1d645
|
|
bit 7, a
|
|
jr z, .asm_1d64d
|
|
res 7, a
|
|
add $a
|
|
.asm_1d64d
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
ld hl, $597a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $7
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_1d65f: ; 0x1d65f
|
|
ld a, [$d482]
|
|
inc a
|
|
cp $64
|
|
jr c, .asm_1d669
|
|
ld a, $63
|
|
.asm_1d669
|
|
ld b, a
|
|
xor a
|
|
ld hl, $568b ; todo
|
|
ld c, $7
|
|
.asm_1d670
|
|
bit 0, b
|
|
jr z, .asm_1d676
|
|
add [hl]
|
|
daa
|
|
.asm_1d676
|
|
srl b
|
|
inc hl
|
|
dec c
|
|
jr nz, .asm_1d670
|
|
push af
|
|
swap a
|
|
and $f
|
|
ld [$d60c], a
|
|
pop af
|
|
and $f
|
|
ld [$d60d], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1d68b,$1d692 - $1d68b
|
|
|
|
Func_1d692: ; 0x1d692
|
|
ld a, [$d647]
|
|
cp $1
|
|
jr z, .asm_1d69e
|
|
dec a
|
|
ld [$d647], a
|
|
ret
|
|
.asm_1d69e
|
|
ld a, $0
|
|
ld [$d647], a
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_1d6b3
|
|
ld a, $1e
|
|
call Func_1d5f2
|
|
ld a, $20
|
|
call Func_1d5f2
|
|
ret
|
|
.asm_1d6b3
|
|
ld a, $2a
|
|
call Func_1d5f2
|
|
ld a, $28
|
|
call Func_1d5f2
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1d6be,$1dbd2 - $1d6be
|
|
|
|
Func_1dbd2: ; 0x1dbd2
|
|
ld a, [$d4ed]
|
|
and a
|
|
jp z, Func_1dc8e
|
|
cp $2
|
|
jr z, .asm_1dc33
|
|
xor a
|
|
ld [$d4ed], a
|
|
ld hl, $d4f0
|
|
ld a, [hl]
|
|
cp $3
|
|
jp z, Func_1dc8e
|
|
inc a
|
|
ld [hl], a
|
|
ld hl, $d4f7
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_1dc06
|
|
ld a, $54
|
|
ld [$c7e3], a
|
|
ld a, $55
|
|
ld [$c803], a
|
|
.asm_1dc06
|
|
ld a, $1
|
|
call Func_1de4b
|
|
ld a, [$d4f0]
|
|
call Func_1de6f
|
|
ld a, [$d4f0]
|
|
cp $3
|
|
ld a, $7
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, $2
|
|
ld [$d646], a
|
|
ld a, $78
|
|
ld [$d4f3], a
|
|
ld a, $14
|
|
ld [$d4f4], a
|
|
jr .asm_1dc8a
|
|
.asm_1dc33
|
|
xor a
|
|
ld [$d4ed], a
|
|
ld hl, $d4f2
|
|
ld a, [hl]
|
|
cp $3
|
|
jp z, Func_1dc8e
|
|
inc a
|
|
ld [hl], a
|
|
ld hl, $d4f9
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_1dc5c
|
|
ld a, $52
|
|
ld [$c7f0], a
|
|
ld a, $53
|
|
ld [$c810], a
|
|
.asm_1dc5c
|
|
ld a, $3
|
|
call Func_1de4b
|
|
ld a, [$d4f2]
|
|
cp $3
|
|
ld a, $8
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, [$d4f2]
|
|
cp $3
|
|
ccf
|
|
call z, Func_1ddf4
|
|
ld a, $2
|
|
ld [$d645], a
|
|
ld a, $28
|
|
ld [$d4f5], a
|
|
ld a, $78
|
|
ld [$d4f6], a
|
|
.asm_1dc8a
|
|
call Func_1de22
|
|
ret
|
|
|
|
Func_1dc8e: ; 0x1dc8e
|
|
call Func_1dc95
|
|
call Func_1dd2e
|
|
ret
|
|
|
|
Func_1dc95: ; 0x1dc95
|
|
ld a, [$d646]
|
|
cp $0
|
|
ret z
|
|
ld a, [$d4f3]
|
|
and a
|
|
jr z, .asm_1dceb
|
|
dec a
|
|
ld [$d4f3], a
|
|
ld a, [$d644]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4f4]
|
|
cp $1
|
|
jr z, .asm_1dcb9
|
|
cp $0
|
|
ret z
|
|
dec a
|
|
ld [$d4f4], a
|
|
ret
|
|
.asm_1dcb9
|
|
ld a, [$d646]
|
|
cp $2
|
|
ret nz
|
|
call Func_1130
|
|
ret nz
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1dcd7
|
|
ld a, [$d4f0]
|
|
cp $0
|
|
jr z, .asm_1dcd4
|
|
ld b, $7
|
|
add b
|
|
jr .asm_1dcd9
|
|
.asm_1dcd4
|
|
xor a
|
|
jr .asm_1dcd9
|
|
.asm_1dcd7
|
|
ld a, $8
|
|
.asm_1dcd9
|
|
call Func_1de6f
|
|
ld a, [$d4f0]
|
|
cp $3
|
|
ccf
|
|
call z, Func_1ddc7
|
|
ld a, $1
|
|
ld [$d646], a
|
|
ret
|
|
.asm_1dceb
|
|
ld a, [$d646]
|
|
cp $1
|
|
ret nz
|
|
ld a, [$d4f3]
|
|
and a
|
|
ret nz
|
|
ld a, $0
|
|
call Func_1de4b
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_1dd0c
|
|
ld a, $5e
|
|
ld [$c7e3], a
|
|
ld a, $5f
|
|
ld [$c803], a
|
|
.asm_1dd0c
|
|
ld a, $0
|
|
ld [$d646], a
|
|
ld a, [$d4f0]
|
|
sub $3
|
|
ret nz
|
|
ld a, [$d4f0]
|
|
sub $3
|
|
ld [$d4f0], a
|
|
call Func_1de6f
|
|
ld a, $0
|
|
call Func_1de4b
|
|
ld a, $0
|
|
ld [$d646], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1dd2d,$1dd2e - $1dd2d
|
|
|
|
Func_1dd2e: ; 0x1dd2e
|
|
ld a, [$d645]
|
|
cp $0
|
|
ret z
|
|
cp $1
|
|
jr z, .asm_1dd53
|
|
cp $3
|
|
jr z, .asm_1dd69
|
|
ld a, [$d4f5]
|
|
cp $0
|
|
jr z, .asm_1dd48
|
|
dec a
|
|
ld [$d4f5], a
|
|
ret
|
|
.asm_1dd48
|
|
ld a, $2
|
|
call Func_1de4b
|
|
ld a, $1
|
|
ld [$d645], a
|
|
ret
|
|
.asm_1dd53
|
|
ld a, [$d4f2]
|
|
add $4
|
|
call Func_1de6f
|
|
ld a, [$d4f2]
|
|
add $3
|
|
call Func_1de4b
|
|
ld a, $3
|
|
ld [$d645], a
|
|
ret
|
|
.asm_1dd69
|
|
ld a, [$d4f6]
|
|
and a
|
|
jr z, .asm_1dd74
|
|
dec a
|
|
ld [$d4f6], a
|
|
ret
|
|
.asm_1dd74
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1dd89
|
|
ld a, [$d4f2]
|
|
cp $0
|
|
jr z, .asm_1dd85
|
|
ld b, $a
|
|
add b
|
|
jr .asm_1dd8b
|
|
.asm_1dd85
|
|
ld a, $4
|
|
jr .asm_1dd8b
|
|
.asm_1dd89
|
|
ld a, $9
|
|
.asm_1dd8b
|
|
call Func_1de6f
|
|
ld a, $2
|
|
call Func_1de4b
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_1dda9
|
|
ld a, $24
|
|
ld [$c7f0], a
|
|
ld a, $25
|
|
ld [$c810], a
|
|
ld a, $0
|
|
ld [$d645], a
|
|
.asm_1dda9
|
|
ld a, [$d4f2]
|
|
sub $3
|
|
ret nz
|
|
ld a, [$d4f2]
|
|
sub $3
|
|
ld [$d4f2], a
|
|
ld a, $4
|
|
call Func_1de6f
|
|
ld a, $2
|
|
call Func_1de4b
|
|
ld a, $0
|
|
ld [$d645], a
|
|
ret
|
|
|
|
Func_1ddc7: ; 0x1ddc7
|
|
ld hl, $d63d
|
|
call Func_e4a
|
|
ld hl, $d62b
|
|
call Func_e4a
|
|
jr nc, .asm_1dde4
|
|
ld c, $a
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
.asm_1dde4
|
|
xor a
|
|
ld [$d55a], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_301ec)
|
|
ld hl, Func_301ec
|
|
call BankSwitch
|
|
scf
|
|
ret
|
|
|
|
Func_1ddf4: ; 0x1ddf4
|
|
ld hl, $d63c
|
|
call Func_e4a
|
|
ld hl, $d62b
|
|
call Func_e4a
|
|
jr nc, .asm_1de11
|
|
ld c, $a
|
|
call Func_e55
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30164)
|
|
ld hl, Func_30164
|
|
call z, BankSwitch
|
|
.asm_1de11
|
|
ld a, $1
|
|
ld [$d55a], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_301ec)
|
|
ld hl, Func_301ec
|
|
call BankSwitch
|
|
scf
|
|
ret
|
|
|
|
Func_1de22: ; 0x1de22
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret z
|
|
ld a, $55
|
|
ld [$d803], a
|
|
ld a, $4
|
|
ld [$d804], a
|
|
ld a, $2
|
|
ld [$d7eb], a
|
|
ld bc, $34be
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld de, $000f
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_1de4b: ; 0x1de4b
|
|
ld b, a
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret z
|
|
ld a, b
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5f66
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1de63
|
|
ld hl, $600f
|
|
.asm_1de63
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $7
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_1de6f: ; 0x1de6f
|
|
ld b, a
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret z
|
|
ld a, b
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $60a4
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1de87
|
|
ld hl, $61d6
|
|
.asm_1de87
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $7
|
|
call Func_10aa
|
|
ret
|
|
|
|
Func_1de93: ; 0x1de93
|
|
ld hl, $d4f7
|
|
dec [hl]
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr nz, .asm_1ded2
|
|
dec [hl]
|
|
ld a, [hld]
|
|
cp $ff
|
|
jr nz, .asm_1ded2
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [$d4f0]
|
|
and a
|
|
jr z, .asm_1ded2
|
|
cp $3
|
|
jr z, .asm_1ded2
|
|
dec a
|
|
ld [$d4f0], a
|
|
call Func_1de6f
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1decd
|
|
ld a, [$d4f0]
|
|
cp $0
|
|
jr z, .asm_1deca
|
|
ld b, $7
|
|
add b
|
|
jr .asm_1decf
|
|
.asm_1deca
|
|
xor a
|
|
jr .asm_1decf
|
|
.asm_1decd
|
|
ld a, $8
|
|
.asm_1decf
|
|
call Func_1de6f
|
|
.asm_1ded2
|
|
ld hl, $d4f9
|
|
dec [hl]
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr nz, .asm_1df14
|
|
dec [hl]
|
|
ld a, [hld]
|
|
cp $ff
|
|
jr nz, .asm_1df14
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [$d4f2]
|
|
and a
|
|
jr z, .asm_1df14
|
|
cp $3
|
|
jr z, .asm_1df14
|
|
dec a
|
|
ld [$d4f2], a
|
|
add $4
|
|
call Func_1de6f
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1df0f
|
|
ld a, [$d4f2]
|
|
cp $0
|
|
jr z, .asm_1df0b
|
|
ld b, $a
|
|
add b
|
|
jr .asm_1df11
|
|
.asm_1df0b
|
|
ld a, $4
|
|
jr .asm_1df11
|
|
.asm_1df0f
|
|
ld a, $9
|
|
.asm_1df11
|
|
call Func_1de6f
|
|
.asm_1df14
|
|
ret
|
|
|
|
Func_1df15: ; 0x1df15
|
|
ld b, $0
|
|
ld hl, $d4f8
|
|
ld a, [hld]
|
|
or [hl]
|
|
jr z, .asm_1df3e
|
|
dec [hl]
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr nz, .asm_1df3e
|
|
dec [hl]
|
|
ld a, [hld]
|
|
cp $ff
|
|
jr nz, .asm_1df3e
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [$d4f0]
|
|
and a
|
|
jr z, .asm_1df3e
|
|
cp $3
|
|
jr z, .asm_1df3e
|
|
dec a
|
|
ld [$d4f0], a
|
|
.asm_1df3e
|
|
ld hl, $d4fa
|
|
ld a, [hld]
|
|
or [hl]
|
|
jr z, .asm_1df65
|
|
dec [hl]
|
|
ld a, [hli]
|
|
cp $ff
|
|
jr nz, .asm_1df65
|
|
dec [hl]
|
|
ld a, [hld]
|
|
cp $ff
|
|
jr nz, .asm_1df65
|
|
ld a, $e0
|
|
ld [hli], a
|
|
ld a, $1
|
|
ld [hl], a
|
|
ld a, [$d4f2]
|
|
and a
|
|
jr z, .asm_1df65
|
|
cp $3
|
|
jr z, .asm_1df65
|
|
dec a
|
|
ld [$d4f2], a
|
|
.asm_1df65
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1df66,$1e356 - $1df66
|
|
|
|
Func_1e356: ; 0x1e356
|
|
ld a, [$d5f7]
|
|
and a
|
|
jp z, Func_1e471
|
|
xor a
|
|
ld [$d5f7], a
|
|
ld a, [$d4af]
|
|
cp $0
|
|
jr nz, .asm_1e386
|
|
ld a, $1
|
|
ld [$d4af], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
ld a, $1
|
|
ld [$d580], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_1404a)
|
|
ld hl, Func_1404a
|
|
call BankSwitch
|
|
.asm_1e386
|
|
ld a, [$d4af]
|
|
bit 0, a
|
|
jp z, Func_1e471
|
|
ld a, [$d5fc]
|
|
and a
|
|
jp nz, Func_1e471
|
|
xor a
|
|
ld [$d544], a
|
|
ld [$d542], a
|
|
ld [$d546], a
|
|
ld a, $b
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
ld a, [$d5f8]
|
|
sub $13
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d5f9
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [hl], $1
|
|
and a
|
|
jr z, .asm_1e3bf
|
|
ld [hl], $0
|
|
.asm_1e3bf
|
|
ld bc, $34b2
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld hl, $d5f9
|
|
ld a, [hli]
|
|
and [hl]
|
|
inc hl
|
|
and [hl]
|
|
jr nz, .asm_1e3de
|
|
ld de, $0009
|
|
call PlaySoundEffect
|
|
jp asm_1e475
|
|
.asm_1e3de
|
|
ld a, $1
|
|
ld [$d5fc], a
|
|
ld a, $80
|
|
ld [$d5fd], a
|
|
ld a, $10
|
|
ld [$d47f], a
|
|
ld a, $e
|
|
ld [$d480], a
|
|
ld bc, $34b8
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld a, [$d47e]
|
|
cp $5
|
|
jr z, .asm_1e430
|
|
ld de, $063a
|
|
call PlaySoundEffect
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5cc
|
|
ld de, $2907
|
|
call Func_32aa
|
|
ld a, [$d47e]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $6514 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d47e], a
|
|
add $30
|
|
ld [$c512], a
|
|
jr .asm_1e465
|
|
.asm_1e430
|
|
ld de, $0f4d
|
|
call PlaySoundEffect
|
|
ld bc, $34e8
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld bc, $0100
|
|
ld de, $0000
|
|
push bc
|
|
push de
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5d4
|
|
ld de, $2948
|
|
call Func_32cc
|
|
pop de
|
|
pop bc
|
|
ld hl, $d5cc
|
|
ld de, $2922
|
|
call Func_32aa
|
|
.asm_1e465
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_155a7)
|
|
ld hl, Func_155a7
|
|
call BankSwitch
|
|
jr asm_1e475
|
|
|
|
Func_1e471: ; 0x1e471
|
|
call $64b8
|
|
ret z
|
|
asm_1e475: ; 0x1e475
|
|
ld hl, $d5fb
|
|
ld b, $3
|
|
.asm_1e47a
|
|
ld a, [hld]
|
|
push hl
|
|
call Func_1e484
|
|
pop hl
|
|
dec b
|
|
jr nz, .asm_1e47a
|
|
ret
|
|
|
|
Func_1e484: ; 0x1e484
|
|
and a
|
|
jr z, .asm_1e496
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_1e491
|
|
ld hl, $6520
|
|
jr .asm_1e4a3
|
|
.asm_1e491
|
|
ld hl, $6556
|
|
jr .asm_1e4a3
|
|
.asm_1e496
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_1e4a0
|
|
ld hl, $6526
|
|
jr .asm_1e4a3
|
|
.asm_1e4a0
|
|
ld hl, $655c
|
|
.asm_1e4a3
|
|
push bc
|
|
dec b
|
|
sla b
|
|
ld e, b
|
|
ld d, $0
|
|
add hl, de
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, [hl]
|
|
ld a, $7
|
|
ld de, $117b
|
|
call Func_10c5
|
|
pop bc
|
|
ret
|
|
|
|
Func_1e4b8: ; 0x1e4b8
|
|
ld a, [$d5fc]
|
|
and a
|
|
jr z, .asm_1e4e5
|
|
ld a, [$d5fd]
|
|
dec a
|
|
ld [$d5fd], a
|
|
jr nz, .asm_1e4ca
|
|
ld [$d5fc], a
|
|
.asm_1e4ca
|
|
and $7
|
|
jr nz, .asm_1e4e3
|
|
ld a, [$d5fd]
|
|
srl a
|
|
srl a
|
|
srl a
|
|
and $1
|
|
ld hl, $d5f9
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld a, $1
|
|
and a
|
|
ret
|
|
.asm_1e4e3
|
|
xor a
|
|
ret
|
|
.asm_1e4e5
|
|
ld hl, wKeyConfigLeftFlipper
|
|
call IsKeyPressed
|
|
jr z, .leftFlipperKeyIsPressed
|
|
; left flipper key is pressed
|
|
ld hl, $d5f9
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld a, c
|
|
ld [hld], a
|
|
ld a, e
|
|
ld [hld], a
|
|
ld a, b
|
|
ld [hl], a
|
|
ret
|
|
.leftFlipperKeyIsPressed
|
|
ld hl, wKeyConfigRightFlipper
|
|
call IsKeyPressed
|
|
ret z
|
|
; right flipper key is pressed
|
|
ld hl, $d5f9
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld a, b
|
|
ld [hld], a
|
|
ld a, c
|
|
ld [hld], a
|
|
ld a, e
|
|
ld [hl], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1e514,$1e58c - $1e514
|
|
|
|
Func_1e58c: ; 0x1e58c
|
|
ld a, [$d5f3]
|
|
and a
|
|
ret nz
|
|
ld hl, $d47f
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld b, [hl]
|
|
or b
|
|
ret z
|
|
dec bc
|
|
ld a, b
|
|
ld [hld], a
|
|
ld [hl], c
|
|
or c
|
|
ret nz
|
|
ld a, [$d47e]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $651a ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d47e], a
|
|
and a
|
|
jr z, .asm_1e5ba
|
|
ld a, $10
|
|
ld [$d47f], a
|
|
ld a, $e
|
|
ld [$d480], a
|
|
.asm_1e5ba
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_155a7)
|
|
ld hl, Func_155a7
|
|
call BankSwitch
|
|
ret
|
|
|
|
Func_1e5c5: ; 0x1e5c5
|
|
ld a, [$d50d]
|
|
and a
|
|
jr z, .asm_1e623
|
|
xor a
|
|
ld [$d50d], a
|
|
ld a, [$d513]
|
|
and a
|
|
jr nz, .asm_1e623
|
|
ld a, [$d50e]
|
|
sub $16
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d50f
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [hl], $1
|
|
and a
|
|
ret nz
|
|
ld bc, $34b2
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld hl, $d50f
|
|
ld a, [hli]
|
|
and [hl]
|
|
inc hl
|
|
and [hl]
|
|
inc hl
|
|
and [hl]
|
|
jr z, .asm_1e627
|
|
ld a, $1
|
|
ld [$d513], a
|
|
ld a, $80
|
|
ld [$d514], a
|
|
ld bc, $34b8
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld de, $0009
|
|
call PlaySoundEffect
|
|
ld hl, $d62c
|
|
call Func_e4a
|
|
jr .asm_1e627
|
|
.asm_1e623
|
|
call Func_1e66a
|
|
ret z
|
|
.asm_1e627
|
|
ld hl, $d512
|
|
ld b, $4
|
|
.asm_1e62c
|
|
ld a, [hld]
|
|
push hl
|
|
call Func_1e636
|
|
pop hl
|
|
dec b
|
|
jr nz, .asm_1e62c
|
|
ret
|
|
|
|
Func_1e636: ; 0x1e636
|
|
and a
|
|
jr z, .asm_1e648
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_1e643
|
|
ld hl, $66d7
|
|
jr .asm_1e655
|
|
.asm_1e643
|
|
ld hl, $6717
|
|
jr .asm_1e655
|
|
.asm_1e648
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr nz, .asm_1e652
|
|
ld hl, $66df
|
|
jr .asm_1e655
|
|
.asm_1e652
|
|
ld hl, $671f
|
|
.asm_1e655
|
|
push bc
|
|
dec b
|
|
sla b
|
|
ld e, b
|
|
ld d, $0
|
|
add hl, de
|
|
ld c, [hl]
|
|
inc hl
|
|
ld b, [hl]
|
|
ld a, $7
|
|
ld de, $117b
|
|
call Func_10c5
|
|
pop bc
|
|
ret
|
|
|
|
Func_1e66a: ; 0x1e66a
|
|
ld a, [$d513]
|
|
and a
|
|
jr z, .asm_1e6a0
|
|
ld a, [$d514]
|
|
dec a
|
|
ld [$d514], a
|
|
jr nz, .asm_1e687
|
|
ld [$d513], a
|
|
ld a, $1
|
|
ld [$d608], a
|
|
ld a, $3
|
|
ld [$d607], a
|
|
xor a
|
|
.asm_1e687
|
|
and $7
|
|
ret nz
|
|
ld a, [$d514]
|
|
srl a
|
|
srl a
|
|
srl a
|
|
and $1
|
|
ld hl, $d50f
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ld a, $1
|
|
and a
|
|
ret
|
|
.asm_1e6a0
|
|
ld hl, wKeyConfigLeftFlipper
|
|
call IsKeyPressed
|
|
jr z, .asm_1e6bc
|
|
ld hl, $d50f
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hl]
|
|
ld d, a
|
|
ld a, c
|
|
ld [hld], a
|
|
ld a, d
|
|
ld [hld], a
|
|
ld a, e
|
|
ld [hld], a
|
|
ld a, b
|
|
ld [hl], a
|
|
ret
|
|
.asm_1e6bc
|
|
ld hl, wKeyConfigRightFlipper
|
|
call IsKeyPressed
|
|
ret z
|
|
ld hl, $d50f
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hl]
|
|
ld d, a
|
|
ld a, e
|
|
ld [hld], a
|
|
ld a, b
|
|
ld [hld], a
|
|
ld a, c
|
|
ld [hld], a
|
|
ld a, d
|
|
ld [hl], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1e6d7,$1e757 - $1e6d7
|
|
|
|
Func_1e757: ; 0x1e757
|
|
ld a, [$d601]
|
|
and a
|
|
jr z, .asm_1e78c
|
|
xor a
|
|
ld [$d601], a
|
|
ld a, [$d604]
|
|
and a
|
|
ret z
|
|
ld a, [$d603]
|
|
and a
|
|
jr nz, .asm_1e78c
|
|
xor a
|
|
ld hl, wBallXVelocity
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d549], a
|
|
ld [wBallXPos], a
|
|
ld [wBallYPos], a
|
|
ld a, $50
|
|
ld [wBallXPos + 1], a
|
|
ld a, $16
|
|
ld [wBallYPos + 1], a
|
|
ld a, $13
|
|
ld [$d603], a
|
|
.asm_1e78c
|
|
ld a, [$d603]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d603], a
|
|
ld a, $18
|
|
ld [$d606], a
|
|
ld a, [$d603]
|
|
cp $12
|
|
jr nz, .asm_1e7b2
|
|
ld de, $0021
|
|
call PlaySoundEffect
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dd12)
|
|
ld hl, Func_dd12
|
|
call BankSwitch
|
|
ret
|
|
.asm_1e7b2
|
|
cp $f
|
|
jr nz, .asm_1e7c1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dd62)
|
|
ld hl, Func_dd62
|
|
call BankSwitch
|
|
ret
|
|
.asm_1e7c1
|
|
cp $c
|
|
jr nz, .asm_1e7d0
|
|
xor a
|
|
ld [$d548], a
|
|
ld [wBallSpin], a
|
|
ld [wBallRotation], a
|
|
ret
|
|
.asm_1e7d0
|
|
cp $9
|
|
jr nz, .asm_1e7d8
|
|
call Func_1e830
|
|
ret
|
|
.asm_1e7d8
|
|
cp $6
|
|
jr nz, .asm_1e7f5
|
|
xor a
|
|
ld [$d604], a
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dd12)
|
|
ld hl, Func_dd12
|
|
call BankSwitch
|
|
ret
|
|
.asm_1e7f5
|
|
cp $3
|
|
jr nz, .asm_1e80e
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dcc3)
|
|
ld hl, Func_dcc3
|
|
call BankSwitch
|
|
ld a, $2
|
|
ld [wBallYVelocity + 1], a
|
|
ld a, $80
|
|
ld [wBallXVelocity], a
|
|
ret
|
|
.asm_1e80e
|
|
and a
|
|
ret nz
|
|
call Func_1e8f6
|
|
ld a, [$d622]
|
|
cp $1
|
|
ret nz
|
|
call Func_959
|
|
and $8
|
|
ld [$d55b], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartCatchEmMode)
|
|
ld hl, StartCatchEmMode
|
|
call BankSwitch
|
|
xor a
|
|
ld [$d622], a
|
|
ret
|
|
|
|
Func_1e830: ; 0x1e830
|
|
xor a
|
|
ld [$d533], a
|
|
ld a, $d
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10000)
|
|
ld hl, Func_10000
|
|
call BankSwitch
|
|
jr nc, .asm_1e84b
|
|
ld a, $1
|
|
ld [$d548], a
|
|
ld [$d549], a
|
|
ret
|
|
.asm_1e84b
|
|
ld a, [$d624]
|
|
cp $3
|
|
jr nz, .asm_1e891
|
|
ld a, [$d607]
|
|
and a
|
|
jr nz, .asm_1e891
|
|
.asm_1e858
|
|
ld a, [$d623]
|
|
and a
|
|
jr nz, .asm_1e867
|
|
xor a
|
|
ld [$d625], a
|
|
ld a, $40
|
|
ld [$d626], a
|
|
.asm_1e867
|
|
xor a
|
|
ld [$d623], a
|
|
ld a, $1
|
|
ld [$d495], a
|
|
ld [$d4ae], a
|
|
ld a, [$d498]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $68f1
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d497], a
|
|
call Func_1e8c3
|
|
xor a
|
|
ld [$d609], a
|
|
ld [$d622], a
|
|
ld a, $1e
|
|
ld [$d607], a
|
|
ret
|
|
.asm_1e891
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_ed8e)
|
|
ld hl, Func_ed8e
|
|
call BankSwitch
|
|
xor a
|
|
ld [$d608], a
|
|
ld a, [$d61d]
|
|
cp $d
|
|
jr nc, .asm_1e858
|
|
ld a, $1
|
|
ld [$d548], a
|
|
ld [$d549], a
|
|
ld a, [$d622]
|
|
cp $2
|
|
ret nz
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_10ab3)
|
|
ld hl, Func_10ab3
|
|
call BankSwitch
|
|
xor a
|
|
ld [$d622], a
|
|
ret
|
|
|
|
Func_1e8c3: ; 0x1e8c3
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5dc
|
|
ld a, [$d497]
|
|
ld de, $2ed2
|
|
cp $b
|
|
jr z, .asm_1e8e0
|
|
ld de, $2eec
|
|
cp $f
|
|
jr z, .asm_1e8e0
|
|
ld de, $2eb8
|
|
.asm_1e8e0
|
|
call Func_32aa
|
|
ld de, $0000
|
|
call Func_490
|
|
rst $10
|
|
ld de, $3c23
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1e8f1,$1e8f6 - $1e8f1
|
|
|
|
Func_1e8f6: ; 0x1e8f6
|
|
ld a, [wCurrentStage]
|
|
and $1
|
|
sla a
|
|
ld c, a
|
|
ld a, [$d604]
|
|
add c
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $691e
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1e912
|
|
ld hl, $6970
|
|
.asm_1e912
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $7
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1e91e,$1e9c0 - $1e91e
|
|
|
|
Func_1e9c0: ; 0x1e9c0
|
|
ld a, [$d607]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d607], a
|
|
ret nz
|
|
ld a, [$d54b]
|
|
and a
|
|
ret nz
|
|
ld a, [$d609]
|
|
and a
|
|
jr z, .asm_1e9dc
|
|
ld a, [$d498]
|
|
add $15
|
|
jr .asm_1e9e3
|
|
.asm_1e9dc
|
|
ld a, [$d608]
|
|
and a
|
|
ret z
|
|
ld a, $1a
|
|
.asm_1e9e3
|
|
ld hl, wCurrentStage
|
|
bit 0, [hl]
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_30256)
|
|
ld hl, Func_30256
|
|
call nz, BankSwitch
|
|
ld a, [$d604]
|
|
and a
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d604], a
|
|
ld a, $80
|
|
ld [$d533], a
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
call nz, Func_1e8f6
|
|
ret
|
|
|
|
Func_1ea0a: ; 0x1ea0a
|
|
ld a, [$d604]
|
|
and a
|
|
ret z
|
|
ld a, [wBallYPos + 1]
|
|
sub $fe
|
|
cp $30
|
|
ret nc
|
|
ld c, $0
|
|
ld b, a
|
|
ld h, b
|
|
ld l, c
|
|
srl b
|
|
rr c
|
|
srl b
|
|
rr c
|
|
srl h
|
|
rr l
|
|
add hl, bc
|
|
ld a, [wBallXPos + 1]
|
|
sub $38
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
sla c
|
|
add hl, bc
|
|
jr asm_1ea6a
|
|
|
|
Func_1ea3b: ; 0x1ea3b
|
|
ld a, [$d604]
|
|
and a
|
|
ret z
|
|
ld a, [wBallYPos + 1]
|
|
sub $86
|
|
cp $30
|
|
ret nc
|
|
ld c, $0
|
|
ld b, a
|
|
ld h, b
|
|
ld l, c
|
|
srl b
|
|
rr c
|
|
srl b
|
|
rr c
|
|
srl h
|
|
rr l
|
|
add hl, bc
|
|
ld a, [wBallXPos + 1]
|
|
sub $38
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
sla c
|
|
add hl, bc
|
|
; fall through
|
|
|
|
asm_1ea6a: ; 0x1ea6a
|
|
ld bc, $4000
|
|
add hl, bc
|
|
ld de, wBallXVelocity
|
|
ld a, $3c
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3c
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
push bc
|
|
ld a, $3c
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3c
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
bit 7, b
|
|
jr z, .asm_1eaa9
|
|
ld a, c
|
|
cpl
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
inc bc
|
|
.asm_1eaa9
|
|
pop hl
|
|
bit 7, h
|
|
jr z, .asm_1eab5
|
|
ld a, l
|
|
cpl
|
|
ld l, a
|
|
ld a, h
|
|
cpl
|
|
ld h, a
|
|
inc hl
|
|
.asm_1eab5
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
ld a, h
|
|
cp $2
|
|
ret c
|
|
ld a, [$d804]
|
|
and a
|
|
ret nz
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ld de, $0004
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_1ead4: ; 0x1ead4
|
|
ld a, [$ffb3]
|
|
and $f
|
|
ret nz
|
|
ld bc, $0000
|
|
.asm_1eadc
|
|
push bc
|
|
ld hl, $d52f
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $1
|
|
jr z, .asm_1eaf8
|
|
bit 7, [hl]
|
|
jr z, .asm_1eaf8
|
|
ld a, [hl]
|
|
res 7, a
|
|
ld hl, $ffb3
|
|
bit 4, [hl]
|
|
jr z, .asm_1eaf5
|
|
inc a
|
|
.asm_1eaf5
|
|
call Func_1eb41
|
|
.asm_1eaf8
|
|
pop bc
|
|
inc c
|
|
ld a, c
|
|
cp $2
|
|
jr nz, .asm_1eadc
|
|
ld a, [$ffb3]
|
|
and $f
|
|
ret nz
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
ret z
|
|
ld bc, $0002
|
|
.asm_1eb0d
|
|
push bc
|
|
ld hl, $d52f
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $1
|
|
jr z, .asm_1eb29
|
|
bit 7, [hl]
|
|
jr z, .asm_1eb29
|
|
ld a, [hl]
|
|
res 7, a
|
|
ld hl, $ffb3
|
|
bit 4, [hl]
|
|
jr z, .asm_1eb2b
|
|
inc a
|
|
inc a
|
|
jr .asm_1eb2b
|
|
.asm_1eb29
|
|
ld a, $0
|
|
.asm_1eb2b
|
|
push af
|
|
ld hl, $d648
|
|
add hl, bc
|
|
dec hl
|
|
dec hl
|
|
ld a, [hl]
|
|
ld d, a
|
|
pop af
|
|
add d
|
|
call Func_1eb41
|
|
pop bc
|
|
inc c
|
|
ld a, c
|
|
cp $5
|
|
jr nz, .asm_1eb0d
|
|
ret
|
|
|
|
Func_1eb41: ; 0x1eb41
|
|
push af
|
|
sla c
|
|
ld hl, $6b61
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1eb4f
|
|
ld hl, $6d51
|
|
.asm_1eb4f
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
pop af
|
|
sla a
|
|
ld c, a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $7
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1eb61,$1ef09 - $1eb61
|
|
|
|
Func_1ef09: ; 0x1ef09
|
|
ld a, [$d63e]
|
|
cp $0
|
|
jp z, Func_1ef20
|
|
cp $1
|
|
jp z, Func_1ef4d
|
|
cp $2
|
|
jp z, Func_1ef7e
|
|
cp $3
|
|
jp z, Func_1efae
|
|
|
|
Func_1ef20: ; 0x1ef20
|
|
ld a, [wBallYPos + 1]
|
|
sub $60
|
|
cp $30
|
|
ret nc
|
|
ld c, $0
|
|
ld b, a
|
|
ld h, b
|
|
ld l, c
|
|
srl b
|
|
rr c
|
|
srl b
|
|
rr c
|
|
srl h
|
|
rr l
|
|
add hl, bc
|
|
ld a, [wBallXPos + 1]
|
|
sub $38
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
sla c
|
|
add hl, bc
|
|
jp Func_1efdc
|
|
|
|
Func_1ef4d: ; 0x1ef4d
|
|
ld a, [wBallXPos + 1]
|
|
sub $38
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld a, $30
|
|
sub c
|
|
ld c, $0
|
|
ld b, a
|
|
ld h, b
|
|
ld l, c
|
|
srl b
|
|
rr c
|
|
srl b
|
|
rr c
|
|
srl h
|
|
rr l
|
|
add hl, bc
|
|
ld a, [wBallYPos + 1]
|
|
sub $60
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
sla c
|
|
add hl, bc
|
|
jp Func_1efdc
|
|
|
|
Func_1ef7e: ; 0x1ef7e
|
|
ld a, [wBallYPos + 1]
|
|
sub $60
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld a, $30
|
|
sub c
|
|
ld c, $0
|
|
ld b, a
|
|
ld h, b
|
|
ld l, c
|
|
srl b
|
|
rr c
|
|
srl b
|
|
rr c
|
|
srl h
|
|
rr l
|
|
add hl, bc
|
|
ld a, [wBallXPos + 1]
|
|
sub $38
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
sla c
|
|
add hl, bc
|
|
jr Func_1efdc
|
|
|
|
Func_1efae: ; 0x1efae
|
|
ld a, [wBallXPos + 1]
|
|
sub $38
|
|
cp $30
|
|
ret nc
|
|
ld c, $0
|
|
ld b, a
|
|
ld h, b
|
|
ld l, c
|
|
srl b
|
|
rr c
|
|
srl b
|
|
rr c
|
|
srl h
|
|
rr l
|
|
add hl, bc
|
|
ld a, [wBallYPos + 1]
|
|
sub $60
|
|
cp $30
|
|
ret nc
|
|
ld c, a
|
|
ld a, $30
|
|
sub c
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
sla c
|
|
add hl, bc
|
|
; fall through
|
|
Func_1efdc: ; 0x1efdc
|
|
ld a, [$d63e]
|
|
cp $0
|
|
jp z, Func_1eff3
|
|
cp $1
|
|
jp z, Func_1f0be
|
|
cp $2
|
|
jp z, Func_1f057
|
|
cp $3
|
|
jp z, Func_1f124
|
|
; fall through
|
|
|
|
Func_1eff3: ; 0x1eff3
|
|
ld bc, $4000
|
|
add hl, bc
|
|
ld de, wBallXVelocity
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
push bc
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
bit 7, b
|
|
jr z, .asm_1f032
|
|
ld a, c
|
|
cpl
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
inc bc
|
|
.asm_1f032
|
|
pop hl
|
|
bit 7, h
|
|
jr z, .asm_1f03e
|
|
ld a, l
|
|
cpl
|
|
ld l, a
|
|
ld a, h
|
|
cpl
|
|
ld h, a
|
|
inc hl
|
|
.asm_1f03e
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
ld a, h
|
|
cp $2
|
|
ret c
|
|
ld a, [$d804]
|
|
and a
|
|
ret nz
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ret
|
|
|
|
Func_1f057: ; 0x1f057
|
|
ld bc, $4000
|
|
add hl, bc
|
|
ld de, wBallXVelocity
|
|
bit 2, l
|
|
ret nz
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
push bc
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
sub c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
sbc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
bit 7, b
|
|
jr z, .asm_1f099
|
|
ld a, c
|
|
cpl
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
inc bc
|
|
.asm_1f099
|
|
pop hl
|
|
bit 7, h
|
|
jr z, .asm_1f0a5
|
|
ld a, l
|
|
cpl
|
|
ld l, a
|
|
ld a, h
|
|
cpl
|
|
ld h, a
|
|
inc hl
|
|
.asm_1f0a5
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
ld a, h
|
|
cp $2
|
|
ret c
|
|
ld a, [$d804]
|
|
and a
|
|
ret nz
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ret
|
|
|
|
Func_1f0be: ; 0x1f0be
|
|
ld bc, $4000
|
|
add hl, bc
|
|
ld de, wBallYVelocity
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc hl
|
|
push bc
|
|
dec de
|
|
dec de
|
|
dec de
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
sub c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
sbc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
bit 7, b
|
|
jr z, .asm_1f0ff
|
|
ld a, c
|
|
cpl
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
inc bc
|
|
.asm_1f0ff
|
|
pop hl
|
|
bit 7, h
|
|
jr z, .asm_1f10b
|
|
ld a, l
|
|
cpl
|
|
ld l, a
|
|
ld a, h
|
|
cpl
|
|
ld h, a
|
|
inc hl
|
|
.asm_1f10b
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
ld a, h
|
|
cp $2
|
|
ret c
|
|
ld a, [$d804]
|
|
and a
|
|
ret nz
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ret
|
|
|
|
Func_1f124: ; 0x1f124
|
|
ld bc, $4000
|
|
add hl, bc
|
|
ld de, wBallYVelocity
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
sub c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
sbc b
|
|
ld [de], a
|
|
inc hl
|
|
push bc
|
|
dec de
|
|
dec de
|
|
dec de
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [de]
|
|
add c
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
ld a, $3b
|
|
call Func_68f
|
|
ld b, a
|
|
ld a, [de]
|
|
adc b
|
|
ld [de], a
|
|
inc de
|
|
inc hl
|
|
bit 7, b
|
|
jr z, .asm_1f165
|
|
ld a, c
|
|
cpl
|
|
ld c, a
|
|
ld a, b
|
|
cpl
|
|
ld b, a
|
|
inc bc
|
|
.asm_1f165
|
|
pop hl
|
|
bit 7, h
|
|
jr z, .asm_1f171
|
|
ld a, l
|
|
cpl
|
|
ld l, a
|
|
ld a, h
|
|
cpl
|
|
ld h, a
|
|
inc hl
|
|
.asm_1f171
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
ld a, h
|
|
cp $2
|
|
ret c
|
|
ld a, [$d804]
|
|
and a
|
|
ret nz
|
|
ld a, $5
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ret
|
|
|
|
Func_1f18a: ; 0x1f18a
|
|
ld a, [$d640]
|
|
cp $0
|
|
jr z, .asm_1f1b4
|
|
ld a, [$d63e]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $71b5
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_1f1a4
|
|
ld hl, $7201
|
|
.asm_1f1a4
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
or h
|
|
ret z
|
|
ld a, $7
|
|
call Func_10aa
|
|
ld a, $0
|
|
ld [$d640], a
|
|
.asm_1f1b4
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1f1b5,$1f261 - $1f1b5
|
|
|
|
Func_1f261: ; 0x1f261
|
|
call Func_1f27b
|
|
ret nc
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $72b9
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, $7
|
|
ld de, $117b
|
|
call Func_10c5
|
|
ret
|
|
|
|
Func_1f27b: ; 0x1f27b
|
|
ld a, [$d624]
|
|
ld hl, $d625
|
|
cp [hl]
|
|
ret z
|
|
ld a, [$d626]
|
|
dec a
|
|
ld [$d626], a
|
|
jr nz, .asm_1f2a5
|
|
ld a, [$d625]
|
|
ld [$d624], a
|
|
cp $3
|
|
jr c, .asm_1f2a0
|
|
ld a, $1
|
|
ld [$d609], a
|
|
ld a, $3
|
|
ld [$d607], a
|
|
.asm_1f2a0
|
|
ld a, [$d624]
|
|
scf
|
|
ret
|
|
.asm_1f2a5
|
|
and $7
|
|
ret nz
|
|
ld a, [$d626]
|
|
bit 3, a
|
|
jr nz, .asm_1f2b4
|
|
ld a, [$d624]
|
|
scf
|
|
ret
|
|
.asm_1f2b4
|
|
ld a, [$d625]
|
|
scf
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$1f2b9,$20000 - $1f2b9
|
|
|
|
|
|
SECTION "bank8", ROMX, BANK[$8]
|
|
|
|
INCBIN "baserom.gbc",$20000,$24000 - $20000 ; 0x20000
|
|
|
|
|
|
SECTION "bank9", ROMX, BANK[$9]
|
|
|
|
InitMeowthBonusStage: ; 0x24000
|
|
ld a, [$d7c1]
|
|
and a
|
|
ret nz
|
|
xor a
|
|
ld [$d4c8], a
|
|
ld [$d4af], a
|
|
ld a, [$d47e]
|
|
ld [$d481], a
|
|
xor a
|
|
ld [$d4c8], a
|
|
ld [$d47e], a
|
|
ld [$d49a], a
|
|
ld a, $1
|
|
ld [$d7ac], a
|
|
ld a, $40
|
|
ld [$d6ed], a
|
|
ld a, $20
|
|
ld [$d6ee], a
|
|
ld a, $10
|
|
ld [$d6e9], a
|
|
xor a
|
|
ld [$d711], a
|
|
ld [$d70b], a
|
|
ld [$d70f], a
|
|
ld [$d713], a
|
|
ld [$d739], a
|
|
ld bc, $0100 ; 1 minute 0 seconds
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartTimer)
|
|
ld hl, StartTimer
|
|
call BankSwitch
|
|
ld a, $12
|
|
call Func_52c
|
|
ld de, $0004
|
|
call Func_490
|
|
ret
|
|
|
|
StartBallMeowthBonusStage: ; 0x24059
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $a6
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $56
|
|
ld [wBallYPos + 1], a
|
|
ld a, $40
|
|
ld [wBallXVelocity], a
|
|
xor a
|
|
ld [$d7ab], a
|
|
ld [$d4af], a
|
|
ld [$d6e6], a
|
|
ld hl, $d6f3
|
|
ld b, $16
|
|
.asm_24081
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_24088
|
|
ld a, $1
|
|
ld [hl], a
|
|
.asm_24088
|
|
inc hl
|
|
dec b
|
|
jr nz, .asm_24081
|
|
ld a, $1
|
|
ld [$d7ac], a
|
|
ld a, $40
|
|
ld [$d6ed], a
|
|
ld a, $20
|
|
ld [$d6ee], a
|
|
ld a, $10
|
|
ld [$d6e9], a
|
|
ld a, $ff
|
|
ld [$d6f0], a
|
|
xor a
|
|
ld [$d6ea], a
|
|
ld [$d6ec], a
|
|
ld [$d6eb], a
|
|
ld [$d70b], a
|
|
ld [$d70c], a
|
|
ld a, $c8
|
|
ld [$d71a], a
|
|
ld [$d727], a
|
|
ld [$d71b], a
|
|
ld [$d728], a
|
|
ld [$d71c], a
|
|
ld [$d729], a
|
|
ld [$d724], a
|
|
ld [$d731], a
|
|
ld [$d725], a
|
|
ld [$d732], a
|
|
ld [$d726], a
|
|
ld [$d733], a
|
|
xor a
|
|
ld [$d717], a
|
|
ld [$d718], a
|
|
ld [$d719], a
|
|
ld [$d721], a
|
|
ld [$d722], a
|
|
ld [$d723], a
|
|
ld [$d714], a
|
|
ld [$d715], a
|
|
ld [$d716], a
|
|
ld [$d71e], a
|
|
ld [$d71f], a
|
|
ld [$d720], a
|
|
ld [$d64e], a
|
|
ld [$d64f], a
|
|
ld [$d650], a
|
|
ld [$d651], a
|
|
ld [$d795], a
|
|
ld [$d796], a
|
|
ld [$d797], a
|
|
ld [$d798], a
|
|
ld [$d799], a
|
|
ld [$d79a], a
|
|
ld a, [$d4c9]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d4c9], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$24128,$2414d - $24128
|
|
|
|
Func_2414d: ; 0x2414d
|
|
call Func_24157
|
|
call Func_24214
|
|
call Func_242bb
|
|
ret
|
|
|
|
Func_24157: ; 0x24157
|
|
ld a, [$d6e7]
|
|
cp $0
|
|
ret nz
|
|
ld a, [$d6ed]
|
|
add $f7
|
|
ld b, a
|
|
ld a, [$d6ee]
|
|
add $6
|
|
ld c, a
|
|
call Func_24170
|
|
ld a, $3
|
|
ret nc
|
|
ret
|
|
|
|
Func_24170: ; 0x24170
|
|
ld a, [wBallXPos + 1]
|
|
sub b
|
|
cp $30
|
|
jp nc, .asm_24212
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
sub c
|
|
cp $28
|
|
jp nc, .asm_24212
|
|
ld c, a
|
|
ld e, c
|
|
ld d, $0
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
ld h, d
|
|
ld l, e
|
|
sla e
|
|
rl d
|
|
add hl, de
|
|
ld d, h
|
|
ld e, l
|
|
sla e
|
|
rl d
|
|
ld l, b
|
|
ld h, $0
|
|
add hl, de
|
|
ld de, $5500
|
|
add hl, de
|
|
ld a, $3a
|
|
call Func_68f
|
|
bit 7, a
|
|
jr nz, .asm_24212
|
|
sla a
|
|
ld [$d7ea], a
|
|
ld a, $1
|
|
ld [$d7e9], a
|
|
ld a, [$d6ec]
|
|
cp $2
|
|
ret z
|
|
cp $3
|
|
ret z
|
|
ld a, [$d713]
|
|
and a
|
|
ret nz
|
|
ld a, [$d6f1]
|
|
and a
|
|
jr z, .asm_241ed
|
|
ld a, [$d6f1]
|
|
cp $1
|
|
jr nz, .asm_241df
|
|
ld a, [$d70b]
|
|
cp $3
|
|
jr z, .asm_241eb
|
|
jr .asm_241e6
|
|
.asm_241df
|
|
ld a, [$d70c]
|
|
cp $3
|
|
jr z, .asm_241eb
|
|
.asm_241e6
|
|
ld a, $2
|
|
ld [$d6e7], a
|
|
.asm_241eb
|
|
scf
|
|
ret
|
|
.asm_241ed
|
|
ld a, [$d6ee]
|
|
cp $20
|
|
jr nz, .asm_241fd
|
|
ld a, [$d70b]
|
|
cp $3
|
|
jr z, .asm_24210
|
|
jr .asm_2420b
|
|
.asm_241fd
|
|
ld a, [$d6ee]
|
|
cp $10
|
|
jr nz, .asm_24210
|
|
ld a, [$d70c]
|
|
cp $3
|
|
jr z, .asm_24210
|
|
.asm_2420b
|
|
ld a, $1
|
|
ld [$d6e7], a
|
|
.asm_24210
|
|
scf
|
|
ret
|
|
.asm_24212
|
|
and a
|
|
ret
|
|
|
|
Func_24214: ; 0x24214
|
|
ld a, [$d717]
|
|
cp $2
|
|
jr nz, .asm_2422e
|
|
ld a, [$d71a]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d727]
|
|
add $c
|
|
ld c, a
|
|
call Func_24272
|
|
ld a, $0
|
|
jr c, .asm_24260
|
|
.asm_2422e
|
|
ld a, [$d718]
|
|
cp $2
|
|
jr nz, .asm_24248
|
|
ld a, [$d71b]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d728]
|
|
add $c
|
|
ld c, a
|
|
call Func_24272
|
|
ld a, $1
|
|
jr c, .asm_24260
|
|
.asm_24248
|
|
ld a, [$d719]
|
|
cp $2
|
|
ret nz
|
|
ld a, [$d71c]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d729]
|
|
add $c
|
|
ld c, a
|
|
call Func_24272
|
|
ld a, $2
|
|
ret nc
|
|
.asm_24260
|
|
ld b, $0
|
|
ld c, a
|
|
ld hl, $d717
|
|
add hl, bc
|
|
ld a, $3
|
|
ld [hl], a
|
|
ld hl, $d714
|
|
add hl, bc
|
|
ld a, $0
|
|
ld [hl], a
|
|
ret
|
|
|
|
Func_24272: ; 0x24272
|
|
ld a, [wBallXPos + 1]
|
|
sub b
|
|
cp $18
|
|
jr nc, .asm_242b9
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
sub c
|
|
cp $18
|
|
jr nc, .asm_242b9
|
|
ld c, a
|
|
ld e, c
|
|
ld d, $0
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
ld h, d
|
|
ld l, e
|
|
sla e
|
|
rl d
|
|
add hl, de
|
|
ld d, h
|
|
ld e, l
|
|
ld l, b
|
|
ld h, $0
|
|
add hl, de
|
|
ld de, $5c80 ; todo
|
|
add hl, de
|
|
ld a, $3a
|
|
call Func_68f
|
|
bit 7, a
|
|
jr nz, .asm_242b9
|
|
sla a
|
|
ld [$d7ea], a
|
|
ld a, $1
|
|
ld [$d7e9], a
|
|
scf
|
|
ret
|
|
.asm_242b9
|
|
and a
|
|
ret
|
|
|
|
Func_242bb: ; 0x242bb
|
|
ld a, [$d721]
|
|
cp $2
|
|
jr nz, .asm_242d5
|
|
ld a, [$d724]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d731]
|
|
add $c
|
|
ld c, a
|
|
call Func_24272
|
|
ld a, $0
|
|
jr c, .asm_24307
|
|
.asm_242d5
|
|
ld a, [$d722]
|
|
cp $2
|
|
jr nz, .asm_242ef
|
|
ld a, [$d725]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d732]
|
|
add $c
|
|
ld c, a
|
|
call Func_24272
|
|
ld a, $1
|
|
jr c, .asm_24307
|
|
.asm_242ef
|
|
ld a, [$d723]
|
|
cp $2
|
|
ret nz
|
|
ld a, [$d726]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d733]
|
|
add $c
|
|
ld c, a
|
|
call Func_24272
|
|
ld a, $2
|
|
ret nc
|
|
.asm_24307
|
|
ld b, $0
|
|
ld c, a
|
|
ld hl, $d721
|
|
add hl, bc
|
|
ld a, $3
|
|
ld [hl], a
|
|
ld hl, $d71e
|
|
add hl, bc
|
|
ld a, $0
|
|
ld [hl], a
|
|
ret
|
|
|
|
Func_24319: ; 0x2438f
|
|
ld a, [$d6f4]
|
|
cp $0
|
|
jr z, .asm_24333
|
|
ld a, [$d71a]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d727]
|
|
add $4
|
|
ld c, a
|
|
call $4405
|
|
ld a, $0
|
|
jr c, .asm_24373
|
|
.asm_24333
|
|
ld a, [$d6f4]
|
|
cp $1
|
|
jr z, .asm_2434d
|
|
ld a, [$d71b]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d728]
|
|
add $4
|
|
ld c, a
|
|
call $4405
|
|
ld a, $1
|
|
jr c, .asm_24373
|
|
.asm_2434d
|
|
ld a, [$d6f4]
|
|
cp $2
|
|
ret z
|
|
ld a, [$d71c]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d729]
|
|
add $4
|
|
ld c, a
|
|
call $4405
|
|
ld a, $2
|
|
jr c, .asm_24373
|
|
ld a, [$d6f4]
|
|
ld b, $0
|
|
ld c, a
|
|
ld hl, $d6f8
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ret
|
|
.asm_24373
|
|
ld a, [$d6f4]
|
|
ld b, $0
|
|
ld c, a
|
|
ld hl, $d6f8
|
|
add hl, bc
|
|
inc [hl]
|
|
ld d, $4
|
|
ld a, [$d6f4]
|
|
add d
|
|
ld d, a
|
|
ld a, [hl]
|
|
cp d
|
|
ret nc
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ret
|
|
|
|
Func_2438f: ; 0x2438f
|
|
ld a, [$d6f4]
|
|
cp $a
|
|
jr z, .asm_243a9
|
|
ld a, [$d724]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d731]
|
|
add $4
|
|
ld c, a
|
|
call Func_24405
|
|
ld a, $a
|
|
jr c, .asm_243e9
|
|
.asm_243a9
|
|
ld a, [$d6f4]
|
|
cp $b
|
|
jr z, .asm_243c3
|
|
ld a, [$d725]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d732]
|
|
add $4
|
|
ld c, a
|
|
call Func_24405
|
|
ld a, $b
|
|
jr c, .asm_243e9
|
|
.asm_243c3
|
|
ld a, [$d6f4]
|
|
cp $c
|
|
ret z
|
|
ld a, [$d726]
|
|
sub $4
|
|
ld b, a
|
|
ld a, [$d733]
|
|
add $4
|
|
ld c, a
|
|
call Func_24405
|
|
ld a, $c
|
|
jr c, .asm_243e9
|
|
ld a, [$d6f4]
|
|
ld b, $0
|
|
ld c, a
|
|
ld hl, $d6f8
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ret
|
|
.asm_243e9
|
|
ld a, [$d6f4]
|
|
ld b, $0
|
|
ld c, a
|
|
ld hl, $d6f8
|
|
add hl, bc
|
|
inc [hl]
|
|
ld d, $4
|
|
ld a, [$d6f4]
|
|
add d
|
|
ld d, a
|
|
ld a, [hl]
|
|
cp d
|
|
ret nc
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ret
|
|
|
|
Func_24405: ; 0x24405
|
|
ld hl, $d71a
|
|
ld a, [$d6f4]
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld a, [hl]
|
|
add $8
|
|
sub b
|
|
cp $18
|
|
jr nc, .asm_24428
|
|
ld b, a
|
|
ld hl, $d727
|
|
add hl, de
|
|
ld a, [hl]
|
|
add $8
|
|
sub c
|
|
cp $18
|
|
jr nc, .asm_24428
|
|
ld c, a
|
|
ld d, b
|
|
scf
|
|
ret
|
|
.asm_24428
|
|
and a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$2442a,$2442a - $2442a
|
|
|
|
Func_2442a: ; 0x2442a
|
|
ld a, [$d710]
|
|
jr nz, .asm_2443f
|
|
ld a, [$d70f]
|
|
dec a
|
|
dec a
|
|
cp $fe
|
|
jr z, .asm_24447
|
|
cp $ff
|
|
jr z, .asm_24447
|
|
ld [$d79a], a
|
|
.asm_2443f
|
|
ld de, $d79a
|
|
call Func_24f00
|
|
jr .asm_2444b
|
|
.asm_24447
|
|
xor a
|
|
ld [$d79a], a
|
|
.asm_2444b
|
|
call Func_244f5
|
|
call Func_245ab
|
|
call Func_248ac
|
|
call Func_24d07
|
|
ld a, [$d711]
|
|
cp $14
|
|
jr c, .asm_24498
|
|
ld a, [$d712]
|
|
cp $2
|
|
jr nc, .asm_24498
|
|
ld a, [$d498]
|
|
cp $4
|
|
ret z
|
|
ld a, $4
|
|
ld [$d712], a
|
|
ld [$d498], a
|
|
ld a, $96
|
|
ld [$d739], a
|
|
ld de, $0000
|
|
call Func_490
|
|
ld a, $1
|
|
ld [$d49a], a
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5dc
|
|
ld de, $2fd0
|
|
call Func_32aa
|
|
ld de, $4b2a
|
|
call PlaySoundEffect
|
|
.asm_24498
|
|
ld a, [$d712]
|
|
cp $4
|
|
jr nz, .asm_244b0
|
|
ld a, [$d800]
|
|
and a
|
|
jr nz, .asm_244b0
|
|
ld de, $0004
|
|
call Func_490
|
|
ld a, $5
|
|
ld [$d712], a
|
|
.asm_244b0
|
|
ld a, [$d712]
|
|
cp $4
|
|
jr z, .asm_244c1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_107f8)
|
|
ld hl, Func_107f8
|
|
call BankSwitch
|
|
.asm_244c1
|
|
ld a, [$d57e]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d57e], a
|
|
ld a, $1
|
|
ld [$d7be], a
|
|
call Func_2862
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_86d2)
|
|
ld hl, Func_86d2
|
|
call BankSwitch
|
|
ld a, $1
|
|
ld [$d713], a
|
|
ld a, $1
|
|
ld [$d712], a
|
|
ld hl, $4704
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ld a, $4
|
|
ld [$d6ec], a
|
|
ret
|
|
|
|
Func_244f5: ; 0x244f5
|
|
ld a, [$d6e6]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4b4]
|
|
cp $8a
|
|
ret nc
|
|
ld a, $1
|
|
ld [$d4af], a
|
|
ld [$d6e6], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
call Func_24516
|
|
ret
|
|
|
|
Func_24516: ; 0x24516
|
|
ld a, [$d4af]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4533
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_24529
|
|
ld hl, $456f
|
|
.asm_24529
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $9
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$24533,$245ab - $24533
|
|
|
|
Func_245ab: ; 0x245ab
|
|
ld a, [$d6e7]
|
|
and a
|
|
jr z, .asm_24621
|
|
cp $2
|
|
jr z, .asm_24621
|
|
ld a, $1
|
|
ld [$d6f3], a
|
|
ld a, [$d6ee]
|
|
cp $20
|
|
jr z, .asm_245c7
|
|
cp $10
|
|
jr z, .asm_245cc
|
|
jr .asm_245cf
|
|
.asm_245c7
|
|
call Func_247d9
|
|
jr .asm_245cf
|
|
.asm_245cc
|
|
call Func_24c28
|
|
.asm_245cf
|
|
xor a
|
|
ld [$d6e7], a
|
|
ld [$d6f3], a
|
|
ld a, $ff
|
|
ld [$d803], a
|
|
ld a, $3
|
|
ld [$d804], a
|
|
ld de, $0033
|
|
call PlaySoundEffect
|
|
ld bc, $34c4
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
xor a
|
|
ld [$d70f], a
|
|
ld a, [$d6ec]
|
|
cp $2
|
|
jr nc, .asm_24621
|
|
and a
|
|
jr nz, .asm_24611
|
|
ld hl, $46fe
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ld a, $2
|
|
ld [$d6ec], a
|
|
jr .asm_24651
|
|
.asm_24611
|
|
ld hl, $4701
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ld a, $3
|
|
ld [$d6ec], a
|
|
jr .asm_24651
|
|
.asm_24621
|
|
ld a, [$d713]
|
|
and a
|
|
jr z, .asm_2462e
|
|
ld a, $4
|
|
ld [$d6ec], a
|
|
jr .asm_24651
|
|
.asm_2462e
|
|
ld a, [$d6ec]
|
|
cp $2
|
|
jr nc, .asm_24651
|
|
ld a, [$d70b]
|
|
cp $3
|
|
jr nz, .asm_24651
|
|
ld a, [$d70c]
|
|
cp $3
|
|
jr nz, .asm_24651
|
|
ld hl, $4704
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ld a, $4
|
|
ld [$d6ec], a
|
|
.asm_24651
|
|
ld a, [$d6ec]
|
|
cp $2
|
|
call c, Func_24709
|
|
call Func_2465d
|
|
ret
|
|
|
|
Func_2465d: ; 0x2465d
|
|
ld a, [$d6ec]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $46e2
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld de, $d6e9
|
|
call Func_28a9
|
|
ret nc
|
|
ld a, [$d6ec]
|
|
and a
|
|
jr nz, .asm_24689
|
|
ld a, [$d6eb]
|
|
cp $4
|
|
ret nz
|
|
ld hl, $46ec
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ret
|
|
.asm_24689
|
|
cp $1
|
|
jr nz, .asm_2469d
|
|
ld a, [$d6eb]
|
|
cp $4
|
|
ret nz
|
|
ld hl, $46f5
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ret
|
|
.asm_2469d
|
|
cp $2
|
|
jr nz, .asm_246b5
|
|
ld a, [$d6eb]
|
|
cp $1
|
|
ret nz
|
|
ld hl, $46ec
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
xor a
|
|
ld [$d6ec], a
|
|
ret
|
|
.asm_246b5
|
|
cp $3
|
|
jr nz, .asm_246ce
|
|
ld a, [$d6eb]
|
|
cp $1
|
|
ret nz
|
|
ld hl, $46f5
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ld a, $1
|
|
ld [$d6ec], a
|
|
ret
|
|
.asm_246ce
|
|
cp $4
|
|
jr nz, .asm_24689
|
|
ld a, [$d6eb]
|
|
cp $2
|
|
ret nz
|
|
ld hl, $4704
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$246e2,$24709 - $246e2
|
|
|
|
Func_24709: ; 0x24709
|
|
ld a, [$d6ed]
|
|
ld hl, $d6f0
|
|
add [hl]
|
|
ld [$d6ed], a
|
|
ld hl, $d6f1
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_24730
|
|
bit 7, [hl]
|
|
ld a, [$d6ee]
|
|
jr nz, .asm_24724
|
|
inc a
|
|
jr .asm_24725
|
|
.asm_24724
|
|
dec a
|
|
.asm_24725
|
|
cp $21
|
|
jr z, .asm_24730
|
|
cp $f
|
|
jr z, .asm_24730
|
|
ld [$d6ee], a
|
|
.asm_24730
|
|
call Func_24737
|
|
call Func_2476d
|
|
ret
|
|
|
|
Func_24737: ; 0x24737
|
|
ld a, [$d6ed]
|
|
cp $8
|
|
jr nc, .asm_24742
|
|
ld a, $1
|
|
jr .asm_2475a
|
|
.asm_24742
|
|
cp $78
|
|
jr c, .asm_2474a
|
|
ld a, $ff
|
|
jr .asm_2475a
|
|
.asm_2474a
|
|
ld a, [$ffb3]
|
|
and $3f
|
|
ret nz
|
|
call Func_959
|
|
bit 7, a
|
|
ld a, $1
|
|
jr z, .asm_2475a
|
|
ld a, $ff
|
|
.asm_2475a
|
|
ld [$d6f0], a
|
|
bit 7, a
|
|
ld a, $1
|
|
jr z, .asm_24764
|
|
xor a
|
|
.asm_24764
|
|
ld [$d6ec], a
|
|
ld a, $2
|
|
ld [$d6e9], a
|
|
ret
|
|
|
|
Func_2476d: ; 0x2476d
|
|
ld a, [$d6f1]
|
|
and a
|
|
jr z, .asm_247ab
|
|
cp $1
|
|
jr z, .asm_24791
|
|
ld a, [$d6ee]
|
|
cp $10
|
|
jr nz, .asm_2478d
|
|
ld a, [$d6e7]
|
|
cp $2
|
|
jr nz, .asm_2478a
|
|
ld a, $1
|
|
ld [$d6e7], a
|
|
.asm_2478a
|
|
xor a
|
|
jr .asm_247c9
|
|
.asm_2478d
|
|
ld a, $ff
|
|
jr .asm_247c9
|
|
.asm_24791
|
|
ld a, [$d6ee]
|
|
cp $20
|
|
jr nz, .asm_247a7
|
|
ld a, [$d6e7]
|
|
cp $2
|
|
jr nz, .asm_247a4
|
|
ld a, $1
|
|
ld [$d6e7], a
|
|
.asm_247a4
|
|
xor a
|
|
jr .asm_247c9
|
|
.asm_247a7
|
|
ld a, $1
|
|
jr .asm_247c9
|
|
.asm_247ab
|
|
ld a, [$d70b]
|
|
cp $3
|
|
jr z, .asm_247cd
|
|
ld a, [$d70c]
|
|
cp $3
|
|
jr z, .asm_247d3
|
|
ld a, [$ffb3]
|
|
and $3f
|
|
ret nz
|
|
call Func_959
|
|
bit 0, a
|
|
ld a, $1
|
|
jr z, .asm_247c9
|
|
ld a, $ff
|
|
.asm_247c9
|
|
ld [$d6f1], a
|
|
ret
|
|
.asm_247cd
|
|
ld a, $ff
|
|
ld [$d6f1], a
|
|
ret
|
|
.asm_247d3
|
|
ld a, $1
|
|
ld [$d6f1], a
|
|
ret
|
|
|
|
Func_247d9: ; 0x247d9
|
|
ld a, [$d6f3]
|
|
and a
|
|
ret z
|
|
ld a, [$d71a]
|
|
cp $c8
|
|
jr nz, .asm_24823
|
|
ld a, [$d6ed]
|
|
add $8
|
|
ld [$d71a], a
|
|
ld a, [$d6ee]
|
|
add $fb
|
|
ld [$d727], a
|
|
ld a, $1
|
|
ld [$d717], a
|
|
xor a
|
|
ld [$d6f3], a
|
|
ld [$d714], a
|
|
ld [$d6f5], a
|
|
ld [$d6f8], a
|
|
ld [$d6fb], a
|
|
ld a, [$d6ed]
|
|
add $14
|
|
ld b, a
|
|
ld a, [$d4b4]
|
|
cp b
|
|
jr nc, .asm_2481d
|
|
ld a, $0
|
|
ld [$d72a], a
|
|
jr .asm_24822
|
|
.asm_2481d
|
|
ld a, $1
|
|
ld [$d72a], a
|
|
.asm_24822
|
|
ret
|
|
.asm_24823
|
|
ld a, [$d71b]
|
|
cp $c8
|
|
jr nz, .asm_24868
|
|
ld a, [$d6ed]
|
|
add $8
|
|
ld [$d71b], a
|
|
ld a, [$d6ee]
|
|
add $fb
|
|
ld [$d728], a
|
|
ld a, $1
|
|
ld [$d718], a
|
|
xor a
|
|
ld [$d6f3], a
|
|
ld [$d715], a
|
|
ld [$d6f6], a
|
|
ld [$d6f9], a
|
|
ld [$d6fc], a
|
|
ld a, [$d6ed]
|
|
add $14
|
|
ld b, a
|
|
ld a, [$d4b4]
|
|
cp b
|
|
jr nc, .asm_24862
|
|
ld a, $0
|
|
ld [$d72b], a
|
|
jr .asm_24867
|
|
.asm_24862
|
|
ld a, $1
|
|
ld [$d72b], a
|
|
.asm_24867
|
|
ret
|
|
.asm_24868
|
|
ld a, [$d71c]
|
|
cp $c8
|
|
ret nz
|
|
ld a, [$d6ed]
|
|
add $8
|
|
ld [$d71c], a
|
|
ld a, [$d6ee]
|
|
add $fb
|
|
ld [$d729], a
|
|
ld a, $1
|
|
ld [$d719], a
|
|
xor a
|
|
ld [$d6f3], a
|
|
ld [$d716], a
|
|
ld [$d6f7], a
|
|
ld [$d6fa], a
|
|
ld [$d6fd], a
|
|
ld a, [$d6ed]
|
|
add $14
|
|
ld b, a
|
|
ld a, [$d4b4]
|
|
cp b
|
|
jr nc, .asm_248a6
|
|
ld a, $0
|
|
ld [$d72c], a
|
|
jr .asm_248ab
|
|
.asm_248a6
|
|
ld a, $1
|
|
ld [$d72c], a
|
|
.asm_248ab
|
|
ret
|
|
|
|
Func_248ac: ; 0x248ac
|
|
ld a, [$d717]
|
|
cp $1
|
|
jr nz, .asm_248d3
|
|
ld a, [$d714]
|
|
cp $a
|
|
jr z, .asm_248c4
|
|
ld a, $0
|
|
ld [$d6f4], a
|
|
call Func_24a30
|
|
jr .asm_248d3
|
|
.asm_248c4
|
|
ld hl, $d70b
|
|
inc [hl]
|
|
ld a, $2
|
|
ld [$d717], a
|
|
ld de, $0034
|
|
call PlaySoundEffect
|
|
.asm_248d3
|
|
ld a, [$d718]
|
|
cp $1
|
|
jr nz, .asm_248fa
|
|
ld a, [$d715]
|
|
cp $a
|
|
jr z, .asm_248eb
|
|
ld a, $1
|
|
ld [$d6f4], a
|
|
call Func_24a30
|
|
jr .asm_248fa
|
|
.asm_248eb
|
|
ld hl, $d70b
|
|
inc [hl]
|
|
ld a, $2
|
|
ld [$d718], a
|
|
ld de, $0034
|
|
call PlaySoundEffect
|
|
.asm_248fa
|
|
ld a, [$d719]
|
|
cp $1
|
|
jr nz, .asm_24921
|
|
ld a, [$d716]
|
|
cp $a
|
|
jr z, .asm_24912
|
|
ld a, $2
|
|
ld [$d6f4], a
|
|
call Func_24a30
|
|
jr .asm_24921
|
|
.asm_24912
|
|
ld hl, $d70b
|
|
inc [hl]
|
|
ld a, $2
|
|
ld [$d719], a
|
|
ld de, $0034
|
|
call PlaySoundEffect
|
|
.asm_24921
|
|
ld a, [$d717]
|
|
cp $2
|
|
jr nz, .asm_2492c
|
|
ld hl, $d714
|
|
inc [hl]
|
|
.asm_2492c
|
|
ld a, [$d718]
|
|
cp $2
|
|
jr nz, .asm_24937
|
|
ld hl, $d715
|
|
inc [hl]
|
|
.asm_24937
|
|
ld a, [$d719]
|
|
cp $2
|
|
jr nz, .asm_24942
|
|
ld hl, $d716
|
|
inc [hl]
|
|
.asm_24942
|
|
ld a, [$d717]
|
|
cp $3
|
|
jr nz, .asm_24968
|
|
ld a, [$d71a]
|
|
ld b, a
|
|
ld a, [$d727]
|
|
ld c, a
|
|
ld hl, $d714
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr nz, .asm_2495f
|
|
call Func_24e7f
|
|
jr .asm_24968
|
|
.asm_2495f
|
|
cp $a
|
|
jr nz, .asm_24968
|
|
ld a, $4
|
|
ld [$d717], a
|
|
.asm_24968
|
|
ld a, [$d718]
|
|
cp $3
|
|
jr nz, .asm_2498e
|
|
ld a, [$d71b]
|
|
ld b, a
|
|
ld a, [$d728]
|
|
ld c, a
|
|
ld hl, $d715
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr nz, .asm_24985
|
|
call Func_24e7f
|
|
jr .asm_2498e
|
|
.asm_24985
|
|
cp $a
|
|
jr nz, .asm_2498e
|
|
ld a, $4
|
|
ld [$d718], a
|
|
.asm_2498e
|
|
ld a, [$d719]
|
|
cp $3
|
|
jr nz, .asm_249b4
|
|
ld a, [$d71c]
|
|
ld b, a
|
|
ld a, [$d729]
|
|
ld c, a
|
|
ld hl, $d716
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr nz, .asm_249ab
|
|
call Func_24e7f
|
|
jr .asm_249b4
|
|
.asm_249ab
|
|
cp $a
|
|
jr nz, .asm_249b4
|
|
ld a, $4
|
|
ld [$d719], a
|
|
.asm_249b4
|
|
ld a, [$d717]
|
|
cp $4
|
|
jr nz, .asm_249d0
|
|
ld a, $c8
|
|
ld [$d71a], a
|
|
ld [$d727], a
|
|
xor a
|
|
ld [$d717], a
|
|
ld hl, $d70b
|
|
dec [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr z, .asm_24a06
|
|
.asm_249d0
|
|
ld a, [$d718]
|
|
cp $4
|
|
jr nz, .asm_249ec
|
|
ld a, $c8
|
|
ld [$d71b], a
|
|
ld [$d728], a
|
|
xor a
|
|
ld [$d718], a
|
|
ld hl, $d70b
|
|
dec [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr z, .asm_24a06
|
|
.asm_249ec
|
|
ld a, [$d719]
|
|
cp $4
|
|
ret nz
|
|
ld a, $c8
|
|
ld [$d71c], a
|
|
ld [$d729], a
|
|
xor a
|
|
ld [$d719], a
|
|
ld hl, $d70b
|
|
dec [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
ret nz
|
|
.asm_24a06
|
|
ld a, [$d713]
|
|
and a
|
|
ret nz
|
|
ld a, [$d6f0]
|
|
cp $ff
|
|
jr z, .asm_24a21
|
|
ld hl, $46f5
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ld a, $1
|
|
ld [$d6ec], a
|
|
ret
|
|
.asm_24a21
|
|
ld hl, $46ec
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ld a, $0
|
|
ld [$d6ec], a
|
|
ret
|
|
|
|
Func_24a30: ; 0x24a30
|
|
ld a, [$d6f4]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d6f8
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_24a42
|
|
call $4b41
|
|
ret
|
|
.asm_24a42
|
|
ld a, [$d6f4]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
bit 2, a
|
|
jr z, .asm_24a5e
|
|
bit 1, a
|
|
jr nz, .asm_24a5e
|
|
bit 0, a
|
|
jr nz, .asm_24a5e
|
|
ld hl, $d714
|
|
add hl, bc
|
|
inc [hl]
|
|
.asm_24a5e
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld hl, $4af1
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld hl, $d72a
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .asm_24a97
|
|
.asm_24a72
|
|
ld hl, $d72a
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ld hl, $d71a
|
|
add hl, bc
|
|
ld a, [hl]
|
|
push af
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $4af1
|
|
add hl, de
|
|
pop af
|
|
add [hl]
|
|
cp $8e
|
|
jr nc, .asm_24a97
|
|
ld hl, $d71a
|
|
add hl, bc
|
|
ld [hl], a
|
|
jr .asm_24abf
|
|
.asm_24a97
|
|
ld hl, $d72a
|
|
add hl, bc
|
|
ld [hl], $1
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $4af1
|
|
add hl, de
|
|
ld a, [hl]
|
|
ld d, a
|
|
ld a, $ff
|
|
sub d
|
|
inc a
|
|
ld d, a
|
|
ld hl, $d71a
|
|
add hl, bc
|
|
ld a, [hl]
|
|
add d
|
|
cp $5
|
|
jr c, .asm_24a72
|
|
ld hl, $d71a
|
|
add hl, bc
|
|
ld [hl], a
|
|
.asm_24abf
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $4af1
|
|
add hl, de
|
|
inc hl
|
|
ld a, [hl]
|
|
ld d, a
|
|
ld hl, $d727
|
|
add hl, bc
|
|
ld a, [hl]
|
|
add d
|
|
ld hl, $d727
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
inc [hl]
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $46
|
|
jr nz, .asm_24af0
|
|
ld a, c
|
|
cp $9
|
|
jr c, .asm_24aed
|
|
call Func_2438f
|
|
ret
|
|
.asm_24aed
|
|
call Func_24319
|
|
.asm_24af0
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$24af1,$24b41 - $24af1
|
|
|
|
Func_24b41: ; 0x24b41
|
|
ld a, [$d6f4]
|
|
ld b, $0
|
|
ld c, a
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp $14
|
|
jp nc, Func_24bf6
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld hl, $4c0a
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld hl, $d72a
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .asm_24b8a
|
|
.asm_24b65
|
|
ld hl, $d72a
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ld hl, $d71a
|
|
add hl, bc
|
|
ld a, [hl]
|
|
push af
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $4c0a
|
|
add hl, de
|
|
pop af
|
|
add [hl]
|
|
cp $90
|
|
jr nc, .asm_24b8a
|
|
ld hl, $d71a
|
|
add hl, bc
|
|
ld [hl], a
|
|
jr .asm_24bb2
|
|
.asm_24b8a
|
|
ld hl, $d72a
|
|
add hl, bc
|
|
ld [hl], $1
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $4c0a
|
|
add hl, de
|
|
ld a, [hl]
|
|
ld d, a
|
|
ld a, $ff
|
|
sub d
|
|
inc a
|
|
ld d, a
|
|
ld hl, $d71a
|
|
add hl, bc
|
|
ld a, [hl]
|
|
add d
|
|
cp $6
|
|
jr c, .asm_24b65
|
|
ld hl, $d71a
|
|
add hl, bc
|
|
ld [hl], a
|
|
.asm_24bb2
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $4c0a
|
|
add hl, de
|
|
inc hl
|
|
ld a, [hl]
|
|
ld d, a
|
|
ld hl, $d727
|
|
add hl, bc
|
|
ld a, [hl]
|
|
add d
|
|
ld hl, $d727
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld hl, $d6f5
|
|
add hl, bc
|
|
inc [hl]
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $12
|
|
jr nz, .asm_24bf4
|
|
ld a, c
|
|
cp $9
|
|
jr c, .asm_24be1
|
|
call Func_2438f
|
|
jr .asm_24be4
|
|
.asm_24be1
|
|
call Func_24319
|
|
.asm_24be4
|
|
ld a, [$d6f4]
|
|
ld b, $0
|
|
ld c, a
|
|
ld hl, $d6f8
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .asm_24bf4
|
|
ld [hl], $1
|
|
.asm_24bf4
|
|
scf
|
|
ret
|
|
|
|
Func_24bf6: ; 0x24bf6
|
|
ld a, [$d6f4]
|
|
ld b, $0
|
|
ld c, a
|
|
ld hl, $d6f8
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ld hl, $d714
|
|
add hl, bc
|
|
ld [hl], $a
|
|
ccf
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$24c0a,$24c28 - $24c0a
|
|
|
|
Func_24c28: ; 0x24c28
|
|
ld a, [$d6f3]
|
|
and a
|
|
ret z
|
|
ld a, [$d724]
|
|
cp $c8
|
|
jr nz, .asm_24c76
|
|
ld a, [$d6ed]
|
|
add $8
|
|
ld [$d724], a
|
|
ld a, [$d6ee]
|
|
add $fb
|
|
ld [$d731], a
|
|
ld a, $1
|
|
ld [$d721], a
|
|
ld hl, $d70c
|
|
inc [hl]
|
|
xor a
|
|
ld [$d6f3], a
|
|
ld [$d71e], a
|
|
ld [$d6ff], a
|
|
ld [$d702], a
|
|
ld [$d705], a
|
|
ld a, [$d6ed]
|
|
add $14
|
|
ld b, a
|
|
ld a, [$d4b4]
|
|
cp b
|
|
jr nc, .asm_24c70
|
|
ld a, $0
|
|
ld [$d734], a
|
|
jr .asm_24c75
|
|
.asm_24c70
|
|
ld a, $1
|
|
ld [$d734], a
|
|
.asm_24c75
|
|
ret
|
|
.asm_24c76
|
|
ld a, [$d725]
|
|
cp $c8
|
|
jr nz, .asm_24cbf
|
|
ld a, [$d6ed]
|
|
add $8
|
|
ld [$d725], a
|
|
ld a, [$d6ee]
|
|
add $fb
|
|
ld [$d732], a
|
|
ld a, $1
|
|
ld [$d722], a
|
|
ld hl, $d70c
|
|
inc [hl]
|
|
xor a
|
|
ld [$d6f3], a
|
|
ld [$d71f], a
|
|
ld [$d700], a
|
|
ld [$d703], a
|
|
ld [$d706], a
|
|
ld a, [$d6f7]
|
|
add $14
|
|
ld b, a
|
|
ld a, [$d4b4]
|
|
cp b
|
|
jr nc, .asm_24cb9
|
|
ld a, $0
|
|
ld [$d735], a
|
|
jr .asm_24cbe
|
|
.asm_24cb9
|
|
ld a, $1
|
|
ld [$d735], a
|
|
.asm_24cbe
|
|
ret
|
|
.asm_24cbf
|
|
ld a, [$d726]
|
|
cp $c8
|
|
ret nz
|
|
ld a, [$d6ed]
|
|
add $8
|
|
ld [$d726], a
|
|
ld a, [$d6ee]
|
|
add $fb
|
|
ld [$d733], a
|
|
ld a, $1
|
|
ld [$d723], a
|
|
ld hl, $d70c
|
|
inc [hl]
|
|
xor a
|
|
ld [$d6f3], a
|
|
ld [$d720], a
|
|
ld [$d701], a
|
|
ld [$d704], a
|
|
ld [$d707], a
|
|
ld a, [$d6ed]
|
|
add $14
|
|
ld b, a
|
|
ld a, [$d4b4]
|
|
cp b
|
|
jr nc, .asm_24d01
|
|
ld a, $0
|
|
ld [$d736], a
|
|
jr .asm_24d06
|
|
.asm_24d01
|
|
ld a, $1
|
|
ld [$d736], a
|
|
.asm_24d06
|
|
ret
|
|
|
|
Func_24d07: ; 0x24d07
|
|
ld a, [$d721]
|
|
cp $1
|
|
jr nz, .asm_24d2a
|
|
ld a, [$d71e]
|
|
cp $a
|
|
jr z, .asm_24d1f
|
|
ld a, $a
|
|
ld [$d6f4], a
|
|
call Func_24a30
|
|
jr .asm_24d2a
|
|
.asm_24d1f
|
|
ld a, $2
|
|
ld [$d721], a
|
|
ld de, $0034
|
|
call PlaySoundEffect
|
|
.asm_24d2a
|
|
ld a, [$d722]
|
|
cp $1
|
|
jr nz, .asm_24d4d
|
|
ld a, [$d71f]
|
|
cp $a
|
|
jr z, .asm_24d42
|
|
ld a, $b
|
|
ld [$d6f4], a
|
|
call Func_24a30
|
|
jr .asm_24d4d
|
|
.asm_24d42
|
|
ld a, $2
|
|
ld [$d722], a
|
|
ld de, $0034
|
|
call PlaySoundEffect
|
|
.asm_24d4d
|
|
ld a, [$d723]
|
|
cp $1
|
|
jr nz, .asm_24d70
|
|
ld a, [$d720]
|
|
cp $a
|
|
jr z, .asm_24d65
|
|
ld a, $c
|
|
ld [$d6f4], a
|
|
call Func_24a30
|
|
jr .asm_24d70
|
|
.asm_24d65
|
|
ld a, $2
|
|
ld [$d723], a
|
|
ld de, $0034
|
|
call PlaySoundEffect
|
|
.asm_24d70
|
|
ld a, [$d721]
|
|
cp $2
|
|
jr nz, .asm_24d7b
|
|
ld hl, $d71e
|
|
inc [hl]
|
|
.asm_24d7b
|
|
ld a, [$d722]
|
|
cp $2
|
|
jr nz, .asm_24d86
|
|
ld hl, $d71f
|
|
inc [hl]
|
|
.asm_24d86
|
|
ld a, [$d723]
|
|
cp $2
|
|
jr nz, .asm_24d91
|
|
ld hl, $d720
|
|
inc [hl]
|
|
.asm_24d91
|
|
ld a, [$d721]
|
|
cp $3
|
|
jr nz, .asm_24db7
|
|
ld a, [$d724]
|
|
ld b, a
|
|
ld a, [$d731]
|
|
ld c, a
|
|
ld hl, $d71e
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr nz, .asm_24dae
|
|
call Func_24e7f
|
|
jr .asm_24db7
|
|
.asm_24dae
|
|
cp $a
|
|
jr nz, .asm_24db7
|
|
ld a, $4
|
|
ld [$d721], a
|
|
.asm_24db7
|
|
ld a, [$d722]
|
|
cp $3
|
|
jr nz, .asm_24ddd
|
|
ld a, [$d725]
|
|
ld b, a
|
|
ld a, [$d732]
|
|
ld c, a
|
|
ld hl, $d71f
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr nz, .asm_24dd4
|
|
call Func_24e7f
|
|
jr .asm_24ddd
|
|
.asm_24dd4
|
|
cp $a
|
|
jr nz, .asm_24ddd
|
|
ld a, $4
|
|
ld [$d722], a
|
|
.asm_24ddd
|
|
ld a, [$d723]
|
|
cp $3
|
|
jr nz, .asm_24e03
|
|
ld a, [$d726]
|
|
ld b, a
|
|
ld a, [$d733]
|
|
ld c, a
|
|
ld hl, $d720
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr nz, .asm_24dfa
|
|
call Func_24e7f
|
|
jr .asm_24e03
|
|
.asm_24dfa
|
|
cp $a
|
|
jr nz, .asm_24e03
|
|
ld a, $4
|
|
ld [$d723], a
|
|
.asm_24e03
|
|
ld a, [$d721]
|
|
cp $4
|
|
jr nz, .asm_24e1f
|
|
ld a, $c8
|
|
ld [$d724], a
|
|
ld [$d731], a
|
|
xor a
|
|
ld [$d721], a
|
|
ld hl, $d70c
|
|
dec [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr z, .asm_24e55
|
|
.asm_24e1f
|
|
ld a, [$d722]
|
|
cp $4
|
|
jr nz, .asm_24e3b
|
|
ld a, $c8
|
|
ld [$d725], a
|
|
ld [$d732], a
|
|
xor a
|
|
ld [$d722], a
|
|
ld hl, $d70c
|
|
dec [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr z, .asm_24e55
|
|
.asm_24e3b
|
|
ld a, [$d723]
|
|
cp $4
|
|
ret nz
|
|
ld a, $c8
|
|
ld [$d726], a
|
|
ld [$d733], a
|
|
xor a
|
|
ld [$d723], a
|
|
ld hl, $d70c
|
|
dec [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
ret nz
|
|
.asm_24e55
|
|
ld a, [$d713]
|
|
and a
|
|
ret nz
|
|
ld a, [$d6f0]
|
|
cp $ff
|
|
jr z, .asm_24e70
|
|
ld hl, $46f5
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ld a, $1
|
|
ld [$d6ec], a
|
|
ret
|
|
.asm_24e70
|
|
ld hl, $46ec
|
|
ld de, $d6e9
|
|
call Func_28a0
|
|
ld a, $0
|
|
ld [$d6ec], a
|
|
ret
|
|
|
|
Func_24e7f: ; 0x24e7f
|
|
ld a, b
|
|
ld [$d79c], a
|
|
ld a, c
|
|
ld [$d79e], a
|
|
ld hl, $d70f
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $7
|
|
jr nz, .asm_24e92
|
|
xor a
|
|
ld [hl], a
|
|
.asm_24e92
|
|
ld a, $ff
|
|
ld [$d803], a
|
|
ld a, $3
|
|
ld [$d804], a
|
|
ld de, $0032
|
|
call PlaySoundEffect
|
|
ld a, [$d70f]
|
|
dec a
|
|
.asm_24ea6
|
|
push af
|
|
ld bc, $34d6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
ld hl, $d711
|
|
inc [hl]
|
|
pop af
|
|
and a
|
|
jr z, .asm_24ebf
|
|
dec a
|
|
jr .asm_24ea6
|
|
.asm_24ebf
|
|
ld a, [$d70f]
|
|
dec a
|
|
dec a
|
|
cp $fe
|
|
jr z, .asm_24ed7
|
|
cp $ff
|
|
jr z, .asm_24ed7
|
|
ld [$d79a], a
|
|
ld de, $d79a
|
|
call Func_24ee7
|
|
jr .asm_24ede
|
|
.asm_24ed7
|
|
xor a
|
|
ld [$d79a], a
|
|
ld [$d795], a
|
|
.asm_24ede
|
|
ld a, $1
|
|
ld [$d64e], a
|
|
call Func_24fa3
|
|
ret
|
|
|
|
Func_24ee7: ; 0x24ee7
|
|
ld a, $ff
|
|
ld [$d795], a
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4f30
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
ret
|
|
|
|
Func_24f00: ; 0x24f00
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4f30
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a9
|
|
pop de
|
|
ld a, $1
|
|
ld [$d710], a
|
|
ret nc
|
|
dec de
|
|
ld a, [de]
|
|
cp $a
|
|
ret nz
|
|
xor a
|
|
ld [de], a
|
|
ld [$d79c], a
|
|
ld [$d79e], a
|
|
ld [$d795], a
|
|
xor a
|
|
ld [$d710], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$24f30,$24fa3 - $24f30
|
|
|
|
Func_24fa3: ; 0x24fa3
|
|
ld a, [$d711]
|
|
ld c, a
|
|
ld b, $0
|
|
.asm_24fa9
|
|
ld a, c
|
|
and a
|
|
jr z, .asm_24fb5
|
|
ld a, b
|
|
add $8
|
|
ld b, a
|
|
dec c
|
|
ld a, c
|
|
jr .asm_24fa9
|
|
.asm_24fb5
|
|
ld a, b
|
|
and a
|
|
jr z, .asm_24fbb
|
|
sub $8
|
|
.asm_24fbb
|
|
ld [$d652], a
|
|
ld a, [$d70f]
|
|
and a
|
|
jr z, .asm_24fca
|
|
ld b, a
|
|
ld a, [$d711]
|
|
inc a
|
|
sub b
|
|
.asm_24fca
|
|
ld [$d651], a
|
|
ld a, $0
|
|
ld [$d64e], a
|
|
ld a, [$d711]
|
|
and a
|
|
ret z
|
|
cp $15
|
|
jr c, .asm_24fe2
|
|
ld a, $14
|
|
ld [$d711], a
|
|
jr .asm_24fed
|
|
.asm_24fe2
|
|
push af
|
|
xor a
|
|
ld [$d650], a
|
|
ld a, $1
|
|
ld [$d64e], a
|
|
pop af
|
|
.asm_24fed
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5007
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_24ffd
|
|
ld hl, $5421
|
|
.asm_24ffd
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $9
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$25007,$25a7c - $25007
|
|
|
|
InitSeelBonusStage: ; 0x25a7c
|
|
ld a, [$d7c1]
|
|
and a
|
|
ret nz
|
|
xor a
|
|
ld [$d4c8], a
|
|
ld [$d4af], a
|
|
ld a, $1
|
|
ld [$d7ac], a
|
|
ld a, [$d47e]
|
|
ld [$d481], a
|
|
xor a
|
|
ld [$d4c8], a
|
|
ld [$d47e], a
|
|
ld [$d49a], a
|
|
ld hl, $5ae5 ; todo
|
|
ld de, $d76d
|
|
call Func_25ad8
|
|
ld de, $d777
|
|
call Func_25ad8
|
|
ld de, $d781
|
|
call Func_25ad8
|
|
xor a
|
|
ld [$d793], a
|
|
ld [$d791], a
|
|
ld [$d792], a
|
|
ld [$d739], a
|
|
ld bc, $0130 ; 1 minute 30 seconds
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartTimer)
|
|
ld hl, StartTimer
|
|
call BankSwitch
|
|
ld a, $11
|
|
call Func_52c
|
|
ld de, $0003
|
|
call Func_490
|
|
ret
|
|
|
|
Func_25ad8: ; 0x25ad8
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$25ae5,$25af1 - $25ae5
|
|
|
|
StartBallSeelBonusStage: ; 0x25af1
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $a6
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $56
|
|
ld [wBallYPos + 1], a
|
|
ld a, $80
|
|
ld [wBallXVelocity], a
|
|
xor a
|
|
ld [$d7ab], a
|
|
ld [$d4af], a
|
|
ld [$d766], a
|
|
ld a, $0
|
|
ld [$d772], a
|
|
ld a, $1
|
|
ld [$d77c], a
|
|
ld a, $0
|
|
ld [$d786], a
|
|
ld a, $4
|
|
ld [$d775], a
|
|
ld [$d77f], a
|
|
ld [$d76b], a
|
|
ld a, $1
|
|
ld [$d76c], a
|
|
ld a, $4
|
|
ld [$d776], a
|
|
ld a, $1
|
|
ld [$d780], a
|
|
ld a, $5
|
|
ld [$d771], a
|
|
ld [$d77b], a
|
|
ld [$d785], a
|
|
ld a, $ff
|
|
ld [$d79a], a
|
|
xor a
|
|
ld [$d792], a
|
|
ld [$d791], a
|
|
ld [$d64e], a
|
|
ld [$d64f], a
|
|
ld [$d650], a
|
|
ld [$d651], a
|
|
ld [$d795], a
|
|
ld [$d796], a
|
|
ld [$d797], a
|
|
ld [$d798], a
|
|
ld [$d799], a
|
|
ld [$d79a], a
|
|
ld de, $d76b
|
|
ld a, [$d76c]
|
|
call Func_26137
|
|
ld de, $d775
|
|
ld a, [$d776]
|
|
call Func_26137
|
|
ld de, $d77f
|
|
ld a, [$d780]
|
|
call Func_26137
|
|
ld a, [$d4c9]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d4c9], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$25b97,$25bbc - $25b97
|
|
|
|
Func_25bbc: ; 0x25bbc
|
|
call Func_25bc0
|
|
ret
|
|
|
|
Func_25bc0: ; 0x25bc0
|
|
ld a, [$d76c]
|
|
cp $0
|
|
jr nz, .asm_25bd8
|
|
ld a, [$d76e]
|
|
ld b, a
|
|
ld a, [$d770]
|
|
add $14
|
|
ld c, a
|
|
call Func_25c12
|
|
ld a, $0
|
|
jr c, .asm_25c09
|
|
.asm_25bd8
|
|
ld a, [$d776]
|
|
cp $0
|
|
jr nz, .asm_25bf0
|
|
ld a, [$d778]
|
|
ld b, a
|
|
ld a, [$d77a]
|
|
add $14
|
|
ld c, a
|
|
call Func_25c12
|
|
ld a, $1
|
|
jr c, .asm_25c09
|
|
.asm_25bf0
|
|
ld a, [$d780]
|
|
cp $0
|
|
jr nz, .asm_25c08
|
|
ld a, [$d782]
|
|
ld b, a
|
|
ld a, [$d784]
|
|
add $14
|
|
ld c, a
|
|
call Func_25c12
|
|
ld a, $2
|
|
jr c, .asm_25c09
|
|
.asm_25c08
|
|
ret
|
|
.asm_25c09
|
|
ld [$d768], a
|
|
ld a, $1
|
|
ld [$d767], a
|
|
ret
|
|
|
|
Func_25c12: ; 0x25c12
|
|
ld a, [wBallXPos + 1]
|
|
sub b
|
|
cp $20
|
|
jr nc, .asm_25c58
|
|
ld b, a
|
|
ld a, [wBallYPos + 1]
|
|
sub c
|
|
cp $20
|
|
jr nc, .asm_25c58
|
|
ld c, a
|
|
ld e, c
|
|
ld d, $0
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
sla e
|
|
rl d
|
|
ld l, b
|
|
ld h, $0
|
|
add hl, de
|
|
ld de, $5100 ; todo
|
|
add hl, de
|
|
ld a, $3a
|
|
call Func_68f
|
|
bit 7, a
|
|
jr nz, .asm_25c58
|
|
sla a
|
|
ld [$d7ea], a
|
|
ld a, $1
|
|
ld [$d7e9], a
|
|
scf
|
|
ret
|
|
.asm_25c58
|
|
and a
|
|
ret
|
|
|
|
Func_25c5a: ; 0x25c5a
|
|
call Func_25da3
|
|
call Func_25ced
|
|
ld a, [$d793]
|
|
cp $14
|
|
jr c, .asm_25c98
|
|
ld a, [$d794]
|
|
cp $2
|
|
jr nc, .asm_25c98
|
|
ld a, $1
|
|
ld [$d498], a
|
|
ld de, $0000
|
|
call Func_490
|
|
ld a, $1
|
|
ld [$d49a], a
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5dc
|
|
ld de, $2fec
|
|
call Func_32aa
|
|
ld a, $2
|
|
ld [$d794], a
|
|
ld de, $4b2a
|
|
call PlaySoundEffect
|
|
.asm_25c98
|
|
ld a, [$d794]
|
|
cp $2
|
|
jr nz, .asm_25cb0
|
|
ld a, [$d800]
|
|
and a
|
|
jr nz, .asm_25cb0
|
|
ld de, $0003
|
|
call Func_490
|
|
ld a, $5
|
|
ld [$d794], a
|
|
.asm_25cb0
|
|
ld a, [$d794]
|
|
cp $2
|
|
jr z, .asm_25cc1
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_107f8)
|
|
ld hl, Func_107f8
|
|
call BankSwitch
|
|
.asm_25cc1
|
|
ld a, [$d57e]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d57e], a
|
|
ld a, $1
|
|
ld [$d7be], a
|
|
call Func_2862
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_86d2)
|
|
ld hl, Func_86d2
|
|
call BankSwitch
|
|
ld a, $3
|
|
ld [$d791], a
|
|
ld a, [$d794]
|
|
cp $5
|
|
ret z
|
|
ld a, $1
|
|
ld [$d794], a
|
|
ret
|
|
|
|
Func_25ced: ; 0x25ced
|
|
ld a, [$d766]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4b4]
|
|
cp $8a
|
|
ret nc
|
|
ld a, $1
|
|
ld [$d4af], a
|
|
ld [$d766], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_e578)
|
|
ld hl, Func_e578
|
|
call BankSwitch
|
|
call Func_25d0e
|
|
ret
|
|
|
|
Func_25d0e: ; 0x25d0e
|
|
ld a, [$d4af]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5d2b
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_25d21
|
|
ld hl, $5d67
|
|
.asm_25d21
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $9
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$25d2b,$25da3 - $25d2b
|
|
|
|
Func_25da3: ; 0x25da3
|
|
ld a, [$d767]
|
|
and a
|
|
jp z, .asm_25e38
|
|
xor a
|
|
ld [$d767], a
|
|
ld a, [$d768]
|
|
sla a
|
|
ld c, a
|
|
sla a
|
|
sla a
|
|
add c
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $d76c
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
ld a, $9
|
|
ld [de], a
|
|
dec de
|
|
dec de
|
|
dec de
|
|
push bc
|
|
ld hl, $61d8
|
|
call Func_28a0
|
|
pop bc
|
|
ld hl, $d76e
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d79c], a
|
|
ld hl, $d770
|
|
add hl, bc
|
|
ld a, [hl]
|
|
add $8
|
|
ld [$d79e], a
|
|
ld a, [$d792]
|
|
cp $9
|
|
jr nz, .asm_25df1
|
|
ld a, $0
|
|
ld [$d792], a
|
|
ld [$d79a], a
|
|
.asm_25df1
|
|
ld a, [$d792]
|
|
dec a
|
|
cp $ff
|
|
jr z, .asm_25e04
|
|
ld [$d79a], a
|
|
ld de, $d79a
|
|
call Func_261f9
|
|
jr .asm_25e07
|
|
.asm_25e04
|
|
ld [$d79a], a
|
|
.asm_25e07
|
|
ld a, $33
|
|
ld [$d803], a
|
|
ld a, $8
|
|
ld [$d804], a
|
|
ld de, $0030
|
|
call PlaySoundEffect
|
|
call Func_25e85
|
|
ld hl, $d792
|
|
inc [hl]
|
|
ld a, [$d793]
|
|
cp $14
|
|
ret nc
|
|
ld hl, $d793
|
|
inc [hl]
|
|
ld a, [$d792]
|
|
dec a
|
|
ld b, a
|
|
ld a, [hl]
|
|
add b
|
|
ld [hl], a
|
|
ld a, $1
|
|
ld [$d64e], a
|
|
call Func_262f4
|
|
.asm_25e38
|
|
ld de, $d76c ; I think these three calls are one for each Seel swimming around
|
|
call Func_25f47
|
|
ld de, $d776
|
|
call Func_25f47
|
|
ld de, $d780
|
|
call Func_25f47
|
|
ld a, [$d792]
|
|
dec a
|
|
cp $ff
|
|
jr z, .asm_25e5d
|
|
ld [$d79a], a
|
|
ld de, $d79a
|
|
call Func_26212
|
|
jr .asm_25e60
|
|
.asm_25e5d
|
|
ld [$d79a], a
|
|
.asm_25e60
|
|
ld bc, $087a ; again, probably one call for each Seel swimming around
|
|
ld de, $d76d
|
|
ld hl, $d772
|
|
call Func_25ec5
|
|
ld bc, $087a
|
|
ld de, $d777
|
|
ld hl, $d77c
|
|
call Func_25ec5
|
|
ld bc, $087a
|
|
ld de, $d781
|
|
ld hl, $d786
|
|
call Func_25ec5
|
|
ret
|
|
|
|
Func_25e85: ; 0x25e85
|
|
ld a, [$d792]
|
|
inc a
|
|
ld d, $1
|
|
ld e, a
|
|
ld a, $1
|
|
.asm_25e8e
|
|
cp e
|
|
jr z, .asm_25e96
|
|
sla d
|
|
inc a
|
|
jr .asm_25e8e
|
|
.asm_25e96
|
|
push de
|
|
ld a, d
|
|
cp $32
|
|
jr nc, .asm_25ead
|
|
ld bc, $34d6
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
pop de
|
|
dec d
|
|
jr .asm_25ebf
|
|
.asm_25ead
|
|
ld bc, $34ee
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8576)
|
|
ld hl, Func_8576
|
|
call BankSwitch
|
|
pop de
|
|
ld a, d
|
|
sub $32
|
|
ld d, a
|
|
.asm_25ebf
|
|
ld a, d
|
|
cp $0
|
|
jr nz, .asm_25e96
|
|
ret
|
|
|
|
Func_25ec5: ; 0x25ec5
|
|
dec de
|
|
ld a, [de]
|
|
cp $1
|
|
jr z, .asm_25ece
|
|
cp $4
|
|
ret nz
|
|
.asm_25ece
|
|
inc de
|
|
push hl
|
|
ld a, [hld]
|
|
push af
|
|
push bc
|
|
ld a, [hl]
|
|
and $f
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5f27
|
|
add hl, bc
|
|
pop bc
|
|
pop af
|
|
and a
|
|
jr nz, .asm_25f05
|
|
ld a, [de]
|
|
add [hl]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [de]
|
|
adc $0
|
|
ld [de], a
|
|
pop hl
|
|
cp c
|
|
ret c
|
|
ld a, $1
|
|
ld [hl], a
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
ld a, $7
|
|
ld [hl], a
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
ld d, h
|
|
ld e, l
|
|
ld hl, $61c2
|
|
call Func_28a0
|
|
ret
|
|
.asm_25f05
|
|
ld a, [de]
|
|
sub [hl]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [de]
|
|
sbc $0
|
|
ld [de], a
|
|
pop hl
|
|
cp b
|
|
ret nc
|
|
xor a
|
|
ld [hl], a
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
ld a, $8
|
|
ld [hl], a
|
|
dec hl
|
|
dec hl
|
|
dec hl
|
|
ld d, h
|
|
ld e, l
|
|
ld hl, $61cd
|
|
call Func_28a0
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$25f27,$25f47 - $25f27
|
|
|
|
Func_25f47: ; 0x25f47
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $614f
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a9
|
|
pop de
|
|
ret nc
|
|
ld a, [de]
|
|
rst $18
|
|
CallTable_25f5f: ; 0x25f5f
|
|
dw Func_25f77
|
|
dw Func_25fbe
|
|
dw Func_25ff3
|
|
dw Func_2602a
|
|
dw Func_2604c
|
|
dw Func_2607f
|
|
dw Func_260b6
|
|
dw Func_260d8
|
|
dw Func_260e2
|
|
dw Func_260ec
|
|
dw Func_26109
|
|
dw Func_26120
|
|
|
|
Func_25f77: ; 0x25f77
|
|
dec de
|
|
ld a, [de]
|
|
cp $2
|
|
ret nz
|
|
push de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, [de]
|
|
dec a
|
|
ld [de], a
|
|
ld a, $3
|
|
jr z, .asm_25f8f
|
|
pop de
|
|
xor a
|
|
jp Func_26137
|
|
.asm_25f8f
|
|
ld hl, $d792
|
|
ld [hl], $0
|
|
call Func_959
|
|
bit 7, a
|
|
jr z, .asm_25fa2
|
|
inc de
|
|
ld a, $1
|
|
ld [de], a
|
|
dec de
|
|
jr .asm_25fa7
|
|
.asm_25fa2
|
|
inc de
|
|
ld a, $0
|
|
ld [de], a
|
|
dec de
|
|
.asm_25fa7
|
|
inc de
|
|
ld a, [de]
|
|
and a
|
|
jr z, .asm_25fb0
|
|
ld a, $6
|
|
jr .asm_25fb2
|
|
.asm_25fb0
|
|
ld a, $3
|
|
.asm_25fb2
|
|
push af
|
|
ld de, $0031
|
|
call PlaySoundEffect
|
|
pop af
|
|
pop de
|
|
jp Func_26137
|
|
|
|
Func_25fbe: ; 0x25fbe
|
|
dec de
|
|
ld a, [de]
|
|
cp $4
|
|
ret nz
|
|
push de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, [de]
|
|
dec a
|
|
ld [de], a
|
|
jr z, .asm_25fd5
|
|
pop de
|
|
ld a, $1
|
|
jp Func_26137
|
|
.asm_25fd5
|
|
ld a, [$d791]
|
|
cp $0
|
|
jr z, .asm_25fe9
|
|
ld a, $2
|
|
ld [de], a
|
|
pop de
|
|
ld a, $4
|
|
ld [de], a
|
|
ld a, $1
|
|
jp Func_26137
|
|
|
|
ret ; unused instruction
|
|
|
|
.asm_25fe9
|
|
ld hl, $d791
|
|
inc [hl]
|
|
pop de
|
|
ld a, $2
|
|
jp Func_26137
|
|
|
|
Func_25ff3: ; 0x25ff3
|
|
dec de
|
|
ld a, [de]
|
|
cp $7
|
|
ret nz
|
|
xor a
|
|
call Func_26137
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, [$d792]
|
|
cp $6
|
|
jr nc, .asm_26020
|
|
cp $2
|
|
jr nc, .asm_26016
|
|
ld a, $3
|
|
ld [de], a
|
|
ld de, $0031
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_26016
|
|
ld a, $2
|
|
ld [de], a
|
|
ld de, $0031
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_26020
|
|
ld a, $1
|
|
ld [de], a
|
|
ld de, $0031
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_2602a: ; 0x2602a
|
|
dec de
|
|
ld a, [de]
|
|
cp $9
|
|
ret nz
|
|
ld a, $1
|
|
call Func_26137
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
call Func_959
|
|
bit 7, a
|
|
jr z, .asm_26044
|
|
ld a, $3
|
|
jr .asm_26046
|
|
.asm_26044
|
|
ld a, $5
|
|
.asm_26046
|
|
ld [de], a
|
|
ld hl, $d791
|
|
dec [hl]
|
|
ret
|
|
|
|
Func_2604c: ; 0x2604c
|
|
dec de
|
|
ld a, [de]
|
|
cp $4
|
|
ret nz
|
|
push de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, [de]
|
|
dec a
|
|
ld [de], a
|
|
jr z, .asm_26063
|
|
pop de
|
|
ld a, $4
|
|
jp Func_26137
|
|
.asm_26063
|
|
ld a, [$d791]
|
|
cp $0
|
|
jr z, .asm_26075
|
|
ld a, $2
|
|
ld [de], a
|
|
pop de
|
|
ld a, $4
|
|
ld [de], a
|
|
jp Func_26137
|
|
|
|
ret ; unused instruction
|
|
|
|
.asm_26075
|
|
ld hl, $d791
|
|
inc [hl]
|
|
pop de
|
|
ld a, $5
|
|
jp Func_26137
|
|
|
|
Func_2607f: ; 0x2607f
|
|
dec de
|
|
ld a, [de]
|
|
cp $7
|
|
ret nz
|
|
xor a
|
|
call Func_26137
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, [$d792]
|
|
cp $6
|
|
jr nc, .asm_260ac
|
|
cp $2
|
|
jr nc, .asm_260a2
|
|
ld a, $3
|
|
ld [de], a
|
|
ld de, $0031
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_260a2
|
|
ld a, $2
|
|
ld [de], a
|
|
ld de, $0031
|
|
call PlaySoundEffect
|
|
ret
|
|
.asm_260ac
|
|
ld a, $1
|
|
ld [de], a
|
|
ld de, $0031
|
|
call PlaySoundEffect
|
|
ret
|
|
|
|
Func_260b6: ; 0x260b6
|
|
dec de
|
|
ld a, [de]
|
|
cp $9
|
|
ret nz
|
|
ld a, $4
|
|
call Func_26137
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
call Func_959
|
|
bit 7, a
|
|
jr z, .asm_260d0
|
|
ld a, $3
|
|
jr .asm_260d2
|
|
.asm_260d0
|
|
ld a, $5
|
|
.asm_260d2
|
|
ld [de], a
|
|
ld hl, $d791
|
|
dec [hl]
|
|
ret
|
|
|
|
Func_260d8: ; 0x260d8
|
|
dec de
|
|
ld a, [de]
|
|
cp $5
|
|
ret nz
|
|
ld a, $4
|
|
jp Func_26137
|
|
|
|
Func_260e2: ; 0x260e2
|
|
dec de
|
|
ld a, [de]
|
|
cp $5
|
|
ret nz
|
|
ld a, $1
|
|
jp Func_26137
|
|
|
|
Func_260ec: ; 0x260ec
|
|
dec de
|
|
ld a, [de]
|
|
cp $1
|
|
ret nz
|
|
push de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, [de]
|
|
and a
|
|
jr z, .asm_26103
|
|
pop de
|
|
ld a, $b
|
|
jp Func_26137
|
|
.asm_26103
|
|
pop de
|
|
ld a, $a
|
|
jp Func_26137
|
|
|
|
Func_26109: ; 0x26109
|
|
dec de
|
|
ld a, [de]
|
|
cp $7
|
|
ret nz
|
|
ld a, $1
|
|
call Func_26137
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, $5
|
|
ld [de], a
|
|
ld hl, $d791
|
|
dec [hl]
|
|
ret
|
|
|
|
Func_26120: ; 0x26120
|
|
dec de
|
|
ld a, [de]
|
|
cp $7
|
|
ret nz
|
|
ld a, $4
|
|
call Func_26137
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, $5
|
|
ld [de], a
|
|
ld hl, $d791
|
|
dec [hl]
|
|
ret
|
|
|
|
Func_26137: ; 0x26137
|
|
push af
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $614f ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
pop de
|
|
inc de
|
|
pop af
|
|
ld [de], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$2614f,$261f9 - $2614f
|
|
|
|
Func_261f9: ; 0x261f9
|
|
ld a, $ff
|
|
ld [$d795], a
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $623a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a0
|
|
ret
|
|
|
|
Func_26212: ; 0x26212
|
|
ld a, [de]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $623a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push de
|
|
dec de
|
|
dec de
|
|
dec de
|
|
call Func_28a9
|
|
pop de
|
|
ret nc
|
|
dec de
|
|
ld a, [de]
|
|
cp $a
|
|
ret nz
|
|
xor a
|
|
ld [de], a
|
|
ld [$d79c], a
|
|
ld [$d79e], a
|
|
ld a, a
|
|
ld [$d795], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$2623a,$262f4 - $2623a
|
|
|
|
Func_262f4: ; 0x262f4
|
|
ld a, [$d793]
|
|
ld c, a
|
|
ld b, $0
|
|
.asm_262fa
|
|
ld a, c
|
|
and a
|
|
jr z, .asm_26306
|
|
ld a, b
|
|
add $8
|
|
ld b, a
|
|
dec c
|
|
ld a, c
|
|
jr .asm_262fa
|
|
.asm_26306
|
|
ld a, b
|
|
and a
|
|
jr z, .asm_2630c
|
|
sub $8
|
|
.asm_2630c
|
|
ld [$d652], a
|
|
ld a, [$d792]
|
|
and a
|
|
jr z, .asm_2631b
|
|
ld b, a
|
|
ld a, [$d793]
|
|
inc a
|
|
sub b
|
|
.asm_2631b
|
|
ld [$d651], a
|
|
ld a, [$d793]
|
|
cp $15
|
|
jr c, .asm_2632a
|
|
ld a, $14
|
|
ld [$d793], a
|
|
.asm_2632a
|
|
push af
|
|
xor a
|
|
ld [$d650], a
|
|
pop af
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $634a
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_26340
|
|
ld hl, $6764
|
|
.asm_26340
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $9
|
|
call Func_10aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$2634a,$28000 - $2634a
|
|
|
|
|
|
SECTION "banka", ROMX, BANK[$a]
|
|
|
|
HandlePokedexScreen: ; 0x28000
|
|
ld a, [wScreenState]
|
|
rst $18
|
|
PointerTable_28004: ; 0x28004
|
|
dw LoadPokedexScreen
|
|
dw MainPokedexScreen
|
|
dw MonInfoPokedexScreen
|
|
dw Func_282e9 ; not sure if this is used ever...
|
|
dw ExitPokedexScreen
|
|
|
|
LoadPokedexScreen: ; 0x2800e
|
|
ld a, $23
|
|
ld [$ff9e], a
|
|
ld a, $e4
|
|
ld [$d80c], a
|
|
ld a, $93
|
|
ld [$d80d], a
|
|
ld a, $e4
|
|
ld [$d80e], a
|
|
xor a
|
|
ld [hBoardXShift], a
|
|
ld a, $8
|
|
ld [hBoardYShift], a
|
|
ld a, $7
|
|
ld [$ffa7], a
|
|
ld a, $8c
|
|
ld [$ffa6], a
|
|
ld a, $3b
|
|
ld [$ffa2], a
|
|
ld [$ffa8], a
|
|
ld [$ffa9], a
|
|
ld [$ffaa], a
|
|
ld hl, $ff9f
|
|
set 6, [hl]
|
|
ld hl, $ffff
|
|
set 1, [hl]
|
|
ld a, $2
|
|
ld [$ffb0], a
|
|
ld hl, PointerTable_280a2
|
|
ld a, [hGameBoyColorFlag]
|
|
call LoadVideoData
|
|
xor a
|
|
ld [$d959], a
|
|
ld [$d95a], a
|
|
ld [$d95b], a
|
|
ld [$d95c], a
|
|
ld [$d960], a
|
|
ld [$d961], a
|
|
ld [$d95e], a
|
|
ld a, $1
|
|
ld [$d862], a
|
|
call ClearOAMBuffer
|
|
call Func_285db
|
|
call Func_28931
|
|
call Func_289c8
|
|
call Func_28a15
|
|
call Func_28972
|
|
call Func_28a8a
|
|
call Func_28ad1
|
|
call Func_28add
|
|
call CountNumSeenOwnedMons
|
|
call Func_b66
|
|
ld a, $f
|
|
call Func_52c
|
|
ld de, $0004
|
|
call Func_490
|
|
call Func_588
|
|
call Func_bbe
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
|
|
PointerTable_280a2: ; 0x280a2
|
|
dw Data_280a6
|
|
dw Data_280c4
|
|
|
|
Data_280a6: ; 0x280a6
|
|
dw $5800
|
|
db $2B
|
|
dw vTiles0
|
|
dw $6000
|
|
|
|
dw $5000
|
|
db $31
|
|
dw $9800
|
|
dw $1000
|
|
|
|
dw $4800
|
|
db $31
|
|
dw vBGMap1
|
|
dw $800
|
|
|
|
dw $4800
|
|
db $31
|
|
dw $9e00
|
|
dw $800
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
Data_280c4: ; 0x280c4
|
|
dw $5800
|
|
db $2B
|
|
dw vTiles0
|
|
dw $6000
|
|
|
|
dw $5000
|
|
db $31
|
|
dw $9800
|
|
dw $1000
|
|
|
|
dw $5400
|
|
db $31
|
|
dw $9800
|
|
dw $1002
|
|
|
|
dw $4800
|
|
db $31
|
|
dw vBGMap1
|
|
dw $800
|
|
|
|
dw $4800
|
|
db $31
|
|
dw $9e00
|
|
dw $800
|
|
|
|
dw $4c00
|
|
db $31
|
|
dw vBGMap1
|
|
dw $802
|
|
|
|
dw $4c00
|
|
db $31
|
|
dw $9e00
|
|
dw $802
|
|
|
|
dw $4e80
|
|
db $37
|
|
dw $0000
|
|
dw $101
|
|
|
|
db $FF, $FF ; terminators
|
|
|
|
MainPokedexScreen: ; 0x280fe
|
|
call Func_28513
|
|
ld a, [hNewlyPressedButtons]
|
|
bit 0, a
|
|
jr z, .asm_28142
|
|
ld a, [$d95f]
|
|
and a
|
|
jp nz, .asm_28174
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
jp z, .asm_28174
|
|
push hl
|
|
ld a, [$d959]
|
|
inc a
|
|
ld e, a
|
|
ld d, $0
|
|
call Func_4ef
|
|
pop hl
|
|
bit 1, [hl]
|
|
jp z, .asm_28174
|
|
call Func_288c6
|
|
call Func_2885c
|
|
call Func_926
|
|
call Func_2887c
|
|
call Func_2885c
|
|
ld hl, wScreenState
|
|
inc [hl]
|
|
ret
|
|
.asm_28142
|
|
bit 1, a
|
|
jr z, .asm_2814f
|
|
call Func_285db
|
|
ld a, $4
|
|
ld [wScreenState], a
|
|
ret
|
|
.asm_2814f
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_28174
|
|
ld a, [hJoypadState]
|
|
bit BIT_START, a
|
|
jr z, .asm_28168
|
|
ld a, [$d960]
|
|
and a
|
|
ld a, $ff
|
|
ld [$d960], a
|
|
call z, Func_28add
|
|
jr .asm_28174
|
|
.asm_28168
|
|
ld a, [$d960]
|
|
and a
|
|
ld a, $0
|
|
ld [$d960], a
|
|
call nz, Func_28add
|
|
.asm_28174
|
|
call Func_285db
|
|
ret
|
|
|
|
MonInfoPokedexScreen: ; 0x28178
|
|
ld a, [$d956]
|
|
bit 0, a
|
|
jr z, .asm_28190
|
|
ld a, [hNewlyPressedButtons]
|
|
bit BIT_A_BUTTON, a
|
|
jr z, .asm_2818a
|
|
call Func_28912
|
|
jr .asm_281a2
|
|
.asm_2818a
|
|
bit 1, a
|
|
jr z, .asm_281a2
|
|
jr .asm_28196
|
|
.asm_28190
|
|
ld a, [hNewlyPressedButtons]
|
|
and $3
|
|
jr z, .asm_281a2
|
|
.asm_28196
|
|
call Func_288a2
|
|
call Func_285db
|
|
ld a, $1
|
|
ld [wScreenState], a
|
|
ret
|
|
.asm_281a2
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
jr z, .asm_281c7
|
|
ld a, [hJoypadState]
|
|
bit BIT_START, a
|
|
jr z, .asm_281bb
|
|
ld a, [$d960]
|
|
and a
|
|
ld a, $ff
|
|
ld [$d960], a
|
|
call z, Func_28add
|
|
jr .asm_281c7
|
|
.asm_281bb
|
|
ld a, [$d960]
|
|
and a
|
|
ld a, $0
|
|
ld [$d960], a
|
|
call nz, Func_28add
|
|
.asm_281c7
|
|
call Func_2885c
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$281cb,$282e9 - $281cb
|
|
|
|
Func_282e9: ; 0x282e9
|
|
ld a, [$d960]
|
|
and a
|
|
jr z, .asm_28318
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $7429 ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
ld c, a
|
|
ld a, [$ffb3]
|
|
swap a
|
|
and $7
|
|
cp $7
|
|
jr z, .asm_2830d
|
|
and $1
|
|
jr .asm_2830f
|
|
.asm_2830d
|
|
ld a, $2
|
|
.asm_2830f
|
|
add c
|
|
add $a5
|
|
ld bc, $2030
|
|
call LoadOAMData
|
|
.asm_28318
|
|
ld a, [$daa2]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $42b9 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
ld a, $63
|
|
call LoadOAMData
|
|
call Func_28368
|
|
ld a, [hNewlyPressedButtons]
|
|
and $6
|
|
jr z, .asm_28367
|
|
ld a, $31
|
|
ld hl, $4800 ; todo
|
|
ld de, vBGMap1
|
|
ld bc, $0200
|
|
call LoadVRAMData
|
|
ld a, $1
|
|
ld [$ff4f], a
|
|
ld a, $31
|
|
ld hl, $4c00 ; todo
|
|
ld de, vBGMap1
|
|
ld bc, $0200
|
|
call LoadVRAMData
|
|
xor a
|
|
ld [$ff4f], a
|
|
call Func_28972
|
|
call Func_28a8a
|
|
call Func_28ad1
|
|
ld a, $1
|
|
ld [wScreenState], a
|
|
.asm_28367
|
|
ret
|
|
|
|
Func_28368: ; 0x28368
|
|
ld a, [hJoypadState]
|
|
bit BIT_A_BUTTON, a
|
|
jr nz, .asm_28371
|
|
jp Func_284bc
|
|
.asm_28371
|
|
ld a, [hPressedButtons]
|
|
ld b, a
|
|
ld a, [$daa2]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $da8a
|
|
add hl, de
|
|
ld a, [hl]
|
|
bit 5, b
|
|
jr z, .asm_28386
|
|
dec a
|
|
jr .asm_2838a
|
|
.asm_28386
|
|
bit 4, b
|
|
ret z
|
|
inc a
|
|
.asm_2838a
|
|
and $1f
|
|
ld [hl], a
|
|
push af
|
|
sla e
|
|
rl d
|
|
ld hl, $4289 ; todo
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
pop af
|
|
push af
|
|
swap a
|
|
and $f
|
|
call PutTileInVRAM
|
|
inc hl
|
|
pop af
|
|
and $f
|
|
call PutTileInVRAM
|
|
ld hl, $442c ; todo
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, [hld]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
ld a, [hld]
|
|
or c
|
|
ld c, a
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
ld a, [hl]
|
|
or c
|
|
ld c, a
|
|
ld a, [$d960]
|
|
and a
|
|
jr nz, .asm_283ff
|
|
ld hl, $445c ; todo
|
|
add hl, de
|
|
ld a, [hl]
|
|
ld hl, $ff68
|
|
call PutTileInVRAM
|
|
ld hl, $ff69
|
|
ld a, c
|
|
call PutTileInVRAM
|
|
ld a, b
|
|
call PutTileInVRAM
|
|
ret
|
|
.asm_283ff
|
|
ld hl, $445c ; todo
|
|
add hl, de
|
|
ld a, [hl]
|
|
ld hl, $ff68
|
|
call PutTileInVRAM
|
|
ld hl, $ff69
|
|
ld a, c
|
|
call PutTileInVRAM
|
|
ld a, b
|
|
call PutTileInVRAM
|
|
ld hl, $448c ; todo
|
|
add hl, de
|
|
ld a, [hl]
|
|
ld hl, $ff6a
|
|
call PutTileInVRAM
|
|
ld hl, $ff6b
|
|
ld a, c
|
|
call PutTileInVRAM
|
|
ld a, b
|
|
call PutTileInVRAM
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$2842c,$284bc - $2842c
|
|
|
|
Func_284bc: ; 0x284bc
|
|
ld a, [hPressedButtons]
|
|
ld b, a
|
|
ld a, [$daa2]
|
|
bit 5, b
|
|
jr z, .asm_284cd
|
|
dec a
|
|
bit 7, a
|
|
jr nz, .asm_284ef
|
|
jr .asm_284f5
|
|
.asm_284cd
|
|
bit 4, b
|
|
jr z, .asm_284d8
|
|
inc a
|
|
cp $18
|
|
jr nc, .asm_284f3
|
|
jr .asm_284f5
|
|
.asm_284d8
|
|
bit 6, b
|
|
jr z, .asm_284e4
|
|
sub $3
|
|
bit 7, a
|
|
jr nz, .asm_284ef
|
|
jr .asm_284f5
|
|
.asm_284e4
|
|
bit 7, b
|
|
ret z
|
|
add $3
|
|
cp $18
|
|
jr nc, .asm_284f3
|
|
jr .asm_284f5
|
|
.asm_284ef
|
|
add $18
|
|
jr .asm_284f5
|
|
.asm_284f3
|
|
sub $18
|
|
.asm_284f5
|
|
ld [$daa2], a
|
|
ret
|
|
|
|
ExitPokedexScreen: ; 0x284f9
|
|
call Func_cb5
|
|
call Func_576
|
|
ld hl, $ff9f
|
|
res 6, [hl]
|
|
ld hl, $ffff
|
|
res 1, [hl]
|
|
ld a, SCREEN_TITLESCREEN
|
|
ld [wCurrentScreen], a
|
|
xor a
|
|
ld [wScreenState], a
|
|
ret
|
|
|
|
Func_28513: ; 0x28513
|
|
ld a, [hPressedButtons]
|
|
ld hl, $d95e
|
|
or [hl]
|
|
ld [hl], a
|
|
ld a, [$d95c]
|
|
and a
|
|
ret nz
|
|
ld a, [$d95e]
|
|
ld b, a
|
|
ld a, [$d9f8]
|
|
and a
|
|
ld a, $96
|
|
jr z, .asm_2852d
|
|
ld a, $97
|
|
.asm_2852d
|
|
ld d, a
|
|
ld a, [$d959]
|
|
bit 6, b
|
|
jr z, .asm_28548
|
|
and a
|
|
jr z, .asm_285a9
|
|
dec a
|
|
ld [$d959], a
|
|
ld a, $4
|
|
ld [$d95c], a
|
|
ld a, $1
|
|
ld [$d95f], a
|
|
jr .asm_285a9
|
|
.asm_28548
|
|
bit 7, b
|
|
jr z, .asm_2855f
|
|
inc a
|
|
cp d
|
|
jr z, .asm_285a9
|
|
ld [$d959], a
|
|
ld a, $4
|
|
ld [$d95c], a
|
|
ld a, $1
|
|
ld [$d95f], a
|
|
jr .asm_285a9
|
|
.asm_2855f
|
|
ld a, d
|
|
sub $9
|
|
ld d, a
|
|
ld a, [$d95a]
|
|
ld c, $5
|
|
bit 5, b
|
|
jr z, .asm_28586
|
|
cp $5
|
|
jr nc, .asm_28571
|
|
ld c, a
|
|
.asm_28571
|
|
sub c
|
|
ld [$d95a], a
|
|
ld a, [$d959]
|
|
sub c
|
|
ld [$d959], a
|
|
ld a, $1
|
|
ld [$d95f], a
|
|
call Func_285ca
|
|
jr .asm_285aa
|
|
.asm_28586
|
|
bit 4, b
|
|
jr z, .asm_285ae
|
|
cp d
|
|
jr c, .asm_28594
|
|
push af
|
|
cpl
|
|
add d
|
|
add $5
|
|
ld c, a
|
|
pop af
|
|
.asm_28594
|
|
add c
|
|
ld [$d95a], a
|
|
ld a, [$d959]
|
|
add c
|
|
ld [$d959], a
|
|
ld a, $1
|
|
ld [$d95f], a
|
|
call Func_285ca
|
|
jr .asm_285aa
|
|
.asm_285a9
|
|
xor a
|
|
.asm_285aa
|
|
ld [$d95e], a
|
|
ret
|
|
.asm_285ae
|
|
ld a, [$d95f]
|
|
and a
|
|
ret z
|
|
ld de, $0003
|
|
call PlaySoundEffect
|
|
call Func_28931
|
|
call Func_289c8
|
|
call Func_28a15
|
|
call Func_28add
|
|
xor a
|
|
ld [$d95f], a
|
|
ret
|
|
|
|
Func_285ca: ; 0x285ca
|
|
xor a
|
|
ld [$d80a], a
|
|
call Func_28972
|
|
call Func_28a8a
|
|
call Func_28ad1
|
|
ld a, [$d80a]
|
|
ret
|
|
|
|
Func_285db: ; 0x285db
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
bit 1, [hl]
|
|
call nz, Func_287e7
|
|
ld bc, $8c38
|
|
ld a, $64
|
|
call LoadOAMData
|
|
ld bc, $8840
|
|
ld a, $65
|
|
call LoadOAMData
|
|
ld bc, $8888
|
|
ld a, $66
|
|
call LoadOAMData
|
|
call DrawCornerInfoPokedexScreen
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $7136 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
add $49
|
|
ld c, a
|
|
ld b, $90
|
|
ld a, [$d95b]
|
|
srl a
|
|
srl a
|
|
and $3
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $4687 ; todo
|
|
add hl, de
|
|
ld a, [hl]
|
|
call LoadOAMData
|
|
ld a, [$d959]
|
|
ld hl, $d95a
|
|
sub [hl]
|
|
jr nc, .asm_2863b
|
|
dec [hl]
|
|
ld a, $1
|
|
ld [$d95d], a
|
|
xor a
|
|
jr .asm_28647
|
|
.asm_2863b
|
|
cp $5
|
|
jr c, .asm_28647
|
|
ld a, $1
|
|
ld [$d95d], a
|
|
inc [hl]
|
|
ld a, $4
|
|
.asm_28647
|
|
ld c, a
|
|
push bc
|
|
ld a, [hJoypadState]
|
|
and a
|
|
ld a, [$d95b]
|
|
jr z, .asm_28652
|
|
xor a
|
|
.asm_28652
|
|
inc a
|
|
ld [$d95b], a
|
|
bit 3, a
|
|
jr nz, .asm_28667
|
|
swap c
|
|
ld a, c
|
|
add $40
|
|
ld c, a
|
|
ld b, $10
|
|
ld a, $63
|
|
call LoadOAMData
|
|
.asm_28667
|
|
pop bc
|
|
ld a, [$d95c]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [$d95c], a
|
|
sla a
|
|
ld e, a
|
|
ld d, $0
|
|
push hl
|
|
ld hl, $467f ; todo pointer table
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp [hl]
|
|
|
|
INCBIN "baserom.gbc",$2867f,$2868b - $2867f
|
|
|
|
DrawCornerInfoPokedexScreen: ; 0x2868b
|
|
; If player is holding SELECT button, it draws the seen/own count in the top-right corner.
|
|
; Otherwise, it draws the word "POKeDEX".
|
|
ld a, [hJoypadState]
|
|
bit BIT_SELECT, a
|
|
jr z, .asm_286c8
|
|
ld bc, $6d03
|
|
ld a, [wNumPokemonSeen + 1]
|
|
call LoadSeenOwnDigitOAM
|
|
ld a, [wNumPokemonSeen]
|
|
swap a
|
|
call LoadSeenOwnDigitOAM
|
|
ld a, [wNumPokemonSeen]
|
|
call LoadSeenOwnDigitOAM
|
|
ld bc, $8202
|
|
ld a, $76
|
|
call LoadOAMData ; draws the "/" between the seen/owned numbers
|
|
ld bc, $8703
|
|
ld a, [wNumPokemonOwned + 1]
|
|
call LoadSeenOwnDigitOAM
|
|
ld a, [wNumPokemonOwned]
|
|
swap a
|
|
call LoadSeenOwnDigitOAM
|
|
ld a, [wNumPokemonOwned]
|
|
call LoadSeenOwnDigitOAM
|
|
ret
|
|
.asm_286c8
|
|
ld bc, $6800
|
|
ld a, $6a
|
|
call LoadOAMData
|
|
ret
|
|
|
|
LoadSeenOwnDigitOAM: ; 0x286d1
|
|
and $f
|
|
add $6c
|
|
call LoadOAMData
|
|
ld a, b
|
|
add $7 ; adds 7 pixels to the next digit's x position on screen
|
|
ld b, a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$286dd,$287e7 - $286dd
|
|
|
|
Func_287e7: ; 0x287e7
|
|
ld a, [$d960]
|
|
and a
|
|
ret z
|
|
ld a, [$d95f]
|
|
and a
|
|
ret nz
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $7429 ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
bit 7, a
|
|
ret nz
|
|
ld [$d5bc], a
|
|
call Func_28815
|
|
ld a, [$d5bd]
|
|
add $a5
|
|
ld bc, $2030
|
|
call LoadOAMData
|
|
ret
|
|
|
|
Func_28815: ; 0x28815
|
|
ld a, [$d5be]
|
|
dec a
|
|
ld [$d5be], a
|
|
ret nz
|
|
ld a, [$d5bf]
|
|
inc a
|
|
and $7
|
|
ld [$d5bf], a
|
|
jr nz, .asm_28836
|
|
ld a, [$d5c3]
|
|
ld [$d5be], a
|
|
xor a
|
|
ld [$d5c4], a
|
|
ld c, $2
|
|
jr .asm_28854
|
|
.asm_28836
|
|
ld a, [$d5bc]
|
|
ld c, a
|
|
ld a, [$d5bd]
|
|
sub c
|
|
cp $1
|
|
ld c, $0
|
|
jr nc, .asm_28846
|
|
ld c, $1
|
|
.asm_28846
|
|
ld b, $0
|
|
ld hl, $d5c1
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$d5be], a
|
|
xor a
|
|
ld [$d5c4], a
|
|
.asm_28854
|
|
ld a, [$d5bc]
|
|
add c
|
|
ld [$d5bd], a
|
|
ret
|
|
|
|
Func_2885c: ; 0x2885c
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
bit 1, [hl]
|
|
call nz, Func_287e7
|
|
ld bc, $8888
|
|
ld a, $66
|
|
call LoadOAMData
|
|
ld bc, $6800
|
|
ld a, $6a
|
|
call LoadOAMData
|
|
ret
|
|
|
|
Func_2887c: ; 0x2887c
|
|
ld a, $31
|
|
ld hl, $5120 ; todo
|
|
ld de, $9900
|
|
ld bc, $0100
|
|
call LoadVRAMData
|
|
ld a, $3f
|
|
ld [$ffa2], a
|
|
ld a, $47
|
|
ld [$ffa9], a
|
|
ld b, $33
|
|
.asm_28894
|
|
push bc
|
|
ld a, $7a
|
|
sub b
|
|
ld [$ffa9], a
|
|
rst $10
|
|
pop bc
|
|
dec b
|
|
dec b
|
|
dec b
|
|
jr nz, .asm_28894
|
|
ret
|
|
|
|
Func_288a2: ; 0x288a2
|
|
ld b, $33
|
|
.asm_288a4
|
|
push bc
|
|
ld a, $44
|
|
add b
|
|
ld [$ffa9], a
|
|
rst $10
|
|
pop bc
|
|
dec b
|
|
dec b
|
|
dec b
|
|
jr nz, .asm_288a4
|
|
ld a, $3b
|
|
ld [$ffa2], a
|
|
ld [$ffa9], a
|
|
ld a, $31
|
|
ld hl, $5100 ; todo
|
|
ld de, $9900
|
|
ld bc, $0020
|
|
call LoadVRAMData
|
|
ret
|
|
|
|
Func_288c6: ; 0x288c6
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
bit 1, [hl]
|
|
ld hl, $4000
|
|
jr z, .asm_288f4
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
ld hl, $4002 ; todo
|
|
add hl, bc
|
|
ld a, $b
|
|
call Func_68f
|
|
inc hl
|
|
ld c, a
|
|
ld a, $b
|
|
call Func_68f
|
|
ld b, a
|
|
ld h, b
|
|
ld l, c
|
|
.asm_288f4
|
|
xor a
|
|
ld [$d860], a
|
|
ld [$d861], a
|
|
ld bc, $906c
|
|
ld de, $8900
|
|
call Func_28d97
|
|
rl a
|
|
ld [$d956], a
|
|
ld a, l
|
|
ld [$d957], a
|
|
ld a, h
|
|
ld [$d958], a
|
|
ret
|
|
|
|
Func_28912: ; 0x28912
|
|
ld bc, $906c
|
|
ld de, $8900
|
|
ld a, [$d957]
|
|
ld l, a
|
|
ld a, [$d958]
|
|
ld h, a
|
|
call Func_28d97
|
|
rl a
|
|
ld [$d956], a
|
|
ld a, l
|
|
ld [$d957], a
|
|
ld a, h
|
|
ld [$d958], a
|
|
ret
|
|
|
|
Func_28931: ; 0x28931
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
ld hl, $4970 ; todo
|
|
jr z, .asm_2895d
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld h, b
|
|
ld l, c
|
|
sla l
|
|
rl h
|
|
sla l
|
|
rl h
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
add hl, bc
|
|
add hl, bc
|
|
ld bc, $5892
|
|
add hl, bc
|
|
.asm_2895d
|
|
ld a, $ff
|
|
ld [$d860], a
|
|
xor a
|
|
ld [$d861], a
|
|
ld bc, $500a
|
|
ld de, $9500
|
|
call Func_28e09
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$28970,$28972 - $28970
|
|
|
|
Func_28972: ; 0x28972
|
|
ld a, [$d95a]
|
|
ld c, a
|
|
ld b, $6
|
|
.asm_28978
|
|
push bc
|
|
ld a, c
|
|
sla a
|
|
and $e
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $47b7 ; todo
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hl]
|
|
ld d, a
|
|
ld a, c
|
|
call Func_28993
|
|
pop bc
|
|
inc c
|
|
dec b
|
|
jr nz, .asm_28978
|
|
ret
|
|
|
|
Func_28993: ; 0x28993
|
|
push hl
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
ld hl, $49c6 ; todo
|
|
jr z, .asm_289b7
|
|
ld h, b
|
|
ld l, c
|
|
sla l
|
|
rl h
|
|
sla l
|
|
rl h
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
add hl, bc
|
|
add hl, bc
|
|
ld bc, $5892 ; todo
|
|
add hl, bc
|
|
.asm_289b7
|
|
xor a
|
|
ld [$d860], a
|
|
ld [$d861], a
|
|
ld bc, $500a ; todo
|
|
call Func_28e09
|
|
pop hl
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$289c6,$289c8 - $289c6
|
|
|
|
Func_289c8: ; 0x289c8
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
bit 1, [hl]
|
|
ld hl, $4a12 ; todo
|
|
jr z, .asm_289fe
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5f0f ; todo
|
|
add hl, bc
|
|
ld c, [hl]
|
|
ld h, b
|
|
ld l, c
|
|
sla l
|
|
rl h
|
|
sla l
|
|
rl h
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
add hl, bc
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
ld bc, $5fa6 ; todo
|
|
add hl, bc
|
|
.asm_289fe
|
|
ld a, $ff
|
|
ld [$d860], a
|
|
ld a, $4
|
|
ld [$d861], a
|
|
ld bc, $5816
|
|
ld de, $95a0
|
|
call Func_28e09
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$28a12,$28a15 - $28a12
|
|
|
|
Func_28a15: ; 0x28a15
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld h, b
|
|
ld l, c
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
ld bc, $685d ; todo
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
ld a, $0
|
|
ld [$d865], a
|
|
push de
|
|
ld hl, $9844
|
|
call Func_28d71
|
|
pop de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
bit 1, [hl]
|
|
jr nz, .asm_28a54
|
|
ld de, $4a7f ; todo
|
|
.asm_28a54
|
|
push de
|
|
ld hl, $98c8
|
|
call Func_28d71
|
|
pop de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
push de
|
|
ld hl, $98ce
|
|
call Func_28d71
|
|
pop de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld hl, $98f0
|
|
ld a, [$ff40]
|
|
bit 7, a
|
|
jr nz, .asm_28a7a
|
|
ld a, [de]
|
|
ld [hl], a
|
|
ret
|
|
.asm_28a7a
|
|
ld a, [de]
|
|
call PutTileInVRAM
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$28a7f,$28a8a - $28a7f
|
|
|
|
Func_28a8a: ; 0x28a8a
|
|
ld a, [$d95a]
|
|
ld c, a
|
|
ld b, $6
|
|
.asm_28a90
|
|
push bc
|
|
ld a, c
|
|
sla a
|
|
and $1e
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $47c7 ; todo
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, c
|
|
call Func_28aaa
|
|
pop bc
|
|
inc c
|
|
dec b
|
|
jr nz, .asm_28a90
|
|
ret
|
|
|
|
Func_28aaa: ; 0x28aaa
|
|
push hl
|
|
ld c, a
|
|
ld b, $0
|
|
ld h, b
|
|
ld l, c
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
sla l
|
|
rl h
|
|
add hl, bc
|
|
ld bc, $685d ; todo
|
|
add hl, bc
|
|
ld d, h
|
|
ld e, l
|
|
ld a, $23
|
|
ld [$d865], a
|
|
pop hl
|
|
push hl
|
|
call Func_28d71
|
|
pop hl
|
|
ret
|
|
|
|
Func_28ad1: ; 0x28ad1
|
|
ld a, [$d95a]
|
|
swap a
|
|
and $f0
|
|
sub $3c
|
|
ld [$ffab], a
|
|
ret
|
|
|
|
Func_28add: ; 0x28add
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wPokedexFlags
|
|
add hl, bc
|
|
ld a, [hl]
|
|
and a
|
|
jp z, Func_28b76
|
|
dec a
|
|
jp z, Func_28baf
|
|
ld a, [$d960]
|
|
and a
|
|
jr z, .asm_28afc
|
|
call Func_28cc2
|
|
jp z, Func_28bf5
|
|
.asm_28afc
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
add c
|
|
ld c, a
|
|
jr nc, .asm_28b0b
|
|
inc b
|
|
.asm_28b0b
|
|
push bc
|
|
ld hl, $6b50 ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld c, a
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld b, a
|
|
ld a, $4
|
|
call Func_68f
|
|
ld h, b
|
|
ld l, c
|
|
ld de, $9000
|
|
ld bc, $0180
|
|
call Func_735
|
|
call Func_28cd4
|
|
pop bc
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret z
|
|
push bc
|
|
ld hl, $6d15 ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld e, a
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld d, a
|
|
ld a, $4
|
|
call Func_68f
|
|
ld hl, $9861
|
|
call Func_86f
|
|
pop bc
|
|
ld hl, $6eda
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld e, a
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld d, a
|
|
ld a, $4
|
|
call Func_68f
|
|
ld bc, $10b0
|
|
ld hl, $ff68
|
|
call Func_8e1
|
|
ret
|
|
|
|
Func_28b76: ; 0x28b76
|
|
ld a, $1c
|
|
ld hl, $5500
|
|
ld de, $9000
|
|
ld bc, $0180
|
|
call Func_735
|
|
call Func_28cd4
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret z
|
|
ld a, $a
|
|
ld de, $4b97
|
|
ld hl, $9861
|
|
call Func_86f
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$28b97,$28baf - $28b97
|
|
|
|
Func_28baf: ; 0x28baf
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
add c
|
|
ld c, a
|
|
jr nc, .asm_28bbe
|
|
inc b
|
|
.asm_28bbe
|
|
ld hl, $6b50 ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld c, a
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld b, a
|
|
ld a, $4
|
|
call Func_68f
|
|
ld hl, $0180
|
|
add hl, bc
|
|
ld de, $9000
|
|
ld bc, $0180
|
|
call Func_735
|
|
call Func_28cd4
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret z
|
|
ld a, $a
|
|
ld de, $4b97 ; todo
|
|
ld hl, $9861
|
|
call Func_86f
|
|
ret
|
|
|
|
Func_28bf5: ; 0x28bf5
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
add c
|
|
ld c, a
|
|
jr nc, .asm_28c04
|
|
inc b
|
|
.asm_28c04
|
|
push bc
|
|
ld a, $1
|
|
ld [$ff4f], a
|
|
ld hl, $7264 ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld c, a
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld b, a
|
|
ld a, $4
|
|
call Func_68f
|
|
ld h, b
|
|
ld l, c
|
|
ld de, vTiles0
|
|
ld bc, $0300
|
|
call Func_735
|
|
xor a
|
|
ld [$ff4f], a
|
|
pop bc
|
|
push bc
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $561d ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
add c
|
|
ld c, a
|
|
jr nc, .asm_28c4b
|
|
inc b
|
|
.asm_28c4b
|
|
ld hl, $7685 ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
ld [$d5c1], a
|
|
ld [$d5be], a
|
|
inc hl
|
|
ld a, $4
|
|
call Func_68f
|
|
ld [$d5c2], a
|
|
inc hl
|
|
ld a, $4
|
|
call Func_68f
|
|
ld [$d5c3], a
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $7429 ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
ld [$d5bc], a
|
|
ld [$d5bd], a
|
|
call Func_28cf8
|
|
pop bc
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret z
|
|
ld hl, $709f ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld e, a
|
|
ld a, $4
|
|
call Func_68f
|
|
inc hl
|
|
ld d, a
|
|
ld a, $4
|
|
call Func_68f
|
|
push af
|
|
push de
|
|
ld bc, $10b0
|
|
ld hl, $ff68
|
|
call Func_8e1
|
|
pop de
|
|
pop af
|
|
push af
|
|
ld bc, $08d8
|
|
ld hl, $ff6a
|
|
call Func_8e1
|
|
pop af
|
|
ld bc, $08e8
|
|
ld hl, $ff6a
|
|
call Func_8e1
|
|
ret
|
|
|
|
Func_28cc2: ; 0x28cc2
|
|
ld a, [$d959]
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $7429 ; todo
|
|
add hl, bc
|
|
ld a, $4
|
|
call Func_68f
|
|
bit 7, a
|
|
ret
|
|
|
|
Func_28cd4: ; 0x28cd4
|
|
xor a
|
|
ld hl, $d961
|
|
cp [hl]
|
|
ret z
|
|
ld [hl], a
|
|
ld de, .Data_28ce0
|
|
jr asm_28d1d
|
|
|
|
.Data_28ce0: ; 0x28ce0
|
|
db $0
|
|
db $1
|
|
db $2
|
|
db $3
|
|
db $4
|
|
db $5
|
|
db $6
|
|
db $7
|
|
db $8
|
|
db $9
|
|
db $a
|
|
db $b
|
|
db $c
|
|
db $d
|
|
db $e
|
|
db $f
|
|
db $10
|
|
db $11
|
|
db $12
|
|
db $13
|
|
db $14
|
|
db $15
|
|
db $16
|
|
db $17
|
|
|
|
Func_28cf8: ; 0x28cf8
|
|
ld a, $1
|
|
ld hl, $d961
|
|
cp [hl]
|
|
ret z
|
|
ld [hl], a
|
|
ld de, .data_28d05
|
|
jr asm_28d1d
|
|
|
|
.data_28d05
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
db $fe
|
|
|
|
asm_28d1d
|
|
ld hl, $9861
|
|
ld b, $4
|
|
.asm_28d22
|
|
ld c, $6
|
|
.asm_28d24
|
|
ld a, [de]
|
|
call PutTileInVRAM
|
|
inc de
|
|
inc hl
|
|
dec c
|
|
jr nz, .asm_28d24
|
|
ld a, l
|
|
add $1a
|
|
ld l, a
|
|
dec b
|
|
jr nz, .asm_28d22
|
|
ret
|
|
|
|
CountNumSeenOwnedMons: ; 0x28d35
|
|
ld hl, wPokedexFlags
|
|
ld de, $0000 ; keep a running count: d = owned, e = seen
|
|
ld b, NUM_POKEMON
|
|
.checkSeen
|
|
bit 0, [hl] ; is mon seen?
|
|
jr z, .checkOwned
|
|
inc e
|
|
.checkOwned
|
|
bit 1, [hl] ; is mon owned?
|
|
jr z, .nextMon
|
|
inc d
|
|
.nextMon
|
|
inc hl
|
|
dec b
|
|
jr nz, .checkSeen
|
|
push de
|
|
ld a, d
|
|
call ConvertHexByteToDecWord
|
|
ld a, e
|
|
ld [wNumPokemonSeen], a
|
|
ld a, d
|
|
ld [wNumPokemonSeen + 1], a
|
|
pop de
|
|
ld a, e
|
|
call ConvertHexByteToDecWord
|
|
ld a, e
|
|
ld [wNumPokemonOwned], a
|
|
ld a, d
|
|
ld [wNumPokemonOwned + 1], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$28d66,$28d71 - $28d66
|
|
|
|
Func_28d71: ; 0x28d71
|
|
ld a, [$d865]
|
|
ld c, a
|
|
ld a, [de]
|
|
inc de
|
|
and a
|
|
ret z
|
|
cp $20
|
|
jr nz, .asm_28d81
|
|
ld a, $ff
|
|
jr .asm_28d82
|
|
.asm_28d81
|
|
add c
|
|
.asm_28d82
|
|
call Func_28d88
|
|
inc hl
|
|
jr Func_28d71
|
|
|
|
Func_28d88: ; 0x28d88
|
|
push af
|
|
ld a, [$ff40]
|
|
bit 7, a
|
|
jr nz, .asm_28d92
|
|
pop af
|
|
ld [hl], a
|
|
ret
|
|
.asm_28d92
|
|
pop af
|
|
call PutTileInVRAM
|
|
ret
|
|
|
|
Func_28d97: ; 0x28d97
|
|
push de
|
|
ld a, b
|
|
ld [$ff8c], a
|
|
ld [$ff8d], a
|
|
ld a, c
|
|
ld [$ff8f], a
|
|
xor a
|
|
ld [$ff8e], a
|
|
ld [$ff90], a
|
|
ld [$ff91], a
|
|
call Func_28e73
|
|
.asm_28daa
|
|
call Func_2957c
|
|
jr nc, .asm_28dcb
|
|
push hl
|
|
ld [$ff92], a
|
|
cp $ff
|
|
jr nz, .asm_28dbb
|
|
call Func_208c
|
|
jr .asm_28dc8
|
|
.asm_28dbb
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5792 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$ff93], a
|
|
call Func_206d
|
|
.asm_28dc8
|
|
pop hl
|
|
jr nc, .asm_28daa
|
|
.asm_28dcb
|
|
pop de
|
|
push af
|
|
ld a, e
|
|
ld [$d863], a
|
|
ld a, d
|
|
ld [$d864], a
|
|
ld a, [$d862]
|
|
and a
|
|
jr nz, .asm_28ddd
|
|
pop af
|
|
ret
|
|
.asm_28ddd
|
|
push hl
|
|
ld a, [$d861]
|
|
ld c, a
|
|
ld b, $0
|
|
bit 7, c
|
|
jr z, .asm_28de9
|
|
dec b
|
|
.asm_28de9
|
|
ld hl, $c010
|
|
add hl, bc
|
|
ld a, [$ff8f]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
xor a
|
|
call Func_735
|
|
pop hl
|
|
pop af
|
|
ret
|
|
|
|
Func_28e09: ; 0x28e09
|
|
push de
|
|
ld a, b
|
|
ld [$ff8c], a
|
|
ld [$ff8d], a
|
|
ld a, c
|
|
ld [$ff8f], a
|
|
xor a
|
|
ld [$ff8e], a
|
|
ld [$ff90], a
|
|
ld [$ff91], a
|
|
call Func_28e73
|
|
.asm_28e1c
|
|
call Func_295e1
|
|
jr nc, .asm_28e35
|
|
push hl
|
|
ld [$ff92], a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $5792 ; todo
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [$ff93], a
|
|
call Func_206d
|
|
pop hl
|
|
jr nc, .asm_28e1c
|
|
nop
|
|
.asm_28e35
|
|
pop de
|
|
push af
|
|
ld a, e
|
|
ld [$d863], a
|
|
ld a, d
|
|
ld [$d864], a
|
|
ld a, [$d862]
|
|
and a
|
|
jr nz, .asm_28e47
|
|
pop af
|
|
ret
|
|
.asm_28e47
|
|
push hl
|
|
ld a, [$d861]
|
|
ld c, a
|
|
ld b, $0
|
|
bit 7, c
|
|
jr z, .asm_28e53
|
|
dec b
|
|
.asm_28e53
|
|
ld hl, $c010
|
|
add hl, bc
|
|
ld a, [$ff8f]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
xor a
|
|
call Func_735
|
|
pop hl
|
|
pop af
|
|
ret
|
|
|
|
Func_28e73: ; 0x28e73
|
|
push hl
|
|
ld a, [$ff8f]
|
|
ld c, a
|
|
ld b, $0
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
sla c
|
|
rl b
|
|
ld hl, $5566 ; todo
|
|
ld a, l
|
|
sub c
|
|
ld l, a
|
|
ld a, h
|
|
sbc b
|
|
ld h, a
|
|
push hl
|
|
ld hl, wc000
|
|
ld a, [$d860]
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$28e9a,$2957c - $28e9a
|
|
|
|
Func_2957c: ; 0x2957c
|
|
ld a, $b
|
|
call Func_68f
|
|
inc hl
|
|
and a
|
|
ret z
|
|
cp $d
|
|
jr nz, .asm_2958c
|
|
ld a, $ff
|
|
scf
|
|
ret
|
|
.asm_2958c
|
|
cp $30
|
|
jr c, .asm_29594
|
|
cp $3a
|
|
jr c, .asm_295be
|
|
.asm_29594
|
|
cp $41
|
|
jr c, .asm_2959c
|
|
cp $5b
|
|
jr c, .asm_295c2
|
|
.asm_2959c
|
|
cp $61
|
|
jr c, .asm_295a4
|
|
cp $7b
|
|
jr c, .asm_295c6
|
|
.asm_295a4
|
|
cp $20
|
|
jr z, .asm_295ca
|
|
cp $2c
|
|
jr z, .asm_295cd
|
|
cp $2e
|
|
jr z, .asm_295d1
|
|
cp $60
|
|
jr z, .asm_295d5
|
|
cp $2d
|
|
jr z, .asm_295d9
|
|
cp $40
|
|
jr z, .asm_295dd
|
|
and a
|
|
ret
|
|
.asm_295be
|
|
sub $88
|
|
scf
|
|
ret
|
|
.asm_295c2
|
|
sub $8e
|
|
scf
|
|
ret
|
|
.asm_295c6
|
|
sub $94
|
|
scf
|
|
ret
|
|
.asm_295ca
|
|
xor a
|
|
scf
|
|
ret
|
|
.asm_295cd
|
|
ld a, $f3
|
|
scf
|
|
ret
|
|
.asm_295d1
|
|
ld a, $f4
|
|
scf
|
|
ret
|
|
.asm_295d5
|
|
ld a, $fa
|
|
scf
|
|
ret
|
|
.asm_295d9
|
|
ld a, $b2
|
|
scf
|
|
ret
|
|
.asm_295dd
|
|
ld a, $f9
|
|
scf
|
|
ret
|
|
|
|
Func_295e1: ; 0x295e1
|
|
ld a, [hli]
|
|
and a
|
|
ret z
|
|
cp $80
|
|
jr nc, .asm_295ed
|
|
ld c, a
|
|
ld b, $0
|
|
jr .asm_295f0
|
|
.asm_295ed
|
|
ld b, a
|
|
ld a, [hli]
|
|
ld c, a
|
|
.asm_295f0
|
|
ld a, b
|
|
and a
|
|
jr nz, .asm_295f9
|
|
ld a, c
|
|
sub $20
|
|
scf
|
|
ret
|
|
.asm_295f9
|
|
push hl
|
|
call Func_29605
|
|
ld c, a
|
|
ld b, $0
|
|
add hl, bc
|
|
ld a, [hl]
|
|
pop hl
|
|
scf
|
|
ret
|
|
|
|
Func_29605: ; 0x29605
|
|
ld a, b
|
|
cp $81
|
|
jr nz, .asm_29611
|
|
ld hl, $562f ; todo
|
|
ld a, c
|
|
sub $40
|
|
ret
|
|
.asm_29611
|
|
cp $83
|
|
jr nz, .asm_2961c
|
|
ld hl, $573b ; todo
|
|
ld a, c
|
|
sub $40
|
|
ret
|
|
.asm_2961c
|
|
ld a, c
|
|
cp $9f
|
|
jr nc, .asm_29628
|
|
ld hl, $569c ; todo
|
|
ld a, c
|
|
sub $4f
|
|
ret
|
|
.asm_29628
|
|
ld hl, $56e8 ; todo
|
|
ld a, c
|
|
sub $9f
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$2962f,$2c000 - $2962f
|
|
|
|
|
|
SECTION "bankb", ROMX, BANK[$b]
|
|
|
|
INCBIN "baserom.gbc",$2c000,$30000 - $2c000 ; 0x2c000
|
|
|
|
|
|
SECTION "bankc", ROMX, BANK[$c]
|
|
|
|
InitRedField: ; 0x30000
|
|
ld a, [$d7c1]
|
|
and a
|
|
ret nz
|
|
xor a
|
|
ld hl, $d46f
|
|
ld [hld], a
|
|
ld [hld], a
|
|
ld [hld], a
|
|
ld [hld], a
|
|
ld [hld], a
|
|
ld [hl], a
|
|
ld [$d460], a
|
|
ld [$d49b], a
|
|
ld [$d4c9], a
|
|
ld [$d47e], a
|
|
ld [$d4c8], a
|
|
ld hl, $d624
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d7ac], a
|
|
ld [$d7be], a
|
|
ld [wCurrentMap], a ; PALLET_TOWN
|
|
ld a, $1
|
|
ld [$d49d], a
|
|
ld [$d482], a
|
|
ld a, $2
|
|
ld [$d545], a
|
|
ld a, $3
|
|
ld [$d49e], a
|
|
ld [$d610], a
|
|
ld [$d498], a
|
|
ld [$d499], a
|
|
ld a, $4
|
|
ld [$d4af], a
|
|
ld [$d7ad], a
|
|
ld a, $80
|
|
ld [$d52f], a
|
|
ld [$d532], a
|
|
ld a, $82
|
|
ld [$d530], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_dbba)
|
|
ld hl, Func_dbba
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_16f95)
|
|
ld hl, Func_16f95
|
|
call BankSwitch
|
|
ld a, $f
|
|
call Func_52c
|
|
ld de, $0001
|
|
call Func_490
|
|
ret
|
|
|
|
StartBallRedField: ; 0x3007d
|
|
ld a, [$d496]
|
|
and a
|
|
jp nz, Func_30128
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $a7
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $98
|
|
ld [wBallYPos + 1], a
|
|
xor a
|
|
ld [$d549], a
|
|
ld [$d580], a
|
|
ld a, [$d7ad]
|
|
bit 7, a
|
|
jr z, .asm_300ae
|
|
ld a, [$d4af]
|
|
res 0, a
|
|
ld [$d7ad], a
|
|
.asm_300ae
|
|
ld a, [$d4af]
|
|
and $1
|
|
ld [$d4af], a
|
|
ld a, [$d4c9]
|
|
and a
|
|
ret z
|
|
xor a
|
|
ld [$d4c9], a
|
|
xor a
|
|
ld [$d50b], a
|
|
ld [$d50c], a
|
|
ld [$d51d], a
|
|
ld [$d517], a
|
|
ld [$d51e], a
|
|
ld hl, $d50f
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d4f0], a
|
|
ld [$d4f2], a
|
|
ld hl, $d5f9
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [$d47e], a
|
|
ld [$d611], a
|
|
ld [$d612], a
|
|
ld [$d628], a
|
|
ld [$d629], a
|
|
ld [$d62a], a
|
|
ld [$d62b], a
|
|
ld [$d62c], a
|
|
ld [$d62d], a
|
|
ld [$d62e], a
|
|
ld [$d613], a
|
|
inc a
|
|
ld [$d482], a
|
|
ld [$d4ef], a
|
|
ld [$d4f1], a
|
|
ld a, $3
|
|
ld [$d610], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_16f95)
|
|
ld hl, Func_16f95
|
|
call BankSwitch
|
|
ld a, $f
|
|
call Func_52c
|
|
ld de, $0001
|
|
call Func_490
|
|
ret
|
|
|
|
Func_30128: ; 0x30128
|
|
ld a, $0
|
|
ld [wBallXPos], a
|
|
ld a, $50
|
|
ld [wBallXPos + 1], a
|
|
ld a, $0
|
|
ld [wBallYPos], a
|
|
ld a, $16
|
|
ld [wBallYPos + 1], a
|
|
xor a
|
|
ld [wBallYVelocity], a
|
|
ld [wBallYVelocity + 1], a
|
|
ld [wBallXVelocity], a
|
|
ld [wBallXVelocity + 1], a
|
|
ld [$d496], a
|
|
ld [$d7ab], a
|
|
ld [$d7be], a
|
|
ld a, [$d481]
|
|
ld [$d47e], a
|
|
ld a, $f
|
|
call Func_52c
|
|
ld de, $0001
|
|
call Func_490
|
|
ret
|
|
|
|
Func_30164: ; 0x30164
|
|
ld a, [$d49b]
|
|
inc a
|
|
cp $b
|
|
jr z, .asm_30175
|
|
ld [$d49b], a
|
|
ld a, $1
|
|
ld [$d4ca], a
|
|
ret
|
|
.asm_30175
|
|
ld bc, $34f4
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8588)
|
|
ld hl, Func_8588
|
|
call BankSwitch
|
|
ld a, $2
|
|
ld [$d4ca], a
|
|
ret
|
|
|
|
Func_30188: ; 0x30188
|
|
ld a, [$d5ca]
|
|
and a
|
|
ret nz
|
|
ld a, [$d4ca]
|
|
and a
|
|
ret z
|
|
cp $1
|
|
jr nz, .asm_301a7
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5cc
|
|
ld de, $2974
|
|
call Func_32aa
|
|
jr .asm_301c9
|
|
.asm_301a7
|
|
ld bc, $1000
|
|
ld de, $0000
|
|
push bc
|
|
push de
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld hl, $d5d4
|
|
ld de, $29a6
|
|
call Func_32cc
|
|
pop de
|
|
pop bc
|
|
ld hl, $d5cc
|
|
ld de, $2986
|
|
call Func_32aa
|
|
.asm_301c9
|
|
xor a
|
|
ld [$d4ca], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$301ce,$301ec - $301ce
|
|
|
|
Func_301ec: ; 0x301ec
|
|
ld a, [$d54b]
|
|
and a
|
|
ret nz
|
|
ld a, $1
|
|
ld [$d54b], a
|
|
ld a, $2
|
|
ld [$d550], a
|
|
xor a
|
|
ld [$d54d], a
|
|
ld bc, $0030
|
|
ld [$ff8a], a
|
|
ld a, Bank(StartTimer)
|
|
ld hl, StartTimer
|
|
call BankSwitch
|
|
ld a, [wCurrentStage]
|
|
bit 0, a
|
|
jr z, .asm_3021b
|
|
ld a, [$d55a]
|
|
add $12
|
|
call Func_30256
|
|
.asm_3021b
|
|
ld a, [wCurrentStage]
|
|
rst $18
|
|
CallTable_3021f: ; 0x3021f
|
|
|
|
INCBIN "baserom.gbc",$3021f,$30253 - $3021f
|
|
|
|
Func_30253: ; 0x30253
|
|
ld a, [wCurrentMap]
|
|
; fall through
|
|
Func_30256: ; 0x30256
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
push bc
|
|
ld hl, PointerTable_3027a
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $c
|
|
call Func_10aa
|
|
pop bc
|
|
ld a, [hGameBoyColorFlag]
|
|
and a
|
|
ret z
|
|
ld hl, PointerTable_30ceb
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $c
|
|
call Func_10aa
|
|
ret
|
|
|
|
PointerTable_3027a: ; 0x3027a
|
|
dw Data_302b0
|
|
dw Data_302c1
|
|
dw Data_302d2
|
|
dw Data_302e3
|
|
dw Data_302f4
|
|
dw Data_30305
|
|
dw Data_30316
|
|
dw Data_30327
|
|
dw Data_30338
|
|
dw Data_30349
|
|
dw Data_3035a
|
|
dw Data_3036b
|
|
dw Data_3037c
|
|
dw Data_3038d
|
|
dw Data_3039e
|
|
dw Data_303af
|
|
dw Data_303c0
|
|
dw Data_303d1
|
|
dw Data_303e2
|
|
dw Data_303f3
|
|
dw Data_30404
|
|
dw Data_30415
|
|
dw Data_30426
|
|
dw Data_30437
|
|
dw Data_30448
|
|
dw Data_30459
|
|
dw Data_3046a
|
|
|
|
Data_302b0: ; 0x302b0
|
|
db $08, $7B, $44, $85, $44, $8F, $44, $99, $44, $A3, $44, $AD, $44, $B7, $44, $C1, $44
|
|
Data_302c1: ; 0x302c1
|
|
db $08, $CB, $44, $D5, $44, $DF, $44, $E9, $44, $F3, $44, $FD, $44, $07, $45, $11, $45
|
|
Data_302d2: ; 0x302d2
|
|
db $08, $1B, $45, $25, $45, $2F, $45, $39, $45, $43, $45, $4D, $45, $57, $45, $61, $45
|
|
Data_302e3: ; 0x302e3
|
|
db $08, $6B, $45, $75, $45, $7F, $45, $89, $45, $93, $45, $9D, $45, $A7, $45, $B1, $45
|
|
Data_302f4: ; 0x302f4
|
|
db $08, $BB, $45, $C5, $45, $CF, $45, $D9, $45, $E3, $45, $ED, $45, $F7, $45, $01, $46
|
|
Data_30305: ; 0x30305
|
|
db $08, $0B, $46, $15, $46, $1F, $46, $29, $46, $33, $46, $3D, $46, $47, $46, $51, $46
|
|
Data_30316: ; 0x30316
|
|
db $08, $5B, $46, $65, $46, $6F, $46, $79, $46, $83, $46, $8D, $46, $97, $46, $A1, $46
|
|
Data_30327: ; 0x30327
|
|
db $08, $AB, $46, $B5, $46, $BF, $46, $C9, $46, $D3, $46, $DD, $46, $E7, $46, $F1, $46
|
|
Data_30338: ; 0x30338
|
|
db $08, $FB, $46, $05, $47, $0F, $47, $19, $47, $23, $47, $2D, $47, $37, $47, $41, $47
|
|
Data_30349: ; 0x30349
|
|
db $08, $4B, $47, $55, $47, $5F, $47, $69, $47, $73, $47, $7D, $47, $87, $47, $91, $47
|
|
Data_3035a: ; 0x3035a
|
|
db $08, $9B, $47, $A5, $47, $AF, $47, $B9, $47, $C3, $47, $CD, $47, $D7, $47, $E1, $47
|
|
Data_3036b: ; 0x3036b
|
|
db $08, $EB, $47, $F5, $47, $FF, $47, $09, $48, $13, $48, $1D, $48, $27, $48, $31, $48
|
|
Data_3037c: ; 0x3037c
|
|
db $08, $3B, $48, $45, $48, $4F, $48, $59, $48, $63, $48, $6D, $48, $77, $48, $81, $48
|
|
Data_3038d: ; 0x3038d
|
|
db $08, $8B, $48, $95, $48, $9F, $48, $A9, $48, $B3, $48, $BD, $48, $C7, $48, $D1, $48
|
|
Data_3039e: ; 0x3039e
|
|
db $08, $DB, $48, $E5, $48, $EF, $48, $F9, $48, $03, $49, $0D, $49, $17, $49, $21, $49
|
|
Data_303af: ; 0x303af
|
|
db $08, $2B, $49, $35, $49, $3F, $49, $49, $49, $53, $49, $5D, $49, $67, $49, $71, $49
|
|
Data_303c0: ; 0x303c0
|
|
db $08, $7B, $49, $85, $49, $8F, $49, $99, $49, $A3, $49, $AD, $49, $B7, $49, $C1, $49
|
|
Data_303d1: ; 0x303d1
|
|
db $08, $CB, $49, $D5, $49, $DF, $49, $E9, $49, $F3, $49, $FD, $49, $07, $4A, $11, $4A
|
|
Data_303e2: ; 0x303e2
|
|
db $08, $1B, $4A, $25, $4A, $2F, $4A, $39, $4A, $43, $4A, $4D, $4A, $57, $4A, $61, $4A
|
|
Data_303f3: ; 0x303f3
|
|
db $08, $6B, $4A, $75, $4A, $7F, $4A, $89, $4A, $93, $4A, $9D, $4A, $A7, $4A, $B1, $4A
|
|
Data_30404: ; 0x30404
|
|
db $08, $BB, $4A, $C5, $4A, $CF, $4A, $D9, $4A, $E3, $4A, $ED, $4A, $F7, $4A, $01, $4B
|
|
Data_30415: ; 0x30415
|
|
db $08, $0B, $4B, $15, $4B, $1F, $4B, $29, $4B, $33, $4B, $3D, $4B, $47, $4B, $51, $4B
|
|
Data_30426: ; 0x30426
|
|
db $08, $5B, $4B, $65, $4B, $6F, $4B, $79, $4B, $83, $4B, $8D, $4B, $97, $4B, $A1, $4B
|
|
Data_30437: ; 0x30437
|
|
db $08, $AB, $4B, $B5, $4B, $BF, $4B, $C9, $4B, $D3, $4B, $DD, $4B, $E7, $4B, $F1, $4B
|
|
Data_30448: ; 0x30448
|
|
db $08, $FB, $4B, $05, $4C, $0F, $4C, $19, $4C, $23, $4C, $2D, $4C, $37, $4C, $41, $4C
|
|
Data_30459: ; 0x30459
|
|
db $08, $4B, $4C, $55, $4C, $5F, $4C, $69, $4C, $73, $4C, $7D, $4C, $87, $4C, $91, $4C
|
|
Data_3046a: ; 0x3046a
|
|
db $08, $9B, $4C, $A5, $4C, $AF, $4C, $B9, $4C, $C3, $4C, $CD, $4C, $D7, $4C, $E1, $4C
|
|
|
|
INCBIN "baserom.gbc",$3047b,$30ceb - $3047b
|
|
|
|
PointerTable_30ceb: ; 0x30ceb
|
|
dw Data_30d21
|
|
dw Data_30d26
|
|
dw Data_30d2b
|
|
dw Data_30d30
|
|
dw Data_30d35
|
|
dw Data_30d3a
|
|
dw Data_30d3f
|
|
dw Data_30d44
|
|
dw Data_30d49
|
|
dw Data_30d4e
|
|
dw Data_30d53
|
|
dw Data_30d58
|
|
dw Data_30d5d
|
|
dw Data_30d62
|
|
dw Data_30d67
|
|
dw Data_30d6c
|
|
dw Data_30d71
|
|
dw Data_30d76
|
|
dw Data_30d7b
|
|
dw Data_30d80
|
|
dw Data_30d85
|
|
dw Data_30d8a
|
|
dw Data_30d8f
|
|
dw Data_30d94
|
|
dw Data_30d99
|
|
dw Data_30d9e
|
|
dw Data_30da3
|
|
|
|
Data_30d21: ; 0x30d21
|
|
db $02, $A8, $4D, $B1, $4D
|
|
Data_30d26: ; 0x30d26
|
|
db $02, $CD, $4D, $D6, $4D
|
|
Data_30d2b: ; 0x30d2b
|
|
db $02, $F2, $4D, $FB, $4D
|
|
Data_30d30: ; 0x30d30
|
|
db $02, $17, $4E, $20, $4E
|
|
Data_30d35: ; 0x30d35
|
|
db $02, $3C, $4E, $45, $4E
|
|
Data_30d3a: ; 0x30d3a
|
|
db $02, $61, $4E, $6A, $4E
|
|
Data_30d3f: ; 0x30d3f
|
|
db $02, $86, $4E, $8F, $4E
|
|
Data_30d44: ; 0x30d44
|
|
db $02, $AB, $4E, $B4, $4E
|
|
Data_30d49: ; 0x30d49
|
|
db $02, $D0, $4E, $D9, $4E
|
|
Data_30d4e: ; 0x30d4e
|
|
db $02, $F5, $4E, $FE, $4E
|
|
Data_30d53: ; 0x30d53
|
|
db $02, $1A, $4F, $23, $4F
|
|
Data_30d58: ; 0x30d58
|
|
db $02, $3F, $4F, $48, $4F
|
|
Data_30d5d: ; 0x30d5d
|
|
db $02, $64, $4F, $6D, $4F
|
|
Data_30d62: ; 0x30d62
|
|
db $02, $89, $4F, $92, $4F
|
|
Data_30d67: ; 0x30d67
|
|
db $02, $AE, $4F, $B7, $4F
|
|
Data_30d6c: ; 0x30d6c
|
|
db $02, $D3, $4F, $DC, $4F
|
|
Data_30d71: ; 0x30d71
|
|
db $02, $F8, $4F, $01, $50
|
|
Data_30d76: ; 0x30d76
|
|
db $02, $1D, $50, $26, $50
|
|
Data_30d7b: ; 0x30d7b
|
|
db $02, $42, $50, $4B, $50
|
|
Data_30d80: ; 0x30d80
|
|
db $02, $67, $50, $70, $50
|
|
Data_30d85: ; 0x30d85
|
|
db $02, $8C, $50, $95, $50
|
|
Data_30d8a: ; 0x30d8a
|
|
db $02, $B1, $50, $BA, $50
|
|
Data_30d8f: ; 0x30d8f
|
|
db $02, $D6, $50, $DF, $50
|
|
Data_30d94: ; 0x30d94
|
|
db $02, $FB, $50, $04, $51
|
|
Data_30d99: ; 0x30d99
|
|
db $02, $20, $51, $29, $51
|
|
Data_30d9e: ; 0x30d9e
|
|
db $02, $45, $51, $4E, $51
|
|
Data_30da3: ; 0x30da3
|
|
db $02, $6A, $51, $73, $51
|
|
|
|
INCBIN "baserom.gbc",$30da8,$3118f - $30da8
|
|
|
|
Func_3118f: ; 0x3118f
|
|
push bc
|
|
call Func_30e8
|
|
call Func_30db
|
|
ld a, [wCurrentMap]
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $2ce3 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld e, a
|
|
ld a, [hli]
|
|
ld d, a
|
|
ld hl, $d5d4
|
|
call Func_32aa
|
|
pop de
|
|
ld hl, $d5cc
|
|
call Func_32aa
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$311b4,$33fff - $311b4
|
|
|
|
|
|
SECTION "bankd", ROMX, BANK[$d]
|
|
|
|
SlotOnPic: ; 0x34000
|
|
INCBIN "gfx/billboard/slot/slot_on.2bpp"
|
|
SlotOffPic: ; 0x34180
|
|
INCBIN "gfx/billboard/slot/slot_off.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$34300,$38000 - $34300 ; 0x34000
|
|
|
|
|
|
SECTION "banke", ROMX, BANK[$e]
|
|
|
|
INCBIN "baserom.gbc",$38000,$3c000 - $38000 ; 0x38000
|
|
|
|
|
|
SECTION "bankf", ROMX, BANK[$f]
|
|
|
|
INCBIN "baserom.gbc",$3c000,$3cca2 - $3c000
|
|
|
|
SongHeaderPointers0F: ; 0x3cca2
|
|
dw Music_Nothing0F
|
|
dw Music_BlueField
|
|
dw Music_CatchEmRed
|
|
dw Music_HurryUpRed
|
|
dw Music_Pokedex
|
|
dw Music_GastlyInTheGraveyard
|
|
dw Music_HaunterInTheGraveyard
|
|
dw Music_GengarInTheGraveyard
|
|
; 0x3ccb2
|
|
|
|
INCLUDE "audio/music/nothing0f.asm"
|
|
INCLUDE "audio/music/bluefield.asm"
|
|
INCLUDE "audio/music/catchemred.asm"
|
|
INCLUDE "audio/music/pokedex.asm"
|
|
INCLUDE "audio/music/hurryupred.asm"
|
|
INCLUDE "audio/music/gastlyinthegraveyard.asm"
|
|
INCLUDE "audio/music/haunterinthegraveyard.asm"
|
|
INCLUDE "audio/music/gengarinthegraveyard.asm"
|
|
|
|
INCBIN "baserom.gbc",$3e3ce,$40000 - $3e3ce
|
|
|
|
|
|
SECTION "bank10", ROMX, BANK[$10]
|
|
|
|
INCBIN "baserom.gbc",$40000,$40ca2 - $40000
|
|
|
|
SongHeaderPointers10: ; 0x40ca2
|
|
dw Music_Nothing10
|
|
dw Music_RedField
|
|
dw Music_CatchEmBlue
|
|
dw Music_HurryUpBlue
|
|
dw Music_HiScore
|
|
dw Music_GameOver
|
|
; 0x40cae
|
|
|
|
INCLUDE "audio/music/nothing10.asm"
|
|
INCLUDE "audio/music/redfield.asm"
|
|
INCLUDE "audio/music/catchemblue.asm"
|
|
INCLUDE "audio/music/hiscore.asm"
|
|
INCLUDE "audio/music/gameover.asm"
|
|
INCLUDE "audio/music/hurryupblue.asm"
|
|
|
|
INCBIN "baserom.gbc",$4255b,$44000 - $4255b
|
|
|
|
|
|
SECTION "bank11", ROMX, BANK[$11]
|
|
|
|
INCBIN "baserom.gbc",$44000,$44ca2 - $44000
|
|
|
|
SongHeaderPointers11: ; 0x44ca2
|
|
dw Music_Nothing11
|
|
dw Music_WhackTheDiglett
|
|
dw Music_WhackTheDugtrio
|
|
dw Music_SeelStage
|
|
dw Music_Title
|
|
; 0x44cac
|
|
|
|
INCLUDE "audio/music/nothing11.asm"
|
|
INCLUDE "audio/music/whackthediglett.asm"
|
|
INCLUDE "audio/music/whackthedugtrio.asm"
|
|
INCLUDE "audio/music/seelstage.asm"
|
|
INCLUDE "audio/music/title.asm"
|
|
|
|
INCBIN "baserom.gbc",$462d3,$48000 - $462d3
|
|
|
|
|
|
SECTION "bank12", ROMX, BANK[$12]
|
|
|
|
INCBIN "baserom.gbc",$48000,$48ca2 - $48000
|
|
|
|
SongHeaderPointers12: ; 0x48ca2
|
|
dw Music_Nothing12
|
|
dw Music_MewtwoStage
|
|
dw Music_Options
|
|
dw Music_FieldSelect
|
|
dw Music_MeowthStage
|
|
; 0x48cac
|
|
|
|
INCLUDE "audio/music/nothing12.asm"
|
|
INCLUDE "audio/music/mewtwostage.asm"
|
|
INCLUDE "audio/music/options.asm"
|
|
INCLUDE "audio/music/fieldselect.asm"
|
|
INCLUDE "audio/music/meowthstage.asm"
|
|
|
|
INCBIN "baserom.gbc",$49c04,$4c000 - $49c04
|
|
|
|
|
|
SECTION "bank13", ROMX, BANK[$13]
|
|
|
|
INCBIN "baserom.gbc",$4c000,$4cca2 - $4c000
|
|
|
|
SongHeaderPointers13: ; 0x4cca2
|
|
dw Music_Nothing13
|
|
dw Music_EndCredits
|
|
dw Music_NameEntry
|
|
; 0x4cca8
|
|
|
|
INCLUDE "audio/music/nothing13.asm"
|
|
INCLUDE "audio/music/endcredits.asm"
|
|
INCLUDE "audio/music/nameentry.asm"
|
|
|
|
INCBIN "baserom.gbc",$4def4,$50000 - $4def4
|
|
|
|
|
|
SECTION "bank14", ROMX, BANK[$14]
|
|
|
|
Func_50000: ; 0x50000
|
|
sla a
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, $4076 ; todo
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
push hl
|
|
di
|
|
ld b, $4
|
|
.asm_50010
|
|
ld a, [$ff44]
|
|
and a
|
|
jr nz, .asm_50010
|
|
dec b
|
|
jr nz, .asm_50010
|
|
xor a
|
|
ld [$ff24], a
|
|
ld [$ff25], a
|
|
ld a, $80
|
|
ld [$ff26], a
|
|
xor a
|
|
ld [$ff1a], a
|
|
ld hl, $d84b
|
|
ld c, $30
|
|
ld b, $10
|
|
.asm_5002b
|
|
ld a, [$ff00+c]
|
|
ld [hli], a
|
|
ld a, $ff
|
|
ld [$ff00+c], a
|
|
inc c
|
|
dec b
|
|
jr nz, .asm_5002b
|
|
ld a, $80
|
|
ld [$ff1a], a
|
|
ld a, $ff
|
|
ld [$ff1b], a
|
|
ld a, $20
|
|
ld [$ff1c], a
|
|
ld a, $ff
|
|
ld [$ff1d], a
|
|
ld a, $87
|
|
ld [$ff1e], a
|
|
ld a, $77
|
|
ld [$ff24], a
|
|
ld a, $44
|
|
ld [$ff25], a
|
|
pop hl
|
|
call Func_51f56
|
|
xor a
|
|
ld [$ff24], a
|
|
ld [$ff25], a
|
|
ld [$ff26], a
|
|
ld hl, $d84b
|
|
ld c, $30
|
|
ld b, $10
|
|
.asm_50062
|
|
ld a, [hli]
|
|
ld [$ff00+c], a
|
|
inc c
|
|
dec b
|
|
jr nz, .asm_50062
|
|
ld a, $77
|
|
ld [$ff24], a
|
|
ld a, $ff
|
|
ld [$ff25], a
|
|
ld a, $80
|
|
ld [$ff26], a
|
|
ei
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$50076,$51f56 - $50076
|
|
|
|
Func_51f56: ; 0x51f56
|
|
ld a, [hli]
|
|
ld c, a
|
|
ld a, [hli]
|
|
ld b, a
|
|
.asm_51f5a
|
|
ld a, [hli]
|
|
ld d, a
|
|
ld a, $3
|
|
.asm_51f5e
|
|
dec a
|
|
jr nz, .asm_51f5e
|
|
call Func_51f94
|
|
call Func_51fa0
|
|
call Func_51f94
|
|
call Func_51fa0
|
|
call Func_51f94
|
|
call Func_51fa0
|
|
call Func_51f94
|
|
call Func_51fa0
|
|
call Func_51f94
|
|
call Func_51fa0
|
|
call Func_51f94
|
|
call Func_51fa0
|
|
call Func_51f94
|
|
call Func_51fa0
|
|
call Func_51f94
|
|
dec bc
|
|
ld a, c
|
|
or b
|
|
jr nz, .asm_51f5a
|
|
ret
|
|
|
|
Func_51f94: ; 0x51f94
|
|
ld a, d
|
|
and $80
|
|
srl a
|
|
srl a
|
|
ld [$ff1c], a
|
|
sla d
|
|
ret
|
|
|
|
Func_51fa0: ; 0x51fa0
|
|
ld a, $3
|
|
.asm_51fa2
|
|
dec a
|
|
jr nz, .asm_51fa2
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$51fa6,$54000 - $51fa6
|
|
|
|
|
|
SECTION "bank15", ROMX, BANK[$15]
|
|
|
|
INCBIN "baserom.gbc",$54000,$58000 - $54000 ; 0x54000
|
|
|
|
|
|
SECTION "bank16", ROMX, BANK[$16]
|
|
|
|
BallSaver30SecondsOnPic: ; 0x58000
|
|
INCBIN "gfx/billboard/slot/30secondballsaver_on.2bpp"
|
|
BallSaver30SecondsOffPic: ; 0x58180
|
|
INCBIN "gfx/billboard/slot/30secondballsaver_off.2bpp"
|
|
BallSaver60SecondsOnPic: ; 0x58300
|
|
INCBIN "gfx/billboard/slot/60secondballsaver_on.2bpp"
|
|
BallSaver60SecondsOffPic: ; 0x580480
|
|
INCBIN "gfx/billboard/slot/60secondballsaver_off.2bpp"
|
|
BallSaver90SecondsOnPic: ; 0x58600
|
|
INCBIN "gfx/billboard/slot/90secondballsaver_on.2bpp"
|
|
BallSaver90SecondsOffPic: ; 0x58780
|
|
INCBIN "gfx/billboard/slot/90secondballsaver_off.2bpp"
|
|
PikachuSaverOnPic: ; 0x58900
|
|
INCBIN "gfx/billboard/slot/pikachusaver_on.2bpp"
|
|
PikachuSaverOffPic: ; 0x58a80
|
|
INCBIN "gfx/billboard/slot/pikachusaver_off.2bpp"
|
|
ExtraBallOnPic: ; 0x58c00
|
|
INCBIN "gfx/billboard/slot/extraball_on.2bpp"
|
|
ExtraBallOffPic: ; 0x58d80
|
|
INCBIN "gfx/billboard/slot/extraball_off.2bpp"
|
|
SmallRewardOnPic: ; 0x58f00
|
|
INCBIN "gfx/billboard/slot/small_on.2bpp"
|
|
SmallRewardOffPic: ; 0x59080
|
|
INCBIN "gfx/billboard/slot/small_off.2bpp"
|
|
BigRewardOnPic: ; 0x59200
|
|
INCBIN "gfx/billboard/slot/big_on.2bpp"
|
|
BigRewardOffPic: ; 0x59380
|
|
INCBIN "gfx/billboard/slot/big_off.2bpp"
|
|
CatchEmModeOnPic: ; 0x59500
|
|
INCBIN "gfx/billboard/slot/catchem_on.2bpp"
|
|
CatchEmModeOffPic: ; 0x59680
|
|
INCBIN "gfx/billboard/slot/catchem_off.2bpp"
|
|
EvolutionModeOnPic: ; 0x59800
|
|
INCBIN "gfx/billboard/slot/evolution_on.2bpp"
|
|
EvolutionModeOffPic: ; 0x59980
|
|
INCBIN "gfx/billboard/slot/evolution_off.2bpp"
|
|
GreatBallOnPic: ; 0x59b00
|
|
INCBIN "gfx/billboard/slot/greatball_on.2bpp"
|
|
GreatBallOffPic: ; 0x59c80
|
|
INCBIN "gfx/billboard/slot/greatball_off.2bpp"
|
|
UltraBallOnPic: ; 0x59e00
|
|
INCBIN "gfx/billboard/slot/ultraball_on.2bpp"
|
|
UltraBallOffPic: ; 0x59f80
|
|
INCBIN "gfx/billboard/slot/ultraball_off.2bpp"
|
|
MasterBallOnPic: ; 0x5a100
|
|
INCBIN "gfx/billboard/slot/masterball_on.2bpp"
|
|
MasterBallOffPic: ; 0x5a280
|
|
INCBIN "gfx/billboard/slot/masterball_off.2bpp"
|
|
BonusMultiplierOnPic: ; 0x5a400
|
|
INCBIN "gfx/billboard/slot/bonusmultiplier_on.2bpp"
|
|
BonusMultiplierOffPic: ; 0x5a580
|
|
INCBIN "gfx/billboard/slot/bonusmultiplier_off.2bpp"
|
|
HurryUpOnPic: ; 0x5a700
|
|
INCBIN "gfx/billboard/hurryup_on.2bpp"
|
|
HurryUpOffPic: ; 0x5a880
|
|
INCBIN "gfx/billboard/hurryup_off.2bpp"
|
|
HurryUp2OnPic: ; 0x5aa00
|
|
INCBIN "gfx/billboard/hurryup2_on.2bpp"
|
|
HurryUp2OffPic: ; 0x5ab80
|
|
INCBIN "gfx/billboard/hurryup2_off.2bpp"
|
|
GoToNextOnPic: ; 0x5ad00
|
|
INCBIN "gfx/billboard/gotonext_on.2bpp"
|
|
GoToNextOffPic: ; 0x5ae80
|
|
INCBIN "gfx/billboard/gotonext_off.2bpp"
|
|
GoToGengarBonusOnPic: ; 0x5b000
|
|
INCBIN "gfx/billboard/bonus_stages/gotogengarbonus_on.2bpp"
|
|
GoToGengarBonusOffPic: ; 0x5b180
|
|
INCBIN "gfx/billboard/bonus_stages/gotogengarbonus_off.2bpp"
|
|
GoToMewtwoBonusOnPic: ; 0x5b300
|
|
INCBIN "gfx/billboard/bonus_stages/gotomewtwobonus_on.2bpp"
|
|
GoToMewtwoBonusOffPic: ; 0x5b480
|
|
INCBIN "gfx/billboard/bonus_stages/gotomewtwobonus_off.2bpp"
|
|
GoToMeowthBonusOnPic: ; 0x5b600
|
|
INCBIN "gfx/billboard/bonus_stages/gotomeowthbonus_on.2bpp"
|
|
GoToMeowthBonusOffPic: ; 0x5b780
|
|
INCBIN "gfx/billboard/bonus_stages/gotomeowthbonus_off.2bpp"
|
|
GoToDiglettBonusOnPic: ; 0x5b900
|
|
INCBIN "gfx/billboard/bonus_stages/gotodiglettbonus_on.2bpp"
|
|
GoToDiglettBonusOffPic: ; 0x5ba80
|
|
INCBIN "gfx/billboard/bonus_stages/gotodiglettbonus_off.2bpp"
|
|
GoToSeelBonusOnPic: ; 0x5bc00
|
|
INCBIN "gfx/billboard/bonus_stages/gotoseelbonus_on.2bpp"
|
|
GoToSeelBonusOffPic: ; 0x5bd80
|
|
INCBIN "gfx/billboard/bonus_stages/gotoseelbonus_off.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$5bf00,$5c000 - $5bf00 ; 0x5bf00
|
|
|
|
|
|
SECTION "bank17", ROMX, BANK[$17]
|
|
|
|
SmallReward100PointsOnPic: ; 0x5c000
|
|
INCBIN "gfx/billboard/slot/100points_on.2bpp"
|
|
SmallReward100PointsOffPic: ; 0x5c180
|
|
INCBIN "gfx/billboard/slot/100points_off.2bpp"
|
|
SmallReward200PointsOnPic: ; 0x5c300
|
|
INCBIN "gfx/billboard/slot/200points_on.2bpp"
|
|
SmallReward200PointsOffPic: ; 0x54800
|
|
INCBIN "gfx/billboard/slot/200points_off.2bpp"
|
|
SmallReward300PointsOnPic: ; 0x5c600
|
|
INCBIN "gfx/billboard/slot/300points_on.2bpp"
|
|
SmallReward300PointsOffPic: ; 0x5c780
|
|
INCBIN "gfx/billboard/slot/300points_off.2bpp"
|
|
SmallReward400PointsOnPic: ; 0x5c900
|
|
INCBIN "gfx/billboard/slot/400points_on.2bpp"
|
|
SmallReward400PointsOffPic: ; 0x5ca80
|
|
INCBIN "gfx/billboard/slot/400points_off.2bpp"
|
|
SmallReward500PointsOnPic: ; 0x5cc00
|
|
INCBIN "gfx/billboard/slot/500points_on.2bpp"
|
|
SmallReward500PointsOffPic: ; 0x5cd80
|
|
INCBIN "gfx/billboard/slot/500points_off.2bpp"
|
|
SmallReward600PointsOnPic: ; 0x5cf00
|
|
INCBIN "gfx/billboard/slot/600points_on.2bpp"
|
|
SmallReward600PointsOffPic: ; 0x5d080
|
|
INCBIN "gfx/billboard/slot/600points_off.2bpp"
|
|
SmallReward700PointsOnPic: ; 0x5d200
|
|
INCBIN "gfx/billboard/slot/700points_on.2bpp"
|
|
SmallReward700PointsOffPic: ; 0x5d380
|
|
INCBIN "gfx/billboard/slot/700points_off.2bpp"
|
|
SmallReward800PointsOnPic: ; 0x5d500
|
|
INCBIN "gfx/billboard/slot/800points_on.2bpp"
|
|
SmallReward800PointsOffPic: ; 0x5d680
|
|
INCBIN "gfx/billboard/slot/800points_off.2bpp"
|
|
SmallReward900PointsOnPic: ; 0x5d800
|
|
INCBIN "gfx/billboard/slot/900points_on.2bpp"
|
|
SmallReward900PointsOffPic: ; 0x5d980
|
|
INCBIN "gfx/billboard/slot/900points_off.2bpp"
|
|
BigReward1000000PointsOnPic: ; 0x5db00
|
|
INCBIN "gfx/billboard/slot/1000000points_on.2bpp"
|
|
BigReward1000000PointsOffPic: ; 0x5dc80
|
|
INCBIN "gfx/billboard/slot/1000000points_off.2bpp"
|
|
BigReward2000000PointsOnPic: ; 0x5de00
|
|
INCBIN "gfx/billboard/slot/2000000points_on.2bpp"
|
|
BigReward2000000PointsOffPic: ; 0x5df80
|
|
INCBIN "gfx/billboard/slot/2000000points_off.2bpp"
|
|
BigReward3000000PointsOnPic: ; 0x5e100
|
|
INCBIN "gfx/billboard/slot/3000000points_on.2bpp"
|
|
BigReward3000000PointsOffPic: ; 0x5e280
|
|
INCBIN "gfx/billboard/slot/3000000points_off.2bpp"
|
|
BigReward4000000PointsOnPic: ; 0x5e400
|
|
INCBIN "gfx/billboard/slot/4000000points_on.2bpp"
|
|
BigReward4000000PointsOffPic: ; 0x5e580
|
|
INCBIN "gfx/billboard/slot/4000000points_off.2bpp"
|
|
BigReward5000000PointsOnPic: ; 0x5e700
|
|
INCBIN "gfx/billboard/slot/5000000points_on.2bpp"
|
|
BigReward5000000PointsOffPic: ; 0x5e880
|
|
INCBIN "gfx/billboard/slot/5000000points_off.2bpp"
|
|
BigReward6000000PointsOnPic: ; 0x5ea00
|
|
INCBIN "gfx/billboard/slot/6000000points_on.2bpp"
|
|
BigReward6000000PointsOffPic: ; 0x5eb80
|
|
INCBIN "gfx/billboard/slot/6000000points_off.2bpp"
|
|
BigReward7000000PointsOnPic: ; 0x5ed00
|
|
INCBIN "gfx/billboard/slot/7000000points_on.2bpp"
|
|
BigReward7000000PointsOffPic: ; 0x5ee80
|
|
INCBIN "gfx/billboard/slot/7000000points_off.2bpp"
|
|
BigReward8000000PointsOnPic: ; 0x5f000
|
|
INCBIN "gfx/billboard/slot/8000000points_on.2bpp"
|
|
BigReward8000000PointsOffPic: ; 0x5f180
|
|
INCBIN "gfx/billboard/slot/8000000points_off.2bpp"
|
|
BigReward9000000PointsOnPic: ; 0x5f300
|
|
INCBIN "gfx/billboard/slot/9000000points_on.2bpp"
|
|
BigReward9000000PointsOffPic: ; 0x5f480
|
|
INCBIN "gfx/billboard/slot/9000000points_off.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$5f600,$60000 - $5f600 ; 0x5f600
|
|
|
|
|
|
SECTION "bank18", ROMX, BANK[$18]
|
|
|
|
VenomothPic: ; 0x60000
|
|
INCBIN "gfx/billboard/mon_pics/venomoth.2bpp"
|
|
VenomothSilhouettePic: ; 0x60180
|
|
INCBIN "gfx/billboard/mon_silhouettes/venomoth.2bpp"
|
|
DiglettPic: ; 0x60300
|
|
INCBIN "gfx/billboard/mon_pics/diglett.2bpp"
|
|
DiglettSilhouettePic: ; 0x60480
|
|
INCBIN "gfx/billboard/mon_silhouettes/diglett.2bpp"
|
|
DugtrioPic: ; 0x60600
|
|
INCBIN "gfx/billboard/mon_pics/dugtrio.2bpp"
|
|
DugtrioSilhouettePic: ; 0x60780
|
|
INCBIN "gfx/billboard/mon_silhouettes/dugtrio.2bpp"
|
|
MeowthPic: ; 0x60900
|
|
INCBIN "gfx/billboard/mon_pics/meowth.2bpp"
|
|
MeowthSilhouettePic: ; 0x60a80
|
|
INCBIN "gfx/billboard/mon_silhouettes/meowth.2bpp"
|
|
PersianPic: ; 0x60c00
|
|
INCBIN "gfx/billboard/mon_pics/persian.2bpp"
|
|
PersianSilhouettePic: ; 0x60d80
|
|
INCBIN "gfx/billboard/mon_silhouettes/persian.2bpp"
|
|
PsyduckPic: ; 0x60f00
|
|
INCBIN "gfx/billboard/mon_pics/psyduck.2bpp"
|
|
PsyduckSilhouettePic: ; 0x61080
|
|
INCBIN "gfx/billboard/mon_silhouettes/psyduck.2bpp"
|
|
GolduckPic: ; 0x61200
|
|
INCBIN "gfx/billboard/mon_pics/golduck.2bpp"
|
|
GolduckSilhouettePic: ; 0x61380
|
|
INCBIN "gfx/billboard/mon_silhouettes/golduck.2bpp"
|
|
MankeyPic: ; 0x61500
|
|
INCBIN "gfx/billboard/mon_pics/mankey.2bpp"
|
|
MankeySilhouettePic: ; 0x61680
|
|
INCBIN "gfx/billboard/mon_silhouettes/mankey.2bpp"
|
|
PrimeapePic: ; 0x61800
|
|
INCBIN "gfx/billboard/mon_pics/primeape.2bpp"
|
|
PrimeapeSilhouettePic: ; 0x61980
|
|
INCBIN "gfx/billboard/mon_silhouettes/primeape.2bpp"
|
|
GrowlithePic: ; 0x61b00
|
|
INCBIN "gfx/billboard/mon_pics/growlithe.2bpp"
|
|
GrowlitheSilhouettePic: ; 0x61c80
|
|
INCBIN "gfx/billboard/mon_silhouettes/growlithe.2bpp"
|
|
ArcaninePic: ; 0x61e00
|
|
INCBIN "gfx/billboard/mon_pics/arcanine.2bpp"
|
|
ArcanineSilhouettePic: ; 0x61f80
|
|
INCBIN "gfx/billboard/mon_silhouettes/arcanine.2bpp"
|
|
PoliwagPic: ; 0x62100
|
|
INCBIN "gfx/billboard/mon_pics/poliwag.2bpp"
|
|
PoliwagSilhouettePic: ; 0x62280
|
|
INCBIN "gfx/billboard/mon_silhouettes/poliwag.2bpp"
|
|
PoliwhirlPic: ; 0x62400
|
|
INCBIN "gfx/billboard/mon_pics/poliwhirl.2bpp"
|
|
PoliwhirlSilhouettePic: ; 0x62580
|
|
INCBIN "gfx/billboard/mon_silhouettes/poliwhirl.2bpp"
|
|
PoliwrathPic: ; 0x62700
|
|
INCBIN "gfx/billboard/mon_pics/poliwrath.2bpp"
|
|
PoliwrathSilhouettePic: ; 0x62880
|
|
INCBIN "gfx/billboard/mon_silhouettes/poliwrath.2bpp"
|
|
AbraPic: ; 0x62a00
|
|
INCBIN "gfx/billboard/mon_pics/abra.2bpp"
|
|
AbraSilhouettePic: ; 0x62b80
|
|
INCBIN "gfx/billboard/mon_silhouettes/abra.2bpp"
|
|
KadabraPic: ; 0x62d00
|
|
INCBIN "gfx/billboard/mon_pics/kadabra.2bpp"
|
|
KadabraSilhouettePic: ; 0x62e80
|
|
INCBIN "gfx/billboard/mon_silhouettes/kadabra.2bpp"
|
|
|
|
StageRedFieldTopStatusBarSymbolsGfx_GameBoy: ; 0x63000
|
|
INCBIN "gfx/stage/red_top/status_bar_symbols_gameboy.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$63100,$632a0 - $63100
|
|
|
|
StageRedFieldTopBaseGameBoyGfx: ; 0x632a0
|
|
INCBIN "gfx/stage/red_top/red_top_base_gameboy.2bpp"
|
|
|
|
|
|
SECTION "bank19", ROMX, BANK[$19]
|
|
|
|
NidorinoPic: ; 0x64000
|
|
INCBIN "gfx/billboard/mon_pics/nidorino.2bpp"
|
|
NidorinoSilhouettePic: ; 0x64180
|
|
INCBIN "gfx/billboard/mon_silhouettes/nidorino.2bpp"
|
|
NidokingPic: ; 0x64300
|
|
INCBIN "gfx/billboard/mon_pics/nidoking.2bpp"
|
|
NidokingSilhouettePic: ; 0x64480
|
|
INCBIN "gfx/billboard/mon_silhouettes/nidoking.2bpp"
|
|
ClefairyPic: ; 0x64600
|
|
INCBIN "gfx/billboard/mon_pics/clefairy.2bpp"
|
|
ClefairySilhouettePic: ; 0x64780
|
|
INCBIN "gfx/billboard/mon_silhouettes/clefairy.2bpp"
|
|
ClefablePic: ; 0x64900
|
|
INCBIN "gfx/billboard/mon_pics/clefable.2bpp"
|
|
ClefableSilhouettePic: ; 0x64a80
|
|
INCBIN "gfx/billboard/mon_silhouettes/clefable.2bpp"
|
|
VulpixPic: ; 0x64c00
|
|
INCBIN "gfx/billboard/mon_pics/vulpix.2bpp"
|
|
VulpixSilhouettePic: ; 0x64d80
|
|
INCBIN "gfx/billboard/mon_silhouettes/vulpix.2bpp"
|
|
NinetalesPic: ; 0x64f00
|
|
INCBIN "gfx/billboard/mon_pics/ninetales.2bpp"
|
|
NinetalesSilhouettePic: ; 0x65080
|
|
INCBIN "gfx/billboard/mon_silhouettes/ninetales.2bpp"
|
|
JigglypuffPic: ; 0x65200
|
|
INCBIN "gfx/billboard/mon_pics/jigglypuff.2bpp"
|
|
JigglypuffSilhouettePic: ; 0x65380
|
|
INCBIN "gfx/billboard/mon_silhouettes/jigglypuff.2bpp"
|
|
WigglytuffPic: ; 0x65500
|
|
INCBIN "gfx/billboard/mon_pics/wigglytuff.2bpp"
|
|
WigglytuffSilhouettePic: ; 0x65680
|
|
INCBIN "gfx/billboard/mon_silhouettes/wigglytuff.2bpp"
|
|
ZubatPic: ; 0x65800
|
|
INCBIN "gfx/billboard/mon_pics/zubat.2bpp"
|
|
ZubatSilhouettePic: ; 0x65980
|
|
INCBIN "gfx/billboard/mon_silhouettes/zubat.2bpp"
|
|
GolbatPic: ; 0x65b00
|
|
INCBIN "gfx/billboard/mon_pics/golbat.2bpp"
|
|
GolbatSilhouettePic: ; 0x65c80
|
|
INCBIN "gfx/billboard/mon_silhouettes/golbat.2bpp"
|
|
OddishPic: ; 0x65e00
|
|
INCBIN "gfx/billboard/mon_pics/oddish.2bpp"
|
|
OddishSilhouettePic: ; 0x65f80
|
|
INCBIN "gfx/billboard/mon_silhouettes/oddish.2bpp"
|
|
GloomPic: ; 0x66100
|
|
INCBIN "gfx/billboard/mon_pics/gloom.2bpp"
|
|
GloomSilhouettePic: ; 0x66280
|
|
INCBIN "gfx/billboard/mon_silhouettes/gloom.2bpp"
|
|
VileplumePic: ; 0x66400
|
|
INCBIN "gfx/billboard/mon_pics/vileplume.2bpp"
|
|
VileplumeSilhouettePic: ; 0x66580
|
|
INCBIN "gfx/billboard/mon_silhouettes/vileplume.2bpp"
|
|
ParasPic: ; 0x66700
|
|
INCBIN "gfx/billboard/mon_pics/paras.2bpp"
|
|
ParasSilhouettePic: ; 0x66880
|
|
INCBIN "gfx/billboard/mon_silhouettes/paras.2bpp"
|
|
ParasectPic: ; 0x66a00
|
|
INCBIN "gfx/billboard/mon_pics/parasect.2bpp"
|
|
ParasectSilhouettePic: ; 0x66b80
|
|
INCBIN "gfx/billboard/mon_silhouettes/parasect.2bpp"
|
|
VenonatPic: ; 0x66d00
|
|
INCBIN "gfx/billboard/mon_pics/venonat.2bpp"
|
|
VenonatSilhouettePic: ; 0x66e80
|
|
INCBIN "gfx/billboard/mon_silhouettes/venonat.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$67000,$68000 - $67000 ; 0x67000
|
|
|
|
|
|
SECTION "bank1a", ROMX, BANK[$1a]
|
|
|
|
ChanseyPic: ; 0x68000
|
|
INCBIN "gfx/billboard/mon_pics/chansey.2bpp"
|
|
ChanseySilhouettePic: ; 0x68180
|
|
INCBIN "gfx/billboard/mon_silhouettes/chansey.2bpp"
|
|
TangelaPic: ; 0x68300
|
|
INCBIN "gfx/billboard/mon_pics/tangela.2bpp"
|
|
TangelaSilhouettePic: ; 0x68480
|
|
INCBIN "gfx/billboard/mon_silhouettes/tangela.2bpp"
|
|
KangaskhanPic: ; 0x68600
|
|
INCBIN "gfx/billboard/mon_pics/kangaskhan.2bpp"
|
|
KangaskhanSilhouettePic: ; 0x68780
|
|
INCBIN "gfx/billboard/mon_silhouettes/kangaskhan.2bpp"
|
|
HorseaPic: ; 0x68900
|
|
INCBIN "gfx/billboard/mon_pics/horsea.2bpp"
|
|
HorseaSilhouettePic: ; 0x68a80
|
|
INCBIN "gfx/billboard/mon_silhouettes/horsea.2bpp"
|
|
SeadraPic: ; 0x68c00
|
|
INCBIN "gfx/billboard/mon_pics/seadra.2bpp"
|
|
SeadraSilhouettePic: ; 0x68d80
|
|
INCBIN "gfx/billboard/mon_silhouettes/seadra.2bpp"
|
|
GoldeenPic: ; 0x68f00
|
|
INCBIN "gfx/billboard/mon_pics/goldeen.2bpp"
|
|
GoldeenSilhouettePic: ; 0x69080
|
|
INCBIN "gfx/billboard/mon_silhouettes/goldeen.2bpp"
|
|
SeakingPic: ; 0x69200
|
|
INCBIN "gfx/billboard/mon_pics/seaking.2bpp"
|
|
SeakingSilhouettePic: ; 0x69380
|
|
INCBIN "gfx/billboard/mon_silhouettes/seaking.2bpp"
|
|
StaryuPic: ; 0x69500
|
|
INCBIN "gfx/billboard/mon_pics/staryu.2bpp"
|
|
StaryuSilhouettePic: ; 0x69680
|
|
INCBIN "gfx/billboard/mon_silhouettes/staryu.2bpp"
|
|
StarmiePic: ; 0x69800
|
|
INCBIN "gfx/billboard/mon_pics/starmie.2bpp"
|
|
StarmieSilhouettePic: ; 0x69980
|
|
INCBIN "gfx/billboard/mon_silhouettes/starmie.2bpp"
|
|
Mr_MimePic: ; 0x69b00
|
|
INCBIN "gfx/billboard/mon_pics/mr_mime.2bpp"
|
|
Mr_MimeSilhouettePic: ; 0x69c80
|
|
INCBIN "gfx/billboard/mon_silhouettes/mr_mime.2bpp"
|
|
ScytherPic: ; 0x69e00
|
|
INCBIN "gfx/billboard/mon_pics/scyther.2bpp"
|
|
ScytherSilhouettePic: ; 0x69f80
|
|
INCBIN "gfx/billboard/mon_silhouettes/scyther.2bpp"
|
|
JynxPic: ; 0x6a100
|
|
INCBIN "gfx/billboard/mon_pics/jynx.2bpp"
|
|
JynxSilhouettePic: ; 0x6a280
|
|
INCBIN "gfx/billboard/mon_silhouettes/jynx.2bpp"
|
|
ElectabuzzPic: ; 0x6a400
|
|
INCBIN "gfx/billboard/mon_pics/electabuzz.2bpp"
|
|
ElectabuzzSilhouettePic: ; 0x6a580
|
|
INCBIN "gfx/billboard/mon_silhouettes/electabuzz.2bpp"
|
|
MagmarPic: ; 0x6a700
|
|
INCBIN "gfx/billboard/mon_pics/magmar.2bpp"
|
|
MagmarSilhouettePic: ; 0x6a880
|
|
INCBIN "gfx/billboard/mon_silhouettes/magmar.2bpp"
|
|
PinsirPic: ; 0x6aa00
|
|
INCBIN "gfx/billboard/mon_pics/pinsir.2bpp"
|
|
PinsirSilhouettePic: ; 0x6ab80
|
|
INCBIN "gfx/billboard/mon_silhouettes/pinsir.2bpp"
|
|
TaurosPic: ; 0x6ad00
|
|
INCBIN "gfx/billboard/mon_pics/tauros.2bpp"
|
|
TaurosSilhouettePic: ; 0x6ae80
|
|
INCBIN "gfx/billboard/mon_silhouettes/tauros.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$6b000,$6c000 - $6b000 ; 0x6b000
|
|
|
|
|
|
SECTION "bank1b", ROMX, BANK[$1b]
|
|
|
|
MagikarpPic: ; 0x6c000
|
|
INCBIN "gfx/billboard/mon_pics/magikarp.2bpp"
|
|
MagikarpSilhouettePic: ; 0x6c180
|
|
INCBIN "gfx/billboard/mon_silhouettes/magikarp.2bpp"
|
|
GyaradosPic: ; 0x6c300
|
|
INCBIN "gfx/billboard/mon_pics/gyarados.2bpp"
|
|
GyaradosSilhouettePic: ; 0x6c480
|
|
INCBIN "gfx/billboard/mon_silhouettes/gyarados.2bpp"
|
|
LaprasPic: ; 0x6c600
|
|
INCBIN "gfx/billboard/mon_pics/lapras.2bpp"
|
|
LaprasSilhouettePic: ; 0x6c780
|
|
INCBIN "gfx/billboard/mon_silhouettes/lapras.2bpp"
|
|
DittoPic: ; 0x6c900
|
|
INCBIN "gfx/billboard/mon_pics/ditto.2bpp"
|
|
DittoSilhouettePic: ; 0x6ca80
|
|
INCBIN "gfx/billboard/mon_silhouettes/ditto.2bpp"
|
|
EeveePic: ; 0x6cc00
|
|
INCBIN "gfx/billboard/mon_pics/eevee.2bpp"
|
|
EeveeSilhouettePic: ; 0x6cd80
|
|
INCBIN "gfx/billboard/mon_silhouettes/eevee.2bpp"
|
|
VaporeonPic: ; 0x6cf00
|
|
INCBIN "gfx/billboard/mon_pics/vaporeon.2bpp"
|
|
VaporeonSilhouettePic: ; 0x6d080
|
|
INCBIN "gfx/billboard/mon_silhouettes/vaporeon.2bpp"
|
|
JolteonPic: ; 0x6d200
|
|
INCBIN "gfx/billboard/mon_pics/jolteon.2bpp"
|
|
JolteonSilhouettePic: ; 0x6d380
|
|
INCBIN "gfx/billboard/mon_silhouettes/jolteon.2bpp"
|
|
FlareonPic: ; 0x6d500
|
|
INCBIN "gfx/billboard/mon_pics/flareon.2bpp"
|
|
FlareonSilhouettePic: ; 0x6d680
|
|
INCBIN "gfx/billboard/mon_silhouettes/flareon.2bpp"
|
|
PorygonPic: ; 0x6d800
|
|
INCBIN "gfx/billboard/mon_pics/porygon.2bpp"
|
|
PorygonSilhouettePic: ; 0x6d980
|
|
INCBIN "gfx/billboard/mon_silhouettes/porygon.2bpp"
|
|
OmanytePic: ; 0x6db00
|
|
INCBIN "gfx/billboard/mon_pics/omanyte.2bpp"
|
|
OmanyteSilhouettePic: ; 0x6dc80
|
|
INCBIN "gfx/billboard/mon_silhouettes/omanyte.2bpp"
|
|
OmastarPic: ; 0x6de00
|
|
INCBIN "gfx/billboard/mon_pics/omastar.2bpp"
|
|
OmastarSilhouettePic: ; 0x6df80
|
|
INCBIN "gfx/billboard/mon_silhouettes/omastar.2bpp"
|
|
KabutoPic: ; 0x6e100
|
|
INCBIN "gfx/billboard/mon_pics/kabuto.2bpp"
|
|
KabutoSilhouettePic: ; 0x6e280
|
|
INCBIN "gfx/billboard/mon_silhouettes/kabuto.2bpp"
|
|
KabutopsPic: ; 0x6e400
|
|
INCBIN "gfx/billboard/mon_pics/kabutops.2bpp"
|
|
KabutopsSilhouettePic: ; 0x6e580
|
|
INCBIN "gfx/billboard/mon_silhouettes/kabutops.2bpp"
|
|
AerodactylPic: ; 0x6e700
|
|
INCBIN "gfx/billboard/mon_pics/aerodactyl.2bpp"
|
|
AerodactylSilhouettePic: ; 0x6e880
|
|
INCBIN "gfx/billboard/mon_silhouettes/aerodactyl.2bpp"
|
|
SnorlaxPic: ; 0x6ea00
|
|
INCBIN "gfx/billboard/mon_pics/snorlax.2bpp"
|
|
SnorlaxSilhouettePic: ; 0x6eb80
|
|
INCBIN "gfx/billboard/mon_silhouettes/snorlax.2bpp"
|
|
ArticunoPic: ; 0x6ed00
|
|
INCBIN "gfx/billboard/mon_pics/articuno.2bpp"
|
|
ArticunoSilhouettePic: ; 0x6ee80
|
|
INCBIN "gfx/billboard/mon_silhouettes/articuno.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$6f000,$70000 - $6f000 ; 0x6f000
|
|
|
|
|
|
SECTION "bank1c", ROMX, BANK[$1c]
|
|
|
|
ZapdosPic: ; 0x70000
|
|
INCBIN "gfx/billboard/mon_pics/zapdos.2bpp"
|
|
ZapdosSilhouettePic: ; 0x70180
|
|
INCBIN "gfx/billboard/mon_silhouettes/zapdos.2bpp"
|
|
MoltresPic: ; 0x70300
|
|
INCBIN "gfx/billboard/mon_pics/moltres.2bpp"
|
|
MoltresSilhouettePic: ; 0x70480
|
|
INCBIN "gfx/billboard/mon_silhouettes/moltres.2bpp"
|
|
DratiniPic: ; 0x70600
|
|
INCBIN "gfx/billboard/mon_pics/dratini.2bpp"
|
|
DratiniSilhouettePic: ; 0x70780
|
|
INCBIN "gfx/billboard/mon_silhouettes/dratini.2bpp"
|
|
DragonairPic: ; 0x70900
|
|
INCBIN "gfx/billboard/mon_pics/dragonair.2bpp"
|
|
DragonairSilhouettePic: ; 0x70a80
|
|
INCBIN "gfx/billboard/mon_silhouettes/dragonair.2bpp"
|
|
DragonitePic: ; 0x70c00
|
|
INCBIN "gfx/billboard/mon_pics/dragonite.2bpp"
|
|
DragoniteSilhouettePic: ; 0x70d80
|
|
INCBIN "gfx/billboard/mon_silhouettes/dragonite.2bpp"
|
|
MewtwoPic: ; 0x70f00
|
|
INCBIN "gfx/billboard/mon_pics/mewtwo.2bpp"
|
|
MewtwoSilhouettePic: ; 0x71080
|
|
INCBIN "gfx/billboard/mon_silhouettes/mewtwo.2bpp"
|
|
MewPic: ; 0x71200
|
|
INCBIN "gfx/billboard/mon_pics/mew.2bpp"
|
|
MewSilhouettePic: ; 0x71380
|
|
INCBIN "gfx/billboard/mon_silhouettes/mew.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$71500,$74000 - $71500 ; 0x71500
|
|
|
|
|
|
SECTION "bank1d", ROMX, BANK[$1d]
|
|
|
|
PidgeottoPic: ; 0x74000
|
|
INCBIN "gfx/billboard/mon_pics/pidgeotto.2bpp"
|
|
PidgeottoSilhouettePic: ; 0x74180
|
|
INCBIN "gfx/billboard/mon_silhouettes/pidgeotto.2bpp"
|
|
PidgeotPic: ; 0x74300
|
|
INCBIN "gfx/billboard/mon_pics/pidgeot.2bpp"
|
|
PidgeotSilhouettePic: ; 0x74480
|
|
INCBIN "gfx/billboard/mon_silhouettes/pidgeot.2bpp"
|
|
RattataPic: ; 0x74600
|
|
INCBIN "gfx/billboard/mon_pics/rattata.2bpp"
|
|
RattataSilhouettePic: ; 0x74780
|
|
INCBIN "gfx/billboard/mon_silhouettes/rattata.2bpp"
|
|
RaticatePic: ; 0x74900
|
|
INCBIN "gfx/billboard/mon_pics/raticate.2bpp"
|
|
RaticateSilhouettePic: ; 0x74a80
|
|
INCBIN "gfx/billboard/mon_silhouettes/raticate.2bpp"
|
|
SpearowPic: ; 0x74c00
|
|
INCBIN "gfx/billboard/mon_pics/spearow.2bpp"
|
|
SpearowSilhouettePic: ; 0x74d80
|
|
INCBIN "gfx/billboard/mon_silhouettes/spearow.2bpp"
|
|
FearowPic: ; 0x74f00
|
|
INCBIN "gfx/billboard/mon_pics/fearow.2bpp"
|
|
FearowSilhouettePic: ; 0x75080
|
|
INCBIN "gfx/billboard/mon_silhouettes/fearow.2bpp"
|
|
EkansPic: ; 0x75200
|
|
INCBIN "gfx/billboard/mon_pics/ekans.2bpp"
|
|
EkansSilhouettePic: ; 0x75380
|
|
INCBIN "gfx/billboard/mon_silhouettes/ekans.2bpp"
|
|
ArbokPic: ; 0x75500
|
|
INCBIN "gfx/billboard/mon_pics/arbok.2bpp"
|
|
ArbokSilhouettePic: ; 0x75680
|
|
INCBIN "gfx/billboard/mon_silhouettes/arbok.2bpp"
|
|
PikachuPic: ; 0x75800
|
|
INCBIN "gfx/billboard/mon_pics/pikachu.2bpp"
|
|
PikachuSilhouettePic: ; 0x75980
|
|
INCBIN "gfx/billboard/mon_silhouettes/pikachu.2bpp"
|
|
RaichuPic: ; 0x75b00
|
|
INCBIN "gfx/billboard/mon_pics/raichu.2bpp"
|
|
RaichuSilhouettePic: ; 0x75c80
|
|
INCBIN "gfx/billboard/mon_silhouettes/raichu.2bpp"
|
|
SandshrewPic: ; 0x75e00
|
|
INCBIN "gfx/billboard/mon_pics/sandshrew.2bpp"
|
|
SandshrewSilhouettePic: ; 0x75f80
|
|
INCBIN "gfx/billboard/mon_silhouettes/sandshrew.2bpp"
|
|
SandslashPic: ; 0x76100
|
|
INCBIN "gfx/billboard/mon_pics/sandslash.2bpp"
|
|
SandslashSilhouettePic: ; 0x76280
|
|
INCBIN "gfx/billboard/mon_silhouettes/sandslash.2bpp"
|
|
Nidoran_FPic: ; 0x76400
|
|
INCBIN "gfx/billboard/mon_pics/nidoran_f.2bpp"
|
|
Nidoran_FSilhouettePic: ; 0x76580
|
|
INCBIN "gfx/billboard/mon_silhouettes/nidoran_f.2bpp"
|
|
NidorinaPic: ; 0x76700
|
|
INCBIN "gfx/billboard/mon_pics/nidorina.2bpp"
|
|
NidorinaSilhouettePic: ; 0x76880
|
|
INCBIN "gfx/billboard/mon_silhouettes/nidorina.2bpp"
|
|
NidoqueenPic: ; 0x76a00
|
|
INCBIN "gfx/billboard/mon_pics/nidoqueen.2bpp"
|
|
NidoqueenSilhouettePic: ; 0x76b80
|
|
INCBIN "gfx/billboard/mon_silhouettes/nidoqueen.2bpp"
|
|
Nidoran_MPic: ; 0x76d00
|
|
INCBIN "gfx/billboard/mon_pics/nidoran_m.2bpp"
|
|
Nidoran_MSilhouettePic: ; 0x76e80
|
|
INCBIN "gfx/billboard/mon_silhouettes/nidoran_m.2bpp"
|
|
|
|
StageRedFieldBottomBaseGameBoyGfx: ; 0x77000
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboy.2bpp"
|
|
|
|
|
|
SECTION "bank1e", ROMX, BANK[$1e]
|
|
|
|
BulbasaurPic: ; 0x78000
|
|
INCBIN "gfx/billboard/mon_pics/bulbasaur.2bpp"
|
|
BulbasaurSilhouettePic: ; 0x78180
|
|
INCBIN "gfx/billboard/mon_silhouettes/bulbasaur.2bpp"
|
|
IvysaurPic: ; 0x78300
|
|
INCBIN "gfx/billboard/mon_pics/ivysaur.2bpp"
|
|
IvysaurSilhouettePic: ; 0x78480
|
|
INCBIN "gfx/billboard/mon_silhouettes/ivysaur.2bpp"
|
|
VenusaurPic: ; 0x78600
|
|
INCBIN "gfx/billboard/mon_pics/venusaur.2bpp"
|
|
VenusaurSilhouettePic: ; 0x78780
|
|
INCBIN "gfx/billboard/mon_silhouettes/venusaur.2bpp"
|
|
CharmanderPic: ; 0x78900
|
|
INCBIN "gfx/billboard/mon_pics/charmander.2bpp"
|
|
CharmanderSilhouettePic: ; 0x78a80
|
|
INCBIN "gfx/billboard/mon_silhouettes/charmander.2bpp"
|
|
CharmeleonPic: ; 0x78c00
|
|
INCBIN "gfx/billboard/mon_pics/charmeleon.2bpp"
|
|
CharmeleonSilhouettePic: ; 0x78d80
|
|
INCBIN "gfx/billboard/mon_silhouettes/charmeleon.2bpp"
|
|
CharizardPic: ; 0x78f00
|
|
INCBIN "gfx/billboard/mon_pics/charizard.2bpp"
|
|
CharizardSilhouettePic: ; 0x79080
|
|
INCBIN "gfx/billboard/mon_silhouettes/charizard.2bpp"
|
|
SquirtlePic: ; 0x79200
|
|
INCBIN "gfx/billboard/mon_pics/squirtle.2bpp"
|
|
SquirtleSilhouettePic: ; 0x79380
|
|
INCBIN "gfx/billboard/mon_silhouettes/squirtle.2bpp"
|
|
WartortlePic: ; 0x79500
|
|
INCBIN "gfx/billboard/mon_pics/wartortle.2bpp"
|
|
WartortleSilhouettePic: ; 0x79680
|
|
INCBIN "gfx/billboard/mon_silhouettes/wartortle.2bpp"
|
|
BlastoisePic: ; 0x79800
|
|
INCBIN "gfx/billboard/mon_pics/blastoise.2bpp"
|
|
BlastoiseSilhouettePic: ; 0x79980
|
|
INCBIN "gfx/billboard/mon_silhouettes/blastoise.2bpp"
|
|
CaterpiePic: ; 0x79b00
|
|
INCBIN "gfx/billboard/mon_pics/caterpie.2bpp"
|
|
CaterpieSilhouettePic: ; 0x79c80
|
|
INCBIN "gfx/billboard/mon_silhouettes/caterpie.2bpp"
|
|
MetapodPic: ; 0x79e00
|
|
INCBIN "gfx/billboard/mon_pics/metapod.2bpp"
|
|
MetapodSilhouettePic: ; 0x79f80
|
|
INCBIN "gfx/billboard/mon_silhouettes/metapod.2bpp"
|
|
ButterfreePic: ; 0x7a100
|
|
INCBIN "gfx/billboard/mon_pics/butterfree.2bpp"
|
|
ButterfreeSilhouettePic: ; 0x7a280
|
|
INCBIN "gfx/billboard/mon_silhouettes/butterfree.2bpp"
|
|
WeedlePic: ; 0x7a400
|
|
INCBIN "gfx/billboard/mon_pics/weedle.2bpp"
|
|
WeedleSilhouettePic: ; 0x7a580
|
|
INCBIN "gfx/billboard/mon_silhouettes/weedle.2bpp"
|
|
KakunaPic: ; 0x7a700
|
|
INCBIN "gfx/billboard/mon_pics/kakuna.2bpp"
|
|
KakunaSilhouettePic: ; 0x7a880
|
|
INCBIN "gfx/billboard/mon_silhouettes/kakuna.2bpp"
|
|
BeedrillPic: ; 0x7aa00
|
|
INCBIN "gfx/billboard/mon_pics/beedrill.2bpp"
|
|
BeedrillSilhouettePic: ; 0x7ab80
|
|
INCBIN "gfx/billboard/mon_silhouettes/beedrill.2bpp"
|
|
PidgeyPic: ; 0x7ad00
|
|
INCBIN "gfx/billboard/mon_pics/pidgey.2bpp"
|
|
PidgeySilhouettePic: ; 0x7ae80
|
|
INCBIN "gfx/billboard/mon_silhouettes/pidgey.2bpp"
|
|
|
|
BonusMultiplierX1OnPic: ; 0x7b000
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX1_on.2bpp"
|
|
BonusMultiplierX1OffPic: ; 0x7b180
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX1_off.2bpp"
|
|
BonusMultiplierX2OnPic: ; 0x7b300
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX2_on.2bpp"
|
|
BonusMultiplierX2OffPic: ; 0x7b480
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX2_off.2bpp"
|
|
BonusMultiplierX3OnPic: ; 0x7b600
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX3_on.2bpp"
|
|
BonusMultiplierX3OffPic: ; 0x7b780
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX3_off.2bpp"
|
|
BonusMultiplierX4OnPic: ; 0x7b900
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX4_on.2bpp"
|
|
BonusMultiplierX4OffPic: ; 0x7ba80
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX4_off.2bpp"
|
|
BonusMultiplierX5OnPic: ; 0x7bc00
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX5_on.2bpp"
|
|
BonusMultiplierX5OffPic: ; 0x7bd80
|
|
INCBIN "gfx/billboard/slot/bonusmultiplierX5_off.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$7bf00,$7c000 - $7bf00 ; 0x7bf00
|
|
|
|
|
|
SECTION "bank1f", ROMX, BANK[$1f]
|
|
|
|
SlowpokeAnimatedPic: ; 0x7c000
|
|
INCBIN "gfx/billboard/mon_animated/slowpoke.2bpp"
|
|
MagnemiteAnimatedPic: ; 0x7c300
|
|
INCBIN "gfx/billboard/mon_animated/magnemite.2bpp"
|
|
Farfetch_DAnimatedPic: ; 0x7c600
|
|
INCBIN "gfx/billboard/mon_animated/farfetch_d.2bpp"
|
|
DoduoAnimatedPic: ; 0x7c900
|
|
INCBIN "gfx/billboard/mon_animated/doduo.2bpp"
|
|
SeelAnimatedPic: ; 0x7cc00
|
|
INCBIN "gfx/billboard/mon_animated/seel.2bpp"
|
|
GrimerAnimatedPic: ; 0x7cf00
|
|
INCBIN "gfx/billboard/mon_animated/grimer.2bpp"
|
|
ShellderAnimatedPic: ; 0x7d200
|
|
INCBIN "gfx/billboard/mon_animated/shellder.2bpp"
|
|
GastlyAnimatedPic: ; 0x7d500
|
|
INCBIN "gfx/billboard/mon_animated/gastly.2bpp"
|
|
OnixAnimatedPic: ; 0x7d800
|
|
INCBIN "gfx/billboard/mon_animated/onix.2bpp"
|
|
DrowzeeAnimatedPic: ; 0x7db00
|
|
INCBIN "gfx/billboard/mon_animated/drowzee.2bpp"
|
|
KrabbyAnimatedPic: ; 0x7de00
|
|
INCBIN "gfx/billboard/mon_animated/krabby.2bpp"
|
|
VoltorbAnimatedPic: ; 0x7e100
|
|
INCBIN "gfx/billboard/mon_animated/voltorb.2bpp"
|
|
ExeggcuteAnimatedPic: ; 0x7e400
|
|
INCBIN "gfx/billboard/mon_animated/exeggcute.2bpp"
|
|
CuboneAnimatedPic: ; 0x7e700
|
|
INCBIN "gfx/billboard/mon_animated/cubone.2bpp"
|
|
HitmonleeAnimatedPic: ; 0x7ea00
|
|
INCBIN "gfx/billboard/mon_animated/hitmonlee.2bpp"
|
|
HitmonchanAnimatedPic: ; 0x7ed00
|
|
INCBIN "gfx/billboard/mon_animated/hitmonchan.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$7f000,$7fd00 - $7f000
|
|
|
|
EraseAllDataGfx: ; 0x7fd00: ; 0x7fd00
|
|
INCBIN "gfx/erase_all_data.2bpp"
|
|
|
|
|
|
SECTION "bank20", ROMX, BANK[$20]
|
|
|
|
LickitungAnimatedPic: ; 0x80000
|
|
INCBIN "gfx/billboard/mon_animated/lickitung.2bpp"
|
|
KoffingAnimatedPic: ; 0x80300
|
|
INCBIN "gfx/billboard/mon_animated/koffing.2bpp"
|
|
RhyhornAnimatedPic: ; 0x80600
|
|
INCBIN "gfx/billboard/mon_animated/rhyhorn.2bpp"
|
|
ChanseyAnimatedPic: ; 0x80900
|
|
INCBIN "gfx/billboard/mon_animated/chansey.2bpp"
|
|
TangelaAnimatedPic: ; 0x80c00
|
|
INCBIN "gfx/billboard/mon_animated/tangela.2bpp"
|
|
KangaskhanAnimatedPic: ; 0x80f00
|
|
INCBIN "gfx/billboard/mon_animated/kangaskhan.2bpp"
|
|
HorseaAnimatedPic: ; 0x81200
|
|
INCBIN "gfx/billboard/mon_animated/horsea.2bpp"
|
|
GoldeenAnimatedPic: ; 0x81500
|
|
INCBIN "gfx/billboard/mon_animated/goldeen.2bpp"
|
|
StaryuAnimatedPic: ; 0x81800
|
|
INCBIN "gfx/billboard/mon_animated/staryu.2bpp"
|
|
Mr_MimeAnimatedPic: ; 0x81b00
|
|
INCBIN "gfx/billboard/mon_animated/mr_mime.2bpp"
|
|
ScytherAnimatedPic: ; 0x81e00
|
|
INCBIN "gfx/billboard/mon_animated/scyther.2bpp"
|
|
JynxAnimatedPic: ; 0x82100
|
|
INCBIN "gfx/billboard/mon_animated/jynx.2bpp"
|
|
ElectabuzzAnimatedPic: ; 0x82400
|
|
INCBIN "gfx/billboard/mon_animated/electabuzz.2bpp"
|
|
MagmarAnimatedPic: ; 0x82700
|
|
INCBIN "gfx/billboard/mon_animated/magmar.2bpp"
|
|
PinsirAnimatedPic: ; 0x82a00
|
|
INCBIN "gfx/billboard/mon_animated/pinsir.2bpp"
|
|
TaurosAnimatedPic: ; 0x82d00
|
|
INCBIN "gfx/billboard/mon_animated/tauros.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$83000,$84000 - $83000 ; 0x83000
|
|
|
|
|
|
SECTION "bank21", ROMX, BANK[$21]
|
|
|
|
MagikarpAnimatedPic: ; 0x84000
|
|
INCBIN "gfx/billboard/mon_animated/magikarp.2bpp"
|
|
LaprasAnimatedPic: ; 0x84300
|
|
INCBIN "gfx/billboard/mon_animated/lapras.2bpp"
|
|
DittoAnimatedPic: ; 0x84600
|
|
INCBIN "gfx/billboard/mon_animated/ditto.2bpp"
|
|
EeveeAnimatedPic: ; 0x84900
|
|
INCBIN "gfx/billboard/mon_animated/eevee.2bpp"
|
|
PorygonAnimatedPic: ; 0x84c00
|
|
INCBIN "gfx/billboard/mon_animated/porygon.2bpp"
|
|
OmanyteAnimatedPic: ; 0x84f00
|
|
INCBIN "gfx/billboard/mon_animated/omanyte.2bpp"
|
|
KabutoAnimatedPic: ; 0x85200
|
|
INCBIN "gfx/billboard/mon_animated/kabuto.2bpp"
|
|
AerodactylAnimatedPic: ; 0x85500
|
|
INCBIN "gfx/billboard/mon_animated/aerodactyl.2bpp"
|
|
SnorlaxAnimatedPic: ; 0x85800
|
|
INCBIN "gfx/billboard/mon_animated/snorlax.2bpp"
|
|
ArticunoAnimatedPic: ; 0x85b00
|
|
INCBIN "gfx/billboard/mon_animated/articuno.2bpp"
|
|
ZapdosAnimatedPic: ; 0x85e00
|
|
INCBIN "gfx/billboard/mon_animated/zapdos.2bpp"
|
|
MoltresAnimatedPic: ; 0x86100
|
|
INCBIN "gfx/billboard/mon_animated/moltres.2bpp"
|
|
DratiniAnimatedPic: ; 0x86400
|
|
INCBIN "gfx/billboard/mon_animated/dratini.2bpp"
|
|
MewtwoAnimatedPic: ; 0x86700
|
|
INCBIN "gfx/billboard/mon_animated/mewtwo.2bpp"
|
|
MewAnimatedPic: ; 0x86a00
|
|
INCBIN "gfx/billboard/mon_animated/mew.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$86d00,$88000 - $86d00 ; 0x86d00
|
|
|
|
|
|
SECTION "bank22", ROMX, BANK[$22]
|
|
|
|
ZubatAnimatedPic: ; 0x88000
|
|
INCBIN "gfx/billboard/mon_animated/zubat.2bpp"
|
|
OddishAnimatedPic: ; 0x88300
|
|
INCBIN "gfx/billboard/mon_animated/oddish.2bpp"
|
|
ParasAnimatedPic: ; 0x88600
|
|
INCBIN "gfx/billboard/mon_animated/paras.2bpp"
|
|
VenonatAnimatedPic: ; 0x88900
|
|
INCBIN "gfx/billboard/mon_animated/venonat.2bpp"
|
|
DiglettAnimatedPic: ; 0x88c00
|
|
INCBIN "gfx/billboard/mon_animated/diglett.2bpp"
|
|
MeowthAnimatedPic: ; 0x88f00
|
|
INCBIN "gfx/billboard/mon_animated/meowth.2bpp"
|
|
PsyduckAnimatedPic: ; 0x89200
|
|
INCBIN "gfx/billboard/mon_animated/psyduck.2bpp"
|
|
MankeyAnimatedPic: ; 0x89500
|
|
INCBIN "gfx/billboard/mon_animated/mankey.2bpp"
|
|
GrowlitheAnimatedPic: ; 0x89800
|
|
INCBIN "gfx/billboard/mon_animated/growlithe.2bpp"
|
|
PoliwagAnimatedPic: ; 0x89b00
|
|
INCBIN "gfx/billboard/mon_animated/poliwag.2bpp"
|
|
AbraAnimatedPic: ; 0x89e00
|
|
INCBIN "gfx/billboard/mon_animated/abra.2bpp"
|
|
MachopAnimatedPic: ; 0x8a100
|
|
INCBIN "gfx/billboard/mon_animated/machop.2bpp"
|
|
BellsproutAnimatedPic: ; 0x8a400
|
|
INCBIN "gfx/billboard/mon_animated/bellsprout.2bpp"
|
|
TentacoolAnimatedPic: ; 0x8a700
|
|
INCBIN "gfx/billboard/mon_animated/tentacool.2bpp"
|
|
GeodudeAnimatedPic: ; 0x8aa00
|
|
INCBIN "gfx/billboard/mon_animated/geodude.2bpp"
|
|
PonytaAnimatedPic: ; 0x8ad00
|
|
INCBIN "gfx/billboard/mon_animated/ponyta.2bpp"
|
|
|
|
FieldSelectScreenGfx:
|
|
FieldSelectBlinkingBorderGfx: ; 0x8b000
|
|
INCBIN "gfx/field_select/blinking_border.2bpp"
|
|
FieldSelectGfx: ; 0x8b100
|
|
INCBIN "gfx/field_select/field_select_tiles.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$8bd00,$8c000 - $8bd00 ; 0x8bd00
|
|
|
|
|
|
SECTION "bank23", ROMX, BANK[$23]
|
|
|
|
BulbasaurAnimatedPic: ; 0x8c000
|
|
INCBIN "gfx/billboard/mon_animated/bulbasaur.2bpp"
|
|
CharmanderAnimatedPic: ; 0x8c300
|
|
INCBIN "gfx/billboard/mon_animated/charmander.2bpp"
|
|
SquirtleAnimatedPic: ; 0x8c600
|
|
INCBIN "gfx/billboard/mon_animated/squirtle.2bpp"
|
|
CaterpieAnimatedPic: ; 0x8c900
|
|
INCBIN "gfx/billboard/mon_animated/caterpie.2bpp"
|
|
WeedleAnimatedPic: ; 0x8cc00
|
|
INCBIN "gfx/billboard/mon_animated/weedle.2bpp"
|
|
PidgeyAnimatedPic: ; 0x8cf00
|
|
INCBIN "gfx/billboard/mon_animated/pidgey.2bpp"
|
|
RattataAnimatedPic: ; 0x8d200
|
|
INCBIN "gfx/billboard/mon_animated/rattata.2bpp"
|
|
SpearowAnimatedPic: ; 0x8d500
|
|
INCBIN "gfx/billboard/mon_animated/spearow.2bpp"
|
|
EkansAnimatedPic: ; 0x8d800
|
|
INCBIN "gfx/billboard/mon_animated/ekans.2bpp"
|
|
PikachuAnimatedPic: ; 0x8db00
|
|
INCBIN "gfx/billboard/mon_animated/pikachu.2bpp"
|
|
SandshrewAnimatedPic: ; 0x8de00
|
|
INCBIN "gfx/billboard/mon_animated/sandshrew.2bpp"
|
|
Nidoran_FAnimatedPic: ; 0x8e100
|
|
INCBIN "gfx/billboard/mon_animated/nidoran_f.2bpp"
|
|
Nidoran_MAnimatedPic: ; 0x8e400
|
|
INCBIN "gfx/billboard/mon_animated/nidoran_m.2bpp"
|
|
ClefairyAnimatedPic: ; 0x8e700
|
|
INCBIN "gfx/billboard/mon_animated/clefairy.2bpp"
|
|
VulpixAnimatedPic: ; 0x8ea00
|
|
INCBIN "gfx/billboard/mon_animated/vulpix.2bpp"
|
|
JigglypuffAnimatedPic: ; 0x8ed00
|
|
INCBIN "gfx/billboard/mon_animated/jigglypuff.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$8f000,$90000 - $8f000 ; 0x8f000
|
|
|
|
|
|
SECTION "bank24", ROMX, BANK[$24]
|
|
|
|
HypnoPic: ; 0x90000
|
|
INCBIN "gfx/billboard/mon_pics/hypno.2bpp"
|
|
HypnoSilhouettePic: ; 0x90180
|
|
INCBIN "gfx/billboard/mon_silhouettes/hypno.2bpp"
|
|
KrabbyPic: ; 0x90300
|
|
INCBIN "gfx/billboard/mon_pics/krabby.2bpp"
|
|
KrabbySilhouettePic: ; 0x90480
|
|
INCBIN "gfx/billboard/mon_silhouettes/krabby.2bpp"
|
|
KinglerPic: ; 0x90600
|
|
INCBIN "gfx/billboard/mon_pics/kingler.2bpp"
|
|
KinglerSilhouettePic: ; 0x90780
|
|
INCBIN "gfx/billboard/mon_silhouettes/kingler.2bpp"
|
|
VoltorbPic: ; 0x90900
|
|
INCBIN "gfx/billboard/mon_pics/voltorb.2bpp"
|
|
VoltorbSilhouettePic: ; 0x90a80
|
|
INCBIN "gfx/billboard/mon_silhouettes/voltorb.2bpp"
|
|
ElectrodePic: ; 0x90c00
|
|
INCBIN "gfx/billboard/mon_pics/electrode.2bpp"
|
|
ElectrodeSilhouettePic: ; 0x90d80
|
|
INCBIN "gfx/billboard/mon_silhouettes/electrode.2bpp"
|
|
ExeggcutePic: ; 0x90f00
|
|
INCBIN "gfx/billboard/mon_pics/exeggcute.2bpp"
|
|
ExeggcuteSilhouettePic: ; 0x91080
|
|
INCBIN "gfx/billboard/mon_silhouettes/exeggcute.2bpp"
|
|
ExeggutorPic: ; 0x91200
|
|
INCBIN "gfx/billboard/mon_pics/exeggutor.2bpp"
|
|
ExeggutorSilhouettePic: ; 0x91380
|
|
INCBIN "gfx/billboard/mon_silhouettes/exeggutor.2bpp"
|
|
CubonePic: ; 0x91500
|
|
INCBIN "gfx/billboard/mon_pics/cubone.2bpp"
|
|
CuboneSilhouettePic: ; 0x91680
|
|
INCBIN "gfx/billboard/mon_silhouettes/cubone.2bpp"
|
|
MarowakPic: ; 0x91800
|
|
INCBIN "gfx/billboard/mon_pics/marowak.2bpp"
|
|
MarowakSilhouettePic: ; 0x91980
|
|
INCBIN "gfx/billboard/mon_silhouettes/marowak.2bpp"
|
|
HitmonleePic: ; 0x91b00
|
|
INCBIN "gfx/billboard/mon_pics/hitmonlee.2bpp"
|
|
HitmonleeSilhouettePic: ; 0x91c80
|
|
INCBIN "gfx/billboard/mon_silhouettes/hitmonlee.2bpp"
|
|
HitmonchanPic: ; 0x91e00
|
|
INCBIN "gfx/billboard/mon_pics/hitmonchan.2bpp"
|
|
HitmonchanSilhouettePic: ; 0x91f80
|
|
INCBIN "gfx/billboard/mon_silhouettes/hitmonchan.2bpp"
|
|
LickitungPic: ; 0x92100
|
|
INCBIN "gfx/billboard/mon_pics/lickitung.2bpp"
|
|
LickitungSilhouettePic: ; 0x92280
|
|
INCBIN "gfx/billboard/mon_silhouettes/lickitung.2bpp"
|
|
KoffingPic: ; 0x92400
|
|
INCBIN "gfx/billboard/mon_pics/koffing.2bpp"
|
|
KoffingSilhouettePic: ; 0x92580
|
|
INCBIN "gfx/billboard/mon_silhouettes/koffing.2bpp"
|
|
WeezingPic: ; 0x92700
|
|
INCBIN "gfx/billboard/mon_pics/weezing.2bpp"
|
|
WeezingSilhouettePic: ; 0x92880
|
|
INCBIN "gfx/billboard/mon_silhouettes/weezing.2bpp"
|
|
RhyhornPic: ; 0x92a00
|
|
INCBIN "gfx/billboard/mon_pics/rhyhorn.2bpp"
|
|
RhyhornSilhouettePic: ; 0x92b80
|
|
INCBIN "gfx/billboard/mon_silhouettes/rhyhorn.2bpp"
|
|
RhydonPic: ; 0x92d00
|
|
INCBIN "gfx/billboard/mon_pics/rhydon.2bpp"
|
|
RhydonSilhouettePic: ; 0x92e80
|
|
INCBIN "gfx/billboard/mon_silhouettes/rhydon.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$93000,$94000 - $93000 ; 0x93000
|
|
|
|
|
|
SECTION "bank25", ROMX, BANK[$25]
|
|
|
|
MagnemitePic: ; 0x94000
|
|
INCBIN "gfx/billboard/mon_pics/magnemite.2bpp"
|
|
MagnemiteSilhouettePic: ; 0x94180
|
|
INCBIN "gfx/billboard/mon_silhouettes/magnemite.2bpp"
|
|
MagnetonPic: ; 0x94300
|
|
INCBIN "gfx/billboard/mon_pics/magneton.2bpp"
|
|
MagnetonSilhouettePic: ; 0x94480
|
|
INCBIN "gfx/billboard/mon_silhouettes/magneton.2bpp"
|
|
Farfetch_dPic: ; 0x94600
|
|
INCBIN "gfx/billboard/mon_pics/farfetch_d.2bpp"
|
|
Farfetch_dSilhouettePic: ; 0x94780
|
|
INCBIN "gfx/billboard/mon_silhouettes/farfetch_d.2bpp"
|
|
DoduoPic: ; 0x94900
|
|
INCBIN "gfx/billboard/mon_pics/doduo.2bpp"
|
|
DoduoSilhouettePic: ; 0x94a80
|
|
INCBIN "gfx/billboard/mon_silhouettes/doduo.2bpp"
|
|
DodrioPic: ; 0x94c00
|
|
INCBIN "gfx/billboard/mon_pics/dodrio.2bpp"
|
|
DodrioSilhouettePic: ; 0x94d80
|
|
INCBIN "gfx/billboard/mon_silhouettes/dodrio.2bpp"
|
|
SeelPic: ; 0x94f00
|
|
INCBIN "gfx/billboard/mon_pics/seel.2bpp"
|
|
SeelSilhouettePic: ; 0x95080
|
|
INCBIN "gfx/billboard/mon_silhouettes/seel.2bpp"
|
|
DewgongPic: ; 0x95200
|
|
INCBIN "gfx/billboard/mon_pics/dewgong.2bpp"
|
|
DewgongSilhouettePic: ; 0x95380
|
|
INCBIN "gfx/billboard/mon_silhouettes/dewgong.2bpp"
|
|
GrimerPic: ; 0x95500
|
|
INCBIN "gfx/billboard/mon_pics/grimer.2bpp"
|
|
GrimerSilhouettePic: ; 0x95680
|
|
INCBIN "gfx/billboard/mon_silhouettes/grimer.2bpp"
|
|
MukPic: ; 0x95800
|
|
INCBIN "gfx/billboard/mon_pics/muk.2bpp"
|
|
MukSilhouettePic: ; 0x95980
|
|
INCBIN "gfx/billboard/mon_silhouettes/muk.2bpp"
|
|
ShellderPic: ; 0x95b00
|
|
INCBIN "gfx/billboard/mon_pics/shellder.2bpp"
|
|
ShellderSilhouettePic: ; 0x95c80
|
|
INCBIN "gfx/billboard/mon_silhouettes/shellder.2bpp"
|
|
CloysterPic: ; 0x95e00
|
|
INCBIN "gfx/billboard/mon_pics/cloyster.2bpp"
|
|
CloysterSilhouettePic: ; 0x95f80
|
|
INCBIN "gfx/billboard/mon_silhouettes/cloyster.2bpp"
|
|
GastlyPic: ; 0x96100
|
|
INCBIN "gfx/billboard/mon_pics/gastly.2bpp"
|
|
GastlySilhouettePic: ; 0x96280
|
|
INCBIN "gfx/billboard/mon_silhouettes/gastly.2bpp"
|
|
HaunterPic: ; 0x96400
|
|
INCBIN "gfx/billboard/mon_pics/haunter.2bpp"
|
|
HaunterSilhouettePic: ; 0x96580
|
|
INCBIN "gfx/billboard/mon_silhouettes/haunter.2bpp"
|
|
GengarPic: ; 0x96700
|
|
INCBIN "gfx/billboard/mon_pics/gengar.2bpp"
|
|
GengarSilhouettePic: ; 0x96880
|
|
INCBIN "gfx/billboard/mon_silhouettes/gengar.2bpp"
|
|
OnixPic: ; 0x96a00
|
|
INCBIN "gfx/billboard/mon_pics/onix.2bpp"
|
|
OnixSilhouettePic: ; 0x96b80
|
|
INCBIN "gfx/billboard/mon_silhouettes/onix.2bpp"
|
|
DrowzeePic: ; 0x96d00
|
|
INCBIN "gfx/billboard/mon_pics/drowzee.2bpp"
|
|
DrowzeeSilhouettePic: ; 0x96e80
|
|
INCBIN "gfx/billboard/mon_silhouettes/drowzee.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$97000,$97a00 - $97000
|
|
|
|
StageRedFieldTopGfx3: ; 0x97a00
|
|
INCBIN "gfx/stage/red_top/red_top_3.2bpp"
|
|
StageRedFieldTopGfx1: ; 0x97ba0
|
|
INCBIN "gfx/stage/red_top/red_top_1.2bpp"
|
|
StageRedFieldTopGfx2: ; 0x97e00
|
|
INCBIN "gfx/stage/red_top/red_top_2.2bpp"
|
|
|
|
|
|
SECTION "bank26", ROMX, BANK[$26]
|
|
|
|
AlakazamPic: ; 0x98000
|
|
INCBIN "gfx/billboard/mon_pics/alakazam.2bpp"
|
|
AlakazamSilhouettePic: ; 0x98180
|
|
INCBIN "gfx/billboard/mon_silhouettes/alakazam.2bpp"
|
|
MachopPic: ; 0x98300
|
|
INCBIN "gfx/billboard/mon_pics/machop.2bpp"
|
|
MachopSilhouettePic: ; 0x98480
|
|
INCBIN "gfx/billboard/mon_silhouettes/machop.2bpp"
|
|
MachokePic: ; 0x98600
|
|
INCBIN "gfx/billboard/mon_pics/machoke.2bpp"
|
|
MachokeSilhouettePic: ; 0x98780
|
|
INCBIN "gfx/billboard/mon_silhouettes/machoke.2bpp"
|
|
MachampPic: ; 0x98900
|
|
INCBIN "gfx/billboard/mon_pics/machamp.2bpp"
|
|
MachampSilhouettePic: ; 0x98a80
|
|
INCBIN "gfx/billboard/mon_silhouettes/machamp.2bpp"
|
|
BellsproutPic: ; 0x98c00
|
|
INCBIN "gfx/billboard/mon_pics/bellsprout.2bpp"
|
|
BellsproutSilhouettePic: ; 0x98d80
|
|
INCBIN "gfx/billboard/mon_silhouettes/bellsprout.2bpp"
|
|
WeepinbellPic: ; 0x98f00
|
|
INCBIN "gfx/billboard/mon_pics/weepinbell.2bpp"
|
|
WeepinbellSilhouettePic: ; 0x97080
|
|
INCBIN "gfx/billboard/mon_silhouettes/weepinbell.2bpp"
|
|
VictreebellPic: ; 0x97200
|
|
INCBIN "gfx/billboard/mon_pics/victreebell.2bpp"
|
|
VictreebellSilhouettePic: ; 0x97380
|
|
INCBIN "gfx/billboard/mon_silhouettes/victreebell.2bpp"
|
|
TentacoolPic: ; 0x97500
|
|
INCBIN "gfx/billboard/mon_pics/tentacool.2bpp"
|
|
TentacoolSilhouettePic: ; 0x97680
|
|
INCBIN "gfx/billboard/mon_silhouettes/tentacool.2bpp"
|
|
TentacruelPic: ; 0x97800
|
|
INCBIN "gfx/billboard/mon_pics/tentacruel.2bpp"
|
|
TentacruelSilhouettePic: ; 0x97980
|
|
INCBIN "gfx/billboard/mon_silhouettes/tentacruel.2bpp"
|
|
GeodudePic: ; 0x97b00
|
|
INCBIN "gfx/billboard/mon_pics/geodude.2bpp"
|
|
GeodudeSilhouettePic: ; 0x97c80
|
|
INCBIN "gfx/billboard/mon_silhouettes/geodude.2bpp"
|
|
GravelerPic: ; 0x97e00
|
|
INCBIN "gfx/billboard/mon_pics/graveler.2bpp"
|
|
GravelerSilhouettePic: ; 0x97f80
|
|
INCBIN "gfx/billboard/mon_silhouettes/graveler.2bpp"
|
|
GolemPic: ; 0x9a100
|
|
INCBIN "gfx/billboard/mon_pics/golem.2bpp"
|
|
GolemSilhouettePic: ; 0x9a280
|
|
INCBIN "gfx/billboard/mon_silhouettes/golem.2bpp"
|
|
PonytaPic: ; 0x9a400
|
|
INCBIN "gfx/billboard/mon_pics/ponyta.2bpp"
|
|
PonytaSilhouettePic: ; 0x9a580
|
|
INCBIN "gfx/billboard/mon_silhouettes/ponyta.2bpp"
|
|
RapidashPic: ; 0x9a700
|
|
INCBIN "gfx/billboard/mon_pics/rapidash.2bpp"
|
|
RapidashSilhouettePic: ; 0x9a880
|
|
INCBIN "gfx/billboard/mon_silhouettes/rapidash.2bpp"
|
|
SlowpokePic: ; 0x9aa00
|
|
INCBIN "gfx/billboard/mon_pics/slowpoke.2bpp"
|
|
SlowpokeSilhouettePic: ; 0x9ab80
|
|
INCBIN "gfx/billboard/mon_silhouettes/slowpoke.2bpp"
|
|
SlowbroPic: ; 0x9ad00
|
|
INCBIN "gfx/billboard/mon_pics/slowbro.2bpp"
|
|
SlowbroSilhouettePic: ; 0x9ae80
|
|
INCBIN "gfx/billboard/mon_silhouettes/slowbro.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$9b000,$9c000 - $9b000 ; 0x9b000
|
|
|
|
|
|
SECTION "bank27", ROMX, BANK[$27]
|
|
|
|
StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor: ; 0x9c000
|
|
INCBIN "gfx/stage/red_top/status_bar_symbols_gameboycolor.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$9c100,$9c2a0 - $9c100
|
|
|
|
StageRedFieldTopBaseGameBoyColorGfx: ; 0x9c2a0
|
|
INCBIN "gfx/stage/red_top/red_top_base_gameboycolor.2bpp"
|
|
|
|
StageRedFieldTopGfx4: ; 0x9d000
|
|
INCBIN "gfx/stage/red_top/red_top_4.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$9e000,$a0000 - $9e000
|
|
|
|
|
|
SECTION "bank28", ROMX, BANK[$28]
|
|
|
|
INCBIN "baserom.gbc",$a0000,$a2000 - $a0000
|
|
|
|
StageRedFieldBottomBaseGameBoyColorGfx: ; 0xa2000
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboycolor.2bpp"
|
|
|
|
StageRedFieldBottomGfx5: ; 0xa3000
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_5.2bpp"
|
|
|
|
|
|
SECTION "bank29", ROMX, BANK[$29]
|
|
|
|
INCBIN "baserom.gbc",$a4000,$a6000 - $a4000 ; 0xa4000
|
|
|
|
PalletTownPic: ; 0xa6000
|
|
INCBIN "gfx/billboard/maps/pallettown.2bpp"
|
|
ViridianCityPic: ; 0xa6180
|
|
INCBIN "gfx/billboard/maps/viridiancity.2bpp"
|
|
ViridianForestPic: ; 0xa6300
|
|
INCBIN "gfx/billboard/maps/viridianforest.2bpp"
|
|
PewterCityPic: ; 0xa6480
|
|
INCBIN "gfx/billboard/maps/pewtercity.2bpp"
|
|
MtMoonPic: ; 0xa6600
|
|
INCBIN "gfx/billboard/maps/mtmoon.2bpp"
|
|
CeruleanCityPic: ; 0xa6780
|
|
INCBIN "gfx/billboard/maps/ceruleancity.2bpp"
|
|
VermilionCitySeasidePic: ; 0xa6900
|
|
INCBIN "gfx/billboard/maps/vermilioncityseaside.2bpp"
|
|
VermilionCityStreetsPic: ; 0xa6a80
|
|
INCBIN "gfx/billboard/maps/vermilioncitystreets.2bpp"
|
|
RockMountainPic: ; 0xa6c00
|
|
INCBIN "gfx/billboard/maps/rockmountain.2bpp"
|
|
LavenderTownPic: ; 0xa6d80
|
|
INCBIN "gfx/billboard/maps/lavendertown.2bpp"
|
|
CeladonCityPic: ; 0xa6f00
|
|
INCBIN "gfx/billboard/maps/celadoncity.2bpp"
|
|
CyclingRoadPic: ; 0xa7080
|
|
INCBIN "gfx/billboard/maps/cyclingroad.2bpp"
|
|
FuchsiaCityPic: ; 0xa7200
|
|
INCBIN "gfx/billboard/maps/fuchsiacity.2bpp"
|
|
SafariZonePic: ; 0xa7380
|
|
INCBIN "gfx/billboard/maps/safarizone.2bpp"
|
|
SaffronCityPic: ; 0xa7500
|
|
INCBIN "gfx/billboard/maps/saffroncity.2bpp"
|
|
SeafoamIslandsPic: ; 0xa7680
|
|
INCBIN "gfx/billboard/maps/seafoamislands.2bpp"
|
|
CinnabarIslandPic: ; 0xa7800
|
|
INCBIN "gfx/billboard/maps/cinnabarisland.2bpp"
|
|
IndigoPlateauPic: ; 0xa7980
|
|
INCBIN "gfx/billboard/maps/indigoplateau.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$a7b00,$a8000 - $a7b00 ; 0xa7b00
|
|
|
|
SECTION "bank2a", ROMX, BANK[$2a]
|
|
|
|
INCBIN "baserom.gbc",$a8000,$a83c0 - $a8000
|
|
|
|
StageRedFieldBottomGfx4: ; 0xa83c0
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_4.2bpp"
|
|
|
|
PinballPokeballGfx: ; 0xa8400
|
|
INCBIN "gfx/stage/ball_pokeball.2bpp"
|
|
|
|
FlipperGfx: ; 0xa8600
|
|
INCBIN "gfx/stage/flipper.2bpp"
|
|
|
|
PikachuSaverGfx: ; 0xa8720
|
|
INCBIN "gfx/stage/pikachu_saver.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$a8800,$a8a00 - $a8800
|
|
|
|
PinballGreatballGfx: ; 0xa8a00
|
|
INCBIN "gfx/stage/ball_greatball.2bpp"
|
|
PinballUltraballGfx: ; 0xa8c00
|
|
INCBIN "gfx/stage/ball_ultraball.2bpp"
|
|
PinballMasterballGfx: ; 0xa8e00
|
|
INCBIN "gfx/stage/ball_masterball.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$a9000,$ac000 - $a9000
|
|
|
|
|
|
SECTION "bank2b", ROMX, BANK[$2b]
|
|
|
|
TitlescreenFadeInGfx: ; 0xac000
|
|
INCBIN "gfx/titlescreen/titlescreen_fade_in.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$ad800,$b0000 - $ad800
|
|
|
|
|
|
SECTION "bank2c", ROMX, BANK[$2c]
|
|
|
|
INCBIN "baserom.gbc",$b0000,$b3800 - $b0000 ; 0xb0000
|
|
|
|
FieldSelectTilemap: ; 0xb3800
|
|
INCBIN "gfx/tilemaps/field_select.map"
|
|
|
|
INCBIN "baserom.gbc",$b3c00,$b4000 - $b3c00 ; 0xb3c00
|
|
|
|
|
|
SECTION "bank2d", ROMX, BANK[$2d]
|
|
|
|
TitlescreenGfx: ; 0xb4000
|
|
INCBIN "gfx/titlescreen/titlescreen.2bpp"
|
|
|
|
OptionMenuAndKeyConfigGfx:
|
|
OptionMenuBlankGfx: ; 0xb5800
|
|
INCBIN "gfx/option_menu/blank.2bpp"
|
|
OptionMenuArrowGfx: ; 0xb5a00
|
|
INCBIN "gfx/option_menu/arrow.2bpp"
|
|
OptionMenuPikaBubbleGfx: ; 0xb5a20
|
|
INCBIN "gfx/option_menu/pika_bubble.2bpp"
|
|
OptionMenuBouncingPokeballGfx: ; 0xb5a80
|
|
INCBIN "gfx/option_menu/bouncing_pokeball.2bpp"
|
|
OptionMenuRumblePikachuAnimationGfx: ; 0xb5b40
|
|
INCBIN "gfx/option_menu/rumble_pikachu_animation.2bpp"
|
|
OptionMenuPsyduckGfx: ; 0xb5c00
|
|
INCBIN "gfx/option_menu/psyduck.2bpp"
|
|
OptionMenuBoldArrowGfx: ; 0xb5fc0
|
|
INCBIN "gfx/option_menu/bold_arrow.2bpp"
|
|
OptionMenuUnknownGfx: ; 0xb5fd0
|
|
INCBIN "baserom.gbc",$b5fd0,$b6020 - $b5fd0
|
|
OptionMenuOptionTextGfx: ; 0xb6020
|
|
INCBIN "gfx/option_menu/option_text.2bpp"
|
|
OptionMenuPikachuGfx: ; 0xb6080
|
|
INCBIN "gfx/option_menu/pikachu.2bpp"
|
|
OptionMenuPsyduckFeetGfx: ; 0xb6170
|
|
INCBIN "gfx/option_menu/psyduck_feet.2bpp"
|
|
OptionMenuUnknown2Gfx: ; 0xb6200
|
|
INCBIN "baserom.gbc",$b6200,$b6250 - $b6200
|
|
OptionMenuRumbleTextGfx: ; 0xb6250
|
|
INCBIN "gfx/option_menu/rumble_text.2bpp"
|
|
OptionMenuUnknown3Gfx: ; 0xb62b0
|
|
INCBIN "baserom.gbc",$b62b0,$b6320 - $b62b0
|
|
OptionMenuKeyCoTextGfx: ; 0xb6320
|
|
INCBIN "gfx/option_menu/key_co_text.2bpp"
|
|
OptionMenuSoundTestDigitsGfx: ; 0xb6370
|
|
INCBIN "gfx/option_menu/sound_test_digits.2bpp"
|
|
OptionMenuNfigTextGfx: ; 0xb6470
|
|
INCBIN "gfx/option_menu/nfig_text.2bpp"
|
|
OptionMenuUnknown4Gfx: ; 0xb64a0
|
|
INCBIN "baserom.gbc",$b64a0,$b6500 - $b64a0
|
|
|
|
KeyConfigResetTextGfx: ; 0xb6500
|
|
INCBIN "gfx/key_config/reset_text.2bpp"
|
|
KeyConfigBallStartTextGfx: ; 0xb6560
|
|
INCBIN "gfx/key_config/ball_start_text.2bpp"
|
|
KeyConfigLeftFlipperTextGfx: ; 0xb65f0
|
|
INCBIN "gfx/key_config/left_flipper_text.2bpp"
|
|
KeyConfigRightFlipperTextGfx: ; 0xb6680
|
|
INCBIN "gfx/key_config/right_flipper_text.2bpp"
|
|
KeyConfigTiltTextGfx: ; 0xb6710
|
|
INCBIN "gfx/key_config/tilt_text.2bpp"
|
|
KeyConfigMenuTextGfx: ; 0xb6810
|
|
INCBIN "gfx/key_config/menu_text.2bpp"
|
|
KeyConfigKeyConfigTextGfx: ; 0xb6880
|
|
INCBIN "gfx/key_config/key_config_text.2bpp"
|
|
KeyConfigIconsGfx: ; 0xb6900
|
|
INCBIN "gfx/key_config/icons.2bpp"
|
|
|
|
OptionMenuSoundTextTextGfx: ; 0xb6a40
|
|
INCBIN "gfx/option_menu/sound_test_text.2bpp"
|
|
OptionMenuOnOffTextGfx: ; 0xb6ad0
|
|
INCBIN "gfx/option_menu/on_off_text.2bpp"
|
|
OptionMenuBGMSETextGfx: ; 0xb6b10
|
|
INCBIN "gfx/option_menu/bgm_se_text.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$b6c00,$b8000 - $b6c00 ; 0xb6c00
|
|
|
|
|
|
SECTION "bank2e", ROMX, BANK[$2e]
|
|
|
|
INCBIN "baserom.gbc",$b8000,$ba000 - $b8000
|
|
|
|
StageRedFieldTopTilemap_GameBoy: ; 0xba000
|
|
INCBIN "gfx/tilemaps/stage_red_field_top_gameboy.map"
|
|
|
|
INCBIN "baserom.gbc",$ba400,$ba800 - $ba400
|
|
|
|
StageRedFieldBottomTilemap_GameBoy: ; 0xba800
|
|
INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboy.map"
|
|
|
|
INCBIN "baserom.gbc",$bac00,$bc000 - $bac00
|
|
|
|
|
|
SECTION "bank2f", ROMX, BANK[$2f]
|
|
|
|
INCBIN "baserom.gbc",$bc000,$bd800 - $bc000
|
|
|
|
StageRedFieldBottomCollisionAttributes: ; 0xbd800
|
|
INCBIN "data/collision/red_stage_bottom.collision"
|
|
|
|
INCBIN "baserom.gbc",$bdc00,$be000 - $bdc00
|
|
|
|
StageRedFieldTopTilemap_GameBoyColor: ; 0xbe000
|
|
INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor.map"
|
|
|
|
StageRedFieldTopTilemap2_GameBoyColor: ; 0xbe400
|
|
INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor_2.map"
|
|
|
|
StageRedFieldBottomTilemap_GameBoyColor: ; 0xbe800
|
|
INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor.map"
|
|
|
|
StageRedFieldBottomTilemap2_GameBoyColor: ; 0xbec00
|
|
INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor_2.map"
|
|
|
|
INCBIN "baserom.gbc",$bf000,$bf800 - $bf000
|
|
|
|
EraseAllDataTilemap: ; 0xbf800
|
|
INCBIN "gfx/tilemaps/erase_all_data.map"
|
|
|
|
INCBIN "baserom.gbc",$bfc00,$c0000 - $bfc00
|
|
|
|
|
|
SECTION "bank30", ROMX, BANK[$30]
|
|
|
|
INCBIN "baserom.gbc",$c0000,$c3800 - $c0000 ; 0xc0000
|
|
|
|
OptionMenuTilemap: ; 0xc3800
|
|
INCBIN "gfx/tilemaps/option_menu.map"
|
|
|
|
INCBIN "baserom.gbc",$c3a40,$c4000 - $c3a40 ; 0xc3a40
|
|
|
|
|
|
SECTION "bank31", ROMX, BANK[$31]
|
|
|
|
INCBIN "baserom.gbc",$c4000,$c5800 - $c4000 ; 0xc4000
|
|
|
|
TitlescreenTilemap: ; 0xc5800
|
|
INCBIN "gfx/tilemaps/titlescreen.map"
|
|
|
|
INCBIN "baserom.gbc",$c5c00,$c6000 - $c5c00 ; 0xc4000
|
|
|
|
CopyrightScreenTilemap: ; 0xc6000
|
|
INCBIN "gfx/tilemaps/copyright_screen.map"
|
|
|
|
INCBIN "baserom.gbc",$c6400,$c8000 - $c6400 ; 0xc6400
|
|
|
|
|
|
SECTION "bank32", ROMX, BANK[$32]
|
|
|
|
INCBIN "baserom.gbc",$c8000,$cc000 - $c8000 ; 0xc8000
|
|
|
|
|
|
SECTION "bank33", ROMX, BANK[$33]
|
|
|
|
INCBIN "baserom.gbc",$cc000,$d0000 - $cc000 ; 0xcc000
|
|
|
|
|
|
SECTION "bank34", ROMX, BANK[$34]
|
|
|
|
INCBIN "baserom.gbc",$d0000,$d4000 - $d0000 ; 0xd0000
|
|
|
|
|
|
SECTION "bank35", ROMX, BANK[$35]
|
|
|
|
INCBIN "baserom.gbc",$d4000,$d6000 - $d4000
|
|
|
|
Alphabet1Gfx: ; 0xd6000
|
|
INCBIN "gfx/stage/alphabet_1.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$d61a0,$d6200 - $d61a0
|
|
|
|
Alphabet2Gfx: ; 0xd6200
|
|
INCBIN "gfx/stage/alphabet_2.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$d63a0,$d6450 - $d63a0
|
|
|
|
InGameMenuSymbolsGfx: ; 0xd6450
|
|
INCBIN "gfx/stage/menu_symbols.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$d6490,$d6c00 - $d6490
|
|
|
|
StageRedJapaneseCharactersGfx: ; 0xd6c00
|
|
INCBIN "gfx/stage/red_bottom/japanese_characters.2bpp"
|
|
StageRedJapaneseCharactersGfx2: ; 0xd7000
|
|
INCBIN "gfx/stage/red_bottom/japanese_characters_2.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$d7200,$d8000 - $d7200
|
|
|
|
|
|
SECTION "bank36", ROMX, BANK[$36]
|
|
|
|
INCBIN "baserom.gbc",$d8000,$d8c00 - $d8000
|
|
|
|
SaverTextOffGfx: ; 0xd8c00
|
|
INCBIN "gfx/stage/saver_off.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$d8c40,$da000 - $d8c40
|
|
|
|
CopyrightTextGfx: ; 0xda000
|
|
INCBIN "gfx/copyright_text.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$da400,$dac00 - $da400
|
|
|
|
StageRedFieldBottomGfx1: ; 0xdac00
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_1.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$dad60,$dade0 - $dad60
|
|
|
|
StageRedFieldBottomGfx3: ; 0xdade0
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_3.2bpp"
|
|
|
|
StageRedFieldTopGfx5: ; 0xdae00
|
|
INCBIN "gfx/stage/red_top/red_top_5.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$db000,$db200 - $db000
|
|
|
|
TimerDigitsGfx: ; 0xdb200
|
|
INCBIN "gfx/stage/timer_digits.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$db360,$dbb80 - $db360
|
|
|
|
StageRedFieldTopGfx6: ; 0xdbb80
|
|
INCBIN "gfx/stage/red_top/red_top_6.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$dbbc0,$dc000 - $dbbc0
|
|
|
|
|
|
SECTION "bank37", ROMX, BANK[$37]
|
|
|
|
StageRedFieldBottomGfx2: ; 0xdc000
|
|
INCBIN "gfx/stage/red_bottom/red_bottom_2.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$dc080,$e0000 - $dc080
|
|
|
|
|
|
SECTION "bank38", ROMX, BANK[$38]
|
|
|
|
INCBIN "baserom.gbc",$e0000,$e4000 - $e0000 ; 0xe0000
|
|
|
|
|
|
SECTION "bank39", ROMX, BANK[$39]
|
|
|
|
INCBIN "baserom.gbc",$e4000,$e8000 - $e4000 ; 0xe4000
|
|
|
|
|
|
SECTION "bank3a", ROMX, BANK[$3a]
|
|
|
|
INCBIN "baserom.gbc",$e8000,$ec000 - $e8000 ; 0xe8000
|
|
|
|
|
|
SECTION "bank3b", ROMX, BANK[$3b]
|
|
|
|
INCBIN "baserom.gbc",$ec000,$f0000 - $ec000 ; 0xec000
|
|
|
|
|
|
SECTION "bank3c", ROMX, BANK[$3c]
|
|
|
|
INCBIN "baserom.gbc",$f0000,$f4000 - $f0000 ; 0xf0000
|
|
|
|
|
|
SECTION "bank3d", ROMX, BANK[$3d]
|
|
|
|
INCBIN "baserom.gbc",$f4000,$f8000 - $f4000 ; 0xf4000
|
|
|
|
|
|
SECTION "bank3e", ROMX, BANK[$3e]
|
|
|
|
INCBIN "baserom.gbc",$f8000,$fc000 - $f8000 ; 0xf8000
|
|
|
|
|
|
SECTION "bank3f", ROMX, BANK[$3f]
|
|
|
|
INCBIN "baserom.gbc",$fc000,$fffff - $fc000 ; 0xfc000
|