mirror of
https://github.com/pret/pokepinball.git
synced 2026-09-30 22:17:20 -04:00
14698 lines
275 KiB
NASM
Executable File
14698 lines
275 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
|
|
|
|
INCBIN "baserom.gbc",$4d8,$4ef - $4d8
|
|
|
|
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
|
|
Func_73f: ; 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
|
|
|
|
INCBIN "baserom.gbc",$790,$848 - $790
|
|
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$a21,$ab8 - $a21
|
|
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$b36,$b4c - $b36
|
|
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$dd4,$e21 - $dd4
|
|
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$e4a,$e5d - $e4a
|
|
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$1129,$113a - $1129
|
|
|
|
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 Func_d853
|
|
db Bank(Func_d853), $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
|
|
|
|
INCBIN "baserom.gbc",$20ab,$219c - $20ab
|
|
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$21e5,$28a0 - $21e5
|
|
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$310a,$32aa - $310a
|
|
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$32cc,$3579 - $32cc
|
|
|
|
Func_3579: ; 0x3579
|
|
ld hl, $d47a
|
|
xor a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$3582,$4000 - $3582
|
|
|
|
|
|
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
|
|
|
|
Func_8311: ; 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
|
|
dw $4000
|
|
db $0C, $00
|
|
|
|
dw $4000
|
|
db $0C, $00
|
|
|
|
dw $4000
|
|
db $06, $00
|
|
|
|
dw $4000
|
|
db $06, $00
|
|
|
|
dw $4000
|
|
db $07, $00
|
|
|
|
dw $4000
|
|
db $07, $00
|
|
|
|
dw $4099
|
|
db $06, $00
|
|
|
|
dw $4099
|
|
db $06, $00
|
|
|
|
dw $524F
|
|
db $06, $00
|
|
|
|
dw $524F
|
|
db $06, $00
|
|
|
|
dw $4000
|
|
db $09, $00
|
|
|
|
dw $4000
|
|
db $09, $00
|
|
|
|
dw $59F2
|
|
db $06, $00
|
|
|
|
dw $59F2
|
|
db $06, $00
|
|
|
|
dw $5A7C
|
|
db $09, $00
|
|
|
|
dw $5A7C
|
|
db $09, $00
|
|
|
|
Func_8388: ; 0x8388
|
|
ld a, [$d7c1]
|
|
and a
|
|
jr z, .asm_8398
|
|
ld hl, $d7c3
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$83ba,$867d - $83ba
|
|
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$86a4,$c000 - $86a4
|
|
|
|
|
|
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 Func_73f
|
|
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 Func_73f
|
|
ld a, $30
|
|
ld hl, $5840 ; todo
|
|
ld de, $9c40
|
|
ld bc, $01c0
|
|
call Func_73f
|
|
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 Func_73f
|
|
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 Func_73f
|
|
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
|
|
|
|
Func_d853: ; 0xd853
|
|
ld a, [wScreenState]
|
|
rst $18
|
|
PointerTable_d857: ; 0xd857
|
|
dw Func_d861
|
|
dw Func_d87f
|
|
dw $5909
|
|
dw $5A36
|
|
dw $5AB2
|
|
|
|
Func_d861: ; 0xd861
|
|
xor a
|
|
ld [$d908], a
|
|
ld [$ff8a], a
|
|
ld a, Bank(Func_8311)
|
|
ld hl, Func_8311
|
|
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, $2
|
|
ld hl, $43ba ; todo
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, $3
|
|
ld hl, $6578 ; todo
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, $3
|
|
ld hl, $66c2 ; todo
|
|
call BankSwitch
|
|
ld [$ff8a], a
|
|
ld a, $3
|
|
ld hl, $6d5e ; todo
|
|
call BankSwitch
|
|
call ClearOAMBuffer
|
|
ld [$ff8a], a
|
|
ld a, $2
|
|
ld hl, $44b7 ; todo
|
|
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
|
|
|
|
INCBIN "baserom.gbc",$d909,$dbd4 - $d909
|
|
|
|
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,$eeee - $dc00
|
|
|
|
Func_eeee: ; 0xeeee
|
|
push bc
|
|
ld bc, $0200
|
|
.asm_eef2
|
|
dec bc
|
|
ld a, b
|
|
or c
|
|
jr nz, .asm_eef2
|
|
pop bc
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$eef9,$f178 - $eef9
|
|
|
|
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 Func_73f ; loads the tiles into VRAM
|
|
pop hl
|
|
ret
|
|
|
|
INCBIN "baserom.gbc",$f196,$f1b8 - $f196
|
|
|
|
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)
|
|
|
|
INCBIN "baserom.gbc",$f269,$10000 - $f269
|
|
|
|
|
|
SECTION "bank4", ROMX, BANK[$4]
|
|
|
|
INCBIN "baserom.gbc",$10000,$1003f - $10000
|
|
|
|
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,$10696 - $10157
|
|
|
|
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,$1126c - $1077c
|
|
|
|
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,$1659c - $14091
|
|
|
|
.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
|
|
|
|
INCBIN "baserom.gbc",$1660c,$175f5 - $1660c
|
|
|
|
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,$1c000 - $18000 ; 0x18000
|
|
|
|
|
|
SECTION "bank7", ROMX, BANK[$7]
|
|
|
|
INCBIN "baserom.gbc",$1c000,$1c846 - $1c000
|
|
|
|
.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
|
|
|
|
INCBIN "baserom.gbc",$1c8b6,$20000 - $1c8b6
|
|
|
|
|
|
SECTION "bank8", ROMX, BANK[$8]
|
|
|
|
INCBIN "baserom.gbc",$20000,$24000 - $20000 ; 0x20000
|
|
|
|
|
|
SECTION "bank9", ROMX, BANK[$9]
|
|
|
|
INCBIN "baserom.gbc",$24000,$28000 - $24000 ; 0x24000
|
|
|
|
|
|
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 $8000
|
|
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 $8000
|
|
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 Func_73f
|
|
ld a, $1
|
|
ld [$ff4f], a
|
|
ld a, $31
|
|
ld hl, $4c00 ; todo
|
|
ld de, vBGMap1
|
|
ld bc, $0200
|
|
call Func_73f
|
|
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 Func_73f
|
|
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 Func_73f
|
|
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, $8000
|
|
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]
|
|
|
|
INCBIN "baserom.gbc",$30000,$30253 - $30000 ; 0x30000
|
|
|
|
Func_30253: ; 0x30253
|
|
ld a, [wCurrentMap]
|
|
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]
|
|
|
|
INCBIN "baserom.gbc",$50000,$54000 - $50000 ; 0x50000
|
|
|
|
|
|
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"
|
|
|
|
INCBIN "baserom.gbc",$63000,$64000 - $63000 ; 0x63000
|
|
|
|
|
|
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"
|
|
|
|
INCBIN "baserom.gbc",$77000,$78000 - $77000 ; 0x77000
|
|
|
|
|
|
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,$98000 - $97000 ; 0x97000
|
|
|
|
|
|
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]
|
|
|
|
INCBIN "baserom.gbc",$9c000,$a0000 - $9c000 ; 0x9c000
|
|
|
|
|
|
SECTION "bank28", ROMX, BANK[$28]
|
|
|
|
INCBIN "baserom.gbc",$a0000,$a4000 - $a0000 ; 0xa0000
|
|
|
|
|
|
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,$ac000 - $a8000 ; 0xa8000
|
|
|
|
|
|
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,$bc000 - $b8000 ; 0xb8000
|
|
|
|
|
|
SECTION "bank2f", ROMX, BANK[$2f]
|
|
|
|
INCBIN "baserom.gbc",$bc000,$bf800 - $bc000
|
|
|
|
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,$d8000 - $d4000 ; 0xd4000
|
|
|
|
|
|
SECTION "bank36", ROMX, BANK[$36]
|
|
|
|
INCBIN "baserom.gbc",$d8000,$da000 - $d8000 ; 0xd8000
|
|
|
|
CopyrightTextGfx: ; 0xda000
|
|
INCBIN "gfx/copyright_text.2bpp"
|
|
|
|
INCBIN "baserom.gbc",$da400,$dc000 - $da400 ; 0xda400
|
|
|
|
|
|
SECTION "bank37", ROMX, BANK[$37]
|
|
|
|
INCBIN "baserom.gbc",$dc000,$e0000 - $dc000 ; 0xdc000
|
|
|
|
|
|
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
|