Files
pokepinball/main.asm
T
2015-11-01 12:21:01 -08:00

57600 lines
1.1 MiB
Plaintext
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 WriteDMACodeToHRAM
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, Bank(PlaySong_BankF)
call SetSongBank
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 ; OAM DMA transfer
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, Func_504
.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, Func_e69
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, PointerTable_408
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
Func_3ff: ; 0x3ff
ld a, $1
ld [$ffb5], a
pop hl
pop de
pop bc
pop af
reti
PointerTable_408: ; 0x408
dw Func_fbc
dw Func_fbf
dw Func_fea
dw Func_105d
dw Func_109e
dw Func_10a1
dw Func_10a4
dw Func_10a7
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.
; input: a = index of function in 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
PlaySong: ; 0x490
ld a, [hLoadedROMBank]
push af
ld a, [wCurrentSongBank]
ld [hLoadedROMBank], a
ld [$2000], a
ld a, e
ld [$d7bf], a
ld a, [wCurrentSongBank]
ld [$d7c0], a
call PlaySong_BankF ; this function is replicated in multiple banks.
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, [wCurrentSongBank]
ld [hLoadedROMBank], a
ld [$2000], a
call PlaySoundEffect_BankF ; this function is replicated in multiple banks
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
Func_4d8: ; 0x4d8
push bc
push de
push hl
ld a, [$ddcb]
ld hl, $ddfd
or [hl]
ld hl, $de2f
or [hl]
and $1
call z, PlaySoundEffect
pop hl
pop de
pop bc
ret
PlayCry: ; 0x4ef
; Plays a Pokemon cry.
; Input: e = mon id
ld a, [hLoadedROMBank]
push af
ld a, [wCurrentSongBank]
ld [hLoadedROMBank], a
ld [$2000], a
call PlayCry_BankF ; this function is replicated in multiple banks
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
Func_504: ; 0x504
ld a, [hLoadedROMBank]
push af
ld a, [wCurrentSongBank]
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
SetSongBank: ; 0x52c
di
ld [wCurrentSongBank], 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
WriteDMACodeToHRAM: ; 0x5f7
; Initializes registers $ff80 - $ff8a
ld c, $80
ld b, $a ; number of bytes to load
ld hl, DMARoutine
.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
DMARoutine:
; This routine is initially loaded into $ff80 - $ff8a by WriteDMACodeToHRAM.
ld a, (wOAMBuffer >> 8)
ld [$ff00+$46], a ; start DMA
ld a, $28
.waitLoop ; wait for DMA to finish
dec a
jr nz, .waitLoop
ret
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
CopyDataToRAM: ; 0x666 spooky
; Copies data from any bank to either working RAM or video RAM
; Input: hl = address of data to copy
; a = bank of data to copy
; de = destination for data
; bc = number of bytes to copy
bit 7, h
jr nz, .copyToVideoRAM
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
scf
jr .copyData
.copyToVideoRAM
ld [$4000], a
and a
.copyData
push af
.copyLoop
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, c
or b
jr nz, .copyLoop
pop af
ret nc
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
ReadByteFromBank: ; 0x68f
; Input: a = bank
; hl = address of byte to read
; Output: a = byte at a:hl
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, CopyDataToRAM
; fall through
LoadVRAMData: ; 0x73f
; This loads some data into VRAM. It waits for the LCD H-Blank to copy the data 4 bytes at a time.
; input: hl = source of data
; a = bank of data to load
; de = destination of data
; bc = number of bytes to copy
bit 7, h
jr nz, .asm_752
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
scf
jr .asm_756
.asm_752
ld [$4000], a
and a
.asm_756
push af
call WaitForLCD
.loop
call Func_61b
.waitForHBlank
ld a, [$ff41]
and $3
jr nz, .waitForHBlank
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec bc
dec bc
dec bc
dec bc
nop
nop
nop
nop
ld a, b
or c
jr nz, .loop
pop af
ret nc
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
Func_790: ; 0x790
push hl
ld hl, $ff40
bit 7, [hl]
pop hl
jp nz, Func_7dc
bit 7, h
jr nz, .asm_7ad
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
scf
jr .asm_7b1
.asm_7ad
ld [$4000], a
and a
.asm_7b1
push af
ld a, e
bit 6, e
ld de, $ff68
jr z, .asm_7bf
res 6, a
ld de, $ff6a
.asm_7bf
set 7, a
ld [de], a
inc de
.asm_7c3
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
dec bc
dec bc
dec bc
dec bc
ld a, b
or c
jr nz, .asm_7c3
pop af
ret nc
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
Func_7dc: ; 0x7dc
bit 7, h
jr nz, .asm_7ef
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
scf
jr .asm_7f3
.asm_7ef
ld [$4000], a
and a
.asm_7f3
push af
ld a, e
bit 6, e
ld de, $ff68
jr z, .asm_801
res 6, a
ld de, $ff6a
.asm_801
push hl
ld h, d
ld l, e
set 7, a
call PutTileInVRAM
inc de
pop hl
call WaitForLCD
.asm_80e
call Func_61b
.asm_811
ld a, [$ff41]
and $3
jr nz, .asm_811
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec bc
dec bc
dec bc
dec bc
nop
nop
nop
nop
ld a, b
or c
jr nz, .asm_80e
pop af
ret nc
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
PutTileInVRAM: ; 0x848
; Puts a tile in VRAM.
; input: a = tile number
; hl = pointer to VRAM location where tile should be placed
push af
call WaitForLCD
call Func_61b
.asm_84f
ld a, [$ff41]
and $3
jr nz, .asm_84f ; wait for lcd controller to finish transferring data
pop af
ld [hl], a ; Store tile number in VRAM background map
ret
Func_858: ; 0x858
push af
call WaitForLCD
call Func_61b
.asm_85f
ld a, [$ff41]
and $3
jr nz, .asm_85f
ld a, $1
ld [$ff4f], a
pop af
ld [hl], a
xor a
ld [$ff4f], a
ret
Func_86f: ; 0x86f
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
ld a, [$ff40]
bit 7, a
jr nz, .asm_8ac
ld a, $1
ld [$ff4f], a
ld b, $4
.asm_887
push bc
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld bc, $001a
add hl, bc
pop bc
dec b
jr nz, .asm_887
xor a
ld [$ff4f], a
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
.asm_8ac
ld b, $4
.asm_8ae
push bc
ld a, [de]
call Func_858
inc hl
inc de
ld a, [de]
call Func_858
inc hl
inc de
ld a, [de]
call Func_858
inc hl
inc de
ld a, [de]
call Func_858
inc hl
inc de
ld a, [de]
call Func_858
inc hl
inc de
ld a, [de]
call Func_858
inc de
ld bc, $001b
add hl, bc
pop bc
dec b
jr nz, .asm_8ae
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
Func_8e1: ; 0x8e1
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
ld a, [$ff40]
bit 7, a
jr nz, .asm_902
ld a, c
ld [hli], a
.asm_8f5
ld a, [de]
ld [hl], a
inc de
dec b
jr nz, .asm_8f5
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
.asm_902
ld a, c
call PutTileInVRAM
inc hl
.asm_907
ld a, [de]
call PutTileInVRAM
inc de
dec b
jr nz, .asm_907
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
ClearOAMBuffer: ; 0x916
; Clears the OAM buffer by loading $f0 into all of the entries.
ld hl, wOAMBuffer ; 0xd000
ld b, 4 * 40 ; wOAMBuffer is 4 * 40 bytes long (40 OAM entries, 4 bytes each)
ld a, $f0 ; byte to write
.loop
ld [hli], a
dec b
jr nz, .loop
xor a
ld [$d802], a
ret
Func_926: ; 0x926
ld a, [$d802]
cp $a0
jr nc, .asm_93a
ld l, a
ld h, $d0
cpl
add $a1
ld b, a
ld a, $f0
.asm_936
ld [hli], a
dec b
jr nz, .asm_936
.asm_93a
xor a
ld [$d802], a
ret
Func_93f: ; 0x93f
push bc
rst $10
pop bc
dec bc
ld a, c
or b
jr nz, Func_93f
ret
Func_948: ; 0x948
ld de, $06d6
.asm_94b
nop
nop
nop
dec de
ld a, d
or e
jr nz, .asm_94b
dec bc
ld a, b
or c
jr nz, Func_948
ret
GenRandom: ; 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 GenRandom
ld [$afff], a
ret
INCBIN "baserom.gbc",$9c4,$9fa - $9c4
Func_9fa: ; 0x9fa
ld a, [$d810]
ld d, a
ld bc, $d812
ld hl, $d831
ld e, $18
.asm_a06
ld a, [bc]
sub [hl]
jr nc, .asm_a0b
add d
.asm_a0b
ld [bc], a
dec e
jr nz, .asm_a06
ld bc, $d82a
ld hl, $d812
ld e, $1f
.asm_a17
ld a, [bc]
sub [hl]
jr nc, .asm_a1c
add d
.asm_a1c
ld [bc], a
dec e
jr nz, .asm_a17
ret
Func_a21: ; 0xa21
push bc
push hl
ld c, a
ld b, $0
ld hl, $0a38
add hl, bc
ld l, [hl]
call GenRandom
call Func_dd4
inc h
srl h
ld a, h
pop hl
pop bc
ret
INCBIN "baserom.gbc",$a38,$ab8 - $a38
ReadJoypad: ; 0xab8
; Reads the current state of the joypad and saves the state into
; some registers the game uses during gameplay. It remembers the joypad state
; from the current frame, previous frame, and two frames ago.
ld a, $20
ld [$ff00], a
ld a, [$ff00]
ld a, [$ff00]
and $f
swap a
ld b, a
ld a, $30
ld [$ff00], a
ld a, $10
ld [$ff00], a
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
and $f
or b
cpl ; a contains currently-pressed buttons
ld [hJoypadState], a
ld a, $30
ld [$ff00], a
ld a, [hJoypadState]
ld hl, hPreviousJoypadState
xor [hl] ; a contains buttons that are different from previous frame
push af
ld hl, hJoypadState
and [hl] ; a contains newly-pressed buttons compared to last frame
ld [hNewlyPressedButtons], a
ld [hPressedButtons], a
pop af
ld hl, hPreviousJoypadState
and [hl] ; a contains newly-pressed buttons compared to two frames ago
ld [hPrevPreviousJoypadState], a
ld a, [hJoypadState]
and a
jr z, .asm_b15
ld hl, hPreviousJoypadState
cp [hl]
jr nz, .asm_b15
; button(s) is pressed, and they're identical to the buttons pressed last frame.
; this code is related to holding down a button for an extended period of time.
ld hl, $ff9d
dec [hl]
jr nz, .asm_b1a
ld a, [hJoypadState]
ld [hPressedButtons], a
ld a, [$d807]
ld [$ff9d], a
jr .asm_b1a
.asm_b15
ld a, [$d806]
ld [$ff9d], a
.asm_b1a
ld a, [hJoypadState]
ld [hPreviousJoypadState], a
ld hl, $d808
ld a, [hJoypadState]
or [hl]
ld [hli], a
ld a, [hNewlyPressedButtons]
or [hl]
ld [hli], a
ld a, [hPressedButtons]
or [hl]
ld [hli], a
ret
Func_b2e: ; 0xb2e
ld hl, $d808
xor a
ld [hli], a
ld [hli], a
ld [hl], a
ret
IsKeyPressed2: ; 0xb36
ld a, [hJoypadState]
and [hl]
jr z, .asm_b3e
cp [hl]
jr z, .asm_b48
.asm_b3e
inc hl
ld a, [hJoypadState]
and [hl]
ret z
cp [hl]
jr z, .asm_b48
xor a
ret
.asm_b48
ld a, $1
and a
ret
IsKeyPressed: ; 0xb4c
; Checks if a key for the specified key config is pressed.
; input: hl = pointer to key config byte pair (e.g. wKeyConfigLeftFlipper)
; output: zero flag is set if a corresponding key is pressed
; zero flag is reset if no corresponding key is pressed
ld a, [hJoypadState]
and [hl]
jr z, .asm_b58
cp [hl]
jr nz, .asm_b58
ld a, [hNewlyPressedButtons]
and [hl]
ret nz
.asm_b58
inc hl
ld a, [hJoypadState]
and [hl]
ret z
cp [hl]
jr nz, .asm_b64
ld a, [hNewlyPressedButtons]
and [hl]
ret
.asm_b64
xor a
ret
Func_b66: ; 0xb66
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_b73
xor a
ld [$ffa3], a
ld [$ffa4], a
ld [$ffa5], a
ret
.asm_b73
ld de, $ff68
ld hl, $d200 ; todo
ld b, $0
ld c, $20
.asm_b7d
ld a, b
ld [$ff68], a
inc b
ld a, [$ff69]
ld [hli], a
ld a, b
ld [$ff68], a
inc b
ld a, [$ff69]
ld [hli], a
dec c
jr nz, .asm_b7d
ld b, $0
ld c, $20
.asm_b92
ld a, b
ld [$ff6a], a
inc b
ld a, [$ff6b]
ld [hli], a
ld a, b
ld [$ff6a], a
inc b
ld a, [$ff6b]
ld [hli], a
dec c
jr nz, .asm_b92
ld de, $ff68
ld b, $2
.asm_ba8
ld a, $80
ld [de], a
inc de
ld c, $20
.asm_bae
ld a, $ff
ld [de], a
ld [hli], a
ld a, $7f
ld [de], a
ld [hli], a
dec c
jr nz, .asm_bae
inc de
dec b
jr nz, .asm_ba8
ret
Func_bbe: ; 0xbbe
ld a, [hGameBoyColorFlag]
and a
jp nz, Func_c19
ld hl, $ffa3
ld de, $d80c
ld b, $3
.asm_bcc
ld a, [de]
and $55
ld c, a
ld a, [de]
and $aa
srl a
and c
ld [hli], a
inc de
dec b
jr nz, .asm_bcc
ld bc, $0002
call Func_93f
ld hl, $ffa3
ld de, $d80c
ld b, $3
.asm_be9
ld a, [de]
and $aa
srl a
add [hl]
ld [hli], a
inc de
dec b
jr nz, .asm_be9
ld bc, $0002
call Func_93f
ld hl, $ffa3
ld de, $d80c
ld b, $3
.asm_c02
ld a, [de]
and $55
ld c, a
ld a, [de]
and $aa
srl a
or c
add [hl]
ld [hli], a
inc de
dec b
jr nz, .asm_c02
ld bc, $0002
call Func_93f
ret
Func_c19: ; 0xc19
ld b, $10
.asm_c1b
push bc
ld de, $d200
ld hl, $d280
call Func_c2d
call Func_d61
pop bc
dec b
jr nz, .asm_c1b
ret
Func_c2d: ; 0xc2d
ld a, b
cp $1
jr z, .asm_c49
ld c, $40
.asm_c34
push bc
ld a, [hli]
sub $42
ld c, a
ld a, [hld]
sbc $8
ld b, a
call Func_c60
ld a, c
ld [hli], a
ld a, b
ld [hli], a
pop bc
dec c
jr nz, .asm_c34
ret
.asm_c49
ld c, $40
.asm_c4b
push bc
ld a, [hli]
sub $21
ld c, a
ld a, [hld]
sbc $4
ld b, a
call Func_c60
ld a, c
ld [hli], a
ld a, b
ld [hli], a
pop bc
dec c
jr nz, .asm_c4b
ret
Func_c60: ; 0xc60
push hl
ld a, [de]
and $1f
ld l, a
ld a, c
and $1f
cp l
jr nc, .asm_c70
ld a, c
and $e0
or l
ld c, a
.asm_c70
ld a, [de]
and $e0
ld l, a
inc de
ld a, [de]
srl a
rr l
srl a
rr l
ld a, c
and $e0
ld h, a
ld a, b
srl a
rr h
srl a
rr h
ld a, h
cp l
jr nc, .asm_ca3
ld h, $0
sla l
rl h
sla l
rl h
ld a, c
and $1f
or l
ld c, a
ld a, b
and $7c
or h
ld b, a
.asm_ca3
ld a, [de]
and $7c
ld l, a
ld a, b
and $7c
cp l
jr nc, .asm_cb2
ld a, b
and $3
or l
ld b, a
.asm_cb2
inc de
pop hl
ret
Func_cb5: ; 0xcb5
ld a, [hGameBoyColorFlag]
and a
jp nz, Func_cee
ld hl, $ffa3
ld b, $3
.asm_cc0
push bc
push hl
ld b, $3
.asm_cc4
ld a, [hl]
and $55
ld c, a
ld a, [hl]
and $aa
srl a
or c
cpl
inc a
add [hl]
ld [hli], a
dec b
jr nz, .asm_cc4
ld bc, $0002
call Func_93f
pop hl
pop bc
dec b
jr nz, .asm_cc0
xor a
ld hl, $ffa3
ld [hli], a
ld [hli], a
ld [hl], a
ld bc, $0002
call Func_93f
ret
Func_cee: ; 0xcee
ld hl, $d280
ld de, $ff68
call Func_d9d
ld hl, $d2c0
ld de, $ff6a
call Func_d9d
ld b, $10
.asm_d02
push bc
ld hl, $d280
call Func_d11
call Func_d61
pop bc
dec b
jr nz, .asm_d02
ret
Func_d11: ; 0xd11
ld b, $40
.asm_d13
ld a, [hl]
and $1f
add $2
ld e, a
cp $1f
jr c, .asm_d1f
ld e, $1f
.asm_d1f
ld a, [hl]
and $e0
or e
ld [hl], a
ld a, [hli]
and $e0
ld e, [hl]
dec hl
srl e
rr a
srl e
rr a
add $10
ld e, a
jr nc, .asm_d38
ld e, $f8
.asm_d38
ld d, $0
sla e
rl d
sla e
rl d
ld a, [hl]
and $1f
or e
ld [hli], a
ld a, [hl]
and $7c
or d
ld [hl], a
ld a, [hl]
and $7c
add $8
ld e, a
cp $7c
jr c, .asm_d58
ld e, $7c
.asm_d58
ld a, [hl]
and $3
or e
ld [hli], a
dec b
jr nz, .asm_d13
ret
Func_d61: ; 0d61
ld a, [$ffff]
res 0, a
ld [$ffff], a
ld hl, $d280
ld de, $ff68
ld a, $80
ld [de], a
inc de
.asm_d71
ld a, [$ff44]
cp $90
jr c, .asm_d71
ld b, $10
.asm_d79
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
dec b
jr nz, .asm_d79
inc de
ld a, $80
ld [de], a
inc de
ld b, $10
.asm_d8b
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
dec b
jr nz, .asm_d8b
ld a, [$ffff]
set 0, a
ld [$ffff], a
ret
Func_d9d: ; 0xd9d
ld b, $0
ld c, e
inc c
call WaitForLCD
.asm_da4
call Func_61b
.asm_da7
ld a, [$ff41]
and $3
jr nz, .asm_da7 ; wait for lcd controller to finish transferring data
ld a, b
ld [de], a
ld a, [$ff00+c]
ld [hli], a
inc b
ld a, b
ld [de], a
ld a, [$ff00+c]
ld [hli], a
inc b
ld a, b
ld [de], a
ld a, [$ff00+c]
ld [hli], a
inc b
ld a, b
ld [de], a
ld a, [$ff00+c]
ld [hli], a
inc b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ld a, b
cp $40
jr nz, .asm_da4
ret
Func_dd4: ; 0xdd4
push bc
ld c, l
ld b, $0
ld hl, $0000
bit 0, a
jr z, .asm_de0
add hl, bc
.asm_de0
sla c
rl b
bit 1, a
jr z, .asm_de9
add hl, bc
.asm_de9
sla c
rl b
bit 2, a
jr z, .asm_df2
add hl, bc
.asm_df2
sla c
rl b
bit 3, a
jr z, .asm_dfb
add hl, bc
.asm_dfb
sla c
rl b
bit 4, a
jr z, .asm_e04
add hl, bc
.asm_e04
sla c
rl b
bit 5, a
jr z, .asm_e0d
add hl, bc
.asm_e0d
sla c
rl b
bit 6, a
jr z, .asm_e16
add hl, bc
.asm_e16
sla c
rl b
bit 7, a
jr z, .asm_e1f
add hl, bc
.asm_e1f
pop bc
ret
ConvertHexByteToDecWord: ; 0xe21
; Convert the base-16 value in register a into a Binary Coded Decimal (base-10) word.
; Example: If a = $97, de = $0151.
ld b, a
ld hl, $0e3a ; todo
ld de, $0000
.asm_e28
srl b
ld a, [hli]
jr nc, .asm_e34
add e
daa
ld e, a
ld a, [hl]
adc d
daa
ld d, a
.asm_e34
inc hl
ld a, b
and a
jr nz, .asm_e28
ret
PowersOfTwo: ; 0xe3a
dw $0001
dw $0002
dw $0004
dw $0008
dw $0016
dw $0032
dw $0064
dw $0128
Func_e4a: ; 0xe4a
ld a, [hl]
cp $64
jr z, .asm_e53
inc a
ld [hl], a
scf
ret
.asm_e53
and a
ret
Func_e55: ; 0xe55
cp c
jr c, .asm_e5b
sub c
jr Func_e55
.asm_e5b
and a
ret
Func_e5d: ; 0xe5d
ld a, $1
ld [$d84a], a
.asm_e62
ld a, [$d84a]
and a
jr nz, .asm_e62
ret
Func_e69: ; 0xe69
ld a, [$ff44]
cp $90
jr nc, Func_e69
.asm_e6f
ld a, [$ff41]
and $3
jr nz, .asm_e6f
ld a, $a
.asm_e77
dec a
jr nz, .asm_e77
ld hl, $c640
call Func_eef
push hl
ld hl, $9c00
call Func_ef8
pop hl
call Func_eef
push hl
ld hl, $9c04
call Func_ef8
pop hl
call Func_eef
push hl
ld hl, $9c08
call Func_ef8
pop hl
call Func_eef
push hl
ld hl, $9c0c
call Func_ef8
pop hl
call Func_eef
push hl
ld hl, $9c10
call Func_ef8
pop hl
ld hl, $c6c0
call Func_eef
push hl
ld hl, $9c20
call Func_ef8
pop hl
call Func_eef
push hl
ld hl, $9c24
call Func_ef8
pop hl
call Func_eef
push hl
ld hl, $9c28
call Func_ef8
pop hl
call Func_eef
push hl
ld hl, $9c2c
call Func_ef8
pop hl
call Func_eef
push hl
ld hl, $9c30
call Func_ef8
pop hl
ret
Func_eef: ; 0xeef
ld a, [hli]
ld b, a
ld a, [hli]
ld c, a
ld a, [hli]
ld d, a
ld a, [hli]
ld e, a
ret
Func_ef8: ; 0xef8
ld a, [$ff41]
and $3
jr nz, Func_ef8
ld a, b
ld [hli], a
ld a, c
ld [hli], a
ld a, d
ld [hli], a
ld a, e
ld [hli], a
ld a, $a
.asm_f08
dec a
jr nz, .asm_f08
ret
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
SaveData: ; 0xf1a
; Input: hl = data to save
; bc = number of bytes to save
; de = destination for saved data
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
Func_fbc: ; 0xfbc
jp Func_3ff
Func_fbf: ; 0xfbf
ld hl, $ffa8
ld c, [hl]
ld a, [$ff44]
cp c
jp c, Func_3ff
inc c
inc c
cp c
jp nc, Func_3ff
ld a, [$ffaf]
ld c, a
ld a, [$ff9e]
xor $10
and c
ld c, a
ld hl, $ff41
.asm_fdb
ld a, [hl]
and $3
jr nz, .asm_fdb
ld a, [$ff40]
and $80
or c
ld [$ff40], a
jp Func_3ff
Func_fea: ; 0xfea
ld hl, $ffa8
ld a, [$ffaa]
cp [hl]
jr nz, .asm_1015
ld a, [$ff44]
cp [hl]
jp nz, Func_3ff
ld a, [$ff9e]
xor $18
ld c, a
ld a, [$ffac]
ld b, a
ld hl, $ff41
.asm_1003
ld a, [hl]
and $3
jr nz, .asm_1003
ld a, [$ff40]
and $80
or c
ld [$ff40], a
ld a, b
ld [$ff42], a
jp Func_3ff
.asm_1015
ld a, [$ff44]
cp [hl]
jr nz, .asm_1037
ld a, [$ffa8]
ld hl, $ffaa
sub [hl]
add $40
ld c, a
ld a, [$ffaa]
ld b, a
ld hl, $ff41
.asm_1029
ld a, [hl]
and $3
jr nz, .asm_1029
ld a, c
ld [$ff42], a
ld a, b
ld [$ff45], a
jp Func_3ff
.asm_1037
ld hl, $ffaa
ld a, [$ff44]
cp [hl]
jp nz, Func_3ff
ld a, [$ff9e]
xor $18
ld c, a
ld a, [$ffac]
ld b, a
ld hl, $ff41
.asm_104b
ld a, [hl]
and $3
jr nz, .asm_104b
ld a, [$ff40]
and $80
or c
ld [$ff40], a
ld a, b
ld [$ff42], a
jp Func_3ff
Func_105d: ; 0x105d
ld hl, $ffa8
ld a, [$ff44]
cp [hl]
jr z, .asm_1069
dec a
cp [hl]
jr nz, .asm_1080
.asm_1069
ld a, [$ffaa]
ld c, a
ld a, [$ffac]
ld b, a
ld hl, $ff41
.asm_1072
ld a, [hl]
and $3
jr nz, .asm_1072
ld a, b
ld [$ff42], a
ld a, c
ld [$ff45], a
jp Func_3ff
.asm_1080
ld hl, $ffaa
ld a, [$ff44]
cp [hl]
jr z, .asm_108d
dec a
cp [hl]
jp nz, Func_3ff
.asm_108d
ld a, [$ffae]
ld b, a
ld hl, $ff41
.asm_1093
ld a, [hl]
and $3
jr nz, .asm_1093
ld a, b
ld [$ff42], a
jp Func_3ff
Func_109e: ; 0x109e
jp Func_3ff
Func_10a1: ; 0x10a1
jp Func_3ff
Func_10a4: ; 0x10a4
jp Func_3ff
Func_10a7: ; 0x10a7
jp Func_3ff
Func_10aa: ; 0x10aa
ld c, a
ld a, [hli]
ld b, a
.asm_10ad
push bc
ld a, c
ld c, [hl]
inc hl
ld b, [hl]
inc hl
push af
ld a, [bc]
ld e, a
inc bc
ld a, [bc]
ld d, a
inc bc
pop af
push hl
call Func_10c5
pop hl
pop bc
dec b
jr nz, .asm_10ad
ret
Func_10c5: ; 0x10c5
push af
ld a, [$ff40]
bit 7, a
jr z, .asm_10d2
.asm_10cc
ld a, [$ff44]
cp $88
jr nc, .asm_10cc
.asm_10d2
pop af
ld hl, $d7fb
ld l, [hl]
ld h, $cb
inc bc
ld [hl], c
inc h
ld [hl], b
inc h
ld [hl], a
inc h
ld [hl], e
inc h
ld [hl], d
ld e, $ff
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
dec bc
ld a, [bc]
ld hl, $d7fa
add [hl]
cp $30
jr c, .asm_10fe
ld a, [bc]
ld e, $0
.asm_10fe
add $4
ld [hl], a
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ld hl, $d7fb
ld l, [hl]
ld h, $ca
inc l
ld [hl], $0
dec l
ld [hl], e
ld hl, $d7fb
inc [hl]
ld a, [$ff40]
bit 7, a
ret nz
ld a, [$ffff]
push af
res 0, a
ld [$ffff], a
call Func_113a
pop af
ld [$ffff], a
ret
Func_1129: ; 0x1129
ld a, [$d7fb]
ld [$d7fc], a
ret
Func_1130: ; 0x1130
push hl
ld a, [$d7fb]
ld hl, $d7fc
cp [hl]
pop hl
ret
Func_113a: ; 0x113a
ld hl, $d7fc
ld a, [$d7fb]
cp [hl]
ret z
ld l, [hl]
ld h, $ca
ld [hl], $ff
.loop
ld a, [hl]
and a
jr z, .done
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 .loop
.done
ld a, l
ld [$d7fc], a
ld hl, $d7fb
cp [hl]
ret nz
xor a
ld [$d7fa], a
ret
Func_117a: ; 0x117a
jp [hl]
LoadTileLists: ; 0x117b
; Loads a series of defined tile ids into VRAM
; input: de = pointer to data structure
; data structure: list of VRAM tile data with the following format
; [num tiles][destination pointer][list of tile ids]
ld h, d
ld l, e
.loadTileSequence
ld a, [hli]
and a
ret z
ld b, a
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a ; de = destination for tile data
.loadTileData
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .loadTileData
jr .loadTileSequence
Func_118d: ; 0x118d
ld a, $1
ld [$ff4f], a
call LoadTileLists
xor a
ld [$ff4f], a
ret
INCBIN "baserom.gbc",$1198,$12a1 - $1198
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,$1f0b - $1ed9
LoadOAMData2: ; 0x1f0b
; This function loads OAM data, but it adds b and c to the x and y values
; input: a = OAM data id (see OAMDataPointers2)
push bc
push de
push hl
ld e, a
ld d, $0
sla e
rl d
ld a, [hLoadedROMBank]
push af
ld a, Bank(OAMDataPointers2)
ld [hLoadedROMBank], a
ld [$2000], a
ld hl, OAMDataPointers2
jr asm_1f3b
LoadOAMData: ; 0x1f24
; This function loads OAM data, but it adds b and c to the x and y values
; 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
asm_1f3b: ; 0x1f3b
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, Bank(Func_3c000)
ld hl, Func_3c000
call BankSwitch
ld a, $1
ld [$d85d], a
ld a, $37
ld [$d470], a
ld [$d471], a
ld [$d472], a
ld a, SCREEN_ERASE_ALL_DATA
ld [wCurrentScreen], a
.asm_2025
call Func_2034
call Func_2043
call Func_926
call Func_b2e
rst $10
jr .asm_2025
Func_2034: ; 0x2034
ld a, [$d804]
and a
jr z, .asm_203f
dec a
ld [$d804], a
ret
.asm_203f
ld [$d803], a
ret
Func_2043: ; 0x2043
ld a, [wCurrentScreen]
call CallInFollowingTable
CallTable_2049: ; 0x2049
; First two bytes is function pointer.
; Third byte is bank of function.
; Fourth byte seems to be unused.
dw Func_8000
db Bank(Func_8000), $00
; SCREEN_ERASE_ALL_DATA
dw HandleEraseAllDataMenu
db Bank(HandleEraseAllDataMenu), $00
; SCREEN_COPYRIGHT
dw HandleCopyrightScreen
db Bank(HandleCopyrightScreen), $00
; SCREEN_TITLESCREEN
dw HandleTitlescreen
db Bank(HandleTitlescreen), $00
; SCREEN_PINBALL_GAME
dw HandlePinballGame
db Bank(HandlePinballGame), $00
; SCREEN_POKEDEX
dw HandlePokedexScreen
db Bank(HandlePokedexScreen), $00
; SCREEN_OPTIONS
dw HandleOptionsScreen
db Bank(HandleOptionsScreen), $00
; SCREEN_HIGH_SCORES
dw HandleHighScoresScreen
db Bank(HandleHighScoresScreen), $00
; SCREEN_FIELD_SELECT
dw HandleFieldSelectScreen
db Bank(HandleFieldSelectScreen), $00
; end of call table
Func_206d: ; 0x206d
ld a, [hLoadedROMBank]
push af
ld a, Bank(Func_8d17)
ld [hLoadedROMBank], a
ld [$2000], a
call Func_8d17
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, Bank(Func_8ee0)
ld [hLoadedROMBank], a
ld [$2000], a
call Func_8ee0
jr c, .asm_20a3
pop af
ld [hLoadedROMBank], a
ld [$2000], a
and a
ret
.asm_20a3
pop af
ld [hLoadedROMBank], a
ld [$2000], a
scf
ret
Func_20ab: ; 0x20ab
push af
xor a
ld [$ffb6], a
jr .asm_20c6
push af
ld a, b
xor c
ld [$ffb6], a
bit 7, b
jr z, .asm_20be
ld a, b
cpl
inc a
ld b, a
.asm_20be
bit 7, c
jr z, .asm_20c6
ld a, c
cpl
inc a
ld c, a
.asm_20c6
push de
push hl
ld a, b
cp c
jr nc, .asm_20ce
ld b, c
ld c, a
.asm_20ce
ld h, $3e
ld l, c
ld e, [hl]
inc h
ld d, [hl]
ld l, b
ld a, [hl]
dec h
ld l, [hl]
ld h, a
add hl, de
push af
ld d, $3e
ld a, b
sub c
ld e, a
ld a, [de]
ld c, a
inc d
ld a, [de]
ld b, a
ld a, l
sub c
ld l, a
ld a, h
sbc b
ld h, a
jr nc, .asm_20f1
pop af
ccf
jr .asm_20f2
.asm_20f1
pop af
.asm_20f2
rr h
rr l
ld b, h
ld c, l
ld a, [$ffb6]
rlca
jr nc, .asm_2107
ld a, c
cpl
add $1
ld c, a
ld a, b
cpl
adc $0
ld b, a
.asm_2107
pop hl
pop de
pop af
ret
Func_210b: ; 0x210b
push af
push hl
ld a, b
xor d
ld [$ffb7], a
bit 7, b
jr z, .asm_211f
ld a, c
cpl
add $1
ld c, a
ld a, b
cpl
adc $0
ld b, a
.asm_211f
push bc
ld b, e
call Func_20ab
ld l, c
ld h, b
ld bc, $0080
add hl, bc
ld l, h
ld h, $0
pop bc
ld c, e
call Func_20ab
add hl, bc
ld a, [$ffb7]
rlca
jr nc, .asm_2142
ld a, l
cpl
add $1
ld l, a
ld a, h
cpl
adc $0
ld h, a
.asm_2142
ld c, l
ld b, h
pop hl
pop af
ret
Func_2147: ; 0x2147
add $40
; fall through
Func_2149: ; 0x2149
push hl
ld [$ffb6], a
and $7f
cp $40
jr c, .asm_2155
cpl
add $81
.asm_2155
ld hl, $26be ; todo
ld e, a
ld d, $0
add hl, de
ld e, [hl]
pop hl
ld d, $0
ld a, [$ffb6]
sla a
ret nc
ld d, $ff
ret
ApplyGravityToBall: ; 0x2168
; Adds a constant to the pinball's y velocity.
ld a, [$d549]
and a
ret z
ld de, $000b ; gravity added to y velocity every frame
ld hl, wBallYVelocity
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ld a, l
ld [wBallYVelocity], a
ld a, h
ld [wBallYVelocity + 1], a
ret
LimitBallVelocity: ; 0x2180
; Ensures that the ball's x and y velocity are kept under a threshold.
; The ball can travel at a higher max speed when moving diagonally, since it
; limits the x and y components independently.
ld hl, wBallXVelocity + 1
call _LimitBallVelocity
ld hl, wBallYVelocity + 1
; fall through
_LimitBallVelocity: ; 0x2189
ld a, [hl]
bit 7, a ; is it negative velocity? (left or up)
jr nz, .negativeVelocity
cp $8
ret c
ld a, $7 ; max positive velocity
ld [hl], a
ret
.negativeVelocity
cp $f9
ret nc
ld a, $f9 ; max negative velocity
ld [hl], a
ret
MoveBallPosition: ; 0x219c
; Updates the ball's position according to its velocity
ld a, [wBallXPos]
ld [wPreviousBallXPos], a
ld a, [wBallXPos + 1]
ld [wPreviousBallXPos + 1], a
ld a, [wBallYPos]
ld [wPreviousBallYPos], a
ld a, [wBallYPos + 1]
ld [wPreviousBallYPos + 1], a
ld de, wBallXVelocity + 1
ld hl, wBallXPos
call AddVelocityToPosition
ld de, wBallYVelocity + 1
ld hl, wBallYPos
; fall through
AddVelocityToPosition: ; 0x21c3
ld a, [de]
bit 7, a
jr nz, .asm_21d1
cp $5
jr c, .asm_21da
ld bc, $04ff
jr .asm_21de
.asm_21d1
cp $fc
jr nc, .asm_21da
ld bc, $fb01
jr .asm_21de
.asm_21da
ld b, a
dec de
ld a, [de]
ld c, a
.asm_21de
ld a, [hl]
add c
ld [hli], a
ld a, [hl]
adc b
ld [hl], a
ret
Func_21e5: ; 0x21e5
cpl
inc a
; fall through
Func_21e7: ; 0x21e7
push hl
push bc
push de
ld [$ff8c], a
call Func_2147
ld a, e
ld [$ff8d], a
ld a, d
ld [$ff8e], a
call Func_210b
ld l, c
ld h, b
pop bc
push bc
ld a, [$ff8c]
call Func_2149
ld a, e
ld [$ff8f], a
ld a, d
ld [$ff90], a
call Func_210b
add hl, bc
pop de
pop bc
push hl
push de
ld a, [$ff8f]
ld e, a
ld a, [$ff90]
cpl
ld d, a
call Func_210b
ld l, c
ld h, b
pop bc
ld a, [$ff8d]
ld e, a
ld a, [$ff8e]
ld d, a
call Func_210b
add hl, bc
ld d, h
ld e, l
pop bc
pop hl
ret
Func_222b: ; 0x222b
push hl
ld hl, $d7f8
ld [hl], $ff
bit 7, d
jr nz, .asm_2297
ld [hl], $0
ld a, d
cp $3
jr c, .asm_2254
ld a, $ff
ld [$d803], a
ld a, $1
ld [$d804], a
ld a, [wFlipperCollision]
and a
jr nz, .asm_2254
push de
ld de, $0008
call Func_4d8
pop de
.asm_2254
srl d
rr e
srl d
rr e
ld h, d
ld l, e
srl d
rr e
ld a, [$d7eb]
and a
jr z, .asm_226c
.asm_2268
add hl, de
dec a
jr nz, .asm_2268
.asm_226c
ld d, h
ld e, l
ld a, e
cpl
add $1
ld e, a
ld a, d
cpl
adc $0
ld d, a
ld a, [wBallSpin]
sra a
ld l, a
ld h, $0
bit 7, l
jr z, .asm_2286
ld h, $ff
.asm_2286
add hl, bc
ld b, h
ld c, l
push bc
sla c
rl b
sla c
rl b
ld a, b
ld [wBallSpin], a
pop bc
.asm_2297
pop hl
ret
LoadBallVelocity: ; 0x2299
; Loads velocity of the ball into bc and de
; bc = x velocity
; de = y velocity
push hl
ld hl, wBallXVelocity
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
pop hl
ret
SetBallVelocity: ; 0x22a7
; Sets the x and y velocities of the ball.
; bc = x velocity
; de = y velocity
push hl
ld hl, wBallXVelocity
ld a, c
ld [hli], a
ld a, b
ld [hli], a
ld a, e
ld [hli], a
ld a, d
ld [hl], a
pop hl
ret
Func_22b5: ; 0x22b5
ld a, [wBallXPos + 1]
sub $4
push af
and $7
ld [wSubTileBallXPos], a ; sub-tile position
pop af
and $f8
ld c, a
ld a, [wBallYPos + 1]
sub $4
push af
and $7
ld [wSubTileBallYPos], a
pop af
and $f8
ld b, a
ld l, b ; bc contains tile coords of ball position
ld h, $0
sla l
rl h
sla l
rl h ; b was multiplied by 4 (y tile position)
srl c
srl c
srl c ; c was divided by 8 (x tile position)
ld b, $0
add hl, bc
ld a, l
ld [$d7f3], a
ld a, h
ld [$d7f4], a
ld a, [wStageCollisionMapPointer]
ld c, a
ld a, [wStageCollisionMapPointer + 1]
ld b, a
add hl, bc ; hl = address of upper-left collision byte
ld a, [hLoadedROMBank]
push af
ld a, [wStageCollisionMapBank]
ld [hLoadedROMBank], a
ld [$2000], a
ld bc, $001f ; number of tiles wide - 1
ld a, [hli]
ld [wUpperLeftCollisionAttribute], a
ld a, [hl]
ld [wUpperRightCollisionAttribute], a
add hl, bc
ld a, [hli]
ld [wLowerLeftCollisionAttribute], a
ld a, [hl]
ld [wLowerRightCollisionAttribute], a
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ld a, [hLoadedROMBank]
push af
ld a, [wStageCollisionMasksBank]
ld [hLoadedROMBank], a
ld [$2000], a
ld a, [wSubTileBallXPos]
sla a
ld c, a
ld b, $0
ld hl, SubTileXPos_CollisionDataPointers
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld a, [wSubTileBallYPos]
ld c, a
ld b, $10 ; number of times to loop over .asm_233d
.asm_233d
push bc
ld a, [de]
inc de
add c ; add the sub tile y pos
push af
srl a
srl a
srl a
ld c, a
ld b, $0
ld hl, wUpperLeftCollisionAttribute
add hl, bc
ld a, [hl]
call Func_248a
jr nc, .asm_235e
pop af
and $7
ld c, a
ld b, $0
add hl, bc
jr .asm_237b
.asm_235e
ld c, a
ld b, $0
sla c
rl b
sla c
rl b
sla c
rl b
ld hl, wStageCollisionMasksPointer
ld a, [hli]
ld h, [hl]
ld l, a
add hl, bc
pop af
and $7
ld c, a
ld b, $0
add hl, bc
.asm_237b
ld a, [de]
inc de
and [hl]
push af
ld a, [de]
inc de
ld c, a
ld hl, $d7c9
add hl, bc
pop af
ld [hl], a
pop bc
dec b
jr nz, .asm_233d
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ld hl, $d7c9
ld de, $d7d9
ld b, $4
.asm_239a
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .asm_239a
ld hl, $d7c9
ld de, $0000
ld b, $0
ld a, [hl]
and a
jr z, .asm_23c1
.asm_23b5
ld a, [hli]
inc b
and a
jr z, .asm_23c1
ld a, b
cp $11
jr nc, .asm_23ee
jr .asm_23b5
.asm_23c1
ld a, [hli]
inc b
and a
jr nz, .asm_23cd
ld a, b
cp $11
jr nc, .asm_23ee
jr .asm_23c1
.asm_23cd
push de
ld d, $1
ld c, b
dec c
.asm_23d2
ld a, [hli]
inc b
inc d
and a
jr nz, .asm_23d2
dec d
ld a, b
dec a
dec a
and $f
swap c
or c
ld c, a
ld a, d
cp e
pop de
jr c, .asm_23e9
ld e, a
ld d, c
.asm_23e9
ld a, b
cp $10
jr c, .asm_23c1
.asm_23ee
ld a, e
ld [$d7e9], a
and a
ret z
ld a, [hLoadedROMBank]
push af
ld a, Bank(Data_8817)
ld [hLoadedROMBank], a
ld [$2000], a
push de
ld e, d
ld d, $0
ld hl, Data_8817
add hl, de
ld a, [hl]
ld [$d7ea], a
sla e
rl d
ld hl, Data_8917
add hl, de
ld a, [wBallYPos]
add [hl]
ld [wBallYPos], a
inc hl
ld a, [wBallYPos + 1]
adc [hl]
ld [wBallYPos + 1], a
ld hl, Data_8b17
add hl, de
ld a, [wBallXPos]
add [hl]
ld [wBallXPos], a
inc hl
ld a, [wBallXPos + 1]
adc [hl]
ld [wBallXPos + 1], a
pop de
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ld a, d
swap a
and $f
ld e, a
ld a, d
and $f
sub e
jr nc, .asm_2449
add $10
.asm_2449
add e
add e
inc a
and $1e
ld c, a
ld b, $0
ld hl, $250e ; todo
add hl, bc
ld a, [wSubTileBallXPos]
add $4
add [hl]
bit 3, a
ld c, b
jr z, .asm_2462
ld c, $2
.asm_2462
ld a, [wSubTileBallYPos]
add $4
inc hl
add [hl]
bit 3, a
jr z, .asm_246e
inc c
.asm_246e
ld hl, wUpperLeftCollisionAttribute
add hl, bc
ld a, [hl]
ld [$d7f5], a
ld hl, $250a ; todo
add hl, bc
ld a, [$d7f3]
add [hl]
ld [$d7f6], a
ld a, [$d7f4]
adc $0
ld [$d7f7], a
ret
Func_248a: ; 0x248a
push af
ld a, [wCurrentStage]
bit 0, a
jr nz, .asm_2495
pop af
and a
ret
.asm_2495
pop af
cp $d0
ccf
ret nc
cp $e0
jr nc, .asm_24ab
sub $d0
sla a
sla a
sla a
ld l, a
ld h, $c4
scf
ret
.asm_24ab
push de
sub $e0
ld b, a
ld a, [wCurrentStage]
cp $6 ; gengar stage buggy?
jr nc, .asm_24e0
bit 4, b
ld hl, $3800
ld a, [$d7af]
jr z, .asm_24c8
res 4, b
ld hl, $3980
ld a, [$d7b3]
.asm_24c8
ld de, $0080
cp $7
jr c, .asm_24d5
add hl, de
cp $e
jr c, .asm_24d5
add hl, de
.asm_24d5
ld e, b
sla e
sla e
sla e
add hl, de
pop de
scf
ret
.asm_24e0
bit 4, b
ld hl, $3b00
ld a, [$d7af]
jr z, .asm_24f2
res 4, b
ld hl, $3c80
ld a, [$d7b3]
.asm_24f2
ld de, $0080
cp $7
jr c, .asm_24ff
add hl, de
cp $e
jr c, .asm_24ff
add hl, de
.asm_24ff
ld e, b
sla e
sla e
sla e
add hl, de
pop de
scf
ret
INCBIN "baserom.gbc",$250a,$252e - $250a
SubTileXPos_CollisionDataPointers: ; 0x252e
dw SubTileXPos_CollisionData0
dw SubTileXPos_CollisionData1
dw SubTileXPos_CollisionData2
dw SubTileXPos_CollisionData3
dw SubTileXPos_CollisionData4
dw SubTileXPos_CollisionData5
dw SubTileXPos_CollisionData6
dw SubTileXPos_CollisionData7
SubTileXPos_CollisionData0: ; 0x253e
db $00, $10, $0B
db $00, $08, $0C
db $00, $04, $0D
db $01, $40, $0A
db $01, $01, $0E
db $03, $80, $09
db $13, $80, $0F
db $04, $80, $08
db $14, $80, $00
db $05, $80, $07
db $15, $80, $01
db $07, $40, $06
db $07, $01, $02
db $08, $10, $05
db $08, $08, $04
db $08, $04, $03
SubTileXPos_CollisionData1: ; 0x256e
db $00, $08, $0B
db $00, $04, $0C
db $00, $02, $0D
db $01, $20, $0A
db $11, $80, $0E
db $03, $40, $09
db $13, $40, $0F
db $04, $40, $08
db $14, $40, $00
db $05, $40, $07
db $15, $40, $01
db $07, $20, $06
db $17, $80, $02
db $08, $08, $05
db $08, $04, $04
db $08, $02, $03
SubTileXPos_CollisionData2: ; 0x259e
db $00, $04, $0B
db $00, $02, $0C
db $00, $01, $0D
db $01, $10, $0A
db $11, $40, $0E
db $03, $20, $09
db $13, $20, $0F
db $04, $20, $08
db $14, $20, $00
db $05, $20, $07
db $15, $20, $01
db $07, $10, $06
db $17, $40, $02
db $08, $04, $05
db $08, $02, $04
db $08, $01, $03
SubTileXPos_CollisionData3: ; 0x25ce
db $00, $02, $0B
db $00, $01, $0C
db $10, $80, $0D
db $01, $08, $0A
db $11, $20, $0E
db $03, $10, $09
db $13, $10, $0F
db $04, $10, $08
db $14, $10, $00
db $05, $10, $07
db $15, $10, $01
db $07, $08, $06
db $17, $20, $02
db $08, $02, $05
db $08, $01, $04
db $18, $80, $03
SubTileXPos_CollisionData4: ; 0x25fe
db $00, $01, $0B
db $10, $80, $0C
db $10, $40, $0D
db $01, $04, $0A
db $11, $10, $0E
db $03, $08, $09
db $13, $08, $0F
db $04, $08, $08
db $14, $08, $00
db $05, $08, $07
db $15, $08, $01
db $07, $04, $06
db $17, $10, $02
db $08, $01, $05
db $18, $80, $04
db $18, $40, $03
SubTileXPos_CollisionData5: ; 0x262e
db $10, $80, $0B
db $10, $40, $0C
db $10, $20, $0D
db $01, $02, $0A
db $11, $08, $0E
db $03, $04, $09
db $13, $04, $0F
db $04, $04, $08
db $14, $04, $00
db $05, $04, $07
db $15, $04, $01
db $07, $02, $06
db $17, $08, $02
db $18, $80, $05
db $18, $40, $04
db $18, $20, $03
SubTileXPos_CollisionData6: ; 0x265e
db $10, $40, $0B
db $10, $20, $0C
db $10, $10, $0D
db $01, $01, $0A
db $11, $04, $0E
db $03, $02, $09
db $13, $02, $0F
db $04, $02, $08
db $14, $02, $00
db $05, $02, $07
db $15, $02, $01
db $07, $01, $06
db $17, $04, $02
db $18, $40, $05
db $18, $20, $04
db $18, $10, $03
SubTileXPos_CollisionData7: ; 0x268e
db $10, $20, $0B
db $10, $10, $0C
db $10, $08, $0D
db $11, $80, $0A
db $11, $02, $0E
db $03, $01, $09
db $13, $01, $0F
db $04, $01, $08
db $14, $01, $00
db $05, $01, $07
db $15, $01, $01
db $17, $80, $06
db $17, $02, $02
db $18, $20, $05
db $18, $10, $04
db $18, $08, $03
INCBIN "baserom.gbc",$26be,$2720 - $26be
Func_2720: ; 0x2720
ld a, $ff
ld [$d4ea], a
call Func_272f
ld a, [$d4ea]
ld [$d4ec], a
ret
Func_272f: ; 0x272f
; not collisions
ld a, [wCurrentStage]
call CallInFollowingTable
CallTable_2735: ; 0x2735
; STAGE_RED_FIELD_TOP
dw Func_143e1
db Bank(Func_143e1), $00
; STAGE_RED_FIELD_BOTTOM
dw Func_143f9
db Bank(Func_143f9), $00
dw Func_18061
db Bank(Func_18061), $00
dw Func_18062
db Bank(Func_18062), $00
; STAGE_BLUE_FIELD_TOP
dw Func_1c520
db Bank(Func_1c520), $00
; STAGE_BLUE_FIELD_BOTTOM
dw Func_1c536
db Bank(Func_1c536), $00
; STAGE_GENGAR_BONUS
dw Func_181b1
db Bank(Func_181b1), $00
; STAGE_GENGAR_BONUS
dw Func_181b1
db Bank(Func_181b1), $00
; STAGE_MEWTWO_BONUS
dw Func_19330
db Bank(Func_19330), $00
; STAGE_MEWTWO_BONUS
dw Func_19330
db Bank(Func_19330), $00
; STAGE_MEOWTH_BONUS
dw Func_2414d
db Bank(Func_2414d), $00
; STAGE_MEOWTH_BONUS
dw Func_2414d
db Bank(Func_2414d), $00
; STAGE_DIGLETT_BONUS
dw Func_19ab3
db Bank(Func_19ab3), $00
; STAGE_DIGLETT_BONUS
dw Func_19ab3
db Bank(Func_19ab3), $00
; STAGE_SEEL_BONUS
dw Func_25bbc
db Bank(Func_25bbc), $00
; STAGE_SEEL_BONUS
dw Func_25bbc
db Bank(Func_25bbc), $00
Func_2775: ; 0x2775
ld a, [$d4ea]
inc a
jr nz, .asm_27a2
ld a, [bc]
bit 7, a
jr nz, .asm_27a2
push bc
push de
call nc, Func_27da
pop hl
call c, Func_27a4
ld a, [$d4ea]
ld b, a
pop hl
ld [hl], $0
jr nc, .asm_27a2
ld a, [$d4ec]
cp b
jr z, .asm_27a2
ld a, [$d4eb]
ld [hli], a
ld a, [$d4ea]
ld [hl], a
scf
ret
.asm_27a2
and a
ret
Func_27a4: ; 0x27a4
xor a
ld [$d4eb], a
ld a, [hli]
ld d, a
ld a, [hli]
ld e, a
ld a, [wBallXPos + 1]
ld b, a
ld a, [wBallYPos + 1]
ld c, a
.asm_27b4
ld a, [$d4eb]
inc a
ld [$d4eb], a
ld a, [hli]
ld [$d4ea], a
cp $ff
ret z
ld a, [hli]
sub b
bit 7, a
jr z, .asm_27ca
cpl
inc a
.asm_27ca
cp d
ld a, [hli]
jr nc, .asm_27b4
sub c
bit 7, a
jr z, .asm_27d5
cpl
inc a
.asm_27d5
cp e
jr nc, .asm_27b4
scf
ret
Func_27da: ; 0x27da
ld a, [hli]
and a
jr z, .asm_27e8
dec hl
ld a, [wStageCollisionState]
ld c, a
ld b, $0
add hl, bc
ld c, [hl]
add hl, bc
.asm_27e8
ld a, [$d7e9]
and a
ret z
ld a, [$d7f5]
ld b, a
ld c, $ff
.asm_27f3
inc c
ld a, [hli]
cp $ff
ret z
cp b
jr nz, .asm_27f3
scf
ret
PinballCollideWithPoints: ; 0x27fd
; Checks if pinball collides with any of the (x, y) points in the given list.
; Saves the index of the collided point.
; Input: hl = pointer to array of (x, y) points
; Output: Saves index of collided point in $d578
ld a, [wBallXPos + 1]
ld b, a
ld a, [wBallYPos + 1]
ld c, a
ld d, $0
.nextPoint
ld a, [hli]
and a
ret z
inc d
ld a, [hli]
sub b
cp $e8
ld a, [hli]
jr c, .nextPoint
sub c
cp $e8
jr c, .nextPoint
ld a, d
ld [$d578], a
ret
Func_281c: ; 0x281c
ld a, [wCurrentStage]
call CallInFollowingTable
CallTable_2822: ; 0x2822
; not collisions
; STAGE_RED_FIELD_TOP
dw Func_1460e
db Bank(Func_1460e), $00
; STAGE_RED_FIELD_BOTTOM
dw Func_14652
db Bank(Func_14652), $00
dw Func_1806d
db Bank(Func_1806d), $00
dw Func_1806e
db Bank(Func_1806e), $00
; STAGE_BLUE_FIELD_TOP
dw Func_1c715
db Bank(Func_1c715), $00
; STAGE_BLUE_FIELD_BOTTOM
dw Func_1c769
db Bank(Func_1c769), $00
; STAGE_GENGAR_BONUS
dw Func_18377
db Bank(Func_18377), $00
; STAGE_GENGAR_BONUS
dw Func_18377
db Bank(Func_18377), $00
; STAGE_MEWTWO_BONUS
dw Func_19451
db Bank(Func_19451), $00
; STAGE_MEWTWO_BONUS
dw Func_19451
db Bank(Func_19451), $00
; STAGE_MEOWTH_BONUS
dw Func_2442a
db Bank(Func_2442a), $00
; STAGE_MEOWTH_BONUS
dw Func_2442a
db Bank(Func_2442a), $00
; STAGE_DIGLETT_BONUS
dw Func_19b88
db Bank(Func_19b88), $00
; STAGE_DIGLETT_BONUS
dw Func_19b88
db Bank(Func_19b88), $00
; STAGE_SEEL_BONUS
dw Func_25c5a
db Bank(Func_25c5a), $00
; STAGE_SEEL_BONUS
dw Func_25c5a
db Bank(Func_25c5a), $00
Func_2862: ; 0x2862
ld a, [$d7be]
and a
jr nz, .asm_287c
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_287b
ld a, $0
ld hl, $2890
ld de, $0052
ld bc, $0004
call Func_790
.asm_287b
ret
.asm_287c
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_288f
ld a, $0
ld hl, $2894
ld de, $0052
ld bc, $0004
call Func_790
.asm_288f
ret
INCBIN "baserom.gbc",$2890,$28a0 - $2890
CopyHLToDE: ; 0x28a0
; Places [hl] into [de]
; Also places $0 into [de + 2]
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
xor a
ld [de], a
ret
Func_28a9: ; 0x28a9
ld a, [de]
and a
ret z
dec a
ld [de], a
ret nz
push de
inc de
inc de
ld a, [de]
inc a
ld [de], a
ld c, a
ld b, $0
sla c
rl b
add hl, bc
ld a, [hli]
pop de
and a
scf
ret z
push de
ld [de], a
inc de
ld a, [hli]
ld [de], a
pop de
ret
INCBIN "baserom.gbc",$28c9,$30db - $28c9
Func_30db: ; 0x30db
ld a, $86
ld [$ffa6], a
ld a, $1
ld [$d5ca], a
ld [$d5cb], a
ret
Func_30e8: ; 0x30e8
ld a, $81
ld hl, $c600
ld b, $40
.asm_30ef
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
dec b
jr nz, .asm_30ef
xor a
ld [$d5cc], a
ld [$d5d4], a
ld [$d5dc], a
ld [$d5e4], a
ld [$d5e9], a
ld [$d5ee], a
ret
Func_310a: ; 0x310a
ld a, $81
ld hl, $c640
ld b, $5
.asm_3111
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
dec b
jr nz, .asm_3111
ld hl, $c6c0
ld b, $5
.asm_311d
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
dec b
jr nz, .asm_311d
ret
Func_3125: ; 0x3125
ld b, $1
jr asm_312b
Func_3129: ; 0x3129
ld b, $0
asm_312b: ; 0x312b
ld a, [$d805]
and a
jp nz, Func_3268
.asm_3132
ld a, [hli]
and a
ret z
ld c, $81
cp $20
jr z, .asm_3175
cp $2c
jr z, .asm_3178
cp $24
jr z, .asm_317c
cp $5c
jr z, .asm_3184
cp $60
jr z, .asm_318d
cp $21
jr z, .asm_31a8
cp $78
jr z, .asm_31b1
cp $65
jr z, .asm_3196
cp $2a
jr z, .asm_319f
cp $2e
jr z, .asm_31ba
cp $3a
jr z, .asm_31c3
cp $30
jr c, .asm_316b
cp $3a
jr c, .asm_31cc
.asm_316b
cp $41
jr c, .asm_3173
cp $5b
jr c, .asm_31d0
.asm_3173
jr .asm_3132
.asm_3175
ld a, c
jr .asm_31d2
.asm_3178
inc c
dec e
jr .asm_31d3
.asm_317c
xor a
call Func_31e1
ld a, $83
jr .asm_31d2
.asm_3184
ld a, $1
call Func_31e1
ld a, $84
jr .asm_31d2
.asm_318d
ld a, $2
call Func_31e1
ld a, $85
jr .asm_31d2
.asm_3196
ld a, $3
call Func_31e1
ld a, $83
jr .asm_31d2
.asm_319f
ld a, $4
call Func_31e1
ld a, $87
jr .asm_31d2
.asm_31a8
ld a, $5
call Func_31e1
ld a, $85
jr .asm_31d2
.asm_31b1
ld a, $6
call Func_31e1
ld a, $85
jr .asm_31d2
.asm_31ba
ld a, $7
call Func_31e1
ld a, $86
jr .asm_31d2
.asm_31c3
ld a, $8
call Func_31e1
ld a, $83
jr .asm_31d2
.asm_31cc
add $56
jr .asm_31d2
.asm_31d0
add $bf
.asm_31d2
ld [de], a
.asm_31d3
bit 0, b
jr nz, .asm_31dd
set 7, e
ld a, c
ld [de], a
res 7, e
.asm_31dd
inc e
jp .asm_3132
Func_31e1: ; 0x31e1
push bc
push de
push hl
ld c, a
ld a, [hGameBoyColorFlag]
and a
ld a, c
jr z, .asm_31ed
add $9
.asm_31ed
ld c, a
sla a
sla a
add c
ld c, a
ld b, $0
ld hl, $320e ; todo
add hl, bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, [hli]
ld b, a
ld a, [hli]
ld h, [hl]
ld l, a
ld a, b
ld bc, $0010
call LoadVRAMData
pop hl
pop de
pop bc
ret
INCBIN "baserom.gbc",$320e,$3268 - $320e
Func_3268: ; 0x3268
ld a, [hli]
and a
ret z
ld c, $81
cp $20
jr z, .asm_3297
cp $2c
jr z, .asm_329a
cp $30
jr c, .asm_327d
cp $3a
jr c, .asm_329e
.asm_327d
cp $a0
jr c, .asm_3285
cp $e0
jr c, .asm_328f
.asm_3285
cp $e0
jr c, .asm_328d
cp $f4
jr c, .asm_3293
.asm_328d
jr Func_3268
.asm_328f
sub $80
jr .asm_32a0
.asm_3293
sub $50
jr .asm_32a0
.asm_3297
ld a, c
jr .asm_32a0
.asm_329a
inc c
dec e
jr .asm_32a1
.asm_329e
add $56
.asm_32a0
ld [de], a
.asm_32a1
set 7, e
ld a, c
ld [de], a
res 7, e
inc e
jr Func_3268
Func_32aa: ; 0x32aa
ld a, $1
ld [hli], a
ld a, [de]
ld [hli], a
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
push af
inc de
ld a, [de]
ld [hli], a
inc de
pop af
ld l, a
ld h, $c5
.asm_32c5
ld a, [de]
ld [hli], a
inc de
and a
jr nz, .asm_32c5
ret
Func_32cc: ; 0x32cc
ld a, $1
ld [hli], a
ld a, [de]
ld [hli], a
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
push af
inc de
ld a, [de]
ld [hli], a
inc de
pop af
ld e, a
ld d, $c5
ld hl, [sp+$5]
ld bc, $0801
.asm_32ec
ld a, [hl]
swap a
and $f
call Func_3309
dec b
ld a, [hld]
and $f
call Func_3309
dec b
jr nz, .asm_32ec
ld a, $30
ld [de], a
inc de
ld a, $20
ld [de], a
inc de
xor a
ld [de], a
ret
Func_3309: ; 0x3309
jr nz, .asm_3312
ld a, b
dec a
jr z, .asm_3312
ld a, c
and a
ret nz
.asm_3312
add $30
ld [de], a
inc de
ld c, $0
ld a, b
cp $6
jr z, .asm_3320
cp $3
ret nz
.asm_3320
ld a, $2c
ld [de], a
inc de
ret
Func_3325: ; 0x3325
ld a, [hli]
and a
ret z
ld a, [hl]
dec a
ld [hli], a
ret nz
ld a, [hld]
ld [hl], a
inc hl
inc hl
push hl
ld a, [hli]
ld e, a
cp [hl]
inc hl
jr nz, .asm_333c
ld a, [hl]
dec a
ld [hl], a
jr nz, .asm_333d
.asm_333c
dec e
.asm_333d
push de
ld d, $c6
inc hl
push hl
ld l, [hl]
ld h, $c5
call Func_3129
pop hl
inc hl
ld a, [hl]
dec a
ld [hl], a
pop de
pop hl
ld [hl], e
ret nz
dec hl
dec hl
dec hl
ld [hl], $0
ret
Func_3357: ; 0x3357
ld a, $1
ld [hli], a
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
ld a, [de]
ld [hli], a
inc de
pop af
ld l, a
ld h, $c5
.asm_336b
ld a, [de]
ld [hli], a
inc de
and a
jr nz, .asm_336b
ret
Func_3372: ; 0x3372
ld a, $1
ld [hli], a
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
ld a, [de]
ld [hli], a
pop af
ld e, a
ld d, $c5
ld hl, [sp+$5]
ld bc, $0801
.asm_338a
ld a, [hl]
swap a
and $f
call Func_33a7
dec b
ld a, [hld]
and $f
call Func_33a7
dec b
jr nz, .asm_338a
ld a, $30
ld [de], a
inc de
ld a, $20
ld [de], a
inc de
xor a
ld [de], a
ret
Func_33a7: ; 0x33a7
jr nz, .asm_33b0
ld a, b
dec a
jr z, .asm_33b0
ld a, c
and a
ret nz
.asm_33b0
add $30
ld [de], a
inc de
ld c, $0
ld a, b
cp $6
jr z, .asm_33be
cp $3
ret nz
.asm_33be
ld a, $2c
ld [de], a
inc de
ret
Func_33c3: ; 0x33c3
ld a, [hli]
and a
ret z
ld a, [hli]
ld e, a
ld d, $c6
push hl
ld l, [hl]
ld h, $c5
call Func_3129
pop hl
inc hl
ld a, [hl]
dec a
ld [hli], a
ret nz
ld a, [hl]
dec a
ld [hld], a
bit 7, a
ret z
dec hl
dec hl
dec hl
ld [hl], $0
ret
Func_33e3: ; 0x33e3
ld a, [$d5ca]
and a
jr nz, .asm_33ed
ld [$d5cb], a
ret
.asm_33ed
ld c, $0
ld a, [$d5cc]
and a
jr z, .asm_33fe
push bc
ld hl, $d5cc
call Func_3325
pop bc
inc c
.asm_33fe
ld a, [$d5d4]
and a
jr z, .asm_340d
push bc
ld hl, $d5d4
call Func_3325
pop bc
inc c
.asm_340d
ld a, [$d5dc]
and a
jr z, .asm_341c
push bc
ld hl, $d5dc
call Func_3325
pop bc
inc c
.asm_341c
ld a, [$d5e4]
and a
jr z, .asm_342b
push bc
ld hl, $d5e4
call Func_33c3
pop bc
inc c
.asm_342b
ld a, [$d5e9]
and a
jr z, .asm_343a
push bc
ld hl, $d5e9
call Func_33c3
pop bc
inc c
.asm_343a
ld a, [$d5ee]
and a
jr z, .asm_3449
push bc
ld hl, $d5ee
call Func_33c3
pop bc
inc c
.asm_3449
ld a, c
and a
ret nz
ld [$d5ca], a
call Func_30e8
ld a, [hGameBoyColorFlag]
and a
jr nz, .gameboyColor
ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy)
ld hl, $30 + StageRedFieldTopStatusBarSymbolsGfx_GameBoy
ld de, $8830
ld bc, $0040
call Func_735
ret
.gameboyColor
ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor)
ld hl, $30 + StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor
ld de, $8830
ld bc, $0040
call Func_735
ret
Func_3475: ; 0x3475
xor a
ld [hJoypadState], a
ld [hNewlyPressedButtons], a
ld [hPressedButtons], a
call HandleTilts
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(HandleFlippers)
ld hl, HandleFlippers
call nz, BankSwitch
ld [$ff8a], a
ld a, Bank(Func_84b7)
ld hl, Func_84b7
call BankSwitch
call Func_33e3
call Func_926
rst $10
ld a, [$d5ca]
and a
jr nz, Func_3475
ret
INCBIN "baserom.gbc",$34a6,$351c - $34a6
Func_351c: ; 0x351c
ld hl, $d464
ld a, e
ld [hli], a
ld a, d
ld [hli], a
ld a, c
ld [hli], a
ld a, b
ld [hli], a
xor a
ld [hli], a
ld [hl], a
ld bc, $d464
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ret
Func_3538: ; 0x3538
ld hl, $d47a
ld a, [hl]
add e
daa
ld [hli], a
ld a, [hl]
adc d
daa
ld [hli], a
ld a, [hl]
adc c
daa
ld [hli], a
ld a, [hl]
adc b
daa
ld [hli], a
ret nc
ld hl, $d47a
ld a, $99
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ret
Func_3556: ; 0x3556
ld a, [$d47a]
ld e, a
ld a, [$d47b]
ld d, a
ld a, [$d47c]
ld c, a
ld a, [$d47d]
ld b, a
ret
INCBIN "baserom.gbc",$3567,$3579 - $3567
Func_3579: ; 0x3579
ld hl, $d47a
xor a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ret
HandleTilts: ; 0x3582
call HandleLeftTilt
call HandleRightTilt
call HandleUpperTilt
ret
HandleLeftTilt: ; 0x358c
ld a, [wLeftTiltReset]
and a
jr nz, .tiltCoolDown
ld hl, wKeyConfigLeftTilt
call IsKeyPressed2
jr z, .tiltCoolDown
ld a, [wLeftTiltCounter]
cp $3
jr z, .startCoolDown
inc a
ld [wLeftTiltCounter], a
cp $1
jr nz, .skipSoundEffect
ld de, $003f
call PlaySoundEffect
.skipSoundEffect
ld a, [$d548]
ld hl, $d549
and [hl]
jr z, .skipBallMovement
ld a, [wBallXPos + 1]
dec a ; move ball's position to the left by 1 pixel
ld [wBallXPos + 1], a
.skipBallMovement
ld a, [$d79f]
inc a
ld [$d79f], a
ld a, $1
ld [wLeftTiltPushing], a
ret
.startCoolDown
ld a, $1
ld [wLeftTiltReset], a
.tiltCoolDown
xor a
ld [wLeftTiltPushing], a
ld a, [wLeftTiltCounter]
and a
jr z, .done
dec a
ld [wLeftTiltCounter], a
ld a, [$d79f]
dec a
ld [$d79f], a
ret
.done
ld hl, wKeyConfigLeftTilt
call IsKeyPressed2
ret nz
xor a
ld [wLeftTiltReset], a
ret
HandleRightTilt: ; 0x35f3
ld a, [wRightTiltReset]
and a
jr nz, .tiltCoolDown
ld hl, wKeyConfigRightTilt
call IsKeyPressed2
jr z, .tiltCoolDown
ld a, [wRightTiltCounter]
cp $3
jr z, .startCoolDown
inc a
ld [wRightTiltCounter], a
cp $1
jr nz, .skipSoundEffect
ld de, $003f
call PlaySoundEffect
.skipSoundEffect
ld a, [$d548]
ld hl, $d549
and [hl]
jr z, .skipBallMovement
ld a, [wBallXPos + 1]
inc a ; move ball's position to the right by 1 pixel
ld [wBallXPos + 1], a
.skipBallMovement
ld a, [$d79f]
dec a
ld [$d79f], a
ld a, $1
ld [wRightTiltPushing], a
ret
.startCoolDown
ld a, $1
ld [wRightTiltReset], a
.tiltCoolDown
xor a
ld [wRightTiltPushing], a
ld a, [wRightTiltCounter]
and a
jr z, .done
dec a
ld [wRightTiltCounter], a
ld a, [$d79f]
inc a
ld [$d79f], a
ret
.done
ld hl, wKeyConfigRightTilt
call IsKeyPressed2
ret nz
xor a
ld [wRightTiltReset], a
ret
HandleUpperTilt: ; 0x365a
ld a, [wUpperTiltReset]
and a
jr nz, .tiltCoolDown
ld hl, wKeyConfigUpperTilt
call IsKeyPressed2
jr z, .tiltCoolDown
ld a, [wUpperTiltCounter]
cp $4
jr z, .startCoolDown
inc a
ld [wUpperTiltCounter], a
cp $1
jr nz, .skipSoundEffect
ld de, $003f
call PlaySoundEffect
.skipSoundEffect
ld a, [$d548]
ld hl, $d549
and [hl]
jr z, .skipBallMovement
ld a, [wBallYPos + 1]
inc a ; move ball's position down by 1 pixel
ld [wBallYPos + 1], a
.skipBallMovement
ld a, [$d7a0]
dec a
ld [$d7a0], a
ld a, $1
ld [wUpperTiltPushing], a
ret
.startCoolDown
ld a, $1
ld [wUpperTiltReset], a
.tiltCoolDown
xor a
ld [wUpperTiltPushing], a
ld a, [wUpperTiltCounter]
and a
jr z, .done
dec a
ld [wUpperTiltCounter], a
ld a, [$d7a0]
inc a
ld [$d7a0], a
ret
.done
ld hl, wKeyConfigUpperTilt
call IsKeyPressed2
ret nz
xor a
ld [wUpperTiltReset], a
ret
ApplyTiltForces: ; 0x36c1
ld a, [$d548]
ld hl, $d549
and [hl]
ret z
ld c, $0
ld a, [wUpperTiltPushing]
srl a
rl c
ld a, [wRightTiltPushing]
srl a
rl c
ld a, [wLeftTiltPushing]
srl a
rl c
ld b, $0
sla c
ld hl, $372d ; todo
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
bit 7, h
ret nz
ld a, [$d7ea]
ld c, a
ld b, $0
sla c
rl b
sla c
rl b
add hl, bc
ld a, [hLoadedROMBank]
push af
ld a, $3c
ld [hLoadedROMBank], a
ld [$2000], a
ld a, [wBallXVelocity]
add [hl]
ld [wBallXVelocity], a
inc hl
ld a, [wBallXVelocity + 1]
adc [hl]
ld [wBallXVelocity + 1], a
inc hl
ld a, [wBallYVelocity]
add [hl]
ld [wBallYVelocity], a
inc hl
ld a, [wBallYVelocity + 1]
adc [hl]
ld [wBallYVelocity + 1], a
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
INCBIN "baserom.gbc",$372d,$4000 - $372d
SECTION "bank1", ROMX, BANK[$1]
OAMDataPointers: ; 0x4000
dw BallSpin0OAM
dw BallSpin1OAM
dw BallSpin2OAM
dw BallSpin3OAM
dw BallSpin4OAM
dw BallSpin5OAM
dw BallSpin6OAM
dw BallSpin7OAM
dw OAMData_8
dw OAMData_9
dw OAMData_a
dw OAMData_b
dw OAMData_c
dw OAMData_d
dw OAMData_e
dw OAMData_f
dw OAMData_10
dw OAMData_11
dw OAMData_12
dw OAMData_13
dw OAMData_14
dw OAMData_15
dw OAMData_16
dw OAMData_17
dw OAMData_18
dw OAMData_19
dw OAMData_1a
dw OAMData_1b
dw OAMData_1c
dw OAMData_1d
dw OAMData_1e
dw OAMData_1f
dw OAMData_20
dw OAMData_21
dw OAMData_22
dw OAMData_23
dw OAMData_24
dw OAMData_25
dw OAMData_26
dw OAMData_27
dw OAMData_28
dw OAMData_29
dw OAMData_2a
dw OAMData_2b
dw OAMData_2c
dw OAMData_2d
dw OAMData_2e
dw OAMData_2f
dw OAMData_30
dw OAMData_31
dw OAMData_32
dw OAMData_33
dw OAMData_34
dw OAMData_35
dw OAMData_36
dw OAMData_37
dw OAMData_38
dw OAMData_39
dw OAMData_3a
dw OAMData_3b
dw OAMData_3c
dw OAMData_3d
dw OAMData_3e
dw OAMData_3f
dw OAMData_40
dw OAMData_41
dw OAMData_42
dw OAMData_43
dw OAMData_44
dw OAMData_45
dw OAMData_46
dw OAMData_47
dw OAMData_48
dw OAMData_49
dw OAMData_4a
dw OAMData_4b
dw OAMData_4c
dw OAMData_4d
dw OAMData_4e
dw OAMData_4f
dw OAMData_50
dw OAMData_51
dw OAMData_52
dw OAMData_53
dw OAMData_54
dw OAMData_55
dw OAMData_56
dw OAMData_57
dw OAMData_58
dw OAMData_59
dw TitlescreenPikachuBlinkFrame1OAM
dw TitlescreenPikachuBlinkFrame2OAM
dw TitlescreenPikachuBlinkFrame3OAM
dw TitlescreenPokeball1OAM
dw TitlescreenPokeball2OAM
dw TitlescreenPokeball3OAM
dw TitlescreenPokeball4OAM
dw TitlescreenPokeball5OAM
dw OAMData_62
dw OAMData_63
dw OAMData_64
dw OAMData_65
dw OAMData_66
dw OAMData_67
dw OAMData_68
dw OAMData_69
dw PokeDexTextOAM
dw OAMData_6b
dw Digit0OAM
dw Digit1OAM
dw Digit2OAM
dw Digit3OAM
dw Digit4OAM
dw Digit5OAM
dw Digit6OAM
dw Digit7OAM
dw Digit8OAM
dw Digit9OAM
dw SlashCharacterOAM
dw OAMData_77
dw OAMData_78
dw OAMData_79
dw OAMData_7a
dw OAMData_7b
dw OAMData_7c
dw OAMData_7d
dw OAMData_7e
dw OAMData_7f
dw OAMData_80
dw OAMData_81
dw OAMData_82
dw OAMData_83
dw OAMData_84
dw OAMData_85
dw OAMData_86
dw OAMData_87
dw OAMData_88
dw OAMData_89
dw OAMData_8a
dw OAMData_8b
dw OAMData_8c
dw OAMData_8d
dw OAMData_8e
dw OAMData_8f
dw OAMData_90
dw OAMData_91
dw OAMData_92
dw OAMData_93
dw OAMData_94
dw HighScoresRightArrowOAM
dw HighScoresLeftArrowOAM
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
HighScoresRightArrowOAM: ; 0x4d4f
db $18, $18, $7d, $11
db $18, $10, $7c, $11
db $18, $08, $7b, $11
db $10, $10, $7a, $11
db $80 ; terminator
HighScoresLeftArrowOAM: ; 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
OAMDataPointers2: ; 0x55d7
dw OAMData2_0
dw OAMData2_1
dw OAMData2_2
dw OAMData2_3
dw OAMData2_4
dw OAMData2_5
dw OAMData2_6
dw OAMData2_7
dw OAMData2_8
dw OAMData2_9
dw OAMData2_a
dw OAMData2_b
dw OAMData2_c
dw OAMData2_d
dw OAMData2_e
dw OAMData2_f
dw OAMData2_10
dw OAMData2_11
dw OAMData2_12
dw OAMData2_13
dw OAMData2_14
dw OAMData2_15
dw OAMData2_16
dw OAMData2_17
dw OAMData2_18
dw OAMData2_19
dw OAMData2_1a
dw OAMData2_1b
dw OAMData2_1c
dw OAMData2_1d
dw OAMData2_1e
dw OAMData2_1f
dw OAMData2_20
dw OAMData2_21
dw OAMData2_22
dw OAMData2_23
dw OAMData2_24
dw OAMData2_25
dw OAMData2_26
dw OAMData2_27
dw OAMData2_28
dw OAMData2_29
dw OAMData2_2a
dw OAMData2_2b
dw OAMData2_2c
dw OAMData2_2d
dw OAMData2_2e
dw OAMData2_2f
dw OAMData2_30
dw OAMData2_31
dw OAMData2_32
dw OAMData2_33
dw OAMData2_34
dw OAMData2_35
dw OAMData2_36
dw OAMData2_37
dw OAMData2_38
dw OAMData2_39
dw OAMData2_3a
dw OAMData2_3b
dw OAMData2_3c
dw OAMData2_3d
dw OAMData2_3e
dw OAMData2_3f
dw OAMData2_40
dw OAMData2_41
dw OAMData2_42
dw OAMData2_43
dw OAMData2_44
dw OAMData2_45
dw OAMData2_46
dw OAMData2_47
dw OAMData2_48
dw OAMData2_49
dw OAMData2_4a
dw OAMData2_4b
dw OAMData2_4c
dw OAMData2_4d
dw OAMData2_4e
dw OAMData2_4f
dw OAMData2_50
dw OAMData2_51
dw OAMData2_52
dw OAMData2_53
dw OAMData2_54
dw OAMData2_55
dw OAMData2_56
dw OAMData2_57
dw OAMData2_58
dw OAMData2_59
dw OAMData2_5a
dw OAMData2_5b
dw OAMData2_5c
dw OAMData2_5d
dw OAMData2_5e
dw OAMData2_5f
dw OAMData2_60
dw OAMData2_61
dw OAMData2_62
dw OAMData2_63
dw OAMData2_64
dw OAMData2_65
dw OAMData2_66
dw OAMData2_67
dw OAMData2_68
dw OAMData2_69
dw OAMData2_6a
dw OAMData2_6b
dw OAMData2_6c
dw OAMData2_6d
dw OAMData2_6e
dw OAMData2_6f
dw OAMData2_70
dw OAMData2_71
dw OAMData2_72
dw OAMData2_73
dw OAMData2_74
dw OAMData2_75
dw OAMData2_76
dw OAMData2_77
dw OAMData2_78
dw OAMData2_79
dw OAMData2_7a
dw OAMData2_7b
dw OAMData2_7c
dw OAMData2_7d
dw OAMData2_7e
dw OAMData2_7f
dw OAMData2_80
dw OAMData2_81
dw OAMData2_82
dw OAMData2_83
dw OAMData2_84
OAMData2_0: ; 0x56e1
db $20, $20, $9E, $04
db $20, $18, $9C, $04
db $20, $10, $9A, $04
db $20, $08, $98, $04
db $10, $20, $96, $04
db $10, $18, $94, $04
db $10, $10, $92, $04
db $10, $08, $90, $04
db $80 ; terminator
OAMData2_1: ; 0x5702
db $21, $20, $9E, $04
db $21, $18, $9C, $04
db $21, $10, $9A, $04
db $21, $08, $98, $04
db $11, $20, $96, $04
db $11, $18, $94, $04
db $11, $10, $92, $04
db $11, $08, $90, $04
db $80 ; terminator
OAMData2_2: ; 0x
db $1F, $20, $9E, $04
db $1F, $18, $9C, $04
db $1F, $10, $9A, $04
db $1F, $08, $98, $04
db $0F, $20, $96, $04
db $0F, $18, $94, $04
db $0F, $10, $92, $04
db $0F, $08, $90, $04
db $80 ; terminator
OAMData2_3: ; 0x
db $1F, $18, $A6, $04
db $1F, $10, $A4, $04
db $0F, $18, $A2, $04
db $0F, $10, $A0, $04
db $1F, $20, $9E, $04
db $1F, $08, $98, $04
db $0F, $20, $96, $04
db $0F, $08, $90, $04
db $80 ; terminator
OAMData2_4: ; 0x
db $1A, $21, $1A, $04
db $1A, $19, $A8, $04
db $1E, $00, $A2, $24
db $1E, $08, $A0, $24
db $30, $10, $9E, $04
db $20, $18, $9C, $04
db $20, $10, $9A, $04
db $20, $08, $98, $04
db $10, $20, $96, $04
db $10, $18, $94, $04
db $10, $10, $92, $04
db $10, $08, $90, $04
db $80 ; terminator
OAMData2_5: ; 0x
db $1E, $02, $A6, $24
db $1E, $0A, $A4, $24
db $1C, $23, $A6, $04
db $1C, $1B, $A4, $04
db $2E, $11, $9E, $04
db $1E, $18, $9C, $04
db $1E, $10, $9A, $04
db $1E, $08, $98, $04
db $0E, $20, $96, $04
db $0E, $18, $94, $04
db $0E, $10, $92, $04
db $0E, $08, $90, $04
db $80 ; terminator
OAMData2_6: ; 0x
db $1E, $23, $A2, $04
db $1E, $1B, $A0, $04
db $1A, $02, $1A, $24
db $1A, $0A, $A8, $24
db $2D, $10, $9E, $04
db $1D, $18, $9C, $04
db $1D, $10, $9A, $04
db $1D, $08, $98, $04
db $0D, $20, $96, $04
db $0D, $18, $94, $04
db $0D, $10, $92, $04
db $0D, $08, $90, $04
db $80 ; terminator
OAMData2_7: ; 0x
db $1C, $00, $A6, $24
db $1C, $08, $A4, $24
db $1E, $21, $A6, $04
db $1E, $19, $A4, $04
db $2E, $0F, $9E, $04
db $1E, $18, $9C, $04
db $1E, $10, $9A, $04
db $1E, $08, $98, $04
db $0E, $20, $96, $04
db $0E, $18, $94, $04
db $0E, $10, $92, $04
db $0E, $08, $90, $04
db $80 ; terminator
OAMData2_8: ; 0x
db $17, $09, $A8, $24
db $17, $01, $1A, $24
db $0F, $1E, $A8, $04
db $0F, $26, $1A, $04
db $2D, $18, $28, $04
db $1D, $18, $26, $04
db $1D, $10, $24, $04
db $0D, $20, $22, $04
db $0D, $18, $20, $04
db $0D, $10, $1E, $04
db $0E, $08, $1C, $04
db $80 ; terminator
OAMData2_9: ; 0x
db $20, $30, $32, $24
db $30, $30, $3A, $04
db $10, $30, $38, $04
db $30, $08, $34, $04
db $20, $08, $32, $04
db $10, $08, $30, $04
db $38, $28, $1E, $04
db $38, $20, $1C, $04
db $38, $18, $1A, $04
db $38, $10, $A8, $04
db $28, $28, $A6, $04
db $28, $20, $A4, $04
db $28, $18, $A2, $04
db $28, $10, $A0, $04
db $18, $28, $9E, $04
db $18, $20, $9C, $04
db $18, $18, $9A, $04
db $18, $10, $98, $04
db $08, $28, $96, $04
db $08, $20, $94, $04
db $08, $18, $92, $04
db $08, $10, $90, $04
db $80 ; terminator
OAMData2_a: ; 0x
db $31, $08, $36, $04
db $39, $28, $26, $04
db $39, $20, $24, $04
db $39, $18, $22, $04
db $39, $10, $20, $04
db $21, $30, $32, $24
db $31, $30, $3A, $04
db $11, $30, $38, $04
db $21, $08, $32, $04
db $11, $08, $30, $04
db $29, $28, $A6, $04
db $29, $20, $A4, $04
db $29, $18, $A2, $04
db $29, $10, $A0, $04
db $19, $28, $9E, $04
db $19, $20, $9C, $04
db $19, $18, $9A, $04
db $19, $10, $98, $04
db $09, $28, $96, $04
db $09, $20, $94, $04
db $09, $18, $92, $04
db $09, $10, $90, $04
db $80 ; terminator
OAMData2_b: ; 0x
db $39, $28, $2E, $04
db $39, $20, $2C, $04
db $39, $18, $2A, $04
db $39, $10, $28, $04
db $31, $30, $3C, $04
db $21, $30, $32, $24
db $11, $30, $38, $04
db $31, $08, $34, $04
db $21, $08, $32, $04
db $11, $08, $30, $04
db $29, $28, $A6, $04
db $29, $20, $A4, $04
db $29, $18, $A2, $04
db $29, $10, $A0, $04
db $19, $28, $9E, $04
db $19, $20, $9C, $04
db $19, $18, $9A, $04
db $19, $10, $98, $04
db $09, $28, $96, $04
db $09, $20, $94, $04
db $09, $18, $92, $04
db $09, $10, $90, $04
db $80 ; terminator
OAMData2_c: ; 0x
db $39, $28, $7E, $04
db $39, $20, $7C, $04
db $39, $18, $7A, $04
db $39, $10, $3E, $04
db $21, $30, $32, $24
db $31, $30, $3A, $04
db $11, $30, $38, $04
db $31, $08, $34, $04
db $21, $08, $32, $04
db $11, $08, $30, $04
db $29, $28, $A6, $04
db $29, $20, $A4, $04
db $29, $18, $A2, $04
db $29, $10, $A0, $04
db $19, $28, $9E, $04
db $19, $20, $9C, $04
db $19, $18, $9A, $04
db $19, $10, $98, $04
db $09, $28, $96, $04
db $09, $20, $94, $04
db $09, $18, $92, $04
db $09, $10, $90, $04
db $80 ; terminator
OAMData2_d: ; 0x
db $3A, $28, $B0, $04
db $3A, $20, $AE, $04
db $3A, $18, $AC, $04
db $3A, $10, $AA, $04
db $22, $30, $32, $24
db $32, $30, $3A, $04
db $12, $30, $38, $04
db $32, $08, $34, $04
db $22, $08, $32, $04
db $12, $08, $30, $04
db $2A, $28, $A6, $04
db $2A, $20, $A4, $04
db $2A, $18, $A2, $04
db $2A, $10, $A0, $04
db $1A, $28, $9E, $04
db $1A, $20, $9C, $04
db $1A, $18, $9A, $04
db $1A, $10, $98, $04
db $0A, $28, $96, $04
db $0A, $20, $94, $04
db $0A, $18, $92, $04
db $0A, $10, $90, $04
db $80 ; terminator
OAMData2_e: ; 0x
db $23, $04, $B2, $04
db $27, $2C, $D2, $04
db $27, $24, $D0, $04
db $27, $1C, $CE, $04
db $27, $14, $CC, $04
db $27, $0C, $CA, $04
db $17, $2C, $C8, $04
db $17, $24, $C6, $04
db $17, $1C, $C4, $04
db $17, $14, $C2, $04
db $17, $0C, $C0, $04
db $07, $2C, $BE, $04
db $07, $24, $BC, $04
db $07, $1C, $BA, $04
db $07, $14, $B8, $04
db $07, $0C, $B6, $04
db $23, $34, $B4, $04
db $37, $28, $1E, $04
db $37, $20, $1C, $04
db $37, $18, $1A, $04
db $37, $10, $A8, $04
db $80 ; terminator
OAMData2_f: ; 0x
db $20, $20, $9E, $04
db $20, $18, $9C, $04
db $20, $10, $9A, $04
db $20, $08, $98, $04
db $10, $20, $96, $04
db $10, $18, $94, $04
db $10, $10, $92, $04
db $10, $08, $90, $04
db $80 ; terminator
OAMData2_10: ; 0x
db $20, $08, $22, $04
db $10, $08, $20, $04
db $20, $20, $9E, $04
db $20, $18, $9C, $04
db $20, $10, $9A, $04
db $10, $20, $96, $04
db $10, $18, $94, $04
db $10, $10, $92, $04
db $80 ; terminator
OAMData2_11: ; 0x
db $20, $20, $1E, $04
db $20, $18, $1C, $04
db $20, $10, $1A, $04
db $20, $08, $A8, $04
db $10, $20, $A6, $04
db $10, $18, $A4, $04
db $10, $10, $A2, $04
db $10, $08, $A0, $04
db $80 ; terminator
OAMData2_12: ; 0x
db $20, $20, $2A, $04
db $10, $20, $28, $04
db $20, $08, $26, $04
db $10, $08, $24, $04
db $20, $18, $9C, $04
db $20, $10, $9A, $04
db $10, $18, $94, $04
db $10, $10, $92, $04
db $80 ; terminator
OAMData2_13: ; 0x
db $10, $10, $32, $11
db $10, $08, $30, $11
db $80 ; terminator
OAMData2_14: ; 0x
db $10, $10, $36, $11
db $10, $08, $34, $11
db $80 ; terminator
OAMData2_15: ; 0x
db $10, $10, $3A, $11
db $10, $08, $38, $11
db $80 ; terminator
OAMData2_16: ; 0x
db $10, $10, $3E, $11
db $10, $08, $3C, $11
db $80 ; terminator
OAMData2_17: ; 0x
db $20, $10, $7E, $04
db $10, $18, $2E, $04
db $10, $10, $92, $04
db $20, $20, $AC, $04
db $20, $18, $AA, $04
db $20, $08, $7C, $04
db $10, $20, $7A, $04
db $10, $08, $2C, $04
db $80 ; terminator
OAMData2_18: ; 0x
db $20, $10, $7E, $04
db $10, $18, $94, $04
db $10, $10, $92, $04
db $20, $20, $C4, $04
db $20, $08, $C2, $04
db $10, $20, $C0, $04
db $10, $08, $BE, $04
db $20, $18, $AA, $04
db $80 ; terminator
OAMData2_19: ; 0x
db $1F, $20, $BC, $04
db $1F, $18, $BA, $04
db $1F, $10, $B8, $04
db $1F, $08, $B6, $04
db $0F, $20, $B4, $04
db $0F, $18, $B2, $04
db $0F, $10, $B0, $04
db $0F, $08, $AE, $04
db $80 ; terminator
OAMData2_1a: ; 0x
db $10, $10, $C6, $31
db $10, $08, $C6, $11
db $80 ; terminator
OAMData2_1b: ; 0x
db $10, $10, $C8, $31
db $10, $08, $C8, $11
db $80 ; terminator
OAMData2_1c: ; 0x
db $10, $10, $CA, $31
db $10, $08, $CA, $11
db $80 ; terminator
OAMData2_1d: ; 0x
db $10, $10, $CC, $31
db $10, $08, $CC, $11
db $80 ; terminator
OAMData2_1e: ; 0x
db $10, $10, $CE, $31
db $10, $08, $CE, $11
db $80 ; terminator
OAMData2_1f: ; 0x
db $10, $10, $D0, $31
db $10, $08, $D0, $11
db $80 ; terminator
OAMData2_20: ; 0x
db $10, $10, $D2, $31
db $10, $08, $D2, $11
db $80 ; terminator
OAMData2_21: ; 0x
db $1E, $1F, $9E, $11
db $1E, $17, $9C, $11
db $1E, $0F, $9A, $11
db $1E, $07, $98, $11
db $0E, $1F, $96, $11
db $0E, $17, $94, $11
db $0E, $0F, $92, $11
db $0E, $07, $90, $11
db $80 ; terminator
OAMData2_22: ; 0x
db $20, $20, $1E, $11
db $20, $18, $1C, $11
db $20, $10, $1A, $11
db $20, $08, $A8, $11
db $10, $20, $A6, $11
db $10, $18, $A4, $11
db $10, $10, $A2, $11
db $10, $08, $A0, $11
db $80 ; terminator
OAMData2_23: ; 0x
db $0E, $1F, $96, $11
db $0E, $17, $94, $11
db $0E, $0F, $92, $11
db $0E, $07, $90, $11
db $1E, $1F, $26, $11
db $1E, $17, $24, $11
db $1E, $0F, $22, $11
db $1E, $07, $20, $11
db $80 ; terminator
OAMData2_24: ; 0x
db $1A, $24, $34, $11
db $1A, $1C, $32, $11
db $1A, $14, $30, $11
db $1A, $0C, $2E, $11
db $0A, $1C, $2C, $11
db $0A, $14, $2A, $11
db $0A, $0C, $28, $11
db $80 ; terminator
OAMData2_25: ; 0x
db $1E, $07, $9E, $31
db $1E, $0F, $9C, $31
db $1E, $17, $9A, $31
db $1E, $1F, $98, $31
db $0E, $07, $96, $31
db $0E, $0F, $94, $31
db $0E, $17, $92, $31
db $0E, $1F, $90, $31
db $80 ; terminator
OAMData2_26: ; 0x
db $20, $08, $1E, $31
db $20, $10, $1C, $31
db $20, $18, $1A, $31
db $20, $20, $A8, $31
db $10, $08, $A6, $31
db $10, $10, $A4, $31
db $10, $18, $A2, $31
db $10, $20, $A0, $31
db $80 ; terminator
OAMData2_27: ; 0x
db $0E, $07, $96, $31
db $0E, $0F, $94, $31
db $0E, $17, $92, $31
db $0E, $1F, $90, $31
db $1E, $07, $26, $31
db $1E, $0F, $24, $31
db $1E, $17, $22, $31
db $1E, $1F, $20, $31
db $80 ; terminator
OAMData2_28: ; 0x
db $1A, $0C, $34, $31
db $1A, $14, $32, $31
db $1A, $1C, $30, $31
db $1A, $24, $2E, $31
db $0A, $14, $2C, $31
db $0A, $1C, $2A, $31
db $0A, $24, $28, $31
db $80 ; terminator
OAMData2_29: ; 0x
db $10, $0C, $36, $13
db $80 ; terminator
OAMData2_2a: ; 0x
db $10, $10, $3A, $13
db $10, $08, $38, $13
db $80 ; terminator
OAMData2_2b: ; 0x
db $10, $10, $3E, $13
db $10, $08, $3C, $13
db $80 ; terminator
OAMData2_2c: ; 0x
db $10, $10, $7C, $13
db $10, $08, $7A, $13
db $80 ; terminator
OAMData2_2d: ; 0x
db $10, $10, $AA, $13
db $10, $08, $7E, $13
db $80 ; terminator
OAMData2_2e: ; 0x
db $10, $0F, $AC, $33
db $10, $08, $AC, $13
db $80 ; terminator
OAMData2_2f: ; 0x
db $10, $0F, $AE, $33
db $10, $08, $AE, $13
db $80 ; terminator
OAMData2_30: ; 0x
db $10, $0F, $B0, $33
db $10, $08, $B0, $13
db $80 ; terminator
OAMData2_31: ; 0x
db $10, $0C, $B2, $13
db $80 ; terminator
OAMData2_32: ; 0x
db $10, $0C, $B4, $13
db $80 ; terminator
OAMData2_33: ; 0x
db $20, $20, $C4, $11
db $20, $18, $C2, $11
db $20, $10, $C0, $11
db $20, $08, $BE, $11
db $10, $20, $BC, $11
db $10, $18, $BA, $11
db $10, $10, $B8, $11
db $10, $08, $B6, $11
db $80 ; terminator
OAMData2_34: ; 0x
db $20, $20, $CE, $11
db $20, $18, $CC, $11
db $20, $10, $CA, $11
db $20, $08, $C8, $11
db $10, $10, $C6, $11
db $10, $20, $BC, $11
db $10, $18, $BA, $11
db $10, $08, $B6, $11
db $80 ; terminator
OAMData2_35: ; 0x
db $0A, $10, $D2, $00
db $0A, $08, $D0, $00
db $80 ; terminator
OAMData2_36: ; 0x
db $08, $10, $D2, $00
db $08, $08, $D0, $00
db $80 ; terminator
OAMData2_37: ; 0x
db $06, $10, $D2, $00
db $06, $08, $D0, $00
db $80 ; terminator
OAMData2_38: ; 0x
db $0A, $10, $D4, $00
db $0A, $08, $D0, $00
db $80 ; terminator
OAMData2_39: ; 0x
db $08, $10, $D4, $00
db $08, $08, $D0, $00
db $80 ; terminator
OAMData2_3a: ; 0x
db $06, $10, $D4, $00
db $06, $08, $D0, $00
db $80 ; terminator
OAMData2_3b: ; 0x
db $0A, $10, $D6, $00
db $0A, $08, $D0, $00
db $80 ; terminator
OAMData2_3c: ; 0x
db $08, $10, $D6, $00
db $08, $08, $D0, $00
db $80 ; terminator
OAMData2_3d: ; 0x
db $05, $10, $D6, $00
db $05, $08, $D0, $00
db $80 ; terminator
OAMData2_3e: ; 0x
db $0A, $10, $D8, $00
db $0A, $08, $D0, $00
db $80 ; terminator
OAMData2_3f: ; 0x
db $08, $10, $D8, $00
db $08, $08, $D0, $00
db $80 ; terminator
OAMData2_40: ; 0x
db $05, $10, $D8, $00
db $05, $08, $D0, $00
db $80 ; terminator
OAMData2_41: ; 0x
db $0A, $10, $DA, $00
db $0A, $08, $D0, $00
db $80 ; terminator
OAMData2_42: ; 0x
db $08, $10, $DA, $00
db $08, $08, $D0, $00
db $80 ; terminator
OAMData2_43: ; 0x
db $05, $10, $DA, $00
db $05, $08, $D0, $00
db $80 ; terminator
OAMData2_44: ; 0x
db $10, $08, $DC, $00
db $80 ; terminator
OAMData2_45: ; 0x
db $10, $08, $DE, $00
db $80 ; terminator
OAMData2_46: ; 0x
db $20, $20, $9E, $11
db $20, $18, $9C, $11
db $20, $10, $9A, $11
db $20, $08, $98, $11
db $10, $20, $96, $11
db $10, $18, $94, $11
db $10, $10, $92, $11
db $10, $08, $90, $11
db $80 ; terminator
OAMData2_47: ; 0x
db $20, $20, $1E, $11
db $20, $18, $1C, $11
db $20, $10, $1A, $11
db $20, $08, $A8, $11
db $10, $20, $A6, $11
db $10, $18, $A4, $11
db $10, $10, $A2, $11
db $10, $08, $A0, $11
db $80 ; terminator
OAMData2_48: ; 0x
db $20, $20, $9E, $11
db $10, $20, $96, $11
db $20, $10, $1A, $11
db $20, $08, $A8, $11
db $10, $08, $A0, $11
db $20, $18, $24, $11
db $10, $18, $22, $11
db $10, $10, $20, $11
db $80 ; terminator
OAMData2_49: ; 0x
db $10, $08, $A0, $11
db $20, $20, $32, $11
db $20, $18, $30, $11
db $20, $10, $2E, $11
db $20, $08, $2C, $11
db $10, $20, $2A, $11
db $10, $18, $28, $11
db $10, $10, $26, $11
db $80 ; terminator
OAMData2_4a: ; 0x
db $20, $18, $AA, $11
db $20, $10, $7E, $11
db $10, $18, $7C, $11
db $10, $10, $7A, $11
db $20, $20, $9E, $11
db $20, $08, $98, $11
db $10, $20, $96, $11
db $10, $08, $90, $11
db $80 ; terminator
OAMData2_4b: ; 0x
db $20, $18, $B2, $11
db $20, $10, $B0, $11
db $10, $18, $AE, $11
db $10, $10, $AC, $11
db $20, $20, $1E, $11
db $20, $08, $A8, $11
db $10, $20, $A6, $11
db $10, $08, $A0, $11
db $80 ; terminator
OAMData2_4c: ; 0x
db $20, $10, $B0, $11
db $10, $10, $AC, $11
db $20, $18, $AA, $11
db $10, $18, $7C, $11
db $20, $20, $9E, $11
db $10, $20, $96, $11
db $20, $08, $A8, $11
db $10, $08, $A0, $11
db $80 ; terminator
OAMData2_4d: ; 0x
db $20, $18, $BA, $11
db $20, $10, $B8, $11
db $10, $18, $B6, $11
db $10, $10, $B4, $11
db $10, $08, $A0, $11
db $20, $20, $32, $11
db $20, $08, $2C, $11
db $10, $20, $2A, $11
db $80 ; terminator
OAMData2_4e: ; 0x
db $20, $20, $C2, $11
db $20, $18, $C0, $11
db $10, $20, $BE, $11
db $10, $18, $BC, $11
db $20, $10, $7E, $11
db $10, $10, $7A, $11
db $20, $08, $98, $11
db $10, $08, $90, $11
db $80 ; terminator
OAMData2_4f: ; 0x
db $20, $10, $B0, $11
db $10, $10, $AC, $11
db $20, $08, $A8, $11
db $10, $08, $A0, $11
db $20, $20, $C2, $11
db $20, $18, $C0, $11
db $10, $20, $BE, $11
db $10, $18, $BC, $11
db $80 ; terminator
OAMData2_50: ; 0x
db $20, $10, $B0, $11
db $10, $10, $AC, $11
db $20, $08, $A8, $11
db $10, $08, $A0, $11
db $20, $20, $C2, $11
db $20, $18, $C0, $11
db $10, $20, $BE, $11
db $10, $18, $BC, $11
db $80 ; terminator
OAMData2_51: ; 0x
db $20, $20, $CA, $11
db $20, $18, $C8, $11
db $10, $20, $C6, $11
db $10, $18, $C4, $11
db $20, $10, $B8, $11
db $10, $10, $B4, $11
db $10, $08, $A0, $11
db $20, $08, $2C, $11
db $80 ; terminator
OAMData2_52: ; 0x
db $20, $08, $38, $11
db $10, $18, $36, $11
db $10, $10, $34, $11
db $20, $20, $3E, $11
db $20, $18, $3C, $11
db $20, $10, $3A, $11
db $80 ; terminator
OAMData2_53: ; 0x
db $20, $10, $CE, $11
db $20, $08, $CC, $11
db $20, $20, $C2, $11
db $20, $18, $C0, $11
db $10, $20, $BE, $11
db $10, $18, $BC, $11
db $10, $10, $7A, $11
db $10, $08, $90, $11
db $80 ; terminator
OAMData2_54: ; 0x
db $20, $20, $9A, $11
db $20, $18, $98, $11
db $20, $10, $96, $11
db $20, $08, $94, $11
db $10, $18, $92, $11
db $10, $10, $90, $11
db $80 ; terminator
OAMData2_55: ; 0x
db $20, $20, $A6, $11
db $20, $18, $A4, $11
db $20, $10, $A2, $11
db $20, $08, $A0, $11
db $10, $18, $9E, $11
db $10, $10, $9C, $11
db $80 ; terminator
OAMData2_56: ; 0x
db $20, $20, $22, $11
db $20, $18, $20, $11
db $20, $10, $1E, $11
db $20, $08, $1C, $11
db $10, $18, $1A, $11
db $10, $10, $A8, $11
db $80 ; terminator
OAMData2_57: ; 0x
db $26, $1E, $2A, $13
db $26, $16, $28, $13
db $26, $0E, $26, $13
db $26, $06, $24, $13
db $80 ; terminator
OAMData2_58: ; 0x
db $26, $1E, $32, $13
db $26, $16, $30, $13
db $26, $0E, $2E, $13
db $26, $06, $2C, $13
db $80 ; terminator
OAMData2_59: ; 0x
db $26, $1E, $3A, $13
db $26, $16, $38, $13
db $26, $0E, $36, $13
db $26, $06, $34, $13
db $80 ; terminator
OAMData2_5a: ; 0x
db $25, $1E, $7C, $13
db $25, $16, $7A, $13
db $25, $0E, $3E, $13
db $25, $06, $3C, $13
db $80 ; terminator
OAMData2_5b: ; 0x
db $24, $1B, $AC, $13
db $24, $13, $AA, $13
db $24, $0B, $7E, $13
db $80 ; terminator
OAMData2_5c: ; 0x
db $24, $18, $B0, $13
db $24, $10, $AE, $13
db $80 ; terminator
OAMData2_5d: ; 0x
db $22, $18, $B4, $13
db $22, $10, $B2, $13
db $80 ; terminator
OAMData2_5e: ; 0x
db $20, $1E, $BA, $13
db $20, $16, $B8, $13
db $20, $0E, $B6, $13
db $80 ; terminator
OAMData2_5f: ; 0x
db $20, $20, $C6, $11
db $20, $18, $C4, $11
db $20, $10, $C2, $11
db $20, $08, $C0, $11
db $10, $18, $BE, $11
db $10, $10, $BC, $11
db $80 ; terminator
OAMData2_60: ; 0x
db $20, $20, $D2, $11
db $20, $18, $D0, $11
db $20, $10, $CE, $11
db $1F, $08, $CC, $11
db $10, $18, $CA, $11
db $10, $10, $C8, $11
db $80 ; terminator
OAMData2_61: ; 0x
db $20, $20, $DE, $11
db $20, $18, $DC, $11
db $20, $10, $DA, $11
db $20, $08, $D8, $11
db $10, $18, $D6, $11
db $10, $10, $D4, $11
db $80 ; terminator
OAMData2_62: ; 0x
db $25, $1B, $AD, $53
db $25, $13, $AB, $53
db $25, $0B, $7F, $53
db $80 ; terminator
OAMData2_63: ; 0x
db $25, $1E, $7D, $53
db $25, $16, $7B, $53
db $25, $0E, $3F, $53
db $25, $06, $3D, $53
db $80 ; terminator
OAMData2_64: ; 0x
db $26, $09, $2A, $33
db $26, $11, $28, $33
db $26, $19, $26, $33
db $26, $21, $24, $33
db $80 ; terminator
OAMData2_65: ; 0x
db $26, $09, $32, $33
db $26, $11, $30, $33
db $26, $19, $2E, $33
db $26, $21, $2C, $33
db $80 ; terminator
OAMData2_66: ; 0x
db $26, $09, $3A, $33
db $26, $11, $38, $33
db $26, $19, $36, $33
db $26, $21, $34, $33
db $80 ; terminator
OAMData2_67: ; 0x
db $25, $09, $7C, $33
db $25, $11, $7A, $33
db $25, $19, $3E, $33
db $25, $21, $3C, $33
db $80 ; terminator
OAMData2_68: ; 0x
db $24, $0E, $AC, $33
db $24, $16, $AA, $33
db $24, $1E, $7E, $33
db $80 ; terminator
OAMData2_69: ; 0x
db $25, $0E, $AD, $73
db $25, $16, $AB, $73
db $25, $1E, $7F, $73
db $80 ; terminator
OAMData2_6a: ; 0x
db $25, $09, $7D, $73
db $25, $11, $7B, $73
db $25, $19, $3F, $73
db $25, $21, $3D, $73
db $80 ; terminator
OAMData2_6b: ; 0x
db $02, $18, $E4, $00
db $02, $10, $E0, $00
db $80 ; terminator
OAMData2_6c: ; 0x
db $00, $18, $E4, $00
db $00, $10, $E0, $00
db $80 ; terminator
OAMData2_6d: ; 0x
db $FE, $18, $E4, $00
db $FE, $10, $E0, $00
db $80 ; terminator
OAMData2_6e: ; 0x
db $02, $18, $E8, $00
db $02, $10, $E0, $00
db $80 ; terminator
OAMData2_6f: ; 0x
db $00, $18, $E8, $00
db $00, $10, $E0, $00
db $80 ; terminator
OAMData2_70: ; 0x
db $FE, $18, $E8, $00
db $FE, $10, $E0, $00
db $80 ; terminator
OAMData2_71: ; 0x
db $02, $18, $EE, $00
db $02, $10, $E0, $00
db $80 ; terminator
OAMData2_72: ; 0x
db $00, $18, $EE, $00
db $00, $10, $E0, $00
db $80 ; terminator
OAMData2_73: ; 0x
db $FE, $18, $EE, $00
db $FE, $10, $E0, $00
db $80 ; terminator
OAMData2_74: ; 0x
db $02, $1C, $EC, $00
db $02, $14, $E2, $00
db $02, $0C, $E0, $00
db $80 ; terminator
OAMData2_75: ; 0x
db $00, $1C, $EC, $00
db $00, $14, $E2, $00
db $00, $0C, $E0, $00
db $80 ; terminator
OAMData2_76: ; 0x
db $FE, $1C, $EC, $00
db $FE, $14, $E2, $00
db $FE, $0C, $E0, $00
db $80 ; terminator
OAMData2_77: ; 0x
db $02, $1C, $E4, $00
db $02, $14, $E6, $00
db $02, $0C, $E0, $00
db $80 ; terminator
OAMData2_78: ; 0x
db $00, $1C, $E4, $00
db $00, $14, $E6, $00
db $00, $0C, $E0, $00
db $80 ; terminator
OAMData2_79: ; 0x
db $FE, $1C, $E4, $00
db $FE, $14, $E6, $00
db $FE, $0C, $E0, $00
db $80 ; terminator
OAMData2_7a: ; 0x
db $02, $1C, $E8, $00
db $02, $14, $EC, $00
db $02, $0C, $E0, $00
db $80 ; terminator
OAMData2_7b: ; 0x
db $00, $1C, $E8, $00
db $00, $14, $EC, $00
db $00, $0C, $E0, $00
db $80 ; terminator
OAMData2_7c: ; 0x
db $FE, $1C, $E8, $00
db $FE, $14, $EC, $00
db $FE, $0C, $E0, $00
db $80 ; terminator
OAMData2_7d: ; 0x
db $02, $20, $EE, $00
db $02, $18, $E4, $00
db $02, $10, $E2, $00
db $02, $08, $E0, $00
db $80 ; terminator
OAMData2_7e: ; 0x
db $00, $20, $EE, $00
db $00, $18, $E4, $00
db $00, $10, $E2, $00
db $00, $08, $E0, $00
db $80 ; terminator
OAMData2_7f: ; 0x
db $FE, $20, $EE, $00
db $FE, $18, $E4, $00
db $FE, $10, $E2, $00
db $FE, $08, $E0, $00
db $80 ; terminator
OAMData2_80: ; 0x
db $02, $20, $EC, $00
db $02, $18, $EA, $00
db $02, $10, $E4, $00
db $02, $08, $E0, $00
db $80 ; terminator
OAMData2_81: ; 0x
db $00, $20, $EC, $00
db $00, $18, $EA, $00
db $00, $10, $E4, $00
db $00, $08, $E0, $00
db $80 ; terminator
OAMData2_82: ; 0x
db $FE, $20, $EC, $00
db $FE, $18, $EA, $00
db $FE, $10, $E4, $00
db $FE, $08, $E0, $00
db $80 ; terminator
OAMData2_83: ; 0x6258
db $10, $08, $F0, $00
db $80 ; terminator
OAMData2_84: ; 0x625d
db $10, $08, $F2, $00
db $80 ; terminator
; Free Space 0x6262
SECTION "bank2", ROMX, BANK[$2]
Func_8000: ; 0x8000
ld a, [wScreenState]
rst $18 ; calls JumpToFuncInTable
CallTable_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
; This code makes no sense.
; It first fills 33 bytes at $ff68, then refills at $ff6a
ld a, $80
ld de, $ff68
ld hl, Data_80e4
call Fill33Bytes
ld a, $80
ld de, $ff6a
ld hl, Data_80f4
call Fill33Bytes
ld hl, PointerTable_8089
xor a
call LoadVideoData
ld a, Bank(Data_8094)
ld bc, Data_8094
ld de, LoadTileLists
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
Data_8094: ; 0x8094
db $13
dbw $06, $98A3
db $BC, $AF, $B6, $AF, $AD, $BD
dbw $06, $98AA
db $BD, $AB, $BB, $B1, $AF, $BD
dbw $04, $98E3
db $D0, $AD, $B1, $AC
dbw $03, $9924
db $AE, $B7, $B1
db $00 ; terminator
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
Fill33Bytes: ; 0x80d1
; First places a in [de].
; Then, reads 32 bytes from hl and places them in order at de + 1
ld [de], a
inc de
ld b, $4
.outerLoop
ld c, $8
push hl
.innerLoop
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
dec c
jr nz, .innerLoop
pop hl
dec b
jr nz, .outerLoop
ret
Data_80e4: ; 0x80e4
db $FF
db $7F
db $B5
db $56
db $6B
db $2D
db $00
db $00
db $FF
db $7F
db $B5
db $56
db $6B
db $2D
db $00
db $00
Data_80f4: ; 0x80f4
db $B5
db $56
db $FF
db $7F
db $6B
db $2D
db $00
db $00
db $FF
db $7F
db $B5
db $56
db $6B
db $2D
db $00
db $00
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, Bank(Data_813a)
ld bc, Data_813a
ld de, LoadTileLists ; todo
call Func_10c5
ret
.asm_812e
ld a, Bank(Data_8144)
ld bc, Data_8144
ld de, LoadTileLists ; todo
call Func_10c5
ret
Data_813a: ; 0x813a
db $02
dbw $01, $98E3
db $D1
dbw $01, $9923
db $D0
db $00 ; terminator
Data_8144: ; 0x8144
db $02
dbw $01, $98E3
db $D0
dbw $01, $9923
db $D1
db $00 ; terminator
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 ; calls JumpToFuncInTable
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
VIDEO_DATA_TILES EraseAllDataGfx, vTiles2, $300
VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap0, $400
db $FF, $FF ; terminators
EraseAllDataGfx_GameBoyColor: ; 0x81b6
VIDEO_DATA_TILES EraseAllDataGfx, vTiles2, $300
VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap0, $400
VIDEO_DATA_BGATTR EraseAllDataBGAttributes, vBGMap0, $400
VIDEO_DATA_PALETTES EraseAllDataPalettes, $80
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 ; calls JumpToFuncInTable
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
VIDEO_DATA_TILES CopyrightTextGfx, vTiles1, $400
VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap0, $400
db $FF, $FF ; terminators
CopyrightTextGfx_GameBoyColor: ; 0x8272
VIDEO_DATA_TILES CopyrightTextGfx, vTiles1, $400
VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap0, $400
VIDEO_DATA_BGATTR CopyrightScreenBGAttributes, vBGMap0, $400
VIDEO_DATA_PALETTES CopyrightScreenPalettes, $80
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, Bank(ClearPokedexData)
ld hl, ClearPokedexData
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, Bank(SaveDefaultKeyConfigs)
ld hl, SaveDefaultKeyConfigs
call BankSwitch
.asm_82f6
ld hl, $a268
ld de, wPartyMons
ld bc, $04c3 ; This is saved game data from when the player saves in the middle of a game.
call Func_f0c
jr c, .asm_8308
xor a
ld [$d7c2], a ; if this is non-zero, the main menu will prompt for "continue or new game?".
.asm_8308
ld hl, wCurrentScreen
inc [hl]
xor a
ld [wScreenState], a
ret
InitializeStage: ; 0x8311
ld hl, wc000
ld bc, $0a00
call ClearData
ld a, $1
ld [$ff4f], a
ld a, [$d805]
and a
jr nz, .asm_8331
ld hl, vBGMap1
ld bc, $0400
ld a, $0
call Func_63e
jr .asm_833c
.asm_8331
ld hl, vBGMap1
ld bc, $0400
ld a, $8
call Func_63e
.asm_833c
xor a
ld [$ff4f], a
call Func_8388
ld a, [wCurrentStage]
call CallInFollowingTable
CallTable_8348: ; 0x8348
; STAGE_RED_FIELD_TOP
dw InitRedField
db Bank(InitRedField), $00
; STAGE_RED_FIELD_BOTTOM
dw InitRedField
db Bank(InitRedField), $00
dw Func_18000
db Bank(Func_18000), $00
dw Func_18000
db Bank(Func_18000), $00
; STAGE_BLUE_FIELD_TOP
dw InitBlueField
db Bank(InitBlueField), $00
; STAGE_BLUE_FIELD_BOTTOM
dw InitBlueField
db Bank(InitBlueField), $00
; STAGE_GENGAR_BONUS
dw InitGengarBonusStage
db Bank(InitGengarBonusStage), $00
; STAGE_GENGAR_BONUS
dw InitGengarBonusStage
db Bank(InitGengarBonusStage), $00
; STAGE_MEWTWO_BONUS
dw InitMewtwoBonusStage
db Bank(InitMewtwoBonusStage), $00
; STAGE_MEWTWO_BONUS
dw InitMewtwoBonusStage
db Bank(InitMewtwoBonusStage), $00
; STAGE_MEOWTH_BONUS
dw InitMeowthBonusStage
db Bank(InitMeowthBonusStage), $00
; STAGE_MEOWTH_BONUS
dw InitMeowthBonusStage
db Bank(InitMeowthBonusStage), $00
; STAGE_DIGLETT_BONUS
dw InitDiglettBonusStage
db Bank(InitDiglettBonusStage), $00
; STAGE_DIGLETT_BONUS
dw InitDiglettBonusStage
db Bank(InitDiglettBonusStage), $00
; STAGE_SEEL_BONUS
dw InitSeelBonusStage
db Bank(InitSeelBonusStage), $00
; STAGE_SEEL_BONUS
dw InitSeelBonusStage
db Bank(InitSeelBonusStage), $00
Func_8388: ; 0x8388
ld a, [$d7c1]
and a
jr z, .asm_8398
ld hl, wSubTileBallXPos
ld bc, $0037
call ClearData
ret
.asm_8398
ld a, [wCurrentStage]
cp $6
ret nc
ld hl, wPartyMons
ld bc, $0170
call ClearData
ld hl, $d473 ; todo
ld bc, $0039
call ClearData
ld hl, $d4ad
ld bc, $034d
call ClearData
ret
StartBallForStage: ; 0x83ba
ld a, [$d7c1]
and a
jr z, .asm_83c7
call Func_8444
call Func_8461
ret
.asm_83c7
xor a
ld [wBallXVelocity], a
ld [wBallXVelocity + 1], a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld [$d7ae], a
ld [$d7af], a
ld [$d7b2], a
ld [$d7b3], a
ld [$d7b0], a
ld [$d7b1], a
ld [$d7b4], a
ld [$d7b5], a
ld [wBallSpin], a
ld [wBallRotation], a
inc a
ld [$d548], a
ld [$d549], a
ld a, $20
ld [$d7ab], a
ld a, [wCurrentStage]
call CallInFollowingTable
CallTable_8404: ; 0x8404
; STAGE_RED_FIELD_TOP
dw StartBallRedField
db Bank(StartBallRedField), $00
; STAGE_RED_FIELD_BOTTOM
dw StartBallRedField
db Bank(StartBallRedField), $00
dw Func_1804a
db Bank(Func_1804a), $00
dw Func_1804a
db Bank(Func_1804a), $00
; STAGE_BLUE_FIELD_TOP
dw StartBallBlueField
db Bank(StartBallBlueField), $00
; STAGE_BLUE_FIELD_BOTTOM
dw StartBallBlueField
db Bank(StartBallBlueField), $00
; STAGE_GENGAR_BONUS
dw StartBallGengarBonusStage
db Bank(StartBallGengarBonusStage), $00
; STAGE_GENGAR_BONUS
dw StartBallGengarBonusStage
db Bank(StartBallGengarBonusStage), $00
; STAGE_MEWTWO_BONUS
dw StartBallMewtwoBonusStage
db Bank(StartBallMewtwoBonusStage), $00
; STAGE_MEWTWO_BONUS
dw StartBallMewtwoBonusStage
db Bank(StartBallMewtwoBonusStage), $00
; STAGE_MEOWTH_BONUS
dw StartBallMeowthBonusStage
db Bank(StartBallMeowthBonusStage), $00
; STAGE_MEOWTH_BONUS
dw StartBallMeowthBonusStage
db Bank(StartBallMeowthBonusStage), $00
; STAGE_DIGLETT_BONUS
dw StartBallDiglettBonusStage
db Bank(StartBallDiglettBonusStage), $00
; STAGE_DIGLETT_BONUS
dw StartBallDiglettBonusStage
db Bank(StartBallDiglettBonusStage), $00
; STAGE_SEEL_BONUS
dw StartBallSeelBonusStage
db Bank(StartBallSeelBonusStage), $00
; STAGE_SEEL_BONUS
dw StartBallSeelBonusStage
db Bank(StartBallSeelBonusStage), $00
Func_8444: ; 0x8444
ld a, [wInSpecialMode]
and a
jr z, .asm_8460
ld a, [wSpecialMode]
and a
jr nz, .asm_8460
ld a, [$d5bb]
and a
jr z, .asm_8460
ld [$ff8a], a
ld a, Bank(Func_10464)
ld hl, Func_10464
call BankSwitch
.asm_8460
ret
Func_8461: ; 0x8461
ld a, [$d7c0]
call SetSongBank
ld a, [$d7bf]
ld e, a
ld d, $0
call PlaySong
ret
Func_8471: ; 0x8471
ld a, [wCurrentStage]
call CallInFollowingTable
CallTable_8477: ; 0x8477
; STAGE_RED_FIELD_TOP
dw Func_14000
db Bank(Func_14000), $00
; STAGE_RED_FIELD_BOTTOM
dw Func_1401c
db Bank(Func_1401c), $00
dw Func_1805f
db Bank(Func_1805f), $00
dw Func_18060
db Bank(Func_18060), $00
; STAGE_BLUE_FIELD_TOP
dw Func_1c165
db Bank(Func_1c165), $00
; STAGE_BLUE_FIELD_BOTTOM
dw Func_1c191
db Bank(Func_1c191), $00
; STAGE_GENGAR_BONUS
dw Func_1818b
db Bank(Func_1818b), $00
; STAGE_GENGAR_BONUS
dw Func_1818b
db Bank(Func_1818b), $00
; STAGE_MEWTWO_BONUS
dw Func_19310
db Bank(Func_19310), $00
; STAGE_MEWTWO_BONUS
dw Func_19310
db Bank(Func_19310), $00
; STAGE_MEOWTH_BONUS
dw Func_24128
db Bank(Func_24128), $00
; STAGE_MEOWTH_BONUS
dw Func_24128
db Bank(Func_24128), $00
; STAGE_DIGLETT_BONUS
dw Func_19a76
db Bank(Func_19a76), $00
; STAGE_DIGLETT_BONUS
dw Func_19a76
db Bank(Func_19a76), $00
; STAGE_SEEL_BONUS
dw Func_25b97
db Bank(Func_25b97), $00
; STAGE_SEEL_BONUS
dw Func_25b97
db Bank(Func_25b97), $00
Func_84b7: ; 0x84b7
ld a, [wCurrentStage]
call CallInFollowingTable
PointerTable_84bd: ; 0x84bd
; STAGE_RED_FIELD_TOP
dw Func_1755c
db Bank(Func_1755c), $00
; STAGE_RED_FIELD_BOTTOM
dw Func_1757e
db Bank(Func_1757e), $00
dw Func_18079
db Bank(Func_18079), $00
dw Func_18084
db Bank(Func_18084), $00
; STAGE_BLUE_FIELD_TOP
dw Func_1f330
db Bank(Func_1f330), $00
; STAGE_BLUE_FIELD_BOTTOM
dw Func_1f35a
db Bank(Func_1f35a), $00
; STAGE_GENGAR_BONUS
dw Func_18faf
db Bank(Func_18faf), $00
; STAGE_GENGAR_BONUS
dw Func_18faf
db Bank(Func_18faf), $00
; STAGE_MEWTWO_BONUS
dw Func_1994e
db Bank(Func_1994e), $00
; STAGE_MEWTWO_BONUS
dw Func_1994e
db Bank(Func_1994e), $00
; STAGE_MEOWTH_BONUS
dw Func_2583b
db Bank(Func_2583b), $00
; STAGE_MEOWTH_BONUS
dw Func_2583b
db Bank(Func_2583b), $00
; STAGE_DIGLETT_BONUS
dw Func_1ac98
db Bank(Func_1ac98), $00
; STAGE_DIGLETT_BONUS
dw Func_1ac98
db Bank(Func_1ac98), $00
; STAGE_SEEL_BONUS
dw Func_26b7e
db Bank(Func_26b7e), $00
; STAGE_SEEL_BONUS
dw Func_26b7e
db Bank(Func_26b7e), $00
INCBIN "baserom.gbc",$84fd,$8524 - $84fd
Func_8524: ; 0x8524
ld hl, $d46f
ld bc, $0c01
.asm_852a
ld a, [hl]
swap a
and $f
call Func_8543
inc de
dec b
ld a, [hld]
and $f
call Func_8543
inc de
dec b
jr nz, .asm_852a
ld a, $86
ld [de], a
inc de
ret
Func_8543: ; 0x8543
jr nz, .asm_854c
ld a, b
dec a
jr z, .asm_854c
ld a, c
and a
ret nz
.asm_854c
add $86
ld [de], a
ld c, $0
ld a, b
cp $c
jr z, .asm_8561
cp $9
jr z, .asm_8561
cp $6
jr z, .asm_8561
cp $3
ret nz
.asm_8561
set 7, e
ld a, $82
ld [de], a
res 7, e
ret
INCBIN "baserom.gbc",$8569,$8576 - $8569
Func_8576: ; 0x8576
ld h, b
ld l, c
ld a, [$d477]
ld e, a
ld d, $d4
ld a, [wBallType]
and a
jr nz, .asm_8585
inc a
.asm_8585
ld b, a
jr asm_8592
Func_8588: ; 0x8588
ld h, b
ld l, c
ld a, [$d477]
ld e, a
ld d, $d4
ld b, $1
asm_8592:
push hl
ld a, [de]
add [hl]
daa
ld [de], a
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
inc de
inc hl
ld a, e
cp $60
jr nz, .asm_85be
ld e, $0
.asm_85be
pop hl
dec b
jr nz, asm_8592
ld a, e
ld [$d477], a
ret
Func_85c7: ; 0x85c7
ld a, [$ffb3]
and $3
ret nz
ld a, [$d478]
ld l, a
ld h, $d4
ld de, wScore
ld a, [$d477]
cp l
jr nz, .asm_85de
ld [$d479], a
.asm_85de
push hl
ld a, [hli]
or [hl]
inc hl
or [hl]
inc hl
or [hl]
inc hl
or [hl]
inc hl
or [hl]
pop hl
jr nz, .asm_85f3
ld a, [$d479]
ld [$d478], a
ret
.asm_85f3
ld a, [de]
add [hl]
daa
ld [de], a
ld [hl], $0
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
ld [hl], $0
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
ld [hl], $0
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
ld [hl], $0
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
ld [hl], $0
inc de
inc hl
ld a, [de]
adc [hl]
daa
ld [de], a
ld [hl], $0
call c, SetMaxScore
inc de
inc hl
ld a, l
cp $60
jr nz, .asm_862d
ld l, $0
.asm_862d
ld a, l
ld [$d478], a
ld a, $1
ld [$d49f], a
ret
SetMaxScore: ; 0x8637
push hl
ld hl, wScore
ld a, $99
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
pop hl
ret
Func_8645: ; 0x8645
xor a
ld [$d49f], a
ld de, $c647
call Func_8524
ret
Func_8650: ; 0x8650
ld a, [wCurrentStage]
bit 0, a
jr nz, .bottomStage
ld a, $86
ld [$ffa6], a
ret
.bottomStage
ld a, [wBallYPos + 1]
cp $84
jr nc, .asm_8670
ld a, [$ffa6]
sub $3
cp $86
jr nc, .asm_866d
ld a, $86
.asm_866d
ld [$ffa6], a
ret
.asm_8670
ld a, [$ffa6]
add $3
cp $90
jr c, .asm_867a
ld a, $90
.asm_867a
ld [$ffa6], a
ret
StartTimer: ; 0x867d
; Starts the timer that counts down with the specified starting time when things
; like CatchEm Mode starts.
; input: b = minutes
; c = seconds
ld a, c
ld [wTimerSeconds], a
ld a, b
ld [wTimerMinutes], a
xor a
ld [wTimerFrames], a
ld [$d57e], a
ld [$d57f], a
ld a, $1
ld [$d57d], a
ld a, $1
ld [$d580], a
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
ret
Func_86a4: ; 0x86a4
ld a, [$d57f]
and a
ret nz
ld a, [wTimerFrames]
inc a
cp $3c
jr c, .asm_86b2
xor a
.asm_86b2
ld [wTimerFrames], a
ret c
ld hl, wTimerMinutes
ld a, [hld]
or [hl]
jr nz, .asm_86c3
ld a, $1
ld [$d57e], a
ret
.asm_86c3
ld a, [hl]
sub $1
daa
jr nc, .asm_86cb
ld a, $59
.asm_86cb
ld [hli], a
ld a, [hl]
sbc $0
daa
ld [hl], a
ret
Func_86d2: ; 0x86d2
xor a
ld [$d57d], a
ret
HandleInGameMenu: ; 0x86d7
; Routine responsible for the "SAVE"/"CANCEL" menu.
ld a, [$d917]
push af
ld a, $1
ld [$d917], a
call Func_30e8
xor a
ld [$d4aa], a
ld hl, wcBottomMessageText
ld a, $81
ld b, $30
.clearLoop
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
dec b
jr nz, .clearLoop
ld de, $c524
ld hl, SaveText
call Func_8797
ld de, $c564
ld hl, CancelText
call Func_8797
ld a, Bank(InGameMenuSymbolsGfx)
ld hl, InGameMenuSymbolsGfx
ld de, vTiles1 + $60
ld bc, $0010
call LoadVRAMData
ld a, $0
ld hl, wcBottomMessageText
ld de, vBGMap1
ld bc, $00c0
call LoadVRAMData
ld a, $60
ld [$ffa6], a
dec a
ld [$ffa2], a
ld a, $fd
ld [$ffaf], a
call HandleInGameMenuSelection
ld a, [wInGameMenuIndex]
and a
jr nz, .pickedCancel
ld a, $1
ld [$d7c2], a
ld hl, wPartyMons
ld de, $a268
ld bc, $04c3
call SaveData
xor a
ld [$d803], a
ld [$d804], a
.pickedCancel
ld bc, $003c
call Func_93f
ld a, $86
ld [$ffa6], a
ld a, $83
ld [$ffa2], a
ld [$ffa8], a
ld a, $ff
ld [$ffaf], a
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_8778
ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy)
ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoy + $60
ld de, vTiles1 + $60
ld bc, $0010
call LoadVRAMData
jr .asm_8786
.asm_8778
ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor)
ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + $60
ld de, vTiles1 + $60
ld bc, $0010
call LoadVRAMData
.asm_8786
call Func_30e8
pop af
ld [$d917], a
ld a, $1
ld [$d4aa], a
ld a, [wInGameMenuIndex]
and a
ret
Func_8797: ; 0x8797
ld a, [hli]
and a
ret z
add $bf
ld [de], a
inc de
jr Func_8797
SaveText: ; 0x87a0
db "SAVE@"
CancelText: ; 0x87a5
db "CANCEL@"
HandleInGameMenuSelection: ; 0x87ac
ld a, $1
ld [wInGameMenuIndex], a
.waitForAButton
call MoveInGameMenuCursor
call DrawInGameMenu
rst $10
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .waitForAButton
ld de, $0001
call PlaySoundEffect
ret
MoveInGameMenuCursor: ; 0x87c5
; Moves the cursor up or down in the "SAVE"/"CANCEL" in-game menu
ld a, [hNewlyPressedButtons]
ld b, a
ld a, [wInGameMenuIndex]
bit BIT_D_UP, b
jr z, .didntPressUp
and a ; is the cursor already on "SAVE"?
ret z
dec a
ld [wInGameMenuIndex], a
ld de, $0003
call PlaySoundEffect
ret
.didntPressUp
bit BIT_D_DOWN, b
ret z
cp $1 ; is the cursor already on "CANCEL"?
ret z
inc a
ld [wInGameMenuIndex], a
ld de, $0003
call PlaySoundEffect
ret
DrawInGameMenu: ; 0x87ed
ld a, $81
ld [$c523], a
ld [$c563], a
ld a, [wInGameMenuIndex]
ld c, a
swap c
sla c
sla c
ld b, $0
ld hl, $c523
add hl, bc
ld a, $86
ld [hl], a
ld a, $0
ld hl, wcBottomMessageText
ld de, vBGMap1
ld bc, $00c0
call LoadVRAMData
ret
Data_8817: ; 0x8817
; This data has something to do with collisions.
db $C0
db $C5
db $D0
db $DB
db $E0
db $E5
db $F0
db $FB
db $00
db $05
db $10
db $1B
db $20
db $25
db $30
db $3B
db $45
db $CA
db $D5
db $E0
db $E5
db $EA
db $F5
db $00
db $05
db $0A
db $15
db $20
db $25
db $2A
db $35
db $40
db $50
db $55
db $E0
db $EB
db $F0
db $F5
db $00
db $0B
db $10
db $15
db $20
db $2B
db $30
db $35
db $40
db $4B
db $5B
db $60
db $6B
db $F6
db $FB
db $00
db $0B
db $16
db $1B
db $20
db $2B
db $36
db $3B
db $40
db $4B
db $56
db $60
db $65
db $70
db $7B
db $00
db $05
db $10
db $1B
db $20
db $25
db $30
db $3B
db $40
db $45
db $50
db $5B
db $65
db $6A
db $75
db $80
db $85
db $0A
db $15
db $20
db $25
db $2A
db $35
db $40
db $45
db $4A
db $55
db $60
db $70
db $75
db $80
db $8B
db $90
db $95
db $20
db $2B
db $30
db $35
db $40
db $4B
db $50
db $55
db $60
db $6B
db $7B
db $80
db $8B
db $96
db $9B
db $A0
db $AB
db $36
db $3B
db $40
db $4B
db $56
db $5B
db $60
db $6B
db $76
db $80
db $85
db $90
db $9B
db $A0
db $A5
db $B0
db $BB
db $40
db $45
db $50
db $5B
db $60
db $65
db $70
db $7B
db $85
db $8A
db $95
db $A0
db $A5
db $AA
db $B5
db $C0
db $C5
db $4A
db $55
db $60
db $65
db $6A
db $75
db $80
db $90
db $95
db $A0
db $AB
db $B0
db $B5
db $C0
db $CB
db $D0
db $D5
db $60
db $6B
db $70
db $75
db $80
db $8B
db $9B
db $A0
db $AB
db $B6
db $BB
db $C0
db $CB
db $D6
db $DB
db $E0
db $EB
db $76
db $7B
db $80
db $8B
db $96
db $A0
db $A5
db $B0
db $BB
db $C0
db $C5
db $D0
db $DB
db $E0
db $E5
db $F0
db $FB
db $80
db $85
db $90
db $9B
db $A5
db $AA
db $B5
db $C0
db $C5
db $CA
db $D5
db $E0
db $E5
db $EA
db $F5
db $00
db $05
db $8A
db $95
db $A0
db $B0
db $B5
db $C0
db $CB
db $D0
db $D5
db $E0
db $EB
db $F0
db $F5
db $00
db $0B
db $10
db $15
db $A0
db $AB
db $BB
db $C0
db $CB
db $D6
db $DB
db $E0
db $EB
db $F6
db $FB
db $00
db $0B
db $16
db $1B
db $20
db $2B
db $B6
Data_8917: ; 0x8917
; This has to do with y-collision data
dw $0000
dw $FFE0
dw $FF81
dw $FEDE
dw $FE77
dw $FE00
dw $FCCC
dw $FB87
dw $FB01
dw $FA8E
dw $F9F8
dw $FA1F
dw $FA77
dw $FAFC
dw $FCAD
dw $FEE7
dw $0119
dw $FFC2
dw $FF70
dw $FEE4
dw $FE8C
dw $FE24
dw $FD15
dw $FBF9
dw $FB87
dw $FB27
dw $FAB9
dw $FB03
dw $FB69
dw $FBFA
dw $FDBD
dw $0000
dw $0353
dw $045D
dw $FF4B
dw $FF01
dw $FECC
dw $FE8A
dw $FDD5
dw $FD15
dw $FCCC
dw $FC94
dw $FC77
dw $FD03
dw $FD81
dw $FE24
dw $0000
dw $0243
dw $0504
dw $05F6
dw $07B4
dw $FF08
dw $FEFB
dw $FEE2
dw $FE8A
dw $FE24
dw $FE00
dw $FDEC
dw $FE10
dw $FEC9
dw $FF54
dw $0000
dw $01DC
dw $0406
dw $0589
dw $066D
dw $0808
dw $08E7
dw $FF00
dw $FEFB
dw $FECC
dw $FE8C
dw $FE77
dw $FE71
dw $FEAD
dw $FF73
dw $0000
dw $00AC
dw $027F
dw $0497
dw $05E1
dw $06B6
dw $082C
dw $08E1
dw $08E7
dw $FF08
dw $FF01
dw $FEE4
dw $FEDE
dw $FEE3
dw $FF32
dw $0000
dw $008D
dw $0137
dw $02FD
dw $04FD
dw $0608
dw $06B8
dw $07D4
dw $082C
dw $0808
dw $07B4
dw $FF4B
dw $FF70
dw $FF81
dw $FF99
dw $0000
dw $00CE
dw $0153
dw $01F0
dw $0389
dw $0547
dw $0572
dw $05F8
dw $06B8
dw $06B6
dw $066D
dw $05F6
dw $045D
dw $FFC2
dw $FFE0
dw $0000
dw $0067
dw $011D
dw $018F
dw $0214
dw $036C
dw $04D9
dw $04FF
dw $0572
dw $0608
dw $05E1
dw $0589
dw $0504
dw $0353
dw $0119
dw $0000
dw $0020
dw $007F
dw $0122
dw $0189
dw $0200
dw $0334
dw $0479
dw $0479
dw $04D9
dw $0547
dw $04FD
dw $0497
dw $0406
dw $0243
dw $0000
dw $FEE7
dw $003E
dw $0090
dw $011C
dw $0174
dw $01DC
dw $02EB
dw $0407
dw $0334
dw $036C
dw $0389
dw $02FD
dw $027F
dw $01DC
dw $0000
dw $FDBD
dw $FCAD
dw $FBA3
dw $00B5
dw $00FF
dw $0134
dw $0176
dw $022B
dw $02EB
dw $0200
dw $0214
dw $01F0
dw $0137
dw $00AC
dw $0000
dw $FE24
dw $FBFA
dw $FAFC
dw $FA0A
dw $F84C
dw $00F8
dw $0105
dw $011E
dw $0176
dw $01DC
dw $0189
dw $018F
dw $0153
dw $008D
dw $0000
dw $FF54
dw $FD81
dw $FB69
dw $FA77
dw $F993
dw $F7F8
dw $F719
dw $0100
dw $0105
dw $0134
dw $0174
dw $0122
dw $011D
dw $00CE
dw $0000
dw $FF73
dw $FEC9
dw $FD03
dw $FB03
dw $FA1F
dw $F94A
dw $F7D4
dw $F71F
dw $F719
dw $00F8
dw $00FF
dw $011C
dw $007F
dw $0067
dw $0000
dw $FF32
dw $FEAD
dw $FE10
dw $FC77
dw $FAB9
dw $F9F8
dw $F948
dw $F82C
dw $F7D4
dw $F7F8
dw $F84C
dw $00B5
dw $0090
dw $0020
dw $0000
dw $FF99
dw $FEE3
dw $FE71
dw $FDEC
dw $FC94
dw $FB27
dw $FA8E
dw $FA08
dw $F948
dw $F94A
dw $F993
dw $FA0A
dw $FBA3
dw $003E
Data_8b17: ; 0x8b17
; This data has to do with x-collision data
dw $FF00
dw $FEFB
dw $FECC
dw $FE8C
dw $FE77
dw $FE71
dw $FEAD
dw $FF73
dw $0000
dw $00AC
dw $027F
dw $0497
dw $0589
dw $066D
dw $0808
dw $08E7
dw $08E7
dw $FF08
dw $FF01
dw $FEE4
dw $FEDE
dw $FEE3
dw $FF32
dw $0000
dw $008D
dw $0137
dw $02FD
dw $04FD
dw $05E1
dw $06B6
dw $082C
dw $08E1
dw $0808
dw $07B4
dw $FF4B
dw $FF70
dw $FF81
dw $FF99
dw $0000
dw $00CE
dw $0153
dw $01F0
dw $0389
dw $0547
dw $0608
dw $06B8
dw $07D4
dw $082C
dw $066D
dw $05F6
dw $045D
dw $FFC2
dw $FFE0
dw $0000
dw $0067
dw $011D
dw $018F
dw $0214
dw $036C
dw $04D9
dw $0572
dw $05F8
dw $06B8
dw $06B6
dw $0589
dw $0504
dw $0353
dw $0119
dw $0000
dw $0020
dw $007F
dw $0122
dw $0189
dw $0200
dw $0334
dw $0479
dw $04FF
dw $0572
dw $0608
dw $05E1
dw $0497
dw $0406
dw $0243
dw $0000
dw $FEE7
dw $003E
dw $0090
dw $011C
dw $0174
dw $01DC
dw $02EB
dw $0407
dw $0479
dw $04D9
dw $0547
dw $04FD
dw $027F
dw $01DC
dw $0000
dw $FDBD
dw $FCAD
dw $FBA3
dw $00B5
dw $00FF
dw $0134
dw $0176
dw $022B
dw $02EB
dw $0334
dw $036C
dw $0389
dw $02FD
dw $00AC
dw $0000
dw $FE24
dw $FBFA
dw $FAFC
dw $FA0A
dw $F84C
dw $00F8
dw $0105
dw $011E
dw $0176
dw $01DC
dw $0200
dw $0214
dw $01F0
dw $0137
dw $0000
dw $FF54
dw $FD81
dw $FB69
dw $FA77
dw $F993
dw $F7F8
dw $F719
dw $0100
dw $0105
dw $0134
dw $0174
dw $0189
dw $018F
dw $0153
dw $008D
dw $FF73
dw $FEC9
dw $FD03
dw $FB03
dw $FA1F
dw $F94A
dw $F7D4
dw $F71F
dw $F719
dw $00F8
dw $00FF
dw $011C
dw $0122
dw $011D
dw $00CE
dw $0000
dw $FEAD
dw $FE10
dw $FC77
dw $FAB9
dw $F9F8
dw $F948
dw $F82C
dw $F7D4
dw $F7F8
dw $F84C
dw $00B5
dw $0090
dw $007F
dw $0067
dw $0000
dw $FF32
dw $FE71
dw $FDEC
dw $FC94
dw $FB27
dw $FA8E
dw $FA08
dw $F948
dw $F94A
dw $F993
dw $FA0A
dw $FBA3
dw $003E
dw $0020
dw $0000
dw $FF99
dw $FEE3
dw $FE77
dw $FE00
dw $FCCC
dw $FB87
dw $FB01
dw $FA8E
dw $F9F8
dw $FA1F
dw $FA77
dw $FAFC
dw $FCAD
dw $FEE7
dw $0000
dw $FFE0
dw $FF81
dw $FEDE
dw $FE8C
dw $FE24
dw $FD15
dw $FBF9
dw $FB87
dw $FB27
dw $FAB9
dw $FB03
dw $FB69
dw $FBFA
dw $FDBD
dw $0000
dw $0119
dw $FFC2
dw $FF70
dw $FEE4
dw $FECC
dw $FE8A
dw $FDD5
dw $FD15
dw $FCCC
dw $FC94
dw $FC77
dw $FD03
dw $FD81
dw $FE24
dw $0000
dw $0243
dw $0353
dw $045D
dw $FF4B
dw $FF01
dw $FEFB
dw $FEE2
dw $FE8A
dw $FE24
dw $FE00
dw $FDEC
dw $FE10
dw $FEC9
dw $FF54
dw $0000
dw $01DC
dw $0406
dw $0504
dw $05F6
dw $07B4
dw $FF08
Func_8d17: ; 0x8d17
ld a, [$ff92]
cp $80
jp c, Func_8e01
ld a, [$ff90]
ld c, a
ld a, [$ff91]
ld b, a
ld a, [$ff93]
ld l, a
ld h, $0
add hl, bc
ld a, [$ff8e]
cp h
jr nz, .asm_8d32
ld a, [$ff8d]
cp l
.asm_8d32
jr nc, .asm_8d5c
ld a, [$ff8d]
ld [$ff90], a
ld a, [$ff8e]
ld [$ff91], a
ld a, [$ff8d]
ld c, a
ld a, [$ff8e]
ld b, a
ld a, [$ff8c]
ld l, a
ld h, $0
add hl, bc
ld a, l
ld [$ff8d], a
ld a, h
ld [$ff8e], a
srl h
rr l
srl h
rr l
ld a, [$ff8f]
cp l
jp c, Func_8df7
.asm_8d5c
ld a, [$ff90]
and $f8
ld c, a
ld a, [$ff91]
ld b, a
sla c
rl b
sla c
rl b
ld hl, $c010
add hl, bc
ld d, h
ld e, l
ld a, [$ff92]
swap a
ld c, a
and $f
ld b, a
ld a, c
and $f0
ld c, a
sla c
rl b
ld hl, PokedexCharactersGfx
add hl, bc
push hl
ld a, [$ff90]
and $7
ld c, a
ld b, $0
ld hl, Data_8df9
add hl, bc
ld a, [hl]
ld [$d85e], a
cpl
ld [$d85f], a
ld a, c
add $58
ld b, a
pop hl
push hl
ld c, $10
.asm_8da2
push bc
ld a, [hli]
ld c, a
ld a, [bc]
ld c, a
ld a, [$d85e]
and c
ld c, a
ld a, [$d860]
ld b, a
ld a, [de]
xor b
or c
xor b
ld [de], a
inc de
ld a, [de]
xor b
or c
xor b
ld [de], a
inc de
inc hl
pop bc
dec c
jr nz, .asm_8da2
pop hl
ld c, $10
.asm_8dc4
push bc
ld a, [hli]
ld c, a
ld a, [bc]
ld c, a
ld a, [$d85f]
and c
ld c, a
ld a, [$d860]
ld b, a
ld a, [de]
xor b
or c
xor b
ld [de], a
inc de
ld a, [de]
xor b
or c
xor b
ld [de], a
inc de
inc hl
pop bc
dec c
jr nz, .asm_8dc4
ld a, [$ff90]
ld c, a
ld a, [$ff91]
ld b, a
ld a, [$ff93]
ld l, a
ld h, $0
add hl, bc
ld a, l
ld [$ff90], a
ld a, h
ld [$ff91], a
and a
ret
Func_8df7: ; 0x8df7
scf
ret
Data_8df9: ; 0x8df9
db $FF, $7F, $3F, $1F, $0F, $07, $03, $01
Func_8e01: ; 0x8e01
ld a, [$ff90]
ld c, a
ld a, [$ff91]
ld b, a
ld a, [$ff93]
ld l, a
ld h, $0
add hl, bc
ld a, [$ff8e]
cp h
jr nz, .asm_8e15
ld a, [$ff8d]
cp l
.asm_8e15
jr nc, .asm_8e3f
ld a, [$ff8d]
ld [$ff90], a
ld a, [$ff8e]
ld [$ff91], a
ld a, [$ff8d]
ld c, a
ld a, [$ff8e]
ld b, a
ld a, [$ff8c]
ld l, a
ld h, $0
add hl, bc
ld a, l
ld [$ff8d], a
ld a, h
ld [$ff8e], a
srl h
rr l
srl h
rr l
ld a, [$ff8f]
cp l
jp c, Func_8ed6
.asm_8e3f
ld a, [$ff90]
and $f8
ld c, a
ld a, [$ff91]
ld b, a
sla c
rl b
ld hl, $c010
add hl, bc
ld d, h
ld e, l
ld a, [$ff92]
swap a
ld c, a
and $f
ld b, a
ld a, c
and $f0
ld c, a
sla c
rl b
ld hl, PokedexCharactersGfx + $8
add hl, bc
push hl
ld a, [$ff90]
and $7
ld c, a
ld b, $0
ld hl, Data_8ed8
add hl, bc
ld a, [hl]
ld [$d85e], a
cpl
ld [$d85f], a
ld a, c
add $58
ld b, a
pop hl
push hl
ld c, $8
.asm_8e81
push bc
ld a, [hli]
ld c, a
ld a, [bc]
ld c, a
ld a, [$d85e]
and c
ld c, a
ld a, [$d860]
ld b, a
ld a, [de]
xor b
or c
xor b
ld [de], a
inc de
ld a, [de]
xor b
or c
xor b
ld [de], a
inc de
inc hl
pop bc
dec c
jr nz, .asm_8e81
pop hl
ld c, $8
.asm_8ea3
push bc
ld a, [hli]
ld c, a
ld a, [bc]
ld c, a
ld a, [$d85f]
and c
ld c, a
ld a, [$d860]
ld b, a
ld a, [de]
xor b
or c
xor b
ld [de], a
inc de
ld a, [de]
xor b
or c
xor b
ld [de], a
inc de
inc hl
pop bc
dec c
jr nz, .asm_8ea3
ld a, [$ff90]
ld c, a
ld a, [$ff91]
ld b, a
ld a, [$ff93]
ld l, a
ld h, $0
add hl, bc
ld a, l
ld [$ff90], a
ld a, h
ld [$ff91], a
and a
ret
Func_8ed6: ; 0x8ed6
scf
ret
Data_8ed8: ; 0x8ed8
db $FF, $7F, $3F, $1F, $0F, $07, $03, $01
Func_8ee0: ; 0x8ee0
ld a, [$ff8d]
ld [$ff90], a
ld a, [$ff8e]
ld [$ff91], a
ld a, [$ff8d]
ld c, a
ld a, [$ff8e]
ld b, a
ld a, [$ff8c]
ld l, a
ld h, $0
add hl, bc
ld a, l
ld [$ff8d], a
ld a, h
ld [$ff8e], a
srl h
rr l
srl h
rr l
ld a, [$ff8f]
cp l
ret
INCBIN "baserom.gbc",$8f06,$a000 - $8f06
PokedexCharactersGfx: ; 0xa000
INCBIN "gfx/pokedex/characters.interleave.2bpp"
SECTION "bank3", ROMX, BANK[$3]
HandleTitlescreen: ; 0xc000
ld a, [wScreenState]
rst $18 ; calls JumpToFuncInTable
TitlescreenFunctions: ; 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 SetSongBank
ld de, $0004
call PlaySong
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
VIDEO_DATA_TILES TitlescreenGfx, vTiles0, $1800
VIDEO_DATA_TILEMAP TitlescreenTilemap, vBGMap0, $240
db $FF, $FF ; terminators
TitlescreenFadeInGfx_GameBoyColor: ; 0xc06b
VIDEO_DATA_TILES TitlescreenFadeInGfx, vTiles0, $1800
VIDEO_DATA_TILEMAP TitlescreenTilemap, vBGMap0, $240
VIDEO_DATA_BGATTR TitlescreenBGAttributes, vBGMap0, $240
VIDEO_DATA_PALETTES TitlescreenPalettes, $80
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 PlaySong
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 PlaySong
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, wPartyMons
ld bc, $04c3
call Func_f0c
jr nc, .asm_c173
xor a
ld [$d7c2], a
ld hl, wPartyMons
ld de, $a268
ld bc, $04c3
call SaveData
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 GenRandom
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 ; pixel offsets, not data
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, Data_c32b
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, Data_c32b + 2
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, Data_c32b + 1
add hl, bc
ld a, [hl]
.asm_c327
ld [$d911], a
ret
Data_c32b: ; 0xc32b
db $52, $02
db $53, $02
db $54, $02
db $55, $02
db $56, $02
db $57, $02
db $57, $02
db $00, $00
db $57, $02
db $56, $02
db $55, $02
db $54, $02
db $53, $02
db $52, $02
db $52, $02
db $00
HandleOptionsScreen: ; 0xc34a
ld a, [wScreenState]
rst $18 ; calls JumpToFuncInTable
OptionsScreenFunctions: ; 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 SetSongBank
ld de, $0002
call PlaySong
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 VideoData_GameBoy_c3bd
dw VideoData_GameBoyColor_c3d4
VideoData_GameBoy_c3bd: ; 0xc3bd
VIDEO_DATA_TILES OptionMenuAndKeyConfigGfx, vTiles0, $1400
VIDEO_DATA_TILES OptionMenuTilemap, vBGMap0, $240
dw $7000
db $30
dw vBGMap1
dw $900
db $FF, $FF ; terminators
VideoData_GameBoyColor_c3d4: ; 0xc3d4
VIDEO_DATA_TILES OptionMenuAndKeyConfigGfx, vTiles0, $1400
VIDEO_DATA_TILES OptionMenuTilemap, vBGMap0, $240
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 PlaySong
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 SaveData
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 SaveDefaultKeyConfigs
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, PointerTable_c65f
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, OAMPixelOffsetData_c66d
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, Data_c689
ld a, Bank(Data_c689)
ld bc, $0008
call LoadVRAMData
pop hl
ret
PointerTable_c65f: ; 0xc65f
dw $9C6D
dw $9CAD
dw $9CED
dw $9D2D
dw $9D6D
dw $9DAD
dw $9DED
OAMPixelOffsetData_c66d: ; 0xc66d
dw $6018
dw $6020
dw $6028
dw $6030
dw $6038
dw $6040
dw $6048
dw $6050
dw $6058
dw $6060
dw $6068
dw $6070
dw $6078
dw $6080
Data_c689: ; 0xc689
db $81, $81, $81, $81, $81, $81, $81, $81
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 PlaySong
rst $10
rst $10
rst $10
ld a, $12
call SetSongBank
ld de, $0002
call PlaySong
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 PlaySong
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 SetSongBank
call PlaySong
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, Data_c806
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, Data_c806 + 2
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, Data_c806 + 1
add hl, bc
ld a, [hl]
.asm_c802
ld [$d91d], a
ret
Data_c806: ; 0xc806
db $7B, $02, $7C, $02, $00
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, Data_c85e
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, Data_c85e + 2
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, Data_c85e + 1
add hl, bc
ld a, [hl]
.asm_c85a
ld [$d91f], a
ret
Data_c85e: ; 0xc85e
db $77, $09, $78, $09, $79, $09, $7A, $0D, $7A, $01, $00
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, Data_c8eb
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, Data_c8de
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, Data_c8de + 2
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, Data_c8de + 1
add hl, bc
ld a, [hl]
.asm_c8da
ld [$d921], a
ret
Data_c8de: ; 0xc8de
db $7D, $02, $7E, $06, $7F, $02, $80, $04, $81, $06, $7F, $04, $00
Data_c8eb: ; 0xc8eb
db $18, $08, $30, $08, $48, $08
Func_c8f1: ; 0xc8f1
ld c, a
ld b, $0
ld hl, $d917
add hl, bc
ld e, [hl]
sla c
ld hl, PointerTable_c910
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
PointerTable_c910: ; 0xc910
dw OAMPixelOffsetData_c916
dw OAMPixelOffsetData_c91a
dw OAMPixelOffsetData_c92a
OAMPixelOffsetData_c916: ; 0xc916
dw $5018
dw $7018
OAMPixelOffsetData_c91a: ; 0xc91a
dw $0808
dw $0818
dw $0828
dw $0838
dw $0848
dw $0858
dw $0868
dw $0878
OAMPixelOffsetData_c92a: ; 0xc92a
dw $1058
dw $1068
Func_c92e: ; 0xc92e
ld a, [$d917]
sla a
ld c, a
ld b, $0
ld hl, OAMPixelOffsetData_c944
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, $85
call LoadOAMData
ret
OAMPixelOffsetData_c944: ; 0xc944
dw $5018
dw $7018
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, Data_c9ae
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
Data_c9ae: ; 0xc9ae
db $14, $00, $15, $00, $18, $19, $16, $17, $13, $00, $12, $00, $10, $00, $11, $00
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
SaveDefaultKeyConfigs: ; 0ca3a
ld hl, DefaultKeyConfigs
ld de, wKeyConfigs
ld b, $e
.loop
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .loop
ld hl, wKeyConfigs
ld de, $a244
ld bc, $000e
call SaveData
ret
DefaultKeyConfigs: ; 0xca55
db A_BUTTON, $00 ; wKeyConfigBallStart
db D_LEFT, $00 ; wKeyConfigLeftFlipper
db A_BUTTON, $00 ; wKeyConfigRightFlipper
db D_DOWN, $00 ; wKeyConfigLeftTilt
db B_BUTTON, $00 ; wKeyConfigRightTilt
db SELECT, $00 ; wKeyConfigUpperTilt
db START, $00 ; wKeyConfigMenu
INCBIN "baserom.gbc",$ca63,$ca7f - $ca63
HandleHighScoresScreen: ; 0xca7f
ld a, [wScreenState]
rst $18 ; calls JumpToFuncInTable
HighScoresScreenFunctions: ; 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 GenRandom
ld [hli], a
call GenRandom
ld [hli], a
call GenRandom
ld [hli], a
call GenRandom
ld [hli], a
ld hl, $da36
ld a, [wHighScoresStage]
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, [wHighScoresStage]
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, [wHighScoresStage]
inc a
.asm_cb51
ld hl, PointerTable_cbe3
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, [wHighScoresStage]
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 SetSongBank
ld de, $0001
call PlaySong
jr .asm_cba6
.asm_cb9b
ld a, $13
call SetSongBank
ld de, $0002
call PlaySong
.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 SetSongBank
ld de, $0004
call PlaySong
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
PointerTable_cbe3: ; 0xcbe3
dw VideoData_cbe9
dw VideoData_cc1c
dw VideoData_cc64
VideoData_cbe9: ; 0xcbe9
dw $5a00
db $2A
dw $8000
dw $6000
dw $6000
db $30
dw $9800
dw $1000
dw $5800
db $30
dw $9C00
dw $1000
dw $63C0
db $30
dw $9800
dw $0100
dw $6280
db $30
dw $9A00
dw $0100
dw $5BC0
db $30
dw $9C00
dw $0100
dw $5A80
db $30
dw $9E00
dw $0100
db $FF, $FF ; terminators
VideoData_cc1c: ; 0xcc1c
dw $5A00
db $2A
dw $8000
dw $6000
dw $6000
db $30
dw $9800
dw $1000
dw $5800
db $30
dw $9C00
dw $1000
dw $6400
db $30
dw $9800
dw $1002
dw $5C00
db $30
dw $9C00
dw $1002
dw $63C0
db $30
dw $9800
dw $0100
dw $6280
db $30
dw $9A00
dw $0100
dw $5BC0
db $30
dw $9C00
dw $0100
dw $5A80
db $30
dw $9E00
dw $0100
dw $4D80
db $37
dw $0000
dw $0101
db $FF, $FF
VideoData_cc64: ; 0xcc64
dw $5A00
db $2A
dw $8000
dw $6000
dw $6000
db $30
dw $9800
dw $1000
dw $5800
db $30
dw $9C00
dw $1000
dw $6400
db $30
dw $9800
dw $1002
dw $5C00
db $30
dw $9C00
dw $1002
dw $63c0
db $30
dw $9800
dw $0100
dw $6280
db $30
dw $9A00
dw $0100
dw $5BC0
db $30
dw $9C00
dw $0100
dw $5A80
db $30
dw $9E00
dw $0100
dw $4D00
db $37
dw $0000
dw $0101
db $FF, $FF ; terminators
Func_ccac: ; 0xccac
call Func_d18b
call Func_d1d2
call Func_d211
ret
Func_ccb6: ; 0xccb6
call Func_d4cf
call AnimateHighScoresArrow
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_ccd1
ld de, $0001
call PlaySoundEffect
ld hl, wScreenState
inc [hl]
ld hl, wScreenState
inc [hl]
ret
.asm_ccd1
bit 1, a
jr z, .asm_cce4
ld de, $0001
call PlaySoundEffect
ld hl, wScreenState
inc [hl]
ld hl, wScreenState
inc [hl]
ret
.asm_cce4
bit 3, a
jr z, .asm_ccfb
call Func_1a43
ld a, [hGameBoyColorFlag]
ld [$d8f0], a
ld de, $0001
call PlaySoundEffect
ld hl, wScreenState
inc [hl]
ret
.asm_ccfb
ld a, [hJoypadState]
cp (SELECT | D_UP)
ret nz
ld a, [hNewlyPressedButtons]
and (SELECT | D_UP)
ret z
ld de, $0001
call PlaySoundEffect
call ClearOAMBuffer
ld bc, $473b
ld a, $94
call LoadOAMData
.asm_cd16
rst $10
ld a, [hNewlyPressedButtons]
bit BIT_B_BUTTON, a
jr z, .asm_cd24
ld de, $0001
call PlaySoundEffect
ret
.asm_cd24
bit 0, a
jr z, .asm_cd16
ld de, $0001
call PlaySoundEffect
call CopyInitialHighScores
ld a, $30
ld hl, $6040 ; todo
ld de, $9840
ld bc, $01c0
call LoadVRAMData
ld a, $30
ld hl, $5840 ; todo
ld de, $9c40
ld bc, $01c0
call LoadVRAMData
ld hl, $99c0 ; todo
ld de, $da3d
call Func_d361
ld hl, $9dc0
ld de, $da7e
call Func_d361
ld hl, wRedHighScore1Points
ld de, $a000
ld bc, $0082
call SaveData
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 PlaySong
rst $10
call Func_cdce
push af
ld de, $0004
call PlaySong
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 SaveData
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, Data_cf4b
ld de, $da87
call CopyHLToDE
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, Data_cf4b
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, Data_cf4b
ld de, $da87
call CopyHLToDE
.asm_cf40
pop bc
ld a, [$d8ea]
cp $0
ret z
dec b
jr nz, .asm_cef6
ret
Data_cf4b: ; 0xcf4b
dw $980C
dw $9906
dw $9A0A
dw $9B0C
dw $9C0A
dw $9D06
db $00
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 CopyDataToRAM
ld a, $0
ld hl, $9840
ld de, $c2c0
ld bc, $01c0
call LoadVRAMData
ld a, $30
ld hl, $6280
ld de, $c480
ld bc, $0040
call CopyDataToRAM
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 CopyDataToRAM
ld a, $0
ld hl, $9c40
ld de, $c2c0
ld bc, $01c0
call LoadVRAMData
ld a, $30
ld hl, $5a80 ; todo
ld de, $c480
ld bc, $0040
call CopyDataToRAM
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, [wHighScoresStage]
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 SaveData
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
; related to high scores name entry?
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, OAMPixelYOffsets_d247
add hl, de
ld c, [hl]
ld a, [$da80]
ld e, a
ld d, $0
ld hl, OAMPixelXOffsets_d24c
add hl, de
ld b, [hl]
ld a, $86
call LoadOAMData
ret
OAMPixelYOffsets_d247: ; 0xd247
db $10, $28, $40, $58, $70
OAMPixelXOffsets_d24c: ; 0xd24c
db $18, $20, $28
AnimateHighScoresArrow: ; 0xd24f
; Handles the animation of the arrow in the bottom
; corner of the high scores screens.
ld a, [wHighScoresArrowAnimationCounter]
inc a
cp $28
jr c, .noOverflow
xor a
.noOverflow
ld [wHighScoresArrowAnimationCounter], a
ld a, [wHighScoresStage]
and a
ld c, $77
ld a, $95
ld hl, HighScoresRightArrowOAMPixelXOffsets
jr z, .asm_d26d
ld a, $96
ld hl, HighScoresLeftArrowOAMPixelXOffsets
.asm_d26d
push af
ld a, [wHighScoresArrowAnimationCounter]
ld e, a
ld d, $0
add hl, de
ld b, [hl]
pop af
call LoadOAMData
ret
HighScoresRightArrowOAMPixelXOffsets: ; 0xd27b
; Controls the animation of the right-arrow in the bottom corner of the
; high scores screen.
db $87, $87, $8A, $8A, $8A, $8A, $8A, $8A
db $89, $89, $88, $88, $88, $88, $88, $88
db $88, $88, $88, $88, $88, $88, $88, $88
db $88, $88, $88, $88, $88, $88, $88, $88
db $88, $88, $88, $88, $88, $88, $88, $88
HighScoresLeftArrowOAMPixelXOffsets: ; 0xd2a3
db $02, $02, $FF, $FF, $FF, $FF, $FF, $FF
db $00, $00, $01, $01, $01, $01, $01, $01
db $01, $01, $01, $01, $01, $01, $01, $01
db $01, $01, $01, $01, $01, $01, $01, $01
db $01, $01, $01, $01, $01, $01, $01, $01
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, [wHighScoresStage]
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, [wHighScoresStage]
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, [wHighScoresStage]
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 Func_d57b
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, Func_d626
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 [wHighScoresStage], a
call Func_d5d0
ret
.asm_d537
call ClearOAMBuffer
call Func_d57b
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, Func_d626
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 [wHighScoresStage], a
call Func_d5d0
ret
Func_d57b: ; 0xd57b
ld a, $f0
ld [hBoardYShift], a
xor a
ld [$ffab], a
ld a, $10
ld [$ffad], a
rst $10
ld a, $30
ld hl, $6000
ld de, $9800
ld bc, $0040
call LoadVRAMData
ld a, $30
ld hl, $6200
ld de, $9a00
ld bc, $0040
call LoadVRAMData
ld a, $30
ld hl, $5800
ld de, $9c00
ld bc, $0040
call LoadVRAMData
ld a, $30
ld hl, $5a00
ld de, $9e00
ld bc, $0040
call LoadVRAMData
ld b, $10
.asm_d5c1
push bc
ld hl, hBoardYShift
inc [hl]
ld hl, $ffad
dec [hl]
rst $10
pop bc
dec b
jr nz, .asm_d5c1
ret
Func_d5d0: ; 0xd5d0
ld b, $10
.asm_d5d2
push bc
ld hl, hBoardYShift
dec [hl]
ld hl, $ffad
inc [hl]
rst $10
pop bc
dec b
jr nz, .asm_d5d2
ld a, $30
ld hl, $63c0
ld de, $9800
ld bc, $0040
call LoadVRAMData
ld a, $30
ld hl, $6280
ld de, $9a00
ld bc, $0040
call LoadVRAMData
ld a, $30
ld hl, $5bc0
ld de, $9c00
ld bc, $0040
call LoadVRAMData
ld a, $30
ld hl, $5a80
ld de, $9e00
ld bc, $0040
call LoadVRAMData
ld bc, $0009
call Func_d68a
xor a
ld [hBoardYShift], a
ld [$ffab], a
ld [$ffad], a
ret
INCBIN "baserom.gbc",$d626,$d626 - $d626
Func_d626: ; 0xd626
ld c, a
ld a, [hGameBoyColorFlag]
and a
ret z
ld a, c
srl a
sub $2
cp $10
ret nc
ld c, a
ld b, $0
sla c
add c
ld c, a
ld hl, PointerTable_d65a
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, $0008
ld bc, $0038
push af
call Func_7dc
pop af
ld de, $0040
ld bc, $0008
call Func_7dc
ret
PointerTable_d65a: ; 0xd65a
dwb $7D00, $23
dwb $7D40, $23
dwb $7D80, $23
dwb $7DC0, $23
dwb $7E00, $23
dwb $7E40, $23
dwb $7E80, $23
dwb $7EC0, $23
dwb $7E00, $35
dwb $7E40, $35
dwb $7E80, $35
dwb $7EC0, $35
dwb $7F00, $35
dwb $7F40, $35
dwb $7F80, $35
dwb $7FC0, $35
Func_d68a: ; 0xd68a
push bc
ld hl, wPokedexFlags
ld bc, (NUM_POKEMON << 8)
.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, (NUM_POKEMON << 8)
.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 ; calls JumpToFuncInTable
FieldSelectScreenFunctions: ; 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 SetSongBank
ld de, $0003
call PlaySong
call Func_588
call Func_bbe
ld hl, wScreenState
inc [hl]
ret
FieldSelectGfxPointers: ; 0xd71c
dw FieldSelectGfx_GameBoy
dw FieldSelectGfx_GameBoyColor
FieldSelectGfx_GameBoy: ; 0xd720
VIDEO_DATA_TILES FieldSelectScreenGfx, vTiles1 - $100, $d00
VIDEO_DATA_TILEMAP FieldSelectTilemap, vBGMap0, $240
db $FF, $FF ; terminators
FieldSelectGfx_GameBoyColor: ; 0xd730
VIDEO_DATA_TILES FieldSelectScreenGfx, vTiles1 - $100, $d00
VIDEO_DATA_TILEMAP FieldSelectTilemap, vBGMap0, $240
VIDEO_DATA_BGATTR FieldSelectBGAttributes, vBGMap0, $240
VIDEO_DATA_PALETTES FieldSelectScreenPalettes, $48
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, wPartyMons
ld de, $a268
ld bc, $04c3
call SaveData
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: ; 0xd7d3
; When the player presses Right or Left, the stage is
; illuminated with a blinking border. This function keeps tracks
; of which field is currently selected.
ld a, [hPressedButtons]
ld b, a
ld a, [wSelectedFieldIndex]
bit BIT_D_LEFT, b
jr z, .didntPressLeft
and a
ret z ; if cursor is already hovering over Red stage, don't do anything
dec a ; move cursor over Red stage
ld [wSelectedFieldIndex], a
ld de, $003c
call PlaySoundEffect
ret
.didntPressLeft
bit BIT_D_RIGHT, b
ret z
cp $1
ret z ; if cursor is already hovering over Blue stage, don't do anything
inc a ; move cursor over Red stage
ld [wSelectedFieldIndex], a
ld de, $003d
call PlaySoundEffect
ret
AnimateBlinkingFieldSelectBorder: ; 0xd7fb
; This makes the border of the currently-selected Field blink in the Field Select screen.
push hl
ld a, [wSelectedFieldIndex]
sla a
ld c, a
ld b, $0
ld hl, $584f ; todo
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [$d915]
sla a
ld e, a
ld d, $0
pop hl
push hl
add hl, de
ld a, [hl]
call LoadOAMData
ld a, [wFieldSelectBlinkingBorderFrame]
dec a
jr nz, .asm_d838
inc hl
inc hl
ld a, [hl]
and a
jr z, .asm_d82b
ld a, [$d915]
inc a
.asm_d82b
ld [$d915], a
sla a
ld c, a
ld b, $0
pop hl
push hl
inc hl
add hl, bc
ld a, [hl]
.asm_d838
ld [wFieldSelectBlinkingBorderFrame], a
pop hl
ret
INCBIN "baserom.gbc",$d83d,$d853 - $d83d
HandlePinballGame: ; 0xd853
ld a, [wScreenState]
rst $18 ; calls JumpToFuncInTable
PinballGameScreenFunctions: ; 0xd857
dw Func_d861
dw Func_d87f
dw Func_d909
dw Func_da36
dw Func_dab2
Func_d861: ; 0xd861
xor a
ld [$d908], a
ld [$ff8a], a
ld a, Bank(InitializeStage)
ld hl, InitializeStage
call BankSwitch
call Func_30e8
ld a, $1
ld [$d85d], a
ld [$d4aa], a
ld hl, wScreenState
inc [hl]
ret
Func_d87f: ; 0xd87f
ld a, $67
ld [$ff9e], a
ld a, $e4
ld [$d80c], a
ld a, $e1
ld [$d80d], a
ld a, $e4
ld [$d80e], a
ld a, [$d7ab]
ld [hBoardXShift], a
xor a
ld [hBoardYShift], a
ld a, $7
ld [$ffa7], a
ld a, $83
ld [$ffa2], a
ld [$ffa8], a
ld a, $ff
ld [$ffaf], a
ld hl, $ff9f
set 6, [hl]
ld hl, $ffff
set 1, [hl]
ld a, $1
ld [$ffb0], a
ld [$ff8a], a
ld a, Bank(StartBallForStage)
ld hl, StartBallForStage
call BankSwitch
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_e6c2)
ld hl, Func_e6c2
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_ed5e)
ld hl, Func_ed5e
call BankSwitch
call ClearOAMBuffer
ld [$ff8a], a
ld a, Bank(Func_84b7)
ld hl, Func_84b7
call BankSwitch
ld a, [$d849]
and a
call nz, Func_e5d
ld a, $1
ld [$d4aa], a
xor a
ld [$d7c1], a
call Func_b66
call Func_588
call Func_bbe
ld hl, wScreenState
inc [hl]
ret
Func_d909: ; 0xd909
; main loop for stage logic
xor a
ld [wFlipperCollision], a
ld [$d7eb], a
call ApplyGravityToBall
call LimitBallVelocity
xor a
ld [$d7e9], a
call HandleTilts
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(HandleFlippers)
ld hl, HandleFlippers
call nz, BankSwitch ; only perform flipper routines on the lower-half of stages
ld a, [wFlipperCollision]
and a
ld a, [$d7ea]
push af
call Func_22b5 ; collision stuff
pop af
jr z, .noFlipperCollision
ld [$d7ea], a
.noFlipperCollision
call Func_2720 ; not collision-related
call Func_281c ; not collision-related
ld hl, wKeyConfigMenu
call IsKeyPressed
jr z, .didntPressMenuKey
ld de, $034c
call PlaySoundEffect
ld [$ff8a], a
ld a, Bank(HandleInGameMenu)
ld hl, HandleInGameMenu
call BankSwitch
jp z, SaveGame
.didntPressMenuKey
ld a, [$d7e9] ; check for collision flag
and a
jr z, .asm_d9a2
call ApplyTiltForces
call LoadBallVelocity
ld a, [$d7ea]
call Func_21e7
call Func_222b
ld a, [wFlipperCollision]
and a
jr z, .asm_d993
ld hl, $d7bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, e
sub l
ld e, a
ld a, d
sbc h
ld d, a
ld hl, $d7ba
ld a, [hli]
ld h, [hl]
ld l, a
ld a, c
add l
ld c, a
ld a, b
adc h
ld b, a
jr .asm_d999
.asm_d993
ld a, [$d7f8]
and a
jr nz, .asm_d9a2
.asm_d999
ld a, [$d7ea]
call Func_21e5
call SetBallVelocity
.asm_d9a2
call MoveBallPosition
ld [$ff8a], a
ld a, Bank(Func_ece9)
ld hl, Func_ece9
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_84b7)
ld hl, Func_84b7
call BankSwitch
call Func_33e3
ld a, [$d5cb]
and a
jr nz, .asm_d9e9
ld [$ff8a], a
ld a, Bank(Func_85c7)
ld hl, Func_85c7
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_8650)
ld hl, Func_8650
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_8645)
ld hl, Func_8645
call BankSwitch
call Func_dba9
call Func_dc7c
call Func_dcb4
.asm_d9e9
ld a, [$d57d]
and a
ld [$ff8a], a
ld a, Bank(Func_86a4)
ld hl, Func_86a4
call nz, BankSwitch
ld a, [$d4ae]
and a
ret z
xor a
ld [$d4ae], a
ld hl, wScreenState
inc [hl]
ret
SaveGame: ; 0xda05
ld de, $0000
call PlaySong
ld bc, $0004
call Func_93f
call Func_cb5
ld a, [$d849]
and a
call nz, Func_e5d
call Func_576
ld hl, $ff9f
res 6, [hl]
ld hl, $ffff
res 1, [hl]
xor a
ld [$d4aa], a
ld a, SCREEN_TITLESCREEN
ld [wCurrentScreen], a
xor a
ld [wScreenState], a
ret
Func_da36: ; 0xda36
xor a
ld [hJoypadState], a
ld [hNewlyPressedButtons], a
ld [hPressedButtons], a
ld [wFlipperCollision], a
ld [$d7eb], a
xor a
ld [$d7e9], a
ld [$d548], a
ld [$d549], a
call HandleTilts
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(HandleFlippers)
ld hl, HandleFlippers
call nz, BankSwitch
ld [$ff8a], a
ld a, Bank(Func_84b7)
ld hl, Func_84b7
call BankSwitch
call Func_33e3
ld [$ff8a], a
ld a, Bank(Func_85c7)
ld hl, Func_85c7
call BankSwitch
ld a, [$d5ca]
and a
ret nz
ld a, [$d4c9]
and a
jr z, .asm_daa9
ld a, [$d49c]
cp $2
jr z, .asm_daa9
call Func_f533
ld a, [$d49c]
and a
jr z, .asm_daa9
ld a, $2
ld [$d49c], a
ld [$d4aa], a
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $28db
call Func_32aa
ret
.asm_daa9
xor a
ld [$d49c], a
ld hl, wScreenState
inc [hl]
ret
Func_dab2: ; 0xdab2
xor a
ld [$d803], a
ld a, [$d616]
and a
jp nz, TransitionToHighScoresScreen
ld a, [$d495]
and a
jr nz, .asm_dae6
ld a, [$d496]
and a
jr nz, .asm_db28
call Func_cb5
ld a, [$d849]
and a
call z, Func_e5d
call Func_576
ld hl, $ff9f
res 6, [hl]
ld hl, $ffff
res 1, [hl]
ld a, $1
ld [wScreenState], a
ret
.asm_dae6
ld de, $0000
call PlaySong
ld bc, $0004
call Func_93f
call Func_cb5
ld a, [$d849]
and a
call nz, Func_e5d
call Func_576
ld hl, $ff9f
res 6, [hl]
ld hl, $ffff
res 1, [hl]
ld a, [wCurrentStage]
ld [$d4ad], a
ld a, [wStageCollisionState]
ld [$d4b0], a
ld a, [$d497]
ld [wCurrentStage], a
xor a
ld [$d496], a
ld [$d495], a
ld a, $0
ld [wScreenState], a
ret
.asm_db28
ld de, $0000
call PlaySong
ld bc, $0004
call Func_93f
call Func_cb5
ld a, [$d849]
and a
call nz, Func_e5d
call Func_576
ld hl, $ff9f
res 6, [hl]
ld hl, $ffff
res 1, [hl]
ld a, [$d4ad]
ld [wCurrentStage], a
ld a, [$d4b0]
ld [wStageCollisionState], a
ld a, $1
ld [wScreenState], a
ret
TransitionToHighScoresScreen: ; 0xdb5d
xor a
ld [$d616], a
ld de, $0000
call PlaySong
ld bc, $0004
call Func_93f
call Func_cb5
call Func_576
ld hl, $ff9f
res 6, [hl]
ld hl, $ffff
res 1, [hl]
xor a
ld [$d4aa], a
ld a, [wCurrentStage]
ld c, a
ld b, $0
ld hl, HighScoresStageMapping
add hl, bc
ld a, [hl]
ld [wHighScoresStage], a
ld a, SCREEN_HIGH_SCORES
ld [wCurrentScreen], a
xor a
ld [wScreenState], a
ret
HighScoresStageMapping: ; 0xdb99
; Determines which stage the high scores screen will start in,
; based on the map the player ended in.
; See wHighScoresStage for more info.
db $00 ; STAGE_RED_FIELD_TOP
db $00 ; STAGE_RED_FIELD_BOTTOM
db $00
db $00
db $01 ; STAGE_BLUE_FIELD_TOP
db $01 ; STAGE_BLUE_FIELD_BOTTOM
db $00 ; STAGE_GENGAR_BONUS
db $00 ; STAGE_GENGAR_BONUS
db $00 ; STAGE_MEWTWO_BONUS
db $00 ; STAGE_MEWTWO_BONUS
db $00 ; STAGE_MEOWTH_BONUS
db $00 ; STAGE_MEOWTH_BONUS
db $00 ; STAGE_DIGLETT_BONUS
db $00 ; STAGE_DIGLETT_BONUS
db $00 ; STAGE_SEEL_BONUS
db $00 ; STAGE_SEEL_BONUS
Func_dba9: ; 0xdba9
ld a, $85
ld [$c644], a
ld a, [$d49d]
xor $3
inc a
add $86
ld [$c645], a
ret
Func_dbba: ; 0xdbba
ld a, $1
ld [wBallSaverIconOn], a
ld a, $ff
ld [$d4a2], a
ld a, $3b
ld [wBallSaverTimerFrames], a
ld a, $14
ld [wBallSaverTimerSeconds], a
ld a, $2
ld [$d4a5], a
ret
InitBallSaverForCatchEmMode: ; 0xdbd4
ld a, [wBallSaverTimerFrames]
ld [wBallSaverTimerFramesBackup], a
ld a, [wBallSaverTimerSeconds]
ld [wBallSaverTimerSecondsBackup], a
ld a, [$d4a5]
ld [$d4a8], a
ld a, $0
ld [wBallSaverIconOn], a
ld a, $ff
ld [$d4a2], a
ld a, 59
ld [wBallSaverTimerFrames], a
ld a, 60
ld [wBallSaverTimerSeconds], a
ld a, $ff
ld [$d4a5], a
ret
Func_dc00: ; 0xdc00
ld a, [wBallSaverTimerFramesBackup]
ld [wBallSaverTimerFrames], a
ld a, [wBallSaverTimerSecondsBackup]
ld [wBallSaverTimerSeconds], a
ld a, [$d4a8]
ld [$d4a5], a
ld a, [wBallSaverTimerSeconds]
and a
jr z, .asm_dc1a
ld a, $1
.asm_dc1a
ld [wBallSaverIconOn], a
ld a, [wBallSaverTimerSeconds]
ld c, $0
cp $2
jr c, .asm_dc34
ld c, $4
cp $6
jr c, .asm_dc34
ld c, $10
cp $b
jr c, .asm_dc34
ld c, $ff
.asm_dc34
ld a, c
ld [$d4a2], a
ld a, [wCurrentStage]
bit 0, a
ret z
ld [$ff8a], a
ld a, Bank(Func_14707)
ld hl, Func_14707
call BankSwitch
ret
INCBIN "baserom.gbc",$dc49,$dc49 - $dc49
Func_dc49: ; 0xdc49
ld a, [wCurrentStage]
rst $18 ; calls JumpToFuncInTable
CallTable_dc4d: ; 0xdc4d
; STAGE_RED_FIELD_TOP
dw Func_dd76
; STAGE_RED_FIELD_BOTTOM
dw Func_dd76
dw Func_de4e
dw Func_de4e
; STAGE_BLUE_FIELD_TOP
dw Func_de4f
; STAGE_BLUE_FIELD_TOP
dw Func_de4f
; STAGE_GENGAR_BONUS
dw Func_df1a
; STAGE_GENGAR_BONUS
dw Func_df1a
; STAGE_MEWTWO_BONUS
dw Func_df7e
; STAGE_MEWTWO_BONUS
dw Func_df7e
; STAGE_MEOWTH_BONUS
dw Func_dfe2
; STAGE_MEOWTH_BONUS
dw Func_dfe2
; STAGE_DIGLETT_BONUS
dw Func_e056
; STAGE_DIGLETT_BONUS
dw Func_e056
; STAGE_SEEL_BONUS
dw Func_e08b
; STAGE_SEEL_BONUS
dw Func_e08b
Func_dc6d: ; 0xdc6d
push de
call Func_30e8
call Func_30db
ld hl, $d5dc
pop de
call Func_32aa
ret
INCBIN "baserom.gbc",$dc7c,$dc7c - $dc7c
Func_dc7c: ; 0xdc7c
ld hl, $c640
ld a, $83
ld [hli], a
ld a, $81
ld [hli], a
ld a, $81
ld [hl], a
ld a, [wNumPartyMons]
call ConvertHexByteToDecWord
ld hl, $c641
ld c, $1
ld a, d
call .asm_dca0
ld a, e
swap a
call .asm_dca0
ld a, e
ld c, $0
.asm_dca0
and $f
jr nz, .asm_dca7
ld a, c
and a
ret nz
.asm_dca7
ld c, $0
add $86
ld [hli], a
ret
INCBIN "baserom.gbc",$dcad,$dcb4 - $dcad
Func_dcb4: ; 0xdcb4
ld a, [$d517]
cp $f
ld a, $81
jr nz, .asm_dcbf
ld a, $84
.asm_dcbf
ld [$c646], a
ret
LoadBallGfx: ; 0xdcc3
xor a
ld [$d4c8], a
ld a, [wBallType]
cp GREAT_BALL
jr nc, .notPokeBall
ld a, Bank(PinballPokeballGfx)
ld hl, PinballPokeballGfx
ld de, $8400
ld bc, $0200
call Func_735
ret
.notPokeBall
cp ULTRA_BALL
jr nc, .notGreatBall
ld a, Bank(PinballGreatballGfx)
ld hl, PinballGreatballGfx
ld de, $8400
ld bc, $0200
call Func_735
ret
.notGreatBall
cp MASTER_BALL
jr nc, .notUltraBall
ld a, Bank(PinballUltraballGfx)
ld hl, PinballUltraballGfx
ld de, $8400
ld bc, $0200
call Func_735
ret
.notUltraBall
ld a, Bank(PinballMasterballGfx)
ld hl, PinballMasterballGfx
ld de, $8400
ld bc, $0200
call Func_735
ret
LoadMiniBallGfx: ; 0xdd12
ld a, $1
ld [$d4c8], a
ld a, [wBallType]
cp GREAT_BALL
jr nc, .notPokeBall
ld a, Bank(PinballPokeballMiniGfx)
ld hl, PinballPokeballMiniGfx
ld de, $8400
ld bc, $0200
call Func_735
ret
.notPokeBall
cp ULTRA_BALL
jr nc, .notGreatBall
ld a, Bank(PinballGreatballMiniGfx)
ld hl, PinballGreatballMiniGfx
ld de, $8400
ld bc, $0200
call Func_735
ret
.notGreatBall
cp MASTER_BALL
jr nc, .notUltraBall
ld a, Bank(PinballUltraballMiniGfx)
ld hl, PinballUltraballMiniGfx
ld de, $8400
ld bc, $0200
call Func_735
ret
.notUltraBall
ld a, Bank(PinballMasterballMiniGfx)
ld hl, PinballMasterballMiniGfx
ld de, $8400
ld bc, $0200
call Func_735
ret
Func_dd62: ; 0xdd62
ld a, $2
ld [$d4c8], a
ld a, $2a
ld hl, $5800
ld de, $8400
ld bc, $0200
call Func_735
ret
Func_dd76: ; 0xdd76
ld a, [wBallSaverTimerFrames]
ld hl, wBallSaverTimerSeconds
or [hl]
jr z, .asm_dda3
ld a, [$d4a5]
bit 7, a
jr nz, .asm_dd9c
dec a
ld [$d4a5], a
push af
ld de, $28c9
call Func_dc6d
pop af
jr nz, .asm_dd9c
ld a, $1
ld [wBallSaverTimerFrames], a
ld [wBallSaverTimerSeconds], a
.asm_dd9c
ld de, $1502
call PlaySoundEffect
ret
.asm_dda3
ld de, $0000
call PlaySong
ld bc, $001e
call Func_93f
ld de, $2524
call PlaySoundEffect
call Func_dbba
ld a, $1
ld [$d4c9], a
xor a
ld [$d4de], a
ld [$d4df], a
call Func_ddfd
ld a, [$d49b]
and a
jr z, .asm_dddd
dec a
ld [$d49b], a
ld a, $1
ld [$d49c], a
ld de, $28ee
call Func_dc6d
ret
.asm_dddd
ld a, [$d49d]
ld hl, $d49e
cp [hl]
jr z, .asm_ddf1
inc a
ld [$d49d], a
ld de, $28ee
call Func_dc6d
ret
.asm_ddf1
ld de, $28ee
call Func_dc6d
ld a, $1
ld [$d616], a
ret
Func_ddfd: ; 0xddfd
ld a, [wInSpecialMode]
and a
ret z
ld a, [wSpecialMode]
and a
jr nz, .asm_de14
ld [$ff8a], a
ld a, Bank(Func_10157)
ld hl, Func_10157
call BankSwitch
jr .asm_de40
.asm_de14
cp $1
jr nz, .asm_de2d
xor a
ld [$d604], a
ld a, $1e
ld [$d607], a
ld [$ff8a], a
ld a, Bank(Func_10ac8)
ld hl, Func_10ac8
call BankSwitch
jr .asm_de40
.asm_de2d
xor a
ld [$d604], a
ld a, $1e
ld [$d607], a
ld [$ff8a], a
ld a, Bank(Func_3022b)
ld hl, Func_3022b
call BankSwitch
.asm_de40
ld a, [$d7ad]
ld c, a
ld a, [wStageCollisionState]
and $1
or c
ld [wStageCollisionState], a
ret
Func_de4e: ; 0xde4e
ret
Func_de4f: ; 0xde4f
ld a, [wBallSaverTimerFrames]
ld hl, wBallSaverTimerSeconds
or [hl]
jr z, .asm_de7c
ld a, [$d4a5]
bit 7, a
jr nz, .asm_de75
dec a
ld [$d4a5], a
push af
ld de, $28c9
call Func_dc6d
pop af
jr nz, .asm_de75
ld a, $1
ld [wBallSaverTimerFrames], a
ld [wBallSaverTimerSeconds], a
.asm_de75
ld de, $1502
call PlaySoundEffect
ret
.asm_de7c
ld de, $0000
call PlaySong
ld bc, $001e
call Func_93f
ld de, $2524
call PlaySoundEffect
call Func_dbba
ld a, $1
ld [$d4c9], a
xor a
ld [$d4de], a
ld [$d4df], a
call Func_ded6
ld a, [$d49b]
and a
jr z, .asm_deb6
dec a
ld [$d49b], a
ld a, $1
ld [$d49c], a
ld de, $28ee
call Func_dc6d
ret
.asm_deb6
ld a, [$d49d]
ld hl, $d49e
cp [hl]
jr z, .asm_deca
inc a
ld [$d49d], a
ld de, $28ee
call Func_dc6d
ret
.asm_deca
ld de, $28ee
call Func_dc6d
ld a, $1
ld [$d616], a
ret
Func_ded6: ; 0xded6
ld a, [wInSpecialMode]
and a
ret z
ld a, [wSpecialMode]
and a
jr nz, .asm_deec
ld [$ff8a], a
ld a, Bank(Func_10157)
ld hl, Func_10157
call BankSwitch
ret
.asm_deec
cp $1
jr nz, .asm_df05
ld a, $0
ld [$d604], a
ld a, $1e
ld [$d607], a
ld [$ff8a], a
ld a, Bank(Func_10ac8)
ld hl, Func_10ac8
call BankSwitch
ret
.asm_df05
ld a, $0
ld [$d604], a
ld a, $1e
ld [$d607], a
ld [$ff8a], a
ld a, Bank(Func_3022b)
ld hl, Func_3022b
call BankSwitch
ret
Func_df1a: ; 0xdf1a
ld a, [$d4ad]
ld hl, wCurrentStage
cp [hl]
ret z
ld a, [$d6a8]
and a
jr nz, .asm_df57
ld a, [$d6a2]
cp $5
jr c, .asm_df50
xor a
ld [$d4ae], a
ld a, [$d6a7]
and a
ret nz
ld [$d548], a
ld [$d549], a
ld [wBallSpin], a
ld [wBallRotation], a
ld hl, wBallXVelocity
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld a, $1
ld [$d6a7], a
.asm_df50
ld de, $0002
call PlaySoundEffect
ret
.asm_df57
xor a
ld [$d495], a
ld a, $1
ld [$d496], a
ld a, $2
ld [$d4c8], a
xor a
ld [$d7ac], a
ld a, [$d49a]
and a
ret nz
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $2f04
call Func_32aa
ret
Func_df7e: ; 0xdf7e
ld a, [$d4ad]
ld hl, wCurrentStage
cp [hl]
ret z
ld a, [$d6b3]
and a
jr nz, .asm_dfbb
ld a, [$d6b1]
cp $8
jr c, .asm_dfb4
xor a
ld [$d4ae], a
ld a, [$d6b2]
and a
ret nz
ld [$d548], a
ld [$d549], a
ld [wBallSpin], a
ld [wBallRotation], a
ld hl, wBallXVelocity
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld a, $1
ld [$d6b2], a
.asm_dfb4
ld de, $000b
call PlaySoundEffect
ret
.asm_dfbb
xor a
ld [$d495], a
ld a, $1
ld [$d496], a
ld a, $2
ld [$d4c8], a
xor a
ld [$d7ac], a
ld a, [$d49a]
and a
ret nz
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $2f1c
call Func_32aa
ret
Func_dfe2: ; 0xdfe2
xor a
ld [$d64e], a
ld a, [$d7be]
and a
jr z, .asm_dff2
ld a, [$d49a]
and a
jr z, .asm_e00f
.asm_dff2
ld a, [wMeowthStageScore]
cp $14
jr nc, .asm_e00f
cp $5
jr c, .asm_e001
sub $4
jr .asm_e002
.asm_e001
xor a
.asm_e002
ld [wMeowthStageScore], a
ld [$ff8a], a
ld a, Bank(Func_24fa3)
ld hl, Func_24fa3
call BankSwitch
.asm_e00f
ld a, [$d4ad]
ld hl, wCurrentStage
cp [hl]
ret z
ld a, [$d712]
cp $0
jr nz, .asm_e025
ld de, $0002
call PlaySoundEffect
ret
.asm_e025
xor a
ld [$d57e], a
ld [$d57d], a
xor a
ld [$d495], a
ld a, $1
ld [$d496], a
ld a, $2
ld [$d4c8], a
xor a
ld [$d7ac], a
ld [$d712], a
ld a, [$d49a]
and a
ret nz
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $2f4d
call Func_32aa
ret
Func_e056: ; 0xe056
ld a, [$d4ad]
ld hl, wCurrentStage
cp [hl]
ret z
ld de, $000b
call PlaySoundEffect
xor a
ld [$d495], a
ld a, $1
ld [$d496], a
ld a, $2
ld [$d4c8], a
xor a
ld [$d7ac], a
ld a, [$d49a]
and a
ret nz
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $2f34
call Func_32aa
ret
Func_e08b: ; 0xe08b
xor a
ld [$d64e], a
ld a, [$d7be]
and a
jr z, .asm_e09b
ld a, [$d49a]
and a
jr z, .asm_e0b8
.asm_e09b
ld a, [$d793]
cp $14
jr nc, .asm_e0b8
cp $5
jr c, .asm_e0aa
sub $4
jr .asm_e0ab
.asm_e0aa
xor a
.asm_e0ab
ld [$d793], a
ld [$ff8a], a
ld a, Bank(Func_262f4)
ld hl, Func_262f4
call BankSwitch
.asm_e0b8
ld a, [$d4ad]
ld hl, wCurrentStage
cp [hl]
ret z
ld a, [$d794]
cp $0
jr nz, .asm_e0c8
ret
.asm_e0c8
ld de, $0002
call PlaySoundEffect
xor a
ld [$d57d], a
ld [$d57d], a
ld [$d495], a
ld a, $1
ld [$d496], a
ld a, $2
ld [$d4c8], a
xor a
ld [$d7ac], a
ld [$d794], a
ld a, [$d49a]
and a
ret nz
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $2f65
call Func_32aa
ret
HandleFlippers: ; 0xe0fe
xor a
ld [wFlipperCollision], a
ld [$ffbf], a
ld [$d7ba], a
ld [$d7bb], a
call Func_e118
call Func_e1f0
ld a, [wFlipperCollision]
and a
call nz, HandleFlipperCollision
ret
Func_e118: ; 0xe118
call PlayFlipperSoundIfPressed
ld a, [$d7af]
ld [$d7b6], a
ld a, [$d7b3]
ld [$d7b7], a
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed2
ld hl, $fccd
jr z, .asm_e13b
ld a, [$d7be]
and a
jr nz, .asm_e13b
ld hl, $0333
.asm_e13b
ld a, [$d7af]
and a
jr nz, .asm_e145
bit 7, h
jr nz, .asm_e14d
.asm_e145
cp $f
jr nz, .asm_e150
bit 7, h
jr nz, .asm_e150
.asm_e14d
ld hl, $0000
.asm_e150
ld a, l
ld [$d7b0], a
ld a, h
ld [$d7b1], a
ld a, [$d7ae]
ld c, a
ld a, [$d7af]
ld b, a
add hl, bc
bit 7, h
jr nz, .asm_e16f
ld a, h
cp $10
jr c, .asm_e172
ld hl, $0f00
jr .asm_e172
.asm_e16f
ld hl, $0000
.asm_e172
ld a, l
ld [$d7ae], a
ld a, h
ld [$d7af], a
ld hl, wKeyConfigRightFlipper
call IsKeyPressed2
ld hl, $fccd
jr z, .asm_e18e
ld a, [$d7be]
and a
jr nz, .asm_e18e
ld hl, $0333
.asm_e18e
ld a, [$d7b3]
and a
jr nz, .asm_e198
bit 7, h
jr nz, .asm_e1a0
.asm_e198
cp $f
jr nz, .asm_e1a3
bit 7, h
jr nz, .asm_e1a3
.asm_e1a0
ld hl, $0000
.asm_e1a3
ld a, l
ld [$d7b4], a
ld a, h
ld [$d7b5], a
ld a, [$d7b2]
ld c, a
ld a, [$d7b3]
ld b, a
add hl, bc
bit 7, h
jr nz, .asm_e1c2
ld a, h
cp $10
jr c, .asm_e1c5
ld hl, $0f00
jr .asm_e1c5
.asm_e1c2
ld hl, $0000
.asm_e1c5
ld a, l
ld [$d7b2], a
ld a, h
ld [$d7b3], a
ret
PlayFlipperSoundIfPressed: ; 0xe1ce
ld a, [$d7be]
and a
ret nz
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed
jr z, .asm_e1e2
ld de, $000c
call PlaySoundEffect
ret
.asm_e1e2
ld hl, wKeyConfigRightFlipper
call IsKeyPressed
ret z
ld de, $000c
call PlaySoundEffect
ret
Func_e1f0: ; 0xe1f0
ld a, [wBallXPos + 1]
cp $50 ; which half of the screen is the ball in?
jp nc, Func_e226 ; right half of screen
ld hl, wBallXPos
ld c, $ba
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [$d7b6]
ld [$ffc2], a
ld a, [$d7af]
ld [$ffc3], a
call Func_e25a
ld a, [wFlipperCollision]
and a
ret z
ld a, [$d7b0]
ld [$ffc0], a
ld a, [$d7b1]
ld [$ffc1], a
ret
Func_e226: ; 0xe226
; ball is in right half of screen
ld hl, wBallXPos
ld c, $ba
ld a, [hli]
sub $1
cpl
ld [$ff00+c], a
inc c
ld a, [hli]
sbc $a0
cpl
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [$d7b7]
ld [$ffc2], a
ld a, [$d7b3]
ld [$ffc3], a
call Func_e25a
ld a, [wFlipperCollision]
and a
ret z
ld a, [$d7b4]
ld [$ffc0], a
ld a, [$d7b5]
ld [$ffc1], a
ret
Func_e25a: ; 0xe25a
ld a, [$ffbb]
sub $2b
ret c
cp $30
ret nc
ld [$ffbb], a
ld a, [$ffbd]
sub $7b
ret c
cp $20
ret nc
ld [$ffbd], a
ld a, [$ffc2]
.asm_e270
push af
ld l, $0
ld h, a
sla a
sla h
sla h
add h
ld h, a
ld a, [$ffbb]
ld c, a
ld b, $0
sla c
rl b
sla c
rl b
sla c
rl b
sla c
rl b
sla c
rl b
add hl, bc
ld a, [$ffbd]
ld c, a
ld b, $0
add hl, bc
ld d, h
ld e, l
ld a, h
cp $40
jr nc, .asm_e2aa
add $40
ld h, a
ld a, $3d
jr .asm_e2ac
.asm_e2aa
ld a, $3e
.asm_e2ac
call ReadByteFromBank
ld b, a
and a
jr nz, .asm_e2c1
pop af
ld hl, $ffc3
cp [hl]
ret z
jr c, .asm_e2be
dec a
jr .asm_e270
.asm_e2be
inc a
jr .asm_e270
.asm_e2c1
pop af
ld a, b
ld [$ffbf], a
ld h, d
ld l, e
ld a, h
cp $20
jr nc, .asm_e2d3
add $60
ld h, a
ld a, $3e
jr .asm_e2d8
.asm_e2d3
add $20
ld h, a
ld a, $3f
.asm_e2d8
call ReadByteFromBank
ld [$d7b8], a
ld a, $1
ld [wFlipperCollision], a
ret
INCBIN "baserom.gbc",$e2e4,$e379 - $e2e4
Func_e379: ; 0xe379
ld a, b
xor d
ld [$ffbe], a
bit 7, b
jr z, .asm_e388
ld a, c
cpl
ld c, a
ld a, b
cpl
ld b, a
inc bc
.asm_e388
bit 7, d
jr z, .asm_e393
ld a, e
cpl
ld e, a
ld a, d
cpl
ld d, a
inc de
.asm_e393
push bc
push de
ld c, d
call Func_e410
pop de
pop bc
push hl
push bc
push de
ld c, e
call Func_e410
pop de
pop bc
push hl
push bc
push de
ld b, d
call Func_e410
pop de
pop bc
push hl
ld b, e
call Func_e410
ld c, l
ld l, h
xor a
ld h, a
pop de
add hl, de
rl a
pop de
add hl, de
jr nc, .asm_e3bf
inc a
.asm_e3bf
ld b, l
ld l, h
ld h, a
pop de
add hl, de
ld a, [$ffbe]
bit 7, a
ret z
ld a, c
sub $1
cpl
ld c, a
ld a, b
sbc $0
cpl
ld b, a
ld a, l
sbc $0
cpl
ld l, a
ld a, h
sbc $0
cpl
ld h, a
ret
INCBIN "baserom.gbc",$e3de,$e410 - $e3de
Func_e410: ; 0xe410
ld a, b
cp c
jr nc, .asm_e416
ld b, c
ld c, a
.asm_e416
ld h, $3e
ld l, c
ld e, [hl]
inc h
ld d, [hl]
ld l, b
ld a, [hl]
dec h
ld l, [hl]
ld h, a
add hl, de
push af
ld d, $3e
ld a, b
sub c
ld e, a
ld a, [de]
ld c, a
inc d
ld a, [de]
ld b, a
ld a, l
sub c
ld l, a
ld a, h
sbc b
ld h, a
jr nc, .asm_e43c
pop af
ccf
rr h
rr l
ret
.asm_e43c
pop af
rr h
rr l
ret
HandleFlipperCollision: ; 0xe442
; This is called when the ball is colliding with either the
; right or left flipper.
ld a, $1
ld [$d7e9], a
xor a
ld [$d7f3], a
ld [$d7f4], a
ld [$d7f5], a
ld [$d7f6], a
ld [$d7f7], a
ld a, [$ffbf]
sla a
ld c, a
ld b, $0
ld hl, Data_e538
add hl, bc
ld a, [hli]
ld c, a
ld a, [hl]
ld b, a
ld a, [$ffc0]
ld e, a
ld a, [$ffc1]
ld d, a
sla e
rl d
sla e
rl d ; multiplied de by 4
call Func_e379
ld a, b
ld [$d7bc], a
ld a, l
ld [$d7bd], a
ld a, [wBallXPos + 1]
cp $50
ld a, [$d7b8]
jr c, .asm_e48b
cpl
inc a
.asm_e48b
ld [$d7ea], a
ld a, $1
ld [$d7eb], a
ld a, [$d7bd]
bit 7, a
ret z
xor a
ld [$d7bc], a
ld [$d7bd], a
ret
Func_e4a1: ; 0xe4a1
ld a, [wCurrentStage]
and a
ret z
ld hl, $650a
ld a, [hBoardXShift]
ld d, a
ld a, [hBoardYShift]
ld e, a
ld a, [hli]
sub d
ld b, a
ld a, [hli]
sub e
ld c, a
push hl
ld hl, $650e
ld a, [$d7af]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
cp $b
jr nz, .asm_e4d6
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_e4d4
ld a, [$d7be]
and a
jr z, .asm_e4d4
ld a, $18
jr .asm_e4d6
.asm_e4d4
ld a, $b
.asm_e4d6
call LoadOAMData
pop hl
ld a, [hBoardXShift]
ld d, a
ld a, [hBoardYShift]
ld e, a
ld a, [hli]
sub d
ld b, a
ld a, [hli]
sub e
ld c, a
ld hl, $6523
ld a, [$d7b3]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
cp $8
jr nz, .asm_e506
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_e504
ld a, [$d7be]
and a
jr z, .asm_e504
ld a, $17
jr .asm_e506
.asm_e504
ld a, $8
.asm_e506
call LoadOAMData
ret
INCBIN "baserom.gbc",$e50a,$e538 - $e50a
Data_e538: ; 0xe538
dw $0000
dw $000C
dw $001C
dw $0030
dw $0038
dw $0048
dw $005C
dw $006C
dw $0070
dw $0080
dw $0094
dw $00A4
dw $00B4
dw $00C4
dw $00D4
dw $00E4
dw $00F8
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
dw $00FC
LoadStageCollisionAttributes: ; 0xe578
ld a, [wCurrentStage]
sla a
ld c, a
ld b, $0
ld hl, StageCollisionAttributesPointers
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [hli]
and a
jr z, .asm_e598
ld a, [wStageCollisionState]
sla a
ld c, a
sla a
add c
ld c, a
ld b, $0 ; bc = 6 * [wStageCollisionState]
add hl, bc
.asm_e598
ld de, wStageCollisionMapPointer
ld b, $6
.asm_e59d
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .asm_e59d
call LoadCollisionAttributes
ret
StageCollisionAttributesPointers: ; 0xe5a7
dw StageRedFieldTopCollisionAttributesPointers
dw StageRedFieldBottomCollisionAttributesPointers
dw StageUnusedCollisionAttributesPointers
dw StageUnused2CollisionAttributesPointers
dw StageBlueFieldTopCollisionAttributesPointers
dw StageBlueFieldBottomCollisionAttributesPointers
dw StageGengarBonusCollisionAttributesPointers
dw StageGengarBonusCollisionAttributesPointers
dw StageMewtwoBonusCollisionAttributesPointers
dw StageMewtwoBonusCollisionAttributesPointers
dw StageMeowthBonusCollisionAttributesPointers
dw StageMeowthBonusCollisionAttributesPointers
dw StageDiglettBonusCollisionAttributesPointers
dw StageDiglettBonusCollisionAttributesPointers
dw StageSeelBonusCollisionAttributesPointers
dw StageSeelBonusCollisionAttributesPointers
StageRedFieldTopCollisionAttributesPointers: ; 0xe5c7
db $01 ; multiple pair entries
dwb StageRedFieldTopCollisionAttributes0, Bank(StageRedFieldTopCollisionAttributes0)
dwb StageRedFieldTopCollisionMasks0, Bank(StageRedFieldTopCollisionMasks0)
dwb StageRedFieldTopCollisionAttributes1, Bank(StageRedFieldTopCollisionAttributes1)
dwb StageRedFieldTopCollisionMasks0, Bank(StageRedFieldTopCollisionMasks0)
dwb StageRedFieldTopCollisionAttributes2, Bank(StageRedFieldTopCollisionAttributes2)
dwb StageRedFieldTopCollisionMasks1, Bank(StageRedFieldTopCollisionMasks1)
dwb StageRedFieldTopCollisionAttributes3, Bank(StageRedFieldTopCollisionAttributes3)
dwb StageRedFieldTopCollisionMasks1, Bank(StageRedFieldTopCollisionMasks1)
dwb StageRedFieldTopCollisionAttributes4, Bank(StageRedFieldTopCollisionAttributes4)
dwb StageRedFieldTopCollisionMasks2, Bank(StageRedFieldTopCollisionMasks2)
dwb StageRedFieldTopCollisionAttributes5, Bank(StageRedFieldTopCollisionAttributes5)
dwb StageRedFieldTopCollisionMasks2, Bank(StageRedFieldTopCollisionMasks2)
dwb StageRedFieldTopCollisionAttributes6, Bank(StageRedFieldTopCollisionAttributes6)
dwb StageRedFieldTopCollisionMasks3, Bank(StageRedFieldTopCollisionMasks3)
dwb StageRedFieldTopCollisionAttributes7, Bank(StageRedFieldTopCollisionAttributes7)
dwb StageRedFieldTopCollisionMasks3, Bank(StageRedFieldTopCollisionMasks3)
StageRedFieldBottomCollisionAttributesPointers: ; 0xe5f8
db $00 ; single pair entry
dwb StageRedFieldBottomCollisionAttributes, Bank(StageRedFieldBottomCollisionAttributes)
dwb StageRedFieldBottomCollisionMasks, Bank(StageRedFieldBottomCollisionMasks)
StageUnusedCollisionAttributesPointers: ; 0xe5ff
; This entry is never used
db $00
StageUnused2CollisionAttributesPointers: ; 0xe600
; This entry is never used
db $00
StageBlueFieldTopCollisionAttributesPointers: ; 0xe601
db $01 ; multiple pair entries
dwb StageBlueFieldTopCollisionAttributesBallEntrance, Bank(StageBlueFieldTopCollisionAttributesBallEntrance)
dwb StageBlueFieldTopCollisionMasks, Bank(StageBlueFieldTopCollisionMasks)
dwb StageBlueFieldTopCollisionAttributes, Bank(StageBlueFieldTopCollisionAttributes)
dwb StageBlueFieldTopCollisionMasks, Bank(StageBlueFieldTopCollisionMasks)
StageBlueFieldBottomCollisionAttributesPointers: ; 0xe60e
db $00 ; single pair entry
dwb StageBlueFieldBottomCollisionAttributes, Bank(StageBlueFieldBottomCollisionAttributes)
dwb StageBlueFieldBottomCollisionMasks, Bank(StageBlueFieldBottomCollisionMasks)
StageGengarBonusCollisionAttributesPointers: ; 0xe615
db $01 ; multiple pair entries
dwb StageGengarBonusCollisionAttributesBallEntrance, Bank(StageGengarBonusCollisionAttributesBallEntrance)
dwb StageGengarBonusCollisionMasks, Bank(StageGengarBonusCollisionMasks)
dwb StageGengarBonusCollisionAttributes, Bank(StageGengarBonusCollisionAttributes)
dwb StageGengarBonusCollisionMasks, Bank(StageGengarBonusCollisionMasks)
StageMewtwoBonusCollisionAttributesPointers: ; 0xe622
db $01 ; multiple pair entries
dwb StageMewtwoBonusCollisionAttributesBallEntrance, Bank(StageMewtwoBonusCollisionAttributesBallEntrance)
dwb StageMewtwoBonusCollisionMasks, Bank(StageMewtwoBonusCollisionMasks)
dwb StageMewtwoBonusCollisionAttributes, Bank(StageMewtwoBonusCollisionAttributes)
dwb StageMewtwoBonusCollisionMasks, Bank(StageMewtwoBonusCollisionMasks)
StageMeowthBonusCollisionAttributesPointers: ; 0xe62f
db $01 ; multiple pair entries
dwb StageMeowthBonusCollisionAttributesBallEntrance, Bank(StageMeowthBonusCollisionAttributesBallEntrance)
dwb StageMeowthBonusCollisionMasks, Bank(StageMeowthBonusCollisionMasks)
dwb StageMeowthBonusCollisionAttributes, Bank(StageMeowthBonusCollisionAttributes)
dwb StageMeowthBonusCollisionMasks, Bank(StageMeowthBonusCollisionMasks)
StageDiglettBonusCollisionAttributesPointers: ; 0xe63c
db $01 ; multiple pair entries
dwb StageDiglettBonusCollisionAttributesBallEntrance, Bank(StageDiglettBonusCollisionAttributesBallEntrance)
dwb StageDiglettBonusCollisionMasks, Bank(StageDiglettBonusCollisionMasks)
dwb StageDiglettBonusCollisionAttributes, Bank(StageDiglettBonusCollisionAttributes)
dwb StageDiglettBonusCollisionMasks, Bank(StageDiglettBonusCollisionMasks)
StageSeelBonusCollisionAttributesPointers: ; 0xe649
db $01 ; multiple pair entries
dwb StageSeelBonusCollisionAttributesBallEntrance, Bank(StageSeelBonusCollisionAttributesBallEntrance)
dwb StageSeelBonusCollisionMasks, Bank(StageSeelBonusCollisionMasks)
dwb StageSeelBonusCollisionAttributes, Bank(StageSeelBonusCollisionAttributes)
dwb StageSeelBonusCollisionMasks, Bank(StageSeelBonusCollisionMasks)
LoadCollisionAttributes: ; 0xe656
; Loads the stage's collision attributes into RAM
; Input: [wStageCollisionMapPointer] = pointer to collision attributes map
; [wStageCollisionMapBank] = ROM bank of collision attributes map
ld hl, wStageCollisionMapPointer
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wStageCollisionMapBank]
ld de, wStageCollisionMap
ld bc, $0300
call CopyDataToRAM
ld hl, wStageCollisionMapPointer
ld [hl], (wStageCollisionMap & $ff)
inc hl
ld [hl], (wStageCollisionMap >> 8)
inc hl
ld [hl], $0 ; Bank 0, because the data is in WRAM, so it doesn't matter which bank is saved
ret
Func_e674: ; 0xe674
push af
ld a, [$d548]
push af
xor a
ld [$d548], a
ld [$d803], a
ld [$ff8a], a
ld a, Bank(Func_84b7)
ld hl, Func_84b7
call BankSwitch
call Func_926
pop af
ld [$d548], a
pop af
ld [wCurrentStage], a
xor a
ld [$ffa3], a
ld [$ffa4], a
ld [$ffa5], a
rst $10
call Func_e5d
call Func_576
call ClearOAMBuffer
call Func_1129
call LoadStageCollisionAttributes
call Func_e6c2
call Func_e5d
call Func_588
ld a, $e4
ld [$ffa3], a
ld a, $e1
ld [$ffa4], a
ld a, $e4
ld [$ffa5], a
ret
Func_e6c2: ; 0xe6c2
ld a, [wCurrentStage]
bit 0, a
ld a, $86
jr z, .asm_e6d5
ld a, [$d5ca]
and a
ld a, $86
jr nz, .asm_e6d5
ld a, $90
.asm_e6d5
ld [$ffa6], a
ld hl, StageGfxPointers_GameBoy
ld a, [hGameBoyColorFlag]
and a
jr z, .loadData
ld hl, StageGfxPointers_GameBoyColor
.loadData
ld a, [wCurrentStage]
call LoadVideoData
xor a
ld [$d7f2], a
ld [$ff8a], a
ld a, Bank(Func_8471)
ld hl, Func_8471
call BankSwitch
ret
StageGfxPointers_GameBoy: ; 0xe6f7
dw StageRedFieldTopGfx_GameBoy
dw StageRedFieldBottomGfx_GameBoy
dw VideoData_e896
dw VideoData_e8bd
dw StageBlueFieldTopGfx_GameBoy
dw StageBlueFieldBottomGfx_GameBoy
dw StageGengarBonusGfx_GameBoy
dw StageGengarBonusGfx_GameBoy
dw StageMewtwoBonusGfx_GameBoy
dw StageMewtwoBonusGfx_GameBoy
dw StageMeowthBonusGfx_GameBoy
dw StageMeowthBonusGfx_GameBoy
dw StageDiglettBonusGfx_GameBoy
dw StageDiglettBonusGfx_GameBoy
dw StageSeelBonusGfx_GameBoy
dw StageSeelBonusGfx_GameBoy
StageGfxPointers_GameBoyColor: ; 0xe717
dw StageRedFieldTopGfx_GameBoyColor
dw StageRedFieldBottomGfx_GameBoyColor
dw VideoData_e8a6
dw VideoData_e8d4
dw StageBlueFieldTopGfx_GameBoyColor
dw StageBlueFieldBottomGfx_GameBoyColor
dw StageGengarBonusGfx_GameBoyColor
dw StageGengarBonusGfx_GameBoyColor
dw StageMewtwoBonusGfx_GameBoyColor
dw StageMewtwoBonusGfx_GameBoyColor
dw StageMeowthBonusGfx_GameBoyColor
dw StageMeowthBonusGfx_GameBoyColor
dw StageDiglettBonusGfx_GameBoyColor
dw StageDiglettBonusGfx_GameBoyColor
dw StageSeelBonusGfx_GameBoyColor
dw StageSeelBonusGfx_GameBoyColor
StageRedFieldTopGfx_GameBoy: ; 0xe737
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
VIDEO_DATA_TILES StageRedFieldTopGfx1, vTiles0 + $1a0, $260
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200
VIDEO_DATA_TILES StageRedFieldTopGfx2, vTiles0 + $600, $200
VIDEO_DATA_TILES StageRedFieldTopStatusBarSymbolsGfx_GameBoy, vTiles1, $100
VIDEO_DATA_TILES StageRedFieldTopGfx3, vTiles1 + $100, $1a0
VIDEO_DATA_TILES StageRedFieldTopBaseGameBoyGfx, vTiles1 + $2a0, $d60
VIDEO_DATA_TILEMAP StageRedFieldTopTilemap_GameBoy, vBGMap0, $400
db $FF, $FF ; terminators
StageRedFieldTopGfx_GameBoyColor: ; 0xe771
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
VIDEO_DATA_TILES StageRedFieldTopGfx1, vTiles0 + $1a0, $260
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200
VIDEO_DATA_TILES StageRedFieldTopGfx2, vTiles0 + $600, $200
VIDEO_DATA_TILES StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor, vTiles1, $100
VIDEO_DATA_TILES StageRedFieldTopGfx3, vTiles1 + $100, $1a0
VIDEO_DATA_TILES StageRedFieldTopBaseGameBoyColorGfx, vTiles1 + $2a0, $d60
VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx4, vTiles1, $1000
VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx5, vTiles0, $200
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx, vTiles0 + $200, $400
VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx2, vTiles1 + $100, $200
VIDEO_DATA_TILES_BANK2 StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor, vTiles1, $100
VIDEO_DATA_TILEMAP StageRedFieldTopTilemap_GameBoyColor, vBGMap0, $400
VIDEO_DATA_TILEMAP_BANK2 StageRedFieldTopTilemap2_GameBoyColor, vBGMap0, $400
VIDEO_DATA_PALETTES StageRedFieldTopPalettes, $80
VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx6, vTiles0 + $7c0, $40
db $FF, $FF ; terminators
StageRedFieldBottomGfx_GameBoy: ; 0xe7ea
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160
VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80
VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20
VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440
VIDEO_DATA_TILES StageRedFieldBottomBaseGameBoyGfx, vTiles1, $1000
VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40
VIDEO_DATA_TILEMAP StageRedFieldBottomTilemap_GameBoy, vBGMap0, $400
db $FF, $FF ; terminators
StageRedFieldBottomGfx_GameBoyColor: ; 0xe824
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160
VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80
VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20
VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440
VIDEO_DATA_TILES StageRedFieldBottomBaseGameBoyColorGfx, vTiles1, $1000
VIDEO_DATA_TILES_BANK2 StageRedFieldBottomGfx5, vTiles1, $1000
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40
VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx, vTiles0 + $200, $400
VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx2, vTiles1 + $100, $200
VIDEO_DATA_TILES_BANK2 StageRedFieldBottomBaseGameBoyColorGfx, vTiles1, $100
VIDEO_DATA_TILEMAP StageRedFieldBottomTilemap_GameBoyColor, vBGMap0, $400
VIDEO_DATA_TILEMAP_BANK2 StageRedFieldBottomTilemap2_GameBoyColor, vBGMap0, $400
VIDEO_DATA_PALETTES StageRedFieldBottomPalettes, $80
VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx6, vTiles0 + $7c0, $40
db $FF, $FF ; terminators
VideoData_e896: ; 0xe896
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200
db $FF, $FF ; terminators
VideoData_e8a6: ; 0xe8a6
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
db $FF, $FF ; terminators
VideoData_e8bd: ; 0xe8bd
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
VIDEO_DATA_TILES PinballPokeballShakeGfx, vTiles0 + $380, $480
VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40
db $FF, $FF ; terminators
VideoData_e8d4: ; 0xe8d4
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
VIDEO_DATA_TILES PinballPokeballShakeGfx, vTiles0 + $380, $480
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40
db $FF, $FF ; terminators
StageBlueFieldTopGfx_GameBoy: ; 0xe8f2
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
VIDEO_DATA_TILES StageBlueFieldTopGfx1, vTiles0 + $1a0, $260
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200
VIDEO_DATA_TILES StageBlueFieldTopGfx2, vTiles0 + $600, $200
VIDEO_DATA_TILES StageBlueFieldTopStatusBarSymbolsGfx_GameBoy, vTiles1, $100
VIDEO_DATA_TILES StageBlueFieldTopGfx3, vTiles1 + $100, $1a0
VIDEO_DATA_TILES StageBlueFieldTopBaseGameBoyGfx, vTiles1 + $2a0, $d60
VIDEO_DATA_TILEMAP StageBlueFieldTopTilemap_GameBoy, vBGMap0, $400
db $FF, $FF ; terminators
StageBlueFieldTopGfx_GameBoyColor: ; 0xe92c
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
VIDEO_DATA_TILES StageBlueFieldTopGfx1, vTiles0 + $1a0, $260
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200
VIDEO_DATA_TILES StageBlueFieldTopGfx2, vTiles0 + $600, $200
VIDEO_DATA_TILES StageBlueFieldTopStatusBarSymbolsGfx_GameBoyColor, vTiles1, $100
VIDEO_DATA_TILES StageBlueFieldTopGfx3, vTiles1 + $100, $1a0
VIDEO_DATA_TILES StageBlueFieldTopBaseGameBoyColorGfx, vTiles1 + $2a0, $d60
VIDEO_DATA_TILES_BANK2 StageBlueFieldTopGfx4, vTiles1, $1000
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
VIDEO_DATA_TILEMAP StageBlueFieldTopTilemap_GameBoyColor, vBGMap0, $400
VIDEO_DATA_TILEMAP_BANK2 StageBlueFieldTopTilemap2_GameBoyColor, vBGMap0, $400
VIDEO_DATA_PALETTES StageBlueFieldTopPalettes, $80
db $FF, $FF ; terminators
StageBlueFieldBottomGfx_GameBoy: ; 0xe982
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160
VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80
VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20
VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440
VIDEO_DATA_TILES StageBlueFieldBottomBaseGameBoyGfx, vTiles1, $1000
VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40
VIDEO_DATA_TILEMAP StageBlueFieldBottomTilemap_GameBoy, vBGMap0, $400
db $FF, $FF ; terminators
StageBlueFieldBottomGfx_GameBoyColor: ; 0xe9bc
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160
VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80
VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20
VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440
VIDEO_DATA_TILES StageBlueFieldBottomBaseGameBoyColorGfx, vTiles1, $1000
VIDEO_DATA_TILES_BANK2 StageBlueFieldBottomGfx1, vTiles1, $1000
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40
VIDEO_DATA_TILEMAP StageBlueFieldBottomTilemap_GameBoyColor, vBGMap0, $400
VIDEO_DATA_TILEMAP_BANK2 StageBlueFieldBottomTilemap2_GameBoyColor, vBGMap0, $400
VIDEO_DATA_PALETTES StageBlueFieldBottomPalettes, $80
db $FF, $FF ; terminators
StageGengarBonusGfx_GameBoy: ; 0xea12
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320
VIDEO_DATA_TILES GengarBonusBaseGameBoyGfx, vTiles1, $1000
VIDEO_DATA_TILES GengarBonusGastlyGfx, vTiles1 + $100, $180
VIDEO_DATA_TILES GengarBonusHaunter1Gfx, vTiles1 + $280, $20
VIDEO_DATA_TILES GengarBonusHaunter2Gfx, vTiles0 + $1a0, $100
VIDEO_DATA_TILES GengarBonusGengar1Gfx, vTiles0 + $2a0, $160
VIDEO_DATA_TILES GengarBonusGengar2Gfx, vTiles0 + $7a0, $60
VIDEO_DATA_TILES GengarBonusGengar3Gfx, vTiles1 + $2a0, $2a0
VIDEO_DATA_TILEMAP GengarBonusTilemap_GameBoy, vBGMap0, $400
db $FF, $FF ; terminators
StageGengarBonusGfx_GameBoyColor: ; 0xea5a
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440
VIDEO_DATA_TILES GengarBonusBaseGameBoyColorGfx, vTiles1, $1000
VIDEO_DATA_TILES GengarBonusGastlyGfx, vTiles1 + $100, $180
VIDEO_DATA_TILES GengarBonusHaunter1Gfx, vTiles1 + $280, $20
VIDEO_DATA_TILES GengarBonusHaunter2Gfx, vTiles0 + $1a0, $100
VIDEO_DATA_TILES GengarBonusGengar1Gfx, vTiles0 + $2a0, $160
VIDEO_DATA_TILES GengarBonusGengar2Gfx, vTiles0 + $7a0, $60
VIDEO_DATA_TILES GengarBonusGengar3Gfx, vTiles1 + $2a0, $2a0
VIDEO_DATA_TILES_BANK2 GengarBonus1Gfx, vTiles1, $1000
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
VIDEO_DATA_TILEMAP GengarBonusBottomTilemap_GameBoyColor, vBGMap0, $400
VIDEO_DATA_TILEMAP_BANK2 GengarBonusBottomTilemap2_GameBoyColor, vBGMap0, $400
VIDEO_DATA_PALETTES GengarBonusPalettes, $80
db $FF, $FF ; terminators
StageMewtwoBonusGfx_GameBoy: ; 0xeabe
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
VIDEO_DATA_TILES MewtwoBonus1Gfx, vTiles0 + $1a0, $260
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320
VIDEO_DATA_TILES MewtwoBonus2Gfx, vTiles0 + $7a0, $60
VIDEO_DATA_TILES MewtwoBonusBaseGameBoyGfx, vTiles1, $1000
VIDEO_DATA_TILES MewtwoBonus3Gfx, vTiles1 + $100, $1a0
VIDEO_DATA_TILES MewtwoBonus4Gfx, vTiles1 + $2a0, $2a0
VIDEO_DATA_TILEMAP MewtwoBonusTilemap_GameBoy, vBGMap0, $400
db $FF, $FF ; terminators
StageMewtwoBonusGfx_GameBoyColor: ; 0xeaf8
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
VIDEO_DATA_TILES MewtwoBonus1Gfx, vTiles0 + $1a0, $260
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320
VIDEO_DATA_TILES MewtwoBonus2Gfx, vTiles0 + $7a0, $60
VIDEO_DATA_TILES MewtwoBonusBaseGameBoyColorGfx, vTiles1, $1000
VIDEO_DATA_TILES MewtwoBonus3Gfx, vTiles1 + $100, $1a0
VIDEO_DATA_TILES MewtwoBonus4Gfx, vTiles1 + $2a0, $2a0
; Can't use a macro here because it's copying the tiles from VRAM, not ROM.
dw vTiles0
db $20 ; This is an arbitrary bank, since the data is in VRAM, not ROM.
dw vTiles1
dw $4002
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
VIDEO_DATA_TILEMAP MewtoBonusBottomTilemap_GameBoyColor, vBGMap0, $400
VIDEO_DATA_TILEMAP_BANK2 MewtoBonusBottomTilemap2_GameBoyColor, vBGMap0, $400
VIDEO_DATA_PALETTES MewtwoBonusPalettes, $80
db $FF, $FF ; terminators
StageMeowthBonusGfx_GameBoy: ; 0xeb4e
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
VIDEO_DATA_TILES MeowthBonusMeowth1Gfx, vTiles0 + $1a0, $260
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320
VIDEO_DATA_TILES MeowthBonusMeowth2Gfx, vTiles0 + $7a0, $60
VIDEO_DATA_TILES MeowthBonusBaseGameBoyGfx, vTiles1, $a00
VIDEO_DATA_TILES MeowthBonusMeowth3Gfx, vTiles1 + $100, $1a0
VIDEO_DATA_TILES MeowthBonusMeowth4Gfx, vTiles1 + $2a0, $360
VIDEO_DATA_TILEMAP MeowthBonusTilemap_GameBoy, vBGMap0, $400
db $FF, $FF ; terminators
StageMeowthBonusGfx_GameBoyColor: ; 0xeb88
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
dw $41A0
db $33
dw $81A0
dw $0980
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320
dw $4400
db $33
dw $87A0
dw $0180
dw $7200
db $2A
dw $8800
dw $2400
dw $4000
db $33
dw $8900
dw $0680
dw $4460
db $33
dw $8AA0
dw $0D80
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
dw $6000
db $33
dw $9800
dw $1000
dw $6400
db $33
dw $9800
dw $1002
dw $4C80
db $37
dw $0000
dw $0101
db $FF, $FF ; terminators
StageDiglettBonusGfx_GameBoy: ; 0xebd7
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
dw $7AA0
db $2B
dw $81A0
dw $0980
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320
dw $7D00
db $2B
dw $87A0
dw $0180
dw $7000
db $23
dw $8800
dw $3800
dw $7900
db $2B
dw $8900
dw $0680
dw $7D60
db $2B
dw $8AA0
dw $0A00
dw $7800
db $33
dw $9800
dw $1000
db $FF, $FF ; terminators
StageDiglettBonusGfx_GameBoyColor: ; 0xec11
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
dw $7AA0
db $2B
dw $81A0
dw $0980
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320
dw $7D00
db $2B
dw $87A0
dw $0180
dw $7000
db $21
dw $8800
dw $3800
dw $7900
db $2B
dw $8900
dw $0680
dw $7D60
db $2B
dw $8AA0
dw $0A00
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
dw $7000
db $34
dw $9800
dw $1000
dw $7400
db $34
dw $9800
dw $1002
dw $4A00
db $37
dw $0000
dw $0101
db $FF, $FF ; terminators
StageSeelBonusGfx_GameBoy: ; 0xec60
VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0
dw $71A0
db $26
dw $81A0
dw $0980
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320
dw $7400
db $26
dw $87A0
dw $0180
dw $7000
db $24
dw $8800
dw $3400
dw $7000
db $26
dw $8900
dw $0680
dw $7460
db $26
dw $8AA0
dw $1280
dw $5000
db $35
dw $9800
dw $1000
db $FF, $FF ; terminators
StageSeelBonusGfx_GameBoyColor: ; 0xec9a
VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0
dw $71A0
db $26
dw $81A0
dw $0980
VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320
dw $7400
db $26
dw $87A0
dw $0180
dw $7000
db $25
dw $8800
dw $2C00
dw $7000
db $26
dw $8900
dw $0680
dw $7460
db $26
dw $8AA0
dw $1280
VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160
dw $5800
db $35
dw $9800
dw $1000
dw $5C00
db $35
dw $9800
dw $1002
dw $4880
db $37
dw $0000
dw $0101
db $FF, $FF ; terminators
Func_ece9: ; 0xece9
call Func_ed5e
ld a, [wBallYPos + 1]
add $10
cp $18
jr c, .asm_ed13
cp $b8
ret c
ld a, [wCurrentStage]
ld c, a
ld b, $0
ld hl, BallMovingDownStageTransitions
add hl, bc
ld a, [hl]
cp $ff
jr z, .asm_ed2e
call Func_e674
ld a, [wBallYPos + 1]
sub $88
ld [wBallYPos + 1], a
ret
.asm_ed13
ld a, [wCurrentStage]
ld c, a
ld b, $0
ld hl, BallMovingUpStageTransitions
add hl, bc
ld a, [hl]
cp $ff
jr z, .asm_ed2e
call Func_e674
ld a, [wBallYPos + 1]
add $88
ld [wBallYPos + 1], a
ret
.asm_ed2e
ld a, $1
ld [$d4ae], a
ld [$ff8a], a
ld a, Bank(Func_dc49)
ld hl, Func_dc49
call BankSwitch
ret
BallMovingUpStageTransitions: ; 0xed3e
; Maps the relationship between stages when
; the ball moves out of the screen upward.
db $FF ; STAGE_RED_FIELD_TOP
db STAGE_RED_FIELD_TOP ; STAGE_RED_FIELD_BOTTOM
db $FF
db $02
db $FF ; STAGE_BLUE_FIELD_TOP
db STAGE_BLUE_FIELD_TOP ; STAGE_BLUE_FIELD_BOTTOM
db $FF ; STAGE_GENGAR_BONUS
db $FF ; STAGE_GENGAR_BONUS
db $FF ; STAGE_MEWTWO_BONUS
db $FF ; STAGE_MEWTWO_BONUS
db $FF ; STAGE_MEOWTH_BONUS
db $FF ; STAGE_MEOWTH_BONUS
db $FF ; STAGE_DIGLETT_BONUS
db $FF ; STAGE_DIGLETT_BONUS
db $FF ; STAGE_SEEL_BONUS
db $FF ; STAGE_SEEL_BONUS
BallMovingDownStageTransitions: ; 0xed4e
; Maps the relationship between stages when
; the ball moves out of the screen downward.
db STAGE_RED_FIELD_BOTTOM ; STAGE_RED_FIELD_TOP
db $FF ; STAGE_RED_FIELD_BOTTOM
db $03
db $FF
db STAGE_BLUE_FIELD_BOTTOM ; STAGE_BLUE_FIELD_TOP
db $FF ; STAGE_BLUE_FIELD_BOTTOM
db $FF ; STAGE_GENGAR_BONUS
db $FF ; STAGE_GENGAR_BONUS
db $FF ; STAGE_MEWTWO_BONUS
db $FF ; STAGE_MEWTWO_BONUS
db $FF ; STAGE_MEOWTH_BONUS
db $FF ; STAGE_MEOWTH_BONUS
db $FF ; STAGE_DIGLETT_BONUS
db $FF ; STAGE_DIGLETT_BONUS
db $FF ; STAGE_SEEL_BONUS
db $FF ; STAGE_SEEL_BONUS
Func_ed5e: ; 0xed5e
ld hl, $d7ab
ld a, [$d7ac]
and a
jr nz, .asm_ed7f
ld a, [wBallXPos + 1]
cp $9a
ld a, $2
jr nc, .asm_ed72
ld a, $fe
.asm_ed72
ld [$d7aa], a
add [hl]
cp $22
jr z, .asm_ed7f
bit 7, a
jr nz, .asm_ed7f
ld [hl], a
.asm_ed7f
ld a, [hl]
ld hl, $d79f
sub [hl]
ld [hBoardXShift], a
xor a
ld hl, $d7a0
sub [hl]
ld [hBoardYShift], a
ret
Func_ed8e: ; 0xed8e
xor a
ld [$d803], a
ld [$d804], a
ld [$d622], a
ld a, [wNumPartyMons]
ld [$d620], a
ld a, [wBallType]
ld c, a
ld b, $0
ld hl, BallTypeMultipliers
add hl, bc
ld a, [hl]
ld [$d621], a
.asm_edac
xor a
ld [hJoypadState], a
ld [hNewlyPressedButtons], a
ld [hPressedButtons], a
call HandleTilts
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, $3
ld hl, HandleFlippers
call nz, BankSwitch
ld [$ff8a], a
ld a, Bank(Func_84b7)
ld hl, Func_84b7
call BankSwitch
call Func_33e3
call Func_926
rst $10
ld a, [$d7af]
and a
jr nz, .asm_edac
ld a, [$d7b3]
and a
jr nz, .asm_edac
ld a, [hGameBoyColorFlag]
and a
call nz, Func_f269
call GenRandom
and $f0
ld [$d61a], a
xor a
ld [$d61b], a
ld [$d61e], a
.asm_6df7
ld a, [$d61a]
ld c, a
ld b, $0
ld hl, Data_f339
add hl, bc
ld a, [$d619]
add [hl]
ld c, a
ld hl, Data_f439
add hl, bc
ld a, [hli]
bit 7, a
jr nz, .asm_ee56
call Func_eef9
ld [$d61d], a
push af
ld de, $0009
call PlaySoundEffect
pop af
call LoadBillboardOffPicture
ld a, [$d61b]
cp $a
jr nc, .asm_ee29
ld a, $a
.asm_ee29
ld b, a
.asm_ee2a
push bc
call Func_eeee
ld a, [$d61e]
and a
jr nz, .asm_ee47
call Func_ef1e
jr z, .asm_ee47
ld [$d61e], a
ld a, $32
ld [$d61b], a
ld de, $0728
call PlaySoundEffect
.asm_ee47
pop bc
dec b
jr nz, .asm_ee2a
ld a, [$d61b]
inc a
ld [$d61b], a
cp $3c
jr z, .asm_ee69
.asm_ee56
ld a, [$d61a]
and $f0
ld b, a
ld a, [$d61a]
inc a
and $f
or b
ld [$d61a], a
jp .asm_6df7
.asm_ee69
ld a, [$d61d]
cp $5
jr nz, .asm_ee78
ld de, $0c42
call PlaySoundEffect
jr .asm_ee7e
.asm_ee78
ld de, $0c43
call PlaySoundEffect
.asm_ee7e
ld b, $28
.asm_ee80
push bc
rst $10
pop bc
call Func_ef1e
jr nz, .asm_ee8b
dec b
jr nz, .asm_ee80
.asm_ee8b
ld a, [hGameBoyColorFlag]
and a
ld a, [$d61d]
call nz, Func_f2a0
ld b, $80
.asm_ee96
push bc
ld a, b
and $f
jr nz, .asm_eeae
bit 4, b
jr z, .asm_eea8
ld a, [$d61d]
call LoadBillboardPicture
jr .asm_eeae
.asm_eea8
ld a, [$d61d]
call LoadBillboardOffPicture
.asm_eeae
rst $10
pop bc
call Func_ef1e
jr nz, .asm_eeb8
dec b
jr nz, .asm_ee96
.asm_eeb8
ld a, [$d619]
add $a
cp $fa
jr nz, .asm_eec3
ld a, $64
.asm_eec3
ld [$d619], a
ld a, [$d61d]
rst $18 ; calls JumpToFuncInTable
CallTable_eeca: ; 0xeeca
dw Func_ef35
dw Func_ef4f
dw Func_ef69
dw Func_ef83
dw Func_efa7
dw Func_efb2
dw Func_eff3
dw Func_f034
dw Func_f03a
dw UpgradeBallBlueField
dw UpgradeBallBlueField
dw UpgradeBallBlueField
dw Func_f0c1
dw Func_f172
dw Func_f172
dw Func_f172
dw Func_f172
dw Func_f172
Func_eeee: ; 0xeeee
push bc
ld bc, $0200
.asm_eef2
dec bc
ld a, b
or c
jr nz, .asm_eef2
pop bc
ret
Func_eef9: ; 0xeef9
cp $8
jr nz, .asm_ef09
ld a, [$d620]
and a
jr nz, .asm_ef06
ld a, $7
ret
.asm_ef06
ld a, $8
ret
.asm_ef09
cp $9
jr nz, .asm_ef14
push hl
ld hl, $d621
add [hl]
pop hl
ret
.asm_ef14
cp $d
ret nz
push hl
ld hl, $d498
add [hl]
pop hl
ret
Func_ef1e: ; 0xef1e
push bc
ld hl, wKeyConfigRightFlipper
call IsKeyPressed
jr nz, .asm_ef2d
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed
.asm_ef2d
pop bc
ret
BallTypeMultipliers: ; 0xef2f
; Score multiplier for each ball type.
db $00 ; POKE_BALL
db $00
db $01 ; GREAT_BALL
db $02 ; ULTRA_BALL
db $02
db $02 ; MASTER_BALL
Func_ef35: ; 0xef35
ld a, $0
ld [wBallSaverIconOn], a
ld a, $ff
ld [$d4a2], a
ld a, $3b
ld [wBallSaverTimerFrames], a
ld a, $1e
ld [wBallSaverTimerSeconds], a
ld a, $2
ld [$d4a5], a
ret
Func_ef4f: ; 0xef4f
ld a, $0
ld [wBallSaverIconOn], a
ld a, $ff
ld [$d4a2], a
ld a, $3b
ld [wBallSaverTimerFrames], a
ld a, $3c
ld [wBallSaverTimerSeconds], a
ld a, $2
ld [$d4a5], a
ret
Func_ef69: ; 0xef69
ld a, $0
ld [wBallSaverIconOn], a
ld a, $ff
ld [$d4a2], a
ld a, $3b
ld [wBallSaverTimerFrames], a
ld a, $5a
ld [wBallSaverTimerSeconds], a
ld a, $2
ld [$d4a5], a
ret
Func_ef83: ; 0xef83
ld a, $1
ld [$d51d], a
ld a, $f
ld [$d517], a
xor a
ld [$d85d], a
call Func_310a
rst $10
ld a, $0
ld [$ff8a], a
ld a, Bank(PlayPikachuSoundClip)
ld hl, PlayPikachuSoundClip
call BankSwitch
ld a, $1
ld [$d85d], a
ret
Func_efa7: ; 0xefa7
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call BankSwitch
ret
Func_efb2: ; 0xefb2
ld a, $8
call Func_a21
ld [$d61f], a
ld b, $80
.asm_efbc
push bc
ld a, b
and $f
jr nz, .asm_efd8
bit 4, b
jr z, .asm_efd0
ld a, [$d61f]
add $12
call LoadBillboardPicture
jr .asm_efd8
.asm_efd0
ld a, [$d61f]
add $12
call LoadBillboardOffPicture
.asm_efd8
rst $10
pop bc
ld a, [hNewlyPressedButtons]
and $21
jr nz, .asm_efe3
dec b
jr nz, .asm_efbc
.asm_efe3
ld a, [$d61f]
inc a
swap a
ld e, a
ld d, $0
ld bc, $0000
call Func_351c
ret
Func_eff3: ; 0xeff3
ld a, $8
call Func_a21
ld [$d61f], a
ld b, $80
.asm_effd
push bc
ld a, b
and $f
jr nz, .asm_f019
bit 4, b
jr z, .asm_f011
ld a, [$d61f]
add $1b
call LoadBillboardPicture
jr .asm_f019
.asm_f011
ld a, [$d61f]
add $1b
call LoadBillboardOffPicture
.asm_f019
rst $10
pop bc
ld a, [hNewlyPressedButtons]
and $21
jr nz, .asm_f024
dec b
jr nz, .asm_effd
.asm_f024
ld a, [$d61f]
inc a
swap a
ld c, a
ld b, $0
ld de, $0000
call Func_351c
ret
Func_f034: ; 0xf034
ld a, $1
ld [$d622], a
ret
Func_f03a: ; 0xf03a
ld a, $2
ld [$d622], a
ret
UpgradeBallBlueField: ; 0xf040
; load approximately 1 minute of frames into wBallTypeCounter
ld a, $10
ld [wBallTypeCounter], a
ld a, $e
ld [wBallTypeCounter + 1], a
ld a, [wBallType]
cp MASTER_BALL
jr z, .masterBall
ld de, $063a
call PlaySoundEffect
call Func_30e8
call Func_30db
ld de, $2907
ld hl, $d5cc
call Func_32aa
; upgrade ball type
ld a, [wBallType]
ld c, a
ld b, $0
ld hl, BallTypeProgressionBlueField
add hl, bc
ld a, [hl]
ld [wBallType], a
add $30
ld [$c512], a
jr .asm_f0b0
.masterBall
ld de, $0f4d
call PlaySoundEffect
ld bc, $34e8
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld bc, $100
ld de, $0000
push bc
push de
call Func_30e8
call Func_30db
ld hl, $d5d4
ld de, $2948
call Func_32cc
pop de
pop bc
ld hl, $d5cc
ld de, $2922
call Func_32aa
.asm_f0b0
ld [$ff8a], a
ld a, Bank(Func_155bb)
ld hl, Func_155bb
call BankSwitch
ret
BallTypeProgressionBlueField: ; 0xf0bb
; Determines the next upgrade for the Ball.
db GREAT_BALL ; POKE_BALL -> GREAT_BALL
db GREAT_BALL ; unused
db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL
db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL
db MASTER_BALL ; unused
db MASTER_BALL ; MASTER_BALL -> MASTER_BALL
Func_f0c1: ; 0xf0c1
ld a, $4
call Func_a21
ld [$d61f], a
ld b, $80
.asm_f0cb
push bc
ld a, b
and $f
jr nz, .asm_f0e7
bit 4, b
jr z, .asm_f0df
ld a, [$d61f]
add $24
call LoadBillboardPicture
jr .asm_f0e7
.asm_f0df
ld a, [$d61f]
add $24
call LoadBillboardOffPicture
.asm_f0e7
rst $10
pop bc
ld a, [hNewlyPressedButtons]
and $21
jr nz, .asm_f0f2
dec b
jr nz, .asm_f0cb
.asm_f0f2
ld a, $3
ld [$d610], a
xor a
ld [$d611], a
ld [$d612], a
ld a, [$d482]
call Func_f14a
ld b, c
ld a, [$d61f]
inc a
ld hl, $d482
add [hl]
cp $64
jr c, .asm_f113
ld a, $63
.asm_f113
ld [hl], a
call Func_f14a
ld a, c
cp b
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call nz, BankSwitch
ld [$ff8a], a
ld a, Bank(Func_16f95)
ld hl, Func_16f95
call BankSwitch
ld a, [$d60c]
ld [$ff8a], a
ld a, Bank(Func_f154)
ld hl, Func_f154
call BankSwitch ; no need for BankSwitch here...
ld a, [$d60d]
add $14
ld [$ff8a], a
ld a, Bank(Func_f154)
ld hl, Func_f154
call BankSwitch ; no need for BankSwitch here...
ret
Func_f14a: ; 0xf14a
ld c, $0
.asm_f14c
cp $19
ret c
sub $19
inc c
jr .asm_f14c
Func_f154: ; 0xf154
ld a, [wCurrentStage]
call CallInFollowingTable
CallTable_f15a: ; 0xf15a
dw Func_16f28
db Bank(Func_16f28), $00
dw Func_16f28
db Bank(Func_16f28), $00
dw Func_16f28
db Bank(Func_16f28), $00
dw Func_16f28
db Bank(Func_16f28), $00
dw Func_1d5f2
db Bank(Func_1d5f2), $00
dw Func_1d5f2
db Bank(Func_1d5f2), $00
Func_f172: ; 0xf172
ld a, $1
ld [$d623], a
ret
LoadBillboardPicture: ; 0xf178
; Loads a billboard picture's tiles into VRAM
; input: a = billboard picture id
push hl
ld c, a
ld b, $0
sla c
add c ; a has been multplied by 3 becuase entires in BillboardPicturePointers are 3 bytes long
ld c, a
ld hl, BillboardPicturePointers
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hl]
ld h, b
ld l, c
ld de, $8900 ; destination address to copy the tiles
ld bc, $180 ; billboard pictures are $180 bytes
call LoadVRAMData ; loads the tiles into VRAM
pop hl
ret
LoadBillboardOffPicture: ; 0xf196
; Loads the dimly-lit "off" version of a billboard picture into VRAM
; Input: a = billboard picture id
push hl
ld c, a
ld b, $0
sla c
add c
ld c, a
ld hl, BillboardPicturePointers
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hl]
ld h, b
ld l, c
ld bc, $0180 ; get the address of the "off" version of the picture
add hl, bc
ld de, $8900
ld bc, $0180
call LoadVRAMData
pop hl
ret
BillboardPicturePointers: ; 0xf1b8
dw BallSaver30SecondsOnPic
db Bank(BallSaver30SecondsOnPic)
dw BallSaver60SecondsOnPic
db Bank(BallSaver60SecondsOnPic)
dw BallSaver90SecondsOnPic
db Bank(BallSaver90SecondsOnPic)
dw PikachuSaverOnPic
db Bank(PikachuSaverOnPic)
dw ExtraBallOnPic
db Bank(ExtraBallOnPic)
dw SmallRewardOnPic
db Bank(SmallRewardOnPic)
dw BigRewardOnPic
db Bank(BigRewardOnPic)
dw CatchEmModeOnPic
db Bank(CatchEmModeOnPic)
dw EvolutionModeOnPic
db Bank(EvolutionModeOnPic)
dw GreatBallOnPic
db Bank(GreatBallOnPic)
dw UltraBallOnPic
db Bank(UltraBallOnPic)
dw MasterBallOnPic
db Bank(MasterBallOnPic)
dw BonusMultiplierOnPic
db Bank(BonusMultiplierOnPic)
dw GoToGengarBonusOnPic
db Bank(GoToGengarBonusOnPic)
dw GoToMewtwoBonusOnPic
db Bank(GoToMewtwoBonusOnPic)
dw GoToMeowthBonusOnPic
db Bank(GoToMeowthBonusOnPic)
dw GoToDiglettBonusOnPic
db Bank(GoToDiglettBonusOnPic)
dw GoToSeelBonusOnPic
db Bank(GoToSeelBonusOnPic)
dw SmallReward100PointsOnPic
db Bank(SmallReward100PointsOnPic)
dw SmallReward200PointsOnPic
db Bank(SmallReward200PointsOnPic)
dw SmallReward300PointsOnPic
db Bank(SmallReward300PointsOnPic)
dw SmallReward400PointsOnPic
db Bank(SmallReward400PointsOnPic)
dw SmallReward500PointsOnPic
db Bank(SmallReward500PointsOnPic)
dw SmallReward600PointsOnPic
db Bank(SmallReward600PointsOnPic)
dw SmallReward700PointsOnPic
db Bank(SmallReward700PointsOnPic)
dw SmallReward800PointsOnPic
db Bank(SmallReward800PointsOnPic)
dw SmallReward900PointsOnPic
db Bank(SmallReward900PointsOnPic)
dw BigReward1000000PointsOnPic
db Bank(BigReward1000000PointsOnPic)
dw BigReward2000000PointsOnPic
db Bank(BigReward2000000PointsOnPic)
dw BigReward3000000PointsOnPic
db Bank(BigReward3000000PointsOnPic)
dw BigReward4000000PointsOnPic
db Bank(BigReward4000000PointsOnPic)
dw BigReward5000000PointsOnPic
db Bank(BigReward5000000PointsOnPic)
dw BigReward6000000PointsOnPic
db Bank(BigReward6000000PointsOnPic)
dw BigReward7000000PointsOnPic
db Bank(BigReward7000000PointsOnPic)
dw BigReward8000000PointsOnPic
db Bank(BigReward8000000PointsOnPic)
dw BigReward9000000PointsOnPic
db Bank(BigReward9000000PointsOnPic)
dw BonusMultiplierX1OnPic
db Bank(BonusMultiplierX1OnPic)
dw BonusMultiplierX2OnPic
db Bank(BonusMultiplierX2OnPic)
dw BonusMultiplierX3OnPic
db Bank(BonusMultiplierX3OnPic)
dw BonusMultiplierX4OnPic
db Bank(BonusMultiplierX4OnPic)
dw BonusMultiplierX5OnPic
db Bank(BonusMultiplierX5OnPic)
dw PalletTownPic
db Bank(PalletTownPic)
dw ViridianCityPic
db Bank(ViridianCityPic)
dw ViridianForestPic
db Bank(ViridianForestPic)
dw PewterCityPic
db Bank(PewterCityPic)
dw MtMoonPic
db Bank(MtMoonPic)
dw CeruleanCityPic
db Bank(CeruleanCityPic)
dw VermilionCitySeasidePic
db Bank(VermilionCitySeasidePic)
dw VermilionCityStreetsPic
db Bank(VermilionCityStreetsPic)
dw RockMountainPic
db Bank(RockMountainPic)
dw LavenderTownPic
db Bank(LavenderTownPic)
dw CeladonCityPic
db Bank(CeladonCityPic)
dw CyclingRoadPic
db Bank(CyclingRoadPic)
dw FuchsiaCityPic
db Bank(FuchsiaCityPic)
dw SafariZonePic
db Bank(SafariZonePic)
dw SaffronCityPic
db Bank(SaffronCityPic)
dw SeafoamIslandsPic
db Bank(SeafoamIslandsPic)
dw CinnabarIslandPic
db Bank(CinnabarIslandPic)
dw IndigoPlateauPic
db Bank(IndigoPlateauPic)
Func_f269: ; 0xf269
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_f27c
ld a, $37
ld hl, $4aa8
ld de, $0030
ld bc, $0008
call Func_7dc
.asm_f27c
ld a, $3
ld de, $7288
ld hl, $9887
call Func_86f
ret
INCBIN "baserom.gbc",$f288,$f2a0 - $f288
Func_f2a0: ; 0xf2a0
push hl
ld c, a
ld b, $0
sla c
add c
ld c, a
ld hl, PaletteDataPointerTable_f2be
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hl]
ld h, b
ld l, c
ld de, $0030
ld bc, $0010
call Func_7dc
pop hl
ret
PaletteDataPointerTable_f2be: ; 0xf2be
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc08, Bank(PaletteData_dcc08)
dwb PaletteData_dcc08, Bank(PaletteData_dcc08)
dwb PaletteData_dcc10, Bank(PaletteData_dcc10)
dwb PaletteData_dcc18, Bank(PaletteData_dcc18)
dwb PaletteData_dcc20, Bank(PaletteData_dcc20)
dwb PaletteData_dcc08, Bank(PaletteData_dcc08)
dwb PaletteData_dcc28, Bank(PaletteData_dcc28)
dwb PaletteData_dcc08, Bank(PaletteData_dcc08)
dwb PaletteData_dcc30, Bank(PaletteData_dcc30)
dwb PaletteData_dcc38, Bank(PaletteData_dcc38)
dwb PaletteData_dcc40, Bank(PaletteData_dcc40)
dwb PaletteData_dcc48, Bank(PaletteData_dcc48)
dwb PaletteData_dcc50, Bank(PaletteData_dcc50)
dwb PaletteData_dcc58, Bank(PaletteData_dcc58)
dwb PaletteData_dcc60, Bank(PaletteData_dcc60)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
dwb PaletteData_dcc00, Bank(PaletteData_dcc00)
Data_f339: ; 0xf339
db $02, $06, $00, $08, $04, $02, $06, $08, $04, $00, $06, $02, $04, $08, $00, $02
db $06, $02, $04, $08, $00, $06, $04, $08, $02, $00, $06, $08, $02, $00, $06, $08
db $02, $04, $00, $08, $06, $04, $00, $02, $06, $04, $00, $08, $06, $04, $02, $08
db $00, $08, $02, $04, $00, $08, $06, $02, $04, $00, $06, $08, $04, $00, $06, $02
db $00, $08, $02, $04, $00, $08, $06, $04, $02, $08, $00, $06, $02, $08, $00, $06
db $02, $00, $06, $04, $02, $00, $06, $08, $02, $04, $00, $06, $08, $04, $02, $06
db $00, $02, $08, $04, $00, $02, $06, $04, $08, $02, $06, $00, $04, $08, $06, $02
db $04, $08, $06, $02, $00, $08, $04, $06, $00, $02, $04, $06, $00, $02, $04, $08
db $02, $00, $04, $06, $02, $00, $08, $04, $02, $00, $06, $04, $08, $00, $06, $04
db $04, $00, $02, $08, $04, $06, $00, $08, $02, $04, $06, $08, $00, $04, $06, $02
db $06, $08, $04, $02, $06, $00, $08, $02, $04, $00, $06, $02, $08, $04, $06, $02
db $04, $06, $02, $00, $08, $04, $06, $00, $08, $02, $06, $00, $08, $02, $04, $00
db $02, $00, $06, $04, $02, $08, $06, $00, $04, $08, $02, $00, $04, $06, $08, $00
db $08, $06, $04, $00, $08, $06, $02, $00, $08, $06, $04, $00, $08, $06, $04, $02
db $02, $00, $06, $04, $08, $02, $00, $04, $08, $02, $00, $04, $06, $02, $08, $00
db $04, $06, $08, $02, $00, $06, $04, $08, $02, $06, $00, $08, $04, $06, $02, $08
Data_f439: ; 0xf439
db $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C, $00, $4C
db $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16, $05, $19
db $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $4C, $06, $66, $0D, $4C, $FF, $00
db $FF, $00, $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C
db $00, $4C, $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16
db $05, $19, $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $3F, $06, $3F, $0D, $3F
db $09, $3F, $FF, $00, $05, $11, $0C, $4F, $00, $4F, $03, $4F, $FF, $00, $05, $11
db $0C, $4F, $01, $4F, $07, $4F, $FF, $00, $05, $11, $0C, $44, $00, $44, $03, $44
db $06, $1E, $05, $11, $0C, $4F, $01, $4F, $08, $4F, $FF, $00, $02, $66, $06, $4C
db $0D, $4C, $FF, $00, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51, $FF, $00
db $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44, $00, $44
db $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00, $01, $3F
db $06, $3F, $0D, $3F, $09, $3F, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51
db $FF, $00, $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44
db $00, $44, $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00
db $01, $26, $06, $26, $0D, $26, $04, $8C, $FF, $00
Func_f533: ; 0xf533
call Func_30e8
call Func_f55c
call Func_f57f
ld a, $60
ld [$ffa6], a
dec a
ld [$ffa2], a
ld a, $fd
ld [$ffaf], a
call Func_f5a0
ld a, $90
ld [$ffa6], a
ld a, $83
ld [$ffa2], a
ld [$ffa8], a
ld a, $ff
ld [$ffaf], a
call Func_30e8
ret
Func_f55c: ; 0xf55c
ld a, [hGameBoyColorFlag]
and a
jr nz, .gameboyColor
ld a, $35
ld hl, $61c0
ld de, $8830
ld bc, $0010
call LoadVRAMData
ret
.gameboyColor
ld a, $35
ld hl, $63c0
ld de, $8830
ld bc, $0010
call LoadVRAMData
ret
Func_f57f: ; 0xf57f
xor a
ld [$d4aa], a
ld hl, wcBottomMessageText
ld a, $81
ld b, $40
.clearLoop
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
dec b
jr nz, .clearLoop
ld a, $0
ld hl, wcBottomMessageText
ld de, vBGMap1
ld bc, $00c0
call LoadVRAMData
ret
Func_f5a0: ; 0xf5a0
ld de, $c540
ld hl, $3069 ; todo
call Func_f7b1
ld de, $c580
ld hl, $3070
call Func_f7b1
ld hl, $d489
call Func_f8b5
ld hl, $d48f
call Func_f8b5
ld a, $1
ld [$d4ab], a
call Func_f626
call Func_f64e
call Func_f60a
call Func_f676
ld a, $1
ld [$d4ab], a
call Func_f70d
ld a, [$d616]
and a
ret z
ld a, $10
call SetSongBank
ld de, $0005
call PlaySong
ld hl, wcBottomMessageText
ld bc, $0040
call Func_f81b
ld de, $c520
ld hl, $3094
call Func_f7b1
ld bc, $0040
ld de, $0000
call Func_f80d
.asm_f602
rst $10
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f602
ret
Func_f60a: ; 0xf60a
ld a, [wCurrentStage]
rst $18 ; calls JumpToFuncInTable
CallTable_f60d: ; 0xf60d
; STAGE_RED_FIELD_TOP
dw Func_f945
; STAGE_RED_FIELD_BOTTOM
dw Func_f945
dw Func_f9f2
dw Func_f9f2
; STAGE_BLUE_FIELD_TOP
dw Func_f9f3
; STAGE_BLUE_FIELD_BOTTOM
dw Func_f9f3
; STAGE_GENGAR_BONUS
dw Func_faf6
; STAGE_GENGAR_BONUS
dw Func_faf6
; STAGE_MEWTWO_BONUS
dw Func_faf7
; STAGE_MEWTWO_BONUS
dw Func_faf7
; STAGE_MEOWTH_BONUS
dw Func_faf8
; STAGE_MEOWTH_BONUS
dw Func_faf8
Func_f626: ; 0xf626
ld de, $c501
ld hl, $3006 ; todo
call Func_f7b1
ld hl, $c501
ld a, [$d628]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d628
ld de, PointsData_f921
call Func_f853
call Func_f824
ret
Func_f64e: ; 0xf64e
ld de, wcBottomMessageText
ld hl, $3019 ; todo
call Func_f7b1
ld hl, wcBottomMessageText
ld a, [$d629]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d629
ld de, PointsData_f927
call Func_f853
call Func_f824
ret
Func_f676: ; 0xf676
ld b, $4
.asm_f678
push bc
ld hl, $c520
ld de, wcBottomMessageText
ld bc, $00e0
call Func_65d
ld bc, $00c0
ld de, $0000
call Func_f80d
ld a, [$d4ab]
and a
jr z, .asm_f69f
rst $10
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f69f
xor a
ld [$d4ab], a
.asm_f69f
pop bc
dec b
jr nz, .asm_f678
ld de, $c540
ld hl, $307a ; todo
call Func_f7b1
ld de, $c580
ld hl, $3086 ; todo
call Func_f7b1
ld hl, $c550
ld a, [$d482]
call Func_f78e
ld bc, $0040
ld de, $0040
call Func_f80d
.asm_f6c7
push de
push hl
ld hl, $d494
ld de, $c586
call Func_f8bd
ld bc, $0040
ld de, $0080
call Func_f80d
ld de, $003e
call PlaySoundEffect
ld a, [$d4ab]
and a
jr z, .asm_f6f2
rst $10
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f6f2
xor a
ld [$d4ab], a
.asm_f6f2
pop hl
pop de
ld a, [$d482]
and a
jr z, .asm_f709
dec a
ld [$d482], a
ld hl, $d48f
ld de, $d489
call Func_f902
jr .asm_f6c7
.asm_f709
call Func_f83a
ret
Func_f70d: ; 0xf70d
ld b, $4
.asm_f70f
push bc
ld hl, $c520
ld de, wcBottomMessageText
ld bc, $00e0
call Func_65d
ld bc, $00c0
ld de, $0000
call Func_f80d
ld a, [$d4ab]
and a
jr z, .asm_f736
rst $10
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f736
xor a
ld [$d4ab], a
.asm_f736
pop bc
dec b
jr nz, .asm_f70f
ld de, $c560
ld hl, $308d
call Func_f7b1
ld hl, $d46f
ld de, $c566
call Func_f8bd
ld bc, $0040
ld de, $0060
call Func_f80d
ld de, $003e
call PlaySoundEffect
ld a, [$d4ab]
and a
jr z, .asm_f76c
rst $10
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f76c
xor a
ld [$d4ab], a
.asm_f76c
ld hl, wScore
ld de, $d48f
call Func_f902
ld hl, $d46f
ld de, $c566
call Func_f8bd
ld bc, $0040
ld de, $0060
call Func_f80d
call Func_f83a
call Func_f83a
ret
Func_f78e: ; 0xf78e
push hl
call ConvertHexByteToDecWord
pop hl
ld c, $1
ld a, d
call .asm_f7a4
inc hl
ld a, e
swap a
call .asm_f7a4
inc hl
ld c, $0
ld a, e
; fall through
.asm_f7a4
and $f
jr nz, .asm_f7ab
ld a, c
and a
ret nz
.asm_f7ab
add $86
ld [hl], a
ld c, $0
ret
Func_f7b1: ; 0xf7b1
ld a, [$d805]
and a
jr nz, .asm_f7e0
.asm_f7b7
ld a, [hli]
and a
ret z
cp $30
jr c, .asm_f7c6
cp $3a
jr nc, .asm_f7c6
add $56
jr .asm_f7dc
.asm_f7c6
cp $41
jr c, .asm_f7d2
cp $5b
jr nc, .asm_f7d2
add $bf
jr .asm_f7dc
.asm_f7d2
cp $65
jr nz, .asm_f7da
ld a, $83
jr .asm_f7dc
.asm_f7da
ld a, $81
.asm_f7dc
ld [de], a
inc de
jr .asm_f7b7
.asm_f7e0
ld a, [hli]
and a
ret z
cp $30
jr c, .asm_f7ef
cp $3a
jr nc, .asm_f7ef
add $56
jr .asm_f809
.asm_f7ef
cp $a0
jr c, .asm_f7fb
cp $e0
jr nc, .asm_f7fb
sub $80
jr .asm_f809
.asm_f7fb
cp $e0
jr c, .asm_f807
cp $f4
jr nc, .asm_f807
sub $50
jr .asm_f809
.asm_f807
ld a, $81
.asm_f809
ld [de], a
inc de
jr .asm_f7e0
Func_f80d: ; 0xf80d
ld hl, $9c00
add hl, de
push hl
ld hl, wcBottomMessageText
add hl, de
pop de
call LoadVRAMData
ret
Func_f81b: ; 0xf81b
ld a, $81
ld [hli], a
dec bc
ld a, b
or c
jr nz, Func_f81b
ret
Func_f824: ; 0xf824
call Func_f83a
ld hl, wcBottomMessageText
ld bc, $0040
call Func_f81b
ld hl, $c548
ld bc, $0038
call Func_f81b
ret
Func_f83a: ; 0xf83a
ld a, [$d4ab]
and a
ret z
ld b, $46
.asm_f841
push bc
rst $10
pop bc
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr nz, .asm_f84e
dec b
jr nz, .asm_f841
ret
.asm_f84e
xor a
ld [$d4ab], a
ret
Func_f853: ; 0xf853
push hl
ld hl, $d483
call Func_f8b5
pop hl
.asm_f85b
push de
push hl
ld hl, $d488
ld de, $c546
call Func_f8bd
ld bc, $0040
ld de, $0040
call Func_f80d
ld de, $003e
call PlaySoundEffect
ld a, [$d4ab]
and a
jr z, .asm_f886
rst $10
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f886
xor a
ld [$d4ab], a
.asm_f886
pop hl
pop de
ld a, [hl]
and a
jr z, .asm_f899
dec [hl]
push de
push hl
ld hl, $d483
call Func_f902
pop hl
pop de
jr .asm_f85b
.asm_f899
ld hl, $d489
ld de, $d483
call Func_f902
ld hl, $d48e
ld de, $c586
call Func_f8bd
ld bc, $0040
ld de, $0080
call Func_f80d
ret
Func_f8b5: ; 0xf8b5
xor a
ld b, $6
.asm_f8b8
ld [hli], a
dec b
jr nz, .asm_f8b8
ret
Func_f8bd: ; 0xf8bd
ld bc, $0c01
.asm_f8c0
ld a, [hl]
swap a
call Func_f8d5
inc de
dec b
ld a, [hld]
call Func_f8d5
inc de
dec b
jr nz, .asm_f8c0
ld a, $86
ld [de], a
inc de
ret
Func_f8d5: ; 0xf8d5
and $f
jr nz, .asm_f8e0
ld a, b
dec a
jr z, .asm_f8e0
ld a, c
and a
ret nz
.asm_f8e0
add $86
ld [de], a
ld c, $0
ld a, b
cp $c
jr z, .asm_f8f5
cp $9
jr z, .asm_f8f5
cp $6
jr z, .asm_f8f5
cp $3
ret nz
.asm_f8f5
push de
ld a, e
add $20
ld e, a
jr nc, .asm_f8fd
inc d
.asm_f8fd
ld a, $82
ld [de], a
pop de
ret
Func_f902: ; 0xf902
ld a, [de]
add [hl]
daa
ld [hli], a
inc de
ld a, [de]
adc [hl]
daa
ld [hli], a
inc de
ld a, [de]
adc [hl]
daa
ld [hli], a
inc de
ld a, [de]
adc [hl]
daa
ld [hli], a
inc de
ld a, [de]
adc [hl]
daa
ld [hli], a
inc de
ld a, [de]
adc [hl]
daa
ld [hli], a
inc de
ret
PointsData_f921: ; 0xf921
bigBCD6 50000
PointsData_f927: ; 0xf927
bigBCD6 75000
PointsData_f92d: ; 0xf92d
bigBCD6 7500
PointsData_f933: ; 0xf933
bigBCD6 5000
PointsData_f939: ; 0xf939
bigBCD6 2500
PointsData_f93f: ; 0xf93f
bigBCD6 1000
Func_f945: ; 0xf945
call Func_f952
call Func_f97a
call Func_f9a2
call Func_f9ca
ret
Func_f952: ; 0xf952
ld de, $c503
ld hl, $302d
call Func_f7b1
ld hl, $c503
ld a, [$d62a]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d62a
ld de, PointsData_f92d
call Func_f853
call Func_f824
ret
Func_f97a: ; 0xf97a
ld de, $c504
ld hl, $303c
call Func_f7b1
ld hl, $c504
ld a, [$d62b]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d62b
ld de, PointsData_f933
call Func_f853
call Func_f824
ret
Func_f9a2: ; 0xf9a2
ld de, $c503
ld hl, $3048
call Func_f7b1
ld hl, $c503
ld a, [$d62c]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d62c
ld de, PointsData_f939
call Func_f853
call Func_f824
ret
Func_f9ca: ; 0xf9ca
ld de, $c501
ld hl, $3057
call Func_f7b1
ld hl, $c501
ld a, [$d62d]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d62d
ld de, PointsData_f93f
call Func_f853
call Func_f824
ret
Func_f9f2: ; 0xf9f2
ret
Func_f9f3: ; 0xf9f3
call Func_fa06
call Func_fa2e
call Func_fa56
call Func_fa7e
call Func_faa6
call Func_face
ret
Func_fa06: ; 0xfa06
ld de, $c504
ld hl, $30c1
call Func_f7b1
ld hl, $c504
ld a, [$d63b]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d63b
ld de, PointsData_f92d
call Func_f853
call Func_f824
ret
Func_fa2e: ; 0xfa2e
ld de, $c504
ld hl, $30ce
call Func_f7b1
ld hl, $c504
ld a, [$d63a]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d63a
ld de, PointsData_f92d
call Func_f853
call Func_f824
ret
Func_fa56: ; 0xfa56
ld de, $c504
ld hl, $30b5
call Func_f7b1
ld hl, $c504
ld a, [$d63d]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d63d
ld de, PointsData_f933
call Func_f853
call Func_f824
ret
Func_fa7e: ; 0xfa7e
ld de, $c504
ld hl, $30a9
call Func_f7b1
ld hl, $c504
ld a, [$d63c]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d63c
ld de, PointsData_f933
call Func_f853
call Func_f824
ret
Func_faa6: ; 0xfaa6
ld de, $c503
ld hl, $3048
call Func_f7b1
ld hl, $c503
ld a, [$d62c]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d62c
ld de, PointsData_f939
call Func_f853
call Func_f824
ret
Func_face: ; 0xface :)
ld de, $c501
ld hl, $3057
call Func_f7b1
ld hl, $c501
ld a, [$d62d]
call Func_f78e
ld bc, $0040
ld de, $0000
call Func_f80d
ld hl, $d62d
ld de, PointsData_f93f
call Func_f853
call Func_f824
ret
Func_faf6: ; 0xfaf6
ret
Func_faf7: ; 0xfaf7
ret
Func_faf8: ; 0xfaf8
ret
INCBIN "baserom.gbc",$faf9,$10000 - $faf9
SECTION "bank4", ROMX, BANK[$4]
Func_10000: ; 0x10000
ld c, a
ld a, [wInSpecialMode]
and a
ret z
ld a, c
ld [$d54c], a
ld a, [wSpecialMode]
cp $1
jp z, Func_10a95
cp $2
jr nz, .asm_10021
ld [$ff8a], a
ld a, Bank(Func_301ce)
ld hl, Func_301ce
call BankSwitch
ret
.asm_10021
ld a, [wCurrentStage]
call CallInFollowingTable
CallTable_10027: ; 0x10027
; STAGE_RED_FIELD_TOP
dw Func_20000
db Bank(Func_20000), $00
; STAGE_RED_FIELD_BOTTOM
dw Func_20000
db Bank(Func_20000), $00
dw Func_20000
db Bank(Func_20000), $00
dw Func_20000
db Bank(Func_20000), $00
; STAGE_BLUE_FIELD_TOP
dw Func_202bc
db Bank(Func_202bc), $00
; STAGE_BLUE_FIELD_BOTTOM
dw Func_202bc
db Bank(Func_202bc), $00
StartCatchEmMode: ; 0x1003f
ld a, [wInSpecialMode] ; current game mode?
and a
ret nz ; don't start catch 'em mode if we're already doing something like Map Move mode
ld a, $1
ld [wInSpecialMode], a ; set special mode flag
xor a
ld [wSpecialMode], 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 GenRandom
and $f
call CheckForMew
ld c, a
ld b, $0
add hl, bc
ld a, [wRareMonsFlag] ; this 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 [wCurrentCatchEmMon], a
ld a, [wCurrentCatchEmMon]
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, [wCurrentCatchEmMon]
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(InitBallSaverForCatchEmMode)
ld hl, InitBallSaverForCatchEmMode
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 ; calls JumpToFuncInTable
CallTable_10124: ; 0x10124
; STAGE_RED_FIELD_TOP
dw Func_10871
; STAGE_RED_FIELD_BOTTOM
dw Func_10871
dw Func_1098a
dw Func_1098a
; STAGE_BLUE_FIELD_TOP
dw Func_1098c
; STAGE_BLUE_FIELD_BOTTOM
dw Func_1098c
CheckForMew:
; Sets the encountered mon to Mew if the following conditions are met:
; 1. Random number in register a equals $f
; 2. The current map is Indigo Plateu (it does a roundabout way of checking this)
; 3. The right alley has been hit three times
; 4. The Mewtwo Bonus Stage completion counter equals 2.
push af
cp $f ; random number equals $f
jr nz, .asm_10155
ld a, c
cp $60 ; check if low-byte of map mons offset is Indigo Plateau
jr nz, .asm_10155
ld a, b
cp $1 ; check if high-byte of map mons offset is Indigo Plateau
jr nz, .asm_10155
ld a, [wRareMonsFlag]
cp $8
jr nz, .asm_10155
ld a, [wNumMewtwoBonusCompletions]
cp $2
jr nz, .asm_10155
pop af
xor a
ld [wNumMewtwoBonusCompletions], a
ld a, $10
ret
.asm_10155
pop af
ret
Func_10157: ; 0x10157
xor a
ld [wInSpecialMode], a
ld [$d5bb], a
ld [$d5c6], a
ld [$d5b6], a
ld [wNumMonHits], a
call Func_10488
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld a, [wCurrentStage]
rst $18 ; calls JumpToFuncInTable
CallTable_10178: ; 0x10178
; STAGE_RED_FIELD_TOP
dw Func_108f5
; STAGE_RED_FIELD_BOTTOM
dw Func_108f5
dw Func_1098b
dw Func_1098b
; STAGE_BLUE_FIELD_TOP
dw Func_109fc
; STAGE_BLUE_FIELD_BOTTOM
dw Func_109fc
Func_10184: ; 0x10184
ld a, [wCurrentStage]
bit 0, a
ret z
ld a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
sla c
rl b
add c
ld c, a
jr nc, .asm_10199
inc b
.asm_10199
ld hl, MonBillboardPicPointers
add hl, bc
ld a, [hli]
ld [$ff8c], a
ld a, [hli]
ld [$ff8d], a
ld a, [hl]
ld [$ff8e], a
ld hl, MonBillboardPaletteMapPointers
add hl, bc
ld a, [hli]
ld [$ff8f], a
ld a, [hli]
ld [$ff90], a
ld a, [hli]
ld [$ff91], a
ld de, wc000
ld hl, $d586
ld c, $0
.asm_101bb
ld a, [hli]
cp [hl]
ld [hli], a
jr z, .asm_101d2
ld b, a
call nz, Func_101d9
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_101d2
ld a, [wCurrentStage]
bit 0, a
ld a, b
call nz, Func_10230
.asm_101d2
inc c
ld a, c
cp $18
jr nz, .asm_101bb
ret
Func_101d9: ; 0x101d9
push bc
push hl
push de
push af
ld a, $10
ld [de], a
inc de
ld a, $1
ld [de], a
inc de
ld b, $0
ld hl, Data_102a4
add hl, bc
ld c, [hl]
sla c
rl b
sla c
rl b
sla c
rl b
sla c
rl b
ld hl, $8900
add hl, bc
ld a, l
ld [de], a
inc de
ld a, h
ld [de], a
inc de
ld a, [$ff8c]
ld l, a
ld a, [$ff8d]
ld h, a
add hl, bc
pop af
and a
jr nz, .asm_10215
ld bc, $0180
add hl, bc
.asm_10215
ld a, l
ld [de], a
inc de
ld a, h
ld [de], a
inc de
ld a, [$ff8e]
ld [de], a
inc de
ld a, $0
ld [de], a
inc de
pop bc
push de
xor a
ld de, $11d2
call Func_10c5
pop de
pop hl
pop bc
ret
Func_10230: ; 0x10230
push bc
push hl
push de
push af
ld a, $1
ld [de], a
inc de
ld [de], a
inc de
ld b, $0
ld hl, Data_102a4
add hl, bc
ld c, [hl]
sla c
ld hl, PointerTable_10274
add hl, bc
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
inc de
srl c
ld a, [$ff8f]
ld l, a
ld a, [$ff90]
ld h, a
add hl, bc
pop af
and a
ld a, [$ff91]
call ReadByteFromBank
jr nz, .asm_10261
ld a, $5
.asm_10261
ld [de], a
inc de
ld a, $0
ld [de], a
inc de
pop bc
push de
xor a
ld de, $118d
call Func_10c5
pop de
pop hl
pop bc
ret
PointerTable_10274: ; 0x10274
dw $9887
dw $9888
dw $9889
dw $988A
dw $988B
dw $988C
dw $98A7
dw $98A8
dw $98A9
dw $98AA
dw $98AB
dw $98AC
dw $98C7
dw $98C8
dw $98C9
dw $98CA
dw $98CB
dw $98CC
dw $98E7
dw $98E8
dw $98E9
dw $98EA
dw $98EB
dw $98EC
Data_102a4: ; 0x102a4
db $00, $07, $06, $01, $0E, $15, $14, $0F, $04, $0B, $0A, $05, $0C, $13, $12, $0D, $02, $09, $08, $03, $10, $17, $16, $11
Func_102bc: ; 0x102bc
ld a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
sla c
rl b
add c
ld c, a
jr nc, .asm_102cb
inc b
.asm_102cb
ld hl, MonBillboardPalettePointers
add hl, bc
ld a, [hli]
ld [$ff8c], a
ld a, [hli]
ld [$ff8d], a
ld a, [hl]
ld [$ff8e], a
ld de, $c1b8
ld a, $10
ld [de], a
inc de
ld a, $8
ld [de], a
inc de
ld a, $30
ld [de], a
inc de
ld a, [$ff8c]
ld [de], a
inc de
ld a, [$ff8d]
ld [de], a
inc de
ld a, [$ff8e]
ld [de], a
inc de
ld a, $0
ld [de], a
xor a
ld bc, $c1b8
ld de, $1266
call Func_10c5
ret
Func_10301: ; 0x10301
ld a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
sla c
rl b
add c
ld c, a
jr nc, .asm_10310
inc b
.asm_10310
ld hl, MonAnimatedPalettePointers
add hl, bc
ld a, [hli]
ld [$ff8c], a
ld a, [hli]
ld [$ff8d], a
ld a, [hl]
ld [$ff8e], a
ld de, $c1b8
ld a, $10
ld [de], a
inc de
ld a, $4
ld [de], a
inc de
ld a, $58
ld [de], a
inc de
ld a, [$ff8c]
ld [de], a
inc de
ld a, [$ff8d]
ld [de], a
inc de
ld a, [$ff8e]
ld [de], a
inc de
ld a, $4
ld [de], a
inc de
ld a, $68
ld [de], a
inc de
ld a, [$ff8c]
ld l, a
ld a, [$ff8d]
ld h, a
ld bc, $0008
add hl, bc
ld a, l
ld [de], a
inc de
ld a, h
ld [de], a
inc de
ld a, [$ff8e]
ld [de], a
inc de
ld a, $0
ld [de], a
xor a
ld bc, $c1b8
ld de, $1266
call Func_10c5
ret
Func_10362: ; 0x10362
ld a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
sla c
rl b
add c
ld c, a
jr nc, .asm_10371
inc b
.asm_10371
ld hl, MonAnimatedPicPointers
add hl, bc
ld a, [hli]
ld [$ff8c], a
ld a, [hli]
ld [$ff8d], a
ld a, [hl]
ld [$ff8e], a
ld de, $c150
ld bc, $0000
.asm_10384
call Func_1038e
inc c
ld a, c
cp $d
jr nz, .asm_10384
ret
Func_1038e: ; 0x1038e
push bc
push de
ld a, c
sla a
add c
ld c, a
sla c
ld hl, Data_103c6
add hl, bc
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
ld a, [$ff8c]
add [hl]
ld [de], a
inc hl
inc de
ld a, [$ff8d]
adc [hl]
ld [de], a
inc de
ld a, [$ff8e]
ld [de], a
inc de
ld a, $0
ld [de], a
inc de
pop bc
push de
xor a
ld de, $11d2
call Func_10c5
pop de
pop bc
ret
Data_103c6: ; 0x103c6
; TODO: this might have pointers in it
db $40, $04, $00, $89, $00, $00
db $40, $04, $40, $89, $40, $00
db $40, $04, $80, $89, $80, $00
db $40, $04, $C0, $89, $C0, $00
db $40, $04, $00, $8A, $00, $01
db $40, $04, $40, $8A, $40, $01
db $20, $02, $80, $8A, $80, $01
db $20, $02, $A0, $81, $A0, $01
db $40, $04, $C0, $81, $C0, $01
db $40, $04, $00, $82, $00, $02
db $40, $04, $40, $82, $40, $02
db $40, $04, $80, $82, $80, $02
db $40, $04, $C0, $82, $C0, $02
Func_10414: ; 0x10414
ld a, $4
ld bc, $4420
ld de, $11b5
call Func_10c5
ret
INCBIN "baserom.gbc",$10420,$10432 - $10420
Func_10432: ; 0x10432
ld a, $4
ld bc, $443e
ld de, LoadTileLists
call Func_10c5
ret
INCBIN "baserom.gbc",$1043e,$10464 - $1043e
Func_10464: ; 0x10464
ld a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
sla c
rl b
add c
ld c, a
jr nc, .noCarry
inc b
.noCarry
ld hl, MonAnimatedCollisionMaskPointers
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, wMonAnimatedCollisionMask
ld bc, $0080
call CopyDataToRAM
ret
Func_10488: ; 0x10488
xor a
ld hl, wMonAnimatedCollisionMask
ld b, $20
.asm_1048e
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
dec b
jr nz, .asm_1048e
ret
Func_10496: ; 0x10496
xor a
ld [$d5c6], a
ld a, $2a
ld hl, $47e0
ld de, $87e0
ld bc, $0020
call LoadVRAMData
ld a, $2a
ld hl, $4800
ld de, $8900
ld bc, $0180
call LoadVRAMData
call LoadShakeBallGfx
ld hl, $45e4
ld de, $d5f4
call CopyHLToDE
ld a, $1
ld [$d5f3], a
xor a
ld [wBallXVelocity], a
ld [wBallXVelocity + 1], a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
xor a
ld [$d548], a
ld [$d549], a
ld de, $000b
call PlaySoundEffect
ret
LoadShakeBallGfx: ; 0x104e2
; Loads the graphics for the ball shaking after a pokemon is caught.
ld a, [wBallType]
cp GREAT_BALL
jr nc, .notPokeball
ld a, Bank(PinballPokeballShakeGfx)
ld hl, PinballPokeballShakeGfx
ld de, $8380
ld bc, $0040
call LoadVRAMData
ret
.notPokeball
cp ULTRA_BALL
jr nc, .notGreatball
ld a, Bank(PinballGreatballShakeGfx)
ld hl, PinballGreatballShakeGfx
ld de, $8380
ld bc, $0040
call LoadVRAMData
ret
.notGreatball
cp MASTER_BALL
jr nc, .notUltraBall
ld a, Bank(PinballUltraballShakeGfx)
ld hl, PinballUltraballShakeGfx
ld de, $8380
ld bc, $0040
call LoadVRAMData
ret
.notUltraBall
ld a, Bank(PinballMasterballShakeGfx)
ld hl, PinballMasterballShakeGfx
ld de, $8380
ld bc, $0040
call LoadVRAMData
ret
Func_1052d: ; 0x1052d
ld a, [$d5f5]
cp $c
jr nz, .asm_10541
ld a, [$d5f4]
cp $1
jr nz, .asm_10541
ld de, $0041
call PlaySoundEffect
.asm_10541
ld hl, $45e4
ld de, $d5f4
call Func_28a9
ld a, [$d5f6]
cp $1
jr nz, .asm_1055d
ld a, [$d5f4]
cp $1
jr nz, .asm_1055d
xor a
ld [$d5bb], a
ret
.asm_1055d
ld a, [$d5f6]
cp $15
ret nz
ld a, [$d5f4]
cp $1
ret nz
call Func_3475
ld de, $0000
call PlaySong
rst $10
ld de, $2329
call PlaySoundEffect
call Func_10825
call Func_3475
ld a, [wNumPartyMons]
and a
call z, Func_10848
ld a, $50
ld [$d4b4], a
ld a, $40
ld [$d4b6], a
ld a, $80
ld [wBallXVelocity], a
xor a
ld [wBallXPos], a
ld [wBallYPos], a
ld [$d5f3], a
ld a, $1
ld [$d548], a
ld [$d549], a
ld [$ff8a], a
ld a, Bank(Func_dc00)
ld hl, Func_dc00
call BankSwitch
call Func_10157
ld de, $0001
call PlaySong
ld hl, $d628
call Func_e4a
jr nc, .asm_105d1
ld c, $a
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
.asm_105d1
call SetPokemonOwnedFlag
ld a, [$d624]
cp $3
ret z
inc a
ld [$d625], a
ld a, $80
ld [$d626], a
ret
INCBIN "baserom.gbc",$105e4,$10611 - $105e4
Func_10611: ; 0x10611
and a
ret z
dec a
sla a
ld c, a
ld b, $0
ld hl, $462a
add hl, bc
ld a, [hli]
ld c, a
ld a, [hl]
ld b, a
ld a, $4
ld de, $11d2
call Func_10c5
ret
INCBIN "baserom.gbc",$1062a,$10648 - $1062a
Func_10648: ; 0x10648
call Func_10184
ld a, [$d54e]
dec a
ld [$d54e], a
jr nz, .asm_10677
ld a, $14
ld [$d54e], a
ld hl, $d586
ld b, $18
.asm_1065e
ld a, [$d54f]
and $1
ld [hli], a
xor $1
ld [hli], a
dec b
jr nz, .asm_1065e
ld a, [$d54f]
dec a
ld [$d54f], a
jr nz, .asm_10677
ld hl, $d54d
inc [hl]
.asm_10677
ret
Func_10678: ; 0x10678
ld a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
ld hl, MonAnimatedSpriteTypes
add hl, bc
ld a, [hl]
ld [$d5bc], a
ld [$d5bd], a
ld a, $1
ld [$d5bb], a
xor a
ld [$d5bf], a
ld [wNumMonHits], a
ret
Func_10696: ; 0x10696
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $29b7
call Func_32aa
ret
Func_106a6: ; 0x106a6
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $29d0
call Func_32aa
ret
Func_106b6: ; 0x106b6
ld a, [wCurrentCatchEmMon]
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 "A"
jr z, .asm_106f1
cp "I"
jr z, .asm_106f1
cp "U"
jr z, .asm_106f1
cp "E"
jr z, .asm_106f1
cp "O"
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
Func_10732: ; 0x10732
ld a, [wCurrentCatchEmMon]
inc a
ld e, a
ld d, $0
call PlayCry
ret
AddCaughtPokemonToParty: ; 0x1073d
ld a, [wNumPartyMons]
ld c, a
ld b, $0
ld hl, wPartyMons
add hl, bc
ld a, [wCurrentCatchEmMon]
ld [hl], a
ld a, [wNumPartyMons]
inc a
ld [wNumPartyMons], a
ret
SetPokemonSeenFlag: ; 0x10753
ld a, [wSpecialMode]
and a
ld a, [wCurrentCatchEmMon]
jr z, .asm_10766
ld a, [wCurrentEvolutionMon]
cp $ff
jr nz, .asm_10766
ld a, [wCurrentCatchEmMon]
.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 SaveData
ret
SetPokemonOwnedFlag: ; 0x1077c
ld a, [wSpecialMode]
and a
ld a, [wCurrentCatchEmMon]
jr z, .asm_1078f
ld a, [wCurrentEvolutionMon]
cp $ff
jr nz, .asm_1078f
ld a, [wCurrentCatchEmMon]
.asm_1078f
ld c, a
ld b, $0
ld hl, wPokedexFlags
add hl, bc
set 1, [hl]
ld hl, wPokedexFlags
ld de, $a10c
ld bc, $0098
call SaveData
ret
Func_107a5: ; 0x107a5
xor a
ld hl, wIndicatorStates
ld b, $13
.asm_107ab
ld [hli], a
dec b
jr nz, .asm_107ab
ret
Func_107b0: ; 0x107b0
xor a
ld [$d604], a
ld [wIndicatorStates + 4], a
ld [$ff8a], a
ld a, Bank(Func_16425)
ld hl, Func_16425
call BankSwitch
ret
Func_107c2: ; 0x107c2
ld a, $1e
ld [$d607], a
ret
Func_107c8: ; 0x107c8
ld a, [wRightAlleyCount]
cp $3
jr z, .asm_107d1
set 7, a
.asm_107d1
ld [wIndicatorStates + 1], a
ld a, [wRightAlleyCount]
cp $2
jr c, .asm_107e0
ld a, $80
ld [wIndicatorStates + 3], a
.asm_107e0
ld a, [wLeftAlleyCount]
set 7, a
ld [wIndicatorStates], a
ret
Func_107e9: ; 0x107e9
ld a, [wLeftAlleyCount]
cp $3
ld a, $4
jr nz, .asm_107f4
ld a, $6
.asm_107f4
ld [$d7ad], a
ret
Func_107f8: ; 0x107f8
ld a, [wTimerFrames]
and a
ret nz
ld a, [wTimerMinutes]
and a
ret nz
ld a, [wTimerSeconds]
cp $20
jr nz, .asm_10810
ld de, $0749
call PlaySoundEffect
ret
.asm_10810
cp $10
jr nz, .asm_1081b
ld de, $0a4a
call PlaySoundEffect
ret
.asm_1081b
cp $5
ret nz
ld de, $0d4b
call PlaySoundEffect
ret
Func_10825: ; 0x10825
call Func_3556
push bc
push de
call Func_351c
call Func_30e8
call Func_30db
ld hl, $d5e9
ld de, $2a50
call Func_3372
pop de
pop bc
ld hl, $d5e4
ld de, $2a43
call Func_3357
ret
Func_10848: ; 0x10848
ld bc, $34fa
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
call Func_30e8
call Func_30db
ld hl, $d5d4
ld de, $2a0c
call Func_32aa
ld hl, $d5cc
ld de, $29e8
call Func_32aa
call Func_3475
ret
Func_10871: ; 0x10871
ld a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
ld hl, EvolutionLineIds
add hl, bc
ld a, [hl] ; a contains evolution line id
ld c, a
ld b, $0
ld l, c
ld h, b
sla l
rl h
sla l
rl h
sla l
rl h
sla l
rl h
add hl, bc
add hl, bc
add hl, bc
ld c, l
ld b, h
ld hl, CatchEmModeInitialIndicatorStates
add hl, bc
ld de, wIndicatorStates
ld b, $13 ; number of indicators
.loop
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .loop
xor a
ld [wRightAlleyCount], a
call Func_107b0
ld a, $4
ld [$d7ad], a
ld de, $0002
call PlaySong
ld a, [wCurrentStage]
bit 0, a
jr nz, .asm_108d3
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_159f4)
ld hl, Func_159f4
call BankSwitch
ret
.asm_108d3
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10184)
ld hl, Func_10184
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_102bc)
ld hl, Func_102bc
call nz, BankSwitch
ret
Func_108f5: ; 0x108f5
call Func_107a5
call Func_107c2
call Func_107c8
call Func_107e9
ld a, [wCurrentStage]
bit 0, a
ret z
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call BankSwitch
call Func_10432
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld a, $36
ld hl, $6c00
ld de, $81a0
ld bc, $0160
call LoadVRAMData
ld a, $36
ld hl, $6de0
ld de, $8380
ld bc, $0020
call LoadVRAMData
ld hl, $4958
ld a, $4
call Func_10aa
ld a, [$d624]
ld [$ff8a], a
ld a, Bank(Func_174d4)
ld hl, Func_174d4
call BankSwitch
ld hl, $497d
ld a, $4
call Func_10aa
ret
INCBIN "baserom.gbc",$10958,$1098a - $10958
Func_1098a: ; 0x1098a
ret
Func_1098b: ; 0x1098b
ret
INCBIN "baserom.gbc",$1098c,$1098c - $1098c
Func_1098c: ; 0x1098c
ld a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
ld hl, EvolutionLineIds
add hl, bc
ld a, [hl]
ld c, a
ld b, $0
ld l, c
ld h, b
sla l
rl h
sla l
rl h
sla l
rl h
sla l
rl h
add hl, bc
add hl, bc
add hl, bc
ld c, l
ld b, h
ld hl, CatchEmModeInitialIndicatorStates
add hl, bc
ld de, wIndicatorStates
ld b, $13 ; number of indicators
.loop
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .loop
xor a
ld [wRightAlleyCount], a
ld [$ff8a], a
ld a, Bank(Func_1f2ed)
ld hl, Func_1f2ed
call BankSwitch
ld de, $0002
call PlaySong
ld a, [wCurrentStage]
bit 0, a
ret z
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call BankSwitch
ld [$ff8a], a
ld a, $4
ld hl, Func_10184
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_102bc)
ld hl, Func_102bc
call nz, BankSwitch
ret
Func_109fc: ; 0x109fc
call Func_107a5
call Func_107c2
ld [$ff8a], a
ld a, Bank(Func_1f2ff)
ld hl, Func_1f2ff
call BankSwitch
ld a, [wCurrentStage]
bit 0, a
ret z
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call BankSwitch
call Func_10432
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld a, $36
ld hl, $6c00
ld de, $81a0
ld bc, $0160
call LoadVRAMData
ld a, $36
ld hl, $6de0
ld de, $8380
ld bc, $0020
call LoadVRAMData
ld hl, $4a63
ld a, $4
call Func_10aa
ld a, [$d624]
ld [$ff8a], a
ld a, Bank(Func_174d4)
ld hl, Func_174d4
call BankSwitch
ld hl, $4a88
ld a, $4
call Func_10aa
ret
INCBIN "baserom.gbc",$10a63,$10a95 - $10a63
Func_10a95: ; 0x19a95
ld a, [wCurrentStage]
call CallInFollowingTable
PointerTable_10a9b: ; 0x10a9b
; STAGE_RED_FIELD_TOP
dw Func_20581
db Bank(Func_20581), $00
; STAGE_RED_FIELD_BOTTOM
dw Func_20581
db Bank(Func_20581), $00
dw Func_20581
db Bank(Func_20581), $00
dw Func_20581
db Bank(Func_20581), $00
; STAGE_BLUE_FIELD_TOP
dw Func_20bae
db Bank(Func_20bae), $00
; STAGE_BLUE_FIELD_BOTTOM
dw Func_20bae
db Bank(Func_20bae), $00
Func_10ab3: ; 0x10ab3
ld a, [wInSpecialMode]
and a
ret nz
ld a, [wCurrentStage]
rst $18 ; calls JumpToFuncInTable
CallTable_10abc: ; 0x10abc
; STAGE_RED_FIELD_TOP
dw Func_10ebb
; STAGE_RED_FIELD_BOTTOM
dw Func_10ebb
dw Func_11054
dw Func_11054
; STAGE_BLUE_FIELD_TOP
dw Func_11061
; STAGE_BLUE_FIELD_BOTTOM
dw Func_11061
Func_10ac8: ; 0x10ac8
xor a
ld [$d5ca], a
call Func_30e8
xor a
ld [wInSpecialMode], a
ld [$d5bb], a
ld [$d5b6], a
ld [wNumMonHits], a
ld [$d551], a
ld [$d554], a
call Func_10488
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld a, [wCurrentStage]
rst $18 ; calls JumpToFuncInTable
CallTable_10af3: ; 0x10af3
; STAGE_RED_FIELD_TOP
dw Func_10fe3
; STAGE_RED_FIELD_BOTTOM
dw Func_10fe3
dw Func_11060
dw Func_11060
; STAGE_BLUE_FIELD_TOP
dw Func_11195
; STAGE_BLUE_FIELD_TOP
dw Func_11195
Func_10aff: ; 0x10aff
ld a, [wCurrentStage]
res 0, a
ld c, a
ld b, $0
srl c
sla a
sla a
sla a
sub c
ld c, a
ld hl, VideoData_10b2a
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hli]
push af
push bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
pop hl
pop af
call LoadVRAMData
ret
VideoData_10b2a: ; 0x10b2a
dwb $7A00, $25
dw $8900
dw $E0
dwb $7A00, $25
dw $8900
dw $E0
dwb $7A00, $25
dw $8900
dw $E0
Func_10b3f: ; 0x10b3f
call Func_30e8
call Func_30db
ld hl, $d5cc
ld a, [wCurrentEvolutionType]
cp EVO_EXPERIENCE
ld de, $2aa9
jr z, .asm_10b55
ld de, $2abf
.asm_10b55
call Func_32aa
ret
Func_10b59: ; 0x10b59
xor a
ld [$d4aa], a
ld hl, wcBottomMessageText
ld a, $81
ld b, $30
.asm_10b64
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
dec b
jr nz, .asm_10b64
ld hl, wPartyMons
call Func_10b8e
ld a, $35
ld hl, $6450
ld de, $8880
ld bc, $0030
call LoadVRAMData
ld a, $0
ld hl, wcBottomMessageText
ld de, $9c00
ld bc, $00c0
call LoadVRAMData
ret
Func_10b8e: ; 0x10b8e
ld a, [wNumPartyMons]
ld c, $0
ld b, a
.asm_10b94
ld a, [hli]
call Func_10ba2
inc c
ld a, c
cp $6
jr z, .asm_10ba1
dec b
jr nz, .asm_10b94
.asm_10ba1
ret
Func_10ba2: ; 0x10ba2
push bc
push hl
swap c
sla c
ld b, $0
ld hl, wcBottomMessageText
add hl, bc
ld d, h
ld e, l
ld c, a
ld b, $0
sla c
rl b
sla c
rl b
sla c
rl b
sla c
rl b
ld hl, PokemonNames
add hl, bc
ld a, $81
ld [de], a
inc de
ld a, $81
ld [de], a
inc de
ld a, $81
ld [de], a
inc de
ld a, $81
ld [de], a
inc de
call Func_3125
.asm_10bda
ld a, e
and $1f
cp $14
jr nc, .asm_10be7
ld a, $81
ld [de], a
inc de
jr .asm_10bda
.asm_10be7
pop hl
pop bc
ret
Func_10bea: ; 0x10bea
xor a
ld [$d461], a
ld [$d462], a
ld [$d463], a
.asm_10bf4
call Func_10c0c
call Func_b2e
call Func_10c38
rst $10
ld a, [$d809]
bit 0, a
jr z, .asm_10bf4
ld de, $0001
call PlaySoundEffect
ret
Func_10c0c: ; 0x10c0c
ld a, [$d80a]
ld b, a
ld a, [wNumPartyMons]
ld c, a
ld a, [$d461]
bit 6, b
jr z, .asm_10c28
and a
ret z
dec a
ld [$d461], a
ld de, $0003
call PlaySoundEffect
ret
.asm_10c28
bit 7, b
ret z
inc a
cp c
ret z
ld [$d461], a
ld de, $0003
call PlaySoundEffect
ret
Func_10c38: ; 0x10c38
ld a, [$d461]
ld hl, $d462
sub [hl]
jr nc, .asm_10c45
dec [hl]
xor a
jr .asm_10c4c
.asm_10c45
cp $6
jr c, .asm_10c4c
inc [hl]
ld a, $5
.asm_10c4c
ld c, a
push bc
ld a, [hl]
ld c, a
ld b, $0
ld hl, wPartyMons
add hl, bc
call Func_10b8e
ld a, [hJoypadState]
and a
ld a, [$d463]
jr z, .asm_10c62
xor a
.asm_10c62
inc a
ld [$d463], a
bit 3, a
pop bc
jr nz, .asm_10c78
swap c
sla c
ld b, $0
ld hl, $c503
add hl, bc
ld a, $88
ld [hl], a
.asm_10c78
ld a, [$d462]
and a
jr z, .asm_10c83
ld a, $8a
ld [$c511], a
.asm_10c83
ld a, [$d462]
add $7
jr z, .asm_10c96
ld c, a
ld a, [wNumPartyMons]
cp c
jr c, .asm_10c96
ld a, $89
ld [$c5b1], a
.asm_10c96
ld a, $0
ld hl, wcBottomMessageText
ld de, $9c00
ld bc, $00c0
call LoadVRAMData
ret
Func_10ca5: ; 0x10ca5
ld a, [$d461]
ld c, a
ld b, $0
ld hl, wPartyMons
add hl, bc
ld a, [wCurrentEvolutionMon]
cp $ff
ret z
ld [hl], a
ret
Func_10cb7: ; 0x10cb7
call Func_30e8
call Func_10b59
ld a, $60
ld [$ffa6], a
dec a
ld [$ffa2], a
ld a, $fd
ld [$ffaf], a
call Func_10bea
ld a, $86
ld [$ffa6], a
ld a, $83
ld [$ffa2], a
ld [$ffa8], a
ld a, $ff
ld [$ffaf], a
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_10cee
ld a, $18
ld hl, $7080
ld de, $8880
ld bc, $0030
call LoadVRAMData
jr .asm_10cfc
.asm_10cee
ld a, $27
ld hl, $4080
ld de, $8880
ld bc, $0030
call LoadVRAMData
.asm_10cfc
call Func_30e8
ld a, $1
ld [$d4aa], a
ld [wInSpecialMode], a
ld [wSpecialMode], a
xor a
ld [$d54d], a
ld a, [$d461]
ld c, a
ld b, $0
ld hl, wPartyMons
add hl, bc
ld a, [hl]
ld [wCurrentCatchEmMon], a
ret
Func_10d1d: ; 0x10d1d
ld hl, $d586
ld b, $18
.asm_10d22
ld a, $1
ld [hli], a
xor a
ld [hli], a
dec b
jr nz, .asm_10d22
ld a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
ld hl, Data_1298b
add hl, bc
ld a, [hl]
add $2
ld [$d555], a
xor a
ld hl, $d566
ld b, $13
.asm_10d40
ld [hli], a
dec b
jr nz, .asm_10d40
ld a, [wCurrentCatchEmMon]
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 a, [wCurrentCatchEmMon]
ld c, a
ld b, $0
sla c ; multiply mon id by 6
rl b
add c
ld c, a
jr nc, .noCarry
inc b
.noCarry
sla c
rl b
ld hl, MonEvolutions
add hl, bc
push hl
ld bc, $03ff
.countMonEvolutionsLoop
ld a, [hli]
and a
jr z, .noEvolution
inc c
.noEvolution
inc hl
dec b
jr nz, .countMonEvolutionsLoop
ld a, c
cp $ff
jr nz, .asm_10d8a
xor a
.asm_10d8a
call Func_a21
sla a
ld c, a
pop hl
add hl, bc ; hl points to one of three entries in mon's evolution data
ld a, [hli] ; a = mon id of evolution
dec a
ld [wCurrentEvolutionMon], a
ld a, [hl] ; a = evoluion type id
ld [wCurrentEvolutionType], a
xor a
ld [$d554], a
ld [$d556], a
ld [$d557], a
ld hl, $d55c
ld a, $1
ld b, $3
.asm_10dac
ld [hli], a
dec b
jr nz, .asm_10dac
xor a
ld b, $7
.asm_10db3
ld [hli], a
dec b
jr nz, .asm_10db3
ld de, $d55c
ld a, [$d555]
ld c, a
inc a
ld b, a
.asm_10dc0
push bc
ld a, c
call Func_a21
ld c, a
ld b, $0
ld hl, $d55c
add hl, bc
ld c, [hl]
ld a, [de]
ld [hl], a
ld a, c
ld [de], a
pop bc
inc de
dec b
jr nz, .asm_10dc0
ld [$ff8a], a
ld a, Bank(InitBallSaverForCatchEmMode)
ld hl, InitBallSaverForCatchEmMode
call BankSwitch
call Func_10b3f
call Func_3579
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_10e09
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_10e09
ret
Func_10e0a: ; 0x10e0a
ld a, [wCurrentEvolutionMon]
cp $ff
jp z, Func_10e8b
ld c, a
ld b, $0
sla c
rl b
sla c
rl b
sla c
rl b
sla c
rl b
ld hl, PokemonNames + 1
add hl, bc
ld de, $2b02 ; "It evolved into an"
ld bc, $2b34
ld a, [hl]
; check if mon's name starts with a vowel, so it can print "an", instead of "a"
cp "A"
jr z, .nameStartsWithVowel
cp "I"
jr z, .nameStartsWithVowel
cp "U"
jr z, .nameStartsWithVowel
cp "E"
jr z, .nameStartsWithVowel
cp "O"
jr z, .nameStartsWithVowel
ld de, $2ae9 ; "It evolved into a"
ld bc, $2b1c
.nameStartsWithVowel
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
.asm_10e67
ld a, [hli]
and a
jr z, .asm_10e70
ld [de], a
inc de
inc b
jr .asm_10e67
.asm_10e70
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
Func_10e8b: ; 0x10e8b
ld bc, $34e8
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld bc, $0100
ld de, $0000
push bc
push de
call Func_30e8
call Func_30db
ld hl, $d5d4
ld de, $2b6b
call Func_32cc
pop de
pop bc
ld hl, $d5cc
ld de, $2b4c
call Func_32aa
ret
Func_10ebb: ; 0x10ebb
ld a, [wNumPartyMons]
and a
ret z
call Func_10cb7
call Func_10d1d
ld a, [$d555]
sub $2
ld c, a
sla c
ld hl, IndicatorStatesPointerTable_10f3b
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld de, wIndicatorStates
ld b, $13
.asm_10eda
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .asm_10eda
xor a
ld [wLeftAlleyCount], a
call Func_107b0
ld a, $2
ld [$d7ad], a
ld de, $0002
call PlaySong
call SetPokemonSeenFlag
ld a, [wCurrentStage]
bit 0, a
jr nz, .asm_10f0b
ld a, $36
ld hl, $7e80
ld de, $8900
ld bc, $00e0
call Func_735
ret
.asm_10f0b
ld a, $36
ld hl, $7e80
ld de, $8200
ld bc, $00e0
call Func_735
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10184)
ld hl, Func_10184
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_102bc)
ld hl, Func_102bc
call nz, BankSwitch
ret
IndicatorStatesPointerTable_10f3b: ; 0x10f3b
dw IndicatorStates_10f4b
dw IndicatorStates_10f5e
dw IndicatorStates_10f71
dw IndicatorStates_10f84
dw IndicatorStates_10f97
dw IndicatorStates_10faa
dw IndicatorStates_10fbd
dw IndicatorStates_10fd0
IndicatorStates_10f4b: ; 0x10f4b
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00
IndicatorStates_10f5e: ; 0x10f5e
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00
IndicatorStates_10f71: ; 0x10f71
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_10f84: ; 0x10f84
db $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_10f97: ; 0x10f97
db $00, $00, $00, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_10faa: ; 0x10faa
db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_10fbd: ; 0x10fbd
db $00, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_10fd0: ; 0x10fd0
db $00, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
Func_10fe3: ; 0x10fe3
call Func_107a5
call Func_107c2
call Func_107c8
call Func_107e9
ld a, [wCurrentStage]
bit 0, a
jp z, Func_10aff
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_16425)
ld hl, Func_16425
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld a, $36
ld hl, $6c60
ld de, $8200
ld bc, $00e0
call LoadVRAMData
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_11036
ld a, $37
ld hl, $4af8
ld de, $0078
ld bc, $0008
call Func_7dc
.asm_11036
ld hl, $4958
ld a, $4
call Func_10aa
ld a, [$d624]
ld [$ff8a], a
ld a, Bank(Func_174d4)
ld hl, Func_174d4
call BankSwitch
ld hl, $497d
ld a, $4
call Func_10aa
ret
Func_11054: ; 0x11054
ld a, [wNumPartyMons]
and a
ret z
call Func_10cb7
call Func_10d1d
ret
Func_11060: ; 0x11060
ret
Func_11061: ; 0x11061
ld a, [wNumPartyMons]
and a
ret z
call Func_10cb7
call Func_10d1d
ld a, $1
ld [$d643], a
ld a, [$d555]
sub $2
ld c, a
sla c
ld hl, IndicatorStatesPointerTable_110ed
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld de, wIndicatorStates
ld b, $13
.asm_11085
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .asm_11085
xor a
ld [wLeftAlleyCount], a
ld [$ff8a], a
ld a, Bank(Func_1f2ed)
ld hl, Func_1f2ed
call BankSwitch
ld a, $2
ld [$d7ad], a
ld de, $0002
call PlaySong
call SetPokemonSeenFlag
ld a, [wCurrentStage]
bit 0, a
jr nz, .asm_110bd
ld a, $36
ld hl, $7e80
ld de, $8600
ld bc, $00e0
call Func_735
ret
.asm_110bd
ld a, $36
ld hl, $7e80
ld de, $8200
ld bc, $00e0
call Func_735
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10184)
ld hl, Func_10184
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_102bc)
ld hl, Func_102bc
call nz, BankSwitch
ret
IndicatorStatesPointerTable_110ed: ; 0x110ed
dw IndicatorStates_110fd
dw IndicatorStates_11110
dw IndicatorStates_11123
dw IndicatorStates_11136
dw IndicatorStates_11149
dw IndicatorStates_1115c
dw IndicatorStates_1116f
dw IndicatorStates_11182
IndicatorStates_110fd: ; 0x110fd
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00
IndicatorStates_11110: ; 0x11110
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00
IndicatorStates_11123: ; 0x11123
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_11136: ; 0x11136
db $00, $00, $80, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_11149: ; 0x11149
db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_1115c: ; 0x1115c
db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_1116f: ; 0x1116f
db $80, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
IndicatorStates_11182: ; 0x11182
db $80, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
Func_11195: ; 0x11195
xor a
ld [$d643], a
call Func_107a5
call Func_107c2
ld [$ff8a], a
ld a, Bank(Func_1f2ff)
ld hl, Func_1f2ff
call BankSwitch
ld a, [wCurrentStage]
bit 0, a
jp z, Func_1120e
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_1e8f6)
ld hl, Func_1e8f6
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld a, $36
ld hl, $6c60
ld de, $8200
ld bc, $00e0
call LoadVRAMData
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_111f0
ld a, $37
ld hl, $4bf8
ld de, $0078
ld bc, $0008
call Func_7dc
.asm_111f0
ld hl, $4a63
ld a, $4
call Func_10aa
ld a, [$d624]
ld [$ff8a], a
ld a, Bank(Func_174d4)
ld hl, Func_174d4
call BankSwitch
ld hl, $4a88
ld a, $4
call Func_10aa
ret
Func_1120e: ; 0x1120e
ld a, [wCurrentStage]
sub $4
res 0, a
ld c, a
ld b, $0
srl c
sla a
sla a
sla a
sub c
ld c, a
ld hl, VRAMData_1123b
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hli]
push af
push bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
pop hl
pop af
call LoadVRAMData
ret
VRAMData_1123b: ; 0x1123b
dwb $6600, $35
dw $8600, $E0
dwb $6600, $35
dw $8600, $E0
dwb $6600, $35
dw $8600, $E0
dwb $6600, $35
dw $8600, $E0
dwb $6600, $35
dw $8600, $E0
dwb $6600, $35
dw $8600, $E0
dwb $6600, $35
dw $8600, $E0
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"
MonEvolutions: ; 0x116b3
; Lists the possible evolution types for each pokemon
; Each pokemon has three entries becuase Eevee has three
; evolution possibilities.
; BULBASAUR
db IVYSAUR, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; IVYSAUR
db VENUSAUR, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; VENUSAUR
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; CHARMANDER
db CHARMELEON, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; CHARMELEON
db CHARIZARD, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; CHARIZARD
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SQUIRTLE
db WARTORTLE, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; WARTORTLE
db BLASTOISE, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; BLASTOISE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; CATERPIE
db METAPOD, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; METAPOD
db BUTTERFREE, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; BUTTERFREE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; WEEDLE
db KAKUNA, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; KAKUNA
db BEEDRILL, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; BEEDRILL
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PIDGEY
db PIDGEOTTO, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PIDGEOTTO
db PIDGEOT, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PIDGEOT
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; RATTATA
db RATICATE, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; RATICATE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SPEAROW
db FEAROW, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; FEAROW
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; EKANS
db ARBOK, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ARBOK
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PIKACHU
db RAICHU, EVO_THUNDER_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; RAICHU
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SANDSHREW
db SANDSLASH, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SANDSLASH
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; NIDORAN_F
db NIDORINA, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; NIDORINA
db NIDOQUEEN, EVO_MOON_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; NIDOQUEEN
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; NIDORAN_M
db NIDORINO, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; NIDORINO
db NIDOKING, EVO_MOON_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; NIDOKING
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; CLEFAIRY
db CLEFABLE, EVO_MOON_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; CLEFABLE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; VULPIX
db NINETALES, EVO_FIRE_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; NINETALES
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; JIGGLYPUFF
db WIGGLYTUFF, EVO_MOON_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; WIGGLYTUFF
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ZUBAT
db GOLBAT, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GOLBAT
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ODDISH
db GLOOM, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GLOOM
db VILEPLUME, EVO_LEAF_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; VILEPLUME
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PARAS
db PARASECT, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PARASECT
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; VENONAT
db VENOMOTH, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; VENOMOTH
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DIGLETT
db DUGTRIO, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DUGTRIO
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MEOWTH
db PERSIAN, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PERSIAN
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PSYDUCK
db GOLDUCK, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GOLDUCK
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MANKEY
db PRIMEAPE, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PRIMEAPE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GROWLITHE
db ARCANINE, EVO_FIRE_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ARCANINE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; POLIWAG
db POLIWHIRL, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; POLIWHIRL
db POLIWRATH, EVO_WATER_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; POLIWRATH
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ABRA
db KADABRA, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; KADABRA
db ALAKAZAM, EVO_LINK_CABLE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ALAKAZAM
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MACHOP
db MACHOKE, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MACHOKE
db MACHAMP, EVO_LINK_CABLE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MACHAMP
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; BELLSPROUT
db WEEPINBELL, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; WEEPINBELL
db VICTREEBEL, EVO_LEAF_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; VICTREEBEL
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; TENTACOOL
db TENTACRUEL, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; TENTACRUEL
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GEODUDE
db GRAVELER, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GRAVELER
db GOLEM, EVO_LINK_CABLE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GOLEM
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PONYTA
db RAPIDASH, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; RAPIDASH
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SLOWPOKE
db SLOWBRO, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SLOWBRO
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MAGNEMITE
db MAGNETON, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MAGNETON
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; FARFETCH_D
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DODUO
db DODRIO, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DODRIO
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SEEL
db DEWGONG, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DEWGONG
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GRIMER
db MUK, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MUK
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SHELLDER
db CLOYSTER, EVO_WATER_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; CLOYSTER
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GASTLY
db HAUNTER, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; HAUNTER
db GENGAR, EVO_LINK_CABLE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GENGAR
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ONIX
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DROWZEE
db HYPNO, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; HYPNO
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; KRABBY
db KINGLER, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; KINGLER
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; VOLTORB
db ELECTRODE, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ELECTRODE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; EXEGGCUTE
db EXEGGUTOR, EVO_LEAF_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; EXEGGUTOR
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; CUBONE
db MAROWAK, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MAROWAK
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; HITMONLEE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; HITMONCHAN
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; LICKITUNG
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; KOFFING
db WEEZING, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; WEEZING
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; RHYHORN
db RHYDON, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; RHYDON
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; CHANSEY
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; TANGELA
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; KANGASKHAN
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; HORSEA
db SEADRA, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SEADRA
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GOLDEEN
db SEAKING, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SEAKING
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; STARYU
db STARMIE, EVO_WATER_STONE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; STARMIE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MR_MIME
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SCYTHER
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; JYNX
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ELECTABUZZ
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MAGMAR
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PINSIR
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; TAUROS
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MAGIKARP
db GYARADOS, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; GYARADOS
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; LAPRAS
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DITTO
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; EEVEE
db VAPOREON, EVO_WATER_STONE
db JOLTEON, EVO_THUNDER_STONE
db FLAREON, EVO_FIRE_STONE
; VAPOREON
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; JOLTEON
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; FLAREON
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; PORYGON
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; OMANYTE
db OMASTAR, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; OMASTAR
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; KABUTO
db KABUTOPS, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; KABUTOPS
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; AERODACTYL
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; SNORLAX
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ARTICUNO
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; ZAPDOS
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MOLTRES
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DRATINI
db DRAGONAIR, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DRAGONAIR
db DRAGONITE, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; DRAGONITE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MEWTWO
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
; MEW
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
db $00, EVO_EXPERIENCE
INCLUDE "data/mon_names.asm"
CatchEmModeInitialIndicatorStates: ; 0x123ae
; Initial states for the indicators when starting Catch Em mode.
; For some reason, each pokemon evolution line has its own entry, but
; they're all exactly the same.
; See wIndicatorStates, for a description of indicators.
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_BULBASAUR
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CHARMANDER
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SQUIRTLE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CATERPIE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_WEEDLE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PIDGEY
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_RATTATA
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SPEAROW
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EKANS
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PIKACHU
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SANDSHREW
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_NIDORAN_F
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_NIDORAN_M
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CLEFAIRY
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VULPIX
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_JIGGLYPUFF
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ZUBAT
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ODDISH
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PARAS
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VENONAT
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DIGLETT
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEOWTH
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PSYDUCK
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MANKEY
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GROWLITHE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_POLIWAG
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ABRA
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MACHOP
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_BELLSPROUT
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TENTACOOL
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GEODUDE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PONYTA
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SLOWPOKE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGNEMITE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_FARFETCH_D
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DODUO
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SEEL
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GRIMER
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SHELLDER
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GASTLY
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ONIX
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DROWZEE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KRABBY
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VOLTORB
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EXEGGCUTE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CUBONE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HITMONLEE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HITMONCHAN
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_LICKITUNG
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KOFFING
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_RHYHORN
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CHANSEY
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TANGELA
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KANGASKHAN
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HORSEA
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GOLDEEN
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_STARYU
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MR_MIME
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SCYTHER
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_JYNX
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ELECTABUZZ
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGMAR
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PINSIR
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TAUROS
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGIKARP
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_LAPRAS
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DITTO
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EEVEE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PORYGON
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_OMANYTE
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KABUTO
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_AERODACTYL
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SNORLAX
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ARTICUNO
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ZAPDOS
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MOLTRES
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DRATINI
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEWTWO
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEW
Data_1298b: ; 0x1298b
db $01 ; BULBASAUR
db $02 ; IVYSAUR
db $03 ; VENUSAUR
db $01 ; CHARMANDER
db $02 ; CHARMELEON
db $03 ; CHARIZARD
db $01 ; SQUIRTLE
db $02 ; WARTORTLE
db $03 ; BLASTOISE
db $01 ; CATERPIE
db $02 ; METAPOD
db $03 ; BUTTERFREE
db $01 ; WEEDLE
db $02 ; KAKUNA
db $03 ; BEEDRILL
db $01 ; PIDGEY
db $02 ; PIDGEOTTO
db $03 ; PIDGEOT
db $01 ; RATTATA
db $03 ; RATICATE
db $01 ; SPEAROW
db $03 ; FEAROW
db $01 ; EKANS
db $03 ; ARBOK
db $01 ; PIKACHU
db $03 ; RAICHU
db $01 ; SANDSHREW
db $03 ; SANDSLASH
db $01 ; NIDORAN_F
db $02 ; NIDORINA
db $04 ; NIDOQUEEN
db $01 ; NIDORAN_M
db $02 ; NIDORINO
db $04 ; NIDOKING
db $02 ; CLEFAIRY
db $03 ; CLEFABLE
db $02 ; VULPIX
db $03 ; NINETALES
db $02 ; JIGGLYPUFF
db $03 ; WIGGLYTUFF
db $02 ; ZUBAT
db $03 ; GOLBAT
db $01 ; ODDISH
db $02 ; GLOOM
db $04 ; VILEPLUME
db $02 ; PARAS
db $03 ; PARASECT
db $02 ; VENONAT
db $03 ; VENOMOTH
db $02 ; DIGLETT
db $03 ; DUGTRIO
db $02 ; MEOWTH
db $03 ; PERSIAN
db $02 ; PSYDUCK
db $03 ; GOLDUCK
db $02 ; MANKEY
db $03 ; PRIMEAPE
db $02 ; GROWLITHE
db $03 ; ARCANINE
db $01 ; POLIWAG
db $02 ; POLIWHIRL
db $04 ; POLIWRATH
db $01 ; ABRA
db $02 ; KADABRA
db $04 ; ALAKAZAM
db $01 ; MACHOP
db $02 ; MACHOKE
db $04 ; MACHAMP
db $01 ; BELLSPROUT
db $02 ; WEEPINBELL
db $04 ; VICTREEBEL
db $02 ; TENTACOOL
db $03 ; TENTACRUEL
db $01 ; GEODUDE
db $02 ; GRAVELER
db $04 ; GOLEM
db $02 ; PONYTA
db $03 ; RAPIDASH
db $02 ; SLOWPOKE
db $03 ; SLOWBRO
db $02 ; MAGNEMITE
db $03 ; MAGNETON
db $04 ; FARFETCH_D
db $02 ; DODUO
db $03 ; DODRIO
db $02 ; SEEL
db $03 ; DEWGONG
db $02 ; GRIMER
db $03 ; MUK
db $02 ; SHELLDER
db $03 ; CLOYSTER
db $01 ; GASTLY
db $02 ; HAUNTER
db $04 ; GENGAR
db $04 ; ONIX
db $02 ; DROWZEE
db $03 ; HYPNO
db $02 ; KRABBY
db $03 ; KINGLER
db $02 ; VOLTORB
db $03 ; ELECTRODE
db $02 ; EXEGGCUTE
db $03 ; EXEGGUTOR
db $02 ; CUBONE
db $03 ; MAROWAK
db $04 ; HITMONLEE
db $04 ; HITMONCHAN
db $04 ; LICKITUNG
db $02 ; KOFFING
db $03 ; WEEZING
db $02 ; RHYHORN
db $03 ; RHYDON
db $04 ; CHANSEY
db $04 ; TANGELA
db $04 ; KANGASKHAN
db $04 ; HORSEA
db $04 ; SEADRA
db $02 ; GOLDEEN
db $03 ; SEAKING
db $02 ; STARYU
db $03 ; STARMIE
db $04 ; MR_MIME
db $04 ; SCYTHER
db $04 ; JYNX
db $04 ; ELECTABUZZ
db $04 ; MAGMAR
db $04 ; PINSIR
db $04 ; TAUROS
db $02 ; MAGIKARP
db $03 ; GYARADOS
db $04 ; LAPRAS
db $04 ; DITTO
db $02 ; EEVEE
db $03 ; VAPOREON
db $03 ; JOLTEON
db $03 ; FLAREON
db $04 ; PORYGON
db $02 ; OMANYTE
db $03 ; OMASTAR
db $02 ; KABUTO
db $03 ; KABUTOPS
db $04 ; AERODACTYL
db $04 ; SNORLAX
db $04 ; ARTICUNO
db $04 ; ZAPDOS
db $04 ; MOLTRES
db $01 ; DRATINI
db $02 ; DRAGONAIR
db $04 ; DRAGONITE
db $04 ; MEWTWO
db $06 ; MEW
INCLUDE "data/catchem_timer_values.asm"
MonBillboardPicPointers: ; 0x12b50
dwb BulbasaurPic, Bank(BulbasaurPic)
dwb IvysaurPic, Bank(IvysaurPic)
dwb VenusaurPic, Bank(VenusaurPic)
dwb CharmanderPic, Bank(CharmanderPic)
dwb CharmeleonPic, Bank(CharmeleonPic)
dwb CharizardPic, Bank(CharizardPic)
dwb SquirtlePic, Bank(SquirtlePic)
dwb WartortlePic, Bank(WartortlePic)
dwb BlastoisePic, Bank(BlastoisePic)
dwb CaterpiePic, Bank(CaterpiePic)
dwb MetapodPic, Bank(MetapodPic)
dwb ButterfreePic, Bank(ButterfreePic)
dwb WeedlePic, Bank(WeedlePic)
dwb KakunaPic, Bank(KakunaPic)
dwb BeedrillPic, Bank(BeedrillPic)
dwb PidgeyPic, Bank(PidgeyPic)
dwb PidgeottoPic, Bank(PidgeottoPic)
dwb PidgeotPic, Bank(PidgeotPic)
dwb RattataPic, Bank(RattataPic)
dwb RaticatePic, Bank(RaticatePic)
dwb SpearowPic, Bank(SpearowPic)
dwb FearowPic, Bank(FearowPic)
dwb EkansPic, Bank(EkansPic)
dwb ArbokPic, Bank(ArbokPic)
dwb PikachuPic, Bank(PikachuPic)
dwb RaichuPic, Bank(RaichuPic)
dwb SandshrewPic, Bank(SandshrewPic)
dwb SandslashPic, Bank(SandslashPic)
dwb Nidoran_FPic, Bank(Nidoran_FPic)
dwb NidorinaPic, Bank(NidorinaPic)
dwb NidoqueenPic, Bank(NidoqueenPic)
dwb Nidoran_MPic, Bank(Nidoran_MPic)
dwb NidorinoPic, Bank(NidorinoPic)
dwb NidokingPic, Bank(NidokingPic)
dwb ClefairyPic, Bank(ClefairyPic)
dwb ClefablePic, Bank(ClefablePic)
dwb VulpixPic, Bank(VulpixPic)
dwb NinetalesPic, Bank(NinetalesPic)
dwb JigglypuffPic, Bank(JigglypuffPic)
dwb WigglytuffPic, Bank(WigglytuffPic)
dwb ZubatPic, Bank(ZubatPic)
dwb GolbatPic, Bank(GolbatPic)
dwb OddishPic, Bank(OddishPic)
dwb GloomPic, Bank(GloomPic)
dwb VileplumePic, Bank(VileplumePic)
dwb ParasPic, Bank(ParasPic)
dwb ParasectPic, Bank(ParasectPic)
dwb VenonatPic, Bank(VenonatPic)
dwb VenomothPic, Bank(VenomothPic)
dwb DiglettPic, Bank(DiglettPic)
dwb DugtrioPic, Bank(DugtrioPic)
dwb MeowthPic, Bank(MeowthPic)
dwb PersianPic, Bank(PersianPic)
dwb PsyduckPic, Bank(PsyduckPic)
dwb GolduckPic, Bank(GolduckPic)
dwb MankeyPic, Bank(MankeyPic)
dwb PrimeapePic, Bank(PrimeapePic)
dwb GrowlithePic, Bank(GrowlithePic)
dwb ArcaninePic, Bank(ArcaninePic)
dwb PoliwagPic, Bank(PoliwagPic)
dwb PoliwhirlPic, Bank(PoliwhirlPic)
dwb PoliwrathPic, Bank(PoliwrathPic)
dwb AbraPic, Bank(AbraPic)
dwb KadabraPic, Bank(KadabraPic)
dwb AlakazamPic, Bank(AlakazamPic)
dwb MachopPic, Bank(MachopPic)
dwb MachokePic, Bank(MachokePic)
dwb MachampPic, Bank(MachampPic)
dwb BellsproutPic, Bank(BellsproutPic)
dwb WeepinbellPic, Bank(WeepinbellPic)
dwb VictreebellPic, Bank(VictreebellPic)
dwb TentacoolPic, Bank(TentacoolPic)
dwb TentacruelPic, Bank(TentacruelPic)
dwb GeodudePic, Bank(GeodudePic)
dwb GravelerPic, Bank(GravelerPic)
dwb GolemPic, Bank(GolemPic)
dwb PonytaPic, Bank(PonytaPic)
dwb RapidashPic, Bank(RapidashPic)
dwb SlowpokePic, Bank(SlowpokePic)
dwb SlowbroPic, Bank(SlowbroPic)
dwb MagnemitePic, Bank(MagnemitePic)
dwb MagnetonPic, Bank(MagnetonPic)
dwb Farfetch_dPic, Bank(Farfetch_dPic)
dwb DoduoPic, Bank(DoduoPic)
dwb DodrioPic, Bank(DodrioPic)
dwb SeelPic, Bank(SeelPic)
dwb DewgongPic, Bank(DewgongPic)
dwb GrimerPic, Bank(GrimerPic)
dwb MukPic, Bank(MukPic)
dwb ShellderPic, Bank(ShellderPic)
dwb CloysterPic, Bank(CloysterPic)
dwb GastlyPic, Bank(GastlyPic)
dwb HaunterPic, Bank(HaunterPic)
dwb GengarPic, Bank(GengarPic)
dwb OnixPic, Bank(OnixPic)
dwb DrowzeePic, Bank(DrowzeePic)
dwb HypnoPic, Bank(HypnoPic)
dwb KrabbyPic, Bank(KrabbyPic)
dwb KinglerPic, Bank(KinglerPic)
dwb VoltorbPic, Bank(VoltorbPic)
dwb ElectrodePic, Bank(ElectrodePic)
dwb ExeggcutePic, Bank(ExeggcutePic)
dwb ExeggutorPic, Bank(ExeggutorPic)
dwb CubonePic, Bank(CubonePic)
dwb MarowakPic, Bank(MarowakPic)
dwb HitmonleePic, Bank(HitmonleePic)
dwb HitmonchanPic, Bank(HitmonchanPic)
dwb LickitungPic, Bank(LickitungPic)
dwb KoffingPic, Bank(KoffingPic)
dwb WeezingPic, Bank(WeezingPic)
dwb RhyhornPic, Bank(RhyhornPic)
dwb RhydonPic, Bank(RhydonPic)
dwb ChanseyPic, Bank(ChanseyPic)
dwb TangelaPic, Bank(TangelaPic)
dwb KangaskhanPic, Bank(KangaskhanPic)
dwb HorseaPic, Bank(HorseaPic)
dwb SeadraPic, Bank(SeadraPic)
dwb GoldeenPic, Bank(GoldeenPic)
dwb SeakingPic, Bank(SeakingPic)
dwb StaryuPic, Bank(StaryuPic)
dwb StarmiePic, Bank(StarmiePic)
dwb Mr_MimePic, Bank(Mr_MimePic)
dwb ScytherPic, Bank(ScytherPic)
dwb JynxPic, Bank(JynxPic)
dwb ElectabuzzPic, Bank(ElectabuzzPic)
dwb MagmarPic, Bank(MagmarPic)
dwb PinsirPic, Bank(PinsirPic)
dwb TaurosPic, Bank(TaurosPic)
dwb MagikarpPic, Bank(MagikarpPic)
dwb GyaradosPic, Bank(GyaradosPic)
dwb LaprasPic, Bank(LaprasPic)
dwb DittoPic, Bank(DittoPic)
dwb EeveePic, Bank(EeveePic)
dwb VaporeonPic, Bank(VaporeonPic)
dwb JolteonPic, Bank(JolteonPic)
dwb FlareonPic, Bank(FlareonPic)
dwb PorygonPic, Bank(PorygonPic)
dwb OmanytePic, Bank(OmanytePic)
dwb OmastarPic, Bank(OmastarPic)
dwb KabutoPic, Bank(KabutoPic)
dwb KabutopsPic, Bank(KabutopsPic)
dwb AerodactylPic, Bank(AerodactylPic)
dwb SnorlaxPic, Bank(SnorlaxPic)
dwb ArticunoPic, Bank(ArticunoPic)
dwb ZapdosPic, Bank(ZapdosPic)
dwb MoltresPic, Bank(MoltresPic)
dwb DratiniPic, Bank(DratiniPic)
dwb DragonairPic, Bank(DragonairPic)
dwb DragonitePic, Bank(DragonitePic)
dwb MewtwoPic, Bank(MewtwoPic)
dwb MewPic, Bank(MewPic)
MonBillboardPaletteMapPointers: ; 0x12d15
dwb BulbasaurBillboardBGPaletteMap, Bank(BulbasaurBillboardBGPaletteMap)
dwb IvysaurBillboardBGPaletteMap, Bank(IvysaurBillboardBGPaletteMap)
dwb VenusaurBillboardBGPaletteMap, Bank(VenusaurBillboardBGPaletteMap)
dwb CharmanderBillboardBGPaletteMap, Bank(CharmanderBillboardBGPaletteMap)
dwb CharmeleonBillboardBGPaletteMap, Bank(CharmeleonBillboardBGPaletteMap)
dwb CharizardBillboardBGPaletteMap, Bank(CharizardBillboardBGPaletteMap)
dwb SquirtleBillboardBGPaletteMap, Bank(SquirtleBillboardBGPaletteMap)
dwb WartortleBillboardBGPaletteMap, Bank(WartortleBillboardBGPaletteMap)
dwb BlastoiseBillboardBGPaletteMap, Bank(BlastoiseBillboardBGPaletteMap)
dwb CaterpieBillboardBGPaletteMap, Bank(CaterpieBillboardBGPaletteMap)
dwb MetapodBillboardBGPaletteMap, Bank(MetapodBillboardBGPaletteMap)
dwb ButterfreeBillboardBGPaletteMap, Bank(ButterfreeBillboardBGPaletteMap)
dwb WeedleBillboardBGPaletteMap, Bank(WeedleBillboardBGPaletteMap)
dwb KakunaBillboardBGPaletteMap, Bank(KakunaBillboardBGPaletteMap)
dwb BeedrillBillboardBGPaletteMap, Bank(BeedrillBillboardBGPaletteMap)
dwb PidgeyBillboardBGPaletteMap, Bank(PidgeyBillboardBGPaletteMap)
dwb PidgeottoBillboardBGPaletteMap, Bank(PidgeottoBillboardBGPaletteMap)
dwb PidgeotBillboardBGPaletteMap, Bank(PidgeotBillboardBGPaletteMap)
dwb RattataBillboardBGPaletteMap, Bank(RattataBillboardBGPaletteMap)
dwb RaticateBillboardBGPaletteMap, Bank(RaticateBillboardBGPaletteMap)
dwb SpearowBillboardBGPaletteMap, Bank(SpearowBillboardBGPaletteMap)
dwb FearowBillboardBGPaletteMap, Bank(FearowBillboardBGPaletteMap)
dwb EkansBillboardBGPaletteMap, Bank(EkansBillboardBGPaletteMap)
dwb ArbokBillboardBGPaletteMap, Bank(ArbokBillboardBGPaletteMap)
dwb PikachuBillboardBGPaletteMap, Bank(PikachuBillboardBGPaletteMap)
dwb RaichuBillboardBGPaletteMap, Bank(RaichuBillboardBGPaletteMap)
dwb SandshrewBillboardBGPaletteMap, Bank(SandshrewBillboardBGPaletteMap)
dwb SandslashBillboardBGPaletteMap, Bank(SandslashBillboardBGPaletteMap)
dwb NidoranFBillboardBGPaletteMap, Bank(NidoranFBillboardBGPaletteMap)
dwb NidorinaBillboardBGPaletteMap, Bank(NidorinaBillboardBGPaletteMap)
dwb NidoqueenBillboardBGPaletteMap, Bank(NidoqueenBillboardBGPaletteMap)
dwb NidoranMBillboardBGPaletteMap, Bank(NidoranMBillboardBGPaletteMap)
dwb NidorinoBillboardBGPaletteMap, Bank(NidorinoBillboardBGPaletteMap)
dwb NidokingBillboardBGPaletteMap, Bank(NidokingBillboardBGPaletteMap)
dwb ClefairyBillboardBGPaletteMap, Bank(ClefairyBillboardBGPaletteMap)
dwb ClefableBillboardBGPaletteMap, Bank(ClefableBillboardBGPaletteMap)
dwb VulpixBillboardBGPaletteMap, Bank(VulpixBillboardBGPaletteMap)
dwb NinetalesBillboardBGPaletteMap, Bank(NinetalesBillboardBGPaletteMap)
dwb JigglypuffBillboardBGPaletteMap, Bank(JigglypuffBillboardBGPaletteMap)
dwb WigglytuffBillboardBGPaletteMap, Bank(WigglytuffBillboardBGPaletteMap)
dwb ZubatBillboardBGPaletteMap, Bank(ZubatBillboardBGPaletteMap)
dwb GolbatBillboardBGPaletteMap, Bank(GolbatBillboardBGPaletteMap)
dwb OddishBillboardBGPaletteMap, Bank(OddishBillboardBGPaletteMap)
dwb GloomBillboardBGPaletteMap, Bank(GloomBillboardBGPaletteMap)
dwb VileplumeBillboardBGPaletteMap, Bank(VileplumeBillboardBGPaletteMap)
dwb ParasBillboardBGPaletteMap, Bank(ParasBillboardBGPaletteMap)
dwb ParasectBillboardBGPaletteMap, Bank(ParasectBillboardBGPaletteMap)
dwb VenonatBillboardBGPaletteMap, Bank(VenonatBillboardBGPaletteMap)
dwb VenomothBillboardBGPaletteMap, Bank(VenomothBillboardBGPaletteMap)
dwb DiglettBillboardBGPaletteMap, Bank(DiglettBillboardBGPaletteMap)
dwb DugtrioBillboardBGPaletteMap, Bank(DugtrioBillboardBGPaletteMap)
dwb MeowthBillboardBGPaletteMap, Bank(MeowthBillboardBGPaletteMap)
dwb PersianBillboardBGPaletteMap, Bank(PersianBillboardBGPaletteMap)
dwb PsyduckBillboardBGPaletteMap, Bank(PsyduckBillboardBGPaletteMap)
dwb GolduckBillboardBGPaletteMap, Bank(GolduckBillboardBGPaletteMap)
dwb MankeyBillboardBGPaletteMap, Bank(MankeyBillboardBGPaletteMap)
dwb PrimeapeBillboardBGPaletteMap, Bank(PrimeapeBillboardBGPaletteMap)
dwb GrowlitheBillboardBGPaletteMap, Bank(GrowlitheBillboardBGPaletteMap)
dwb ArcanineBillboardBGPaletteMap, Bank(ArcanineBillboardBGPaletteMap)
dwb PoliwagBillboardBGPaletteMap, Bank(PoliwagBillboardBGPaletteMap)
dwb PoliwhirlBillboardBGPaletteMap, Bank(PoliwhirlBillboardBGPaletteMap)
dwb PoliwrathBillboardBGPaletteMap, Bank(PoliwrathBillboardBGPaletteMap)
dwb AbraBillboardBGPaletteMap, Bank(AbraBillboardBGPaletteMap)
dwb KadabraBillboardBGPaletteMap, Bank(KadabraBillboardBGPaletteMap)
dwb AlakazamBillboardBGPaletteMap, Bank(AlakazamBillboardBGPaletteMap)
dwb MachopBillboardBGPaletteMap, Bank(MachopBillboardBGPaletteMap)
dwb MachokeBillboardBGPaletteMap, Bank(MachokeBillboardBGPaletteMap)
dwb MachampBillboardBGPaletteMap, Bank(MachampBillboardBGPaletteMap)
dwb BellsproutBillboardBGPaletteMap, Bank(BellsproutBillboardBGPaletteMap)
dwb WeepinbellBillboardBGPaletteMap, Bank(WeepinbellBillboardBGPaletteMap)
dwb VictreebellBillboardBGPaletteMap, Bank(VictreebellBillboardBGPaletteMap)
dwb TentacoolBillboardBGPaletteMap, Bank(TentacoolBillboardBGPaletteMap)
dwb TentacruelBillboardBGPaletteMap, Bank(TentacruelBillboardBGPaletteMap)
dwb GeodudeBillboardBGPaletteMap, Bank(GeodudeBillboardBGPaletteMap)
dwb GravelerBillboardBGPaletteMap, Bank(GravelerBillboardBGPaletteMap)
dwb GolemBillboardBGPaletteMap, Bank(GolemBillboardBGPaletteMap)
dwb PonytaBillboardBGPaletteMap, Bank(PonytaBillboardBGPaletteMap)
dwb RapidashBillboardBGPaletteMap, Bank(RapidashBillboardBGPaletteMap)
dwb SlowpokeBillboardBGPaletteMap, Bank(SlowpokeBillboardBGPaletteMap)
dwb SlowbroBillboardBGPaletteMap, Bank(SlowbroBillboardBGPaletteMap)
dwb MagnemiteBillboardBGPaletteMap, Bank(MagnemiteBillboardBGPaletteMap)
dwb MagnetonBillboardBGPaletteMap, Bank(MagnetonBillboardBGPaletteMap)
dwb FarfetchdBillboardBGPaletteMap, Bank(FarfetchdBillboardBGPaletteMap)
dwb DoduoBillboardBGPaletteMap, Bank(DoduoBillboardBGPaletteMap)
dwb DodrioBillboardBGPaletteMap, Bank(DodrioBillboardBGPaletteMap)
dwb SeelBillboardBGPaletteMap, Bank(SeelBillboardBGPaletteMap)
dwb DewgongBillboardBGPaletteMap, Bank(DewgongBillboardBGPaletteMap)
dwb GrimerBillboardBGPaletteMap, Bank(GrimerBillboardBGPaletteMap)
dwb MukBillboardBGPaletteMap, Bank(MukBillboardBGPaletteMap)
dwb ShellderBillboardBGPaletteMap, Bank(ShellderBillboardBGPaletteMap)
dwb CloysterBillboardBGPaletteMap, Bank(CloysterBillboardBGPaletteMap)
dwb GastlyBillboardBGPaletteMap, Bank(GastlyBillboardBGPaletteMap)
dwb HaunterBillboardBGPaletteMap, Bank(HaunterBillboardBGPaletteMap)
dwb GengarBillboardBGPaletteMap, Bank(GengarBillboardBGPaletteMap)
dwb OnixBillboardBGPaletteMap, Bank(OnixBillboardBGPaletteMap)
dwb DrowzeeBillboardBGPaletteMap, Bank(DrowzeeBillboardBGPaletteMap)
dwb HypnoBillboardBGPaletteMap, Bank(HypnoBillboardBGPaletteMap)
dwb KrabbyBillboardBGPaletteMap, Bank(KrabbyBillboardBGPaletteMap)
dwb KinglerBillboardBGPaletteMap, Bank(KinglerBillboardBGPaletteMap)
dwb VoltorbBillboardBGPaletteMap, Bank(VoltorbBillboardBGPaletteMap)
dwb ElectrodeBillboardBGPaletteMap, Bank(ElectrodeBillboardBGPaletteMap)
dwb ExeggcuteBillboardBGPaletteMap, Bank(ExeggcuteBillboardBGPaletteMap)
dwb ExeggutorBillboardBGPaletteMap, Bank(ExeggutorBillboardBGPaletteMap)
dwb CuboneBillboardBGPaletteMap, Bank(CuboneBillboardBGPaletteMap)
dwb MarowakBillboardBGPaletteMap, Bank(MarowakBillboardBGPaletteMap)
dwb HitmonleeBillboardBGPaletteMap, Bank(HitmonleeBillboardBGPaletteMap)
dwb HitmonchanBillboardBGPaletteMap, Bank(HitmonchanBillboardBGPaletteMap)
dwb LickitungBillboardBGPaletteMap, Bank(LickitungBillboardBGPaletteMap)
dwb KoffingBillboardBGPaletteMap, Bank(KoffingBillboardBGPaletteMap)
dwb WeezingBillboardBGPaletteMap, Bank(WeezingBillboardBGPaletteMap)
dwb RhyhornBillboardBGPaletteMap, Bank(RhyhornBillboardBGPaletteMap)
dwb RhydonBillboardBGPaletteMap, Bank(RhydonBillboardBGPaletteMap)
dwb ChanseyBillboardBGPaletteMap, Bank(ChanseyBillboardBGPaletteMap)
dwb TangelaBillboardBGPaletteMap, Bank(TangelaBillboardBGPaletteMap)
dwb KangaskhanBillboardBGPaletteMap, Bank(KangaskhanBillboardBGPaletteMap)
dwb HorseaBillboardBGPaletteMap, Bank(HorseaBillboardBGPaletteMap)
dwb SeadraBillboardBGPaletteMap, Bank(SeadraBillboardBGPaletteMap)
dwb GoldeenBillboardBGPaletteMap, Bank(GoldeenBillboardBGPaletteMap)
dwb SeakingBillboardBGPaletteMap, Bank(SeakingBillboardBGPaletteMap)
dwb StaryuBillboardBGPaletteMap, Bank(StaryuBillboardBGPaletteMap)
dwb StarmieBillboardBGPaletteMap, Bank(StarmieBillboardBGPaletteMap)
dwb MrMimeBillboardBGPaletteMap, Bank(MrMimeBillboardBGPaletteMap)
dwb ScytherBillboardBGPaletteMap, Bank(ScytherBillboardBGPaletteMap)
dwb JynxBillboardBGPaletteMap, Bank(JynxBillboardBGPaletteMap)
dwb ElectabuzzBillboardBGPaletteMap, Bank(ElectabuzzBillboardBGPaletteMap)
dwb MagmarBillboardBGPaletteMap, Bank(MagmarBillboardBGPaletteMap)
dwb PinsirBillboardBGPaletteMap, Bank(PinsirBillboardBGPaletteMap)
dwb TaurosBillboardBGPaletteMap, Bank(TaurosBillboardBGPaletteMap)
dwb MagikarpBillboardBGPaletteMap, Bank(MagikarpBillboardBGPaletteMap)
dwb GyaradosBillboardBGPaletteMap, Bank(GyaradosBillboardBGPaletteMap)
dwb LaprasBillboardBGPaletteMap, Bank(LaprasBillboardBGPaletteMap)
dwb DittoBillboardBGPaletteMap, Bank(DittoBillboardBGPaletteMap)
dwb EeveeBillboardBGPaletteMap, Bank(EeveeBillboardBGPaletteMap)
dwb VaporeonBillboardBGPaletteMap, Bank(VaporeonBillboardBGPaletteMap)
dwb JolteonBillboardBGPaletteMap, Bank(JolteonBillboardBGPaletteMap)
dwb FlareonBillboardBGPaletteMap, Bank(FlareonBillboardBGPaletteMap)
dwb PorygonBillboardBGPaletteMap, Bank(PorygonBillboardBGPaletteMap)
dwb OmanyteBillboardBGPaletteMap, Bank(OmanyteBillboardBGPaletteMap)
dwb OmastarBillboardBGPaletteMap, Bank(OmastarBillboardBGPaletteMap)
dwb KabutoBillboardBGPaletteMap, Bank(KabutoBillboardBGPaletteMap)
dwb KabutopsBillboardBGPaletteMap, Bank(KabutopsBillboardBGPaletteMap)
dwb AerodactylBillboardBGPaletteMap, Bank(AerodactylBillboardBGPaletteMap)
dwb SnorlaxBillboardBGPaletteMap, Bank(SnorlaxBillboardBGPaletteMap)
dwb ArticunoBillboardBGPaletteMap, Bank(ArticunoBillboardBGPaletteMap)
dwb ZapdosBillboardBGPaletteMap, Bank(ZapdosBillboardBGPaletteMap)
dwb MoltresBillboardBGPaletteMap, Bank(MoltresBillboardBGPaletteMap)
dwb DratiniBillboardBGPaletteMap, Bank(DratiniBillboardBGPaletteMap)
dwb DragonairBillboardBGPaletteMap, Bank(DragonairBillboardBGPaletteMap)
dwb DragoniteBillboardBGPaletteMap, Bank(DragoniteBillboardBGPaletteMap)
dwb MewtwoBillboardBGPaletteMap, Bank(MewtwoBillboardBGPaletteMap)
dwb MewBillboardBGPaletteMap, Bank(MewBillboardBGPaletteMap)
MonBillboardPalettePointers: ; 0x12eda
dwb BulbasaurBillboardBGPalette1, Bank(BulbasaurBillboardBGPalette1)
dwb IvysaurBillboardBGPalette1, Bank(IvysaurBillboardBGPalette1)
dwb VenusaurBillboardBGPalette1, Bank(VenusaurBillboardBGPalette1)
dwb CharmanderBillboardBGPalette1, Bank(CharmanderBillboardBGPalette1)
dwb CharmeleonBillboardBGPalette1, Bank(CharmeleonBillboardBGPalette1)
dwb CharizardBillboardBGPalette1, Bank(CharizardBillboardBGPalette1)
dwb SquirtleBillboardBGPalette1, Bank(SquirtleBillboardBGPalette1)
dwb WartortleBillboardBGPalette1, Bank(WartortleBillboardBGPalette1)
dwb BlastoiseBillboardBGPalette1, Bank(BlastoiseBillboardBGPalette1)
dwb CaterpieBillboardBGPalette1, Bank(CaterpieBillboardBGPalette1)
dwb MetapodBillboardBGPalette1, Bank(MetapodBillboardBGPalette1)
dwb ButterfreeBillboardBGPalette1, Bank(ButterfreeBillboardBGPalette1)
dwb WeedleBillboardBGPalette1, Bank(WeedleBillboardBGPalette1)
dwb KakunaBillboardBGPalette1, Bank(KakunaBillboardBGPalette1)
dwb BeedrillBillboardBGPalette1, Bank(BeedrillBillboardBGPalette1)
dwb PidgeyBillboardBGPalette1, Bank(PidgeyBillboardBGPalette1)
dwb PidgeottoBillboardBGPalette1, Bank(PidgeottoBillboardBGPalette1)
dwb PidgeotBillboardBGPalette1, Bank(PidgeotBillboardBGPalette1)
dwb RattataBillboardBGPalette1, Bank(RattataBillboardBGPalette1)
dwb RaticateBillboardBGPalette1, Bank(RaticateBillboardBGPalette1)
dwb SpearowBillboardBGPalette1, Bank(SpearowBillboardBGPalette1)
dwb FearowBillboardBGPalette1, Bank(FearowBillboardBGPalette1)
dwb EkansBillboardBGPalette1, Bank(EkansBillboardBGPalette1)
dwb ArbokBillboardBGPalette1, Bank(ArbokBillboardBGPalette1)
dwb PikachuBillboardBGPalette1, Bank(PikachuBillboardBGPalette1)
dwb RaichuBillboardBGPalette1, Bank(RaichuBillboardBGPalette1)
dwb SandshrewBillboardBGPalette1, Bank(SandshrewBillboardBGPalette1)
dwb SandslashBillboardBGPalette1, Bank(SandslashBillboardBGPalette1)
dwb NidoranFBillboardBGPalette1, Bank(NidoranFBillboardBGPalette1)
dwb NidorinaBillboardBGPalette1, Bank(NidorinaBillboardBGPalette1)
dwb NidoqueenBillboardBGPalette1, Bank(NidoqueenBillboardBGPalette1)
dwb NidoranMBillboardBGPalette1, Bank(NidoranMBillboardBGPalette1)
dwb NidorinoBillboardBGPalette1, Bank(NidorinoBillboardBGPalette1)
dwb NidokingBillboardBGPalette1, Bank(NidokingBillboardBGPalette1)
dwb ClefairyBillboardBGPalette1, Bank(ClefairyBillboardBGPalette1)
dwb ClefableBillboardBGPalette1, Bank(ClefableBillboardBGPalette1)
dwb VulpixBillboardBGPalette1, Bank(VulpixBillboardBGPalette1)
dwb NinetalesBillboardBGPalette1, Bank(NinetalesBillboardBGPalette1)
dwb JigglypuffBillboardBGPalette1, Bank(JigglypuffBillboardBGPalette1)
dwb WigglytuffBillboardBGPalette1, Bank(WigglytuffBillboardBGPalette1)
dwb ZubatBillboardBGPalette1, Bank(ZubatBillboardBGPalette1)
dwb GolbatBillboardBGPalette1, Bank(GolbatBillboardBGPalette1)
dwb OddishBillboardBGPalette1, Bank(OddishBillboardBGPalette1)
dwb GloomBillboardBGPalette1, Bank(GloomBillboardBGPalette1)
dwb VileplumeBillboardBGPalette1, Bank(VileplumeBillboardBGPalette1)
dwb ParasBillboardBGPalette1, Bank(ParasBillboardBGPalette1)
dwb ParasectBillboardBGPalette1, Bank(ParasectBillboardBGPalette1)
dwb VenonatBillboardBGPalette1, Bank(VenonatBillboardBGPalette1)
dwb VenomothBillboardBGPalette1, Bank(VenomothBillboardBGPalette1)
dwb DiglettBillboardBGPalette1, Bank(DiglettBillboardBGPalette1)
dwb DugtrioBillboardBGPalette1, Bank(DugtrioBillboardBGPalette1)
dwb MeowthBillboardBGPalette1, Bank(MeowthBillboardBGPalette1)
dwb PersianBillboardBGPalette1, Bank(PersianBillboardBGPalette1)
dwb PsyduckBillboardBGPalette1, Bank(PsyduckBillboardBGPalette1)
dwb GolduckBillboardBGPalette1, Bank(GolduckBillboardBGPalette1)
dwb MankeyBillboardBGPalette1, Bank(MankeyBillboardBGPalette1)
dwb PrimeapeBillboardBGPalette1, Bank(PrimeapeBillboardBGPalette1)
dwb GrowlitheBillboardBGPalette1, Bank(GrowlitheBillboardBGPalette1)
dwb ArcanineBillboardBGPalette1, Bank(ArcanineBillboardBGPalette1)
dwb PoliwagBillboardBGPalette1, Bank(PoliwagBillboardBGPalette1)
dwb PoliwhirlBillboardBGPalette1, Bank(PoliwhirlBillboardBGPalette1)
dwb PoliwrathBillboardBGPalette1, Bank(PoliwrathBillboardBGPalette1)
dwb AbraBillboardBGPalette1, Bank(AbraBillboardBGPalette1)
dwb KadabraBillboardBGPalette1, Bank(KadabraBillboardBGPalette1)
dwb AlakazamBillboardBGPalette1, Bank(AlakazamBillboardBGPalette1)
dwb MachopBillboardBGPalette1, Bank(MachopBillboardBGPalette1)
dwb MachokeBillboardBGPalette1, Bank(MachokeBillboardBGPalette1)
dwb MachampBillboardBGPalette1, Bank(MachampBillboardBGPalette1)
dwb BellsproutBillboardBGPalette1, Bank(BellsproutBillboardBGPalette1)
dwb WeepinbellBillboardBGPalette1, Bank(WeepinbellBillboardBGPalette1)
dwb VictreebellBillboardBGPalette1, Bank(VictreebellBillboardBGPalette1)
dwb TentacoolBillboardBGPalette1, Bank(TentacoolBillboardBGPalette1)
dwb TentacruelBillboardBGPalette1, Bank(TentacruelBillboardBGPalette1)
dwb GeodudeBillboardBGPalette1, Bank(GeodudeBillboardBGPalette1)
dwb GravelerBillboardBGPalette1, Bank(GravelerBillboardBGPalette1)
dwb GolemBillboardBGPalette1, Bank(GolemBillboardBGPalette1)
dwb PonytaBillboardBGPalette1, Bank(PonytaBillboardBGPalette1)
dwb RapidashBillboardBGPalette1, Bank(RapidashBillboardBGPalette1)
dwb SlowpokeBillboardBGPalette1, Bank(SlowpokeBillboardBGPalette1)
dwb SlowbroBillboardBGPalette1, Bank(SlowbroBillboardBGPalette1)
dwb MagnemiteBillboardBGPalette1, Bank(MagnemiteBillboardBGPalette1)
dwb MagnetonBillboardBGPalette1, Bank(MagnetonBillboardBGPalette1)
dwb FarfetchdBillboardBGPalette1, Bank(FarfetchdBillboardBGPalette1)
dwb DoduoBillboardBGPalette1, Bank(DoduoBillboardBGPalette1)
dwb DodrioBillboardBGPalette1, Bank(DodrioBillboardBGPalette1)
dwb SeelBillboardBGPalette1, Bank(SeelBillboardBGPalette1)
dwb DewgongBillboardBGPalette1, Bank(DewgongBillboardBGPalette1)
dwb GrimerBillboardBGPalette1, Bank(GrimerBillboardBGPalette1)
dwb MukBillboardBGPalette1, Bank(MukBillboardBGPalette1)
dwb ShellderBillboardBGPalette1, Bank(ShellderBillboardBGPalette1)
dwb CloysterBillboardBGPalette1, Bank(CloysterBillboardBGPalette1)
dwb GastlyBillboardBGPalette1, Bank(GastlyBillboardBGPalette1)
dwb HaunterBillboardBGPalette1, Bank(HaunterBillboardBGPalette1)
dwb GengarBillboardBGPalette1, Bank(GengarBillboardBGPalette1)
dwb OnixBillboardBGPalette1, Bank(OnixBillboardBGPalette1)
dwb DrowzeeBillboardBGPalette1, Bank(DrowzeeBillboardBGPalette1)
dwb HypnoBillboardBGPalette1, Bank(HypnoBillboardBGPalette1)
dwb KrabbyBillboardBGPalette1, Bank(KrabbyBillboardBGPalette1)
dwb KinglerBillboardBGPalette1, Bank(KinglerBillboardBGPalette1)
dwb VoltorbBillboardBGPalette1, Bank(VoltorbBillboardBGPalette1)
dwb ElectrodeBillboardBGPalette1, Bank(ElectrodeBillboardBGPalette1)
dwb ExeggcuteBillboardBGPalette1, Bank(ExeggcuteBillboardBGPalette1)
dwb ExeggutorBillboardBGPalette1, Bank(ExeggutorBillboardBGPalette1)
dwb CuboneBillboardBGPalette1, Bank(CuboneBillboardBGPalette1)
dwb MarowakBillboardBGPalette1, Bank(MarowakBillboardBGPalette1)
dwb HitmonleeBillboardBGPalette1, Bank(HitmonleeBillboardBGPalette1)
dwb HitmonchanBillboardBGPalette1, Bank(HitmonchanBillboardBGPalette1)
dwb LickitungBillboardBGPalette1, Bank(LickitungBillboardBGPalette1)
dwb KoffingBillboardBGPalette1, Bank(KoffingBillboardBGPalette1)
dwb WeezingBillboardBGPalette1, Bank(WeezingBillboardBGPalette1)
dwb RhyhornBillboardBGPalette1, Bank(RhyhornBillboardBGPalette1)
dwb RhydonBillboardBGPalette1, Bank(RhydonBillboardBGPalette1)
dwb ChanseyBillboardBGPalette1, Bank(ChanseyBillboardBGPalette1)
dwb TangelaBillboardBGPalette1, Bank(TangelaBillboardBGPalette1)
dwb KangaskhanBillboardBGPalette1, Bank(KangaskhanBillboardBGPalette1)
dwb HorseaBillboardBGPalette1, Bank(HorseaBillboardBGPalette1)
dwb SeadraBillboardBGPalette1, Bank(SeadraBillboardBGPalette1)
dwb GoldeenBillboardBGPalette1, Bank(GoldeenBillboardBGPalette1)
dwb SeakingBillboardBGPalette1, Bank(SeakingBillboardBGPalette1)
dwb StaryuBillboardBGPalette1, Bank(StaryuBillboardBGPalette1)
dwb StarmieBillboardBGPalette1, Bank(StarmieBillboardBGPalette1)
dwb MrMimeBillboardBGPalette1, Bank(MrMimeBillboardBGPalette1)
dwb ScytherBillboardBGPalette1, Bank(ScytherBillboardBGPalette1)
dwb JynxBillboardBGPalette1, Bank(JynxBillboardBGPalette1)
dwb ElectabuzzBillboardBGPalette1, Bank(ElectabuzzBillboardBGPalette1)
dwb MagmarBillboardBGPalette1, Bank(MagmarBillboardBGPalette1)
dwb PinsirBillboardBGPalette1, Bank(PinsirBillboardBGPalette1)
dwb TaurosBillboardBGPalette1, Bank(TaurosBillboardBGPalette1)
dwb MagikarpBillboardBGPalette1, Bank(MagikarpBillboardBGPalette1)
dwb GyaradosBillboardBGPalette1, Bank(GyaradosBillboardBGPalette1)
dwb LaprasBillboardBGPalette1, Bank(LaprasBillboardBGPalette1)
dwb DittoBillboardBGPalette1, Bank(DittoBillboardBGPalette1)
dwb EeveeBillboardBGPalette1, Bank(EeveeBillboardBGPalette1)
dwb VaporeonBillboardBGPalette1, Bank(VaporeonBillboardBGPalette1)
dwb JolteonBillboardBGPalette1, Bank(JolteonBillboardBGPalette1)
dwb FlareonBillboardBGPalette1, Bank(FlareonBillboardBGPalette1)
dwb PorygonBillboardBGPalette1, Bank(PorygonBillboardBGPalette1)
dwb OmanyteBillboardBGPalette1, Bank(OmanyteBillboardBGPalette1)
dwb OmastarBillboardBGPalette1, Bank(OmastarBillboardBGPalette1)
dwb KabutoBillboardBGPalette1, Bank(KabutoBillboardBGPalette1)
dwb KabutopsBillboardBGPalette1, Bank(KabutopsBillboardBGPalette1)
dwb AerodactylBillboardBGPalette1, Bank(AerodactylBillboardBGPalette1)
dwb SnorlaxBillboardBGPalette1, Bank(SnorlaxBillboardBGPalette1)
dwb ArticunoBillboardBGPalette1, Bank(ArticunoBillboardBGPalette1)
dwb ZapdosBillboardBGPalette1, Bank(ZapdosBillboardBGPalette1)
dwb MoltresBillboardBGPalette1, Bank(MoltresBillboardBGPalette1)
dwb DratiniBillboardBGPalette1, Bank(DratiniBillboardBGPalette1)
dwb DragonairBillboardBGPalette1, Bank(DragonairBillboardBGPalette1)
dwb DragoniteBillboardBGPalette1, Bank(DragoniteBillboardBGPalette1)
dwb MewtwoBillboardBGPalette1, Bank(MewtwoBillboardBGPalette1)
dwb MewBillboardBGPalette1, Bank(MewBillboardBGPalette1)
MonAnimatedPalettePointers: ; 0x1309f
dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1)
dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1)
dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1)
dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1)
dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1)
dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1)
dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1)
dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1)
dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1)
dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1)
dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1)
dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1)
dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1)
dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1)
dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1)
dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1)
dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1)
dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1)
dwb RattataAnimatedObjPalette1, Bank(RattataAnimatedObjPalette1)
dwb RattataAnimatedObjPalette1, Bank(RattataAnimatedObjPalette1)
dwb SpearowAnimatedObjPalette1, Bank(SpearowAnimatedObjPalette1)
dwb SpearowAnimatedObjPalette1, Bank(SpearowAnimatedObjPalette1)
dwb EkansAnimatedObjPalette1, Bank(EkansAnimatedObjPalette1)
dwb EkansAnimatedObjPalette1, Bank(EkansAnimatedObjPalette1)
dwb PikachuAnimatedObjPalette1, Bank(PikachuAnimatedObjPalette1)
dwb PikachuAnimatedObjPalette1, Bank(PikachuAnimatedObjPalette1)
dwb SandshrewAnimatedObjPalette1, Bank(SandshrewAnimatedObjPalette1)
dwb SandshrewAnimatedObjPalette1, Bank(SandshrewAnimatedObjPalette1)
dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1)
dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1)
dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1)
dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1)
dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1)
dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1)
dwb ClefairyAnimatedObjPalette1, Bank(ClefairyAnimatedObjPalette1)
dwb ClefairyAnimatedObjPalette1, Bank(ClefairyAnimatedObjPalette1)
dwb VulpixAnimatedObjPalette1, Bank(VulpixAnimatedObjPalette1)
dwb VulpixAnimatedObjPalette1, Bank(VulpixAnimatedObjPalette1)
dwb JigglypuffAnimatedObjPalette1, Bank(JigglypuffAnimatedObjPalette1)
dwb JigglypuffAnimatedObjPalette1, Bank(JigglypuffAnimatedObjPalette1)
dwb ZubatAnimatedObjPalette1, Bank(ZubatAnimatedObjPalette1)
dwb ZubatAnimatedObjPalette1, Bank(ZubatAnimatedObjPalette1)
dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1)
dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1)
dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1)
dwb ParasAnimatedObjPalette1, Bank(ParasAnimatedObjPalette1)
dwb ParasAnimatedObjPalette1, Bank(ParasAnimatedObjPalette1)
dwb VenonatAnimatedObjPalette1, Bank(VenonatAnimatedObjPalette1)
dwb VenonatAnimatedObjPalette1, Bank(VenonatAnimatedObjPalette1)
dwb DiglettAnimatedObjPalette1, Bank(DiglettAnimatedObjPalette1)
dwb DiglettAnimatedObjPalette1, Bank(DiglettAnimatedObjPalette1)
dwb MeowthAnimatedObjPalette1, Bank(MeowthAnimatedObjPalette1)
dwb MeowthAnimatedObjPalette1, Bank(MeowthAnimatedObjPalette1)
dwb PsyduckAnimatedObjPalette1, Bank(PsyduckAnimatedObjPalette1)
dwb PsyduckAnimatedObjPalette1, Bank(PsyduckAnimatedObjPalette1)
dwb MankeyAnimatedObjPalette1, Bank(MankeyAnimatedObjPalette1)
dwb MankeyAnimatedObjPalette1, Bank(MankeyAnimatedObjPalette1)
dwb GrowlitheAnimatedObjPalette1, Bank(GrowlitheAnimatedObjPalette1)
dwb GrowlitheAnimatedObjPalette1, Bank(GrowlitheAnimatedObjPalette1)
dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1)
dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1)
dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1)
dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1)
dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1)
dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1)
dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1)
dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1)
dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1)
dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1)
dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1)
dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1)
dwb TentacoolAnimatedObjPalette1, Bank(TentacoolAnimatedObjPalette1)
dwb TentacoolAnimatedObjPalette1, Bank(TentacoolAnimatedObjPalette1)
dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1)
dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1)
dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1)
dwb PonytaAnimatedObjPalette1, Bank(PonytaAnimatedObjPalette1)
dwb PonytaAnimatedObjPalette1, Bank(PonytaAnimatedObjPalette1)
dwb SlowpokeAnimatedObjPalette1, Bank(SlowpokeAnimatedObjPalette1)
dwb SlowpokeAnimatedObjPalette1, Bank(SlowpokeAnimatedObjPalette1)
dwb MagnemiteAnimatedObjPalette1, Bank(MagnemiteAnimatedObjPalette1)
dwb MagnemiteAnimatedObjPalette1, Bank(MagnemiteAnimatedObjPalette1)
dwb FarfetchdAnimatedObjPalette1, Bank(FarfetchdAnimatedObjPalette1)
dwb DoduoAnimatedObjPalette1, Bank(DoduoAnimatedObjPalette1)
dwb DoduoAnimatedObjPalette1, Bank(DoduoAnimatedObjPalette1)
dwb SeelAnimatedObjPalette1, Bank(SeelAnimatedObjPalette1)
dwb SeelAnimatedObjPalette1, Bank(SeelAnimatedObjPalette1)
dwb GrimerAnimatedObjPalette1, Bank(GrimerAnimatedObjPalette1)
dwb GrimerAnimatedObjPalette1, Bank(GrimerAnimatedObjPalette1)
dwb ShellderAnimatedObjPalette1, Bank(ShellderAnimatedObjPalette1)
dwb ShellderAnimatedObjPalette1, Bank(ShellderAnimatedObjPalette1)
dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1)
dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1)
dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1)
dwb OnixAnimatedObjPalette1, Bank(OnixAnimatedObjPalette1)
dwb DrowzeeAnimatedObjPalette1, Bank(DrowzeeAnimatedObjPalette1)
dwb DrowzeeAnimatedObjPalette1, Bank(DrowzeeAnimatedObjPalette1)
dwb KrabbyAnimatedObjPalette1, Bank(KrabbyAnimatedObjPalette1)
dwb KrabbyAnimatedObjPalette1, Bank(KrabbyAnimatedObjPalette1)
dwb VoltorbAnimatedObjPalette1, Bank(VoltorbAnimatedObjPalette1)
dwb VoltorbAnimatedObjPalette1, Bank(VoltorbAnimatedObjPalette1)
dwb ExeggcuteAnimatedObjPalette1, Bank(ExeggcuteAnimatedObjPalette1)
dwb ExeggcuteAnimatedObjPalette1, Bank(ExeggcuteAnimatedObjPalette1)
dwb CuboneAnimatedObjPalette1, Bank(CuboneAnimatedObjPalette1)
dwb CuboneAnimatedObjPalette1, Bank(CuboneAnimatedObjPalette1)
dwb HitmonleeAnimatedObjPalette1, Bank(HitmonleeAnimatedObjPalette1)
dwb HitmonchanAnimatedObjPalette1, Bank(HitmonchanAnimatedObjPalette1)
dwb LickitungAnimatedObjPalette1, Bank(LickitungAnimatedObjPalette1)
dwb KoffingAnimatedObjPalette1, Bank(KoffingAnimatedObjPalette1)
dwb KoffingAnimatedObjPalette1, Bank(KoffingAnimatedObjPalette1)
dwb RhyhornAnimatedObjPalette1, Bank(RhyhornAnimatedObjPalette1)
dwb RhyhornAnimatedObjPalette1, Bank(RhyhornAnimatedObjPalette1)
dwb ChanseyAnimatedObjPalette1, Bank(ChanseyAnimatedObjPalette1)
dwb TangelaAnimatedObjPalette1, Bank(TangelaAnimatedObjPalette1)
dwb KangaskhanAnimatedObjPalette1, Bank(KangaskhanAnimatedObjPalette1)
dwb HorseaAnimatedObjPalette1, Bank(HorseaAnimatedObjPalette1)
dwb HorseaAnimatedObjPalette1, Bank(HorseaAnimatedObjPalette1)
dwb GoldeenAnimatedObjPalette1, Bank(GoldeenAnimatedObjPalette1)
dwb GoldeenAnimatedObjPalette1, Bank(GoldeenAnimatedObjPalette1)
dwb StaryuAnimatedObjPalette1, Bank(StaryuAnimatedObjPalette1)
dwb StaryuAnimatedObjPalette1, Bank(StaryuAnimatedObjPalette1)
dwb MrMimeAnimatedObjPalette1, Bank(MrMimeAnimatedObjPalette1)
dwb ScytherAnimatedObjPalette1, Bank(ScytherAnimatedObjPalette1)
dwb JynxAnimatedObjPalette1, Bank(JynxAnimatedObjPalette1)
dwb ElectabuzzAnimatedObjPalette1, Bank(ElectabuzzAnimatedObjPalette1)
dwb MagmarAnimatedObjPalette1, Bank(MagmarAnimatedObjPalette1)
dwb PinsirAnimatedObjPalette1, Bank(PinsirAnimatedObjPalette1)
dwb TaurosAnimatedObjPalette1, Bank(TaurosAnimatedObjPalette1)
dwb MagikarpAnimatedObjPalette1, Bank(MagikarpAnimatedObjPalette1)
dwb MagikarpAnimatedObjPalette1, Bank(MagikarpAnimatedObjPalette1)
dwb LaprasAnimatedObjPalette1, Bank(LaprasAnimatedObjPalette1)
dwb DittoAnimatedObjPalette1, Bank(DittoAnimatedObjPalette1)
dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1)
dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1)
dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1)
dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1)
dwb PorygonAnimatedObjPalette1, Bank(PorygonAnimatedObjPalette1)
dwb OmanyteAnimatedObjPalette1, Bank(OmanyteAnimatedObjPalette1)
dwb OmanyteAnimatedObjPalette1, Bank(OmanyteAnimatedObjPalette1)
dwb KabutoAnimatedObjPalette1, Bank(KabutoAnimatedObjPalette1)
dwb KabutoAnimatedObjPalette1, Bank(KabutoAnimatedObjPalette1)
dwb AerodactylAnimatedObjPalette1, Bank(AerodactylAnimatedObjPalette1)
dwb SnorlaxAnimatedObjPalette1, Bank(SnorlaxAnimatedObjPalette1)
dwb ArticunoAnimatedObjPalette1, Bank(ArticunoAnimatedObjPalette1)
dwb ZapdosAnimatedObjPalette1, Bank(ZapdosAnimatedObjPalette1)
dwb MoltresAnimatedObjPalette1, Bank(MoltresAnimatedObjPalette1)
dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1)
dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1)
dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1)
dwb MewtwoAnimatedObjPalette1, Bank(MewtwoAnimatedObjPalette1)
dwb MewAnimatedObjPalette1, Bank(MewAnimatedObjPalette1)
MonAnimatedPicPointers: ; 0x13264
dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic)
dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic)
dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic)
dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic)
dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic)
dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic)
dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic)
dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic)
dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic)
dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic)
dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic)
dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic)
dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic)
dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic)
dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic)
dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic)
dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic)
dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic)
dwb RattataAnimatedPic, Bank(RattataAnimatedPic)
dwb RattataAnimatedPic, Bank(RattataAnimatedPic)
dwb SpearowAnimatedPic, Bank(SpearowAnimatedPic)
dwb SpearowAnimatedPic, Bank(SpearowAnimatedPic)
dwb EkansAnimatedPic, Bank(EkansAnimatedPic)
dwb EkansAnimatedPic, Bank(EkansAnimatedPic)
dwb PikachuAnimatedPic, Bank(PikachuAnimatedPic)
dwb PikachuAnimatedPic, Bank(PikachuAnimatedPic)
dwb SandshrewAnimatedPic, Bank(SandshrewAnimatedPic)
dwb SandshrewAnimatedPic, Bank(SandshrewAnimatedPic)
dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic)
dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic)
dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic)
dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic)
dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic)
dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic)
dwb ClefairyAnimatedPic, Bank(ClefairyAnimatedPic)
dwb ClefairyAnimatedPic, Bank(ClefairyAnimatedPic)
dwb VulpixAnimatedPic, Bank(VulpixAnimatedPic)
dwb VulpixAnimatedPic, Bank(VulpixAnimatedPic)
dwb JigglypuffAnimatedPic, Bank(JigglypuffAnimatedPic)
dwb JigglypuffAnimatedPic, Bank(JigglypuffAnimatedPic)
dwb ZubatAnimatedPic, Bank(ZubatAnimatedPic)
dwb ZubatAnimatedPic, Bank(ZubatAnimatedPic)
dwb OddishAnimatedPic, Bank(OddishAnimatedPic)
dwb OddishAnimatedPic, Bank(OddishAnimatedPic)
dwb OddishAnimatedPic, Bank(OddishAnimatedPic)
dwb ParasAnimatedPic, Bank(ParasAnimatedPic)
dwb ParasAnimatedPic, Bank(ParasAnimatedPic)
dwb VenonatAnimatedPic, Bank(VenonatAnimatedPic)
dwb VenonatAnimatedPic, Bank(VenonatAnimatedPic)
dwb DiglettAnimatedPic, Bank(DiglettAnimatedPic)
dwb DiglettAnimatedPic, Bank(DiglettAnimatedPic)
dwb MeowthAnimatedPic, Bank(MeowthAnimatedPic)
dwb MeowthAnimatedPic, Bank(MeowthAnimatedPic)
dwb PsyduckAnimatedPic, Bank(PsyduckAnimatedPic)
dwb PsyduckAnimatedPic, Bank(PsyduckAnimatedPic)
dwb MankeyAnimatedPic, Bank(MankeyAnimatedPic)
dwb MankeyAnimatedPic, Bank(MankeyAnimatedPic)
dwb GrowlitheAnimatedPic, Bank(GrowlitheAnimatedPic)
dwb GrowlitheAnimatedPic, Bank(GrowlitheAnimatedPic)
dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic)
dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic)
dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic)
dwb AbraAnimatedPic, Bank(AbraAnimatedPic)
dwb AbraAnimatedPic, Bank(AbraAnimatedPic)
dwb AbraAnimatedPic, Bank(AbraAnimatedPic)
dwb MachopAnimatedPic, Bank(MachopAnimatedPic)
dwb MachopAnimatedPic, Bank(MachopAnimatedPic)
dwb MachopAnimatedPic, Bank(MachopAnimatedPic)
dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic)
dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic)
dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic)
dwb TentacoolAnimatedPic, Bank(TentacoolAnimatedPic)
dwb TentacoolAnimatedPic, Bank(TentacoolAnimatedPic)
dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic)
dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic)
dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic)
dwb PonytaAnimatedPic, Bank(PonytaAnimatedPic)
dwb PonytaAnimatedPic, Bank(PonytaAnimatedPic)
dwb SlowpokeAnimatedPic, Bank(SlowpokeAnimatedPic)
dwb SlowpokeAnimatedPic, Bank(SlowpokeAnimatedPic)
dwb MagnemiteAnimatedPic, Bank(MagnemiteAnimatedPic)
dwb MagnemiteAnimatedPic, Bank(MagnemiteAnimatedPic)
dwb FarfetchdAnimatedPic, Bank(FarfetchdAnimatedPic)
dwb DoduoAnimatedPic, Bank(DoduoAnimatedPic)
dwb DoduoAnimatedPic, Bank(DoduoAnimatedPic)
dwb SeelAnimatedPic, Bank(SeelAnimatedPic)
dwb SeelAnimatedPic, Bank(SeelAnimatedPic)
dwb GrimerAnimatedPic, Bank(GrimerAnimatedPic)
dwb GrimerAnimatedPic, Bank(GrimerAnimatedPic)
dwb ShellderAnimatedPic, Bank(ShellderAnimatedPic)
dwb ShellderAnimatedPic, Bank(ShellderAnimatedPic)
dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic)
dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic)
dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic)
dwb OnixAnimatedPic, Bank(OnixAnimatedPic)
dwb DrowzeeAnimatedPic, Bank(DrowzeeAnimatedPic)
dwb DrowzeeAnimatedPic, Bank(DrowzeeAnimatedPic)
dwb KrabbyAnimatedPic, Bank(KrabbyAnimatedPic)
dwb KrabbyAnimatedPic, Bank(KrabbyAnimatedPic)
dwb VoltorbAnimatedPic, Bank(VoltorbAnimatedPic)
dwb VoltorbAnimatedPic, Bank(VoltorbAnimatedPic)
dwb ExeggcuteAnimatedPic, Bank(ExeggcuteAnimatedPic)
dwb ExeggcuteAnimatedPic, Bank(ExeggcuteAnimatedPic)
dwb CuboneAnimatedPic, Bank(CuboneAnimatedPic)
dwb CuboneAnimatedPic, Bank(CuboneAnimatedPic)
dwb HitmonleeAnimatedPic, Bank(HitmonleeAnimatedPic)
dwb HitmonchanAnimatedPic, Bank(HitmonchanAnimatedPic)
dwb LickitungAnimatedPic, Bank(LickitungAnimatedPic)
dwb KoffingAnimatedPic, Bank(KoffingAnimatedPic)
dwb KoffingAnimatedPic, Bank(KoffingAnimatedPic)
dwb RhyhornAnimatedPic, Bank(RhyhornAnimatedPic)
dwb RhyhornAnimatedPic, Bank(RhyhornAnimatedPic)
dwb ChanseyAnimatedPic, Bank(ChanseyAnimatedPic)
dwb TangelaAnimatedPic, Bank(TangelaAnimatedPic)
dwb KangaskhanAnimatedPic, Bank(KangaskhanAnimatedPic)
dwb HorseaAnimatedPic, Bank(HorseaAnimatedPic)
dwb HorseaAnimatedPic, Bank(HorseaAnimatedPic)
dwb GoldeenAnimatedPic, Bank(GoldeenAnimatedPic)
dwb GoldeenAnimatedPic, Bank(GoldeenAnimatedPic)
dwb StaryuAnimatedPic, Bank(StaryuAnimatedPic)
dwb StaryuAnimatedPic, Bank(StaryuAnimatedPic)
dwb MrMimeAnimatedPic, Bank(MrMimeAnimatedPic)
dwb ScytherAnimatedPic, Bank(ScytherAnimatedPic)
dwb JynxAnimatedPic, Bank(JynxAnimatedPic)
dwb ElectabuzzAnimatedPic, Bank(ElectabuzzAnimatedPic)
dwb MagmarAnimatedPic, Bank(MagmarAnimatedPic)
dwb PinsirAnimatedPic, Bank(PinsirAnimatedPic)
dwb TaurosAnimatedPic, Bank(TaurosAnimatedPic)
dwb MagikarpAnimatedPic, Bank(MagikarpAnimatedPic)
dwb MagikarpAnimatedPic, Bank(MagikarpAnimatedPic)
dwb LaprasAnimatedPic, Bank(LaprasAnimatedPic)
dwb DittoAnimatedPic, Bank(DittoAnimatedPic)
dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic)
dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic)
dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic)
dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic)
dwb PorygonAnimatedPic, Bank(PorygonAnimatedPic)
dwb OmanyteAnimatedPic, Bank(OmanyteAnimatedPic)
dwb OmanyteAnimatedPic, Bank(OmanyteAnimatedPic)
dwb KabutoAnimatedPic, Bank(KabutoAnimatedPic)
dwb KabutoAnimatedPic, Bank(KabutoAnimatedPic)
dwb AerodactylAnimatedPic, Bank(AerodactylAnimatedPic)
dwb SnorlaxAnimatedPic, Bank(SnorlaxAnimatedPic)
dwb ArticunoAnimatedPic, Bank(ArticunoAnimatedPic)
dwb ZapdosAnimatedPic, Bank(ZapdosAnimatedPic)
dwb MoltresAnimatedPic, Bank(MoltresAnimatedPic)
dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic)
dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic)
dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic)
dwb MewtwoAnimatedPic, Bank(MewtwoAnimatedPic)
dwb MewAnimatedPic, Bank(MewAnimatedPic)
MonAnimatedSpriteTypes: ; 0x13429
; Each mon has an animated sprite tilemap type.
; $03 is bulbasaur's
; $00 is squirtle's
; All other mon's use $06
db $03 ; BULBASAUR
db $FF ; IVYSAUR
db $FF ; VENUSAUR
db $06 ; CHARMANDER
db $FF ; CHARMELEON
db $FF ; CHARIZARD
db $00 ; SQUIRTLE
db $FF ; WARTORTLE
db $FF ; BLASTOISE
db $06 ; CATERPIE
db $FF ; METAPOD
db $FF ; BUTTERFREE
db $06 ; WEEDLE
db $FF ; KAKUNA
db $FF ; BEEDRILL
db $06 ; PIDGEY
db $FF ; PIDGEOTTO
db $FF ; PIDGEOT
db $06 ; RATTATA
db $FF ; RATICATE
db $06 ; SPEAROW
db $FF ; FEAROW
db $06 ; EKANS
db $FF ; ARBOK
db $06 ; PIKACHU
db $FF ; RAICHU
db $06 ; SANDSHREW
db $FF ; SANDSLASH
db $06 ; NIDORAN_F
db $FF ; NIDORINA
db $FF ; NIDOQUEEN
db $06 ; NIDORAN_M
db $FF ; NIDORINO
db $FF ; NIDOKING
db $06 ; CLEFAIRY
db $FF ; CLEFABLE
db $06 ; VULPIX
db $FF ; NINETALES
db $06 ; JIGGLYPUFF
db $FF ; WIGGLYTUFF
db $06 ; ZUBAT
db $FF ; GOLBAT
db $06 ; ODDISH
db $FF ; GLOOM
db $FF ; VILEPLUME
db $06 ; PARAS
db $FF ; PARASECT
db $06 ; VENONAT
db $FF ; VENOMOTH
db $06 ; DIGLETT
db $FF ; DUGTRIO
db $06 ; MEOWTH
db $FF ; PERSIAN
db $06 ; PSYDUCK
db $FF ; GOLDUCK
db $06 ; MANKEY
db $FF ; PRIMEAPE
db $06 ; GROWLITHE
db $FF ; ARCANINE
db $06 ; POLIWAG
db $FF ; POLIWHIRL
db $FF ; POLIWRATH
db $06 ; ABRA
db $FF ; KADABRA
db $FF ; ALAKAZAM
db $06 ; MACHOP
db $FF ; MACHOKE
db $FF ; MACHAMP
db $06 ; BELLSPROUT
db $FF ; WEEPINBELL
db $FF ; VICTREEBEL
db $06 ; TENTACOOL
db $FF ; TENTACRUEL
db $06 ; GEODUDE
db $FF ; GRAVELER
db $FF ; GOLEM
db $06 ; PONYTA
db $FF ; RAPIDASH
db $06 ; SLOWPOKE
db $FF ; SLOWBRO
db $06 ; MAGNEMITE
db $FF ; MAGNETON
db $06 ; FARFETCH_D
db $06 ; DODUO
db $FF ; DODRIO
db $06 ; SEEL
db $FF ; DEWGONG
db $06 ; GRIMER
db $FF ; MUK
db $06 ; SHELLDER
db $FF ; CLOYSTER
db $06 ; GASTLY
db $FF ; HAUNTER
db $FF ; GENGAR
db $06 ; ONIX
db $06 ; DROWZEE
db $FF ; HYPNO
db $06 ; KRABBY
db $FF ; KINGLER
db $06 ; VOLTORB
db $FF ; ELECTRODE
db $06 ; EXEGGCUTE
db $FF ; EXEGGUTOR
db $06 ; CUBONE
db $FF ; MAROWAK
db $06 ; HITMONLEE
db $06 ; HITMONCHAN
db $06 ; LICKITUNG
db $06 ; KOFFING
db $FF ; WEEZING
db $06 ; RHYHORN
db $FF ; RHYDON
db $06 ; CHANSEY
db $06 ; TANGELA
db $06 ; KANGASKHAN
db $06 ; HORSEA
db $FF ; SEADRA
db $06 ; GOLDEEN
db $FF ; SEAKING
db $06 ; STARYU
db $FF ; STARMIE
db $06 ; MR_MIME
db $06 ; SCYTHER
db $06 ; JYNX
db $06 ; ELECTABUZZ
db $06 ; MAGMAR
db $06 ; PINSIR
db $06 ; TAUROS
db $06 ; MAGIKARP
db $FF ; GYARADOS
db $06 ; LAPRAS
db $06 ; DITTO
db $06 ; EEVEE
db $FF ; VAPOREON
db $FF ; JOLTEON
db $FF ; FLAREON
db $06 ; PORYGON
db $09 ; OMANYTE
db $FF ; OMASTAR
db $06 ; KABUTO
db $FF ; KABUTOPS
db $06 ; AERODACTYL
db $06 ; SNORLAX
db $06 ; ARTICUNO
db $06 ; ZAPDOS
db $06 ; MOLTRES
db $06 ; DRATINI
db $FF ; DRAGONAIR
db $FF ; DRAGONITE
db $06 ; MEWTWO
db $06 ; MEW
MonAnimatedCollisionMaskPointers: ; 0x134c0
; Pointers to the collision masks of the animated sprites of mons.
; Note only, evolution mons use an arbitrary non-evolved mon entry, since it will never be used.
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb CharmanderAnimatedCollisionMask, Bank(CharmanderAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb SquirtleAnimatedCollisionMask, Bank(SquirtleAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb CaterpieAnimatedCollisionMask, Bank(CaterpieAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb WeedleAnimatedCollisionMask, Bank(WeedleAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb PidgeyAnimatedCollisionMask, Bank(PidgeyAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb RattataAnimatedCollisionMask, Bank(RattataAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb SpearowAnimatedCollisionMask, Bank(SpearowAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb EkansAnimatedCollisionMask, Bank(EkansAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb PikachuAnimatedCollisionMask, Bank(PikachuAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb SandshrewAnimatedCollisionMask, Bank(SandshrewAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb NidoranfAnimatedCollisionMask, Bank(NidoranfAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb NidoranmAnimatedCollisionMask, Bank(NidoranmAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb ClefairyAnimatedCollisionMask, Bank(ClefairyAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb VulpixAnimatedCollisionMask, Bank(VulpixAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb JigglypuffAnimatedCollisionMask, Bank(JigglypuffAnimatedCollisionMask)
dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb OddishAnimatedCollisionMask, Bank(OddishAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb ParasAnimatedCollisionMask, Bank(ParasAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb VenonatAnimatedCollisionMask, Bank(VenonatAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb DiglettAnimatedCollisionMask, Bank(DiglettAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb MeowthAnimatedCollisionMask, Bank(MeowthAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb PsyduckAnimatedCollisionMask, Bank(PsyduckAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb MankeyAnimatedCollisionMask, Bank(MankeyAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb GrowlitheAnimatedCollisionMask, Bank(GrowlitheAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb PoliwagAnimatedCollisionMask, Bank(PoliwagAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb AbraAnimatedCollisionMask, Bank(AbraAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb MachopAnimatedCollisionMask, Bank(MachopAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb BellsproutAnimatedCollisionMask, Bank(BellsproutAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb TentacoolAnimatedCollisionMask, Bank(TentacoolAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb GeodudeAnimatedCollisionMask, Bank(GeodudeAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb PonytaAnimatedCollisionMask, Bank(PonytaAnimatedCollisionMask)
dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb MagnemiteAnimatedCollisionMask, Bank(MagnemiteAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb FarfetchdAnimatedCollisionMask, Bank(FarfetchdAnimatedCollisionMask)
dwb DoduoAnimatedCollisionMask, Bank(DoduoAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb SeelAnimatedCollisionMask, Bank(SeelAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb GrimerAnimatedCollisionMask, Bank(GrimerAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb ShellderAnimatedCollisionMask, Bank(ShellderAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb GastlyAnimatedCollisionMask, Bank(GastlyAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb OnixAnimatedCollisionMask, Bank(OnixAnimatedCollisionMask)
dwb DrowzeeAnimatedCollisionMask, Bank(DrowzeeAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb KrabbyAnimatedCollisionMask, Bank(KrabbyAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb VoltorbAnimatedCollisionMask, Bank(VoltorbAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb ExeggcuteAnimatedCollisionMask, Bank(ExeggcuteAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb CuboneAnimatedCollisionMask, Bank(CuboneAnimatedCollisionMask)
dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask)
dwb HitmonleeAnimatedCollisionMask, Bank(HitmonleeAnimatedCollisionMask)
dwb HitmonchanAnimatedCollisionMask, Bank(HitmonchanAnimatedCollisionMask)
dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask)
dwb KoffingAnimatedCollisionMask, Bank(KoffingAnimatedCollisionMask)
dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask)
dwb RhyhornAnimatedCollisionMask, Bank(RhyhornAnimatedCollisionMask)
dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask)
dwb ChanseyAnimatedCollisionMask, Bank(ChanseyAnimatedCollisionMask)
dwb TangelaAnimatedCollisionMask, Bank(TangelaAnimatedCollisionMask)
dwb KangaskhanAnimatedCollisionMask, Bank(KangaskhanAnimatedCollisionMask)
dwb HorseaAnimatedCollisionMask, Bank(HorseaAnimatedCollisionMask)
dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask)
dwb GoldeenAnimatedCollisionMask, Bank(GoldeenAnimatedCollisionMask)
dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask)
dwb StaryuAnimatedCollisionMask, Bank(StaryuAnimatedCollisionMask)
dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask)
dwb MrMimeAnimatedCollisionMask, Bank(MrMimeAnimatedCollisionMask)
dwb ScytherAnimatedCollisionMask, Bank(ScytherAnimatedCollisionMask)
dwb JynxAnimatedCollisionMask, Bank(JynxAnimatedCollisionMask)
dwb ElectabuzzAnimatedCollisionMask, Bank(ElectabuzzAnimatedCollisionMask)
dwb MagmarAnimatedCollisionMask, Bank(MagmarAnimatedCollisionMask)
dwb PinsirAnimatedCollisionMask, Bank(PinsirAnimatedCollisionMask)
dwb TaurosAnimatedCollisionMask, Bank(TaurosAnimatedCollisionMask)
dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask)
dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask)
dwb LaprasAnimatedCollisionMask, Bank(LaprasAnimatedCollisionMask)
dwb DittoAnimatedCollisionMask, Bank(DittoAnimatedCollisionMask)
dwb EeveeAnimatedCollisionMask, Bank(EeveeAnimatedCollisionMask)
dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask)
dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask)
dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask)
dwb PorygonAnimatedCollisionMask, Bank(PorygonAnimatedCollisionMask)
dwb OmanyteAnimatedCollisionMask, Bank(OmanyteAnimatedCollisionMask)
dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask)
dwb KabutoAnimatedCollisionMask, Bank(KabutoAnimatedCollisionMask)
dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask)
dwb AerodactylAnimatedCollisionMask, Bank(AerodactylAnimatedCollisionMask)
dwb SnorlaxAnimatedCollisionMask, Bank(SnorlaxAnimatedCollisionMask)
dwb ArticunoAnimatedCollisionMask, Bank(ArticunoAnimatedCollisionMask)
dwb ZapdosAnimatedCollisionMask, Bank(ZapdosAnimatedCollisionMask)
dwb MoltresAnimatedCollisionMask, Bank(MoltresAnimatedCollisionMask)
dwb DratiniAnimatedCollisionMask, Bank(DratiniAnimatedCollisionMask)
dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask)
dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask)
dwb MewtwoAnimatedCollisionMask, Bank(MewtwoAnimatedCollisionMask)
dwb MewAnimatedCollisionMask, Bank(MewAnimatedCollisionMask)
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]
Func_14000: ; 0x14000
call Func_14091
call Func_159f4
call Func_15450
call Func_16859
call Func_14ece
call Func_14234
call Func_16425
call Func_142fc
call Func_1404a
ret
Func_1401c: ; 0x1401c
call Func_14091
call Func_14377
call Func_14135
call Func_asm_1522d
call Func_14282
call Func_1414b
call Func_14234
call Func_14746
call Func_14707
call Func_140f9
call Func_16878
call Func_140e2
call Func_16425
call Func_142fc
call Func_1404a
ret
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
Func_14091: ; 0x14091
ld a, $ff
ld [$d4d7], a
ld [$d4db], a
ld a, [$d4b4]
ld [$d4c5], a
ld a, [$d4b6]
ld [$d4c6], a
ld a, [wBallRotation]
ld [$d4c7], a
ld a, [$d503]
and a
ret z
xor a
ld [$d503], a
ld a, [$d502]
res 1, a
ld [$d502], a
and $1
ld c, a
ld a, [wStageCollisionState]
and $fe
or c
ld [wStageCollisionState], a
ld de, $0007
call PlaySoundEffect
ld a, [wCurrentStage]
bit 0, a
ret nz
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
call Func_159f4
ret
Func_140e2: ; 0x140e2
ld a, $ff
ld [$d60e], a
ld [$d60f], a
ld a, [$d60c]
call Func_16f28
ld a, [$d60d]
add $14
call Func_16f28
ret
Func_140f9: ; 0x140f9
ld a, [$d4ef]
and a
jr z, .asm_1410c
xor a
ld a, $66
ld [$c7e3], a
ld a, $67
ld [$c803], a
ld a, $2
.asm_1410c
call Func_149d9
ld a, [wLeftMapMoveCounter]
call Func_149f5
ld a, [$d4f1]
and a
jr z, .asm_14127
ld a, $6a
ld [$c7f0], a
ld a, $6b
ld [$c810], a
ld a, $2
.asm_14127
add $3
call Func_149d9
ld a, [wRightMapMoveCounter]
add $4
call Func_149f5
ret
Func_14135: ; 0x14135
ld bc, $0000
.asm_14138
push bc
ld hl, wIndicatorStates
add hl, bc
ld a, [hl]
res 7, a
call Func_169cd
pop bc
inc c
ld a, c
cp $5
jr nz, .asm_14138
ret
Func_1414b: ; 0x1414b
ld a, [wInSpecialMode]
and a
ret z
ld a, [wSpecialMode]
cp $2
ret z
ld a, [$d5c6]
and a
jr nz, .asm_14165
ld a, [$d5f3]
and a
jr nz, .asm_14165
jp Func_14210
.asm_14165
ld [$ff8a], a
ld a, Bank(Func_141f2)
ld hl, Func_141f2
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10362)
ld hl, Func_10362
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_10301)
ld hl, Func_10301
call nz, BankSwitch
ld a, [$d5f3]
and a
ret z
ld a, $2a
ld hl, $47e0
ld de, $87e0
ld bc, $0020
call CopyDataToRAM
ld a, $2a
ld hl, $4800
ld de, $8900
ld bc, $0180
call CopyDataToRAM
ld a, [wBallType]
cp GREAT_BALL
jr nc, .notPokeball
ld a, Bank(PinballPokeballShakeGfx)
ld hl, PinballPokeballShakeGfx
ld de, $8380
ld bc, $0040
call CopyDataToRAM
ret
.notPokeball
cp ULTRA_BALL
jr nc, .notGreatball
ld a, Bank(PinballGreatballShakeGfx)
ld hl, PinballGreatballShakeGfx
ld de, $8380
ld bc, $0040
call CopyDataToRAM
ret
.notGreatball
cp MASTER_BALL
jr nc, .notUltraball
ld a, Bank(PinballUltraballShakeGfx)
ld hl, PinballUltraballShakeGfx
ld de, $8380
ld bc, $0040
call CopyDataToRAM
ret
.notUltraball
ld a, Bank(PinballMasterballShakeGfx)
ld hl, PinballMasterballShakeGfx
ld de, $8380
ld bc, $0040
call CopyDataToRAM
ret
Func_141f2: ; 0x141f2
ld a, $80
ld hl, $9887
call Func_14209
ld hl, $98a7
call Func_14209
ld hl, $98c7
call Func_14209
ld hl, $98e7
; fall through
Func_14209: ; 0x14209
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ret
Func_14210: ; 0x14210
ld hl, $d586
ld b, $18
.asm_14215
ld a, [hli]
xor $1
ld [hli], a
dec b
jr nz, .asm_14215
ld [$ff8a], a
ld a, Bank(Func_10184)
ld hl, Func_10184
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_102bc)
ld hl, Func_102bc
call nz, BankSwitch
ret
Func_14234: ; 0x14234
ld a, [wInSpecialMode]
and a
ret z
ld a, [wSpecialMode]
cp $1
ret nz
ld a, [$d554]
cp $3
ret z
ld a, [wCurrentStage]
bit 0, a
jr nz, .asm_1425c
ld a, $36
ld hl, $7e80
ld de, $8900
ld bc, $00e0
call CopyDataToRAM
jr .asm_1426a
.asm_1425c
ld a, $36
ld hl, $7e80
ld de, $8200
ld bc, $00e0
call CopyDataToRAM
.asm_1426a
ld a, [$d551]
and a
ret z
ld a, [hGameBoyColorFlag]
and a
ret z
ld a, $37
ld hl, $5188
ld de, $0070
ld bc, $0010
call Func_6fd
ret
Func_14282: ; 0x14282
ld a, [wInSpecialMode]
and a
jr z, .asm_1429e
ld a, [wSpecialMode]
and a
jr nz, .asm_14296
ld a, [wNumMonHits]
and a
call nz, Func_142b3
ret
.asm_14296
cp $1
jr nz, .asm_1429e
call Func_142c3
ret
.asm_1429e
ld a, [$d624]
call Func_174d4
ld a, $36
ld hl, $4f60
ld de, $8ae0
ld bc, $0020
call CopyDataToRAM
ret
Func_142b3: ; 0x142b3
push af
ld [$ff8a], a
ld a, Bank(Func_10611)
ld hl, Func_10611
call BankSwitch
pop af
dec a
jr nz, Func_142b3
ret
Func_142c3: ; 0x142c3
ld de, $0000
ld a, [$d554]
and a
ret z
ld b, a
.asm_142cc
ld a, [wCurrentEvolutionType]
call Func_142d7
inc de
dec b
jr nz, .asm_142cc
ret
Func_142d7: ; 0x142d7
push bc
push de
dec a
ld c, a
ld b, $0
swap c
sla c
ld hl, $4e80
add hl, bc
swap e
sla e
push hl
ld hl, $8ae0
add hl, de
ld d, h
ld e, l
pop hl
ld bc, $0020
ld a, $36
call CopyDataToRAM
pop de
pop bc
ret
Func_142fc: ; 0x142fc
ld a, [$d4c8]
and a
jr nz, .asm_1430e
ld [$ff8a], a
ld a, Bank(LoadBallGfx)
ld hl, LoadBallGfx
call BankSwitch
jr .asm_14328
.asm_1430e
cp $1
jr nz, .asm_1431e
ld [$ff8a], a
ld a, Bank(LoadMiniBallGfx)
ld hl, LoadMiniBallGfx
call BankSwitch
jr .asm_14328
.asm_1431e
ld [$ff8a], a
ld a, Bank(Func_dd62)
ld hl, Func_dd62
call BankSwitch
.asm_14328
ld a, [hGameBoyColorFlag]
and a
ret z
ld a, [wBallType]
cp GREAT_BALL
jr nc, .notPokeball
ld a, $37
ld hl, $5168
ld de, $0040
ld bc, $0008
call Func_6fd
ret
.notPokeball
cp ULTRA_BALL
jr nc, .notGreatball
ld a, $37
ld hl, $5170
ld de, $0040
ld bc, $0008
call Func_6fd
ret
.notGreatball
cp MASTER_BALL
jr nc, .notUltraball
ld a, $37
ld hl, $5178
ld de, $0040
ld bc, $0008
call Func_6fd
ret
.notUltraball
ld a, $37
ld hl, $5180
ld de, $0040
ld bc, $0008
call Func_6fd
ret
Func_14377: ; 0x14377
ld a, [wInSpecialMode]
and a
jr nz, .asm_143b1
ld a, [$d609]
and a
jr z, .asm_14393
ld a, [$d498]
add $15
ld [$ff8a], a
ld a, Bank(Func_30256)
ld hl, Func_30256
call BankSwitch
ret
.asm_14393
ld a, [$d608]
and a
jr z, .asm_143a6
ld a, $1a
ld [$ff8a], a
ld a, Bank(Func_30256)
ld hl, Func_30256
call BankSwitch
ret
.asm_143a6
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ret
.asm_143b1
ld a, [wSpecialMode]
cp $2
ret nz
ld a, [$d54d]
cp $3
jr nz, .asm_143c9
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ret
.asm_143c9
ld a, [$d604]
and a
ld a, $14
jr nz, .asm_143d6
ld a, [$d55a]
add $12
.asm_143d6
ld [$ff8a], a
ld a, Bank(Func_30256)
ld hl, Func_30256
call BankSwitch
ret
Func_143e1: ; 0x143e1
; not collisions.
call Func_14474 ; voltorbs
call Func_14498
call Func_144b6
call Func_144c0
call Func_144da
call Func_14439
call Func_144ac
jp Func_1441e
Func_143f9: ; 0x143f9
ld a, [wBallYPos + 1]
cp $56
jr nc, .asm_14412
call Func_1444d
call Func_144cd
call Func_14467
call Func_1445a
call Func_14443
jp Func_1441e
.asm_14412
call Func_14481
call Func_144e4
call Func_144a2
jp Func_1448e
Func_1441e: ; 0x1441e
xor a
ld [$d578], a
ld a, [$d551]
and a
ret z
ld a, [wCurrentStage]
ld hl, RedStageEvolutionTrinketCoordinatePointers
ld c, a
ld b, $0
sla c
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
jp PinballCollideWithPoints
INCBIN "baserom.gbc",$14439,$14439 - $14439
Func_14439: ; 0x14439
ld de, $45b5
ld bc, $d5fe
scf
jp Func_2775
Func_14443: ; 0x14443
ld de, $45bb
ld bc, $d601
scf
jp Func_2775
Func_1444d: ; 0x1444d
ld de, $45af
ld hl, $459d
ld bc, $d5c7
and a
jp Func_2775
Func_1445a: ; 0x1445a
ld de, $45c9
ld hl, $45c1
ld bc, $d60a
and a
jp Func_2775
Func_14467: ; 0x14467
ld de, $44f4
ld hl, $44ee
ld bc, $d4ed
and a
jp Func_2775
Func_14474: ; 0x14474
ld de, $4515 ; todo
ld hl, $44fd ; todo
ld bc, $d4cb
and a
jp Func_2775
Func_14481: ; 0x14481
ld de, $452d
ld hl, $4521
ld bc, $d4d8
and a
jp Func_2775
Func_1448e: ; 0x1448e
ld de, $4536
ld bc, $d4dc
scf
jp Func_2775
Func_14498: ; 0x14498
ld de, $453c ; todo
ld bc, $d507
scf
jp Func_2775
Func_144a2: ; 0x144a2
ld de, $4542
ld bc, $d50d
scf
jp Func_2775
Func_144ac: ; 0x144ac
ld de, $4551
ld bc, $d5f7
scf
jp Func_2775
Func_144b6: ; 0x144b6
ld de, $455d ; todo
ld bc, $d51f
scf
jp Func_2775
Func_144c0: ; 0x144c0
ld de, $457d ; todo
ld hl, $4578 ; todo
ld bc, $d500
and a
jp Func_2775
Func_144cd: ; 0x144cd
ld de, $4588
ld hl, $4583
ld bc, $d500
and a
jp Func_2775
INCBIN "baserom.gbc",$144da,$144da - $144da
Func_144da: ; 0x144da
ld de, $458e
ld bc, $d4fb
scf
jp Func_2775
Func_144e4: ; 0x144e4
ld de, $4594
ld bc, $d515
scf
jp Func_2775
INCBIN "baserom.gbc",$144ee,$145d2 - $144ee
RedStageEvolutionTrinketCoordinatePointers: ; 0x145d2
dw RedStageTopEvolutionTrinketCoords
dw RedStageBottomEvolutionTrinketCoords
RedStageTopEvolutionTrinketCoords: ; 0x156d6
; First byte is just non-zero to signify that the array hasn't ended.
; Second byte is x coordinate.
; Third byte is y coordinate.
db $01, $44, $14
db $01, $2A, $1A
db $01, $5E, $1A
db $01, $11, $2D
db $01, $77, $2D
db $01, $16, $3E
db $01, $77, $3E
db $01, $06, $6D
db $01, $83, $6D
db $01, $41, $82
db $01, $51, $82
db $01, $69, $82
db $00 ; terminator
RedStageBottomEvolutionTrinketCoords: ; 0x145fb
; First byte is just non-zero to signify that the array hasn't ended.
; Second byte is x coordinate.
; Third byte is y coordinate.
db $01, $35, $1B
db $01, $53, $1B
db $01, $29, $1F
db $01, $5F, $1F
db $01, $26, $34
db $01, $62, $34
db $00 ; terminator
Func_1460e: ; 0x1460e
; not collisions
call Func_14d85
call Func_14dea
call Func_1535d
call HandleBallTypeUpgradeCounterRedField
call Func_15270
call Func_1581f
call Func_1660c
call Func_16781
call Func_15e93
call Func_160f0
call Func_161e0
call Func_164e3
call Func_146a9
call Func_174ea
call Func_148cf
ld [$ff8a], a
ld a, Bank(Func_30188)
ld hl, Func_30188
call BankSwitch
ld a, $0
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret
Func_14652: ; 0x14652
call Func_14795
call Func_15f86
call Func_147aa
call Func_14880
call Func_14e10
call Func_154a9
call HandleBallTypeUpgradeCounterRedField
call Func_151cb
call Func_1652d
call Func_1660c
call Func_167ff
call Func_169a6
call Func_16d9d
call Func_16279
call Func_161af
call Func_164e3
call Func_14733
call Func_146a2
call Func_174d0
ld [$ff8a], a
ld a, Bank(Func_30188)
ld hl, Func_30188
call BankSwitch
ld a, $0
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret
Func_146a2: ; 0x146a2
call Func_146a9
call nz, Func_14707
ret
Func_146a9: ; 0x146a9
ld a, [wBallSaverTimerFrames]
ld hl, wBallSaverTimerSeconds
or [hl]
ret z
ld a, [wBallXPos + 1]
cp $9a
jr nc, .asm_146e8
ld a, [wBallSaverTimerFrames]
dec a
ld [wBallSaverTimerFrames], a
bit 7, a
jr z, .asm_146e8
ld a, $3b
ld [wBallSaverTimerFrames], a
ld a, [hl]
dec a
bit 7, a
jr nz, .asm_146cf
ld [hl], a
.asm_146cf
inc a
ld c, $0
cp $2
jr c, .asm_146e4
ld c, $4
cp $6
jr c, .asm_146e4
ld c, $10
cp $b
jr c, .asm_146e4
ld c, $ff
.asm_146e4
ld a, c
ld [$d4a2], a
.asm_146e8
ld a, [$d4a2]
ld c, $0
and a
jr z, .asm_146fe
ld c, $1
cp $ff
jr z, .asm_146fe
ld hl, $ffb3
and [hl]
jr z, .asm_146fe
ld c, $0
.asm_146fe
ld a, [wBallSaverIconOn]
cp c
ld a, c
ld [wBallSaverIconOn], a
ret
Func_14707: ; 0x14707
ld a, [wBallSaverIconOn]
and a
jr nz, .asm_1471c
ld a, $5
ld hl, $472b
ld de, $99a8
ld bc, $0004
call Func_735
ret
.asm_1471c
ld a, $5
ld hl, $472f
ld de, $99a8
ld bc, $0004
call Func_735
ret
INCBIN "baserom.gbc",$1472b,$14733 - $1472b
Func_14733: ; 0x14733
ld c, $0
ld a, [$d49b]
and a
jr z, .asm_1473d
ld c, $1
.asm_1473d
ld a, [$d4a9]
cp c
ld a, c
ld [$d4a9], a
ret z
; fall through
Func_14746: ; 0x14746
ld c, $0
ld a, [$d49b]
and a
jr z, .asm_14750
ld c, $2
.asm_14750
ld b, $0
ld hl, $475f
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $5
call Func_10aa
ret
INCBIN "baserom.gbc",$1475f,$14795 - $1475f
Func_14795: ; 0x14795
ld a, [$d5c7]
and a
ret z
xor a
ld [$d5c7], a
ld a, $1
ld [$d5bf], a
ld de, $0006
call PlaySoundEffect
ret
Func_147aa: ; 0x147aa
ld a, [$d4ed]
and a
jp z, .asm_14834
xor a
ld [$d4ed], a
ld a, [$d4ee]
sub $1
sla a
ld c, a
ld b, $0
ld hl, wLeftMapMoveCounter
add hl, bc
ld a, [hl]
cp $3
jr z, .asm_14834
inc a
ld [hld], a
ld [hl], $50
ld hl, $d4f7
add hl, bc
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, c
and a
jr z, .asm_14807
ld a, $6a
ld [$c7f0], a
ld a, $6b
ld [$c810], a
ld a, $5
call Func_149d9
ld a, [wRightMapMoveCounter]
add $4
call Func_149f5
ld a, $8
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, [wRightMapMoveCounter]
cp $3
call z, Func_14920
jr .asm_14830
.asm_14807
ld a, $66
ld [$c7e3], a
ld a, $67
ld [$c803], a
ld a, $2
call Func_149d9
ld a, [wLeftMapMoveCounter]
call Func_149f5
ld a, $7
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, [wLeftMapMoveCounter]
cp $3
call z, Func_14947
.asm_14830
call Func_1496d
ret
.asm_14834
ld a, [$d4ef]
and a
jr z, .asm_14857
dec a
ld [$d4ef], a
jr nz, .asm_14857
ld a, [wLeftMapMoveCounter]
sub $3
jr nz, .asm_1484d
ld [wLeftMapMoveCounter], a
call Func_149f5
.asm_1484d
ld a, $64
ld [$c7e3], a
ld a, $65
ld [$c803], a
.asm_14857
ld a, [$d4f1]
and a
jr z, .asm_1487c
dec a
ld [$d4f1], a
jr nz, .asm_1487c
ld a, [wRightMapMoveCounter]
sub $3
jr nz, .asm_14872
ld [wRightMapMoveCounter], a
add $4
call Func_149f5
.asm_14872
ld a, $68
ld [$c7f0], a
ld a, $69
ld [$c810], a
.asm_1487c
call Func_14990
ret
Func_14880: ; 0x14880
ld hl, $d4f7
dec [hl]
ld a, [hli]
cp $ff
jr nz, .asm_148a6
dec [hl]
ld a, [hld]
cp $ff
jr nz, .asm_148a6
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wLeftMapMoveCounter]
and a
jr z, .asm_148a6
cp $3
jr z, .asm_148a6
dec a
ld [wLeftMapMoveCounter], a
call Func_149f5
.asm_148a6
ld hl, $d4f9
dec [hl]
ld a, [hli]
cp $ff
jr nz, .asm_148ce
dec [hl]
ld a, [hld]
cp $ff
jr nz, .asm_148ce
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wRightMapMoveCounter]
and a
jr z, .asm_148ce
cp $3
jr z, .asm_148ce
dec a
ld [wRightMapMoveCounter], a
add $4
call Func_149f5
.asm_148ce
ret
Func_148cf: ; 0x148cf
ld b, $0
ld hl, $d4f8
ld a, [hld]
or [hl]
jr z, .asm_148f8
dec [hl]
ld a, [hli]
cp $ff
jr nz, .asm_148f8
dec [hl]
ld a, [hld]
cp $ff
jr nz, .asm_148f8
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wLeftMapMoveCounter]
and a
jr z, .asm_148f8
cp $3
jr z, .asm_148f8
dec a
ld [wLeftMapMoveCounter], a
.asm_148f8
ld hl, $d4fa
ld a, [hld]
or [hl]
jr z, .asm_1491f
dec [hl]
ld a, [hli]
cp $ff
jr nz, .asm_1491f
dec [hl]
ld a, [hld]
cp $ff
jr nz, .asm_1491f
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wRightMapMoveCounter]
and a
jr z, .asm_1491f
cp $3
jr z, .asm_1491f
dec a
ld [wRightMapMoveCounter], a
.asm_1491f
ret
Func_14920: ; 0x14920
ld hl, $d62b
call Func_e4a
jr nc, .asm_14937
ld c, $a
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
.asm_14937
ld a, $1
ld [$d55a], a
ld [$ff8a], a
ld a, Bank(StartMapMoveMode)
ld hl, StartMapMoveMode
call BankSwitch
ret
Func_14947: ; 0x14947
ld hl, $d62b
call Func_e4a
jr nc, .asm_1495e
ld c, $a
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
.asm_1495e
xor a
ld [$d55a], a
ld [$ff8a], a
ld a, Bank(StartMapMoveMode)
ld hl, StartMapMoveMode
call BankSwitch
ret
Func_1496d: ; 0x1496d
ld a, $55
ld [$d803], a
ld a, $4
ld [$d804], a
ld a, $2
ld [$d7eb], a
ld bc, $34be
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld de, $000f
call PlaySoundEffect
ret
Func_14990: ; 0x14990
ld a, [$d4ef]
and a
jr nz, .asm_149b6
ld a, [wLeftMapMoveDiglettAnimationCounter]
and a
jr z, .asm_149a2
dec a
ld [wLeftMapMoveDiglettAnimationCounter], a
jr .asm_149b6
.asm_149a2
call Func_1130
ret nz
ld a, $14
ld [wLeftMapMoveDiglettAnimationCounter], a
ld a, [wLeftMapMoveDiglettFrame]
xor $1
ld [wLeftMapMoveDiglettFrame], a
call Func_149d9
.asm_149b6
ld a, [$d4f1]
and a
ret nz
ld a, [wRightMapMoveDiglettAnimationCounter]
and a
jr z, .asm_149c6
dec a
ld [wRightMapMoveDiglettAnimationCounter], a
ret
.asm_149c6
call Func_1130
ret nz
ld a, $14
ld [wRightMapMoveDiglettAnimationCounter], a
ld a, [wRightMapMoveDiglettFrame]
xor $1
ld [wRightMapMoveDiglettFrame], a
add $3
; fall through
Func_149d9: ; 0x149d9
sla a
ld c, a
ld b, $0
ld hl, $4a11 ; todo
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_149e9
ld hl, $4a83 ; todo
.asm_149e9
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $5
call Func_10aa
ret
Func_149f5: ; 0x149f5
sla a
ld c, a
ld b, $0
ld hl, $4af5 ; todo
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_14a05
ld hl, $4c8d ; todo
.asm_14a05
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $5
call Func_10aa
ret
INCBIN "baserom.gbc",$14a11,$14d85 - $14a11
Func_14d85: ; 0x14d85
ld a, [$d4cb]
and a
jr z, .asm_14db9
xor a
ld [$d4cb], a
call Func_14dc9
ld a, $10
ld [$d4d6], a
ld a, [$d4cc]
sub $3
ld [$d4d7], a
ld a, $4
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld bc, $34be
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ret
.asm_14db9
ld a, [$d4d6]
and a
ret z
dec a
ld [$d4d6], a
ret nz
ld a, $ff
ld [$d4d7], a
ret
Func_14dc9: ; 0x14dc9
ld a, $ff
ld [$d803], a
ld a, $3
ld [$d804], a
ld hl, $0200
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
ld de, $000e
call PlaySoundEffect
ret
Func_14dea: ; 0x14dea
ld a, [$d507]
and a
jr z, Func_14e10
xor a
ld [$d507], a
ld a, [wBallYVelocity]
ld c, a
ld a, [wBallYVelocity + 1]
ld b, a
ld a, c
ld [$d50b], a
ld a, b
ld [$d50c], a
ld a, $c
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
; fall through
Func_14e10: ; 0x14e10
ld hl, $d50b
ld a, [hli]
or [hl]
ret z
ld a, [$d50b]
ld c, a
ld a, [$d50c]
ld b, a
bit 7, b
jr nz, .asm_14e2e
ld a, c
sub $7
ld c, a
ld a, b
sbc $0
ld b, a
jr nc, .asm_14e3b
jr .asm_14e38
.asm_14e2e
ld a, c
add $7
ld c, a
ld a, b
adc $0
ld b, a
jr nc, .asm_14e3b
.asm_14e38
ld bc, $0000
.asm_14e3b
ld a, c
ld [$d50b], a
ld a, b
ld [$d50c], a
ld hl, $d50b
ld a, [$d509]
add [hl]
ld [$d509], a
inc hl
ld a, [$d50a]
adc [hl]
bit 7, a
ld c, $0
jr z, .asm_14e5e
add $18
ld c, $1
jr .asm_14e66
.asm_14e5e
cp $18
jr c, .asm_14e66
sub $18
ld c, $1
.asm_14e66
ld [$d50a], a
ld a, c
and a
ret z
ld bc, $34ac
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld hl, $d62d
call Func_e4a
ld a, [$d517]
cp $f
jr nz, .asm_14e8a
call Func_14ea7
ret
.asm_14e8a
inc a
ld [$d517], a
call Func_14ea7
ld a, [$d517]
cp $f
jr nz, .asm_14e9d
ld a, $64
ld [$d51e], a
.asm_14e9d
ld a, [wCurrentStage]
bit 0, a
ret nz
call Func_14ece
ret
Func_14ea7: ; 0x14ea7
ld a, [$d51e]
and a
ret nz
ld a, [$d517]
ld c, a
ld b, $0
ld hl, $4ebe ; todo
add hl, bc
ld a, [hl]
ld e, a
ld d, $0
call PlaySoundEffect
ret
INCBIN "baserom.gbc",$14ebe,$14ece - $14ebe
Func_14ece: ; 0x14ece
ld a, [$d517]
ld c, a
sla c
ld b, $0
ld hl, $4eeb ; todo
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_14ee1
ld hl, $509b
.asm_14ee1
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $5
call Func_10aa
ret
INCBIN "baserom.gbc",$14eeb,$151cb - $14eeb
Func_151cb: ; 0x151cb
ld a, [$d50d]
and a
jr z, .asm_15229
xor a
ld [$d50d], a
ld a, [$d513]
and a
jr nz, .asm_15229
ld a, [$d50e]
sub $a
ld c, a
ld b, $0
ld hl, $d50f
add hl, bc
ld a, [hl]
ld [hl], $1
and a
ret nz
ld bc, $34b2
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld hl, $d50f
ld a, [hli]
and [hl]
inc hl
and [hl]
inc hl
and [hl]
jr z, Func_asm_1522d
ld a, $1
ld [$d513], a
ld a, $80
ld [$d514], a
ld bc, $34b8
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld de, $0009
call PlaySoundEffect
ld hl, $d62c
call Func_e4a
jr Func_asm_1522d
.asm_15229
call Func_15270
ret z
; fall through
Func_asm_1522d: ; 0x1522d
ld hl, $d512
ld b, $4
.asm_15232
ld a, [hld]
push hl
call Func_1523c
pop hl
dec b
jr nz, .asm_15232
ret
Func_1523c: ; 0x1523c
and a
jr z, .asm_1524e
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_15249
ld hl, $52dd ; todo
jr .asm_1525b
.asm_15249
ld hl, $531d ; todo
jr .asm_1525b
.asm_1524e
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_15258
ld hl, $52e5
jr .asm_1525b
.asm_15258
ld hl, $5325
.asm_1525b
push bc
dec b
sla b
ld e, b
ld d, $0
add hl, de
ld c, [hl]
inc hl
ld b, [hl]
ld a, $5
ld de, LoadTileLists
call Func_10c5
pop bc
ret
Func_15270: ; 0x15270
ld a, [$d513]
and a
jr z, .asm_152a6
ld a, [$d514]
dec a
ld [$d514], a
jr nz, .asm_1528d
ld [$d513], a
ld a, $1
ld [$d608], a
ld a, $3
ld [$d607], a
xor a
.asm_1528d
and $7
ret nz
ld a, [$d514]
srl a
srl a
srl a
and $1
ld hl, $d50f
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
ld a, $1
and a
ret
.asm_152a6
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed
jr z, .asm_152c2
ld hl, $d50f
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
ld a, c
ld [hld], a
ld a, d
ld [hld], a
ld a, e
ld [hld], a
ld a, b
ld [hl], a
ret
.asm_152c2
ld hl, wKeyConfigRightFlipper
call IsKeyPressed
ret z
ld hl, $d50f
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
ld a, e
ld [hld], a
ld a, b
ld [hld], a
ld a, c
ld [hld], a
ld a, d
ld [hl], a
ret
INCBIN "baserom.gbc",$152dd,$1535d - $152dd
Func_1535d: ; 0x1535d
ld a, [$d5f7]
and a
jp z, .asm_1544c
xor a
ld [$d5f7], a
ld a, [wStageCollisionState]
bit 0, a
jp z, .asm_1544c
ld a, [$d5fc]
and a
jp nz, .asm_1544c
xor a
ld [wRightAlleyTrigger], a
ld [wLeftAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
call Func_159c9
ld a, $b
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, [$d5f8]
sub $e
ld c, a
ld b, $0
ld hl, $d5f9
add hl, bc
ld a, [hl]
ld [hl], $1
and a
ret nz
ld bc, $34b2
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld hl, $d5f9
ld a, [hli]
and [hl]
inc hl
and [hl]
jr nz, .asm_153c0
ld de, $0009
call PlaySoundEffect
jp Func_15450
.asm_153c0
ld a, $1
ld [$d5fc], a
ld a, $80
ld [$d5fd], a
; load approximately 1 minute of frames into wBallTypeCounter
ld a, $10
ld [wBallTypeCounter], a
ld a, $e
ld [wBallTypeCounter + 1], a
ld bc, $34b8
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld a, [wBallType]
cp MASTER_BALL
jr z, .masterBall
ld de, $063a
call PlaySoundEffect
call Func_30e8
call Func_30db
ld de, $2907
ld hl, $d5cc
call Func_32aa
ld a, [wBallType]
ld c, a
ld b, $0
ld hl, BallTypeProgressionRedField
add hl, bc
ld a, [hl]
ld [wBallType], a
add $30
ld [$c512], a
jr .asm_15447
.masterBall
ld de, $0f4d
call PlaySoundEffect
ld bc, $34e8
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld bc, $0100
ld de, $0000
push bc
push de
call Func_30e8
call Func_30db
ld hl, $d5d4
ld de, $2948
call Func_32cc
pop de
pop bc
ld hl, $d5cc
ld de, $2922
call Func_32aa
.asm_15447
call Func_155a7
jr Func_15450
.asm_1544c
call Func_154a9
ret z
Func_15450
ld a, [wStageCollisionState]
bit 0, a
ret z
ld hl, $d5fb
ld b, $3
.asm_1545b
ld a, [hld]
push hl
call Func_15465
pop hl
dec b
jr nz, .asm_1545b
ret
Func_15465: ; 0x15465
and a
jr z, .asm_15477
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_15472
ld hl, $5511 ; todo
jr .asm_15484
.asm_15472
ld hl, $5543 ; todo
jr .asm_15484
.asm_15477
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_15481
ld hl, $5517 ; todo
jr .asm_15484
.asm_15481
ld hl, $5549 ; todo
.asm_15484
push bc
dec b
sla b
ld e, b
ld d, $0
add hl, de
ld c, [hl]
inc hl
ld b, [hl]
ld a, $5
ld de, LoadTileLists
call Func_10c5
pop bc
ret
Func_15499: ; 0x15499
ld a, [hGameBoyColorFlag]
and a
ret nz
ld b, $3
.asm_1549f
push hl
xor a
call Func_15465
pop hl
dec b
jr nz, .asm_1549f
ret
Func_154a9: ; 0x154a9
ld a, [$d5fc]
and a
jr z, .asm_154d6
ld a, [$d5fd]
dec a
ld [$d5fd], a
jr nz, .asm_154bb
ld [$d5fc], a
.asm_154bb
and $7
jr nz, .asm_154d4
ld a, [$d5fd]
srl a
srl a
srl a
and $1
ld hl, $d5f9
ld [hli], a
ld [hli], a
ld [hl], a
ld a, $1
and a
ret
.asm_154d4
xor a
ret
.asm_154d6
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed
jr z, .asm_154ee
ld hl, $d5f9
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hl]
ld e, a
ld a, c
ld [hld], a
ld a, e
ld [hld], a
ld a, b
ld [hl], a
ret
.asm_154ee
ld hl, wKeyConfigRightFlipper
call IsKeyPressed
ret z
ld hl, $d5f9
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hl]
ld e, a
ld a, b
ld [hld], a
ld a, c
ld [hld], a
ld a, e
ld [hl], a
ret
BallTypeProgressionRedField: ; 0x15505
; Determines the next upgrade for the Ball.
db GREAT_BALL ; POKE_BALL -> GREAT_BALL
db GREAT_BALL ; unused
db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL
db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL
db MASTER_BALL ; unused
db MASTER_BALL ; MASTER_BALL -> MASTER_BALL
BallTypeDegradationRedField: ; 0x1550b
; Determines the previous upgrade for the Ball.
db POKE_BALL ; POKE_BALL -> POKE_BALL
db POKE_BALL ; unused
db POKE_BALL ; GREAT_BALL -> POKE_BALL
db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL
db ULTRA_BALL ; unused
db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL
INCBIN "baserom.gbc",$15511,$15575 - $15511
HandleBallTypeUpgradeCounterRedField: ; 0x15575
ld a, [$d5f3]
and a
ret nz
ld hl, wBallTypeCounter
ld a, [hli]
ld c, a
ld b, [hl]
or b
ret z
dec bc
ld a, b
ld [hld], a
ld [hl], c
or c
ret nz
; counter is now 0! Degrade the ball upgrade.
ld a, [wBallType]
ld c, a
ld b, $0
ld hl, BallTypeDegradationRedField
add hl, bc
ld a, [hl]
ld [wBallType], a
and a
jr z, .pokeball
; load approximately 1 minute of frames into wBallTypeCounter
ld a, $10
ld [wBallTypeCounter], a
ld a, $e
ld [wBallTypeCounter + 1], a
.pokeball
call Func_155a7
ret
Func_155a7: ; 0x155a7
ld a, [wBallType]
ld c, a
sla c
ld b, $0
ld hl, $55d7 ; todo
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $5
call Func_10aa
; fall through
Func_155bb: ; 0x155bb
ld a, [hGameBoyColorFlag]
and a
ret z
; gameboy color
ld a, [wBallType]
sla a
ld c, a
ld b, $0
ld hl, $57f7 ; todo
add hl, bc
ld c, [hl]
inc hl
ld b, [hl]
ld a, $5
ld de, $1266
call Func_10c5
ret
INCBIN "baserom.gbc",$155d7,$1581f - $155d7
Func_1581f: ; 0x1581f
ld a, [$d51f]
and a
ret z
xor a
ld [$d51f], a
ld bc, $34a6
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld a, [$d520]
sub $11
ld c, a
ld b, $0
ld hl, $d521
add hl, bc
ld [hl], $1
ld a, [$d521]
and a
call nz, Func_1587c
ld a, [$d522]
and a
call nz, Func_158c0
ld a, [$d523]
and a
call nz, Func_15904
ld a, [$d524]
and a
call nz, HandleLeftAlleyTriggerRedField
ld a, [$d525]
and a
call nz, Func_15931
ld a, [$d526]
and a
call nz, Func_15944
ld a, [$d527]
and a
call nz, HandleRightAlleyTriggerRedField
ld a, [$d528]
and a
call nz, Func_15990
ret
Func_1587c: ; 0x1587c
xor a
ld [$d521], a
ld a, [wLeftAlleyTrigger]
and a
ret z
xor a
ld [wLeftAlleyTrigger], a
ld a, $1
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret c
ld a, [wLeftAlleyCount]
cp $3
ret z
inc a
ld [wLeftAlleyCount], a
set 7, a
ld [wIndicatorStates], a
cp $83
ret nz
ld a, [wStageCollisionState]
and $1
or $6
ld [wStageCollisionState], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
call Func_159f4
ret
Func_158c0: ; 0x158c0
xor a
ld [$d522], a
ld a, [wLeftAlleyTrigger]
and a
ret z
xor a
ld [wLeftAlleyTrigger], a
ld a, $1
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret c
ld a, [wLeftAlleyCount]
cp $3
ret z
inc a
ld [wLeftAlleyCount], a
set 7, a
ld [wIndicatorStates], a
cp $83
ret nz
ld a, [wStageCollisionState]
and $1
or $6
ld [wStageCollisionState], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
call Func_159f4
ret
Func_15904: ; 0x15904
xor a
ld [$d523], a
ld a, [wSecondaryLeftAlleyTrigger]
and a
ret z
xor a
ld [wSecondaryLeftAlleyTrigger], a
ld a, $3
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret
HandleLeftAlleyTriggerRedField: ; 0x1591e
; Ball passed over the left alley trigger point in the Red Field.
xor a
ld [$d524], a
ld [wRightAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
ld a, $1
ld [wLeftAlleyTrigger], a
call Func_159c9
ret
Func_15931: ; 0x15931
xor a
ld [$d525], a
ld [wRightAlleyTrigger], a
ld [wLeftAlleyTrigger], a
ld a, $1
ld [wSecondaryLeftAlleyTrigger], a
call Func_159c9
ret
Func_15944: ; 0x15944
xor a
ld [$d526], a
ld a, [wRightAlleyTrigger]
and a
ret z
xor a
ld [wRightAlleyTrigger], a
ld a, $2
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret c
ld a, [wRightAlleyCount]
cp $3
ret z
inc a
ld [wRightAlleyCount], a
cp $3
jr z, .asm_1596e
set 7, a
.asm_1596e
ld [wIndicatorStates + 1], a
ld a, [wRightAlleyCount]
cp $2
ret c
ld a, $80
ld [wIndicatorStates + 3], a
ret
HandleRightAlleyTriggerRedField: ; 0x1597d
; Ball passed over the right alley trigger point in the Red Field.
xor a
ld [$d527], a
ld [wLeftAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
ld a, $1
ld [wRightAlleyTrigger], a
call Func_159c9
ret
Func_15990: ; 0x15990
xor a
ld [$d528], a
ld a, [wRightAlleyTrigger]
and a
ret z
xor a
ld [wRightAlleyTrigger], a
ld a, $2
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret c
ld a, [wRightAlleyCount]
cp $3
ret z
inc a
ld [wRightAlleyCount], a
cp $3
jr z, .asm_159ba
set 7, a
.asm_159ba
ld [wIndicatorStates + 1], a
ld a, [wRightAlleyCount]
cp $2
ret c
ld a, $80
ld [wIndicatorStates + 3], a
ret
Func_159c9: ; 0x159c9
ld a, [$d7ad]
bit 7, a
ret nz
ld c, a
ld a, [wStageCollisionState]
and $1
or c
ld [wStageCollisionState], a
ld a, $ff
ld [$d7ad], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
call Func_159f4
ld a, $1
ld [$d580], a
call Func_1404a
ret
Func_159f4: ; 0x159f4
ld a, [$ff9e]
bit 7, a
jr z, .asm_15a13
ld a, [$d7f2]
and $fe
ld c, a
ld a, [wStageCollisionState]
and $fe
cp c
jr z, .asm_15a13
add c
cp $2
jr z, .asm_15a13
ld de, $0000
call PlaySoundEffect
.asm_15a13
ld a, [$d7f2]
swap a
ld c, a
ld a, [wStageCollisionState]
sla a
or c
ld c, a
ld b, $0
ld hl, $5a3f ; todo
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_15a2d
ld hl, $5d05
.asm_15a2d
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $5
call Func_10aa
ld a, [wStageCollisionState]
ld [$d7f2], a
ret
INCBIN "baserom.gbc",$15a3f,$15e93 - $15a3f
Func_15e93: ; 0x15e93
ld a, [$d4fb]
and a
jr z, .asm_15eda
xor a
ld [$d4fb], a
ld bc, $34d0
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld de, $0005
call PlaySoundEffect
ld hl, $5f69 ; todo
ld de, $d4fd
call CopyHLToDE
xor a
ld [wBallXVelocity], a
ld [wBallXVelocity + 1], a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld [wBallXPos], a
ld [wBallYPos], a
ld a, $7c
ld [wBallXPos + 1], a
ld a, $78
ld [wBallYPos + 1], a
xor a
ld [$d549], a
.asm_15eda
ld hl, $5f69 ; todo
ld de, $d4fd
call Func_28a9
push af
ld a, [$d4fd]
and a
jr nz, .asm_15ef8
ld a, $19
ld [$d4fd], a
xor a
ld [$d4fe], a
ld a, $6
ld [$d4ff], a
.asm_15ef8
pop af
ret nc
ld a, [$d4ff]
cp $1
jr nz, .asm_15f35
xor a
ld [$d548], a
ld a, [wRightAlleyCount]
cp $2
jr c, .noCatchEmMode
ld a, $8
jr nz, .asm_15f11
xor a
.asm_15f11
ld [wRareMonsFlag], a
ld [$ff8a], a
ld a, Bank(StartCatchEmMode)
ld hl, StartCatchEmMode
call BankSwitch
.noCatchEmMode
ld hl, $d62a
call Func_e4a
ret nc
ld c, $19
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
ret
.asm_15f35
ld a, [$d4ff]
cp $4
jr nz, .asm_15f42
ld a, $1
ld [$d548], a
ret
.asm_15f42
ld a, [$d4ff]
cp $5
ret nz
ld a, $1
ld [$d549], a
xor a
ld [wBallXVelocity + 1], a
ld a, $2
ld [wBallYVelocity + 1], a
ld de, $0006
call PlaySoundEffect
ld a, $5
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret
INCBIN "baserom.gbc",$15f69,$15f86 - $15f69
Func_15f86: ; 0x15f86
ld a, [$d4d8]
and a
jr z, .asm_15f99
call Func_5fb8
call Func_15fa6
xor a
ld [$d4d8], a
call Func_15fda
.asm_15f99
ld a, [$d4da]
and a
ret z
dec a
ld [$d4da], a
call z, Func_5fb8
ret
Func_15fa6: ; 0x15fa6
ld a, $10
ld [$d4da], a
ld a, [$d4d9]
sub $6
ld [$d4db], a
sla a
inc a
jr asm_15fc0
Func_5fb8: ; 0x5fb8
ld a, [$d4db]
cp $ff
ret z
sla a
asm_15fc0
sla a
ld c, a
ld b, $0
ld hl, $6010 ; todo
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_15fd0
ld hl, $6080
.asm_15fd0
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $5
call Func_10aa
ret
Func_15fda: ; 0x15fda
ld a, $ff
ld [$d803], a
ld a, $3
ld [$d804], a
ld hl, $0200
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
ld a, [$d4d9]
sub $6
ld c, a
ld b, $0
ld hl, $600e
add hl, bc
ld a, [$d7ea]
add [hl]
ld [$d7ea], a
ld de, $000b
call PlaySoundEffect
ret
INCBIN "baserom.gbc",$1600e,$160f0 - $1600e
Func_160f0: ; 0x160f0
ld a, [$d5fe]
and a
jr z, .asm_16137
xor a
ld [$d5fe], a
ld bc, $34d0
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld de, $0021
call PlaySoundEffect
xor a
ld hl, wBallXVelocity
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [$d549], a
ld [wBallXPos], a
ld [wBallYPos], a
ld a, $11
ld [wBallXPos + 1], a
ld a, $23
ld [wBallYPos + 1], a
ld a, $10
ld [$d600], a
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
.asm_16137
ld a, [$d600]
and a
ret z
dec a
ld [$d600], a
cp $f
jr nz, .asm_1614f
ld [$ff8a], a
ld a, Bank(LoadMiniBallGfx)
ld hl, LoadMiniBallGfx
call BankSwitch
ret
.asm_1614f
cp $c
jr nz, .asm_1615e
ld [$ff8a], a
ld a, Bank(Func_dd62)
ld hl, Func_dd62
call BankSwitch
ret
.asm_1615e
cp $9
jr nz, .asm_1616d
xor a
ld [$d548], a
ld [wBallSpin], a
ld [wBallRotation], a
ret
.asm_1616d
cp $6
jr nz, .asm_1618e
ld [$ff8a], a
ld a, Bank(Func_10ab3)
ld hl, Func_10ab3
call BankSwitch
ld a, $1
ld [$d548], a
ld [$d549], a
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
ret
.asm_1618e
cp $3
jr nz, .asm_1619d
ld [$ff8a], a
ld a, Bank(LoadMiniBallGfx)
ld hl, LoadMiniBallGfx
call BankSwitch
ret
.asm_1619d
and a
ret nz
ld [$ff8a], a
ld a, Bank(LoadBallGfx)
ld hl, LoadBallGfx
call BankSwitch
ld a, $2
ld [wBallYVelocity + 1], a
ret
Func_161af: ; 0x161af
ld a, [$d604]
and a
ret z
ld a, [wBallYPos + 1]
sub $fe
cp $30
ret nc
ld c, $0
ld b, a
ld h, b
ld l, c
srl b
rr c
srl b
rr c
srl h
rr l
add hl, bc
ld a, [wBallXPos + 1]
sub $38
cp $30
ret nc
ld c, a
ld b, $0
sla c
sla c
add hl, bc
jr asm_1620f
Func_161e0: ; 0x161e0
ld a, [$d604]
and a
ret z
ld a, [wBallYPos + 1]
sub $86
cp $30
ret nc
ld c, $0
ld b, a
ld h, b
ld l, c
srl b
rr c
srl b
rr c
srl h
rr l
add hl, bc
ld a, [wBallXPos + 1]
sub $38
cp $30
ret nc
ld c, a
ld b, $0
sla c
sla c
add hl, bc
asm_1620f: ; 0x1620f
ld bc, $4000
add hl, bc
ld de, wBallXVelocity
ld a, $3c
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $3c
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
push bc
ld a, $3c
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $3c
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
bit 7, b
jr z, .asm_1624e
ld a, c
cpl
ld c, a
ld a, b
cpl
ld b, a
inc bc
.asm_1624e
pop hl
bit 7, h
jr z, .asm_1625a
ld a, l
cpl
ld l, a
ld a, h
cpl
ld h, a
inc hl
.asm_1625a
add hl, bc
sla l
rl h
ld a, h
cp $2
ret c
ld a, [$d804]
and a
ret nz
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
ld de, $0004
call PlaySoundEffect
ret
Func_16279: ; 0x16279
ld a, [$d601]
and a
jr z, .asm_162ae
xor a
ld [$d601], a
ld a, [$d604]
and a
ret z
ld a, [$d603]
and a
jr nz, .asm_162ae
xor a
ld hl, wBallXVelocity
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [$d549], a
ld [wBallXPos], a
ld [wBallYPos], a
ld a, $50
ld [wBallXPos + 1], a
ld a, $16
ld [wBallYPos + 1], a
ld a, $13
ld [$d603], a
.asm_162ae
ld a, [$d603]
and a
ret z
dec a
ld [$d603], a
ld a, $18
ld [$d606], a
ld a, [$d603]
cp $12
jr nz, .asm_162d4
ld de, $0021
call PlaySoundEffect
ld [$ff8a], a
ld a, Bank(LoadMiniBallGfx)
ld hl, LoadMiniBallGfx
call BankSwitch
ret
.asm_162d4
cp $f
jr nz, .asm_162e3
ld [$ff8a], a
ld a, Bank(Func_dd62)
ld hl, Func_dd62
call BankSwitch
ret
.asm_162e3
cp $c
jr nz, .asm_162f2
xor a
ld [$d548], a
ld [wBallSpin], a
ld [wBallRotation], a
ret
.asm_162f2
cp $9
jr nz, .asm_162fa
call Func_16352
ret
.asm_162fa
cp $6
jr nz, .asm_16317
xor a
ld [$d604], a
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
ld [$ff8a], a
ld a, Bank(LoadMiniBallGfx)
ld hl, LoadMiniBallGfx
call BankSwitch
ret
.asm_16317
cp $3
jr nz, .asm_16330
ld [$ff8a], a
ld a, Bank(LoadBallGfx)
ld hl, LoadBallGfx
call BankSwitch
ld a, $2
ld [wBallYVelocity + 1], a
ld a, $80
ld [wBallXVelocity], a
ret
.asm_16330
and a
ret nz
call Func_16425
ld a, [$d622]
cp $1
ret nz
call GenRandom
and $8
ld [wRareMonsFlag], a
ld [$ff8a], a
ld a, Bank(StartCatchEmMode)
ld hl, StartCatchEmMode
call BankSwitch
xor a
ld [$d622], a
ret
Func_16352: ; 0x16352
xor a
ld [wIndicatorStates + 4], a
ld a, $d
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
jr nc, .asm_1636d
ld a, $1
ld [$d548], a
ld [$d549], a
ret
.asm_1636d
ld a, [$d624]
cp $3
jr nz, .asm_163b3
ld a, [$d607]
and a
jr nz, .asm_163b3
.asm_1637a
ld a, [$d623]
and a
jr nz, .asm_16389
xor a
ld [$d625], a
ld a, $40
ld [$d626], a
.asm_16389
xor a
ld [$d623], a
ld a, $1
ld [$d495], a
ld [$d4ae], a
ld a, [$d498]
ld c, a
ld b, $0
ld hl, $6420
add hl, bc
ld a, [hl]
ld [$d497], a
call Func_163f2
xor a
ld [$d609], a
ld [$d622], a
ld a, $1e
ld [$d607], a
ret
.asm_163b3
ld [$ff8a], a
ld a, Bank(Func_ed8e)
ld hl, Func_ed8e
call BankSwitch
xor a
ld [$d608], a
ld a, [$d61d]
cp $d
jr nc, .asm_1637a
ld a, $1
ld [$d548], a
ld [$d549], a
ld a, [$d622]
cp $2
ret nz
ld [$ff8a], a
ld a, Bank(Func_10ab3)
ld hl, Func_10ab3
call BankSwitch
ld a, [$d7ad]
ld c, a
ld a, [wStageCollisionState]
and $1
or c
ld [wStageCollisionState], a
xor a
ld [$d622], a
ret
Func_163f2: ; 0x163f2
call Func_30e8
call Func_30db
ld hl, $d5dc
ld a, [$d497]
ld de, $2e83
cp $d
jr z, .asm_1640f
ld de, $2e9e
cp $7
jr z, .asm_1640f
ld de, $2eb8
.asm_1640f
call Func_32aa
ld de, $0000
call PlaySong
rst $10
ld de, $3c23
call PlaySoundEffect
ret
INCBIN "baserom.gbc",$16420,$16425 - $16420
Func_16425: ; 0x16425
ld a, [wCurrentStage]
and $1
sla a
ld c, a
ld a, [$d604]
add c
sla a
ld c, a
ld b, $0
ld hl, $644d ; todo
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_16441
ld hl, $64a1 ; todo
.asm_16441
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $5
call Func_10aa
ret
INCBIN "baserom.gbc",$1644d,$164e3 - $1644d
Func_164e3: ; 0x164e3
ld a, [$d607]
and a
ret z
dec a
ld [$d607], a
ret nz
ld a, [wInSpecialMode]
and a
ret nz
ld a, [$d609]
and a
jr z, .asm_164ff
ld a, [$d498]
add $15
jr .asm_16506
.asm_164ff
ld a, [$d608]
and a
ret z
ld a, $1a
.asm_16506
ld hl, wCurrentStage
bit 0, [hl]
ld [$ff8a], a
ld a, Bank(Func_30256)
ld hl, Func_30256
call nz, BankSwitch
ld a, [$d604]
and a
ret nz
ld a, $1
ld [$d604], a
ld a, $80
ld [wIndicatorStates + 4], a
ld a, [wCurrentStage]
bit 0, a
call nz, Func_16425
ret
Func_1652d: ; 0x1652d
ld a, [$d4dc]
and a
ret z
xor a
ld [$d4dc], a
ld a, [$d4de]
and a
jr z, .asm_16566
xor a
ld [wRightAlleyTrigger], a
ld [wLeftAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
ld hl, wBallXVelocity
ld [hli], a
ld [hl], a
ld [wBallSpin], a
ld [wBallRotation], a
ld a, $80
ld [wBallYVelocity], a
ld a, $fa
ld [wBallYVelocity + 1], a
ld a, $1
ld [$d549], a
ld de, $000a
call PlaySoundEffect
.asm_16566
ld a, $ff
ld [$d4ec], a
ld a, [$d4de]
and a
ret nz
ld a, [$d4e0]
and a
jr nz, .asm_16582
call Func_1658f
ld a, $1
ld [$d4e0], a
ld [$d4de], a
ret
.asm_16582
ld hl, wKeyConfigBallStart
call IsKeyPressed
ret z
ld a, $1
ld [$d4de], a
ret
Func_1658f: ; 0x1658f
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_f269)
ld hl, Func_f269
call nz, BankSwitch
.showNextMap
ld a, [wInitialMapSelectionIndex]
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 [wInitialMapSelectionIndex], a
ld c, a
ld b, $0
ld hl, RedStageInitialMaps
add hl, bc
ld a, [hl]
ld [wCurrentMap], a
push af
ld de, $0048
call PlaySoundEffect
pop af
add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers
ld [$ff8a], a
ld a, Bank(LoadBillboardPicture)
ld hl, LoadBillboardPicture
call BankSwitch
ld b, $20 ; number of frames to delay before the next map is shown
.waitOnCurrentMap
push bc
ld [$ff8a], a
ld a, Bank(Func_eeee)
ld hl, Func_eeee
call BankSwitch
ld hl, wKeyConfigBallStart
call IsKeyPressed
jr nz, .ballStartKeyPressed
pop bc
dec b
jr nz, .waitOnCurrentMap
jr .showNextMap
.ballStartKeyPressed
pop bc
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld bc, $2cd1
ld [$ff8a], a
ld a, Bank(Func_3118f)
ld hl, Func_3118f
call BankSwitch
ld a, [wCurrentMap]
ld [$d4e3], a
xor a
ld [$d4e2], a
ret
RedStageInitialMaps: ; 0x16605
db PALLET_TOWN
db VIRIDIAN_FOREST
db PEWTER_CITY
db CERULEAN_CITY
db VERMILION_SEASIDE
db ROCK_MOUNTAIN
db LAVENDER_TOWN
Func_1660c: ; 0x1660c
ld a, [$d515]
and a
jr z, .asm_1667b
xor a
ld [$d515], a
ld a, [$d51c]
and a
jr nz, .asm_1667b
ld a, [$d51d]
and a
jr nz, .asm_16634
ld a, [$d516]
sub $1c
ld hl, $d518
cp [hl]
jr nz, .asm_1667b
ld a, [$d517]
cp $f
jr nz, .asm_16667
.asm_16634
ld hl, $673c ; todo
ld de, $d519
call CopyHLToDE
ld a, [$d51d]
and a
jr nz, .asm_16647
xor a
ld [$d517], a
.asm_16647
ld a, $1
ld [$d51c], a
xor a
ld [wBallXVelocity], a
ld [wBallXVelocity + 1], a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld [wBallSpin], a
ld [wBallRotation], a
ld [$d549], a
call Func_30e8
jr .asm_1667b
.asm_16667
ld hl, $6761 ; todo
ld de, $d519
call CopyHLToDE
ld a, $2
ld [$d51c], a
ld de, $003b
call PlaySoundEffect
.asm_1667b
ld a, [$d51c]
and a
call z, Func_16766
call Func_1669e
ld a, [$d517]
cp $f
ret nz
ld a, [$d51e]
and a
ret z
dec a
ld [$d51e], a
cp $5a
ret nz
ld de, $0f22
call PlaySoundEffect
ret
Func_1669e: ; 0x1669e
ld a, [$d51c]
cp $1
jr nz, .asm_16719
ld hl, $673c ; todo
ld de, $d519
call Func_28a9
ret nc
ld a, [$d51b]
cp $1
jr nz, .asm_166f7
xor a
ld [$d85d], a
call Func_310a
rst $10
ld a, $1
ld [$ff8a], a
ld a, Bank(PlayPikachuSoundClip)
ld hl, PlayPikachuSoundClip
call BankSwitch
ld a, $1
ld [$d85d], a
ld a, $ff
ld [$d803], a
ld a, $60
ld [$d804], a
ld hl, $d62e
call Func_e4a
jr nc, .asm_166f0
ld c, $a
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
.asm_166f0
ld de, $1610
call PlaySoundEffect
ret
.asm_166f7
ld a, [$d51b]
cp $11
ret nz
ld a, $fc
ld [wBallYVelocity + 1], a
ld a, $1
ld [$d549], a
ld bc, $34ca
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
xor a
ld [$d51c], a
ret
.asm_16719
cp $2
jr nz, .asm_16732
ld hl, $6761 ; todo
ld de, $d519
call Func_28a9
ret nc
ld a, [$d51b]
cp $1
ret nz
xor a
ld [$d51c], a
ret
.asm_16732
ld a, [$ffb3]
swap a
and $1
ld [$d51a], a
ret
INCBIN "baserom.gbc",$1673c,$16766 - $1673c
Func_16766: ; 0x16766
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed2
jr z, .asm_16774
ld hl, $d518
ld [hl], $0
ret
.asm_16774
ld hl, wKeyConfigRightFlipper
call IsKeyPressed2
ret z
ld hl, $d518
ld [hl], $1
ret
Func_16781: ; 0x16781
ld a, [$d500]
and a
jr z, .asm_167bd
xor a
ld [$d500], a
ld a, [$d503]
and a
jr nz, .asm_167c2
ld bc, $34ca
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld a, [$d502]
xor $1
set 1, a
ld [$d502], a
ld a, $14
ld [$d503], a
call Func_16859
ld a, $6
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret
.asm_167bd
ld a, [$d503]
and a
ret z
.asm_167c2
dec a
ld [$d503], a
ret nz
ld a, [$d502]
res 1, a
ld [$d502], a
call Func_16859
ld a, [$d502]
and $1
ld c, a
ld a, [wStageCollisionState]
and $fe
or c
ld [wStageCollisionState], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
call Func_159f4
ld de, $0007
call PlaySoundEffect
ld a, [wStageCollisionState]
bit 0, a
jp nz, Func_15450
jp Func_15499
Func_167ff: ; 0x167ff
ld a, [$d500]
and a
jr z, .asm_16839
xor a
ld [$d500], a
ld a, [$d503]
and a
jr nz, .asm_1683e
ld bc, $34ca
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld a, [$d502]
xor $1
ld [$d502], a
ld a, $14
ld [$d503], a
call Func_16878
ld a, $6
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret
.asm_16839
ld a, [$d503]
and a
ret z
.asm_1683e
dec a
ld [$d503], a
ret nz
ld a, [$d502]
and $1
ld c, a
ld a, [wStageCollisionState]
and $fe
or c
ld [wStageCollisionState], a
ld de, $0007
call PlaySoundEffect
ret
Func_16859: ; 0x16859
ld a, [$d502]
sla a
ld c, a
ld b, $0
ld hl, $6899 ; todo
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1686c
ld hl, $6910 ; todo
.asm_1686c
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $5
call Func_10aa
ret
Func_16878: ; 0x16878
ld a, [$d502]
and $1
sla a
ld c, a
ld b, $0
ld hl, $695a ; todo
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1688d
ld hl, $6980 ; todo
.asm_1688d
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $5
call Func_10aa
ret
INCBIN "baserom.gbc",$16899,$169a6 - $16899
Func_169a6: ; 0x169a6
ld a, [$ffb3]
and $1f
ret nz
ld bc, $0000
.asm_169ae
push bc
ld hl, wIndicatorStates
add hl, bc
bit 7, [hl]
jr z, .asm_169c5
ld a, [hl]
res 7, a
ld hl, $ffb3
bit 5, [hl]
jr z, .asm_169c2
inc a
.asm_169c2
call Func_169cd
.asm_169c5
pop bc
inc c
ld a, c
cp $5
jr nz, .asm_169ae
ret
Func_169cd: ; 0x169cd
push af
sla c
ld hl, $69ed
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_169db
ld hl, $6bef
.asm_169db
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
pop af
sla a
ld c, a
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $5
call Func_10aa
ret
INCBIN "baserom.gbc",$169ed,$16d9d - $169ed
Func_16d9d: ; 016d9d
ld a, [$d60a]
and a
jp z, Func_16e51
xor a
ld [$d60a], a
ld de, $000d
call PlaySoundEffect
ld a, [$d60b]
sub $21
jr nz, .asm_16ddc
ld a, $9
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, [$d610]
cp $3
jr nz, .asm_16e35
ld a, $1
ld [$d610], a
ld a, $3
ld [$d611], a
ld a, [$d60c]
set 7, a
ld [$d60c], a
jr .asm_16e35
.asm_16ddc
ld a, $a
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, [$d611]
cp $3
jr nz, .asm_16e35
ld a, $1
ld [$d610], a
ld a, $1
ld [$d611], a
ld a, $80
ld [$d612], a
ld a, [$d60d]
set 7, a
ld [$d60d], a
ld a, [$d482]
inc a
cp $64
jr c, .asm_16e10
ld a, $63
.asm_16e10
ld [$d482], a
jr nc, .asm_16e24
ld c, $19
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
.asm_16e24
ld a, [$d60c]
ld [$d614], a
ld a, [$d60d]
ld [$d615], a
ld a, $1
ld [$d613], a
.asm_16e35
ld bc, $34ac
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld a, [$d60c]
call Func_16f28
ld a, [$d60d]
add $14
call Func_16f28
ret
Func_16e51: ; 0x16e51
call Func_16ef5
ld a, [$d612]
and a
jr z, .asm_16e8f
dec a
ld [$d612], a
cp $70
jr nz, .asm_16e6e
ld a, $2
ld [$d610], a
ld a, $2
ld [$d611], a
jr .asm_16e8f
.asm_16e6e
and a
jr nz, .asm_16e8f
ld a, $3
ld [$d610], a
xor a
ld [$d611], a
ld a, [$d482]
call Func_16f95
ld a, [$d60c]
call Func_16f28
ld a, [$d60d]
add $14
call Func_16f28
ret
.asm_16e8f
ld a, [$d610]
cp $2
jr c, .asm_16ec1
cp $3
ld a, [$ffb3]
jr c, .asm_16ea0
srl a
srl a
.asm_16ea0
ld b, a
and $3
jr nz, .asm_16ec1
bit 3, b
jr nz, .asm_16eb6
ld a, [$d60c]
res 7, a
ld [$d60c], a
call Func_16f28
jr .asm_16ec1
.asm_16eb6
ld a, [$d60c]
set 7, a
ld [$d60c], a
call Func_16f28
.asm_16ec1
ld a, [$d611]
cp $2
ret c
cp $3
ld a, [$ffb3]
jr c, .asm_16ed1
srl a
srl a
.asm_16ed1
ld b, a
and $3
ret nz
bit 3, b
jr nz, .asm_16ee7
ld a, [$d60d]
res 7, a
ld [$d60d], a
add $14
call Func_16f28
ret
.asm_16ee7
ld a, [$d60d]
set 7, a
ld [$d60d], a
add $14
call Func_16f28
ret
Func_16ef5: ; 0x16ef5
ld a, [$d5ca]
and a
ret nz
ld a, [$d613]
and a
ret z
xor a
ld [$d613], a
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $2958
call Func_32aa
ld hl, $c512
ld a, [$d614]
and $7f
jr z, .asm_16f1f
add $30
ld [hli], a
.asm_16f1f
ld a, [$d615]
res 7, a
add $30
ld [hl], a
ret
Func_16f28: ; 0x16f28
push af
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_16f33
pop af
call Func_16f38
ret
.asm_16f33
pop af
call Func_16f7b
ret
Func_16f38: ; 0x16f38
push af
res 7, a
ld hl, $d60e
cp $14
jr c, .asm_16f47
ld hl, $d60f
sub $a
.asm_16f47
cp [hl]
jr z, .asm_16f5c
ld [hl], a
ld c, a
ld b, $0
sla c
ld hl, $6fc8
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $5
call Func_10aa
.asm_16f5c
pop af
ld bc, $0000
bit 7, a
jr z, .asm_16f68
res 7, a
set 1, c
.asm_16f68
cp $14
jr c, .asm_16f6e
set 2, c
.asm_16f6e
ld hl, $71e4
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $5
call Func_10aa
ret
Func_16f7b: ; 0x16f7b
bit 7, a
jr z, .asm_16f83
res 7, a
add $a
.asm_16f83
ld c, a
ld b, $0
sla c
ld hl, $7228
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $5
call Func_10aa
ret
Func_16f95: ; 0x16f95
ld a, [$d482]
inc a
cp $64
jr c, .asm_16f9f
ld a, $63
.asm_16f9f
ld b, a
xor a
ld hl, $6fc1 ; todo
ld c, $7
.asm_16fa6
bit 0, b
jr z, .asm_16fac
add [hl]
daa
.asm_16fac
srl b
inc hl
dec c
jr nz, .asm_16fa6
push af
swap a
and $f
ld [$d60c], a
pop af
and $f
ld [$d60d], a
ret
INCBIN "baserom.gbc",$16fc1,$174d0 - $16fc1
Func_174d0: ; 0x174d0
call Func_174ea
ret nc
; fall through
Func_174d4: ; 0x174d4
sla a
ld c, a
ld b, $0
ld hl, $7528 ; todo
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, $5
ld de, LoadTileLists
call Func_10c5
ret
Func_174ea: ; 0x174ea
ld a, [$d624]
ld hl, $d625
cp [hl]
ret z
ld a, [$d626]
dec a
ld [$d626], a
jr nz, .asm_17514
ld a, [$d625]
ld [$d624], a
cp $3
jr c, .asm_1750f
ld a, $1
ld [$d609], a
ld a, $3
ld [$d607], a
.asm_1750f
ld a, [$d624]
scf
ret
.asm_17514
and $7
ret nz
ld a, [$d626]
bit 3, a
jr nz, .asm_17523
ld a, [$d624]
scf
ret
.asm_17523
ld a, [$d625]
scf
ret
INCBIN "baserom.gbc",$17528,$1755c - $17528
Func_1755c: ; 0x1755c
ld bc, $7f00
call Func_175a4
call Func_17cc4
call Func_17d34
call Func_17d59
call Func_17d7a
call Func_17d92
call Func_17de1
call Func_17e81
call Func_17efb
call Func_17f64
ret
Func_1757e: ; 0x1757e
ld bc, $7f00
call Func_175a4
call Func_17c67
call Func_17c96
call Func_17e08
ld [$ff8a], a
ld a, Bank(Func_e4a1)
ld hl, Func_e4a1
call BankSwitch
call Func_17e81
call Func_17f0f
call Func_17f75
call Func_17fca
ret
Func_175a4: ; 0x175a4
ld a, [$d57d]
and a
ret z
ld a, [hGameBoyColorFlag]
and a
jr nz, DrawTimer
ld a, [$d580]
and a
ret z
ld a, [$d581]
and a
jr z, .asm_175be
dec a
ld [$d581], a
ret
.asm_175be
call Func_1762f
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 d, $0
ld hl, $7615
add hl, de
ld a, [hli]
call Func_17627
ld a, [hli]
call Func_17627
ld a, [hli]
call Func_17627
ld a, [hli]
call Func_17627
ret
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
; fall through
Func_17627: ; 0x17627
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, [wInSpecialMode]
and a
ret z
ld a, [wSpecialMode]
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,$17c67 - $17679
Func_17c67: ; 0x17c67
ld a, [$d5f3]
and a
ret z
ld a, $50
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $38
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d5f5]
ld e, a
ld d, $0
ld hl, $7c89
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$17c89,$17c96 - $17c89
Func_17c96: ; 0x17c96
ld a, [$d5bb]
and a
ret z
ld a, $50
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $3e
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d5bd]
ld e, a
ld d, $0
ld hl, $7cb8
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$17cb8,$17cc4 - $17cb8
Func_17cc4: ; 0x17cc4
ld de, $d4cd
ld hl, $7d15
call Func_17cdc
ld de, $d4d0
ld hl, $7d1b
call Func_17cdc
ld de, $d4d3
ld hl, $7d21
; fall through
Func_17cdc: ; 0x17cdc
push hl
ld hl, $7d27
call Func_28a9
ld h, d
ld l, e
ld a, [hl]
and a
jr nz, .asm_17cf6
call GenRandom
and $7
add $1e
ld [hli], a
ld a, $1
ld [hli], a
xor a
ld [hl], a
.asm_17cf6
pop hl
inc de
ld a, [hBoardXShift]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hBoardYShift]
ld c, a
ld a, [hli]
sub c
ld c, a
ld a, [$d4d7]
sub [hl]
inc hl
jr z, .asm_17d0c
ld a, [de]
.asm_17d0c
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$17d15,$17d34 - $17d15
Func_17d34: ; 0x17d34
ld a, $0
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $10
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [wStageCollisionState]
ld e, a
ld d, $0
ld hl, $7d51
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$17d51,$17d59 - $17d51
Func_17d59: ; 0x17d59
ld a, $74
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $52
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d4fe]
ld e, a
ld d, $0
ld hl, $7d76
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$17d76,$17d7a - $17d76
Func_17d7a: ; 0x17d7a
ld a, [hGameBoyColorFlag]
and a
ret z
ld a, $67
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $54
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, $cc
call LoadOAMData
ret
Func_17d92: ; 0x17d92
ld a, [hGameBoyColorFlag]
and a
ret z
ld hl, $7dd0
ld de, $d504
call Func_28a9
ld a, [$d504]
and a
jr nz, .asm_17db1
ld a, $13
ld [$d504], a
xor a
ld [$d505], a
ld [$d506], a
.asm_17db1
ld a, $2b
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $69
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d505]
ld e, a
ld d, $0
ld hl, $7dce
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$17dce,$17de1 - $17dce
Func_17de1: ; 0x17de1
ld a, $88
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $5a
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d50a]
srl a
srl a
ld e, a
ld d, $0
ld hl, $7e02
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$17e02,$17e08 - $17e02
Func_17e08: ; 0x17e08
ld a, [hBoardXShift]
ld d, a
ld a, [hBoardYShift]
ld e, a
ld a, [$d51d]
and a
ld a, [$d518]
jr z, .asm_17e33
ld a, [$d51c]
and a
jr nz, .asm_17e29
ld a, [$ffb3]
srl a
srl a
srl a
and $1
jr .asm_17e33
.asm_17e29
ld a, [$d4b4]
cp $50
ld a, $1
jr nc, .asm_17e33
xor a
.asm_17e33
sla a
ld c, a
ld b, $0
ld hl, $7e4b
add hl, bc
ld a, [hli]
sub d
ld b, a
ld a, [hli]
sub e
ld c, a
ld a, [$d51a]
add $e
call LoadOAMData
ret
INCBIN "baserom.gbc",$17e4b,$17e81 - $17e4b
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
Func_17efb: ; 0x17efb
ld a, [$d551]
and a
ret nz
ld a, [$ffb3]
bit 4, a
ret z
ld de, wIndicatorStates + 5
ld hl, $7f3a
ld b, $6
jr asm_17f21
Func_17f0f: ; 0x17f0f
ld a, [$d551]
and a
ret nz
ld a, [$ffb3]
bit 4, a
ret z
ld de, wIndicatorStates + 11
ld hl, $7f4c
ld b, $8
asm_17f21: ; 0x17f21
push bc
ld a, [hBoardXShift]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hBoardYShift]
ld c, a
ld a, [hli]
sub c
ld c, a
ld a, [de]
and a
ld a, [hli]
call nz, LoadOAMData
pop bc
inc de
dec b
jr nz, asm_17f21
ret
INCBIN "baserom.gbc",$17f3a,$17f64 - $17f3a
Func_17f64: ; 0x17f64
ld a, [$d551]
and a
ret z
ld de, $d566
ld hl, $7fa6
ld b, $c
ld c, $39
jr asm_17f84
Func_17f75: ; 0x17f75
ld a, [$d551]
and a
ret z
ld de, $d572
ld hl, $7fbe
ld b, $6
ld c, $40
asm_17f84: ; 0x17f84
push bc
ld a, [de]
add c
cp c
push af
ld a, [hBoardXShift]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hBoardYShift]
ld c, a
ld a, [hli]
sub c
ld c, a
ld a, [$ffb3]
and $e
jr nz, .asm_17f9c
dec c
.asm_17f9c
pop af
call nz, LoadOAMData
pop bc
inc de
dec b
jr nz, asm_17f84
ret
INCBIN "baserom.gbc",$17fa6,$17fca - $17fa6
Func_17fca: ; 0x17fca
ld a, [$d604]
and a
ret z
ld a, [$d606]
inc a
ld [$d606], a
ld a, $40
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $1
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d606]
srl a
srl a
srl a
and $3
add $4f
cp $52
call nz, LoadOAMData
ret
INCBIN "baserom.gbc",$17ff7,$18000 - $17ff7
SECTION "bank6", ROMX, BANK[$6]
Func_18000: ; 0x18000
ld hl, wc000
ld bc, $0a00
call ClearData
ld a, $1
ld [$ff4f], a
ld hl, $9c00
ld bc, $0400
call ClearData
xor a
ld [$ff4f], a
ld hl, $d4cb
ld bc, $032e
call ClearData
xor a
ld hl, $d46f
ld [hld], a
ld [hld], a
ld [hld], a
ld [hld], a
ld [hld], a
ld [hl], a
ld [wNumPartyMons], a
ld [$d49b], a
ld [$d4c9], a
ld a, $1
ld [$d49d], a
ld a, $3
ld [$d49e], a
ld [$ff8a], a
ld a, Bank(Func_dbba)
ld hl, Func_dbba
call BankSwitch
ret
Func_1804a: ; 0x1804a
ld a, $0
ld [wBallXPos], a
ld a, $b0
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $98
ld [wBallYPos + 1], a
ret
Func_1805f: ; 0x1805f
ret
Func_18060: ; 0x18060
ret
Func_18061: ; 0x18061
ret
Func_18062: ; 0x18062
ld [$ff8a], a
ld a, Bank(Func_1448e)
ld hl, Func_1448e
call BankSwitch
ret
Func_1806d: ; 0x1806d
ret
Func_1806e: ; 0x1806e
ld [$ff8a], a
ld a, Bank(Func_1652d)
ld hl, Func_1652d
call BankSwitch
ret
Func_18079: ; 0x18079
ld [$ff8a], a
ld a, Bank(Func_17e81)
ld hl, Func_17e81
call BankSwitch
ret
Func_18084: ; 0x18084
ld [$ff8a], a
ld a, Bank(Func_e4a1)
ld hl, Func_e4a1
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_17e81)
ld hl, Func_17e81
call BankSwitch
ret
InitGengarBonusStage: ; 0x18099
ld a, [$d7c1]
and a
jr z, .asm_180ac
xor a
ld [$d674], a
ld a, $8
ld [$d690], a
ld [$d6a1], a
ret
.asm_180ac
ld a, $1
ld [$d7ac], a
ld a, [wBallType]
ld [wBallTypeBackup], a
xor a
ld [$d4c8], a
ld [wBallType], a
ld [$d49a], a
ld hl, $4121 ; todo
ld de, $d659
call Func_18112
call Func_18112
call Func_18112
ld hl, $413c ; todo
ld de, $d67e
call Func_18112
call Func_18112
ld hl, $414e ; todo
ld de, $d698
call Func_18112
xor a
ld [$d67b], a
ld [$d695], a
ld hl, $d6a2
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [$d656], a
ld bc, $0130 ; 1 minute 30 seconds
ld [$ff8a], a
ld a, Bank(StartTimer)
ld hl, StartTimer
call BankSwitch
ld a, $f
call SetSongBank
ld de, $0005
call PlaySong
ret
Func_18112: ; 0x18112
ld b, $3
.asm_18114
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .asm_18114
ret
INCBIN "baserom.gbc",$18121,$18157 - $18121
StartBallGengarBonusStage: ; 0x18157
ld a, $0
ld [wBallXPos], a
ld a, $a6
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $56
ld [wBallYPos + 1], a
xor a
ld [$d7ab], a
ld [wStageCollisionState], a
ld [$d653], a
xor a
ld [$d674], a
ld a, $8
ld [$d690], a
ld [$d6a1], a
ld a, [$d4c9]
and a
ret z
xor a
ld [$d4c9], a
ret
Func_1818b: ; 0x1818b
ld [$ff8a], a
ld a, Bank(Func_142fc)
ld hl, Func_142fc
call BankSwitch
call Func_2862
call Func_18d72
ld a, [$d7c1]
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
and a
ret z
call Func_183db
call Func_18d91
ret
Func_181b1: ; 0x181b1
call Func_181be
call Func_18259
call Func_182e4
call Func_18350
ret
Func_181be: ; 0x181be
ld a, [$d659]
and a
ret z
ld a, [$d65f]
ld b, a
ld a, [$d661]
add $10
ld c, a
ld a, [$d65b]
call Func_1820d
ld a, $1
jr c, .asm_181fe
ld a, [$d668]
ld b, a
ld a, [$d66a]
add $10
ld c, a
ld a, [$d664]
call Func_1820d
ld a, $2
jr c, .asm_181fe
ld a, [$d671]
ld b, a
ld a, [$d673]
add $10
ld c, a
ld a, [$d66d]
call Func_1820d
ld a, $3
ret nc
.asm_181fe
ld [$d4eb], a
ld [$d657], a
add $4
ld [$d4ea], a
ld [$d658], a
ret
Func_1820d: ; 0x1820d
cp $4
jr z, .asm_18257
ld a, [wBallXPos + 1]
sub b
cp $20
jr nc, .asm_18257
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $20
jr nc, .asm_18257
ld c, a
ld e, c
ld d, $0
sla e
rl d
sla e
rl d
sla e
rl d
sla e
rl d
sla e
rl d
ld l, b
ld h, $0
add hl, de
ld de, $5100
add hl, de
ld a, $3a
call ReadByteFromBank
bit 7, a
jr nz, .asm_18257
sla a
ld [$d7ea], a
ld a, $1
ld [$d7e9], a
scf
ret
.asm_18257
and a
ret
Func_18259: ; 0x18259
ld a, [$d67e]
and a
ret z
ld a, [$d684]
add $fe
ld b, a
ld a, [$d686]
add $c
ld c, a
ld a, [$d680]
call Func_18298
ld a, $1
jr c, .asm_18289
ld a, [$d68d]
add $fe
ld b, a
ld a, [$d68f]
add $c
ld c, a
ld a, [$d689]
call Func_18298
ld a, $2
ret nc
.asm_18289
ld [$d4eb], a
ld [$d67c], a
add $7
ld [$d4ea], a
ld [$d67d], a
ret
Func_18298: ; 0x18298
cp $5
jr z, .asm_182e2
ld a, [wBallXPos + 1]
sub b
cp $20
jr nc, .asm_182e2
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $28
jr nc, .asm_182e2
ld c, a
ld e, c
ld d, $0
sla e
rl d
sla e
rl d
sla e
rl d
sla e
rl d
sla e
rl d
ld l, b
ld h, $0
add hl, de
ld de, $4c00
add hl, de
ld a, $3a
call ReadByteFromBank
bit 7, a
jr nz, .asm_182e2
sla a
ld [$d7ea], a
ld a, $1
ld [$d7e9], a
scf
ret
.asm_182e2
and a
ret
Func_182e4: ; 0x182e4
ld a, [$d698]
and a
ret z
ld a, [$d69e]
ld b, a
ld a, [$d6a0]
add $c
ld c, a
call Func_18308
ld a, $1
ret nc
ld [$d4eb], a
ld [$d696], a
add $9
ld [$d4ea], a
ld [$d697], a
ret
Func_18308: ; 0x18308
ld a, [wBallXPos + 1]
sub b
cp $30
jr nc, .asm_1834e
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $40
jr nc, .asm_1834e
ld c, a
ld a, c
sla a
add c
ld e, a
ld d, $0
sla e
rl d
sla e
rl d
sla e
rl d
sla e
rl d
ld l, b
ld h, $0
add hl, de
ld de, $4000
add hl, de
ld a, $3a
call ReadByteFromBank
bit 7, a
jr nz, .asm_1834e
sla a
ld [$d7ea], a
ld a, $1
ld [$d7e9], a
scf
ret
.asm_1834e
and a
ret
Func_18350: ; 0x18350
ld de, $4368 ; todo
ld hl, $435d ; todo
ld bc, $d654
and a
jp Func_2775
INCBIN "baserom.gbc",$1835d,$18377 - $1835d
Func_18377: ; 0x18377
call Func_18464
call Func_1860b
call Func_187b1
call Func_18d34
call Func_183b7
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $1
ld [$d7be], a
call Func_2862
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld a, [$d6a2]
cp $5
ret nc
ld a, $1
ld [$d6a8], a
ret
Func_183b7: ; 0x183b7
ld a, [$d653]
and a
ret nz
ld a, [$d4b4]
cp $8a
ret nc
ld a, $1
ld [wStageCollisionState], a
ld [$d653], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
call Func_183db
call Func_18d91
ret
Func_183db: ; 0x183db
ld a, [wStageCollisionState]
sla a
ld c, a
ld b, $0
ld hl, $43f8
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_183ee
ld hl, $442e
.asm_183ee
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $6
call Func_10aa
ret
INCBIN "baserom.gbc",$183f8,$18464 - $183f8
Func_18464: ; 0x18464
ld a, [$d659]
and a
ret z
ld a, [$d657]
and a
jr z, .asm_184d5
xor a
ld [$d657], a
ld a, [$d7be]
and a
jr nz, .asm_184d5
ld a, [$d658]
sub $5
ld c, a
sla a
sla a
sla a
add c
ld c, a
ld b, $0
ld hl, $d65d
add hl, bc
ld d, h
ld e, l
ld a, [de]
and a
jr nz, .asm_184d5
push de
dec de
dec de
dec de
ld hl, $45e6
call CopyHLToDE
pop de
ld a, $1
ld [de], a
ld a, [$d67b]
inc a
ld [$d67b], a
ld bc, $34d6
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld a, $33
ld [$d803], a
ld a, $8
ld [$d804], a
ld hl, $0100
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
ld de, $002c
call PlaySoundEffect
.asm_184d5
ld bc, $0830
ld de, $d65d
ld hl, $d675
call Func_1850c
ld bc, $5078
ld de, $d666
ld hl, $d677
call Func_1850c
ld bc, $3050
ld de, $d66f
ld hl, $d679
call Func_1850c
ld de, $d65d
call Func_18562
ld de, $d666
call Func_18562
ld de, $d66f
call Func_18562
ret
Func_1850c: ; 0x1850c
ld a, [de]
and a
ret nz
inc de
push hl
ld a, [hli]
push af
push bc
ld a, [hl]
inc a
and $1f
ld [hl], a
ld c, a
ld b, $0
ld hl, $4542
add hl, bc
pop bc
pop af
and a
jr nz, .asm_18534
ld a, [de]
add [hl]
ld [de], a
inc de
ld a, [de]
adc $0
ld [de], a
pop hl
cp c
ret c
ld a, $1
ld [hl], a
ret
.asm_18534
ld a, [de]
sub [hl]
ld [de], a
inc de
ld a, [de]
sbc $0
ld [de], a
pop hl
cp b
ret nc
xor a
ld [hl], a
ret
INCBIN "baserom.gbc",$18542,$18562 - $18542
Func_18562: ; 0x18562
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $45d9
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
dec de
call Func_28a9
pop de
ret nc
ld a, [de]
dec de
and a
jr nz, .asm_1858a
ld a, [de]
cp $4
ret nz
ld hl, $45dd
dec de
dec de
call CopyHLToDE
ret
.asm_1858a
cp $1
ret nz
ld a, [de]
cp $12
ret nz
ld a, [$d67b]
cp $a
jr nz, .asm_185b1
ld a, $1
ld [$d67e], a
ld [$d687], a
xor a
ld [$d659], a
ld [$d662], a
ld [$d66b], a
ld de, $0006
call PlaySong
ret
.asm_185b1
ld c, a
ld a, [$d65d]
and a
jr nz, .asm_185b9
inc c
.asm_185b9
ld a, [$d666]
and a
jr nz, .asm_185c0
inc c
.asm_185c0
ld a, [$d66f]
and a
jr nz, .asm_185c7
inc c
.asm_185c7
ld a, c
cp $a
ret nc
ld hl, $45dd
push de
dec de
dec de
call CopyHLToDE
pop de
inc de
xor a
ld [de], a
ret
INCBIN "baserom.gbc",$185d9,$1860b - $185d9
Func_1860b: ; 0x1860b
ld a, [$d67e]
and a
ret z
ld a, [$d67c]
and a
jr z, .asm_1867c
xor a
ld [$d67c], a
ld a, [$d7be]
and a
jr nz, .asm_1867c
ld a, [$d67d]
sub $8
ld c, a
sla a
sla a
sla a
add c
ld c, a
ld b, $0
ld hl, $d682
add hl, bc
ld d, h
ld e, l
ld a, [de]
and a
jr nz, .asm_1867c
push de
dec de
dec de
dec de
ld hl, $478a
call CopyHLToDE
pop de
ld a, $1
ld [de], a
ld a, [$d695]
inc a
ld [$d695], a
ld bc, $34e2
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld a, $33
ld [$d803], a
ld a, $8
ld [$d804], a
ld hl, $0100
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
ld de, $002d
call PlaySoundEffect
.asm_1867c
ld bc, $5078
ld de, $d682
ld hl, $d691
call Func_186a1
ld bc, $1038
ld de, $d68b
ld hl, $d693
call Func_186a1
ld de, $d682
call Func_186f7
ld de, $d68b
call Func_186f7
ret
Func_186a1: ; 0x186a1
ld a, [de]
and a
ret nz
inc de
push hl
ld a, [hli]
push af
push bc
ld a, [hl]
inc a
and $1f
ld [hl], a
ld c, a
ld b, $0
ld hl, $46d7
add hl, bc
pop bc
pop af
and a
jr nz, .asm_186c9
ld a, [de]
add [hl]
ld [de], a
inc de
ld a, [de]
adc $0
ld [de], a
pop hl
cp c
ret c
ld a, $1
ld [hl], a
ret
.asm_186c9
ld a, [de]
sub [hl]
ld [de], a
inc de
ld a, [de]
sbc $0
ld [de], a
pop hl
cp b
ret nc
xor a
ld [hl], a
ret
INCBIN "baserom.gbc",$186d7,$186f7 - $186d7
Func_186f7: ; 0x186f7
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $477d
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
dec de
call Func_28a9
pop de
ret nc
ld a, [de]
dec de
and a
jr nz, .asm_1871f
ld a, [de]
cp $4
ret nz
ld hl, $4781
dec de
dec de
call CopyHLToDE
ret
.asm_1871f
cp $1
ret nz
ld a, [de]
cp $12
jr nz, .asm_18761
ld a, [$d695]
cp $a
jr nz, .asm_18740
ld a, $1
ld [$d656], a
call Func_18d72
call Func_18d91
ld de, $0000
call PlaySong
ret
.asm_18740
ld c, a
ld a, [$d682]
and a
jr nz, .asm_18748
inc c
.asm_18748
ld a, [$d68b]
and a
jr nz, .asm_1874f
inc c
.asm_1874f
ld a, c
cp $a
ret nc
ld hl, $4781
push de
dec de
dec de
call CopyHLToDE
pop de
inc de
xor a
ld [de], a
ret
.asm_18761
cp $13
ret nz
ld a, [$d695]
cp $a
ret nz
ld a, $1
ld [$d698], a
xor a
ld [$d67e], a
ld [$d687], a
ld de, GENGAR
call PlayCry
ret
INCBIN "baserom.gbc",$1877d,$187b1 - $1877d
Func_187b1: ; 0x187b1
ld a, [$d698]
and a
ret z
ld a, [$d696]
and a
jp z, .asm_1885d
xor a
ld [$d696], a
ld a, [$d7be]
and a
jp nz, .asm_1885d
ld a, [$d697]
sub $a
ld c, a
sla a
sla a
sla a
add c
ld c, a
ld b, $0
ld hl, $d69c
add hl, bc
ld d, h
ld e, l
ld a, [de]
and a
jp nz, .asm_1885d
push de
dec de
dec de
dec de
ld a, [$d6a2]
inc a
ld [$d6a2], a
cp $5
jr nc, .asm_18804
ld hl, $4b2b
call CopyHLToDE
pop de
ld a, $2
ld [de], a
ld de, $0037
call PlaySoundEffect
jr .asm_18826
.asm_18804
ld hl, $4b32
call CopyHLToDE
pop de
ld a, $3
ld [de], a
ld a, $1
ld [$d7be], a
call Func_2862
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld de, $0000
call PlaySong
.asm_18826
ld bc, $34ee
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld a, $33
ld [$d803], a
ld a, $8
ld [$d804], a
ld hl, $0200
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
ld a, [$d69f]
add $0
ld [$d69f], a
ld a, [$d6a0]
adc $ff
ld [$d6a0], a
.asm_1885d
ld a, [$d69c]
cp $2
jr nc, .asm_18869
call Func_18876
jr .asm_1886c
.asm_18869
call Func_188e1
.asm_1886c
ld de, $d69c
call Func_189af
call Func_1894c
ret
Func_18876: ; 0x18876
ld a, [$d6a3]
cp $1
jr z, .asm_1889b
cp $2
jr z, .asm_1889b
ld a, [$d69a]
cp $1
jr z, .asm_1888c
cp $2
jr nz, .asm_1889b
.asm_1888c
ld a, $1
ld [$d6a4], a
ld a, $11
ld [$d803], a
ld a, $8
ld [$d804], a
.asm_1889b
ld a, [$d69a]
ld hl, $d6a3
cp [hl]
ret z
ld a, [$d69c]
and a
jr nz, .asm_188da
ld a, [$d6a0]
add $80
cp $a0
jr nc, .asm_188da
ld a, [$d69a]
and a
jr z, .asm_188ca
ld a, [$d69f]
add $0
ld [$d69f], a
ld a, [$d6a0]
adc $3
ld [$d6a0], a
jr .asm_188da
.asm_188ca
ld a, [$d69f]
add $0
ld [$d69f], a
ld a, [$d6a0]
adc $1
ld [$d6a0], a
.asm_188da
ld a, [$d69a]
ld [$d6a3], a
ret
Func_188e1: ; 0x188e1
ld a, [$d6a3]
cp $1
jr z, .asm_18901
cp $2
jr z, .asm_18901
ld a, [$d69a]
cp $1
jr z, .asm_188f7
cp $2
jr nz, .asm_18901
.asm_188f7
ld a, $1
ld [$d803], a
ld a, $8
ld [$d804], a
.asm_18901
ld a, [$d69a]
cp $6
ret z
ld a, [$d69a]
ld hl, $d6a3
cp [hl]
ret z
ld a, [$d69c]
cp $3
jr nz, .asm_1891d
ld a, [$d69b]
cp $9
jr c, .asm_18945
.asm_1891d
ld a, [$d69a]
and a
jr z, .asm_18935
ld a, [$d69f]
add $0
ld [$d69f], a
ld a, [$d6a0]
adc $fd
ld [$d6a0], a
jr .asm_18945
.asm_18935
ld a, [$d69f]
add $0
ld [$d69f], a
ld a, [$d6a0]
adc $ff
ld [$d6a0], a
.asm_18945
ld a, [$d69a]
ld [$d6a3], a
ret
Func_1894c: ; 0x1894c
ld a, [$d6a6]
and a
jr nz, .asm_1898f
ld a, [$d6a4]
and a
jr z, .asm_1898f
ld a, [$d6a5]
cp $3
jr z, .asm_18980
inc a
ld [$d6a5], a
ld a, [$d548]
ld hl, $d549
and [hl]
jr z, .asm_18973
ld a, [$d4b6]
inc a
ld [$d4b6], a
.asm_18973
ld a, [$d7a0]
dec a
ld [$d7a0], a
ld a, $1
ld [wUpperTiltPushing], a
ret
.asm_18980
ld de, $002b
call PlaySoundEffect
ld a, $1
ld [$d6a6], a
xor a
ld [$d6a4], a
.asm_1898f
xor a
ld [wUpperTiltPushing], a
ld a, [$d6a5]
and a
jr z, .asm_189a5
dec a
ld [$d6a5], a
ld a, [$d7a0]
inc a
ld [$d7a0], a
ret
.asm_189a5
ld a, [$d6a4]
and a
ret nz
xor a
ld [$d6a6], a
ret
Func_189af: ; 0x189af
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $4a57
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
dec de
call Func_28a9
pop de
ret nc
ld a, [de]
dec de
and a
jr nz, .asm_189d7
ld a, [de]
cp $4
ret nz
ld hl, $4a61
dec de
dec de
call CopyHLToDE
ret
.asm_189d7
cp $1
jr nz, .asm_189ed
ld a, [de]
cp $60
ret nz
ld hl, $4a61
push de
dec de
dec de
call CopyHLToDE
pop de
inc de
xor a
ld [de], a
ret
.asm_189ed
cp $2
jr nz, .asm_18a04
ld a, [de]
cp $3
ret nz
ld hl, $4a6a
push de
dec de
dec de
call CopyHLToDE
pop de
inc de
ld a, $1
ld [de], a
ret
.asm_18a04
cp $3
jr nz, .asm_18a3c
ld a, [de]
cp $1
jr nz, .asm_18a14
ld de, $002e
call PlaySoundEffect
ret
.asm_18a14
cp $fe
ret nz
ld a, $1
ld [$d6a8], a
ld a, $1
ld [$d498], a
ld a, $1
ld [$d49a], a
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $2f7b
call Func_32aa
ld de, $4b2a
call PlaySoundEffect
ret
.asm_18a3c
cp $4
ret nz
ld a, [de]
cp $2
ret nz
ld hl, $4a61
push de
dec de
dec de
call CopyHLToDE
pop de
inc de
xor a
ld [de], a
ld de, $0007
call PlaySong
ret
INCBIN "baserom.gbc",$18a57,$18d34 - $18a57
Func_18d34: ; 0x18d34
ld a, [$d654]
and a
jr z, .asm_18d71
xor a
ld [$d654], a
ld a, [$d7be]
and a
jr nz, .asm_18d71
ld bc, $34b2
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld a, $ff
ld [$d803], a
ld a, $3
ld [$d804], a
ld hl, $0100
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
ld de, $002f
call Func_4d8
.asm_18d71
ret
Func_18d72: ; 0x18d72
ld a, [$d656]
sla a
ld c, a
ld b, $0
ld hl, $4ddb
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_18d85
ld hl, $4ed1
.asm_18d85
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $6
call Func_10aa
ret
Func_18d91: ; 0x18d91
ld a, [$d656]
and a
ld hl, $4dc9
jr z, .asm_18d9d
ld hl, $4dd2
.asm_18d9d
ld de, $c7c7
call Func_18db2
ld de, $c7ae
call Func_18db2
ld de, $c823
call Func_18db2
ld de, $c84d
; fall through
Func_18db2: ; 0x18db2
push hl
ld b, $3
.asm_18db5
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
ld a, e
add $1e
ld e, a
jr nc, .asm_18dc4
inc d
.asm_18dc4
dec b
jr nz, .asm_18db5
pop hl
ret
INCBIN "baserom.gbc",$18dc9,$18faf - $18dc9
Func_18faf: ; 0x18faf
ld bc, $7f00
ld [$ff8a], a
ld a, Bank(Func_175a4)
ld hl, Func_175a4
call BankSwitch
call Func_19020
call Func_190b9
call Func_19185
ld [$ff8a], a
ld a, Bank(Func_e4a1)
ld hl, Func_e4a1
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_17e81)
ld hl, Func_17e81
call BankSwitch
ret
INCBIN "baserom.gbc",$18fda,$19020 - $18fda
Func_19020: ; 0x19020
ld de, $d659
call Func_19033
ld de, $d662
call Func_19033
ld de, $d66b
call Func_19033
ret
Func_19033: ; 0x19033
ld a, [de]
and a
ret z
.asm_19036
call Func_19070
jr nc, .asm_19042
ld a, [$ff40]
bit 7, a
jr z, .asm_19036
ret
.asm_19042
inc de
inc de
inc de
inc de
inc de
inc de
ld a, [de]
ld hl, hBoardXShift
sub [hl]
ld b, a
inc de
inc de
ld a, [de]
ld hl, hBoardYShift
sub [hl]
ld c, a
dec de
dec de
dec de
dec de
dec de
dec de
ld a, [de]
ld e, a
ld d, $0
ld hl, $506b
add hl, de
ld a, [hl]
cp $ff
call nz, LoadOAMData2
ret
INCBIN "baserom.gbc",$1906b,$19070 - $1906b
Func_19070: ; 0x19070
ld a, [$d674]
and a
ret z
push de
dec a
ld [$d674], a
sla a
sla a
ld c, a
ld b, $0
ld hl, $50a9
add hl, bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $22
ld bc, $0060
call Func_735
ld a, $8
ld [$d690], a
ld [$d6a1], a
xor a
ld [$d67e], a
ld [$d687], a
ld [$d698], a
pop de
scf
ret
INCBIN "baserom.gbc",$190a9,$190b9 - $190a9
Func_190b9: ; 0x190b9
ld de, $d67e
call Func_190c6
ld de, $d687
call Func_190c6
ret
Func_190c6: ; 0x190c6
ld a, [de]
and a
ret z
.asm_190c9
call Func_19104
jr nc, .asm_190d5
ld a, [$ff40]
bit 7, a
jr z, .asm_190c9
ret
.asm_190d5
inc de
inc de
inc de
inc de
inc de
inc de
ld a, [de]
ld hl, hBoardXShift
sub [hl]
ld b, a
inc de
inc de
ld a, [de]
ld hl, hBoardYShift
sub [hl]
ld c, a
dec de
dec de
dec de
dec de
dec de
dec de
ld a, [de]
ld e, a
ld d, $0
ld hl, $50fe
add hl, de
ld a, [hl]
cp $ff
call nz, LoadOAMData2
ret
INCBIN "baserom.gbc",$190fe,$19104 - $190fe
Func_19104: ; 0x19104
ld a, [$d690]
and a
ret z
push de
dec a
ld [$d690], a
sla a
sla a
sla a
ld c, a
ld b, $0
ld hl, $5145
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $21
call Func_735
ld a, $4
ld [$d674], a
ld a, $8
ld [$d6a1], a
xor a
ld [$d659], a
ld [$d662], a
ld [$d66b], a
ld [$d698], a
pop de
scf
ret
INCBIN "baserom.gbc",$19145,$19185 - $19145
Func_19185: ; 0x19185
ld de, $d698
call Func_1918c
ret
Func_1918c: ; 0x1918c
ld a, [de]
and a
ret z
.asm_1918f
call Func_191cb
jr nc, .asm_1919b
ld a, [$ff40]
bit 7, a
jr z, .asm_1918f
ret
.asm_1919b
inc de
inc de
inc de
inc de
inc de
inc de
ld a, [de]
ld hl, hBoardXShift
sub [hl]
ld b, a
inc de
inc de
ld a, [de]
ld hl, hBoardYShift
sub [hl]
ld c, a
dec de
dec de
dec de
dec de
dec de
dec de
ld a, [de]
ld e, a
ld d, $0
ld hl, $51c4
add hl, de
ld a, [hl]
cp $ff
call nz, LoadOAMData2
ret
INCBIN "baserom.gbc",$191c4,$191cb - $191c4
Func_191cb: ; 0x191cb
ld a, [$d6a1]
and a
ret z
push de
dec a
ld [$d6a1], a
sla a
sla a
sla a
ld c, a
ld b, $0
ld hl, $520f
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $26
call Func_735
ld a, $4
ld [$d674], a
ld a, $8
ld [$d690], a
xor a
ld [$d659], a
ld [$d662], a
ld [$d66b], a
ld [$d67e], a
ld [$d687], a
pop de
scf
ret
INCBIN "baserom.gbc",$1920f,$1924f - $1920f
InitMewtwoBonusStage: ; 0x1924f
ld a, [$d7c1]
and a
ret nz
xor a
ld [wStageCollisionState], a
ld a, $1
ld [$d7ac], a
ld a, [wBallType]
ld [wBallTypeBackup], a
xor a
ld [$d4c8], a
ld [wBallType], a
ld [$d49a], a
ld hl, $52ab ; todo
ld de, $d6b6
ld b, $c
.asm_19275
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .asm_19275
ld hl, $52db ; todo
ld de, $d6ac
ld b, $8
.asm_1928c
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .asm_1928c
ld bc, $0200 ; 2 minutes 0 seconds
ld [$ff8a], a
ld a, Bank(StartTimer)
ld hl, StartTimer
call BankSwitch
ld a, $12
call SetSongBank
ld de, $0001
call PlaySong
ret
INCBIN "baserom.gbc",$192ab,$192e3 - $192ab
StartBallMewtwoBonusStage: ; 0x192e3
ld a, $0
ld [wBallXPos], a
ld a, $a6
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $56
ld [wBallYPos + 1], a
ld a, $80
ld [wBallXVelocity], a
xor a
ld [$d7ab], a
ld [wStageCollisionState], a
ld [$d6a9], a
ld a, [$d4c9]
and a
ret z
xor a
ld [$d4c9], a
ret
Func_19310: ; 0x19310
ld [$ff8a], a
ld a, Bank(Func_142fc)
ld hl, Func_142fc
call BankSwitch
call Func_2862
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
ld a, [$d7c1]
and a
ret z
call Func_194ac
ret
Func_19330: ; 0x19330
call Func_19414
call Func_19337
ret
Func_19337: ; 0x19337
ld hl, $d6bb
ld bc, $0601
.asm_1933d
push bc
push hl
ld a, [hli]
add $f8
ld b, a
ld a, [hld]
add $8
ld c, a
dec hl
dec hl
dec hl
ld a, [hl]
dec hl
dec hl
bit 0, [hl]
call nz, Func_1936f
pop hl
pop bc
ld a, c
jr c, .asm_19360
ld de, $0008
add hl, de
inc c
dec b
jr nz, .asm_1933d
ret
.asm_19360
ld [$d4eb], a
ld [$d6b4], a
add $0
ld [$d4ea], a
ld [$d6b5], a
ret
Func_1936f: ; 0x1936f
cp $b
jp z, Func_19412
ld a, [wBallXPos + 1]
sub b
cp $20
jp nc, Func_19412
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $20
jp nc, Func_19412
ld c, a
ld e, a
ld d, $0
sla e
rl d
sla e
rl d
sla e
rl d
sla e
rl d
sla e
rl d
ld l, b
ld h, $0
add hl, de
sla l
rl h
sla l
rl h
ld de, $4000
add hl, de
ld de, wBallXVelocity
ld a, $39
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $39
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
push bc
ld a, $39
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $39
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
bit 7, b
jr z, .asm_193ea
ld a, c
cpl
ld c, a
ld a, b
cpl
ld b, a
inc bc
.asm_193ea
pop hl
bit 7, h
jr z, .asm_193f6
ld a, l
cpl
ld l, a
ld a, h
cpl
ld h, a
inc hl
.asm_193f6
add hl, bc
sla l
rl h
ld a, h
cp $2
jr c, .asm_19410
ld a, [$d804]
and a
jr nz, .asm_19410
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
.asm_19410
scf
ret
Func_19412: ; 0x19312
and a
ret
Func_19414: ; 0x19414
ld a, [$d4ea]
inc a
jr nz, .asm_1944f
ld a, [$d6aa]
bit 7, a
jr nz, .asm_1944f
ld a, [$d7e9]
and a
ret z
ld a, [$d7f5]
sub $10
ret c
cp $c
ret nc
ld a, $1
ld [$d4eb], a
add $6
ld [$d4ea], a
ld b, a
ld hl, $d6aa
ld [hl], $0
ld a, [$d4ec]
cp b
jr z, .asm_1944f
ld a, [$d4eb]
ld [hli], a
ld a, [$d4ea]
ld [hl], a
scf
ret
.asm_1944f
and a
ret
Func_19451: ; 0x19451
call Func_19531
call Func_19701
call Func_1948b
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $1
ld [$d7be], a
call Func_2862
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld a, [$d6b1]
cp $8
ret nc
ld a, $1
ld [$d6b3], a
ret
Func_1948b: ; 0x1948b
ld a, [$d6a9]
and a
ret nz
ld a, [$d4b4]
cp $8a
ret nc
ld a, $1
ld [wStageCollisionState], a
ld [$d6a9], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
call Func_194ac
ret
Func_194ac: ; 0x194ac
ld a, [wStageCollisionState]
sla a
ld c, a
ld b, $0
ld hl, $54c9
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_194bf
ld hl, $54fd
.asm_194bf
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $6
call Func_10aa
ret
INCBIN "baserom.gbc",$194c9,$19531 - $194c9
Func_19531: ; 0x19531
ld a, [$d6aa]
and a
jr z, .asm_195a2
xor a
ld [$d6aa], a
ld a, [$d7be]
and a
jr nz, .asm_195a2
ld a, [$d6af]
cp $2
jr nc, .asm_195a2
ld bc, $34ee
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld a, [$d6b0]
inc a
cp $3
jr nz, .asm_19565
ld a, [$d6b1]
inc a
ld [$d6b1], a
xor a
.asm_19565
ld [$d6b0], a
call Func_1988e
ld a, [$d6b1]
cp $8
jr z, .asm_19582
ld a, $2
ld de, $d6ae
call Func_19679
ld de, $0039
call PlaySoundEffect
jr .asm_195a2
.asm_19582
ld a, $3
ld de, $d6ae
call Func_19679
ld a, $1
ld [$d7be], a
call Func_2862
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld de, $0000
call PlaySong
.asm_195a2
call Func_195ac
ld de, $d6af
call Func_195f5
ret
Func_195ac: ; 0x195ac
ld a, [$d6af]
and a
ret nz
ld hl, $d6bd
ld de, $0008
ld b, $6
.asm_195b9
ld a, [hl]
cp $2b
jr nz, .asm_195ce
dec hl
dec hl
dec hl
ld a, [hl]
cp $2
ret nz
ld a, $1
ld de, $d6ae
call Func_19679
ret
.asm_195ce
add hl, de
dec b
jr nz, .asm_195b9
ret
Func_195d3: ; 0x195d3
ld hl, $d6bd
ld de, $0008
ld b, $6
.asm_195db
ld a, [hl]
cp $18
jr nz, .asm_195f0
dec hl
dec hl
dec hl
ld a, [hl]
cp $2
ret nz
ld d, h
ld e, l
dec de
ld a, $1
call Func_19876
ret
.asm_195f0
add hl, de
dec b
jr nz, .asm_195db
ret
Func_195f5: ; 0x195f5
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $5691
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
dec de
call Func_28a9
pop de
ret nc
ld a, [de]
rst $18 ; calls JumpToFuncInTable
CallTable_1960d: ; 0x1960d
dw Func_19615
dw Func_1961e
dw Func_1962f
dw Func_19638
Func_19615: ; 0x19615
dec de
ld a, [de]
cp $4
ret nz
xor a
jp Func_19679
Func_1961e: ; 0x1961e
dec de
ld a, [de]
cp $c
jr nz, .asm_19628
call Func_195d3
ret
.asm_19628
cp $d
ret nz
xor a
jp Func_19679
Func_1962f: ; 0x1962f
dec de
ld a, [de]
cp $1
ret nz
xor a
jp Func_19679
Func_19638: ; 0x19638
dec de
ld a, [de]
cp $1
jr nz, .asm_19645
ld de, $0040
call PlaySoundEffect
ret
.asm_19645
cp $20
ret nz
ld a, $1
ld [$d6b3], a
ld a, [$d499]
ld [$d498], a
ld a, [wNumMewtwoBonusCompletions]
cp $2 ; only counts up to 2. Gets reset to 0 when Mew is encountered in Catch 'Em Mode.
jr z, .asm_1965e
inc a
ld [wNumMewtwoBonusCompletions], a
.asm_1965e
ld a, $1
ld [$d49a], a
call Func_30e8
call Func_30db
ld hl, $d5dc
.asm_1966b
ld de, $2f97
call Func_32aa
ld de, $4b2a
call PlaySoundEffect
ret
Func_19679: ; 0x19679
push af
sla a
ld c, a
ld b, $0
ld hl, $5691
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
call CopyHLToDE
pop de
inc de
pop af
ld [de], a
ret
INCBIN "baserom.gbc",$19691,$19701 - $19691
Func_19701: ; 0x19701
ld a, [$d6b4]
and a
jr z, .asm_19742
xor a
ld [$d6b4], a
ld a, [$d7be]
and a
jr nz, .asm_19742
ld a, [$d6b5]
sub $1
sla a
sla a
sla a
ld c, a
ld b, $0
ld hl, $d6ba
add hl, bc
ld d, h
ld e, l
ld a, [de]
and a
jr nz, .asm_19742
dec de
ld a, $2
call Func_19876
ld bc, $34d6
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld de, $0038
call PlaySoundEffect
.asm_19742
ld de, $d6bd
call Func_1978b
ld de, $d6c5
call Func_1978b
ld de, $d6cd
call Func_1978b
ld de, $d6d5
call Func_1978b
ld de, $d6dd
call Func_1978b
ld de, $d6e5
call Func_1978b
ld de, $d6b6
call Func_19833
ld de, $d6be
call Func_19833
ld de, $d6c6
call Func_19833
ld de, $d6ce
call Func_19833
ld de, $d6d6
call Func_19833
ld de, $d6de
call Func_19833
ret
Func_1978b: ; 0x1978b
ld a, [de]
ld c, a
ld b, $0
sla c
inc a
cp $48
jr c, .asm_19797
xor a
.asm_19797
ld [de], a
ld hl, $57a4
add hl, bc
dec de
ld a, [hld]
ld [de], a
dec de
ld a, [hl]
ld [de], a
ret
INCBIN "baserom.gbc",$197a3,$19833 - $197a3
Func_19833: ; 0x19833
ld a, [de]
and a
ret z
inc de
inc de
inc de
inc de
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $5916
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
dec de
call Func_28a9
pop de
ret nc
ld a, [de]
rst $18 ; calls JumpToFuncInTable
CallTable_19852: ; 0x19852
dw Func_1985a
dw Func_19863
dw Func_1986c
dw Func_1986d
Func_1985a: ; 0x1985a
dec de
ld a, [de]
cp $6
ret nz
xor a
jp Func_19876
Func_19863: ; 0x19863
dec de
ld a, [de]
cp $7
ret nz
xor a
jp Func_19876
Func_1986c: ; 0x1986c
ret
Func_1986d: ; 0x1986d
dec de
ld a, [de]
cp $1
ret nz
xor a
jp Func_19876
Func_19876: ; 0x19876
push af
sla a
ld c, a
ld b, $0
ld hl, $5916
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
call CopyHLToDE
pop de
inc de
pop af
ld [de], a
ret
Func_1988e: ; 0x1988e
ld a, [$d6b1]
sla a
sla a
sla a
ld c, a
ld b, $0
ld hl, $58ce
add hl, bc
ld de, $d6bd
ld b, $6
.asm_198a3
ld a, [hli]
push bc
push de
push hl
bit 7, a
jr nz, .asm_198b7
ld [de], a
dec de
dec de
dec de
dec de
ld a, $3
call Func_19876
jr .asm_198c0
.asm_198b7
dec de
dec de
dec de
dec de
dec de
dec de
dec de
xor a
ld [de], a
.asm_198c0
pop hl
pop de
pop bc
ld a, e
add $8
ld e, a
jr nc, .asm_198ca
inc d
.asm_198ca
dec b
jr nz, .asm_198a3
ret
INCBIN "baserom.gbc",$198ce,$1994e - $198ce
Func_1994e: ; 0x1994e
ld bc, $7f65
ld [$ff8a], a
ld a, Bank(Func_175a4)
ld hl, Func_175a4
call BankSwitch
call Func_1999d
ld [$ff8a], a
ld a, Bank(Func_e4a1)
ld hl, Func_e4a1
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_17e81)
ld hl, Func_17e81
call BankSwitch
call Func_19976
ret
Func_19976: ; 0x19976
ld a, $40
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $0
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d6ad]
ld e, a
ld d, $0
ld hl, $5995
add hl, de
ld a, [hl]
cp $ff
call nz, LoadOAMData2
ret
INCBIN "baserom.gbc",$19995,$1999d - $19995
Func_1999d: ; 0x1999d
ld de, $d6b6
call Func_199be
ld de, $d6be
call Func_199be
ld de, $d6c6
call Func_199be
ld de, $d6ce
call Func_199be
ld de, $d6d6
call Func_199be
ld de, $d6de
; fall through
Func_199be: ; 0x199be
ld a, [de]
and a
ret z
inc de
inc de
inc de
inc de
inc de
ld a, [de]
ld hl, hBoardXShift
sub [hl]
ld b, a
inc de
ld a, [de]
ld hl, hBoardYShift
sub [hl]
ld c, a
dec de
dec de
dec de
dec de
ld a, [de]
ld e, a
ld d, $0
ld hl, $59e6
add hl, de
ld a, [hl]
cp $ff
call nz, LoadOAMData2
ret
INCBIN "baserom.gbc",$199e6,$199f2 - $199e6
InitDiglettBonusStage: ; 0x199f2
ld a, [$d7c1]
and a
ret nz
xor a
ld [wStageCollisionState], a
ld a, $1
ld [$d7ac], a
ld a, [wBallType]
ld [wBallTypeBackup], a
xor a
ld [$d4c8], a
ld [wBallType], a
ld [$d49a], a
; initialize all digletts to hiding
ld a, $1 ; hiding diglett state
ld hl, wDiglettStates
ld b, NUM_DIGLETTS
.initDiglettsLoop
ld [hli], a
dec b
jr nz, .initDiglettsLoop
ld a, $1
ld [wDugtrioAnimationFrameCounter], a
ld a, $c
ld [wDugtrioAnimationFrame], a
xor a
ld [wDugtrioAnimationFrame2], a
ld [wDugrioState], a
ld a, $11
call SetSongBank
ld de, $0001
call PlaySong
ret
StartBallDiglettBonusStage: ; 0x19a38
ld a, $0
ld [wBallXPos], a
ld a, $a6
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $56
ld [wBallYPos + 1], a
ld a, $40
ld [wBallXVelocity], a
xor a
ld [$d7ab], a
ld [wStageCollisionState], a
ld [$d73a], a
ld hl, wDiglettStates
ld b, NUM_DIGLETTS
.asm_19a60
ld a, [hl]
and a
jr z, .asm_19a67
ld a, $1 ; hiding diglett state
ld [hl], a
.asm_19a67
inc hl
dec b
jr nz, .asm_19a60
xor a
ld [wCurrentDiglett], a
ld [wDiglettsInitializedFlag], a
ld [$d765], a
ret
Func_19a76: ; 0x19a76
ld [$ff8a], a
ld a, Bank(Func_142fc)
ld hl, Func_142fc
call BankSwitch
call Func_2862
ld a, [$d7c1]
and a
ret z
call Func_19bbd
call Func_19a96
ld a, [wDugrioState]
and a
call nz, Func_1ac2c
ret
Func_19a96: ; 0x19a96
ld hl, wDiglettStates
ld bc, NUM_DIGLETTS << 8
.asm_19a9c
ld a, [hli]
and a
jr z, .asm_19aae
push bc
push hl
push af
call Func_19da8
pop af
cp $6
call c, Func_19dcd
pop hl
pop bc
.asm_19aae
inc c
dec b
jr nz, .asm_19a9c
ret
Func_19ab3: ; 0x19ab3
call Func_19aba
call Func_19b4b
ret
Func_19aba: ; 0x19aba
ld a, [$d4ea]
inc a
jr nz, .asm_19b16
ld a, [$d73b]
bit 7, a
jr nz, .asm_19b16
ld a, [$d7e9]
and a
ret z
ld a, [$d7f5]
sub $19
ret c
cp $33
ret nc
ld c, a
ld b, $0
ld hl, $5b18 ; todo
add hl, bc
ld a, [hl]
cp $a
jr nc, .asm_19aed
ld a, [wBallXPos + 1]
cp $48
ld a, $11
jr nc, .asm_19af7
xor a
jr .asm_19af7
.asm_19aed
ld a, [wBallXPos + 1]
cp $68
ld a, $11
jr nc, .asm_19af7
xor a
.asm_19af7
add [hl]
ld [$d4eb], a
add $0
ld [$d4ea], a
ld b, a
ld hl, $d73b
ld [hl], $0
ld a, [$d4ec]
cp b
jr z, .asm_19b16
ld a, [$d4eb]
ld [hli], a
ld a, [$d4ea]
ld [hl], a
scf
ret
.asm_19b16
and a
ret
INCBIN "baserom.gbc",$19b18,$19b4b - $19b18
Func_19b4b: ; 0x19b4b
ld a, [$d4ea]
inc a
jr nz, .asm_19b86
ld a, [$d75f]
bit 7, a
jr nz, .asm_19b86
ld a, [$d7e9]
and a
ret z
ld a, [$d7f5]
sub $14
ret c
cp $5
ret nc
ld a, $1
ld [$d4eb], a
add $1f
ld [$d4ea], a
ld b, a
ld hl, $d75f
ld [hl], $0
ld a, [$d4ec]
cp b
jr z, .asm_19b86
ld a, [$d4eb]
ld [hli], a
ld a, [$d4ea]
ld [hl], a
scf
ret
.asm_19b86
and a
ret
Func_19b88: ; 0x19b88
call Func_19c52
call Func_1aad4
call Func_19b92
ret
Func_19b92: ; 0x19b92
ld a, [$d73a]
and a
ret nz
ld a, [$d4b4]
cp $8a
ret nc
ld a, $1
ld [wStageCollisionState], a
ld [$d73a], a
xor a
ld [$c853], a
ld [$c873], a
ld [$c893], a
ld a, $5
ld [$c872], a
ld a, $7
ld [$c892], a
call Func_19bbd
ret
Func_19bbd: ; 0x19bbd
ld a, [wStageCollisionState]
sla a
ld c, a
ld b, $0
ld hl, $5bda
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_19bd0
ld hl, $5c16
.asm_19bd0
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $6
call Func_10aa
ret
INCBIN "baserom.gbc",$19bda,$19c52 - $19bda
Func_19c52: ; 0x19c52
ld a, [$d73b]
and a
jr z, .asm_19cc8
xor a
ld [$d73b], a
ld bc, $34d6
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld de, $0035
call PlaySoundEffect
ld hl, $0100
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
ld a, [$d73c]
sub $1
ld c, a
ld b, $0
ld hl, wDiglettStates
add hl, bc
ld a, [hl]
cp $6
jr nc, .asm_19cc8
ld a, $8
ld [hl], a
call Func_19da8
call Func_19df0
ld hl, wDiglettStates
ld bc, NUM_DIGLETTS << 8
xor a
.asm_19ca0
ld a, [hli]
and a
jr z, .asm_19ca8
cp $6
jr c, .asm_19ca9
.asm_19ca8
inc c
.asm_19ca9
dec b
jr nz, .asm_19ca0
ld a, c
cp NUM_DIGLETTS
jr nz, .asm_19cc8
ld hl, $6c75
ld de, wDugtrioAnimationFrameCounter
call CopyHLToDE
ld a, $1
ld [wDugrioState], a
call Func_1ac2c
ld de, $0002
call PlaySong
.asm_19cc8
call Func_19cdd
ld a, [$d765]
and a
ret nz
ld a, $1
ld [$d765], a
ld a, [wDugrioState]
and a
call nz, Func_1ac2c
ret
Func_19cdd: ; 0x19cdd
ld a, [wDiglettsInitializedFlag]
and a
jr nz, .alreadyInitializedDigletts
ld a, [wDiglettInitDelayCounter]
add DIGLETT_INITIALIZE_DELAY
ld [wDiglettInitDelayCounter], a
ret nc
ld hl, DiglettInitializeOrder
ld a, [wCurrentDiglett]
ld c, a
ld b, $0
add hl, bc
ld b, $1
.asm_19cf8
push bc
ld a, [hli]
bit 7, a
jr z, .asm_19d02
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [hli]
.asm_19d02
push hl
ld c, a
ld b, $0
ld hl, wDiglettStates
add hl, bc
ld a, [hl]
and a
jr z, .asm_19d29
dec a
jr nz, .asm_19d21
; pick a random starting state for the diglett that isn't the "hiding" state
call GenRandom
and $3
add $2
ld [hl], a
call Func_19da8
call Func_19dcd
jr .asm_19d29
.asm_19d21
and $3
add $2
ld [hl], a
call Func_19da8
.asm_19d29
pop hl
pop bc
dec b
jr nz, .asm_19cf8
ld hl, wDiglettsInitializedFlag
ld a, [wCurrentDiglett]
add $1
cp NUM_DIGLETTS
jr c, .notDoneInitializingDigletts
set 0, [hl]
sub NUM_DIGLETTS
.notDoneInitializingDigletts
ld [wCurrentDiglett], a
ret
.alreadyInitializedDigletts
ld hl, DiglettUpdateOrder
ld a, [wCurrentDiglett]
ld c, a
ld b, $0
add hl, bc
ld b, $4 ; update 4 digletts
.updateDiglettLoop
push bc
ld a, [hli]
bit 7, a
jr z, .asm_19d58
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [hli]
.asm_19d58
push hl
ld c, a
ld b, $0
ld hl, wDiglettStates
add hl, bc
ld a, [hl]
and a
jr z, .asm_19d8f
dec a
jr nz, .asm_19d77
call GenRandom
and $3
add $2
ld [hl], a
call Func_19da8
call Func_19dcd
jr .asm_19d8f
.asm_19d77
cp $5
jr c, .incrementDiglettState
ld [hl], a
jr nz, .asm_19d8f
xor a
ld [hl], a
ld a, $1
call Func_19da8
jr .asm_19d8f
.incrementDiglettState
and $3
add $2
ld [hl], a
call Func_19da8
.asm_19d8f
pop hl
pop bc
dec b
jr nz, .updateDiglettLoop
ld hl, wDiglettsInitializedFlag
ld a, [wCurrentDiglett]
add $4
cp NUM_DIGLETTS
jr c, .asm_19da4
set 0, [hl]
sub NUM_DIGLETTS
.asm_19da4
ld [wCurrentDiglett], a
ret
Func_19da8: ; 0x19da8
; input: a = diglett state
; c = diglett index
cp $6
jr c, .asm_19dae
ld a, $6 ; "getting hit" state
.asm_19dae
push bc
ld b, a
sla c
ld a, c
sla c
add c
add b ; a = (index * 6) + state
dec a
ld c, a
ld b, $0 ; bc = (index * 6) + state - 1
sla c
rl b ; bc = 2 * ((index * 6) + state - 1)
ld hl, DiglettTileDataPointers
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, Bank(DiglettTileDataPointers)
call Func_10aa
pop bc
ret
Func_19dcd: ; 0x19dcd
sla c
ld a, c
sla c
add c
ld c, a
ld b, $0
ld hl, $5e13
add hl, bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
ld a, e
add $1f
ld e, a
jr nc, .asm_19dea
inc d
.asm_19dea
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
ret
Func_19df0: ; 0x19df0
sla c
ld a, c
sla c
add c
ld c, a
ld b, $0
ld hl, $5e13
add hl, bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, $2
ld [de], a
inc de
ld [de], a
ld a, e
add $1f
ld e, a
jr nc, .asm_19e0d
inc d
.asm_19e0d
ld a, $2
ld [de], a
inc de
ld [de], a
ret
INCBIN "baserom.gbc",$19e13,$19ed1 - $19e13
INCLUDE "data/diglett_stage/diglett_stage_animation_data.asm"
Func_1aad4: ; 0x1aad4
ld a, [$d75f]
and a
jr z, .asm_1ab2c
xor a
ld [$d75f], a
ld a, [wDugrioState]
bit 0, a
jr z, .asm_1ab2c
cp $7
jr z, .asm_1ab2c
inc a
ld [wDugrioState], a
sla a
ld c, a
ld b, $0
ld hl, $6c62
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld de, wDugtrioAnimationFrameCounter
call CopyHLToDE
ld bc, $34ee
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld de, $0036
call PlaySoundEffect
ld a, $33
ld [$d803], a
ld a, $8
ld [$d804], a
ld hl, $0200
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
.asm_1ab2c
call Func_1ab30
ret
Func_1ab30: ; 0x1ab30
ld a, [wDugrioState]
sla a
ld c, a
ld b, $0
ld hl, $6c62
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld de, wDugtrioAnimationFrameCounter
call Func_28a9
ret nc
ld a, [wDugrioState]
and a
ret z
cp $1
jr nz, .asm_1ab64
ld a, [wDugtrioAnimationFrame2]
cp $3
ret nz
ld hl, $6c75
ld de, wDugtrioAnimationFrameCounter
call CopyHLToDE
ld a, $1
ld [wDugrioState], a
ret
.asm_1ab64
cp $2
jr nz, .asm_1ab7d
ld a, [wDugtrioAnimationFrame2]
cp $1
ret nz
ld hl, $6c7f
ld de, wDugtrioAnimationFrameCounter
call CopyHLToDE
ld a, $3
ld [wDugrioState], a
ret
.asm_1ab7d
cp $3
jr nz, .asm_1ab96
ld a, [wDugtrioAnimationFrame2]
cp $3
ret nz
ld hl, $6c7f
ld de, wDugtrioAnimationFrameCounter
call CopyHLToDE
ld a, $3
ld [wDugrioState], a
ret
.asm_1ab96
cp $4
jr nz, .asm_1abaf
ld a, [wDugtrioAnimationFrame2]
cp $1
ret nz
ld hl, $6c89
ld de, wDugtrioAnimationFrameCounter
call CopyHLToDE
ld a, $5
ld [wDugrioState], a
ret
.asm_1abaf
cp $5
jr nz, .asm_1abc8
ld a, [wDugtrioAnimationFrame2]
cp $3
ret nz
ld hl, $6c89
ld de, wDugtrioAnimationFrameCounter
call CopyHLToDE
ld a, $5
ld [wDugrioState], a
ret
.asm_1abc8
cp $6
jr nz, .asm_1abe1
ld a, [wDugtrioAnimationFrame2]
cp $1
ret nz
ld hl, $6c93
ld de, wDugtrioAnimationFrameCounter
call CopyHLToDE
ld a, $7
ld [wDugrioState], a
ret
.asm_1abe1
cp $7
ret nz
ld a, [wDugtrioAnimationFrame2]
cp $1
jr nz, .asm_1abf2
ld de, $0000
call PlaySong
ret
.asm_1abf2
cp $2
ret nz
ld hl, $6c72
ld de, wDugtrioAnimationFrameCounter
call CopyHLToDE
xor a
ld [wDugrioState], a
ld [$d498], a
ld a, $1
ld [$d49a], a
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $2fb3
call Func_32aa
ld de, $4b2a
call PlaySoundEffect
ld a, $1
ld [$d7be], a
call Func_2862
ld hl, $6c56
jr asm_1ac2f
Func_1ac2c: ; 0x1ac2c
ld hl, $6c4a
asm_1ac2f:
ld de, $c768
ld b, $3
.asm_1ac34
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
ld a, e
add $1d
ld e, a
jr nc, .asm_1ac46
inc d
.asm_1ac46
dec b
jr nz, .asm_1ac34
ret
INCBIN "baserom.gbc",$1ac4a,$1ac98 - $1ac4a
Func_1ac98: ; 0x1ac98
ld [$ff8a], a
ld a, Bank(Func_e4a1)
ld hl, Func_e4a1
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_17e81)
ld hl, Func_17e81
call BankSwitch
call Func_1acb0
ret
Func_1acb0: ; 0x1acb0
ld a, $40
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $0
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [wDugtrioAnimationFrame]
ld e, a
ld d, $0
ld hl, $6ccf
add hl, de
ld a, [hl]
bit 7, a
call z, LoadOAMData2
ret
INCBIN "baserom.gbc",$1accf,$1c000 - $1accf
SECTION "bank7", ROMX, BANK[$7]
InitBlueField: ; 0x1c000
ld a, [$d7c1]
and a
ret nz
xor a
ld hl, $d46f
ld [hld], a
ld [hld], a
ld [hld], a
ld [hld], a
ld [hld], a
ld [hl], a
ld [wNumPartyMons], a
ld [$d49b], a
ld [$d4c9], a
ld [wBallType], a
ld [$d4c8], a
ld hl, $d624
ld [hli], a
ld [hli], a
ld [hli], a
ld [$d7ac], a
ld [$d7be], a
ld [wCurrentMap], a ; PALLET_TOWN
ld a, $1
ld [$d49d], a
ld [$d482], a
ld a, $2
ld [wRightAlleyCount], a
ld a, $3
ld [$d49e], a
ld [$d610], a
ld a, $2
ld [$d498], a
ld [$d499], a
ld a, $80
ld [wIndicatorStates], a
ld [wIndicatorStates + 3], a
ld a, $82
ld [wIndicatorStates + 1], a
xor a
ld [$d648], a
ld [$d649], a
ld [$d64a], a
ld [$d643], a
ld [$d644], a
ld [$d645], a
ld [$d646], a
ld [$ff8a], a
ld a, Bank(Func_dbba)
ld hl, Func_dbba
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_1d65f)
ld hl, Func_1d65f
call BankSwitch
ld a, $10
call SetSongBank
ld de, $0001
call PlaySong
ret
StartBallBlueField: ; 0x1c08d
ld a, [$d496]
and a
jp nz, StartBallAfterBonusStageBlueField
ld a, $0
ld [wBallXPos], a
ld a, $a7
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $98
ld [wBallYPos + 1], a
xor a
ld [$d549], a
ld [$d580], a
call Func_1c7c7
ld a, [$d4c9]
and a
ret z
xor a
ld [$d4c9], a
xor a
ld [$d50b], a
ld [$d50c], a
ld [$d51d], a
ld [$d51e], a
ld [$d517], a
ld hl, $d50f
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [wLeftMapMoveCounter], a
ld [wRightMapMoveCounter], a
ld hl, $d5f9
ld [hli], a
ld [hli], a
ld [hli], a
ld [wBallType], a
ld [$d611], a
ld [$d612], a
ld [$d628], a
ld [$d629], a
ld [$d62a], a
ld [$d62b], a
ld [$d62c], a
ld [$d63a], a
ld [$d63b], a
ld [$d63d], a
ld [$d63c], a
ld [$d62d], a
ld [$d62e], a
ld [$d613], a
inc a
ld [$d482], a
ld [$d4ef], a
ld [$d4f1], a
ld a, $3
ld [$d610], a
call Func_1d65f
ld a, $10
call SetSongBank
ld de, $0001
call PlaySong
ret
StartBallAfterBonusStageBlueField: ; 0x1c129
ld a, $0
ld [wBallXPos], a
ld a, $50
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $16
ld [wBallYPos + 1], a
xor a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld [wBallXVelocity], a
ld [wBallXVelocity + 1], a
ld [$d496], a
ld [$d7ab], a
ld [$d7be], a
ld a, [wBallTypeBackup]
ld [wBallType], a
ld a, $10
call SetSongBank
ld de, $0001
call PlaySong
ret
Func_1c165: ; 0x1c165
call asm_1e475
call Func_1cb43
call Func_1c3ee
call Func_1e8f6
ld [$ff8a], a
ld a, Bank(Func_142fc)
ld hl, Func_142fc
call BankSwitch
ld a, $1
ld [$d640], a
call Func_1f18a
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
call Func_1c203
ret
Func_1c191: ; 0x1c191
call Func_1c1db
call Func_1c4b6
call Func_1c2cb
call Func_1e627
call Func_1c43c
call Func_1c305
call Func_1c3ee
ld [$ff8a], a
ld a, Bank(Func_14746)
ld hl, Func_14746
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_14707)
ld hl, Func_14707
call BankSwitch
call Func_1c235
call Func_1c21e
call Func_1e8f6
ld [$ff8a], a
ld a, Bank(Func_142fc)
ld hl, Func_142fc
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
call Func_1c203
ret
Func_1c1db: ; 0x1c1db
ld a, [$d641]
cp $0
ret z
ld a, $1
ld [$d640], a
ld a, $0
ld [$d641], a
ld a, [wBlueStageForceFieldDirection]
cp $2 ; down direction
ret nz
ld a, $0
ld [wBlueStageForceFieldDirection], a
ld a, $1 ; right direction
ld [$d64a], a
xor a
ld [$d649], a
ld [$d648], a
ret
Func_1c203: ; 0x1c203
ld a, $ff
ld [$d4d7], a
ld [$d4db], a
ld a, [$d4b4]
ld [$d4c5], a
ld a, [$d4b6]
ld [$d4c6], a
ld a, [wBallRotation]
ld [$d4c7], a
ret
Func_1c21e: ; 0x1c21e
ld a, $ff
ld [$d60e], a
ld [$d60f], a
ld a, [$d60c]
call Func_1d5f2
ld a, [$d60d]
add $14
call Func_1d5f2
ret
Func_1c235: ; 0x1c235
ld a, [wLeftMapMoveDiglettAnimationCounter]
and a
jr z, .asm_1c249
ld a, $54
ld [$c7e3], a
ld a, $55
ld [$c803], a
ld a, $1
jr .asm_1c24a
.asm_1c249
xor a
.asm_1c24a
call Func_1de4b
ld a, [wLeftMapMoveCounter]
call Func_1de6f
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1c267
ld a, [wLeftMapMoveCounter]
cp $0
jr z, .asm_1c264
ld b, $7
add b
jr .asm_1c269
.asm_1c264
xor a
jr .asm_1c269
.asm_1c267
ld a, $8
.asm_1c269
call Func_1de6f
ld a, [wRightMapMoveDiglettFrame]
and a
jr z, .asm_1c295
ld a, $52
ld [$c7f0], a
ld a, $53
ld [$c810], a
ld a, [$d644]
and a
jr z, .asm_1c28a
ld a, [$d55a]
and a
jr nz, .asm_1c2bd
jr .asm_1c291
.asm_1c28a
ld a, [wRightMapMoveCounter]
add $3
jr .asm_1c297
.asm_1c291
ld a, $3
jr .asm_1c297
.asm_1c295
ld a, $2
.asm_1c297
call Func_1de4b
ld a, [wRightMapMoveCounter]
add $4
call Func_1de6f
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1c2b7
ld a, [wRightMapMoveCounter]
cp $0
jr z, .asm_1c2b3
ld b, $a
add b
jr .asm_1c2b9
.asm_1c2b3
ld a, $4
jr .asm_1c2b9
.asm_1c2b7
ld a, $9
.asm_1c2b9
call Func_1de6f
ret
.asm_1c2bd
ld a, $6
call Func_1de4b
ld a, [wRightMapMoveCounter]
add $4
call Func_1de6f
ret
Func_1c2cb: ; 0x1c2cb
ld a, [wCurrentStage]
bit 0, a
ret z
ld bc, $0000
.asm_1c2d4
push bc
ld hl, wIndicatorStates
add hl, bc
ld a, [hl]
res 7, a
call Func_1eb41
pop bc
inc c
ld a, c
cp $2
jr nz, .asm_1c2d4
ld bc, $0002
.asm_1c2e9
push bc
ld hl, wIndicatorStates
add hl, bc
ld a, [hl]
push af
ld hl, $d648
add hl, bc
dec hl
dec hl
ld a, [hl]
ld d, a
pop af
add d
call Func_1eb41
pop bc
inc c
ld a, c
cp $5
jr nz, .asm_1c2e9
ret
Func_1c305: ; 0x1c305
ld a, [wInSpecialMode]
and a
ret z
ld a, [wSpecialMode]
cp $2
ret z
ld a, [$d5c6]
and a
jr nz, .asm_1c31f
ld a, [$d5f3]
and a
jr nz, .asm_1c31f
jp Func_1c3ca
.asm_1c31f
ld [$ff8a], a
ld a, Bank(Func_1c3ac)
ld hl, Func_1c3ac
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10362)
ld hl, Func_10362
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_10301)
ld hl, Func_10301
call nz, BankSwitch
ld a, [$d5f3]
and a
ret z
ld a, $2a
ld hl, $47e0
ld de, $87e0
ld bc, $0020
call CopyDataToRAM
ld a, $2a
ld hl, $4800
ld de, $8900
ld bc, $0180
call CopyDataToRAM
ld a, [wBallType]
cp GREAT_BALL
jr nc, .notPokeball
ld a, Bank(PinballPokeballShakeGfx)
ld hl, PinballPokeballShakeGfx
ld de, $8380
ld bc, $0040
call CopyDataToRAM
ret
.notPokeball
cp ULTRA_BALL
jr nc, .notGreatball
ld a, Bank(PinballGreatballShakeGfx)
ld hl, PinballGreatballShakeGfx
ld de, $8380
ld bc, $0040
call CopyDataToRAM
ret
.notGreatball
cp MASTER_BALL
jr nc, .notUltraBall
ld a, Bank(PinballUltraballShakeGfx)
ld hl, PinballUltraballShakeGfx
ld de, $8380
ld bc, $0040
call CopyDataToRAM
ret
.notUltraBall
ld a, Bank(PinballMasterballShakeGfx)
ld hl, PinballMasterballShakeGfx
ld de, $8380
ld bc, $0040
call CopyDataToRAM
ret
Func_1c3ac: ; 0x1c3ac
ld a, $80
ld hl, $9887
call Func_1c3c3
ld hl, $98a7
call Func_1c3c3
ld hl, $98c7
call Func_1c3c3
ld hl, $98e7
; fall through
Func_1c3c3: ; 0x1c3c3
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ret
Func_1c3ca: ; 0x1c3ca
ld hl, $d586
ld b, $18
.asm_1c3cf
ld a, [hli]
xor $1
ld [hli], a
dec b
jr nz, .asm_1c3cf
ld [$ff8a], a
ld a, Bank(Func_10184)
ld hl, Func_10184
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_102bc)
ld hl, Func_102bc
call nz, BankSwitch
ret
Func_1c3ee: ; 0x1c3ee
ld a, [wInSpecialMode]
and a
ret z
ld a, [wSpecialMode]
cp $1
ret nz
ld a, [$d554]
cp $3
ret z
ld a, [wCurrentStage]
bit 0, a
jr nz, .asm_1c416
ld a, $36
ld hl, $7e80
ld de, $8600
ld bc, $00e0
call CopyDataToRAM
jr .asm_1c424
.asm_1c416
ld a, $36
ld hl, $7e80
ld de, $8200
ld bc, $00e0
call CopyDataToRAM
.asm_1c424
ld a, [$d551]
and a
ret z
ld a, [hGameBoyColorFlag]
and a
ret z
ld a, $37
ld hl, $5188
ld de, $0070
ld bc, $0010
call Func_6fd
ret
Func_1c43c: ; 0x1c43c
ld a, [wInSpecialMode]
and a
jr z, .asm_1c458
ld a, [wSpecialMode]
and a
jr nz, .asm_1c450
ld a, [wNumMonHits]
and a
call nz, Func_1c46d
ret
.asm_1c450
cp $1
jr nz, .asm_1c458
call Func_1c47d
ret
.asm_1c458
ld a, [$d624]
call Func_1f265
ld a, $36
ld hl, $4f60
ld de, $8ae0
ld bc, $0020
call CopyDataToRAM
ret
Func_1c46d: ; 0x1c46d
push af
ld [$ff8a], a
ld a, Bank(Func_10611)
ld hl, Func_10611
call BankSwitch
pop af
dec a
jr nz, Func_1c46d
ret
Func_1c47d: ; 0x1c47d
ld de, $0000
ld a, [$d554]
and a
ret z
ld b, a
.asm_1c486
ld a, [wCurrentEvolutionType]
call Func_1c491
inc de
dec b
jr nz, .asm_1c486
ret
Func_1c491: ; 0x1c491
push bc
push de
dec a
ld c, a
ld b, $0
swap c
sla c
ld hl, $4e80
add hl, bc
swap e
sla e
push hl
ld hl, $8ae0
add hl, de
ld d, h
ld e, l
pop hl
ld bc, $0020
ld a, $36
call CopyDataToRAM
pop de
pop bc
ret
Func_1c4b6: ; 0x1c4b6
ld a, [wInSpecialMode]
and a
jr nz, .asm_1c4f0
ld a, [$d609]
and a
jr z, .asm_1c4d2
ld a, [$d498]
add $15
ld [$ff8a], a
ld a, Bank(Func_30256)
ld hl, Func_30256
call BankSwitch
ret
.asm_1c4d2
ld a, [$d608]
and a
jr z, .asm_1c4e5
ld a, $1a
ld [$ff8a], a
ld a, Bank(Func_30256)
ld hl, Func_30256
call BankSwitch
ret
.asm_1c4e5
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ret
.asm_1c4f0
ld a, [wSpecialMode]
cp $2
ret nz
ld a, [$d54d]
cp $3
jr nz, .asm_1c508
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ret
.asm_1c508
ld a, [$d604]
and a
ld a, $14
jr nz, .asm_1c515
ld a, [$d55a]
add $12
.asm_1c515
ld [$ff8a], a
ld a, Bank(Func_30256)
ld hl, Func_30256
call BankSwitch
ret
Func_1c520: ; 0x1c520
call Func_1c55a ; shellders
call Func_1c567 ; spinner
call Func_1c57e
call Func_1c592
call Func_1c588
call Func_1c5c0
call Func_1c5eb
ret
Func_1c536: ; 0x1c536
ld a, [wBallYPos + 1]
cp $56
jr nc, .asm_1c54d
call Func_1c5de
call Func_1c5b3
call Func_1c5a6
call Func_1c5d4
call Func_1c5eb
ret
.asm_1c54d
call Func_1c571
call Func_1c59c
call Func_1c5ca
call Func_1c607
ret
Func_1c55a: ; 0x1c55a
ld de, $4644
ld hl, $462e
ld bc, $d4cb
and a
jp Func_2775
Func_1c567: ; 0x1c567
ld de, $4650
ld bc, $d507
scf
jp Func_2775
Func_1c571: ; 0x1c571
ld de, $4625
ld hl, $4611
ld bc, $d4d8
and a
jp Func_2775
Func_1c57e: ; 0x1c57e
ld de, $4656
ld bc, $d51f
scf
jp Func_2775
Func_1c588: ; 0x1c588
ld de, $4665
ld bc, $d635
scf
jp Func_2775
Func_1c592: ; 0x1c592
ld de, $466b
ld bc, $d630
scf
jp Func_2775
Func_1c59c: ; 0x1c59c
ld de, $4671
ld bc, $d515
scf
jp Func_2775
Func_1c5a6: ; 0x1c5a6
ld de, $4686
ld hl, $467a
ld bc, $d60a
and a
jp Func_2775
Func_1c5b3: ; 0x1c5b3
ld de, $4695
ld hl, $468f
ld bc, $d4ed
and a
jp Func_2775
Func_1c5c0: ; 0x1c5c0
ld de, $469e
ld bc, $d5f7
scf
jp Func_2775
Func_1c5ca: ; 0x1c5ca
ld de, $46aa
ld bc, $d50d
scf
jp Func_2775
Func_1c5d4: ; 0x1c5d4
ld de, $46b9
ld bc, $d601
scf
jp Func_2775
Func_1c5de: ; 0x1c5de
ld de, $46d1
ld hl, $46bf
ld bc, $d5c7
and a
jp Func_2775
Func_1c5eb: ; 0x1c5eb
xor a
ld [$d578], a
ld a, [$d551]
and a
ret z
ld a, [wCurrentStage]
bit 0, a
jr nz, .asm_1c601
ld hl, BlueTopEvolutionTrinketCoords
jp PinballCollideWithPoints
.asm_1c601
ld hl, BlueBottomEvolutionTrinketCoords
jp PinballCollideWithPoints
Func_1c607: ; 0x1c607
ld de, $470f
ld bc, $d4dc
scf
jp Func_2775
INCBIN "baserom.gbc",$1c611,$1c6d7 - $1c611
BlueTopEvolutionTrinketCoords: ; 0x1c6d7
; First byte is just non-zero to signify that the array hasn't ended.
; Second byte is x coordinate.
; Third byte is y coordinate.
db $01, $44, $11
db $01, $23, $1B
db $01, $65, $1B
db $01, $0D, $2E
db $01, $7A, $2E
db $01, $05, $48
db $01, $44, $88
db $01, $83, $48
db $01, $02, $6E
db $01, $2E, $88
db $01, $59, $88
db $01, $85, $6E
db $00
BlueBottomEvolutionTrinketCoords: ; 0x1c6fc
; First byte is just non-zero to signify that the array hasn't ended.
; Second byte is x coordinate.
; Third byte is y coordinate.
db $01, $33, $1B
db $01, $55, $1B
db $01, $29, $1F
db $01, $5F, $1F
db $01, $1D, $35
db $01, $6B, $35
db $00
INCBIN "baserom.gbc",$1c70f,$1c715 - $1c70f
Func_1c715: ; 0x1c715
call Func_1c9c1
call Func_1ca5f
call Func_1e356
call HandleBallTypeUpgradeCounterBlueField
call Func_1e66a
call Func_1cfaa
call Func_1d0a1
call Func_1d216
call HandleEnteringCloyster
call Func_1ea3b
call Func_1dbd2
call Func_1ef09
call Func_1e9c0
call Func_1c8b6
call Func_1f18a
ld [$ff8a], a
ld a, Bank(Func_146a9)
ld hl, Func_146a9
call BankSwitch
call Func_1f27b
call Func_1df15
ld [$ff8a], a
ld a, Bank(Func_30188)
ld hl, Func_30188
call BankSwitch
ld a, $0
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret
Func_1c769: ; 0x1c769
call Func_1ca4a
call Func_1ce40
call Func_1dbd2
call Func_1ca85
call Func_1e4b8
call HandleBallTypeUpgradeCounterBlueField
call Func_1e5c5
call Func_1c7d7
call Func_1d0a1
call Func_1ead4
call Func_1d438
call Func_1e757
call Func_1e9c0
call Func_1ea0a
call Func_1c8b6
ld [$ff8a], a
ld a, Bank(Func_14733)
ld hl, Func_14733
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_146a2)
ld hl, Func_146a2
call BankSwitch
call Func_1f261
call Func_1de93
ld [$ff8a], a
ld a, Bank(Func_30188)
ld hl, Func_30188
call BankSwitch
ld a, $0
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret
Func_1c7c7: ; 0x1c7c7
ld a, $0
ld [wStageCollisionState], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
ret
Func_1c7d7: ; 0x1c7d7
ld a, [$d4dc]
and a
ret z
xor a
ld [$d4dc], a
ld a, [$d4de]
and a
jr z, .asm_1c810
xor a
ld [wRightAlleyTrigger], a
ld [wLeftAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
ld hl, wBallXVelocity
ld [hli], a
ld [hl], a
ld [wBallSpin], a
ld [wBallRotation], a
ld a, $71
ld [wBallYVelocity], a
ld a, $fa
ld [wBallYVelocity + 1], a
ld a, $1
ld [$d549], a
ld de, $000a
call PlaySoundEffect
.asm_1c810
ld a, $ff
ld [$d4ec], a
ld a, [$d4de]
and a
ret nz
ld a, [$d4e0]
and a
jr nz, .asm_1c82c
call Func_1c839
ld a, $1
ld [$d4e0], a
ld [$d4de], a
ret
.asm_1c82c
ld hl, wKeyConfigBallStart
call IsKeyPressed
ret z
ld a, $1
ld [$d4de], a
ret
Func_1c839: ; 0x1c839
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_f269)
ld hl, Func_f269
call nz, BankSwitch
.showNextMap
ld a, [wInitialMapSelectionIndex]
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 [wInitialMapSelectionIndex], a
ld c, a
ld b, $0
ld hl, BlueStageInitialMaps
add hl, bc
ld a, [hl]
ld [wCurrentMap], a
push af
ld de, $0048
call PlaySoundEffect
pop af
add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers
ld [$ff8a], a
ld a, Bank(LoadBillboardPicture)
ld hl, LoadBillboardPicture
call BankSwitch
ld b, $20 ; number of frames to delay before the next map is shown
.waitOnCurrentMap
push bc
ld [$ff8a], a
ld a, Bank(Func_eeee)
ld hl, Func_eeee
call BankSwitch
ld hl, wKeyConfigBallStart
call IsKeyPressed
jr nz, .ballStartKeyPressed
pop bc
dec b
jr nz, .waitOnCurrentMap
jr .showNextMap
.ballStartKeyPressed
pop bc
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld bc, $2cd1
ld [$ff8a], a
ld a, Bank(Func_3118f)
ld hl, Func_3118f
call BankSwitch
ld a, [wCurrentMap]
ld [$d4e3], a
xor a
ld [$d4e2], a
ret
BlueStageInitialMaps: ; 0x1c8af
db VIRIDIAN_CITY
db VIRIDIAN_FOREST
db MT_MOON
db CERULEAN_CITY
db VERMILION_STREETS
db ROCK_MOUNTAIN
db CELADON_CITY
Func_1c8b6: ; 0x1c8b6
ld a, [$d64c]
inc a
cp $3c
jr z, .asm_1c8c2
ld [$d64c], a
ret
.asm_1c8c2
xor a
ld [$d64c], a
ld hl, $d64d
inc [hl]
ld a, [hl]
cp $5
ret nz
ld a, [$d644]
and a
jr nz, .asm_1c8e1
ld a, [$d643]
and a
jr nz, .asm_1c8e5
ld a, [wRightAlleyCount]
cp $2
jr nc, .asm_1c8e5
.asm_1c8e1
xor a
ld [$d64b], a
.asm_1c8e5
ld a, [$d644]
and a
jr nz, .asm_1c8f8
ld a, [$d643]
and a
jr nz, .asm_1c8fc
ld a, [wLeftAlleyCount]
cp $3
jr z, .asm_1c8fc
.asm_1c8f8
xor a
ld [$d64b], a
.asm_1c8fc
xor a
ld [$d64d], a
xor a
ld [$d64a], a
ld [$d649], a
ld [$d648], a
ld a, [wBlueStageForceFieldDirection]
cp $1 ; right direction
jr z, .asm_1c97f
cp $3 ; left direction
jr z, .asm_1c97f
.asm_1c915
ld a, [$d644]
cp $0
jr z, .asm_1c925
ld a, [$d55a]
cp $0
jr nz, .asm_1c933
jr .asm_1c947
.asm_1c925
ld a, [$d643]
cp $0
jr nz, .asm_1c933
ld a, [wRightAlleyCount]
cp $2
jr c, .asm_1c947
.asm_1c933
ld a, [$d64b]
cp $1
jr z, .asm_1c947
ld a, $1 ; right direction
ld [wBlueStageForceFieldDirection], a
ld [$d64b], a
ld [$d640], a
jr .asm_1c99e
.asm_1c947
ld a, [$d644]
cp $0
jr z, .asm_1c955
ld a, [$d55a]
cp $0
jr z, .asm_1c969
.asm_1c955
ld a, [$d643]
cp $0
jr nz, .asm_1c969
ld a, [wLeftAlleyCount]
cp $3
jr nz, .asm_1c97f
ld a, [wInSpecialMode]
and a
jr nz, .asm_1c97f
.asm_1c969
ld a, [$d64b]
cp $3
jr z, .asm_1c915
ld a, $3 ; left direction
ld [wBlueStageForceFieldDirection], a
ld [$d64b], a
ld a, $1
ld [$d640], a
jr .asm_1c99e
.asm_1c97f
ld a, [$d641]
and a
jr nz, .asm_1c993
xor a
ld [wBlueStageForceFieldDirection], a
ld a, $1
ld [$d640], a
ld [$d64a], a
jr .asm_1c99e
.asm_1c993
ld a, $2 ; down direction
ld [wBlueStageForceFieldDirection], a
ld a, $1
ld [$d640], a
ret
.asm_1c99e
ld a, [wBlueStageForceFieldDirection]
cp $0 ; up direction
jr nz, .asm_1c9ac
ld a, $1
ld [$d64a], a
jr .asm_1c9c0
.asm_1c9ac
cp $1
jr nz, .asm_1c9b7
ld a, $1
ld [$d649], a
jr .asm_1c9c0
.asm_1c9b7
cp $3
jr nz, .asm_1c9c0
ld a, $1
ld [$d648], a
.asm_1c9c0
ret
Func_1c9c1: ; 0x1c9c1
ld a, [$d4cb]
and a
jr z, .asm_1ca19
xor a
ld [$d4cb], a
call Func_1ca29
ld a, [$d641]
and a
jr nz, .asm_1c9f2
ld a, $1
ld [$d641], a
ld a, [wBlueStageForceFieldDirection]
cp $0 ; up direction
jr nz, .asm_1c9f2
ld a, $2 ; down direction
ld [wBlueStageForceFieldDirection], a
ld a, $1
ld [$d640], a
ld a, $3
ld [$d64c], a
ld [$d64d], a
.asm_1c9f2
ld a, $10
ld [$d4d6], a
ld a, [$d4cc]
sub $3
ld [$d4d7], a
ld a, $4
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld bc, $34be
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ret
.asm_1ca19
ld a, [$d4d6]
and a
ret z
dec a
ld [$d4d6], a
ret nz
ld a, $ff
ld [$d4d7], a
ret
Func_1ca29: ; 0x1ca29
ld a, $ff
ld [$d803], a
ld a, $3
ld [$d804], a
ld hl, $0200
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
ld de, $000e
call PlaySoundEffect
ret
Func_1ca4a: ; 1ca4a
ld a, [$d5c7]
and a
ret z
xor a
ld [$d5c7], a
ld a, $1
ld [$d5bf], a
ld de, $0006
call PlaySoundEffect
ret
INCBIN "baserom.gbc",$1ca5f,$1ca5f - $1ca5f
Func_1ca5f: ; 0x1ca5f
ld a, [$d507]
and a
jr z, Func_1ca85
xor a
ld [$d507], a
ld a, [wBallYVelocity]
ld c, a
ld a, [wBallYVelocity + 1]
ld b, a
ld a, c
ld [$d50b], a
ld a, b
ld [$d50c], a
ld a, $c
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
; fall through
Func_1ca85: ; 0x1ca85
ld hl, $d50b
ld a, [hli]
or [hl]
ret z
ld a, [$d50b]
ld c, a
ld a, [$d50c]
ld b, a
bit 7, b
jr nz, .asm_1caa3
ld a, c
sub $7
ld c, a
ld a, b
sbc $0
ld b, a
jr nc, .asm_1cab0
jr .asm_1caad
.asm_1caa3
ld a, c
add $7
ld c, a
ld a, b
adc $0
ld b, a
jr nc, .asm_1cab0
.asm_1caad
ld bc, $0000
.asm_1cab0
ld a, c
ld [$d50b], a
ld a, b
ld [$d50c], a
ld hl, $d50b
ld a, [$d509]
add [hl]
ld [$d509], a
inc hl
ld a, [$d50a]
adc [hl]
bit 7, a
ld c, $0
jr z, .asm_1cad3
add $18
ld c, $1
jr .asm_1cadb
.asm_1cad3
cp $18
jr c, .asm_1cadb
sub $18
ld c, $1
.asm_1cadb
ld [$d50a], a
ld a, c
and a
ret z
ld bc, $34ac
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld hl, $d62d
call Func_e4a
ld a, [$d517]
cp $f
jr nz, .asm_1caff
call Func_1cb1c
ret
.asm_1caff
inc a
ld [$d517], a
call Func_1cb1c
ld a, [$d517]
cp $f
jr nz, .asm_1cb12
ld a, $64
ld [$d51e], a
.asm_1cb12
ld a, [wCurrentStage]
bit 0, a
ret nz
call Func_1cb43
ret
Func_1cb1c: ; 0x1cb1c
ld a, [$d51e]
and a
ret nz
ld a, [$d517]
ld c, a
ld b, $0
ld hl, $4b33 ; todo
add hl, bc
ld a, [hl]
ld e, a
ld d, $0
call PlaySoundEffect
ret
INCBIN "baserom.gbc",$1cb33,$1cb43 - $1cb33
Func_1cb43: ; 0x1cb43
ld a, [$d517]
ld c, a
sla c
ld b, $0
ld hl, $4b60 ; todo
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1cb56
ld hl, $4d10 ; todo
.asm_1cb56
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $7
call Func_10aa
ret
INCBIN "baserom.gbc",$1cb60,$1ce40 - $1cb60
Func_1ce40: ; 1ce40
ld a, [$d4d8]
and a
jr z, .asm_1ce53
call Func_1ce72
call Func_1ce60
xor a
ld [$d4d8], a
call Func_1ce94
.asm_1ce53
ld a, [$d4da]
and a
ret z
dec a
ld [$d4da], a
call z, Func_1ce72
ret
Func_1ce60: ; 0x1ce60
ld a, $10
ld [$d4da], a
ld a, [$d4d9]
sub $1
ld [$d4db], a
sla a
inc a
jr asm_1ce7a
Func_1ce72: ; 1ce72
ld a, [$d4db]
cp $ff
ret z
sla a
asm_1ce7a: ; 0x1ce7a
sla a
ld c, a
ld b, $0
ld hl, $4eca
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1ce8a
ld hl, $4f3a
.asm_1ce8a
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $7
call Func_10aa
ret
Func_1ce94: ; 0x1ce94
ld a, $ff
ld [$d803], a
ld a, $3
ld [$d804], a
ld hl, $0200
ld a, l
ld [$d7bc], a
ld a, h
ld [$d7bd], a
ld a, $80
ld [wFlipperCollision], a
ld a, [$d4d9]
sub $1
ld c, a
ld b, $0
ld hl, $4ec8
add hl, bc
ld a, [$d7ea]
add [hl]
ld [$d7ea], a
ld de, $000b
call PlaySoundEffect
ret
INCBIN "baserom.gbc",$1cec8,$1cfaa - $1cec8
Func_1cfaa: ; 0x1cfaa
ld a, [$d51f]
and a
ret z
xor a
ld [$d51f], a
ld bc, $34a6
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld a, [wStageCollisionState]
cp $0
jr nz, .asm_1cfe5
ld a, $1
ld [wStageCollisionState], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
ld a, $1
ld [$d580], a
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
.asm_1cfe5
ld a, [$d520]
sub $7
ld c, a
ld b, $0
ld hl, $d521
add hl, bc
ld [hl], $1
ld a, [$d521]
and a
call nz, Func_1d010
ld a, [$d522]
and a
call nz, Func_1d047
ld a, [$d523]
and a
call nz, HandleLeftAlleyTriggerBlueField
ld a, [$d524]
and a
call nz, HandleRightAlleyTriggerBlueField
ret
Func_1d010: ; 0x1d010
xor a
ld [$d521], a
ld a, [wLeftAlleyTrigger]
and a
ret z
xor a
ld [wLeftAlleyTrigger], a
ld a, $1
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret c
ld a, [wLeftAlleyCount]
cp $3
ret z
inc a
ld [wLeftAlleyCount], a
cp $3
jr z, .asm_1d03e
set 7, a
ld [wIndicatorStates], a
ret
.asm_1d03e
ld [wIndicatorStates], a
ld a, $80
ld [wIndicatorStates + 2], a
ret
Func_1d047: ; 0x1d047
xor a
ld [$d522], a
ld a, [wRightAlleyTrigger]
and a
ret z
xor a
ld [wRightAlleyTrigger], a
ld a, $2
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ret c
ld a, [wRightAlleyCount]
cp $3
ret z
inc a
ld [wRightAlleyCount], a
cp $3
jr z, .asm_1d071
set 7, a
.asm_1d071
ld [wIndicatorStates + 1], a
ld a, [wRightAlleyCount]
cp $2
ret c
ld a, $80
ld [wIndicatorStates + 3], a
ret
HandleLeftAlleyTriggerBlueField: ; 0x1d080
; Ball passed over the left alley trigger point in the Blue Field.
xor a
ld [$d523], a
ld [wRightAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
ld a, $1
ld [wLeftAlleyTrigger], a
ret c
ret
HandleRightAlleyTriggerBlueField: ; 0x1d091
; Ball passed over the right alley trigger point in the Blue Field.
xor a
ld [$d524], a
ld [wLeftAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
ld a, $1
ld [wRightAlleyTrigger], a
ret
Func_1d0a1: ; 0x1d0a1
ld a, [$d515]
and a
jr z, .asm_1d110
xor a
ld [$d515], a
ld a, [$d51c]
and a
jr nz, .asm_1d110
ld a, [$d51d]
and a
jr nz, .asm_1d0c9
ld a, [$d516]
sub $d
ld hl, $d518
cp [hl]
jr nz, .asm_1d110
ld a, [$d517]
cp $f
jr nz, .asm_1d0fc
.asm_1d0c9
ld hl, $51d1 ; todo
ld de, $d519
call CopyHLToDE
ld a, [$d51d]
and a
jr nz, .asm_1d0dc
xor a
ld [$d517], a
.asm_1d0dc
ld a, $1
ld [$d51c], a
xor a
ld [wBallXVelocity], a
ld [wBallXVelocity + 1], a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld [wBallSpin], a
ld [wBallRotation], a
ld [$d549], a
call Func_30e8
jr .asm_1d110
.asm_1d0fc
ld hl, $51f6 ; todo
ld de, $d519
call CopyHLToDE
ld a, $2
ld [$d51c], a
ld de, $003b
call PlaySoundEffect
.asm_1d110
ld a, [$d51c]
and a
call z, Func_1d1fb
call Func_1d133
ld a, [$d517]
cp $f
ret nz
ld a, [$d51e]
and a
ret z
dec a
ld [$d51e], a
cp $5a
ret nz
ld de, $0f22
call PlaySoundEffect
ret
Func_1d133: ; 0x1d133
ld a, [$d51c]
cp $1
jr nz, .asm_1d1ae
ld hl, $51d1 ; todo
ld de, $d519
call Func_28a9
ret nc
ld a, [$d51b]
cp $1
jr nz, .asm_1d18c
xor a
ld [$d85d], a
call Func_310a
rst $10
ld a, $1
ld [$ff8a], a
ld a, Bank(PlayPikachuSoundClip)
ld hl, PlayPikachuSoundClip
call BankSwitch
ld a, $1
ld [$d85d], a
ld a, $ff
ld [$d803], a
ld a, $60
ld [$d804], a
ld hl, $d62e
call Func_e4a
jr nc, .asm_1d185
ld c, $a
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
.asm_1d185
ld de, $1610
call PlaySoundEffect
ret
.asm_1d18c
ld a, [$d51b]
cp $11
ret nz
ld a, $fc
ld [wBallYVelocity + 1], a
ld a, $1
ld [$d549], a
ld bc, $34ca
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
xor a
ld [$d51c], a
ret
.asm_1d1ae
cp $2
jr nz, .asm_1d1c7
ld hl, $51f6 ; todo
ld de, $d519
call Func_28a9
ret nc
ld a, [$d51b]
cp $1
ret nz
xor a
ld [$d51c], a
ret
.asm_1d1c7
ld a, [$ffb3]
swap a
and $1
ld [$d51a], a
ret
INCBIN "baserom.gbc",$1d1d1,$1d1fb - $1d1d1
Func_1d1fb: ; 0x1d1fb
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed2
jr z, .asm_1d209
ld hl, $d518
ld [hl], $0
ret
.asm_1d209
ld hl, wKeyConfigRightFlipper
call IsKeyPressed2
ret z
ld hl, $d518
ld [hl], $1
ret
Func_1d216: ; 0x1d216
ld a, [$d630]
and a
jr z, .asm_1d253
xor a
ld [$d630], a
ld bc, $34d0
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld de, $0005
call PlaySoundEffect
ld hl, $5312 ; todo
ld de, $d632
call CopyHLToDE
xor a
ld [wBallXVelocity], a
ld [wBallXVelocity + 1], a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld [wBallXPos], a
ld [wBallYPos], a
xor a
ld [$d549], a
.asm_1d253
ld hl, $5312 ; todo
ld de, $d632
call Func_28a9
push af
ld a, [$d632]
and a
jr nz, .asm_1d271
ld a, $19
ld [$d632], a
xor a
ld [$d633], a
ld a, $6
ld [$d634], a
.asm_1d271
pop af
ret nc
ld a, [$d634]
cp $1
jr nz, .asm_1d2b6
xor a
ld [$d548], a
ld a, [wLeftAlleyCount]
cp $3
jr nz, .asm_1d299
ld [$ff8a], a
ld a, Bank(Func_10ab3)
ld hl, Func_10ab3
call BankSwitch
ld a, [$d643]
and a
ret z
ld a, $1
ld [$d642], a
.asm_1d299
ld hl, $d63a
call Func_e4a
ld hl, $d62a
call Func_e4a
ret nc
ld c, $19
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
ret
.asm_1d2b6
ld a, [$d634]
cp $4
jr nz, .asm_1d2c3
ld a, $1
ld [$d548], a
ret
.asm_1d2c3
ld a, [$d634]
cp $5
ret nz
ld a, $1
ld [$d549], a
ld a, $b0
ld [wBallXVelocity], a
ld a, $0
ld [wBallXVelocity + 1], a
xor a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld de, $0006
call PlaySoundEffect
ld a, [$d642]
cp $0
jr nz, .asm_1d2f8
ld a, $f
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
.asm_1d2f8
xor a
ld [$d642], a
ld [$d64c], a
ld [$d64d], a
ld a, $1
ld [$d641], a
ld a, $2 ; down direction
ld [wBlueStageForceFieldDirection], a
ld a, $1
ld [$d640], a
ret
INCBIN "baserom.gbc",$1d312,$1d32d - $1d312
HandleEnteringCloyster: ; 0x1d32d
ld a, [$d635]
and a
jr z, .asm_1d36a
xor a
ld [$d635], a
ld bc, $34d0
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld de, $0005
call PlaySoundEffect
ld hl, $541d
ld de, $d637
call CopyHLToDE
xor a
ld [wBallXVelocity], a
ld [wBallXVelocity + 1], a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld [wBallXPos], a
ld [wBallYPos], a
xor a
ld [$d549], a
.asm_1d36a
ld hl, $541d
ld de, $d637
call Func_28a9
push af
ld a, [$d637]
and a
jr nz, .asm_1d388
ld a, $19
ld [$d637], a
xor a
ld [$d638], a
ld a, $6
ld [$d639], a
.asm_1d388
pop af
ret nc
ld a, [$d639]
cp $1
jr nz, .asm_1d3cb
xor a
ld [$d548], a
ld a, [wRightAlleyCount]
cp $2
jr c, .noCatchEmMode
ld a, $8
jr nz, .asm_1d3a1
xor a
.asm_1d3a1
ld [wRareMonsFlag], a
ld [$ff8a], a
ld a, Bank(StartCatchEmMode)
ld hl, StartCatchEmMode
call BankSwitch
.noCatchEmMode
ld hl, $d63b
call Func_e4a
ld hl, $d62a
call Func_e4a
ret nc
ld c, $19
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
ret
.asm_1d3cb
ld a, [$d639]
cp $4
jr nz, .asm_1d3d8
ld a, $1
ld [$d548], a
ret
.asm_1d3d8
ld a, [$d639]
cp $5
ret nz
ld a, $1
ld [$d549], a
ld a, $4f
ld [wBallXVelocity], a
ld a, $ff
ld [wBallXVelocity + 1], a
xor a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld de, $0006
call PlaySoundEffect
ld a, $e
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
xor a
ld [$d64c], a
ld [$d64d], a
ld a, $1
ld [$d641], a
ld a, $2 ; down direction
ld [wBlueStageForceFieldDirection], a
ld a, $1
ld [$d640], a
ret
INCBIN "baserom.gbc",$1d41d,$1d438 - $1d41d
Func_1d438: ; 0x1d438
call Func_1d692
ld a, [$d60a]
and a
jp z, Func_1d51b
xor a
ld [$d60a], a
ld de, $000d
call PlaySoundEffect
ld a, [$d60b]
sub $f
jr nz, .asm_1d48e
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_1d45c
ld a, $1f
jr .asm_1d45e
.asm_1d45c
ld a, $29
.asm_1d45e
call Func_1d5f2
ld a, $3c
ld [$d647], a
ld a, $9
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, [$d610]
cp $3
jp nz, asm_1d4fa
ld a, $1
ld [$d610], a
ld a, $3
ld [$d611], a
ld a, [$d60c]
set 7, a
ld [$d60c], a
jr asm_1d4fa
.asm_1d48e
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_1d497
ld a, $21
jr .asm_1d499
.asm_1d497
ld a, $2b
.asm_1d499
call Func_1d5f2
ld a, $1e
ld [$d647], a
ld a, $a
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, [$d611]
cp $3
jr nz, asm_1d4fa
ld a, $1
ld [$d610], a
ld a, $1
ld [$d611], a
ld a, $80
ld [$d612], a
ld a, [$d60d]
set 7, a
ld [$d60d], a
ld a, [$d482]
inc a
cp $64
jr c, .asm_1d4d5
ld a, $63
.asm_1d4d5
ld [$d482], a
jr nc, .asm_1d4e9
ld c, $19
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
.asm_1d4e9
ld a, [$d60c]
ld [$d614], a
ld a, [$d60d]
ld [$d615], a
ld a, $1
ld [$d613], a
asm_1d4fa: ; 0x1d4fa
ld bc, $34ac
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld a, [$d60c]
call Func_1d5f2
ld a, [$d60d]
add $14
call Func_1d5f2
ld a, $3c
ld [$d647], a
ret
Func_1d51b: ; 0x1d51b
call Func_1d5bf
ld a, [$d612]
and a
jr z, .asm_1d559
dec a
ld [$d612], a
cp $70
jr nz, .asm_1d538
ld a, $2
ld [$d610], a
ld a, $2
ld [$d611], a
jr .asm_1d559
.asm_1d538
and a
jr nz, .asm_1d559
ld a, $3
ld [$d610], a
xor a
ld [$d611], a
ld a, [$d482]
call Func_1d65f
ld a, [$d60c]
call Func_1d5f2
ld a, [$d60d]
add $14
call Func_1d5f2
ret
.asm_1d559
ld a, [$d610]
cp $2
jr c, .asm_1d58b
cp $3
ld a, [$ffb3]
jr c, .asm_1d56a
srl a
srl a
.asm_1d56a
ld b, a
and $3
jr nz, .asm_1d58b
bit 3, b
jr nz, .asm_1d580
ld a, [$d60c]
res 7, a
ld [$d60c], a
call Func_1d5f2
jr .asm_1d58b
.asm_1d580
ld a, [$d60c]
set 7, a
ld [$d60c], a
call Func_1d5f2
.asm_1d58b
ld a, [$d611]
cp $2
ret c
cp $3
ld a, [$ffb3]
jr c, .asm_1d59b
srl a
srl a
.asm_1d59b
ld b, a
and $3
ret nz
bit 3, b
jr nz, .asm_1d5b1
ld a, [$d60d]
res 7, a
ld [$d60d], a
add $14
call Func_1d5f2
ret
.asm_1d5b1
ld a, [$d60d]
set 7, a
ld [$d60d], a
add $14
call Func_1d5f2
ret
Func_1d5bf: ; 0x1d5bf
ld a, [$d5ca]
and a
ret nz
ld a, [$d613]
and a
ret z
xor a
ld [$d613], a
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $2958
call Func_32aa
ld hl, $c512
ld a, [$d614]
and $7f
jr z, .asm_1d5e9
add $30
ld [hli], a
.asm_1d5e9
ld a, [$d615]
res 7, a
add $30
ld [hl], a
ret
Func_1d5f2: ; 0x1d5f2
push af
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_1d5fd
pop af
call Func_1d602
ret
.asm_1d5fd
pop af
call Func_1d645
ret
Func_1d602: ; 0x1d602
push af
res 7, a
ld hl, $d60e
cp $14
jr c, .asm_1d611
ld hl, $d60f
sub $a
.asm_1d611
cp [hl]
jr z, .asm_1d626
ld [hl], a
ld c, a
ld b, $0
sla c
ld hl, $56be
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $7
call Func_10aa
.asm_1d626
pop af
ld bc, $0000
bit 7, a
jr z, .asm_1d632
res 7, a
set 1, c
.asm_1d632
cp $14
jr c, .asm_1d638
set 2, c
.asm_1d638
ld hl, $5946
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $7
call Func_10aa
ret
Func_1d645: ; 0x1d645
bit 7, a
jr z, .asm_1d64d
res 7, a
add $a
.asm_1d64d
ld c, a
ld b, $0
sla c
ld hl, $597a
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $7
call Func_10aa
ret
Func_1d65f: ; 0x1d65f
ld a, [$d482]
inc a
cp $64
jr c, .asm_1d669
ld a, $63
.asm_1d669
ld b, a
xor a
ld hl, $568b ; todo
ld c, $7
.asm_1d670
bit 0, b
jr z, .asm_1d676
add [hl]
daa
.asm_1d676
srl b
inc hl
dec c
jr nz, .asm_1d670
push af
swap a
and $f
ld [$d60c], a
pop af
and $f
ld [$d60d], a
ret
INCBIN "baserom.gbc",$1d68b,$1d692 - $1d68b
Func_1d692: ; 0x1d692
ld a, [$d647]
cp $1
jr z, .asm_1d69e
dec a
ld [$d647], a
ret
.asm_1d69e
ld a, $0
ld [$d647], a
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_1d6b3
ld a, $1e
call Func_1d5f2
ld a, $20
call Func_1d5f2
ret
.asm_1d6b3
ld a, $2a
call Func_1d5f2
ld a, $28
call Func_1d5f2
ret
INCBIN "baserom.gbc",$1d6be,$1dbd2 - $1d6be
Func_1dbd2: ; 0x1dbd2
ld a, [$d4ed]
and a
jp z, Func_1dc8e
cp $2
jr z, .asm_1dc33
xor a
ld [$d4ed], a
ld hl, wLeftMapMoveCounter
ld a, [hl]
cp $3
jp z, Func_1dc8e
inc a
ld [hl], a
ld hl, $d4f7
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_1dc06
ld a, $54
ld [$c7e3], a
ld a, $55
ld [$c803], a
.asm_1dc06
ld a, $1
call Func_1de4b
ld a, [wLeftMapMoveCounter]
call Func_1de6f
ld a, [wLeftMapMoveCounter]
cp $3
ld a, $7
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, $2
ld [$d646], a
ld a, $78
ld [wLeftMapMoveDiglettAnimationCounter], a
ld a, $14
ld [wLeftMapMoveDiglettFrame], a
jr .asm_1dc8a
.asm_1dc33
xor a
ld [$d4ed], a
ld hl, wRightMapMoveCounter
ld a, [hl]
cp $3
jp z, Func_1dc8e
inc a
ld [hl], a
ld hl, $d4f9
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_1dc5c
ld a, $52
ld [$c7f0], a
ld a, $53
ld [$c810], a
.asm_1dc5c
ld a, $3
call Func_1de4b
ld a, [wRightMapMoveCounter]
cp $3
ld a, $8
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, [wRightMapMoveCounter]
cp $3
ccf
call z, Func_1ddf4
ld a, $2
ld [$d645], a
ld a, $28
ld [wRightMapMoveDiglettAnimationCounter], a
ld a, $78
ld [wRightMapMoveDiglettFrame], a
.asm_1dc8a
call Func_1de22
ret
Func_1dc8e: ; 0x1dc8e
call Func_1dc95
call Func_1dd2e
ret
Func_1dc95: ; 0x1dc95
ld a, [$d646]
cp $0
ret z
ld a, [wLeftMapMoveDiglettAnimationCounter]
and a
jr z, .asm_1dceb
dec a
ld [wLeftMapMoveDiglettAnimationCounter], a
ld a, [$d644]
and a
ret nz
ld a, [wLeftMapMoveDiglettFrame]
cp $1
jr z, .asm_1dcb9
cp $0
ret z
dec a
ld [wLeftMapMoveDiglettFrame], a
ret
.asm_1dcb9
ld a, [$d646]
cp $2
ret nz
call Func_1130
ret nz
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1dcd7
ld a, [wLeftMapMoveCounter]
cp $0
jr z, .asm_1dcd4
ld b, $7
add b
jr .asm_1dcd9
.asm_1dcd4
xor a
jr .asm_1dcd9
.asm_1dcd7
ld a, $8
.asm_1dcd9
call Func_1de6f
ld a, [wLeftMapMoveCounter]
cp $3
ccf
call z, Func_1ddc7
ld a, $1
ld [$d646], a
ret
.asm_1dceb
ld a, [$d646]
cp $1
ret nz
ld a, [wLeftMapMoveDiglettAnimationCounter]
and a
ret nz
ld a, $0
call Func_1de4b
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_1dd0c
ld a, $5e
ld [$c7e3], a
ld a, $5f
ld [$c803], a
.asm_1dd0c
ld a, $0
ld [$d646], a
ld a, [wLeftMapMoveCounter]
sub $3
ret nz
ld a, [wLeftMapMoveCounter]
sub $3
ld [wLeftMapMoveCounter], a
call Func_1de6f
ld a, $0
call Func_1de4b
ld a, $0
ld [$d646], a
ret
INCBIN "baserom.gbc",$1dd2d,$1dd2e - $1dd2d
Func_1dd2e: ; 0x1dd2e
ld a, [$d645]
cp $0
ret z
cp $1
jr z, .asm_1dd53
cp $3
jr z, .asm_1dd69
ld a, [wRightMapMoveDiglettAnimationCounter]
cp $0
jr z, .asm_1dd48
dec a
ld [wRightMapMoveDiglettAnimationCounter], a
ret
.asm_1dd48
ld a, $2
call Func_1de4b
ld a, $1
ld [$d645], a
ret
.asm_1dd53
ld a, [wRightMapMoveCounter]
add $4
call Func_1de6f
ld a, [wRightMapMoveCounter]
add $3
call Func_1de4b
ld a, $3
ld [$d645], a
ret
.asm_1dd69
ld a, [wRightMapMoveDiglettFrame]
and a
jr z, .asm_1dd74
dec a
ld [wRightMapMoveDiglettFrame], a
ret
.asm_1dd74
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1dd89
ld a, [wRightMapMoveCounter]
cp $0
jr z, .asm_1dd85
ld b, $a
add b
jr .asm_1dd8b
.asm_1dd85
ld a, $4
jr .asm_1dd8b
.asm_1dd89
ld a, $9
.asm_1dd8b
call Func_1de6f
ld a, $2
call Func_1de4b
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_1dda9
ld a, $24
ld [$c7f0], a
ld a, $25
ld [$c810], a
ld a, $0
ld [$d645], a
.asm_1dda9
ld a, [wRightMapMoveCounter]
sub $3
ret nz
ld a, [wRightMapMoveCounter]
sub $3
ld [wRightMapMoveCounter], a
ld a, $4
call Func_1de6f
ld a, $2
call Func_1de4b
ld a, $0
ld [$d645], a
ret
Func_1ddc7: ; 0x1ddc7
ld hl, $d63d
call Func_e4a
ld hl, $d62b
call Func_e4a
jr nc, .asm_1dde4
ld c, $a
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
.asm_1dde4
xor a
ld [$d55a], a
ld [$ff8a], a
ld a, Bank(StartMapMoveMode)
ld hl, StartMapMoveMode
call BankSwitch
scf
ret
Func_1ddf4: ; 0x1ddf4
ld hl, $d63c
call Func_e4a
ld hl, $d62b
call Func_e4a
jr nc, .asm_1de11
ld c, $a
call Func_e55
ld [$ff8a], a
ld a, Bank(Func_30164)
ld hl, Func_30164
call z, BankSwitch
.asm_1de11
ld a, $1
ld [$d55a], a
ld [$ff8a], a
ld a, Bank(StartMapMoveMode)
ld hl, StartMapMoveMode
call BankSwitch
scf
ret
Func_1de22: ; 0x1de22
ld a, [wCurrentStage]
bit 0, a
ret z
ld a, $55
ld [$d803], a
ld a, $4
ld [$d804], a
ld a, $2
ld [$d7eb], a
ld bc, $34be
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld de, $000f
call PlaySoundEffect
ret
Func_1de4b: ; 0x1de4b
ld b, a
ld a, [wCurrentStage]
bit 0, a
ret z
ld a, b
sla a
ld c, a
ld b, $0
ld hl, $5f66
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1de63
ld hl, $600f
.asm_1de63
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $7
call Func_10aa
ret
Func_1de6f: ; 0x1de6f
ld b, a
ld a, [wCurrentStage]
bit 0, a
ret z
ld a, b
sla a
ld c, a
ld b, $0
ld hl, $60a4
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1de87
ld hl, $61d6
.asm_1de87
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $7
call Func_10aa
ret
Func_1de93: ; 0x1de93
ld hl, $d4f7
dec [hl]
ld a, [hli]
cp $ff
jr nz, .asm_1ded2
dec [hl]
ld a, [hld]
cp $ff
jr nz, .asm_1ded2
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wLeftMapMoveCounter]
and a
jr z, .asm_1ded2
cp $3
jr z, .asm_1ded2
dec a
ld [wLeftMapMoveCounter], a
call Func_1de6f
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1decd
ld a, [wLeftMapMoveCounter]
cp $0
jr z, .asm_1deca
ld b, $7
add b
jr .asm_1decf
.asm_1deca
xor a
jr .asm_1decf
.asm_1decd
ld a, $8
.asm_1decf
call Func_1de6f
.asm_1ded2
ld hl, $d4f9
dec [hl]
ld a, [hli]
cp $ff
jr nz, .asm_1df14
dec [hl]
ld a, [hld]
cp $ff
jr nz, .asm_1df14
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wRightMapMoveCounter]
and a
jr z, .asm_1df14
cp $3
jr z, .asm_1df14
dec a
ld [wRightMapMoveCounter], a
add $4
call Func_1de6f
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1df0f
ld a, [wRightMapMoveCounter]
cp $0
jr z, .asm_1df0b
ld b, $a
add b
jr .asm_1df11
.asm_1df0b
ld a, $4
jr .asm_1df11
.asm_1df0f
ld a, $9
.asm_1df11
call Func_1de6f
.asm_1df14
ret
Func_1df15: ; 0x1df15
ld b, $0
ld hl, $d4f8
ld a, [hld]
or [hl]
jr z, .asm_1df3e
dec [hl]
ld a, [hli]
cp $ff
jr nz, .asm_1df3e
dec [hl]
ld a, [hld]
cp $ff
jr nz, .asm_1df3e
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wLeftMapMoveCounter]
and a
jr z, .asm_1df3e
cp $3
jr z, .asm_1df3e
dec a
ld [wLeftMapMoveCounter], a
.asm_1df3e
ld hl, $d4fa
ld a, [hld]
or [hl]
jr z, .asm_1df65
dec [hl]
ld a, [hli]
cp $ff
jr nz, .asm_1df65
dec [hl]
ld a, [hld]
cp $ff
jr nz, .asm_1df65
ld a, $e0
ld [hli], a
ld a, $1
ld [hl], a
ld a, [wRightMapMoveCounter]
and a
jr z, .asm_1df65
cp $3
jr z, .asm_1df65
dec a
ld [wRightMapMoveCounter], a
.asm_1df65
ret
INCBIN "baserom.gbc",$1df66,$1e356 - $1df66
Func_1e356: ; 0x1e356
ld a, [$d5f7]
and a
jp z, Func_1e471
xor a
ld [$d5f7], a
ld a, [wStageCollisionState]
cp $0
jr nz, .asm_1e386
ld a, $1
ld [wStageCollisionState], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
ld a, $1
ld [$d580], a
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
.asm_1e386
ld a, [wStageCollisionState]
bit 0, a
jp z, Func_1e471
ld a, [$d5fc]
and a
jp nz, Func_1e471
xor a
ld [wRightAlleyTrigger], a
ld [wLeftAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
ld a, $b
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
ld a, [$d5f8]
sub $13
ld c, a
ld b, $0
ld hl, $d5f9
add hl, bc
ld a, [hl]
ld [hl], $1
and a
jr z, .asm_1e3bf
ld [hl], $0
.asm_1e3bf
ld bc, $34b2
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld hl, $d5f9
ld a, [hli]
and [hl]
inc hl
and [hl]
jr nz, .asm_1e3de
ld de, $0009
call PlaySoundEffect
jp asm_1e475
.asm_1e3de
ld a, $1
ld [$d5fc], a
ld a, $80
ld [$d5fd], a
; load approximately 1 minute of frames into wBallTypeCounter
ld a, $10
ld [wBallTypeCounter], a
ld a, $e
ld [wBallTypeCounter + 1], a
ld bc, $34b8
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld a, [wBallType]
cp MASTER_BALL
jr z, .masterBall
ld de, $063a
call PlaySoundEffect
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $2907
call Func_32aa
ld a, [wBallType]
ld c, a
ld b, $0
ld hl, BallTypeProgression2BlueField
add hl, bc
ld a, [hl]
ld [wBallType], a
add $30
ld [$c512], a
jr .asm_1e465
.masterBall
ld de, $0f4d
call PlaySoundEffect
ld bc, $34e8
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld bc, $0100
ld de, $0000
push bc
push de
call Func_30e8
call Func_30db
ld hl, $d5d4
ld de, $2948
call Func_32cc
pop de
pop bc
ld hl, $d5cc
ld de, $2922
call Func_32aa
.asm_1e465
ld [$ff8a], a
ld a, Bank(Func_155a7)
ld hl, Func_155a7
call BankSwitch
jr asm_1e475
Func_1e471: ; 0x1e471
call Func_1e4b8
ret z
asm_1e475: ; 0x1e475
ld hl, $d5fb
ld b, $3
.asm_1e47a
ld a, [hld]
push hl
call Func_1e484
pop hl
dec b
jr nz, .asm_1e47a
ret
Func_1e484: ; 0x1e484
and a
jr z, .asm_1e496
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_1e491
ld hl, $6520
jr .asm_1e4a3
.asm_1e491
ld hl, $6556
jr .asm_1e4a3
.asm_1e496
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_1e4a0
ld hl, $6526
jr .asm_1e4a3
.asm_1e4a0
ld hl, $655c
.asm_1e4a3
push bc
dec b
sla b
ld e, b
ld d, $0
add hl, de
ld c, [hl]
inc hl
ld b, [hl]
ld a, $7
ld de, LoadTileLists
call Func_10c5
pop bc
ret
Func_1e4b8: ; 0x1e4b8
ld a, [$d5fc]
and a
jr z, .asm_1e4e5
ld a, [$d5fd]
dec a
ld [$d5fd], a
jr nz, .asm_1e4ca
ld [$d5fc], a
.asm_1e4ca
and $7
jr nz, .asm_1e4e3
ld a, [$d5fd]
srl a
srl a
srl a
and $1
ld hl, $d5f9
ld [hli], a
ld [hli], a
ld [hl], a
ld a, $1
and a
ret
.asm_1e4e3
xor a
ret
.asm_1e4e5
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed
jr z, .leftFlipperKeyIsPressed
; left flipper key is pressed
ld hl, $d5f9
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hl]
ld e, a
ld a, c
ld [hld], a
ld a, e
ld [hld], a
ld a, b
ld [hl], a
ret
.leftFlipperKeyIsPressed
ld hl, wKeyConfigRightFlipper
call IsKeyPressed
ret z
; right flipper key is pressed
ld hl, $d5f9
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hl]
ld e, a
ld a, b
ld [hld], a
ld a, c
ld [hld], a
ld a, e
ld [hl], a
ret
BallTypeProgression2BlueField: ; 0x1e514
; Determines the next upgrade for the Ball.
db GREAT_BALL ; POKE_BALL -> GREAT_BALL
db GREAT_BALL ; unused
db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL
db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL
db MASTER_BALL ; unused
db MASTER_BALL ; MASTER_BALL -> MASTER_BALL
BallTypeDegradation2BlueField: ; 0x1e51a
; Determines the previous upgrade for the Ball.
db POKE_BALL ; POKE_BALL -> POKE_BALL
db POKE_BALL ; unused
db POKE_BALL ; GREAT_BALL -> POKE_BALL
db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL
db ULTRA_BALL ; unused
db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL
INCBIN "baserom.gbc",$1e520,$1e58c - $1e520
HandleBallTypeUpgradeCounterBlueField: ; 0x1e58c
ld a, [$d5f3]
and a
ret nz
; check if counter is at 0
ld hl, wBallTypeCounter
ld a, [hli]
ld c, a
ld b, [hl]
or b
ret z
dec bc
ld a, b
ld [hld], a
ld [hl], c
or c
ret nz
; counter is now 0! Degrade the ball upgrade.
ld a, [wBallType]
ld c, a
ld b, $0
ld hl, BallTypeDegradation2BlueField
add hl, bc
ld a, [hl]
ld [wBallType], a
and a
jr z, .pokeball
; load approximately 1 minute of frames into wBallTypeCounter
ld a, $10
ld [wBallTypeCounter], a
ld a, $e
ld [wBallTypeCounter + 1], a
.pokeball
ld [$ff8a], a
ld a, Bank(Func_155a7)
ld hl, Func_155a7
call BankSwitch
ret
Func_1e5c5: ; 0x1e5c5
ld a, [$d50d]
and a
jr z, .asm_1e623
xor a
ld [$d50d], a
ld a, [$d513]
and a
jr nz, .asm_1e623
ld a, [$d50e]
sub $16
ld c, a
ld b, $0
ld hl, $d50f
add hl, bc
ld a, [hl]
ld [hl], $1
and a
ret nz
ld bc, $34b2
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld hl, $d50f
ld a, [hli]
and [hl]
inc hl
and [hl]
inc hl
and [hl]
jr z, Func_1e627
ld a, $1
ld [$d513], a
ld a, $80
ld [$d514], a
ld bc, $34b8
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld de, $0009
call PlaySoundEffect
ld hl, $d62c
call Func_e4a
jr Func_1e627
.asm_1e623
call Func_1e66a
ret z
; fall through
Func_1e627: ; 0x1e627
ld hl, $d512
ld b, $4
.asm_1e62c
ld a, [hld]
push hl
call Func_1e636
pop hl
dec b
jr nz, .asm_1e62c
ret
Func_1e636: ; 0x1e636
and a
jr z, .asm_1e648
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_1e643
ld hl, $66d7
jr .asm_1e655
.asm_1e643
ld hl, $6717
jr .asm_1e655
.asm_1e648
ld a, [hGameBoyColorFlag]
and a
jr nz, .asm_1e652
ld hl, $66df
jr .asm_1e655
.asm_1e652
ld hl, $671f
.asm_1e655
push bc
dec b
sla b
ld e, b
ld d, $0
add hl, de
ld c, [hl]
inc hl
ld b, [hl]
ld a, $7
ld de, LoadTileLists
call Func_10c5
pop bc
ret
Func_1e66a: ; 0x1e66a
ld a, [$d513]
and a
jr z, .asm_1e6a0
ld a, [$d514]
dec a
ld [$d514], a
jr nz, .asm_1e687
ld [$d513], a
ld a, $1
ld [$d608], a
ld a, $3
ld [$d607], a
xor a
.asm_1e687
and $7
ret nz
ld a, [$d514]
srl a
srl a
srl a
and $1
ld hl, $d50f
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
ld a, $1
and a
ret
.asm_1e6a0
ld hl, wKeyConfigLeftFlipper
call IsKeyPressed
jr z, .asm_1e6bc
ld hl, $d50f
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
ld a, c
ld [hld], a
ld a, d
ld [hld], a
ld a, e
ld [hld], a
ld a, b
ld [hl], a
ret
.asm_1e6bc
ld hl, wKeyConfigRightFlipper
call IsKeyPressed
ret z
ld hl, $d50f
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
ld a, e
ld [hld], a
ld a, b
ld [hld], a
ld a, c
ld [hld], a
ld a, d
ld [hl], a
ret
INCBIN "baserom.gbc",$1e6d7,$1e757 - $1e6d7
Func_1e757: ; 0x1e757
ld a, [$d601]
and a
jr z, .asm_1e78c
xor a
ld [$d601], a
ld a, [$d604]
and a
ret z
ld a, [$d603]
and a
jr nz, .asm_1e78c
xor a
ld hl, wBallXVelocity
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [$d549], a
ld [wBallXPos], a
ld [wBallYPos], a
ld a, $50
ld [wBallXPos + 1], a
ld a, $16
ld [wBallYPos + 1], a
ld a, $13
ld [$d603], a
.asm_1e78c
ld a, [$d603]
and a
ret z
dec a
ld [$d603], a
ld a, $18
ld [$d606], a
ld a, [$d603]
cp $12
jr nz, .asm_1e7b2
ld de, $0021
call PlaySoundEffect
ld [$ff8a], a
ld a, Bank(LoadMiniBallGfx)
ld hl, LoadMiniBallGfx
call BankSwitch
ret
.asm_1e7b2
cp $f
jr nz, .asm_1e7c1
ld [$ff8a], a
ld a, Bank(Func_dd62)
ld hl, Func_dd62
call BankSwitch
ret
.asm_1e7c1
cp $c
jr nz, .asm_1e7d0
xor a
ld [$d548], a
ld [wBallSpin], a
ld [wBallRotation], a
ret
.asm_1e7d0
cp $9
jr nz, .asm_1e7d8
call Func_1e830
ret
.asm_1e7d8
cp $6
jr nz, .asm_1e7f5
xor a
ld [$d604], a
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
ld [$ff8a], a
ld a, Bank(LoadMiniBallGfx)
ld hl, LoadMiniBallGfx
call BankSwitch
ret
.asm_1e7f5
cp $3
jr nz, .asm_1e80e
ld [$ff8a], a
ld a, Bank(LoadBallGfx)
ld hl, LoadBallGfx
call BankSwitch
ld a, $2
ld [wBallYVelocity + 1], a
ld a, $80
ld [wBallXVelocity], a
ret
.asm_1e80e
and a
ret nz
call Func_1e8f6
ld a, [$d622]
cp $1
ret nz
call GenRandom
and $8
ld [wRareMonsFlag], a
ld [$ff8a], a
ld a, Bank(StartCatchEmMode)
ld hl, StartCatchEmMode
call BankSwitch
xor a
ld [$d622], a
ret
Func_1e830: ; 0x1e830
xor a
ld [wIndicatorStates + 4], a
ld a, $d
ld [$ff8a], a
ld a, Bank(Func_10000)
ld hl, Func_10000
call BankSwitch
jr nc, .asm_1e84b
ld a, $1
ld [$d548], a
ld [$d549], a
ret
.asm_1e84b
ld a, [$d624]
cp $3
jr nz, .asm_1e891
ld a, [$d607]
and a
jr nz, .asm_1e891
.asm_1e858
ld a, [$d623]
and a
jr nz, .asm_1e867
xor a
ld [$d625], a
ld a, $40
ld [$d626], a
.asm_1e867
xor a
ld [$d623], a
ld a, $1
ld [$d495], a
ld [$d4ae], a
ld a, [$d498]
ld c, a
ld b, $0
ld hl, $68f1
add hl, bc
ld a, [hl]
ld [$d497], a
call Func_1e8c3
xor a
ld [$d609], a
ld [$d622], a
ld a, $1e
ld [$d607], a
ret
.asm_1e891
ld [$ff8a], a
ld a, Bank(Func_ed8e)
ld hl, Func_ed8e
call BankSwitch
xor a
ld [$d608], a
ld a, [$d61d]
cp $d
jr nc, .asm_1e858
ld a, $1
ld [$d548], a
ld [$d549], a
ld a, [$d622]
cp $2
ret nz
ld [$ff8a], a
ld a, Bank(Func_10ab3)
ld hl, Func_10ab3
call BankSwitch
xor a
ld [$d622], a
ret
Func_1e8c3: ; 0x1e8c3
call Func_30e8
call Func_30db
ld hl, $d5dc
ld a, [$d497]
ld de, $2ed2
cp $b
jr z, .asm_1e8e0
ld de, $2eec
cp $f
jr z, .asm_1e8e0
ld de, $2eb8
.asm_1e8e0
call Func_32aa
ld de, $0000
call PlaySong
rst $10
ld de, $3c23
call PlaySoundEffect
ret
INCBIN "baserom.gbc",$1e8f1,$1e8f6 - $1e8f1
Func_1e8f6: ; 0x1e8f6
ld a, [wCurrentStage]
and $1
sla a
ld c, a
ld a, [$d604]
add c
sla a
ld c, a
ld b, $0
ld hl, $691e
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1e912
ld hl, $6970
.asm_1e912
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $7
call Func_10aa
ret
INCBIN "baserom.gbc",$1e91e,$1e9c0 - $1e91e
Func_1e9c0: ; 0x1e9c0
ld a, [$d607]
and a
ret z
dec a
ld [$d607], a
ret nz
ld a, [wInSpecialMode]
and a
ret nz
ld a, [$d609]
and a
jr z, .asm_1e9dc
ld a, [$d498]
add $15
jr .asm_1e9e3
.asm_1e9dc
ld a, [$d608]
and a
ret z
ld a, $1a
.asm_1e9e3
ld hl, wCurrentStage
bit 0, [hl]
ld [$ff8a], a
ld a, Bank(Func_30256)
ld hl, Func_30256
call nz, BankSwitch
ld a, [$d604]
and a
ret nz
ld a, $1
ld [$d604], a
ld a, $80
ld [wIndicatorStates + 4], a
ld a, [wCurrentStage]
bit 0, a
call nz, Func_1e8f6
ret
Func_1ea0a: ; 0x1ea0a
ld a, [$d604]
and a
ret z
ld a, [wBallYPos + 1]
sub $fe
cp $30
ret nc
ld c, $0
ld b, a
ld h, b
ld l, c
srl b
rr c
srl b
rr c
srl h
rr l
add hl, bc
ld a, [wBallXPos + 1]
sub $38
cp $30
ret nc
ld c, a
ld b, $0
sla c
sla c
add hl, bc
jr asm_1ea6a
Func_1ea3b: ; 0x1ea3b
ld a, [$d604]
and a
ret z
ld a, [wBallYPos + 1]
sub $86
cp $30
ret nc
ld c, $0
ld b, a
ld h, b
ld l, c
srl b
rr c
srl b
rr c
srl h
rr l
add hl, bc
ld a, [wBallXPos + 1]
sub $38
cp $30
ret nc
ld c, a
ld b, $0
sla c
sla c
add hl, bc
; fall through
asm_1ea6a: ; 0x1ea6a
ld bc, $4000
add hl, bc
ld de, wBallXVelocity
ld a, $3c
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $3c
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
push bc
ld a, $3c
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $3c
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
bit 7, b
jr z, .asm_1eaa9
ld a, c
cpl
ld c, a
ld a, b
cpl
ld b, a
inc bc
.asm_1eaa9
pop hl
bit 7, h
jr z, .asm_1eab5
ld a, l
cpl
ld l, a
ld a, h
cpl
ld h, a
inc hl
.asm_1eab5
add hl, bc
sla l
rl h
ld a, h
cp $2
ret c
ld a, [$d804]
and a
ret nz
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
ld de, $0004
call PlaySoundEffect
ret
Func_1ead4: ; 0x1ead4
ld a, [$ffb3]
and $f
ret nz
ld bc, $0000
.asm_1eadc
push bc
ld hl, wIndicatorStates
add hl, bc
ld a, [hl]
cp $1
jr z, .asm_1eaf8
bit 7, [hl]
jr z, .asm_1eaf8
ld a, [hl]
res 7, a
ld hl, $ffb3
bit 4, [hl]
jr z, .asm_1eaf5
inc a
.asm_1eaf5
call Func_1eb41
.asm_1eaf8
pop bc
inc c
ld a, c
cp $2
jr nz, .asm_1eadc
ld a, [$ffb3]
and $f
ret nz
ld a, [wCurrentStage]
bit 0, a
ret z
ld bc, $0002
.asm_1eb0d
push bc
ld hl, wIndicatorStates
add hl, bc
ld a, [hl]
cp $1
jr z, .asm_1eb29
bit 7, [hl]
jr z, .asm_1eb29
ld a, [hl]
res 7, a
ld hl, $ffb3
bit 4, [hl]
jr z, .asm_1eb2b
inc a
inc a
jr .asm_1eb2b
.asm_1eb29
ld a, $0
.asm_1eb2b
push af
ld hl, $d648
add hl, bc
dec hl
dec hl
ld a, [hl]
ld d, a
pop af
add d
call Func_1eb41
pop bc
inc c
ld a, c
cp $5
jr nz, .asm_1eb0d
ret
Func_1eb41: ; 0x1eb41
push af
sla c
ld hl, $6b61
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1eb4f
ld hl, $6d51
.asm_1eb4f
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
pop af
sla a
ld c, a
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $7
call Func_10aa
ret
INCBIN "baserom.gbc",$1eb61,$1ef09 - $1eb61
Func_1ef09: ; 0x1ef09
ld a, [wBlueStageForceFieldDirection]
cp $0 ; up direction
jp z, Func_1ef20
cp $1 ; right direction
jp z, Func_1ef4d
cp $2 ; down direction
jp z, Func_1ef7e
cp $3 ; left direction
jp z, Func_1efae
; fall through
; default to upward forcefield
Func_1ef20: ; 0x1ef20
ld a, [wBallYPos + 1]
sub $60
cp $30
ret nc
ld c, $0
ld b, a
ld h, b
ld l, c
srl b
rr c
srl b
rr c
srl h
rr l
add hl, bc
ld a, [wBallXPos + 1]
sub $38
cp $30
ret nc
ld c, a
ld b, $0
sla c
sla c
add hl, bc
jp Func_1efdc
Func_1ef4d: ; 0x1ef4d
ld a, [wBallXPos + 1]
sub $38
cp $30
ret nc
ld c, a
ld a, $30
sub c
ld c, $0
ld b, a
ld h, b
ld l, c
srl b
rr c
srl b
rr c
srl h
rr l
add hl, bc
ld a, [wBallYPos + 1]
sub $60
cp $30
ret nc
ld c, a
ld b, $0
sla c
sla c
add hl, bc
jp Func_1efdc
Func_1ef7e: ; 0x1ef7e
ld a, [wBallYPos + 1]
sub $60
cp $30
ret nc
ld c, a
ld a, $30
sub c
ld c, $0
ld b, a
ld h, b
ld l, c
srl b
rr c
srl b
rr c
srl h
rr l
add hl, bc
ld a, [wBallXPos + 1]
sub $38
cp $30
ret nc
ld c, a
ld b, $0
sla c
sla c
add hl, bc
jr Func_1efdc
Func_1efae: ; 0x1efae
ld a, [wBallXPos + 1]
sub $38
cp $30
ret nc
ld c, $0
ld b, a
ld h, b
ld l, c
srl b
rr c
srl b
rr c
srl h
rr l
add hl, bc
ld a, [wBallYPos + 1]
sub $60
cp $30
ret nc
ld c, a
ld a, $30
sub c
ld c, a
ld b, $0
sla c
sla c
add hl, bc
; fall through
Func_1efdc: ; 0x1efdc
ld a, [wBlueStageForceFieldDirection]
cp $0 ; up direction
jp z, Func_1eff3
cp $1 ; right direction
jp z, LoadOAMData2e
cp $2 ; down direction
jp z, Func_1f057
cp $3 ; left direction
jp z, Func_1f124
; fall through
; default to upward forcefield
Func_1eff3: ; 0x1eff3
ld bc, $4000
add hl, bc
ld de, wBallXVelocity
ld a, $3b
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $3b
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
push bc
ld a, $3b
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $3b
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
bit 7, b
jr z, .asm_1f032
ld a, c
cpl
ld c, a
ld a, b
cpl
ld b, a
inc bc
.asm_1f032
pop hl
bit 7, h
jr z, .asm_1f03e
ld a, l
cpl
ld l, a
ld a, h
cpl
ld h, a
inc hl
.asm_1f03e
add hl, bc
sla l
rl h
ld a, h
cp $2
ret c
ld a, [$d804]
and a
ret nz
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
ret
Func_1f057: ; 0x1f057
ld bc, $4000
add hl, bc
ld de, wBallXVelocity
bit 2, l
ret nz
ld a, $3b
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $3b
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
push bc
ld a, $3b
call ReadByteFromBank
ld c, a
ld a, [de]
sub c
ld [de], a
inc de
inc hl
ld a, $3b
call ReadByteFromBank
ld b, a
ld a, [de]
sbc b
ld [de], a
inc de
inc hl
bit 7, b
jr z, .asm_1f099
ld a, c
cpl
ld c, a
ld a, b
cpl
ld b, a
inc bc
.asm_1f099
pop hl
bit 7, h
jr z, .asm_1f0a5
ld a, l
cpl
ld l, a
ld a, h
cpl
ld h, a
inc hl
.asm_1f0a5
add hl, bc
sla l
rl h
ld a, h
cp $2
ret c
ld a, [$d804]
and a
ret nz
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
ret
LoadOAMData2e: ; 0x1f0be
ld bc, $4000
add hl, bc
ld de, wBallYVelocity
ld a, $3b
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $3b
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc hl
push bc
dec de
dec de
dec de
ld a, $3b
call ReadByteFromBank
ld c, a
ld a, [de]
sub c
ld [de], a
inc de
inc hl
ld a, $3b
call ReadByteFromBank
ld b, a
ld a, [de]
sbc b
ld [de], a
inc de
inc hl
bit 7, b
jr z, .asm_1f0ff
ld a, c
cpl
ld c, a
ld a, b
cpl
ld b, a
inc bc
.asm_1f0ff
pop hl
bit 7, h
jr z, .asm_1f10b
ld a, l
cpl
ld l, a
ld a, h
cpl
ld h, a
inc hl
.asm_1f10b
add hl, bc
sla l
rl h
ld a, h
cp $2
ret c
ld a, [$d804]
and a
ret nz
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
ret
Func_1f124: ; 0x1f124
ld bc, $4000
add hl, bc
ld de, wBallYVelocity
ld a, $3b
call ReadByteFromBank
ld c, a
ld a, [de]
sub c
ld [de], a
inc de
inc hl
ld a, $3b
call ReadByteFromBank
ld b, a
ld a, [de]
sbc b
ld [de], a
inc hl
push bc
dec de
dec de
dec de
ld a, $3b
call ReadByteFromBank
ld c, a
ld a, [de]
add c
ld [de], a
inc de
inc hl
ld a, $3b
call ReadByteFromBank
ld b, a
ld a, [de]
adc b
ld [de], a
inc de
inc hl
bit 7, b
jr z, .asm_1f165
ld a, c
cpl
ld c, a
ld a, b
cpl
ld b, a
inc bc
.asm_1f165
pop hl
bit 7, h
jr z, .asm_1f171
ld a, l
cpl
ld l, a
ld a, h
cpl
ld h, a
inc hl
.asm_1f171
add hl, bc
sla l
rl h
ld a, h
cp $2
ret c
ld a, [$d804]
and a
ret nz
ld a, $5
ld [$d803], a
ld a, $8
ld [$d804], a
ret
Func_1f18a: ; 0x1f18a
ld a, [$d640]
cp $0
jr z, .asm_1f1b4
ld a, [wBlueStageForceFieldDirection]
sla a
ld c, a
ld b, $0
ld hl, $71b5
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_1f1a4
ld hl, $7201
.asm_1f1a4
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
ld a, $7
call Func_10aa
ld a, $0
ld [$d640], a
.asm_1f1b4
ret
INCBIN "baserom.gbc",$1f1b5,$1f261 - $1f1b5
Func_1f261: ; 0x1f261
call Func_1f27b
ret nc
; fall through
Func_1f265: ; 0x1f265
sla a
ld c, a
ld b, $0
ld hl, $72b9
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, $7
ld de, LoadTileLists
call Func_10c5
ret
Func_1f27b: ; 0x1f27b
ld a, [$d624]
ld hl, $d625
cp [hl]
ret z
ld a, [$d626]
dec a
ld [$d626], a
jr nz, .asm_1f2a5
ld a, [$d625]
ld [$d624], a
cp $3
jr c, .asm_1f2a0
ld a, $1
ld [$d609], a
ld a, $3
ld [$d607], a
.asm_1f2a0
ld a, [$d624]
scf
ret
.asm_1f2a5
and $7
ret nz
ld a, [$d626]
bit 3, a
jr nz, .asm_1f2b4
ld a, [$d624]
scf
ret
.asm_1f2b4
ld a, [$d625]
scf
ret
INCBIN "baserom.gbc",$1f2b9,$1f2ed - $1f2b9
Func_1f2ed: ; 0x1f2ed
xor a
ld [$d604], a
ld [wIndicatorStates + 4], a
ld [$ff8a], a
ld a, Bank(Func_1e8f6) ; this is in the same bank...
ld hl, Func_1e8f6
call BankSwitch
ret
Func_1f2ff: ; 0x1f2ff
ld a, [wLeftAlleyCount]
cp $3
jr c, .asm_1f30b
ld a, $80
ld [wIndicatorStates + 2], a
.asm_1f30b
ld a, [wLeftAlleyCount]
cp $3
jr z, .asm_1f314
set 7, a
.asm_1f314
ld [wIndicatorStates], a
ld a, [wRightAlleyCount]
cp $2
jr c, .asm_1f323
ld a, $80
ld [wIndicatorStates + 3], a
.asm_1f323
ld a, [wRightAlleyCount]
cp $3
jr z, .asm_1f32c
set 7, a
.asm_1f32c
ld [wIndicatorStates + 1], a
ret
Func_1f330: ; 0x1f330
ld bc, $7f00
ld [$ff8a], a
ld a, Bank(Func_175a4)
ld hl, Func_175a4
call BankSwitch
call Func_1f395
call Func_1f3e1
call Func_1f408
call Func_1f428
ld [$ff8a], a
ld a, Bank(Func_17e81)
ld hl, Func_17e81
call BankSwitch
call Func_1f48f
call Func_1f4f8
ret
Func_1f35a: ; 0x1f35a
ld bc, $7f00
ld [$ff8a], a
ld a, Bank(Func_175a4)
ld hl, Func_175a4
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_17c67)
ld hl, Func_17c67
call BankSwitch
call Func_1f58b
call Func_1f448
ld [$ff8a], a
ld a, Bank(Func_e4a1)
ld hl, Func_e4a1
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_17e81)
ld hl, Func_17e81
call BankSwitch
call Func_1f4a3
call Func_1f509
call Func_1f55e
ret
Func_1f395: ; 0x1f395
ld de, $d4cd
ld hl, $73cf
call Func_1f3ad
ld de, $d4d0
ld hl, $73d5
call Func_1f3ad
ld de, $d4d3
ld hl, $73db
; fall through
Func_1f3ad: ; 0x1f3ad
ld a, [hBoardXShift]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hBoardYShift]
ld c, a
ld a, [hli]
sub c
ld c, a
ld a, [$d4d7]
sub [hl]
inc hl
jr z, .asm_1f3c4
ld a, $0
jr .asm_1f3c6
.asm_1f3c4
ld a, $1
.asm_1f3c6
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$1f3cf,$1f3e1 - $1f3cf
Func_1f3e1: ; 0x1f3e1
ld a, $8a
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $53
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d50a]
srl a
srl a
ld e, a
ld d, $0
ld hl, $7402
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$1f402,$1f408 - $1f402
Func_1f408: ; 0x1f408
ld a, $18
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $5f
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d633]
ld e, a
ld d, $0
ld hl, $7425
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$1f425,$1f428 - $1f425
Func_1f428: ; 0x1f428
ld a, $70
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $59
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d638]
ld e, a
ld d, $0
ld hl, $7445
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$1f445,$1f448 - $1f445
Func_1f448: ; 0x1f448
ld a, [hBoardXShift]
ld d, a
ld a, [hBoardYShift]
ld e, a
ld a, [$d51d]
and a
ld a, [$d518]
jr z, .asm_1f473
ld a, [$d51c]
and a
jr nz, .asm_1f469
ld a, [$ffb3]
srl a
srl a
srl a
and $1
jr .asm_1f473
.asm_1f469
ld a, [$d4b4]
cp $50
ld a, $1
jr nc, .asm_1f473
xor a
.asm_1f473
sla a
ld c, a
ld b, $0
ld hl, $748b
add hl, bc
ld a, [hli]
sub d
ld b, a
ld a, [hli]
sub e
ld c, a
ld a, [$d51a]
add $e
call LoadOAMData
ret
INCBIN "baserom.gbc",$1f48b,$1f48f - $1f48b
Func_1f48f: ; 0x1f48f
ld a, [$d551]
and a
ret nz
ld a, [$ffb3]
bit 4, a
ret z
ld de, wIndicatorStates + 5
ld hl, $74ce
ld b, $6
jr asm_1f4b5
Func_1f4a3: ; 0x1f4a3
ld a, [$d551]
and a
ret nz
ld a, [$ffb3]
bit 4, a
ret z
ld de, wIndicatorStates + 11
ld hl, $74e0
ld b, $8
asm_1f4b5:
push bc
ld a, [hBoardXShift]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hBoardYShift]
ld c, a
ld a, [hli]
sub c
ld c, a
ld a, [de]
and a
ld a, [hli]
call nz, LoadOAMData
pop bc
inc de
dec b
jr nz, asm_1f4b5
ret
INCBIN "baserom.gbc",$1f4ce,$1f4f8 - $1f4ce
Func_1f4f8: ; 0x1f4f8
ld a, [$d551]
and a
ret z
ld de, $d566
ld hl, $753a
ld b, $c
ld c, $47
jr asm_1f518
Func_1f509: ; 0x1f509
ld a, [$d551]
and a
ret z
ld de, $d572
ld hl, $7552
ld b, $6
ld c, $40
asm_1f518: ; 0x1f518
push bc
ld a, [de]
add c
cp c
push af
ld a, [hBoardXShift]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hBoardYShift]
ld c, a
ld a, [hli]
sub c
ld c, a
ld a, [$ffb3]
and $e
jr nz, .asm_1f530
dec c
.asm_1f530
pop af
call nz, LoadOAMData
pop bc
inc de
dec b
jr nz, asm_1f518
ret
INCBIN "baserom.gbc",$1f53a,$1f55e - $1f53a
Func_1f55e: ; 0x1f55e
ld a, [$d604]
and a
ret z
ld a, [$d606]
inc a
ld [$d606], a
ld a, $40
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $1
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d606]
srl a
srl a
srl a
and $3
add $4f
cp $52
call nz, LoadOAMData
ret
Func_1f58b: ; 0x1f58b
ld a, [$d5bb]
and a
ret z
ld a, $50
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, $3e
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d5bd]
ld e, a
ld d, $0
ld hl, $75ad
add hl, de
ld a, [hl]
call LoadOAMData
ret
INCBIN "baserom.gbc",$1f5ad,$20000 - $1f5ad
SECTION "bank8", ROMX, BANK[$8]
Func_20000: ; 0x20000
ld a, [$d54c]
cp $4
jp z, Func_20230
cp $c
jp z, Func_202a8
cp $5
jp z, Func_202b2
cp $0
jr z, .asm_20018
scf
ret
.asm_20018
call Func_201f2
ld a, [$d54d]
call CallInFollowingTable
PointerTable_20021: ; 0x20021
dw Func_20041
db Bank(Func_20041), $00
dw Func_2005f
db Bank(Func_2005f), $00
dw Func_2006b
db Bank(Func_2006b), $00
dw Func_200a3
db Bank(Func_200a3), $00
dw Func_200d3
db Bank(Func_200d3), $00
dw Func_20193
db Bank(Func_20193), $00
dw Func_201c2
db Bank(Func_201c2), $00
dw Func_201ce
db Bank(Func_201ce), $00
Func_20041: ; 0x20041
ld a, [$d5b6]
cp $18
jr nz, .asm_2005d
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_2005d
ld hl, $d54d
inc [hl]
ld a, $14
ld [$d54e], a
ld a, $5
ld [$d54f], a
.asm_2005d
scf
ret
Func_2005f: ; 0x2005f
ld [$ff8a], a
ld a, Bank(Func_10648)
ld hl, Func_10648
call BankSwitch
scf
ret
Func_2006b: ; 0x2006b
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_20098
call Func_1130
jr nz, .asm_200a1
ld [$ff8a], a
ld a, Bank(Func_10414)
ld hl, Func_10414
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10362)
ld hl, Func_10362
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_10301)
ld hl, Func_10301
call nz, BankSwitch
.asm_20098
ld a, $1
ld [$d5c6], a
ld hl, $d54d
inc [hl]
.asm_200a1
scf
ret
Func_200a3: ; 0x200a3
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_200af
call Func_1130
jr nz, .asm_200d1
.asm_200af
ld [$ff8a], a
ld a, Bank(Func_10678)
ld hl, Func_10678
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10732)
ld hl, Func_10732
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10464)
ld hl, Func_10464
call BankSwitch
ld hl, $d54d
inc [hl]
.asm_200d1
scf
ret
Func_200d3: ; 0x200d3
ld a, [$d5be]
dec a
ld [$d5be], a
jr z, .asm_200e6
ld a, [$d5c4]
inc a
ld [$d5c4], a
and $3
ret nz
.asm_200e6
ld a, [$d5bf]
and a
jp z, .asm_20167
xor a
ld [$d5bf], a
ld a, [$d5c3]
ld [$d5be], a
xor a
ld [$d5c4], a
ld a, [wCurrentCatchEmMon]
cp MEW - 1
jr nz, .notMew
ld a, [$d5c5]
inc a
ld [$d5c5], a
jr nz, .asm_20116
.notMew
ld a, [wNumMonHits]
cp $3
jr z, .hitMonThreeTimes
inc a
ld [wNumMonHits], a
.asm_20116
ld bc, $34dc
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld bc, $0030
ld de, $0000
push bc
push de
call Func_30e8
call Func_30db
ld hl, $d5e9
ld de, $2a2a
call Func_3372
pop de
pop bc
ld hl, $d5e4
ld de, $2a21
call Func_3357
ld a, [wNumMonHits]
ld [$ff8a], a
ld a, Bank(Func_10611)
ld hl, Func_10611
call BankSwitch
ld c, $2
jr .asm_2018a
.hitMonThreeTimes
xor a
ld [$d57e], a
ld a, $1
ld [$d57f], a
ld hl, $d54d
inc [hl]
ld c, $2
jr .asm_2018a
.asm_20167
ld a, [$d5be]
and a
ret nz
ld a, [$d5bc]
ld c, a
ld a, [$d5bd]
sub c
cp $1
ld c, $0
jr nc, .asm_2017c
ld c, $1
.asm_2017c
ld b, $0
ld hl, $d5c1
add hl, bc
ld a, [hl]
ld [$d5be], a
xor a
ld [$d5c4], a
.asm_2018a
ld a, [$d5bc]
add c
ld [$d5bd], a
scf
ret
Func_20193: ; 0x20193
ld a, [$d580]
and a
jr z, .asm_2019e
xor a
ld [$d580], a
ret
.asm_2019e
ld [$ff8a], a
ld a, Bank(Func_10496)
ld hl, Func_10496
call BankSwitch
ld hl, $d54d
inc [hl]
ld [$ff8a], a
ld a, Bank(Func_106b6)
ld hl, Func_106b6
call BankSwitch
ld [$ff8a], a
ld a, Bank(AddCaughtPokemonToParty)
ld hl, AddCaughtPokemonToParty
call BankSwitch
scf
ret
Func_201c2: ; 0x201c2
ld [$ff8a], a
ld a, Bank(Func_1052d)
ld hl, Func_1052d
call BankSwitch
scf
ret
Func_201ce: ; 0x201ce
ld a, [$d5ca]
and a
ret nz
call Func_30e8
ld [$ff8a], a
ld a, Bank(Func_dc00)
ld hl, Func_dc00
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10157)
ld hl, Func_10157
call BankSwitch
ld de, $0001
call PlaySong
scf
ret
Func_201f2: ; 0x201f2
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $7
ld [$d54d], a
ld a, [wCurrentCatchEmMon]
cp NUM_POKEMON - 1
jr nz, .asm_2021b
ld [$ff8a], a
ld a, Bank(SetPokemonOwnedFlag)
ld hl, SetPokemonOwnedFlag
call BankSwitch
.asm_2021b
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_106a6)
ld hl, Func_106a6
call BankSwitch
ret
Func_20230: ; 0x20230
ld a, [$d5b6]
cp $18
jr z, .asm_2029d
sla a
ld c, a
ld b, $0
ld hl, $d586
add hl, bc
ld d, $4
.asm_20242
ld a, $1
ld [hli], a
inc hl
ld a, l
cp $b6
jr z, .asm_2024e
dec d
jr nz, .asm_20242
.asm_2024e
ld a, [$d5b6]
add $4
cp $18
jr c, .asm_20259
ld a, $18
.asm_20259
ld [$d5b6], a
cp $18
jr nz, .asm_20264
xor a
ld [wIndicatorStates + 9], a
.asm_20264
ld [$ff8a], a
ld a, Bank(Func_10184)
ld hl, Func_10184
call BankSwitch
ld bc, $34d6
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld bc, $0010
ld de, $0000
push bc
push de
call Func_30e8
call Func_30db
ld hl, $d5e9
ld de, $2a3d
call Func_3372
pop de
pop bc
ld hl, $d5e4
ld de, $2a30
call Func_3357
.asm_2029d
ld bc, $0001
ld de, $0000
call Func_3538
scf
ret
Func_202a8: ; 0x202a8
ld bc, $0000
ld de, $1000
call Func_3538
ret
Func_202b2: ; 0x202b2
ld bc, $0005
ld de, $0000
call Func_3538
ret
Func_202bc: ; 0x202bc
ld a, [$d54c]
cp $4
jp z, Func_204f1
cp $c
jp z, Func_20569
cp $f
jp z, Func_20573
cp $e
jp z, Func_2057a
cp $0
jr z, .asm_202d9
scf
ret
.asm_202d9
call Func_204b3
ld a, [$d54d]
call CallInFollowingTable
PointerTable_202e2: ; 0x202e2
dw Func_20302
db Bank(Func_20302), $00
dw Func_20320
db Bank(Func_20320), $00
dw Func_2032c
db Bank(Func_2032c), $00
dw Func_20364
db Bank(Func_20364), $00
dw Func_20394
db Bank(Func_20394), $00
dw Func_20454
db Bank(Func_20454), $00
dw Func_20483
db Bank(Func_20483), $00
dw Func_2048f
db Bank(Func_2048f), $00
Func_20302: ; 0x20302
ld a, [$d5b6]
cp $18
jr nz, .asm_2031e
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_2031e
ld hl, $d54d
inc [hl]
ld a, $14
ld [$d54e], a
ld a, $5
ld [$d54f], a
.asm_2031e
scf
ret
Func_20320: ; 0x20320
ld [$ff8a], a
ld a, Bank(Func_10648)
ld hl, Func_10648
call BankSwitch
scf
ret
Func_2032c: ; 0x2032c
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_20333
call Func_1130
jr nz, .asm_20362
ld [$ff8a], a
ld a, Bank(Func_10414)
ld hl, Func_10414
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10362)
ld hl, Func_10362
call BankSwitch
ld a, [hGameBoyColorFlag]
and a
ld [$ff8a], a
ld a, Bank(Func_10301)
ld hl, Func_10301
call nz, BankSwitch
.asm_20333
ld a, $1
ld [$d5c6], a
ld hl, $d54d
inc [hl]
.asm_20362
scf
ret
Func_20364: ; 0x20364
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_20370
call Func_1130
jr nz, .asm_20392
.asm_20370
ld [$ff8a], a
ld a, Bank(Func_10678)
ld hl, Func_10678
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10732)
ld hl, Func_10732
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10464)
ld hl, Func_10464
call BankSwitch
ld hl, $d54d
inc [hl]
.asm_20392
scf
ret
Func_20394: ; 0x20394
ld a, [$d5be]
dec a
ld [$d5be], a
jr z, .asm_203a7
ld a, [$d5c4]
inc a
ld [$d5c4], a
and $3
ret nz
.asm_203a7
ld a, [$d5bf]
and a
jp z, .asm_20428
xor a
ld [$d5bf], a
ld a, [$d5c3]
ld [$d5be], a
xor a
ld [$d5c4], a
ld a, [wCurrentCatchEmMon]
cp MEW - 1
jr nz, .notMew
ld a, [$d5c5]
inc a
ld [$d5c5], a
jr nz, .asm_203d7
.notMew
ld a, [wNumMonHits]
cp $3
jr z, .asm_20417
inc a
ld [wNumMonHits], a
.asm_203d7
ld bc, $34dc
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld bc, $0030
ld de, $0000
push bc
push de
call Func_30e8
call Func_30db
ld hl, $d5e9
ld de, $2a2a
call Func_3372
pop de
pop bc
ld hl, $d5e4
ld de, $2a21
call Func_3357
ld a, [wNumMonHits]
ld [$ff8a], a
ld a, Bank(Func_10611)
ld hl, Func_10611
call BankSwitch
ld c, $2
jr .asm_2044b
.asm_20417
xor a
ld [$d57e], a
ld a, $1
ld [$d57f], a
ld hl, $d54d
inc [hl]
ld c, $2
jr .asm_2044b
.asm_20428
ld a, [$d5be]
and a
ret nz
ld a, [$d5bc]
ld c, a
ld a, [$d5bd]
sub c
cp $1
ld c, $0
jr nc, .asm_2043d
ld c, $1
.asm_2043d
ld b, $0
ld hl, $d5c1
add hl, bc
ld a, [hl]
ld [$d5be], a
xor a
ld [$d5c4], a
.asm_2044b
ld a, [$d5bc]
add c
ld [$d5bd], a
scf
ret
Func_20454: ; 0x20454
ld a, [$d580]
and a
jr z, .asm_2045f
xor a
ld [$d580], a
ret
.asm_2045f
ld [$ff8a], a
ld a, Bank(Func_10496)
ld hl, Func_10496
call BankSwitch
ld hl, $d54d
inc [hl]
ld [$ff8a], a
ld a, Bank(Func_106b6)
ld hl, Func_106b6
call BankSwitch
ld [$ff8a], a
ld a, Bank(AddCaughtPokemonToParty)
ld hl, AddCaughtPokemonToParty
call BankSwitch
scf
ret
Func_20483: ; 0x20483
ld [$ff8a], a
ld a, Bank(Func_1052d)
ld hl, Func_1052d
call BankSwitch
scf
ret
Func_2048f: ; 0x2048f
ld a, [$d5ca]
and a
ret nz
call Func_30e8
ld [$ff8a], a
ld a, Bank(Func_dc00)
ld hl, Func_dc00
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10157)
ld hl, Func_10157
call BankSwitch
ld de, $0001
call PlaySong
scf
ret
Func_204b3: ; 0x204b3
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $7
ld [$d54d], a
ld a, [wCurrentCatchEmMon]
cp MEW - 1
jr nz, .notMew
ld [$ff8a], a
ld a, Bank(SetPokemonOwnedFlag)
ld hl, SetPokemonOwnedFlag
call BankSwitch
.notMew
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_106a6)
ld hl, Func_106a6
call BankSwitch
ret
Func_204f1: ; 0x204f1
ld a, [$d5b6]
cp $18
jr z, .asm_2055e
sla a
ld c, a
ld b, $0
ld hl, $d586
add hl, bc
ld d, $4
.asm_20503
ld a, $1
ld [hli], a
inc hl
ld a, l
cp $b6 ; TODO: This is the low byte of a pointer
jr z, .asm_2050f
dec d
jr nz, .asm_20503
.asm_2050f
ld a, [$d5b6]
add $4
cp $18
jr c, .asm_2051a
ld a, $18
.asm_2051a
ld [$d5b6], a
cp $18
jr nz, .asm_20525
xor a
ld [wIndicatorStates + 9], a
.asm_20525
ld [$ff8a], a
ld a, Bank(Func_10184)
ld hl, Func_10184
call BankSwitch
ld bc, $34d6
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld bc, $0010
ld de, $0000
push bc
push de
call Func_30e8
call Func_30db
ld hl, $d5e9
ld de, $2a3d
call Func_3372
pop de
pop bc
ld hl, $d5e4
ld de, $2a30
call Func_3357
.asm_2055e
ld bc, $0001
ld de, $0000
call Func_3538
scf
ret
Func_20569: ; 0x20569
ld bc, $0000
ld de, $1000
call Func_3538
ret
Func_20573: ; 0x20573
ld bc, $0005
ld de, $0000
ret
Func_2057a: ; 0x2057a
ld bc, $0005
ld de, $0000
ret
Func_20581: ; 0x20581
ld a, [$d54c]
cp $4
jp z, Func_2080f
cp $3
jp z, Func_20839
cp $5
jp z, Func_2085a
cp $6
jp z, Func_20887
cp $7
jp z, Func_208a8
cp $8
jp z, Func_208c9
cp $9
jp z, Func_208ea
cp $a
jp z, Func_2090b
cp $b
jp z, Func_2092c
cp $c
jp z, Func_2094d
cp $d
jp z, Func_20b02
cp $2
jp z, Func_20a65
cp $1
jp z, Func_20a82
cp $0
jr z, .asm_205cb
scf
ret
.asm_205cb
call Func_2077b
ld a, [$d54d]
call CallInFollowingTable
PointerTable_205d4: ; 0x205d4
dw Func_205e0
db Bank(Func_205e0), $00
dw Func_2070b
db Bank(Func_2070b), $00
dw Func_20757
db Bank(Func_20757), $00
Func_205e0: ; 0x205e0
ld a, [wCurrentStage]
ld b, a
ld a, [$d578]
and a
ret z
dec a
bit 0, b
jr z, .asm_205f0
add $c
.asm_205f0
ld c, a
ld b, $0
ld hl, $d566
add hl, bc
ld a, [hl]
and a
ret z
xor a
ld [hl], a
ld [$d551], a
call Func_20651
ld a, [$d558]
ld [wIndicatorStates + 2], a
ld a, [$d559]
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 10], a
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call nz, BankSwitch
ld bc, $34e8
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
call Func_30e8
call Func_30db
ld de, $2bd8
ld hl, $d5cc
call Func_32aa
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_2064f
ld a, $37
ld hl, $4af0
ld de, $0070
ld bc, $0008
call Func_7dc
.asm_2064f
scf
ret
Func_20651: ; 0x20651
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_20681
ld a, [wCurrentEvolutionType]
dec a
ld c, a
ld b, $0
swap c
sla c
ld hl, $4e80
add hl, bc
ld a, [$d554]
ld c, a
ld b, $0
swap c
sla c
push hl
ld hl, $8ae0
add hl, bc
ld d, h
ld e, l
pop hl
ld bc, $0020
ld a, $36
call LoadVRAMData
.asm_20681
ld a, [$d554]
inc a
ld [$d554], a
cp $1
jr nz, .asm_20693
ld de, $0728
call PlaySoundEffect
ret
.asm_20693
cp $2
jr nz, .asm_2069e
ld de, $0744
call PlaySoundEffect
ret
.asm_2069e
cp $3
ret nz
ld de, $0745
call PlaySoundEffect
ld a, $1
ld [$d604], a
ld a, $80
ld [wIndicatorStates + 4], a
xor a
ld [wIndicatorStates + 9], a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 10], a
ld [wIndicatorStates + 8], a
ld [wIndicatorStates + 13], a
ld [wIndicatorStates + 14], a
ld [wIndicatorStates + 11], a
ld [wIndicatorStates + 12], a
ld [wIndicatorStates + 6], a
ld [wIndicatorStates + 7], a
ld [$d558], a
ld [$d559], a
ld a, [wCurrentStage]
bit 0, a
ret z
ld a, $36
ld hl, $6c60
ld de, $8200
ld bc, $00e0
call LoadVRAMData
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_20700
ld a, $37
ld hl, $4af8
ld de, $0078
ld bc, $0008
call Func_7dc
.asm_20700
ld [$ff8a], a
ld a, Bank(Func_16425)
ld hl, Func_16425
call BankSwitch
ret
Func_2070b: ; 0x2070b
ld [$ff8a], a
ld a, Bank(Func_dc00)
ld hl, Func_dc00
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10ca5)
ld hl, Func_10ca5
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10ac8)
ld hl, Func_10ac8
call BankSwitch
ld de, $0001
call PlaySong
ld hl, $d629
call Func_e4a
ld [$ff8a], a
ld a, Bank(SetPokemonOwnedFlag)
ld hl, SetPokemonOwnedFlag
call BankSwitch
ld a, [$d624]
cp $3
ret z
add $2
cp $3
jr c, .asm_2074d
ld a, $3
.asm_2074d
ld [$d625], a
ld a, $80
ld [$d626], a
scf
ret
Func_20757: ; 0x20757
ld a, [$d5ca]
and a
ret nz
call Func_30e8
ld [$ff8a], a
ld a, Bank(Func_dc00)
ld hl, Func_dc00
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10ac8)
ld hl, Func_10ac8
call BankSwitch
ld de, $0001
call PlaySong
scf
ret
Func_2077b: ; 0x2077b
ld hl, $d556
ld a, [hli]
ld c, a
ld b, [hl]
or b
jr z, .asm_2078e
dec bc
ld a, b
ld [hld], a
ld [hl], c
or c
jr nz, .asm_2078e
call Func_20a55
.asm_2078e
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $2
ld [$d54d], a
xor a
ld [$d604], a
ld hl, wIndicatorStates
ld [wIndicatorStates + 4], a
ld [wIndicatorStates + 9], a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 10], a
ld [wIndicatorStates + 8], a
ld [wIndicatorStates + 13], a
ld [wIndicatorStates + 14], a
ld [wIndicatorStates + 11], a
ld [wIndicatorStates + 12], a
ld [wIndicatorStates + 6], a
ld [wIndicatorStates + 7], a
ld [$d558], a
ld [$d559], a
ld [$d551], a
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_207f5
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_16425)
ld hl, Func_16425
call BankSwitch
.asm_207f5
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $2ad1
call Func_32aa
ret
Func_2080f: ; 0x2080f
ld bc, $0001
ld de, $5000
call Func_3538
ld a, [$d551]
and a
jr nz, .asm_20837
ld a, [wIndicatorStates + 9]
and a
jr z, .asm_20837
xor a
ld [wIndicatorStates + 9], a
ld a, [$d55c]
and a
ld a, $0
ld [$d55c], a
jp nz, Func_20977
jp Func_209eb
.asm_20837
scf
ret
Func_20839: ; 0x20839
ld a, [$d551]
and a
jr nz, .asm_20858
ld a, [wIndicatorStates + 2]
and a
jr z, .asm_20858
xor a
ld [wIndicatorStates + 2], a
ld a, [$d563]
and a
ld a, $0
ld [$d563], a
jp nz, Func_20977
jp Func_209eb
.asm_20858
scf
ret
Func_2085a: ; 0x2085a
ld bc, $0007
ld de, $5000
call Func_3538
ld a, [$d551]
and a
jr nz, .asm_20885
ld a, [wIndicatorStates + 3]
and a
jr z, .asm_20885
xor a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 10], a
ld a, [$d562]
and a
ld a, $0
ld [$d562], a
jp nz, Func_20977
jp Func_209eb
.asm_20885
scf
ret
Func_20887: ; 0x20887
ld a, [$d551]
and a
jr nz, .asm_208a6
ld a, [wIndicatorStates + 8]
and a
jr z, .asm_208a6
xor a
ld [wIndicatorStates + 8], a
ld a, [$d561]
and a
ld a, $0
ld [$d561], a
jp nz, Func_20977
jp Func_209eb
.asm_208a6
scf
ret
Func_208a8: ; 0x208a8
ld a, [$d551]
and a
jr nz, .asm_208c7
ld a, [wIndicatorStates + 13]
and a
jr z, .asm_208c7
xor a
ld [wIndicatorStates + 13], a
ld a, [$d55d]
and a
ld a, $0
ld [$d55d], a
jp nz, Func_20977
jp Func_209eb
.asm_208c7
scf
ret
Func_208c9: ; 0x208c9
ld a, [$d551]
and a
jr nz, .asm_208e8
ld a, [wIndicatorStates + 14]
and a
jr z, .asm_208e8
xor a
ld [wIndicatorStates + 14], a
ld a, [$d55e]
and a
ld a, $0
ld [$d55e], a
jp nz, Func_20977
jp Func_209eb
.asm_208e8
scf
ret
Func_208ea: ; 0x208ea
ld a, [$d551]
and a
jr nz, .asm_20909
ld a, [wIndicatorStates + 11]
and a
jr z, .asm_20909
xor a
ld [wIndicatorStates + 11], a
ld a, [$d55f]
and a
ld a, $0
ld [$d55f], a
jp nz, Func_20977
jp Func_209eb
.asm_20909
scf
ret
Func_2090b: ; 0x2090b
ld a, [$d551]
and a
jr nz, .asm_2092a
ld a, [wIndicatorStates + 12]
and a
jr z, .asm_2092a
xor a
ld [wIndicatorStates + 12], a
ld a, [$d560]
and a
ld a, $0
ld [$d560], a
jp nz, Func_20977
jp Func_209eb
.asm_2092a
scf
ret
Func_2092c: ; 0x2092c
ld a, [$d551]
and a
jr nz, .asm_2094b
ld a, [wIndicatorStates + 6]
and a
jr z, .asm_2094b
xor a
ld [wIndicatorStates + 6], a
ld a, [$d565]
and a
ld a, $0
ld [$d565], a
jp nz, Func_20977
jp Func_209eb
.asm_2094b
scf
ret
Func_2094d: ; 0x2094d
ld bc, $0000
ld de, $1500
call Func_3538
ld a, [$d551]
and a
jr nz, .asm_20975
ld a, [wIndicatorStates + 7]
and a
jr z, .asm_20975
xor a
ld [wIndicatorStates + 7], a
ld a, [$d564]
and a
ld a, $0
ld [$d564], a
jp nz, Func_20977
jp Func_209eb
.asm_20975
scf
ret
Func_20977: ; 0x20977
ld de, $0746
call PlaySoundEffect
call Func_20af5
ld a, [wCurrentEvolutionType]
ld [hl], a
ld [$d551], a
ld a, [wIndicatorStates + 2]
ld [$d558], a
ld a, [wIndicatorStates + 3]
ld [$d559], a
xor a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 10], a
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call nz, BankSwitch
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_209bf
ld a, $37
ld hl, $5188
ld de, $0070
ld bc, $0010
call Func_7dc
.asm_209bf
ld bc, $34dc
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
call Func_30e8
call Func_30db
ld a, [wCurrentEvolutionType]
dec a
ld c, a
ld b, $0
sla c
ld hl, $2bf0
add hl, bc
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
ld hl, $d5cc
call Func_32aa
scf
ret
Func_209eb: ; 0x209eb
ld de, $0747
call PlaySoundEffect
ld a, $1
ld [$d551], a
ld a, $80
ld [wIndicatorStates], a
ld [wIndicatorStates + 1], a
ld a, [wIndicatorStates + 2]
ld [$d558], a
ld a, [wIndicatorStates + 3]
ld [$d559], a
xor a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 10], a
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call nz, BankSwitch
ld a, $58
ld [$d556], a
ld a, $2
ld [$d557], a
ld bc, $34dc
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
call Func_30e8
call Func_30db
ld hl, $d5cc
ld a, [wCurrentEvolutionType]
cp EVO_EXPERIENCE
ld de, $2b7b
jr z, .asm_20a50
ld de, $2b93
.asm_20a50
call Func_32aa
scf
ret
Func_20a55: ; 0x20a55
ld a, [$d551]
and a
jr z, .asm_20a63
ld a, [wIndicatorStates + 1]
and a
jr z, .asm_20a63
jr asm_20a9f
.asm_20a63
scf
ret
Func_20a65: ; 0x20a65
ld a, [$d551]
and a
jr z, .asm_20a80
ld a, [wIndicatorStates + 1]
and a
jr z, .asm_20a80
ld bc, $34d0
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
jr asm_20a9f
.asm_20a80
scf
ret
Func_20a82: ; 0x20a82
ld a, [$d551]
and a
jr z, .asm_20a9d
ld a, [wIndicatorStates]
and a
jr z, .asm_20a9d
ld bc, $34d0
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
jr asm_20a9f
.asm_20a9d
scf
ret
asm_20a9f:
xor a
ld [wIndicatorStates], a
ld [wIndicatorStates + 1], a
ld [$d551], a
ld a, [$d558]
ld [wIndicatorStates + 2], a
ld a, [$d559]
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 10], a
ld a, [$d4ac]
bit 0, a
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call nz, BankSwitch
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_20ada
ld a, $37
ld hl, $4af0
ld de, $0070
ld bc, $0008
call Func_7dc
.asm_20ada
call Func_30e8
call Func_30db
ld a, [wCurrentEvolutionType]
cp EVO_EXPERIENCE
ld de, $2ba9
jr z, .asm_20aed
ld de, $2bc2
.asm_20aed
ld hl, $d5cc
call Func_32aa
scf
ret
Func_20af5: ; 0x20af5
ld a, $11
call Func_a21
ld c, a
ld b, $0
ld hl, $d566
add hl, bc
ret
Func_20b02: ; 0x20b02
ld a, [wCurrentEvolutionMon]
cp $ff
jr nz, .asm_20b0c
ld a, [wCurrentCatchEmMon]
.asm_20b0c
ld c, a
ld b, $0
sla c
rl b
add c
ld c, a
jr nc, .asm_20b18
inc b
.asm_20b18
push bc
ld hl, MonBillboardPicPointers
add hl, bc
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
inc hl
ld c, a
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
inc hl
ld b, a
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
ld h, b
ld l, c
ld de, $8900
ld bc, $0180
call Func_735
pop bc
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_20b80
push bc
ld hl, MonBillboardPaletteMapPointers
add hl, bc
ld a, Bank(MonBillboardPaletteMapPointers)
call ReadByteFromBank
inc hl
ld e, a
ld a, Bank(MonBillboardPaletteMapPointers)
call ReadByteFromBank
inc hl
ld d, a
ld a, Bank(MonBillboardPaletteMapPointers)
call ReadByteFromBank
ld hl, $9887
call Func_86f
pop bc
ld hl, MonBillboardPalettePointers
add hl, bc
ld a, Bank(MonBillboardPalettePointers)
call ReadByteFromBank
inc hl
ld e, a
ld a, Bank(MonBillboardPalettePointers)
call ReadByteFromBank
inc hl
ld d, a
ld a, Bank(MonBillboardPalettePointers)
call ReadByteFromBank
ld bc, $10b0
ld hl, $ff68
call Func_8e1
.asm_20b80
ld [$ff8a], a
ld a, Bank(Func_10e0a)
ld hl, Func_10e0a
call BankSwitch
call Func_3475
ld de, $0000
call PlaySong
rst $10
ld de, $2d26
call PlaySoundEffect
ld [$ff8a], a
ld a, Bank(Func_10825)
ld hl, Func_10825
call BankSwitch
call Func_3475
ld a, $1
ld [$d54d], a
scf
ret
Func_20bae: ; 0x20bae
ld a, [$d54c]
cp $4
jp z, Func_20e34
cp $1
jp z, Func_21089
cp $e
jp z, Func_20e5e
cp $f
jp z, Func_20e82
cp $7
jp z, Func_20ea6
cp $8
jp z, Func_20ec7
cp $9
jp z, Func_20ee8
cp $a
jp z, Func_20f09
cp $b
jp z, Func_20f2a
cp $c
jp z, Func_20f4b
cp $d
jp z, Func_2112a
cp $2
jp z, Func_2105c
cp $0
jr z, .asm_20bf3
scf
ret
.asm_20bf3
call Func_20da0
ld a, [$d54d]
call CallInFollowingTable
PointerTable_20bfc: ; 0x20bfc
dw Func_20c08
db Bank(Func_20c08), $00
dw Func_20d30
db Bank(Func_20d30), $00
dw Func_20d7c
db Bank(Func_20d7c), $00
Func_20c08: ; 0x20c08
ld a, [wCurrentStage]
ld b, a
ld a, [$d578]
and a
ret z
dec a
bit 0, b
jr z, .asm_20c18
add $c
.asm_20c18
ld c, a
ld b, $0
ld hl, $d566
add hl, bc
ld a, [hl]
and a
ret z
xor a
ld [hl], a
ld [$d551], a
call Func_20c76
ld a, [$d558]
ld [wIndicatorStates], a
ld a, [$d559]
ld [wIndicatorStates + 3], a
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call nz, BankSwitch
ld bc, $34e8
ld [$ff8a], a
ld a, $2
ld hl, $4588
.asm_20c4f
call BankSwitch
call Func_30e8
call Func_30db
ld de, $2bd8
ld hl, $d5cc
call Func_32aa
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_20c74
ld a, $37
ld hl, $4bf0
ld de, $0070
ld bc, $0008
call Func_7dc
.asm_20c74
scf
ret
Func_20c76: ; 0x20c76
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_20ca6
ld a, [wCurrentEvolutionType]
dec a
ld c, a
ld b, $0
swap c
sla c
ld hl, $4e80
add hl, bc
ld a, [$d554]
ld c, a
ld b, $0
swap c
sla c
push hl
ld hl, $8ae0
add hl, bc
ld d, h
ld e, l
pop hl
ld bc, $0020
ld a, $36
call LoadVRAMData
.asm_20ca6
ld a, [$d554]
inc a
ld [$d554], a
cp $1
jr nz, .asm_20cb8
ld de, $0728
call PlaySoundEffect
ret
.asm_20cb8
cp $2
jr nz, .asm_20cc3
ld de, $0744
call PlaySoundEffect
ret
.asm_20cc3
cp $3
ret nz
ld de, $0745
call PlaySoundEffect
ld a, $1
ld [$d604], a
ld a, $80
ld [wIndicatorStates + 4], a
xor a
ld [wIndicatorStates + 9], a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 8], a
ld [wIndicatorStates + 13], a
ld [wIndicatorStates + 14], a
ld [wIndicatorStates + 11], a
ld [wIndicatorStates + 12], a
ld [wIndicatorStates + 10], a
ld [wIndicatorStates + 6], a
ld [wIndicatorStates + 7], a
ld [$d558], a
ld [$d559], a
ld a, [wCurrentStage]
bit 0, a
ret z
ld a, $36
ld hl, $6c60
ld de, $8200
ld bc, $00e0
call LoadVRAMData
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_20d25
ld a, $37
ld hl, $4bf8
ld de, $0078
ld bc, $0008
call Func_7dc
.asm_20d25
ld [$ff8a], a
ld a, Bank(Func_1e8f6)
ld hl, Func_1e8f6
call BankSwitch
ret
Func_20d30: ; 0x20d30
ld [$ff8a], a
ld a, Bank(Func_dc00)
ld hl, Func_dc00
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10ca5)
ld hl, Func_10ca5
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10ac8)
ld hl, Func_10ac8
call BankSwitch
ld de, $0001
call PlaySong
ld hl, $d629
call Func_e4a
ld [$ff8a], a
ld a, Bank(SetPokemonOwnedFlag)
ld hl, SetPokemonOwnedFlag
call BankSwitch
ld a, [$d624]
cp $3
ret z
add $2
cp $3
jr c, .asm_20d72
ld a, $3
.asm_20d72
ld [$d625], a
ld a, $80
ld [$d626], a
scf
ret
Func_20d7c: ; 0x20d7c
ld a, [$d5ca]
and a
ret nz
call Func_30e8
ld [$ff8a], a
ld a, Bank(Func_dc00)
ld hl, Func_dc00
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_10ac8)
ld hl, Func_10ac8
call BankSwitch
ld de, $0001
call PlaySong
scf
ret
Func_20da0: ; 0x20da0
ld hl, $d556
ld a, [hli]
ld c, a
ld b, [hl]
or b
jr z, .asm_20db3
dec bc
ld a, b
ld [hld], a
ld [hl], c
or c
jr nz, .asm_20db3
call Func_21079
.asm_20db3
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $2
ld [$d54d], a
xor a
ld [$d604], a
ld hl, wIndicatorStates
ld [wIndicatorStates + 4], a
ld [wIndicatorStates + 9], a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 8], a
ld [wIndicatorStates + 13], a
ld [wIndicatorStates + 14], a
ld [wIndicatorStates + 11], a
ld [wIndicatorStates + 12], a
ld [wIndicatorStates + 10], a
ld [wIndicatorStates + 6], a
ld [wIndicatorStates + 7], a
ld [$d558], a
ld [$d559], a
ld [$d551], a
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_20e1a
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_1e8f6)
ld hl, Func_1e8f6
call BankSwitch
.asm_20e1a
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $2ad1
call Func_32aa
ret
Func_20e34: ; 0x20e34
ld bc, $0001
ld de, $5000
call Func_3538
ld a, [$d551]
and a
jr nz, .asm_20e5c
ld a, [wIndicatorStates + 9]
and a
jr z, .asm_20e5c
xor a
ld [wIndicatorStates + 9], a
ld a, [$d55c]
and a
ld a, $0
ld [$d55c], a
jp nz, Func_20f75
jp Func_20fef
.asm_20e5c
scf
ret
Func_20e5e: ; 0x20e5e
ld a, [$d551]
and a
jr nz, .asm_20e80
ld a, [wIndicatorStates + 3]
and a
jr z, .asm_20e80
xor a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 10], a
ld a, [$d562]
and a
ld a, $0
ld [$d562], a
jp nz, Func_20f75
jp Func_20fef
.asm_20e80
scf
ret
Func_20e82: ; 0x20e82
ld a, [$d551]
and a
jr nz, .asm_20ea4
ld a, [wIndicatorStates + 8]
and a
jr z, .asm_20ea4
xor a
ld [wIndicatorStates + 8], a
ld [wIndicatorStates + 2], a
ld a, [$d561]
and a
ld a, $0
ld [$d561], a
jp nz, Func_20f75
jp Func_20fef
.asm_20ea4
scf
ret
Func_20ea6: ; 0x20ea6
ld a, [$d551]
and a
jr nz, .asm_20ec5
ld a, [wIndicatorStates + 13]
and a
jr z, .asm_20ec5
xor a
ld [wIndicatorStates + 13], a
ld a, [$d55d]
and a
ld a, $0
ld [$d55d], a
jp nz, Func_20f75
jp Func_20fef
.asm_20ec5
scf
ret
Func_20ec7: ; 0x20ec7
ld a, [$d551]
and a
jr nz, .asm_20ee6
ld a, [wIndicatorStates + 14]
and a
jr z, .asm_20ee6
xor a
ld [wIndicatorStates + 14], a
ld a, [$d55e]
and a
ld a, $0
ld [$d55e], a
jp nz, Func_20f75
jp Func_20fef
.asm_20ee6
scf
ret
Func_20ee8: ; 0x20ee8
ld a, [$d551]
and a
jr nz, .asm_20f07
ld a, [wIndicatorStates + 11]
and a
jr z, .asm_20f07
xor a
ld [wIndicatorStates + 11], a
ld a, [$d55f]
and a
ld a, $0
ld [$d55f], a
jp nz, Func_20f75
jp Func_20fef
.asm_20f07
scf
ret
Func_20f09: ; 0x20f09
ld a, [$d551]
and a
jr nz, .asm_20f28
ld a, [wIndicatorStates + 12]
and a
jr z, .asm_20f28
xor a
ld [wIndicatorStates + 12], a
ld a, [$d560]
and a
ld a, $0
ld [$d560], a
jp nz, Func_20f75
jp Func_20fef
.asm_20f28
scf
ret
Func_20f2a: ; 0x20f2a
ld a, [$d551]
and a
jr nz, .asm_20f49
ld a, [wIndicatorStates + 6]
and a
jr z, .asm_20f49
xor a
ld [wIndicatorStates + 6], a
ld a, [$d565]
and a
ld a, $0
ld [$d565], a
jp nz, Func_20f75
jp Func_20fef
.asm_20f49
scf
ret
Func_20f4b: ; 0x20f4b
ld bc, $0000
ld de, $1500
call Func_3538
ld a, [$d551]
and a
jr nz, .asm_20f73
ld a, [wIndicatorStates + 7]
and a
jr z, .asm_20f73
xor a
ld [wIndicatorStates + 7], a
ld a, [$d564]
and a
ld a, $0
ld [$d564], a
jp nz, Func_20f75
jp Func_20fef
.asm_20f73
scf
ret
Func_20f75: ; 0x20f75
ld de, $0746
call PlaySoundEffect
call Func_2111d
ld a, [wCurrentEvolutionType]
ld [hl], a
ld [$d551], a
ld a, [wIndicatorStates]
ld [$d558], a
ld a, [wIndicatorStates + 3]
ld [$d559], a
ld a, [wIndicatorStates + 2]
ld [$d63f], a
xor a
ld [wIndicatorStates], a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call nz, BankSwitch
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_20fc3
ld a, $37
ld hl, $5188
ld de, $0070
ld bc, $0010
call Func_7dc
.asm_20fc3
ld bc, $34dc
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
call Func_30e8
call Func_30db
ld a, [wCurrentEvolutionType]
dec a
ld c, a
ld b, $0
sla c
ld hl, $2bf0
add hl, bc
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
ld hl, $d5cc
call Func_32aa
scf
ret
Func_20fef: ; 0x20fef
ld de, $0747
call PlaySoundEffect
ld a, $1
ld [$d551], a
ld a, [wIndicatorStates]
ld [$d558], a
ld a, $80
ld [wIndicatorStates], a
ld [wIndicatorStates + 1], a
ld a, [wIndicatorStates + 3]
ld [$d559], a
ld a, [wIndicatorStates + 2]
ld [$d63f], a
xor a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call nz, BankSwitch
ld a, $58
ld [$d556], a
ld a, $2
ld [$d557], a
ld bc, $34dc
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
call Func_30e8
call Func_30db
ld hl, $d5cc
ld a, [wCurrentEvolutionType]
cp EVO_EXPERIENCE
ld de, $2b7b
jr z, .asm_21057
ld de, $2b93
.asm_21057
call Func_32aa
scf
ret
Func_2105c: ; 0x2105c
ld a, [$d551]
and a
jr z, .asm_21077
ld a, [wIndicatorStates + 1]
and a
jr z, .asm_21077
ld bc, $34d0
ld [$ff8a], a
ld a, $2
ld hl, $4588
call BankSwitch
jr asm_210c7
.asm_21077
scf
ret
Func_21079: ; 0x21079
ld a, [$d551]
and a
jr z, .asm_21087
ld a, [wIndicatorStates + 1]
and a
jr z, .asm_21087
jr asm_210c7
.asm_21087
scf
ret
Func_21089: ; 0x21089
ld a, [$d551]
and a
jr nz, .asm_210aa
ld a, [wIndicatorStates]
and a
jr z, .asm_210a8
xor a
ld [wIndicatorStates], a
ld a, [$d563]
and a
ld a, $0
ld [$d563], a
jp nz, Func_20f75
jp Func_20fef
.asm_210a8
scf
ret
.asm_210aa
ld a, [$d551]
and a
jr z, .asm_210c5
ld a, [wIndicatorStates]
and a
jr z, .asm_210c5
ld bc, $34d0
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
jr asm_210c7
.asm_210c5
scf
ret
asm_210c7:
xor a
ld [wIndicatorStates + 1], a
ld [$d551], a
ld a, [$d558]
ld [wIndicatorStates], a
ld a, [$d559]
ld [wIndicatorStates + 3], a
ld a, [$d63f]
ld [wIndicatorStates + 2], a
ld a, [wCurrentStage]
bit 0, a
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call nz, BankSwitch
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_21102
ld a, $37
ld hl, $4bf0
ld de, $0070
ld bc, $0008
call Func_7dc
.asm_21102
call Func_30e8
call Func_30db
ld a, [wCurrentEvolutionType]
cp EVO_EXPERIENCE
ld de, $2ba9
jr z, .asm_21115
ld de, $2bc2
.asm_21115
ld hl, $d5cc
call Func_32aa
scf
ret
Func_2111d: ; 0x2111d
ld a, $11
call Func_a21
ld c, a
ld b, $0
ld hl, $d566
add hl, bc
ret
Func_2112a: ; 0x2112a
ld a, [wCurrentEvolutionMon]
cp $ff
jr nz, .asm_21134
ld a, [wCurrentCatchEmMon]
.asm_21134
ld c, a
ld b, $0
sla c
rl b
add c
ld c, a
jr nc, .asm_21140
inc b
.asm_21140
push bc
ld hl, MonBillboardPicPointers
add hl, bc
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
inc hl
ld c, a
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
inc hl
ld b, a
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
ld h, b
ld l, c
ld de, $8900
ld bc, $0180
call Func_735
pop bc
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_211a8
push bc
ld hl, MonBillboardPaletteMapPointers
add hl, bc
ld a, Bank(MonBillboardPaletteMapPointers)
call ReadByteFromBank
inc hl
ld e, a
ld a, Bank(MonBillboardPaletteMapPointers)
call ReadByteFromBank
inc hl
ld d, a
ld a, Bank(MonBillboardPaletteMapPointers)
call ReadByteFromBank
ld hl, $9887
call Func_86f
pop bc
ld hl, MonBillboardPalettePointers
add hl, bc
ld a, Bank(MonBillboardPalettePointers)
call ReadByteFromBank
inc hl
ld e, a
ld a, Bank(MonBillboardPalettePointers)
call ReadByteFromBank
inc hl
ld d, a
ld a, Bank(MonBillboardPalettePointers)
call ReadByteFromBank
ld bc, $10b0
ld hl, $ff68
call Func_8e1
.asm_211a8
ld [$ff8a], a
ld a, Bank(Func_10e0a)
ld hl, Func_10e0a
call BankSwitch
call Func_3475
ld de, $0000
call PlaySong
rst $10
ld de, $2d26
call PlaySoundEffect
ld [$ff8a], a
ld a, Bank(Func_10825)
ld hl, Func_10825
call BankSwitch
call Func_3475
ld a, $1
ld [$d54d], a
scf
ret
INCBIN "baserom.gbc",$211d6,$24000 - $211d6
SECTION "bank9", ROMX, BANK[$9]
InitMeowthBonusStage: ; 0x24000
ld a, [$d7c1]
and a
ret nz
xor a
ld [$d4c8], a
ld [wStageCollisionState], a
ld a, [wBallType]
ld [wBallTypeBackup], a
xor a
ld [$d4c8], a
ld [wBallType], a
ld [$d49a], a
ld a, $1
ld [$d7ac], a
ld a, $40
ld [wMeowthXPosition], a
ld a, $20
ld [wMeowthYPosition], a
ld a, $10
ld [wMeowthAnimationFrameCounter], a
xor a
ld [wMeowthStageScore], a
ld [$d70b], a
ld [wMeowthStageBonusCounter], a
ld [$d713], a
ld [$d739], a
ld bc, $0100 ; 1 minute 0 seconds
ld [$ff8a], a
ld a, Bank(StartTimer)
ld hl, StartTimer
call BankSwitch
ld a, $12
call SetSongBank
ld de, $0004
call PlaySong
ret
StartBallMeowthBonusStage: ; 0x24059
ld a, $0
ld [wBallXPos], a
ld a, $a6
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $56
ld [wBallYPos + 1], a
ld a, $40
ld [wBallXVelocity], a
xor a
ld [$d7ab], a
ld [wStageCollisionState], a
ld [$d6e6], a
ld hl, $d6f3
ld b, $16
.asm_24081
ld a, [hl]
and a
jr z, .asm_24088
ld a, $1
ld [hl], a
.asm_24088
inc hl
dec b
jr nz, .asm_24081
ld a, $1
ld [$d7ac], a
ld a, $40
ld [wMeowthXPosition], a
ld a, $20
ld [wMeowthYPosition], a
ld a, $10
ld [wMeowthAnimationFrameCounter], a
ld a, $ff ; walk left
ld [wMeowthXMovement], a
xor a
ld [$d6ea], a
ld [$d6ec], a
ld [$d6eb], a
ld [$d70b], a
ld [$d70c], a
ld a, $c8
ld [$d71a], a
ld [$d727], a
ld [$d71b], a
ld [$d728], a
ld [$d71c], a
ld [$d729], a
ld [$d724], a
ld [$d731], a
ld [$d725], a
ld [$d732], a
ld [$d726], a
ld [$d733], a
xor a
ld [$d717], a
ld [$d718], a
ld [$d719], a
ld [$d721], a
ld [$d722], a
ld [$d723], a
ld [$d714], a
ld [$d715], a
ld [$d716], a
ld [$d71e], a
ld [$d71f], a
ld [$d720], a
ld [$d64e], a
ld [$d64f], a
ld [$d650], a
ld [$d651], a
ld [$d795], a
ld [$d796], a
ld [$d797], a
ld [$d798], a
ld [$d799], a
ld [$d79a], a
ld a, [$d4c9]
and a
ret z
xor a
ld [$d4c9], a
ret
Func_24128: ; 0x24128
ld [$ff8a], a
ld a, Bank(Func_142fc)
ld hl, Func_142fc
call BankSwitch
call Func_2862
ld [$ff8a], a
ld a, Bank(Func_24fa3)
ld hl, Func_24fa3
call BankSwitch
call Func_24516
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
ret
Func_2414d: ; 0x2414d
call Func_24157
call Func_24214
call Func_242bb
ret
Func_24157: ; 0x24157
ld a, [$d6e7]
cp $0
ret nz
ld a, [wMeowthXPosition]
add $f7
ld b, a
ld a, [wMeowthYPosition]
add $6
ld c, a
call Func_24170
ld a, $3
ret nc
ret
Func_24170: ; 0x24170
ld a, [wBallXPos + 1]
sub b
cp $30
jp nc, .asm_24212
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $28
jp nc, .asm_24212
ld c, a
ld e, c
ld d, $0
sla e
rl d
sla e
rl d
sla e
rl d
ld h, d
ld l, e
sla e
rl d
add hl, de
ld d, h
ld e, l
sla e
rl d
ld l, b
ld h, $0
add hl, de
ld de, $5500
add hl, de
ld a, $3a
call ReadByteFromBank
bit 7, a
jr nz, .asm_24212
sla a
ld [$d7ea], a
ld a, $1
ld [$d7e9], a
ld a, [$d6ec]
cp $2
ret z
cp $3
ret z
ld a, [$d713]
and a
ret nz
ld a, [wMeowthYMovement]
and a
jr z, .asm_241ed
ld a, [wMeowthYMovement]
cp $1
jr nz, .asm_241df
ld a, [$d70b]
cp $3
jr z, .asm_241eb
jr .asm_241e6
.asm_241df
ld a, [$d70c]
cp $3
jr z, .asm_241eb
.asm_241e6
ld a, $2
ld [$d6e7], a
.asm_241eb
scf
ret
.asm_241ed
ld a, [wMeowthYPosition]
cp $20
jr nz, .asm_241fd
ld a, [$d70b]
cp $3
jr z, .asm_24210
jr .asm_2420b
.asm_241fd
ld a, [wMeowthYPosition]
cp $10
jr nz, .asm_24210
ld a, [$d70c]
cp $3
jr z, .asm_24210
.asm_2420b
ld a, $1
ld [$d6e7], a
.asm_24210
scf
ret
.asm_24212
and a
ret
Func_24214: ; 0x24214
ld a, [$d717]
cp $2
jr nz, .asm_2422e
ld a, [$d71a]
sub $4
ld b, a
ld a, [$d727]
add $c
ld c, a
call Func_24272
ld a, $0
jr c, .asm_24260
.asm_2422e
ld a, [$d718]
cp $2
jr nz, .asm_24248
ld a, [$d71b]
sub $4
ld b, a
ld a, [$d728]
add $c
ld c, a
call Func_24272
ld a, $1
jr c, .asm_24260
.asm_24248
ld a, [$d719]
cp $2
ret nz
ld a, [$d71c]
sub $4
ld b, a
ld a, [$d729]
add $c
ld c, a
call Func_24272
ld a, $2
ret nc
.asm_24260
ld b, $0
ld c, a
ld hl, $d717
add hl, bc
ld a, $3
ld [hl], a
ld hl, $d714
add hl, bc
ld a, $0
ld [hl], a
ret
Func_24272: ; 0x24272
ld a, [wBallXPos + 1]
sub b
cp $18
jr nc, .asm_242b9
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $18
jr nc, .asm_242b9
ld c, a
ld e, c
ld d, $0
sla e
rl d
sla e
rl d
sla e
rl d
ld h, d
ld l, e
sla e
rl d
add hl, de
ld d, h
ld e, l
ld l, b
ld h, $0
add hl, de
ld de, $5c80 ; todo
add hl, de
ld a, $3a
call ReadByteFromBank
bit 7, a
jr nz, .asm_242b9
sla a
ld [$d7ea], a
ld a, $1
ld [$d7e9], a
scf
ret
.asm_242b9
and a
ret
Func_242bb: ; 0x242bb
ld a, [$d721]
cp $2
jr nz, .asm_242d5
ld a, [$d724]
sub $4
ld b, a
ld a, [$d731]
add $c
ld c, a
call Func_24272
ld a, $0
jr c, .asm_24307
.asm_242d5
ld a, [$d722]
cp $2
jr nz, .asm_242ef
ld a, [$d725]
sub $4
ld b, a
ld a, [$d732]
add $c
ld c, a
call Func_24272
ld a, $1
jr c, .asm_24307
.asm_242ef
ld a, [$d723]
cp $2
ret nz
ld a, [$d726]
sub $4
ld b, a
ld a, [$d733]
add $c
ld c, a
call Func_24272
ld a, $2
ret nc
.asm_24307
ld b, $0
ld c, a
ld hl, $d721
add hl, bc
ld a, $3
ld [hl], a
ld hl, $d71e
add hl, bc
ld a, $0
ld [hl], a
ret
Func_24319: ; 0x2438f
ld a, [$d6f4]
cp $0
jr z, .asm_24333
ld a, [$d71a]
sub $4
ld b, a
ld a, [$d727]
add $4
ld c, a
call Func_24405
ld a, $0
jr c, .asm_24373
.asm_24333
ld a, [$d6f4]
cp $1
jr z, .asm_2434d
ld a, [$d71b]
sub $4
ld b, a
ld a, [$d728]
add $4
ld c, a
call Func_24405
ld a, $1
jr c, .asm_24373
.asm_2434d
ld a, [$d6f4]
cp $2
ret z
ld a, [$d71c]
sub $4
ld b, a
ld a, [$d729]
add $4
ld c, a
call Func_24405
ld a, $2
jr c, .asm_24373
ld a, [$d6f4]
ld b, $0
ld c, a
ld hl, $d6f8
add hl, bc
ld [hl], $0
ret
.asm_24373
ld a, [$d6f4]
ld b, $0
ld c, a
ld hl, $d6f8
add hl, bc
inc [hl]
ld d, $4
ld a, [$d6f4]
add d
ld d, a
ld a, [hl]
cp d
ret nc
ld hl, $d6f5
add hl, bc
ld [hl], $0
ret
Func_2438f: ; 0x2438f
ld a, [$d6f4]
cp $a
jr z, .asm_243a9
ld a, [$d724]
sub $4
ld b, a
ld a, [$d731]
add $4
ld c, a
call Func_24405
ld a, $a
jr c, .asm_243e9
.asm_243a9
ld a, [$d6f4]
cp $b
jr z, .asm_243c3
ld a, [$d725]
sub $4
ld b, a
ld a, [$d732]
add $4
ld c, a
call Func_24405
ld a, $b
jr c, .asm_243e9
.asm_243c3
ld a, [$d6f4]
cp $c
ret z
ld a, [$d726]
sub $4
ld b, a
ld a, [$d733]
add $4
ld c, a
call Func_24405
ld a, $c
jr c, .asm_243e9
ld a, [$d6f4]
ld b, $0
ld c, a
ld hl, $d6f8
add hl, bc
ld [hl], $0
ret
.asm_243e9
ld a, [$d6f4]
ld b, $0
ld c, a
ld hl, $d6f8
add hl, bc
inc [hl]
ld d, $4
ld a, [$d6f4]
add d
ld d, a
ld a, [hl]
cp d
ret nc
ld hl, $d6f5
add hl, bc
ld [hl], $0
ret
Func_24405: ; 0x24405
ld hl, $d71a
ld a, [$d6f4]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
add $8
sub b
cp $18
jr nc, .asm_24428
ld b, a
ld hl, $d727
add hl, de
ld a, [hl]
add $8
sub c
cp $18
jr nc, .asm_24428
ld c, a
ld d, b
scf
ret
.asm_24428
and a
ret
INCBIN "baserom.gbc",$2442a,$2442a - $2442a
Func_2442a: ; 0x2442a
ld a, [$d710]
jr nz, .asm_2443f
ld a, [wMeowthStageBonusCounter]
dec a
dec a
cp $fe
jr z, .asm_24447
cp $ff
jr z, .asm_24447
ld [$d79a], a
.asm_2443f
ld de, $d79a
call Func_24f00
jr .asm_2444b
.asm_24447
xor a
ld [$d79a], a
.asm_2444b
call Func_244f5
call Func_245ab
call Func_248ac
call Func_24d07
ld a, [wMeowthStageScore]
cp $14
jr c, .asm_24498
ld a, [$d712]
cp $2
jr nc, .asm_24498
ld a, [$d498]
cp $4
ret z
ld a, $4
ld [$d712], a
ld [$d498], a
ld a, $96
ld [$d739], a
ld de, $0000
call PlaySong
ld a, $1
ld [$d49a], a
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $2fd0
call Func_32aa
ld de, $4b2a
call PlaySoundEffect
.asm_24498
ld a, [$d712]
cp $4
jr nz, .asm_244b0
ld a, [$d800]
and a
jr nz, .asm_244b0
ld de, $0004
call PlaySong
ld a, $5
ld [$d712], a
.asm_244b0
ld a, [$d712]
cp $4
jr z, .asm_244c1
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
.asm_244c1
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $1
ld [$d7be], a
call Func_2862
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld a, $1
ld [$d713], a
ld a, $1
ld [$d712], a
ld hl, $4704
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ld a, $4
ld [$d6ec], a
ret
Func_244f5: ; 0x244f5
ld a, [$d6e6]
and a
ret nz
ld a, [$d4b4]
cp $8a
ret nc
ld a, $1
ld [wStageCollisionState], a
ld [$d6e6], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
call Func_24516
ret
Func_24516: ; 0x24516
ld a, [wStageCollisionState]
sla a
ld c, a
ld b, $0
ld hl, $4533
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_24529
ld hl, $456f
.asm_24529
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $9
call Func_10aa
ret
INCBIN "baserom.gbc",$24533,$245ab - $24533
Func_245ab: ; 0x245ab
ld a, [$d6e7]
and a
jr z, .asm_24621
cp $2
jr z, .asm_24621
ld a, $1
ld [$d6f3], a
ld a, [wMeowthYPosition]
cp $20
jr z, .asm_245c7
cp $10
jr z, .asm_245cc
jr .asm_245cf
.asm_245c7
call Func_247d9
jr .asm_245cf
.asm_245cc
call Func_24c28
.asm_245cf
xor a
ld [$d6e7], a
ld [$d6f3], a
ld a, $ff
ld [$d803], a
ld a, $3
ld [$d804], a
ld de, $0033
call PlaySoundEffect
ld bc, $34c4
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
xor a
ld [wMeowthStageBonusCounter], a
ld a, [$d6ec]
cp $2
jr nc, .asm_24621
and a
jr nz, .asm_24611
ld hl, $46fe
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ld a, $2
ld [$d6ec], a
jr .asm_24651
.asm_24611
ld hl, $4701
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ld a, $3
ld [$d6ec], a
jr .asm_24651
.asm_24621
ld a, [$d713]
and a
jr z, .asm_2462e
ld a, $4
ld [$d6ec], a
jr .asm_24651
.asm_2462e
ld a, [$d6ec]
cp $2
jr nc, .asm_24651
ld a, [$d70b]
cp $3
jr nz, .asm_24651
ld a, [$d70c]
cp $3
jr nz, .asm_24651
ld hl, $4704
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ld a, $4
ld [$d6ec], a
.asm_24651
ld a, [$d6ec]
cp $2
call c, Func_24709
call Func_2465d
ret
Func_2465d: ; 0x2465d
ld a, [$d6ec]
sla a
ld c, a
ld b, $0
ld hl, $46e2
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld de, wMeowthAnimationFrameCounter
call Func_28a9
ret nc
ld a, [$d6ec]
and a
jr nz, .asm_24689
ld a, [$d6eb]
cp $4
ret nz
ld hl, $46ec
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ret
.asm_24689
cp $1
jr nz, .asm_2469d
ld a, [$d6eb]
cp $4
ret nz
ld hl, $46f5
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ret
.asm_2469d
cp $2
jr nz, .asm_246b5
ld a, [$d6eb]
cp $1
ret nz
ld hl, $46ec
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
xor a
ld [$d6ec], a
ret
.asm_246b5
cp $3
jr nz, .asm_246ce
ld a, [$d6eb]
cp $1
ret nz
ld hl, $46f5
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ld a, $1
ld [$d6ec], a
ret
.asm_246ce
cp $4
jr nz, .asm_24689
ld a, [$d6eb]
cp $2
ret nz
ld hl, $4704
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ret
INCBIN "baserom.gbc",$246e2,$24709 - $246e2
Func_24709: ; 0x24709
ld a, [wMeowthXPosition]
ld hl, wMeowthXMovement
add [hl]
ld [wMeowthXPosition], a
ld hl, wMeowthYMovement
ld a, [hl]
and a
jr z, .asm_24730
bit 7, [hl]
ld a, [wMeowthYPosition]
jr nz, .asm_24724
inc a
jr .asm_24725
.asm_24724
dec a
.asm_24725
cp $21
jr z, .asm_24730
cp $f
jr z, .asm_24730
ld [wMeowthYPosition], a
.asm_24730
call Func_24737
call Func_2476d
ret
Func_24737: ; 0x24737
ld a, [wMeowthXPosition]
cp $8
jr nc, .asm_24742
ld a, $1
jr .asm_2475a
.asm_24742
cp $78
jr c, .asm_2474a
ld a, $ff
jr .asm_2475a
.asm_2474a
ld a, [$ffb3]
and $3f
ret nz
call GenRandom
bit 7, a
ld a, $1
jr z, .asm_2475a
ld a, $ff
.asm_2475a
ld [wMeowthXMovement], a
bit 7, a
ld a, $1
jr z, .asm_24764
xor a
.asm_24764
ld [$d6ec], a
ld a, $2
ld [wMeowthAnimationFrameCounter], a
ret
Func_2476d: ; 0x2476d
ld a, [wMeowthYMovement]
and a
jr z, .asm_247ab
cp $1
jr z, .asm_24791
ld a, [wMeowthYPosition]
cp $10
jr nz, .asm_2478d
ld a, [$d6e7]
cp $2
jr nz, .asm_2478a
ld a, $1
ld [$d6e7], a
.asm_2478a
xor a
jr .asm_247c9
.asm_2478d
ld a, $ff
jr .asm_247c9
.asm_24791
ld a, [wMeowthYPosition]
cp $20
jr nz, .asm_247a7
ld a, [$d6e7]
cp $2
jr nz, .asm_247a4
ld a, $1
ld [$d6e7], a
.asm_247a4
xor a
jr .asm_247c9
.asm_247a7
ld a, $1
jr .asm_247c9
.asm_247ab
ld a, [$d70b]
cp $3
jr z, .asm_247cd
ld a, [$d70c]
cp $3
jr z, .asm_247d3
ld a, [$ffb3]
and $3f
ret nz
call GenRandom
bit 0, a
ld a, $1
jr z, .asm_247c9
ld a, $ff
.asm_247c9
ld [wMeowthYMovement], a
ret
.asm_247cd
ld a, $ff
ld [wMeowthYMovement], a
ret
.asm_247d3
ld a, $1
ld [wMeowthYMovement], a
ret
Func_247d9: ; 0x247d9
ld a, [$d6f3]
and a
ret z
ld a, [$d71a]
cp $c8
jr nz, .asm_24823
ld a, [wMeowthXPosition]
add $8
ld [$d71a], a
ld a, [wMeowthYPosition]
add $fb
ld [$d727], a
ld a, $1
ld [$d717], a
xor a
ld [$d6f3], a
ld [$d714], a
ld [$d6f5], a
ld [$d6f8], a
ld [$d6fb], a
ld a, [wMeowthXPosition]
add $14
ld b, a
ld a, [$d4b4]
cp b
jr nc, .asm_2481d
ld a, $0
ld [$d72a], a
jr .asm_24822
.asm_2481d
ld a, $1
ld [$d72a], a
.asm_24822
ret
.asm_24823
ld a, [$d71b]
cp $c8
jr nz, .asm_24868
ld a, [wMeowthXPosition]
add $8
ld [$d71b], a
ld a, [wMeowthYPosition]
add $fb
ld [$d728], a
ld a, $1
ld [$d718], a
xor a
ld [$d6f3], a
ld [$d715], a
ld [$d6f6], a
ld [$d6f9], a
ld [$d6fc], a
ld a, [wMeowthXPosition]
add $14
ld b, a
ld a, [$d4b4]
cp b
jr nc, .asm_24862
ld a, $0
ld [$d72b], a
jr .asm_24867
.asm_24862
ld a, $1
ld [$d72b], a
.asm_24867
ret
.asm_24868
ld a, [$d71c]
cp $c8
ret nz
ld a, [wMeowthXPosition]
add $8
ld [$d71c], a
ld a, [wMeowthYPosition]
add $fb
ld [$d729], a
ld a, $1
ld [$d719], a
xor a
ld [$d6f3], a
ld [$d716], a
ld [$d6f7], a
ld [$d6fa], a
ld [$d6fd], a
ld a, [wMeowthXPosition]
add $14
ld b, a
ld a, [$d4b4]
cp b
jr nc, .asm_248a6
ld a, $0
ld [$d72c], a
jr .asm_248ab
.asm_248a6
ld a, $1
ld [$d72c], a
.asm_248ab
ret
Func_248ac: ; 0x248ac
ld a, [$d717]
cp $1
jr nz, .asm_248d3
ld a, [$d714]
cp $a
jr z, .asm_248c4
ld a, $0
ld [$d6f4], a
call Func_24a30
jr .asm_248d3
.asm_248c4
ld hl, $d70b
inc [hl]
ld a, $2
ld [$d717], a
ld de, $0034
call PlaySoundEffect
.asm_248d3
ld a, [$d718]
cp $1
jr nz, .asm_248fa
ld a, [$d715]
cp $a
jr z, .asm_248eb
ld a, $1
ld [$d6f4], a
call Func_24a30
jr .asm_248fa
.asm_248eb
ld hl, $d70b
inc [hl]
ld a, $2
ld [$d718], a
ld de, $0034
call PlaySoundEffect
.asm_248fa
ld a, [$d719]
cp $1
jr nz, .asm_24921
ld a, [$d716]
cp $a
jr z, .asm_24912
ld a, $2
ld [$d6f4], a
call Func_24a30
jr .asm_24921
.asm_24912
ld hl, $d70b
inc [hl]
ld a, $2
ld [$d719], a
ld de, $0034
call PlaySoundEffect
.asm_24921
ld a, [$d717]
cp $2
jr nz, .asm_2492c
ld hl, $d714
inc [hl]
.asm_2492c
ld a, [$d718]
cp $2
jr nz, .asm_24937
ld hl, $d715
inc [hl]
.asm_24937
ld a, [$d719]
cp $2
jr nz, .asm_24942
ld hl, $d716
inc [hl]
.asm_24942
ld a, [$d717]
cp $3
jr nz, .asm_24968
ld a, [$d71a]
ld b, a
ld a, [$d727]
ld c, a
ld hl, $d714
inc [hl]
ld a, [hl]
cp $2
jr nz, .asm_2495f
call Func_24e7f
jr .asm_24968
.asm_2495f
cp $a
jr nz, .asm_24968
ld a, $4
ld [$d717], a
.asm_24968
ld a, [$d718]
cp $3
jr nz, .asm_2498e
ld a, [$d71b]
ld b, a
ld a, [$d728]
ld c, a
ld hl, $d715
inc [hl]
ld a, [hl]
cp $2
jr nz, .asm_24985
call Func_24e7f
jr .asm_2498e
.asm_24985
cp $a
jr nz, .asm_2498e
ld a, $4
ld [$d718], a
.asm_2498e
ld a, [$d719]
cp $3
jr nz, .asm_249b4
ld a, [$d71c]
ld b, a
ld a, [$d729]
ld c, a
ld hl, $d716
inc [hl]
ld a, [hl]
cp $2
jr nz, .asm_249ab
call Func_24e7f
jr .asm_249b4
.asm_249ab
cp $a
jr nz, .asm_249b4
ld a, $4
ld [$d719], a
.asm_249b4
ld a, [$d717]
cp $4
jr nz, .asm_249d0
ld a, $c8
ld [$d71a], a
ld [$d727], a
xor a
ld [$d717], a
ld hl, $d70b
dec [hl]
ld a, [hl]
cp $2
jr z, .asm_24a06
.asm_249d0
ld a, [$d718]
cp $4
jr nz, .asm_249ec
ld a, $c8
ld [$d71b], a
ld [$d728], a
xor a
ld [$d718], a
ld hl, $d70b
dec [hl]
ld a, [hl]
cp $2
jr z, .asm_24a06
.asm_249ec
ld a, [$d719]
cp $4
ret nz
ld a, $c8
ld [$d71c], a
ld [$d729], a
xor a
ld [$d719], a
ld hl, $d70b
dec [hl]
ld a, [hl]
cp $2
ret nz
.asm_24a06
ld a, [$d713]
and a
ret nz
ld a, [wMeowthXMovement]
cp $ff
jr z, .asm_24a21
ld hl, $46f5
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ld a, $1
ld [$d6ec], a
ret
.asm_24a21
ld hl, $46ec
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ld a, $0
ld [$d6ec], a
ret
Func_24a30: ; 0x24a30
ld a, [$d6f4]
ld c, a
ld b, $0
ld hl, $d6f8
add hl, bc
ld a, [hl]
and a
jr z, .asm_24a42
call Func_24b41
ret
.asm_24a42
ld a, [$d6f4]
ld c, a
ld b, $0
ld hl, $d6f5
add hl, bc
ld a, [hl]
bit 2, a
jr z, .asm_24a5e
bit 1, a
jr nz, .asm_24a5e
bit 0, a
jr nz, .asm_24a5e
ld hl, $d714
add hl, bc
inc [hl]
.asm_24a5e
ld hl, $d6f5
add hl, bc
ld a, [hl]
ld hl, $4af1
ld e, a
ld d, $0
add hl, de
ld hl, $d72a
add hl, bc
ld a, [hl]
and a
jr nz, .asm_24a97
.asm_24a72
ld hl, $d72a
add hl, bc
ld [hl], $0
ld hl, $d71a
add hl, bc
ld a, [hl]
push af
ld hl, $d6f5
add hl, bc
ld a, [hl]
ld e, a
ld d, $0
ld hl, $4af1
add hl, de
pop af
add [hl]
cp $8e
jr nc, .asm_24a97
ld hl, $d71a
add hl, bc
ld [hl], a
jr .asm_24abf
.asm_24a97
ld hl, $d72a
add hl, bc
ld [hl], $1
ld hl, $d6f5
add hl, bc
ld a, [hl]
ld e, a
ld d, $0
ld hl, $4af1
add hl, de
ld a, [hl]
ld d, a
ld a, $ff
sub d
inc a
ld d, a
ld hl, $d71a
add hl, bc
ld a, [hl]
add d
cp $5
jr c, .asm_24a72
ld hl, $d71a
add hl, bc
ld [hl], a
.asm_24abf
ld hl, $d6f5
add hl, bc
ld a, [hl]
ld e, a
ld d, $0
ld hl, $4af1
add hl, de
inc hl
ld a, [hl]
ld d, a
ld hl, $d727
add hl, bc
ld a, [hl]
add d
ld hl, $d727
add hl, bc
ld [hl], a
ld hl, $d6f5
add hl, bc
inc [hl]
inc [hl]
ld a, [hl]
cp $46
jr nz, .asm_24af0
ld a, c
cp $9
jr c, .asm_24aed
call Func_2438f
ret
.asm_24aed
call Func_24319
.asm_24af0
ret
INCBIN "baserom.gbc",$24af1,$24b41 - $24af1
Func_24b41: ; 0x24b41
ld a, [$d6f4]
ld b, $0
ld c, a
ld hl, $d6f5
add hl, bc
ld a, [hl]
cp $14
jp nc, Func_24bf6
ld hl, $d6f5
add hl, bc
ld a, [hl]
ld hl, $4c0a
ld e, a
ld d, $0
add hl, de
ld hl, $d72a
add hl, bc
ld a, [hl]
and a
jr nz, .asm_24b8a
.asm_24b65
ld hl, $d72a
add hl, bc
ld [hl], $0
ld hl, $d71a
add hl, bc
ld a, [hl]
push af
ld hl, $d6f5
add hl, bc
ld a, [hl]
ld e, a
ld d, $0
ld hl, $4c0a
add hl, de
pop af
add [hl]
cp $90
jr nc, .asm_24b8a
ld hl, $d71a
add hl, bc
ld [hl], a
jr .asm_24bb2
.asm_24b8a
ld hl, $d72a
add hl, bc
ld [hl], $1
ld hl, $d6f5
add hl, bc
ld a, [hl]
ld e, a
ld d, $0
ld hl, $4c0a
add hl, de
ld a, [hl]
ld d, a
ld a, $ff
sub d
inc a
ld d, a
ld hl, $d71a
add hl, bc
ld a, [hl]
add d
cp $6
jr c, .asm_24b65
ld hl, $d71a
add hl, bc
ld [hl], a
.asm_24bb2
ld hl, $d6f5
add hl, bc
ld a, [hl]
ld e, a
ld d, $0
ld hl, $4c0a
add hl, de
inc hl
ld a, [hl]
ld d, a
ld hl, $d727
add hl, bc
ld a, [hl]
add d
ld hl, $d727
add hl, bc
ld [hl], a
ld hl, $d6f5
add hl, bc
inc [hl]
inc [hl]
ld a, [hl]
cp $12
jr nz, .asm_24bf4
ld a, c
cp $9
jr c, .asm_24be1
call Func_2438f
jr .asm_24be4
.asm_24be1
call Func_24319
.asm_24be4
ld a, [$d6f4]
ld b, $0
ld c, a
ld hl, $d6f8
add hl, bc
ld a, [hl]
and a
jr nz, .asm_24bf4
ld [hl], $1
.asm_24bf4
scf
ret
Func_24bf6: ; 0x24bf6
ld a, [$d6f4]
ld b, $0
ld c, a
ld hl, $d6f8
add hl, bc
ld [hl], $0
ld hl, $d714
add hl, bc
ld [hl], $a
ccf
ret
INCBIN "baserom.gbc",$24c0a,$24c28 - $24c0a
Func_24c28: ; 0x24c28
ld a, [$d6f3]
and a
ret z
ld a, [$d724]
cp $c8
jr nz, .asm_24c76
ld a, [wMeowthXPosition]
add $8
ld [$d724], a
ld a, [wMeowthYPosition]
add $fb
ld [$d731], a
ld a, $1
ld [$d721], a
ld hl, $d70c
inc [hl]
xor a
ld [$d6f3], a
ld [$d71e], a
ld [$d6ff], a
ld [$d702], a
ld [$d705], a
ld a, [wMeowthXPosition]
add $14
ld b, a
ld a, [$d4b4]
cp b
jr nc, .asm_24c70
ld a, $0
ld [$d734], a
jr .asm_24c75
.asm_24c70
ld a, $1
ld [$d734], a
.asm_24c75
ret
.asm_24c76
ld a, [$d725]
cp $c8
jr nz, .asm_24cbf
ld a, [wMeowthXPosition]
add $8
ld [$d725], a
ld a, [wMeowthYPosition]
add $fb
ld [$d732], a
ld a, $1
ld [$d722], a
ld hl, $d70c
inc [hl]
xor a
ld [$d6f3], a
ld [$d71f], a
ld [$d700], a
ld [$d703], a
ld [$d706], a
ld a, [$d6f7]
add $14
ld b, a
ld a, [$d4b4]
cp b
jr nc, .asm_24cb9
ld a, $0
ld [$d735], a
jr .asm_24cbe
.asm_24cb9
ld a, $1
ld [$d735], a
.asm_24cbe
ret
.asm_24cbf
ld a, [$d726]
cp $c8
ret nz
ld a, [wMeowthXPosition]
add $8
ld [$d726], a
ld a, [wMeowthYPosition]
add $fb
ld [$d733], a
ld a, $1
ld [$d723], a
ld hl, $d70c
inc [hl]
xor a
ld [$d6f3], a
ld [$d720], a
ld [$d701], a
ld [$d704], a
ld [$d707], a
ld a, [wMeowthXPosition]
add $14
ld b, a
ld a, [$d4b4]
cp b
jr nc, .asm_24d01
ld a, $0
ld [$d736], a
jr .asm_24d06
.asm_24d01
ld a, $1
ld [$d736], a
.asm_24d06
ret
Func_24d07: ; 0x24d07
ld a, [$d721]
cp $1
jr nz, .asm_24d2a
ld a, [$d71e]
cp $a
jr z, .asm_24d1f
ld a, $a
ld [$d6f4], a
call Func_24a30
jr .asm_24d2a
.asm_24d1f
ld a, $2
ld [$d721], a
ld de, $0034
call PlaySoundEffect
.asm_24d2a
ld a, [$d722]
cp $1
jr nz, .asm_24d4d
ld a, [$d71f]
cp $a
jr z, .asm_24d42
ld a, $b
ld [$d6f4], a
call Func_24a30
jr .asm_24d4d
.asm_24d42
ld a, $2
ld [$d722], a
ld de, $0034
call PlaySoundEffect
.asm_24d4d
ld a, [$d723]
cp $1
jr nz, .asm_24d70
ld a, [$d720]
cp $a
jr z, .asm_24d65
ld a, $c
ld [$d6f4], a
call Func_24a30
jr .asm_24d70
.asm_24d65
ld a, $2
ld [$d723], a
ld de, $0034
call PlaySoundEffect
.asm_24d70
ld a, [$d721]
cp $2
jr nz, .asm_24d7b
ld hl, $d71e
inc [hl]
.asm_24d7b
ld a, [$d722]
cp $2
jr nz, .asm_24d86
ld hl, $d71f
inc [hl]
.asm_24d86
ld a, [$d723]
cp $2
jr nz, .asm_24d91
ld hl, $d720
inc [hl]
.asm_24d91
ld a, [$d721]
cp $3
jr nz, .asm_24db7
ld a, [$d724]
ld b, a
ld a, [$d731]
ld c, a
ld hl, $d71e
inc [hl]
ld a, [hl]
cp $2
jr nz, .asm_24dae
call Func_24e7f
jr .asm_24db7
.asm_24dae
cp $a
jr nz, .asm_24db7
ld a, $4
ld [$d721], a
.asm_24db7
ld a, [$d722]
cp $3
jr nz, .asm_24ddd
ld a, [$d725]
ld b, a
ld a, [$d732]
ld c, a
ld hl, $d71f
inc [hl]
ld a, [hl]
cp $2
jr nz, .asm_24dd4
call Func_24e7f
jr .asm_24ddd
.asm_24dd4
cp $a
jr nz, .asm_24ddd
ld a, $4
ld [$d722], a
.asm_24ddd
ld a, [$d723]
cp $3
jr nz, .asm_24e03
ld a, [$d726]
ld b, a
ld a, [$d733]
ld c, a
ld hl, $d720
inc [hl]
ld a, [hl]
cp $2
jr nz, .asm_24dfa
call Func_24e7f
jr .asm_24e03
.asm_24dfa
cp $a
jr nz, .asm_24e03
ld a, $4
ld [$d723], a
.asm_24e03
ld a, [$d721]
cp $4
jr nz, .asm_24e1f
ld a, $c8
ld [$d724], a
ld [$d731], a
xor a
ld [$d721], a
ld hl, $d70c
dec [hl]
ld a, [hl]
cp $2
jr z, .asm_24e55
.asm_24e1f
ld a, [$d722]
cp $4
jr nz, .asm_24e3b
ld a, $c8
ld [$d725], a
ld [$d732], a
xor a
ld [$d722], a
ld hl, $d70c
dec [hl]
ld a, [hl]
cp $2
jr z, .asm_24e55
.asm_24e3b
ld a, [$d723]
cp $4
ret nz
ld a, $c8
ld [$d726], a
ld [$d733], a
xor a
ld [$d723], a
ld hl, $d70c
dec [hl]
ld a, [hl]
cp $2
ret nz
.asm_24e55
ld a, [$d713]
and a
ret nz
ld a, [wMeowthXMovement]
cp $ff
jr z, .asm_24e70
ld hl, $46f5
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ld a, $1
ld [$d6ec], a
ret
.asm_24e70
ld hl, $46ec
ld de, wMeowthAnimationFrameCounter
call CopyHLToDE
ld a, $0
ld [$d6ec], a
ret
Func_24e7f: ; 0x24e7f
ld a, b
ld [$d79c], a
ld a, c
ld [$d79e], a
ld hl, wMeowthStageBonusCounter
inc [hl]
ld a, [hl]
cp $7 ; maximum bonus
jr nz, .asm_24e92
xor a
ld [hl], a
.asm_24e92
ld a, $ff
ld [$d803], a
ld a, $3
ld [$d804], a
ld de, $0032
call PlaySoundEffect
ld a, [wMeowthStageBonusCounter]
dec a
.asm_24ea6
push af
ld bc, $34d6
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
ld hl, wMeowthStageScore
inc [hl]
pop af
and a
jr z, .asm_24ebf
dec a
jr .asm_24ea6
.asm_24ebf
ld a, [wMeowthStageBonusCounter]
dec a
dec a
cp $fe
jr z, .asm_24ed7
cp $ff
jr z, .asm_24ed7
ld [$d79a], a
ld de, $d79a
call Func_24ee7
jr .asm_24ede
.asm_24ed7
xor a
ld [$d79a], a
ld [$d795], a
.asm_24ede
ld a, $1
ld [$d64e], a
call Func_24fa3
ret
Func_24ee7: ; 0x24ee7
ld a, $ff
ld [$d795], a
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $4f30
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
dec de
dec de
dec de
call CopyHLToDE
ret
Func_24f00: ; 0x24f00
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $4f30
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
dec de
call Func_28a9
pop de
ld a, $1
ld [$d710], a
ret nc
dec de
ld a, [de]
cp $a
ret nz
xor a
ld [de], a
ld [$d79c], a
ld [$d79e], a
ld [$d795], a
xor a
ld [$d710], a
ret
INCBIN "baserom.gbc",$24f30,$24fa3 - $24f30
Func_24fa3: ; 0x24fa3
ld a, [wMeowthStageScore]
ld c, a
ld b, $0
.asm_24fa9
ld a, c
and a
jr z, .asm_24fb5
ld a, b
add $8
ld b, a
dec c
ld a, c
jr .asm_24fa9
.asm_24fb5
ld a, b
and a
jr z, .asm_24fbb
sub $8
.asm_24fbb
ld [$d652], a
ld a, [wMeowthStageBonusCounter]
and a
jr z, .asm_24fca
ld b, a
ld a, [wMeowthStageScore]
inc a
sub b
.asm_24fca
ld [$d651], a
ld a, $0
ld [$d64e], a
ld a, [wMeowthStageScore]
and a
ret z
cp $15
jr c, .asm_24fe2
ld a, $14
ld [wMeowthStageScore], a
jr .asm_24fed
.asm_24fe2
push af
xor a
ld [$d650], a
ld a, $1
ld [$d64e], a
pop af
.asm_24fed
sla a
ld c, a
ld b, $0
ld hl, $5007
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_24ffd
ld hl, $5421
.asm_24ffd
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $9
call Func_10aa
ret
INCBIN "baserom.gbc",$25007,$2583b - $25007
Func_2583b: ; 0x2583b
ld bc, $7f65
ld [$ff8a], a
ld a, Bank(Func_175a4)
ld hl, Func_175a4
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_e4a1)
ld hl, Func_e4a1
call BankSwitch
call Func_259fe
call Func_25895
call Func_2595e
call Func_2586c
ld [$ff8a], a
ld a, Bank(Func_17e81)
ld hl, Func_17e81
call BankSwitch
call Func_25a39
ret
Func_2586c: ; 0x2586c
ld a, [wMeowthXPosition]
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, [wMeowthYPosition]
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d6ea]
ld e, a
ld d, $0
ld hl, $588b
add hl, de
ld a, [hl]
call LoadOAMData2
ret
INCBIN "baserom.gbc",$2588b,$25895 - $2588b
Func_25895: ; 0x25895
ld a, [$d714]
cp $b
jr nz, .asm_258a0
xor a
ld [$d714], a
.asm_258a0
ld a, [$d715]
cp $b
jr nz, .asm_258ab
xor a
ld [$d715], a
.asm_258ab
ld a, [$d716]
cp $b
jr nz, .asm_258b6
xor a
ld [$d716], a
.asm_258b6
ld a, [$d71a]
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, [$d727]
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d717]
sla a
ld e, a
ld d, $0
ld hl, $5935
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [$d714]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call LoadOAMData2
ld a, [$d71b]
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, [$d728]
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d718]
sla a
ld e, a
ld d, $0
ld hl, $5935
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [$d715]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call LoadOAMData2
ld a, [$d71c]
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, [$d729]
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d719]
sla a
ld e, a
ld d, $0
ld hl, $5935
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [$d716]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call LoadOAMData2
ret
INCBIN "baserom.gbc",$25935,$2595e - $25935
Func_2595e: ; 0x2595e
ld a, [$d71e]
cp $b
jr nz, .asm_25969
xor a
ld [$d71e], a
.asm_25969
ld a, [$d71f]
cp $b
jr nz, .asm_25974
xor a
ld [$d71f], a
.asm_25974
ld a, [$d720]
cp $b
jr nz, .asm_2597f
xor a
ld [$d720], a
.asm_2597f
ld a, [$d724]
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, [$d731]
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d721]
sla a
ld e, a
ld d, $0
ld hl, $5935
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [$d71e]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call LoadOAMData2
ld a, [$d725]
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, [$d732]
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d722]
sla a
ld e, a
ld d, $0
ld hl, $5935
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [$d71f]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call LoadOAMData2
ld a, [$d726]
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, [$d733]
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d723]
sla a
ld e, a
ld d, $0
ld hl, $5935
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [$d720]
ld e, a
ld d, $0
add hl, de
ld a, [hl]
call LoadOAMData2
ret
Func_259fe: ; 0x259fe
ld a, [$d795]
and a
ret z
ld de, $d79c
ld a, [de]
ld hl, hBoardXShift
sub [hl]
ld b, a
inc de
inc de
ld a, [de]
ld hl, hBoardYShift
sub [hl]
ld c, a
dec de
dec de
dec de
dec de
dec de
dec de
ld a, [de]
ld e, a
ld d, $0
ld hl, $5a29
add hl, de
ld a, [hl]
cp $ff
call nz, LoadOAMData2
ret
INCBIN "baserom.gbc",$25a29,$25a39 - $25a29
Func_25a39: ; 0x25a39
ld a, [$d64e]
and a
ret z
ld a, [$d652]
ld hl, hBoardXShift
sub [hl]
ld b, a
xor a
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d64f]
cp $a
jr c, .asm_25a58
ld de, $0000
jr .asm_25a5b
.asm_25a58
ld de, $0001
.asm_25a5b
ld hl, $5a7a
add hl, de
ld a, [hl]
call LoadOAMData2
ld hl, $d64f
inc [hl]
ld a, [hl]
cp $14
ret c
ld [hl], $0
ld hl, $d650
inc [hl]
ld a, [hl]
cp $a
ret nz
xor a
ld [$d64e], a
ret
INCBIN "baserom.gbc",$25a7a,$25a7c - $25a7a
InitSeelBonusStage: ; 0x25a7c
ld a, [$d7c1]
and a
ret nz
xor a
ld [$d4c8], a
ld [wStageCollisionState], a
ld a, $1
ld [$d7ac], a
ld a, [wBallType]
ld [wBallTypeBackup], a
xor a
ld [$d4c8], a
ld [wBallType], a
ld [$d49a], a
ld hl, $5ae5 ; todo
ld de, $d76d
call Func_25ad8
ld de, $d777
call Func_25ad8
ld de, $d781
call Func_25ad8
xor a
ld [$d793], a
ld [$d791], a
ld [$d792], a
ld [$d739], a
ld bc, $0130 ; 1 minute 30 seconds
ld [$ff8a], a
ld a, Bank(StartTimer)
ld hl, StartTimer
call BankSwitch
ld a, $11
call SetSongBank
ld de, $0003
call PlaySong
ret
Func_25ad8: ; 0x25ad8
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ret
INCBIN "baserom.gbc",$25ae5,$25af1 - $25ae5
StartBallSeelBonusStage: ; 0x25af1
ld a, $0
ld [wBallXPos], a
ld a, $a6
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $56
ld [wBallYPos + 1], a
ld a, $80
ld [wBallXVelocity], a
xor a
ld [$d7ab], a
ld [wStageCollisionState], a
ld [$d766], a
ld a, $0
ld [$d772], a
ld a, $1
ld [$d77c], a
ld a, $0
ld [$d786], a
ld a, $4
ld [$d775], a
ld [$d77f], a
ld [$d76b], a
ld a, $1
ld [$d76c], a
ld a, $4
ld [$d776], a
ld a, $1
ld [$d780], a
ld a, $5
ld [$d771], a
ld [$d77b], a
ld [$d785], a
ld a, $ff
ld [$d79a], a
xor a
ld [$d792], a
ld [$d791], a
ld [$d64e], a
ld [$d64f], a
ld [$d650], a
ld [$d651], a
ld [$d795], a
ld [$d796], a
ld [$d797], a
ld [$d798], a
ld [$d799], a
ld [$d79a], a
ld de, $d76b
ld a, [$d76c]
call Func_26137
ld de, $d775
ld a, [$d776]
call Func_26137
ld de, $d77f
ld a, [$d780]
call Func_26137
ld a, [$d4c9]
and a
ret z
xor a
ld [$d4c9], a
ret
Func_25b97: ; 0x25b97
ld [$ff8a], a
ld a, Bank(Func_142fc)
ld hl, Func_142fc
call BankSwitch
call Func_2862
ld [$ff8a], a
ld a, Bank(Func_262f4)
ld hl, Func_262f4
call BankSwitch
call Func_25d0e
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
ret
Func_25bbc: ; 0x25bbc
call Func_25bc0
ret
Func_25bc0: ; 0x25bc0
ld a, [$d76c]
cp $0
jr nz, .asm_25bd8
ld a, [$d76e]
ld b, a
ld a, [$d770]
add $14
ld c, a
call Func_25c12
ld a, $0
jr c, .asm_25c09
.asm_25bd8
ld a, [$d776]
cp $0
jr nz, .asm_25bf0
ld a, [$d778]
ld b, a
ld a, [$d77a]
add $14
ld c, a
call Func_25c12
ld a, $1
jr c, .asm_25c09
.asm_25bf0
ld a, [$d780]
cp $0
jr nz, .asm_25c08
ld a, [$d782]
ld b, a
ld a, [$d784]
add $14
ld c, a
call Func_25c12
ld a, $2
jr c, .asm_25c09
.asm_25c08
ret
.asm_25c09
ld [$d768], a
ld a, $1
ld [$d767], a
ret
Func_25c12: ; 0x25c12
ld a, [wBallXPos + 1]
sub b
cp $20
jr nc, .asm_25c58
ld b, a
ld a, [wBallYPos + 1]
sub c
cp $20
jr nc, .asm_25c58
ld c, a
ld e, c
ld d, $0
sla e
rl d
sla e
rl d
sla e
rl d
sla e
rl d
sla e
rl d
ld l, b
ld h, $0
add hl, de
ld de, $5100 ; todo
add hl, de
ld a, $3a
call ReadByteFromBank
bit 7, a
jr nz, .asm_25c58
sla a
ld [$d7ea], a
ld a, $1
ld [$d7e9], a
scf
ret
.asm_25c58
and a
ret
Func_25c5a: ; 0x25c5a
call Func_25da3
call Func_25ced
ld a, [$d793]
cp $14
jr c, .asm_25c98
ld a, [$d794]
cp $2
jr nc, .asm_25c98
ld a, $1
ld [$d498], a
ld de, $0000
call PlaySong
ld a, $1
ld [$d49a], a
call Func_30e8
call Func_30db
ld hl, $d5dc
ld de, $2fec
call Func_32aa
ld a, $2
ld [$d794], a
ld de, $4b2a
call PlaySoundEffect
.asm_25c98
ld a, [$d794]
cp $2
jr nz, .asm_25cb0
ld a, [$d800]
and a
jr nz, .asm_25cb0
ld de, $0003
call PlaySong
ld a, $5
ld [$d794], a
.asm_25cb0
ld a, [$d794]
cp $2
jr z, .asm_25cc1
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
.asm_25cc1
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $1
ld [$d7be], a
call Func_2862
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld a, $3
ld [$d791], a
ld a, [$d794]
cp $5
ret z
ld a, $1
ld [$d794], a
ret
Func_25ced: ; 0x25ced
ld a, [$d766]
and a
ret nz
ld a, [$d4b4]
cp $8a
ret nc
ld a, $1
ld [wStageCollisionState], a
ld [$d766], a
ld [$ff8a], a
ld a, Bank(LoadStageCollisionAttributes)
ld hl, LoadStageCollisionAttributes
call BankSwitch
call Func_25d0e
ret
Func_25d0e: ; 0x25d0e
ld a, [wStageCollisionState]
sla a
ld c, a
ld b, $0
ld hl, $5d2b
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_25d21
ld hl, $5d67
.asm_25d21
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $9
call Func_10aa
ret
INCBIN "baserom.gbc",$25d2b,$25da3 - $25d2b
Func_25da3: ; 0x25da3
ld a, [$d767]
and a
jp z, .asm_25e38
xor a
ld [$d767], a
ld a, [$d768]
sla a
ld c, a
sla a
sla a
add c
ld c, a
ld b, $0
ld hl, $d76c
add hl, bc
ld d, h
ld e, l
ld a, $9
ld [de], a
dec de
dec de
dec de
push bc
ld hl, $61d8
call CopyHLToDE
pop bc
ld hl, $d76e
add hl, bc
ld a, [hl]
ld [$d79c], a
ld hl, $d770
add hl, bc
ld a, [hl]
add $8
ld [$d79e], a
ld a, [$d792]
cp $9
jr nz, .asm_25df1
ld a, $0
ld [$d792], a
ld [$d79a], a
.asm_25df1
ld a, [$d792]
dec a
cp $ff
jr z, .asm_25e04
ld [$d79a], a
ld de, $d79a
call Func_261f9
jr .asm_25e07
.asm_25e04
ld [$d79a], a
.asm_25e07
ld a, $33
ld [$d803], a
ld a, $8
ld [$d804], a
ld de, $0030
call PlaySoundEffect
call Func_25e85
ld hl, $d792
inc [hl]
ld a, [$d793]
cp $14
ret nc
ld hl, $d793
inc [hl]
ld a, [$d792]
dec a
ld b, a
ld a, [hl]
add b
ld [hl], a
ld a, $1
ld [$d64e], a
call Func_262f4
.asm_25e38
ld de, $d76c ; I think these three calls are one for each Seel swimming around
call Func_25f47
ld de, $d776
call Func_25f47
ld de, $d780
call Func_25f47
ld a, [$d792]
dec a
cp $ff
jr z, .asm_25e5d
ld [$d79a], a
ld de, $d79a
call Func_26212
jr .asm_25e60
.asm_25e5d
ld [$d79a], a
.asm_25e60
ld bc, $087a ; again, probably one call for each Seel swimming around
ld de, $d76d
ld hl, $d772
call Func_25ec5
ld bc, $087a
ld de, $d777
ld hl, $d77c
call Func_25ec5
ld bc, $087a
ld de, $d781
ld hl, $d786
call Func_25ec5
ret
Func_25e85: ; 0x25e85
ld a, [$d792]
inc a
ld d, $1
ld e, a
ld a, $1
.asm_25e8e
cp e
jr z, .asm_25e96
sla d
inc a
jr .asm_25e8e
.asm_25e96
push de
ld a, d
cp $32
jr nc, .asm_25ead
ld bc, $34d6
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
pop de
dec d
jr .asm_25ebf
.asm_25ead
ld bc, $34ee
ld [$ff8a], a
ld a, Bank(Func_8576)
ld hl, Func_8576
call BankSwitch
pop de
ld a, d
sub $32
ld d, a
.asm_25ebf
ld a, d
cp $0
jr nz, .asm_25e96
ret
Func_25ec5: ; 0x25ec5
dec de
ld a, [de]
cp $1
jr z, .asm_25ece
cp $4
ret nz
.asm_25ece
inc de
push hl
ld a, [hld]
push af
push bc
ld a, [hl]
and $f
ld c, a
ld b, $0
ld hl, $5f27
add hl, bc
pop bc
pop af
and a
jr nz, .asm_25f05
ld a, [de]
add [hl]
ld [de], a
inc de
ld a, [de]
adc $0
ld [de], a
pop hl
cp c
ret c
ld a, $1
ld [hl], a
dec hl
dec hl
dec hl
dec hl
dec hl
dec hl
ld a, $7
ld [hl], a
dec hl
dec hl
dec hl
ld d, h
ld e, l
ld hl, $61c2
call CopyHLToDE
ret
.asm_25f05
ld a, [de]
sub [hl]
ld [de], a
inc de
ld a, [de]
sbc $0
ld [de], a
pop hl
cp b
ret nc
xor a
ld [hl], a
dec hl
dec hl
dec hl
dec hl
dec hl
dec hl
ld a, $8
ld [hl], a
dec hl
dec hl
dec hl
ld d, h
ld e, l
ld hl, $61cd
call CopyHLToDE
ret
INCBIN "baserom.gbc",$25f27,$25f47 - $25f27
Func_25f47: ; 0x25f47
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $614f
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
dec de
call Func_28a9
pop de
ret nc
ld a, [de]
rst $18 ; calls JumpToFuncInTable
CallTable_25f5f: ; 0x25f5f
dw Func_25f77
dw Func_25fbe
dw Func_25ff3
dw Func_2602a
dw Func_2604c
dw Func_2607f
dw Func_260b6
dw Func_260d8
dw Func_260e2
dw Func_260ec
dw Func_26109
dw Func_26120
Func_25f77: ; 0x25f77
dec de
ld a, [de]
cp $2
ret nz
push de
inc de
inc de
inc de
inc de
inc de
inc de
ld a, [de]
dec a
ld [de], a
ld a, $3
jr z, .asm_25f8f
pop de
xor a
jp Func_26137
.asm_25f8f
ld hl, $d792
ld [hl], $0
call GenRandom
bit 7, a
jr z, .asm_25fa2
inc de
ld a, $1
ld [de], a
dec de
jr .asm_25fa7
.asm_25fa2
inc de
ld a, $0
ld [de], a
dec de
.asm_25fa7
inc de
ld a, [de]
and a
jr z, .asm_25fb0
ld a, $6
jr .asm_25fb2
.asm_25fb0
ld a, $3
.asm_25fb2
push af
ld de, $0031
call PlaySoundEffect
pop af
pop de
jp Func_26137
Func_25fbe: ; 0x25fbe
dec de
ld a, [de]
cp $4
ret nz
push de
inc de
inc de
inc de
inc de
inc de
inc de
ld a, [de]
dec a
ld [de], a
jr z, .asm_25fd5
pop de
ld a, $1
jp Func_26137
.asm_25fd5
ld a, [$d791]
cp $0
jr z, .asm_25fe9
ld a, $2
ld [de], a
pop de
ld a, $4
ld [de], a
ld a, $1
jp Func_26137
ret ; unused instruction
.asm_25fe9
ld hl, $d791
inc [hl]
pop de
ld a, $2
jp Func_26137
Func_25ff3: ; 0x25ff3
dec de
ld a, [de]
cp $7
ret nz
xor a
call Func_26137
inc de
inc de
inc de
inc de
inc de
ld a, [$d792]
cp $6
jr nc, .asm_26020
cp $2
jr nc, .asm_26016
ld a, $3
ld [de], a
ld de, $0031
call PlaySoundEffect
ret
.asm_26016
ld a, $2
ld [de], a
ld de, $0031
call PlaySoundEffect
ret
.asm_26020
ld a, $1
ld [de], a
ld de, $0031
call PlaySoundEffect
ret
Func_2602a: ; 0x2602a
dec de
ld a, [de]
cp $9
ret nz
ld a, $1
call Func_26137
inc de
inc de
inc de
inc de
inc de
call GenRandom
bit 7, a
jr z, .asm_26044
ld a, $3
jr .asm_26046
.asm_26044
ld a, $5
.asm_26046
ld [de], a
ld hl, $d791
dec [hl]
ret
Func_2604c: ; 0x2604c
dec de
ld a, [de]
cp $4
ret nz
push de
inc de
inc de
inc de
inc de
inc de
inc de
ld a, [de]
dec a
ld [de], a
jr z, .asm_26063
pop de
ld a, $4
jp Func_26137
.asm_26063
ld a, [$d791]
cp $0
jr z, .asm_26075
ld a, $2
ld [de], a
pop de
ld a, $4
ld [de], a
jp Func_26137
ret ; unused instruction
.asm_26075
ld hl, $d791
inc [hl]
pop de
ld a, $5
jp Func_26137
Func_2607f: ; 0x2607f
dec de
ld a, [de]
cp $7
ret nz
xor a
call Func_26137
inc de
inc de
inc de
inc de
inc de
ld a, [$d792]
cp $6
jr nc, .asm_260ac
cp $2
jr nc, .asm_260a2
ld a, $3
ld [de], a
ld de, $0031
call PlaySoundEffect
ret
.asm_260a2
ld a, $2
ld [de], a
ld de, $0031
call PlaySoundEffect
ret
.asm_260ac
ld a, $1
ld [de], a
ld de, $0031
call PlaySoundEffect
ret
Func_260b6: ; 0x260b6
dec de
ld a, [de]
cp $9
ret nz
ld a, $4
call Func_26137
inc de
inc de
inc de
inc de
inc de
call GenRandom
bit 7, a
jr z, .asm_260d0
ld a, $3
jr .asm_260d2
.asm_260d0
ld a, $5
.asm_260d2
ld [de], a
ld hl, $d791
dec [hl]
ret
Func_260d8: ; 0x260d8
dec de
ld a, [de]
cp $5
ret nz
ld a, $4
jp Func_26137
Func_260e2: ; 0x260e2
dec de
ld a, [de]
cp $5
ret nz
ld a, $1
jp Func_26137
Func_260ec: ; 0x260ec
dec de
ld a, [de]
cp $1
ret nz
push de
inc de
inc de
inc de
inc de
inc de
inc de
inc de
ld a, [de]
and a
jr z, .asm_26103
pop de
ld a, $b
jp Func_26137
.asm_26103
pop de
ld a, $a
jp Func_26137
Func_26109: ; 0x26109
dec de
ld a, [de]
cp $7
ret nz
ld a, $1
call Func_26137
inc de
inc de
inc de
inc de
inc de
ld a, $5
ld [de], a
ld hl, $d791
dec [hl]
ret
Func_26120: ; 0x26120
dec de
ld a, [de]
cp $7
ret nz
ld a, $4
call Func_26137
inc de
inc de
inc de
inc de
inc de
ld a, $5
ld [de], a
ld hl, $d791
dec [hl]
ret
Func_26137: ; 0x26137
push af
sla a
ld c, a
ld b, $0
ld hl, $614f ; todo
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
call CopyHLToDE
pop de
inc de
pop af
ld [de], a
ret
INCBIN "baserom.gbc",$2614f,$261f9 - $2614f
Func_261f9: ; 0x261f9
ld a, $ff
ld [$d795], a
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $623a
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
dec de
dec de
dec de
call CopyHLToDE
ret
Func_26212: ; 0x26212
ld a, [de]
sla a
ld c, a
ld b, $0
ld hl, $623a
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push de
dec de
dec de
dec de
call Func_28a9
pop de
ret nc
dec de
ld a, [de]
cp $a
ret nz
xor a
ld [de], a
ld [$d79c], a
ld [$d79e], a
ld a, a
ld [$d795], a
ret
INCBIN "baserom.gbc",$2623a,$262f4 - $2623a
Func_262f4: ; 0x262f4
ld a, [$d793]
ld c, a
ld b, $0
.asm_262fa
ld a, c
and a
jr z, .asm_26306
ld a, b
add $8
ld b, a
dec c
ld a, c
jr .asm_262fa
.asm_26306
ld a, b
and a
jr z, .asm_2630c
sub $8
.asm_2630c
ld [$d652], a
ld a, [$d792]
and a
jr z, .asm_2631b
ld b, a
ld a, [$d793]
inc a
sub b
.asm_2631b
ld [$d651], a
ld a, [$d793]
cp $15
jr c, .asm_2632a
ld a, $14
ld [$d793], a
.asm_2632a
push af
xor a
ld [$d650], a
pop af
sla a
ld c, a
ld b, $0
ld hl, $634a
ld a, [hGameBoyColorFlag]
and a
jr z, .asm_26340
ld hl, $6764
.asm_26340
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $9
call Func_10aa
ret
INCBIN "baserom.gbc",$2634a,$26b7e - $2634a
Func_26b7e: ; 0x26b7e
ld bc, $7f65
ld [$ff8a], a
ld a, Bank(Func_175a4)
ld hl, Func_175a4
call BankSwitch
call Func_26bf7
ld [$ff8a], a
ld a, Bank(Func_e4a1)
ld hl, Func_e4a1
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_17e81)
ld hl, Func_17e81
call BankSwitch
call Func_26ba9
call Func_26c3c
ret
Func_26ba9: ; 0x26ba9
ld de, $d76e
call Func_26bbc
ld de, $d778
call Func_26bbc
ld de, $d782
call Func_26bbc
ret
Func_26bbc: ; 0x26bbc
ld a, [de]
ld hl, hBoardXShift
sub [hl]
ld b, a
inc de
inc de
ld a, [de]
ld hl, hBoardYShift
sub [hl]
ld c, a
dec de
dec de
dec de
dec de
dec de
dec de
ld a, [de]
ld e, a
ld d, $0
ld hl, $6bdf
add hl, de
ld a, [hl]
cp $ff
call nz, LoadOAMData2
ret
INCBIN "baserom.gbc",$26bdf,$26bf7 - $26bdf
Func_26bf7: ; 0x26bf7: ; 0x26bf7
ld a, [$d795]
cp $0
ret z
ld de, $d79c
ld a, [de]
ld hl, hBoardXShift
sub [hl]
ld b, a
inc de
inc de
ld a, [de]
ld hl, hBoardYShift
sub [hl]
ld c, a
dec de
dec de
dec de
dec de
dec de
dec de
ld a, [de]
ld e, a
ld d, $0
ld hl, $6c23
add hl, de
ld a, [hl]
cp $ff
call nz, LoadOAMData2
ret
INCBIN "baserom.gbc",$26c23,$26c3c - $26c23
Func_26c3c: ; 0x26c3c
ld a, [$d64e]
and a
ret z
ld a, [$d652]
ld hl, hBoardXShift
sub [hl]
ld b, a
xor a
ld hl, hBoardYShift
sub [hl]
ld c, a
ld a, [$d64f]
cp $a
jr c, .asm_26c5b
ld de, $0000
jr .asm_26c5e
.asm_26c5b
ld de, $0001
.asm_26c5e
ld hl, $6c7d
add hl, de
ld a, [hl]
call LoadOAMData2
ld hl, $d64f
inc [hl]
ld a, [hl]
cp $14
ret c
ld [hl], $0
ld hl, $d650
inc [hl]
ld a, [hl]
cp $a
ret nz
xor a
ld [$d64e], a
ret
INCBIN "baserom.gbc",$26c7d,$28000 - $26c7d
SECTION "banka", ROMX, BANK[$a]
HandlePokedexScreen: ; 0x28000
ld a, [wScreenState]
rst $18 ; calls JumpToFuncInTable
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 [wCurPokedexIndex], a
ld [wPokedexOffset], 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 SetSongBank
ld de, $0004
call PlaySong
call Func_588
call Func_bbe
ld hl, wScreenState
inc [hl]
ret
PointerTable_280a2: ; 0x280a2
dw Data_280a6
dw Data_280c4
Data_280a6: ; 0x280a6
dw $5800
db $2B
dw vTiles0
dw $6000
dw $5000
db $31
dw $9800
dw $1000
dw $4800
db $31
dw vBGMap1
dw $800
dw $4800
db $31
dw $9e00
dw $800
db $FF, $FF ; terminators
Data_280c4: ; 0x280c4
dw $5800
db $2B
dw vTiles0
dw $6000
dw $5000
db $31
dw $9800
dw $1000
dw $5400
db $31
dw $9800
dw $1002
dw $4800
db $31
dw vBGMap1
dw $800
dw $4800
db $31
dw $9e00
dw $800
dw $4c00
db $31
dw vBGMap1
dw $802
dw $4c00
db $31
dw $9e00
dw $802
dw $4e80
db $37
dw $0000
dw $101
db $FF, $FF ; terminators
MainPokedexScreen: ; 0x280fe
call Func_28513
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_28142
ld a, [$d95f]
and a
jp nz, .asm_28174
ld a, [wCurPokedexIndex]
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, [wCurPokedexIndex]
inc a
ld e, a
ld d, $0
call PlayCry
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 BIT_B_BUTTON, 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, [wCurPokedexIndex]
ld c, a
ld b, $0
ld hl, MonAnimatedSpriteTypes
add hl, bc
ld a, Bank(MonAnimatedSpriteTypes)
call ReadByteFromBank
ld c, a
ld a, [$ffb3]
swap a
and $7
cp $7
jr z, .asm_2830d
and $1
jr .asm_2830f
.asm_2830d
ld a, $2
.asm_2830f
add c
add $a5
ld bc, $2030
call LoadOAMData
.asm_28318
ld a, [$daa2]
sla a
ld c, a
ld b, $0
ld hl, $42b9 ; todo
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, $63
call LoadOAMData
call Func_28368
ld a, [hNewlyPressedButtons]
and $6
jr z, .asm_28367
ld a, $31
ld hl, $4800 ; todo
ld de, vBGMap1
ld bc, $0200
call LoadVRAMData
ld a, $1
ld [$ff4f], a
ld a, $31
ld hl, $4c00 ; todo
ld de, vBGMap1
ld bc, $0200
call LoadVRAMData
xor a
ld [$ff4f], a
call Func_28972
call Func_28a8a
call Func_28ad1
ld a, $1
ld [wScreenState], a
.asm_28367
ret
Func_28368: ; 0x28368
ld a, [hJoypadState]
bit BIT_A_BUTTON, a
jr nz, .asm_28371
jp Func_284bc
.asm_28371
ld a, [hPressedButtons]
ld b, a
ld a, [$daa2]
ld e, a
ld d, $0
ld hl, $da8a
add hl, de
ld a, [hl]
bit 5, b
jr z, .asm_28386
dec a
jr .asm_2838a
.asm_28386
bit 4, b
ret z
inc a
.asm_2838a
and $1f
ld [hl], a
push af
sla e
rl d
ld hl, $4289 ; todo
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
pop af
push af
swap a
and $f
call PutTileInVRAM
inc hl
pop af
and $f
call PutTileInVRAM
ld hl, $442c ; todo
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [hld]
ld c, a
ld b, $0
sla c
rl b
sla c
rl b
sla c
rl b
sla c
rl b
sla c
rl b
ld a, [hld]
or c
ld c, a
sla c
rl b
sla c
rl b
sla c
rl b
sla c
rl b
sla c
rl b
ld a, [hl]
or c
ld c, a
ld a, [$d960]
and a
jr nz, .asm_283ff
ld hl, $445c ; todo
add hl, de
ld a, [hl]
ld hl, $ff68
call PutTileInVRAM
ld hl, $ff69
ld a, c
call PutTileInVRAM
ld a, b
call PutTileInVRAM
ret
.asm_283ff
ld hl, $445c ; todo
add hl, de
ld a, [hl]
ld hl, $ff68
call PutTileInVRAM
ld hl, $ff69
ld a, c
call PutTileInVRAM
ld a, b
call PutTileInVRAM
ld hl, $448c ; todo
add hl, de
ld a, [hl]
ld hl, $ff6a
call PutTileInVRAM
ld hl, $ff6b
ld a, c
call PutTileInVRAM
ld a, b
call PutTileInVRAM
ret
INCBIN "baserom.gbc",$2842c,$284bc - $2842c
Func_284bc: ; 0x284bc
ld a, [hPressedButtons]
ld b, a
ld a, [$daa2]
bit 5, b
jr z, .asm_284cd
dec a
bit 7, a
jr nz, .asm_284ef
jr .asm_284f5
.asm_284cd
bit 4, b
jr z, .asm_284d8
inc a
cp $18
jr nc, .asm_284f3
jr .asm_284f5
.asm_284d8
bit 6, b
jr z, .asm_284e4
sub $3
bit 7, a
jr nz, .asm_284ef
jr .asm_284f5
.asm_284e4
bit 7, b
ret z
add $3
cp $18
jr nc, .asm_284f3
jr .asm_284f5
.asm_284ef
add $18
jr .asm_284f5
.asm_284f3
sub $18
.asm_284f5
ld [$daa2], a
ret
ExitPokedexScreen: ; 0x284f9
call Func_cb5
call Func_576
ld hl, $ff9f
res 6, [hl]
ld hl, $ffff
res 1, [hl]
ld a, SCREEN_TITLESCREEN
ld [wCurrentScreen], a
xor a
ld [wScreenState], a
ret
Func_28513: ; 0x28513
ld a, [hPressedButtons]
ld hl, $d95e
or [hl]
ld [hl], a
ld a, [$d95c]
and a
ret nz
ld a, [$d95e]
ld b, a
ld a, [$d9f8]
and a
ld a, NUM_POKEMON - 1
jr z, .asm_2852d
ld a, NUM_POKEMON
.asm_2852d
ld d, a
ld a, [wCurPokedexIndex]
bit 6, b
jr z, .asm_28548
and a
jr z, .asm_285a9
dec a
ld [wCurPokedexIndex], 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 [wCurPokedexIndex], 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, [wPokedexOffset]
ld c, $5
bit 5, b
jr z, .asm_28586
cp $5
jr nc, .asm_28571
ld c, a
.asm_28571
sub c
ld [wPokedexOffset], a
ld a, [wCurPokedexIndex]
sub c
ld [wCurPokedexIndex], 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 [wPokedexOffset], a
ld a, [wCurPokedexIndex]
add c
ld [wCurPokedexIndex], 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, [wCurPokedexIndex]
ld c, a
ld b, $0
ld hl, wPokedexFlags
add hl, bc
bit 1, [hl] ; has pokemon been seen or captured?
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, [wCurPokedexIndex]
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, [wCurPokedexIndex]
ld hl, wPokedexOffset
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, PointerTable_2867f
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
PointerTable_2867f: ; 0x2867f
dw Func_286dd
dw Func_28721
dw Func_286dd
dw Func_28765
INCBIN "baserom.gbc",$28687,$2868b - $28687
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
Func_286dd: ; 0x286dd
pop hl
ld a, [$d862]
and a
jr nz, .asm_286ff
push bc
push hl
ld a, [$d863]
ld e, a
ld a, [$d864]
ld d, a
ld hl, $c010
xor a
ld bc, $00a0
call Func_735
ld a, $1
ld [$d862], a
pop hl
pop bc
.asm_286ff
ld a, [$d95d]
and a
ret z
ld a, [$d95c]
and a
jr nz, .asm_2870d
ld [$d95d], a
.asm_2870d
ld a, c
and a
jr nz, .asm_28719
ld hl, $ffab
dec [hl]
dec [hl]
dec [hl]
dec [hl]
ret
.asm_28719
ld hl, $ffab
inc [hl]
inc [hl]
inc [hl]
inc [hl]
ret
Func_28721: ; 0x28721
pop hl
ld a, [$d95d]
and a
ret z
ld a, c
and a
jr nz, .asm_28747
ld a, [hl]
push af
sla a
and $1e
ld c, a
ld b, $0
ld hl, $47c7
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
pop af
call Func_28aaa
ld hl, $ffab
dec [hl]
dec [hl]
dec [hl]
dec [hl]
ret
.asm_28747
ld a, [hl]
add $5
push af
sla a
and $1e
ld c, a
ld b, $0
ld hl, $47c7
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
pop af
call Func_28aaa
ld hl, $ffab
inc [hl]
inc [hl]
inc [hl]
inc [hl]
ret
Func_28765: ; 0x28765
pop hl
ld a, [$d95d]
and a
ret z
ld a, c
and a
jr nz, .asm_28791
push hl
ld a, [hl]
sla a
and $e
ld c, a
ld b, $0
ld hl, $47b7
add hl, bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld hl, $ffab
dec [hl]
dec [hl]
dec [hl]
dec [hl]
pop hl
xor a
ld [$d862], a
ld a, [hl]
call Func_28993
ret
.asm_28791
push hl
ld a, [hl]
add $5
sla a
and $e
ld c, a
ld b, $0
ld hl, $47b7
add hl, bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld hl, $ffab
inc [hl]
inc [hl]
inc [hl]
inc [hl]
pop hl
xor a
ld [$d862], a
ld a, [hl]
add $5
call Func_28993
ret
INCBIN "baserom.gbc",$287b7,$287e7 - $287b7
Func_287e7: ; 0x287e7
ld a, [$d960]
and a
ret z
ld a, [$d95f]
and a
ret nz
ld a, [wCurPokedexIndex]
ld c, a
ld b, $0
ld hl, MonAnimatedSpriteTypes
add hl, bc
ld a, Bank(MonAnimatedSpriteTypes)
call ReadByteFromBank
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, [wCurPokedexIndex]
ld c, a
ld b, $0
ld hl, wPokedexFlags
add hl, bc
bit 1, [hl]
call nz, Func_287e7
ld bc, $8888
ld a, $66
call LoadOAMData
ld bc, $6800
ld a, $6a
call LoadOAMData
ret
Func_2887c: ; 0x2887c
ld a, $31
ld hl, $5120 ; todo
ld de, $9900
ld bc, $0100
call LoadVRAMData
ld a, $3f
ld [$ffa2], a
ld a, $47
ld [$ffa9], a
ld b, $33
.asm_28894
push bc
ld a, $7a
sub b
ld [$ffa9], a
rst $10
pop bc
dec b
dec b
dec b
jr nz, .asm_28894
ret
Func_288a2: ; 0x288a2
ld b, $33
.asm_288a4
push bc
ld a, $44
add b
ld [$ffa9], a
rst $10
pop bc
dec b
dec b
dec b
jr nz, .asm_288a4
ld a, $3b
ld [$ffa2], a
ld [$ffa9], a
ld a, $31
ld hl, $5100 ; todo
ld de, $9900
ld bc, $0020
call LoadVRAMData
ret
Func_288c6: ; 0x288c6
ld a, [wCurPokedexIndex]
ld c, a
ld b, $0
ld hl, wPokedexFlags
add hl, bc
bit 1, [hl]
ld hl, $4000
jr z, .asm_288f4
ld a, [wCurPokedexIndex]
ld c, a
ld b, $0
sla c
rl b
ld hl, $4002 ; todo
add hl, bc
ld a, $b
call ReadByteFromBank
inc hl
ld c, a
ld a, $b
call ReadByteFromBank
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, [wCurPokedexIndex]
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, [wCurPokedexIndex]
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, [wPokedexOffset]
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, [wCurPokedexIndex]
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, [wCurPokedexIndex]
ld c, a
ld b, $0
ld hl, MonDexTypeIDs
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 ; value * 11
sla l
rl h
add hl, bc ; value * 23
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, [wCurPokedexIndex]
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, [wCurPokedexIndex]
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, [wPokedexOffset]
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, [wPokedexOffset]
swap a
and $f0
sub $3c
ld [$ffab], a
ret
Func_28add: ; 0x28add
ld a, [wCurPokedexIndex]
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, [wCurPokedexIndex]
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, MonBillboardPicPointers
add hl, bc
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
inc hl
ld c, a
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
inc hl
ld b, a
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
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, MonBillboardPaletteMapPointers ; todo
add hl, bc
ld a, Bank(MonBillboardPaletteMapPointers)
call ReadByteFromBank
inc hl
ld e, a
ld a, Bank(MonBillboardPaletteMapPointers)
call ReadByteFromBank
inc hl
ld d, a
ld a, Bank(MonBillboardPaletteMapPointers)
call ReadByteFromBank
ld hl, $9861
call Func_86f
pop bc
ld hl, MonBillboardPalettePointers
add hl, bc
ld a, Bank(MonBillboardPalettePointers)
call ReadByteFromBank
inc hl
ld e, a
ld a, Bank(MonBillboardPalettePointers)
call ReadByteFromBank
inc hl
ld d, a
ld a, Bank(MonBillboardPalettePointers)
call ReadByteFromBank
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, [wCurPokedexIndex]
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, MonBillboardPicPointers
add hl, bc
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
inc hl
ld c, a
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
inc hl
ld b, a
ld a, Bank(MonBillboardPicPointers)
call ReadByteFromBank
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, [wCurPokedexIndex]
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, MonAnimatedPicPointers
add hl, bc
ld a, Bank(MonAnimatedPicPointers)
call ReadByteFromBank
inc hl
ld c, a
ld a, Bank(MonAnimatedPicPointers)
call ReadByteFromBank
inc hl
ld b, a
ld a, Bank(MonAnimatedPicPointers)
call ReadByteFromBank
ld h, b
ld l, c
ld de, vTiles0
ld bc, $0300
call Func_735
xor a
ld [$ff4f], a
pop bc
push bc
ld a, [wCurPokedexIndex]
ld c, a
ld b, $0
ld hl, $561d ; todo
add hl, bc
ld a, $4
call ReadByteFromBank
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, Data_13685
add hl, bc
ld a, Bank(Data_13685)
call ReadByteFromBank
ld [$d5c1], a
ld [$d5be], a
inc hl
ld a, Bank(Data_13685)
call ReadByteFromBank
ld [$d5c2], a
inc hl
ld a, Bank(Data_13685)
call ReadByteFromBank
ld [$d5c3], a
ld a, [wCurPokedexIndex]
ld c, a
ld b, $0
ld hl, MonAnimatedSpriteTypes
add hl, bc
ld a, Bank(MonAnimatedSpriteTypes)
call ReadByteFromBank
ld [$d5bc], a
ld [$d5bd], a
call Func_28cf8
pop bc
ld a, [hGameBoyColorFlag]
and a
ret z
ld hl, MonAnimatedPalettePointers
add hl, bc
ld a, Bank(MonAnimatedPalettePointers)
call ReadByteFromBank
inc hl
ld e, a
ld a, Bank(MonAnimatedPalettePointers)
call ReadByteFromBank
inc hl
ld d, a
ld a, Bank(MonAnimatedPalettePointers)
call ReadByteFromBank
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, [wCurPokedexIndex]
ld c, a
ld b, $0
ld hl, MonAnimatedSpriteTypes
add hl, bc
ld a, Bank(MonAnimatedSpriteTypes)
call ReadByteFromBank
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
ClearPokedexData: ; 0x28d66
ld hl, wPokedexFlags
xor a
ld b, NUM_POKEMON
.asm_28d6c
ld [hli], a
dec b
jr nz, .asm_28d6c
ret
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, CharacterWidths
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, CharacterWidths
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 ReadByteFromBank
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,$29792 - $2962f
CharacterWidths: ; 0x29792
; The Pokedex shows variable-width font. This list specifies the width of every letter (tile?)
db $05
db $07
db $07
db $07
db $07
db $07
db $07
db $05
db $07
db $07
db $07
db $07
db $07
db $07
db $06
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $08 ; "A"
db $07 ; "B"
db $07 ; "C"
db $07 ; "D"
db $07 ; "E"
db $07 ; "F"
db $07 ; "G"
db $07 ; "H"
db $05 ; "I"
db $08 ; "J"
db $07 ; "K"
db $07 ; "L"
db $08 ; "M"
db $07 ; "N"
db $07 ; "O"
db $07 ; "P"
db $08 ; "Q"
db $07 ; "R"
db $07 ; "S"
db $08 ; "T"
db $07 ; "U"
db $08 ; "V"
db $08 ; "W"
db $08 ; "X"
db $08 ; "Y"
db $08 ; "Z"
db $07
db $08
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $08
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $05
db $08
db $07
db $07
db $08
db $07
db $07
db $07
db $08
db $07
db $07
db $08
db $07
db $08
db $08
db $08
db $08
db $08
db $07 ; "a"
db $07 ; "b"
db $07 ; "c"
db $07 ; "d"
db $07 ; "e"
db $07 ; "f"
db $07 ; "g"
db $07 ; "h"
db $03 ; "i"
db $07 ; "j"
db $07 ; "k"
db $03 ; "l"
db $08 ; "m"
db $07 ; "n"
db $07 ; "o"
db $07 ; "p"
db $07 ; "q"
db $07 ; "r"
db $07 ; "s"
db $07 ; "t"
db $07 ; "u"
db $07 ; "v"
db $08 ; "w"
db $07 ; "x"
db $07 ; "y"
db $07 ; "z"
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $07
db $03
db $07
db $05
db $05
db $05
db $05
db $05
db $07
db $07
db $07
db $07
db $05
db $07
db $07
db $07
db $07
db $07
INCBIN "baserom.gbc",$29892,$29f0f - $29892
MonDexTypeIDs: ; 0x29f0f
db $00
db $00
db $00
db $01
db $02
db $02
db $03
db $04
db $05
db $06
db $07
db $08
db $09
db $07
db $0A
db $0B
db $0C
db $0C
db $60
db $60
db $0B
db $0E
db $0F
db $10
db $0D
db $0D
db $0D
db $0D
db $11
db $11
db $12
db $11
db $11
db $12
db $13
db $13
db $14
db $14
db $15
db $15
db $16
db $16
db $17
db $17
db $18
db $19
db $19
db $1A
db $1B
db $1C
db $1C
db $1D
db $1E
db $1F
db $1F
db $20
db $20
db $21
db $22
db $23
db $23
db $23
db $24
db $24
db $24
db $25
db $25
db $25
db $18
db $26
db $26
db $27
db $27
db $28
db $28
db $29
db $2A
db $2A
db $2B
db $2C
db $2D
db $2D
db $2E
db $2F
db $30
db $31
db $31
db $32
db $32
db $33
db $33
db $34
db $34
db $35
db $36
db $37
db $37
db $38
db $39
db $3A
db $3A
db $3B
db $3C
db $3D
db $3E
db $3F
db $40
db $41
db $42
db $42
db $43
db $12
db $3B
db $44
db $45
db $46
db $46
db $47
db $47
db $48
db $49
db $4A
db $4B
db $4C
db $4D
db $4E
db $4F
db $50
db $51
db $52
db $53
db $54
db $55
db $56
db $57
db $58
db $59
db $5A
db $5A
db $05
db $05
db $5B
db $5C
db $5D
db $4D
db $02
db $46
db $46
db $46
db $5E
db $5F
INCBIN "baserom.gbc",$29fa6,$2c000 - $29fa6
SECTION "bankb", ROMX, BANK[$b]
Unknown_2c000: ; 0x2c000
db $20, $00
PokedexDescriptionPointers: ; 0x2c002
dw BulbasaurPokedexDescription
dw IvysaurPokedexDescription
dw VenusaurPokedexDescription
dw CharmanderPokedexDescription
dw CharmeleonPokedexDescription
dw CharizardPokedexDescription
dw SquirtlePokedexDescription
dw WartortlePokedexDescription
dw BlastoisePokedexDescription
dw CaterpiePokedexDescription
dw MetapodPokedexDescription
dw ButterfreePokedexDescription
dw WeedlePokedexDescription
dw KakunaPokedexDescription
dw BeedrillPokedexDescription
dw PidgeyPokedexDescription
dw PidgeottoPokedexDescription
dw PidgeotPokedexDescription
dw RattataPokedexDescription
dw RaticatePokedexDescription
dw SpearowPokedexDescription
dw FearowPokedexDescription
dw EkansPokedexDescription
dw ArbokPokedexDescription
dw PikachuPokedexDescription
dw RaichuPokedexDescription
dw SandshrewPokedexDescription
dw SandslashPokedexDescription
dw NidoranFPokedexDescription
dw NidorinaPokedexDescription
dw NidoqueenPokedexDescription
dw NidoranMPokedexDescription
dw NidorinoPokedexDescription
dw NidokingPokedexDescription
dw ClefairyPokedexDescription
dw ClefablePokedexDescription
dw VulpixPokedexDescription
dw NinetalesPokedexDescription
dw JigglypuffPokedexDescription
dw WigglytuffPokedexDescription
dw ZubatPokedexDescription
dw GolbatPokedexDescription
dw OddishPokedexDescription
dw GloomPokedexDescription
dw VileplumePokedexDescription
dw ParasPokedexDescription
dw ParasectPokedexDescription
dw VenonatPokedexDescription
dw VenomothPokedexDescription
dw DiglettPokedexDescription
dw DugtrioPokedexDescription
dw MeowthPokedexDescription
dw PersianPokedexDescription
dw PsyduckPokedexDescription
dw GolduckPokedexDescription
dw MankeyPokedexDescription
dw PrimeapePokedexDescription
dw GrowlithePokedexDescription
dw ArcaninePokedexDescription
dw PoliwagPokedexDescription
dw PoliwhirlPokedexDescription
dw PoliwrathPokedexDescription
dw AbraPokedexDescription
dw KadabraPokedexDescription
dw AlakazamPokedexDescription
dw MachopPokedexDescription
dw MachokePokedexDescription
dw MachampPokedexDescription
dw BellsproutPokedexDescription
dw WeepinbellPokedexDescription
dw VictreebellPokedexDescription
dw TentacoolPokedexDescription
dw TentacruelPokedexDescription
dw GeodudePokedexDescription
dw GravelerPokedexDescription
dw GolemPokedexDescription
dw PonytaPokedexDescription
dw RapidashPokedexDescription
dw SlowpokePokedexDescription
dw SlowbroPokedexDescription
dw MagnemitePokedexDescription
dw MagnetonPokedexDescription
dw FarfetchdPokedexDescription
dw DoduoPokedexDescription
dw DodrioPokedexDescription
dw SeelPokedexDescription
dw DewgongPokedexDescription
dw GrimerPokedexDescription
dw MukPokedexDescription
dw ShellderPokedexDescription
dw CloysterPokedexDescription
dw GastlyPokedexDescription
dw HaunterPokedexDescription
dw GengarPokedexDescription
dw OnixPokedexDescription
dw DrowzeePokedexDescription
dw HypnoPokedexDescription
dw KrabbyPokedexDescription
dw KinglerPokedexDescription
dw VoltorbPokedexDescription
dw ElectrodePokedexDescription
dw ExeggcutePokedexDescription
dw ExeggutorPokedexDescription
dw CubonePokedexDescription
dw MarowakPokedexDescription
dw HitmonleePokedexDescription
dw HitmonchanPokedexDescription
dw LickitungPokedexDescription
dw KoffingPokedexDescription
dw WeezingPokedexDescription
dw RhyhornPokedexDescription
dw RhydonPokedexDescription
dw ChanseyPokedexDescription
dw TangelaPokedexDescription
dw KangaskhanPokedexDescription
dw HorseaPokedexDescription
dw SeadraPokedexDescription
dw GoldeenPokedexDescription
dw SeakingPokedexDescription
dw StaryuPokedexDescription
dw StarmiePokedexDescription
dw MrMimePokedexDescription
dw ScytherPokedexDescription
dw JynxPokedexDescription
dw ElectabuzzPokedexDescription
dw MagmarPokedexDescription
dw PinsirPokedexDescription
dw TaurosPokedexDescription
dw MagikarpPokedexDescription
dw GyaradosPokedexDescription
dw LaprasPokedexDescription
dw DittoPokedexDescription
dw EeveePokedexDescription
dw VaporeonPokedexDescription
dw JolteonPokedexDescription
dw FlareonPokedexDescription
dw PorygonPokedexDescription
dw OmanytePokedexDescription
dw OmastarPokedexDescription
dw KabutoPokedexDescription
dw KabutopsPokedexDescription
dw AerodactylPokedexDescription
dw SnorlaxPokedexDescription
dw ArticunoPokedexDescription
dw ZapdosPokedexDescription
dw MoltresPokedexDescription
dw DratiniPokedexDescription
dw DragonairPokedexDescription
dw DragonitePokedexDescription
dw MewtwoPokedexDescription
dw MewPokedexDescription
RhydonPokedexDescription: ; 0x2c130
dex_text "Protected by an"
dex_line "armor-like hide,"
dex_line "it is capable of"
dex_line "living in molten"
dex_line "lava of 3,600"
dex_line "degrees."
dex_end
KangaskhanPokedexDescription: ; 0x2c18a
dex_text "The infant rarely"
dex_line "ventures out of"
dex_line "its mother`s"
dex_line "protective pouch"
dex_line "until it is 3"
dex_line "years old."
dex_end
NidoranMPokedexDescription: ; 0x2c1e3
dex_text "Stiffens its ears"
dex_line "to sense danger."
dex_line "The larger its"
dex_line "horns, the more"
dex_line "powerful its"
dex_line "secreted venom."
dex_end
ClefairyPokedexDescription: ; 0x2c242
dex_text "Its magical and"
dex_line "cute appeal has"
dex_line "many admirers."
dex_line "It is rare and"
dex_line "found only in"
dex_line "certain areas."
dex_end
SpearowPokedexDescription: ; 0x2c29d
dex_text "Eats bugs in"
dex_line "grassy areas. It"
dex_line "has to flap its"
dex_line "short wings at"
dex_line "high speed to"
dex_line "stay airborne."
dex_end
VoltorbPokedexDescription: ; 0x2c2f7
dex_text "Usually found in"
dex_line "power plants."
dex_line "Easily mistaken"
dex_line "for a POKé BALL,"
dex_line "they have zapped"
dex_line "many people."
dex_end
NidokingPokedexDescription: ; 0x2c355
dex_text "It uses its"
dex_line "powerful tail in"
dex_line "battle to smash,"
dex_line "constrict, then"
dex_line "break the prey`s"
dex_line "bones."
dex_end
SlowbroPokedexDescription: ; 0x2c3ab
dex_text "The SHELLDER that"
dex_line "is latched onto"
dex_line "SLOWPOKE`s tail"
dex_line "is said to feed"
dex_line "on the host`s left"
dex_line "over scraps."
dex_end
IvysaurPokedexDescription: ; 0x2c40d
dex_text "When the bulb on"
dex_line "its back grows"
dex_line "large, it appears"
dex_line "to lose the"
dex_line "ability to stand"
dex_line "on its hind legs."
dex_end
ExeggutorPokedexDescription: ; 0x2c46e
dex_text "Legend has it that"
dex_line "on rare occasions,"
dex_line "one of its heads"
dex_line "will drop off and"
dex_line "continue on as an"
dex_line "EXEGGCUTE."
dex_end
LickitungPokedexDescription: ; 0x2c4d4
dex_text "Its tongue can be"
dex_line "extended like a"
dex_line "chameleon`s. It"
dex_line "leaves a tingling"
dex_line "sensation when it"
dex_line "licks enemies."
dex_end
ExeggcutePokedexDescription: ; 0x2c539
dex_text "Often mistaken"
dex_line "for eggs."
dex_line "When disturbed,"
dex_line "they quickly"
dex_line "gather and attack"
dex_line "in swarms."
dex_end
GrimerPokedexDescription: ; 0x2c58c
dex_text "Appears in filthy"
dex_line "areas. Thrives by"
dex_line "sucking up"
dex_line "polluted sludge"
dex_line "that is pumped"
dex_line "out of factories."
dex_end
GengarPokedexDescription: ; 0x2c5ec
dex_text "Under a full moon,"
dex_line "this POKéMON"
dex_line "likes to mimic"
dex_line "the shadows of"
dex_line "people and laugh"
dex_line "at their fright."
dex_end
NidoranFPokedexDescription: ; 0x2c64c
dex_text "Although small,"
dex_line "its venomous"
dex_line "barbs render this"
dex_line "POKéMON dangerous."
dex_line "The female has"
dex_line "smaller horns."
dex_end
NidoqueenPokedexDescription: ; 0x2c6ac
dex_text "Its hard scales"
dex_line "provide strong"
dex_line "protection. It"
dex_line "uses its hefty"
dex_line "bulk to execute"
dex_line "powerful moves."
dex_end
CubonePokedexDescription: ; 0x2c709
dex_text "Because it never"
dex_line "removes its skull"
dex_line "helmet, no one"
dex_line "has ever seen"
dex_line "this POKéMON`s"
dex_line "real face."
dex_end
RhyhornPokedexDescription: ; 0x2c763
dex_text "Its massive bones"
dex_line "are 1000 times"
dex_line "harder than human"
dex_line "bones. It can"
dex_line "easily knock a"
dex_line "trailer flying."
dex_end
LaprasPokedexDescription: ; 0x2c7c3
dex_text "A POKéMON that"
dex_line "has been over-"
dex_line "hunted almost to"
dex_line "extinction. It"
dex_line "can ferry people"
dex_line "across the water."
dex_end
ArcaninePokedexDescription: ; 0x2c824
dex_text "A POKéMON that"
dex_line "has been admired"
dex_line "since the past"
dex_line "for its beauty."
dex_line "It runs agilely"
dex_line "as if on wings."
dex_end
MewPokedexDescription: ; 0x2c883
dex_text "So rare that it"
dex_line "is still said to"
dex_line "be a mirage by"
dex_line "many experts. Only"
dex_line "a few people have"
dex_line "seen it worldwide. "
dex_end
GyaradosPokedexDescription: ; 0x2c8ec
dex_text "Rarely seen in"
dex_line "the wild. Huge"
dex_line "and vicious, it"
dex_line "is capable of"
dex_line "destroying entire"
dex_line "cities in a rage."
dex_end
ShellderPokedexDescription: ; 0x2c94c
dex_text "Its hard shell"
dex_line "repels any kind"
dex_line "of attack."
dex_line "It is vulnerable"
dex_line "only when its"
dex_line "shell is open."
dex_end
TentacoolPokedexDescription: ; 0x2c9a4
dex_text "Drifts in shallow"
dex_line "seas. Anglers who"
dex_line "hook them by"
dex_line "accident are"
dex_line "often punished by"
dex_line "its stinging acid."
dex_end
GastlyPokedexDescription: ; 0x2ca07
dex_text "Almost invisible,"
dex_line "this gaseous"
dex_line "POKéMON cloaks"
dex_line "the target and"
dex_line "puts it to sleep"
dex_line "without notice."
dex_end
ScytherPokedexDescription: ; 0x2ca65
dex_text "With ninja-like"
dex_line "agility and speed,"
dex_line "it can create the"
dex_line "illusion that"
dex_line "there is more"
dex_line "than one."
dex_end
StaryuPokedexDescription: ; 0x2cac0
dex_text "An enigmatic"
dex_line "POKéMON that can"
dex_line "effortlessly"
dex_line "regenerate any"
dex_line "appendage it"
dex_line "loses in battle."
dex_end
BlastoisePokedexDescription: ; 0x2cb18
dex_text "A brutal POKéMON"
dex_line "with pressurized"
dex_line "water jets on its"
dex_line "shell. They are"
dex_line "used for high"
dex_line "speed tackles."
dex_end
PinsirPokedexDescription: ; 0x2cb79
dex_text "If it fails to"
dex_line "crush the victim"
dex_line "in its pincers,"
dex_line "it will swing it"
dex_line "around and toss"
dex_line "it hard."
dex_end
TangelaPokedexDescription: ; 0x2cbd3
dex_text "The whole body is"
dex_line "swathed with wide"
dex_line "vines that are"
dex_line "similar to sea-"
dex_line "weed. Its vines"
dex_line "shake as it walks."
dex_end
GrowlithePokedexDescription: ; 0x2cc39
dex_text "Very protective"
dex_line "of its territory."
dex_line "It will bark and"
dex_line "bite to repel"
dex_line "intruders from"
dex_line "its space."
dex_end
OnixPokedexDescription: ; 0x2cc94
dex_text "As it grows, the"
dex_line "stone portions of"
dex_line "its body harden"
dex_line "to become similar"
dex_line "to a diamond, but"
dex_line "colored black."
dex_end
FearowPokedexDescription: ; 0x2ccfa
dex_text "With its huge and"
dex_line "magnificent wings,"
dex_line "it can keep aloft"
dex_line "without ever"
dex_line "having to land"
dex_line "for rest."
dex_end
PidgeyPokedexDescription: ; 0x2cd57
dex_text "A common sight in"
dex_line "forests and woods."
dex_line "It flaps its"
dex_line "wings at ground"
dex_line "level to kick up"
dex_line "blinding sand."
dex_end
SlowpokePokedexDescription: ; 0x2cdb9
dex_text "Incredibly slow"
dex_line "and dopey. It"
dex_line "takes 5 seconds"
dex_line "for it to feel"
dex_line "pain when under"
dex_line "attack."
dex_end
KadabraPokedexDescription: ; 0x2ce0e
dex_text "It emits special"
dex_line "alpha waves from"
dex_line "its body that"
dex_line "induce headaches"
dex_line "just by being"
dex_line "close by."
dex_end
GravelerPokedexDescription: ; 0x2ce67
dex_text "Rolls down slopes"
dex_line "to move. It rolls"
dex_line "over any obstacle"
dex_line "without slowing"
dex_line "or changing its"
dex_line "direction."
dex_end
ChanseyPokedexDescription: ; 0x2cec8
dex_text "A rare and elusive"
dex_line "POKéMON that is"
dex_line "said to bring"
dex_line "happiness to those"
dex_line "who manage to get"
dex_line "it."
dex_end
MachokePokedexDescription: ; 0x2cf22
dex_text "Its muscular body"
dex_line "is so powerful, it"
dex_line "must wear a power"
dex_line "save belt to be"
dex_line "able to regulate"
dex_line "its motions."
dex_end
MrMimePokedexDescription: ; 0x2cf87
dex_text "If interrupted"
dex_line "while it is"
dex_line "miming, it will"
dex_line "slap around the"
dex_line "offender with its"
dex_line "broad hands."
dex_end
HitmonleePokedexDescription: ; 0x2cfe1
dex_text "When in a hurry,"
dex_line "its legs lengthen"
dex_line "progressively."
dex_line "It runs smoothly"
dex_line "with extra long,"
dex_line "loping strides."
dex_end
HitmonchanPokedexDescription: ; 0x2d045
dex_text "While apparently"
dex_line "doing nothing, it"
dex_line "fires punches in"
dex_line "lightning fast"
dex_line "volleys that are"
dex_line "impossible to see. "
dex_end
ArbokPokedexDescription: ; 0x2d0ad
dex_text "It is rumored that"
dex_line "the ferocious"
dex_line "warning markings"
dex_line "on its belly"
dex_line "differ from area"
dex_line "to area."
dex_end
ParasectPokedexDescription: ; 0x2d106
dex_text "A host-parasite"
dex_line "pair in which the"
dex_line "parasite mushroom"
dex_line "has taken over the"
dex_line "host bug. Prefers"
dex_line "damp places. "
dex_end
PsyduckPokedexDescription: ; 0x2d16d
dex_text "While lulling its"
dex_line "enemies with its"
dex_line "vacant look, this"
dex_line "wily POKéMON will"
dex_line "use psychokinetic"
dex_line "powers."
dex_end
DrowzeePokedexDescription: ; 0x2d1ce
dex_text "Puts enemies to"
dex_line "sleep then eats"
dex_line "their dreams."
dex_line "Occasionally gets"
dex_line "sick from eating"
dex_line "bad dreams."
dex_end
GolemPokedexDescription: ; 0x2d22b
dex_text "Its boulder-like"
dex_line "body is extremely"
dex_line "hard. It can"
dex_line "easily withstand"
dex_line "dynamite blasts"
dex_line "without damage."
dex_end
MagmarPokedexDescription: ; 0x2d28c
dex_text "Its body always"
dex_line "burns with an"
dex_line "orange glow that"
dex_line "enables it to"
dex_line "hide perfectly"
dex_line "among flames."
dex_end
ElectabuzzPokedexDescription: ; 0x2d2e6
dex_text "Normally found"
dex_line "near power plants,"
dex_line "they can wander"
dex_line "away and cause"
dex_line "major blackouts"
dex_line "in cities."
dex_end
MagnetonPokedexDescription: ; 0x2d342
dex_text "Formed by several"
dex_line "MAGNEMITEs linked"
dex_line "together. They"
dex_line "frequently appear"
dex_line "when sunspots"
dex_line "flare up."
dex_end
KoffingPokedexDescription: ; 0x2d39f
dex_text "Because it stores"
dex_line "several kinds of"
dex_line "toxic gases in"
dex_line "its body, it is"
dex_line "prone to exploding"
dex_line "without warning."
dex_end
MankeyPokedexDescription: ; 0x2d405
dex_text "Extremely quick to"
dex_line "anger. It could"
dex_line "be docile one"
dex_line "moment then"
dex_line "thrashing away"
dex_line "the next instant."
dex_end
SeelPokedexDescription: ; 0x2d463
dex_text "The protruding"
dex_line "horn on its head"
dex_line "is very hard."
dex_line "It is used for"
dex_line "bashing through"
dex_line "thick ice."
dex_end
DiglettPokedexDescription: ; 0x2d4bb
dex_text "Lives about one"
dex_line "yard underground"
dex_line "where it feeds on"
dex_line "plant roots. It"
dex_line "sometimes appears"
dex_line "above ground."
dex_end
TaurosPokedexDescription: ; 0x2d51e
dex_text "When it targets"
dex_line "an enemy, it"
dex_line "charges furiously"
dex_line "while whipping its"
dex_line "body with its"
dex_line "long tails."
dex_end
FarfetchdPokedexDescription: ; 0x2d57a
dex_text "The sprig of"
dex_line "green onions it"
dex_line "holds is its"
dex_line "weapon. It is"
dex_line "used much like a"
dex_line "metal sword."
dex_end
VenonatPokedexDescription: ; 0x2d5d0
dex_text "Lives in the"
dex_line "shadows of tall"
dex_line "trees where it"
dex_line "eats insects. It"
dex_line "is attracted by"
dex_line "light at night."
dex_end
DragonitePokedexDescription: ; 0x2d62d
dex_text "An extremely"
dex_line "rarely seen"
dex_line "marine POKéMON."
dex_line "Its intelligence"
dex_line "is said to match"
dex_line "that of humans."
dex_end
DoduoPokedexDescription: ; 0x2d688
dex_text "A bird that makes"
dex_line "up for its poor"
dex_line "flying with its"
dex_line "fast foot speed."
dex_line "Leaves giant"
dex_line "footprints."
dex_end
PoliwagPokedexDescription: ; 0x2d6e4
dex_text "Its newly grown"
dex_line "legs prevent it"
dex_line "from running. It"
dex_line "appears to prefer"
dex_line "swimming than"
dex_line "trying to stand."
dex_end
JynxPokedexDescription: ; 0x2d746
dex_text "It seductively"
dex_line "wiggles its hips"
dex_line "as it walks. It"
dex_line "can cause people"
dex_line "to dance in"
dex_line "unison with it."
dex_end
MoltresPokedexDescription: ; 0x2d7a3
dex_text "Known as the"
dex_line "legendary bird of"
dex_line "fire. Every flap"
dex_line "of its wings"
dex_line "creates a dazzling"
dex_line "flash of flames."
dex_end
ArticunoPokedexDescription: ; 0x2d804
dex_text "A legendary bird"
dex_line "POKéMON that is"
dex_line "said to appear to"
dex_line "doomed people who"
dex_line "are lost in icy"
dex_line "mountains."
dex_end
ZapdosPokedexDescription: ; 0x2d864
dex_text "A legendary bird"
dex_line "POKéMON that is"
dex_line "said to appear"
dex_line "from clouds while"
dex_line "dropping enormous"
dex_line "lightning bolts."
dex_end
DittoPokedexDescription: ; 0x2d8c9
dex_text "Capable of copying"
dex_line "an enemy`s genetic"
dex_line "code to instantly"
dex_line "transform itself"
dex_line "into a duplicate"
dex_line "of the enemy."
dex_end
MeowthPokedexDescription: ; 0x2d931
dex_text "Adores circular"
dex_line "objects. Wanders"
dex_line "the streets on a"
dex_line "nightly basis to"
dex_line "look for dropped"
dex_line "loose change."
dex_end
KrabbyPokedexDescription: ; 0x2d993
dex_text "Its pincers are"
dex_line "not only powerful"
dex_line "weapons, they are"
dex_line "used for balance"
dex_line "when walking"
dex_line "sideways."
dex_end
VulpixPokedexDescription: ; 0x2d9ef
dex_text "At the time of"
dex_line "birth, it has"
dex_line "just one tail."
dex_line "The tail splits"
dex_line "from its tip as"
dex_line "it grows older."
dex_end
NinetalesPokedexDescription: ; 0x2da4b
dex_text "Very smart and"
dex_line "very vengeful."
dex_line "Grabbing one of"
dex_line "its many tails"
dex_line "could result in a"
dex_line "1000-year curse."
dex_end
PikachuPokedexDescription: ; 0x2daab
dex_text "When several of"
dex_line "these POKéMON"
dex_line "gather, their"
dex_line "electricity could"
dex_line "build and cause"
dex_line "lightning storms."
dex_end
RaichuPokedexDescription: ; 0x2db0b
dex_text "Its long tail"
dex_line "serves as a"
dex_line "ground to protect"
dex_line "itself from its"
dex_line "own high voltage"
dex_line "power."
dex_end
DratiniPokedexDescription: ; 0x2db5f
dex_text "Long considered a"
dex_line "mythical POKéMON"
dex_line "until recently"
dex_line "when a small"
dex_line "colony was found"
dex_line "living underwater."
dex_end
DragonairPokedexDescription: ; 0x2dbc2
dex_text "A mystical POKéMON"
dex_line "that exudes a"
dex_line "gentle aura."
dex_line "Has the ability"
dex_line "to change climate"
dex_line "conditions."
dex_end
KabutoPokedexDescription: ; 0x2dc1e
dex_text "A POKéMON that"
dex_line "was resurrected"
dex_line "from a fossil"
dex_line "found in what was"
dex_line "once the ocean"
dex_line "floor eons ago."
dex_end
KabutopsPokedexDescription: ; 0x2dc7c
dex_text "Its sleek shape is"
dex_line "perfect for swim-"
dex_line "ming. It slashes"
dex_line "prey with its"
dex_line "claws and drains"
dex_line "the body fluids."
dex_end
HorseaPokedexDescription: ; 0x2dce2
dex_text "Known to shoot"
dex_line "down flying bugs"
dex_line "with precision"
dex_line "blasts of ink"
dex_line "from the surface"
dex_line "of the water."
dex_end
SeadraPokedexDescription: ; 0x2dd3e
dex_text "Capable of swim-"
dex_line "ming backwards by"
dex_line "rapidly flapping"
dex_line "its wing-like"
dex_line "pectoral fins and"
dex_line "stout tail."
dex_end
SandshrewPokedexDescription: ; 0x2dd9e
dex_text "Burrows deep"
dex_line "underground in"
dex_line "arid locations"
dex_line "far from water."
dex_line "It only emerges"
dex_line "to hunt for food."
dex_end
SandslashPokedexDescription: ; 0x2ddfb
dex_text "Curls up into a"
dex_line "spiny ball when"
dex_line "threatened. It"
dex_line "can roll while"
dex_line "curled up to"
dex_line "attack or escape."
dex_end
OmanytePokedexDescription: ; 0x2de58
dex_text "Although long"
dex_line "extinct, in rare"
dex_line "cases, it can be"
dex_line "genetically"
dex_line "resurrected from"
dex_line "fossils."
dex_end
OmastarPokedexDescription: ; 0x2deae
dex_text "A prehistoric"
dex_line "POKéMON that died"
dex_line "out when its"
dex_line "heavy shell made"
dex_line "it impossible to"
dex_line "catch prey."
dex_end
JigglypuffPokedexDescription: ; 0x2df09
dex_text "When its huge eyes"
dex_line "light up, it sings"
dex_line "a mysteriously"
dex_line "soothing melody"
dex_line "that lulls its"
dex_line "enemies to sleep."
dex_end
WigglytuffPokedexDescription: ; 0x2df6f
dex_text "The body is soft"
dex_line "and rubbery. When"
dex_line "angered, it will"
dex_line "suck in air and"
dex_line "inflate itself to"
dex_line "an enormous size."
dex_end
EeveePokedexDescription: ; 0x2dfd7
dex_text "Its genetic code"
dex_line "is irregular."
dex_line "It may mutate if"
dex_line "it is exposed to"
dex_line "radiation from"
dex_line "element STONEs."
dex_end
FlareonPokedexDescription: ; 0x2e037
dex_text "When storing"
dex_line "thermal energy in"
dex_line "its body, its"
dex_line "temperature could"
dex_line "soar to over 1600"
dex_line "degrees."
dex_end
JolteonPokedexDescription: ; 0x2e091
dex_text "It accumulates"
dex_line "negative ions in"
dex_line "the atmosphere to"
dex_line "blast out 10000-"
dex_line "volt lightning"
dex_line "bolts."
dex_end
VaporeonPokedexDescription: ; 0x2e0ea
dex_text "Lives close to"
dex_line "water. Its long"
dex_line "tail is ridged"
dex_line "with a fin which"
dex_line "is often mistaken"
dex_line "for a mermaid`s."
dex_end
MachopPokedexDescription: ; 0x2e14c
dex_text "Loves to build"
dex_line "its muscles."
dex_line "It trains in all"
dex_line "styles of martial"
dex_line "arts to become"
dex_line "even stronger."
dex_end
ZubatPokedexDescription: ; 0x2e1a9
dex_text "Forms colonies in"
dex_line "perpetually dark"
dex_line "places. Uses"
dex_line "ultrasonic waves"
dex_line "to identify and"
dex_line "approach targets."
dex_end
EkansPokedexDescription: ; 0x2e20c
dex_text "Moves silently"
dex_line "and stealthily."
dex_line "Eats the eggs of"
dex_line "birds, such as"
dex_line "PIDGEY and"
dex_line "SPEAROW, whole."
dex_end
ParasPokedexDescription: ; 0x2e266
dex_text "Burrows to suck"
dex_line "tree roots. The"
dex_line "mushrooms on its"
dex_line "back grow by draw-"
dex_line "ing nutrients from"
dex_line "the bug host."
dex_end
PoliwhirlPokedexDescription: ; 0x2e2cb
dex_text "Capable of living"
dex_line "in or out of"
dex_line "water. When out"
dex_line "of water, it"
dex_line "sweats to keep"
dex_line "its body slimy."
dex_end
PoliwrathPokedexDescription: ; 0x2e326
dex_text "An adept swimmer"
dex_line "at both the front"
dex_line "crawl and breast"
dex_line "stroke. Easily"
dex_line "overtakes the best"
dex_line "human swimmers."
dex_end
WeedlePokedexDescription: ; 0x2e38c
dex_text "Often found in"
dex_line "forests, eating"
dex_line "leaves."
dex_line "It has a sharp"
dex_line "venomous stinger"
dex_line "on its head."
dex_end
KakunaPokedexDescription: ; 0x2e3e0
dex_text "Almost incapable"
dex_line "of moving, this"
dex_line "POKéMON can only"
dex_line "harden its shell"
dex_line "to protect itself"
dex_line "from predators."
dex_end
BeedrillPokedexDescription: ; 0x2e445
dex_text "Flies at high"
dex_line "speed and attacks"
dex_line "using its large"
dex_line "venomous stingers"
dex_line "on its forelegs"
dex_line "and tail."
dex_end
DodrioPokedexDescription: ; 0x2e4a1
dex_text "Uses its three"
dex_line "brains to execute"
dex_line "complex plans."
dex_line "While two heads"
dex_line "sleep, one head"
dex_line "stays awake."
dex_end
PrimeapePokedexDescription: ; 0x2e4fe
dex_text "Always furious"
dex_line "and tenacious to"
dex_line "boot. It will not"
dex_line "abandon chasing"
dex_line "its quarry until"
dex_line "it is caught."
dex_end
DugtrioPokedexDescription: ; 0x2e55f
dex_text "A team of DIGLETT"
dex_line "triplets."
dex_line "It triggers huge"
dex_line "earthquakes by"
dex_line "burrowing 60 miles"
dex_line "underground."
dex_end
VenomothPokedexDescription: ; 0x2e5bb
dex_text "The dust-like"
dex_line "scales covering"
dex_line "its wings are"
dex_line "color coded to"
dex_line "indicate the kinds"
dex_line "of poison it has."
dex_end
DewgongPokedexDescription: ; 0x2e61b
dex_text "Stores thermal"
dex_line "energy in its"
dex_line "body. Swims at a"
dex_line "steady 8 knots"
dex_line "even in intensely"
dex_line "cold waters. "
dex_end
CaterpiePokedexDescription: ; 0x2e678
dex_text "Its short feet"
dex_line "are tipped with"
dex_line "suction pads that"
dex_line "enable it to"
dex_line "tirelessly climb"
dex_line "slopes and walls."
dex_end
MetapodPokedexDescription: ; 0x2e6d9
dex_text "This POKéMON is"
dex_line "vulnerable to"
dex_line "attack while its"
dex_line "shell is soft,"
dex_line "exposing its weak"
dex_line "and tender body."
dex_end
ButterfreePokedexDescription: ; 0x2e73a
dex_text "In battle, it"
dex_line "flaps its wings"
dex_line "at high speed to"
dex_line "release highly"
dex_line "toxic dust into"
dex_line "the air."
dex_end
MachampPokedexDescription: ; 0x2e791
dex_text "Using its heavy"
dex_line "muscles, it throws"
dex_line "powerful punches"
dex_line "that can send the"
dex_line "victim clear over"
dex_line "the horizon. "
dex_end
GolduckPokedexDescription: ; 0x2e7f7
dex_text "Often seen swim-"
dex_line "ming elegantly by"
dex_line "lake shores. It"
dex_line "is often mistaken"
dex_line "for the Japanese"
dex_line "monster, Kappa."
dex_end
HypnoPokedexDescription: ; 0x2e85d
dex_text "When it locks eyes"
dex_line "with an enemy, it"
dex_line "will use a mix of"
dex_line "PSI moves such as"
dex_line "HYPNOSIS and"
dex_line "CONFUSION."
dex_end
GolbatPokedexDescription: ; 0x2e8be
dex_text "Once it strikes,"
dex_line "it will not stop"
dex_line "draining energy"
dex_line "from the victim"
dex_line "even if it gets"
dex_line "too heavy to fly."
dex_end
MewtwoPokedexDescription: ; 0x2e922
dex_text "It was created by"
dex_line "a scientist after"
dex_line "years of horrific"
dex_line "gene splicing and"
dex_line "DNA engineering"
dex_line "experiments."
dex_end
SnorlaxPokedexDescription: ; 0x2e987
dex_text "Very lazy. Just"
dex_line "eats and sleeps."
dex_line "As its rotund"
dex_line "bulk builds, it"
dex_line "becomes steadily"
dex_line "more slothful."
dex_end
MagikarpPokedexDescription: ; 0x2e9e6
dex_text "In the distant"
dex_line "past, it was"
dex_line "somewhat stronger"
dex_line "than the horribly"
dex_line "weak descendants"
dex_line "that exist today."
dex_end
MukPokedexDescription: ; 0x2ea49
dex_text "Thickly covered"
dex_line "with a filthy,"
dex_line "vile sludge. It"
dex_line "is so toxic, even"
dex_line "its footprints"
dex_line "contain poison."
dex_end
KinglerPokedexDescription: ; 0x2eaa9
dex_text "The large pincer"
dex_line "has 10000 hp of"
dex_line "crushing power."
dex_line "However, its huge"
dex_line "size makes it"
dex_line "unwieldy to use."
dex_end
CloysterPokedexDescription: ; 0x2eb0b
dex_text "When attacked, it"
dex_line "launches its"
dex_line "horns in quick"
dex_line "volleys. Its"
dex_line "innards have"
dex_line "never been seen."
dex_end
ElectrodePokedexDescription: ; 0x2eb64
dex_text "It stores electric"
dex_line "energy under very"
dex_line "high pressure."
dex_line "It often explodes"
dex_line "with little or no"
dex_line "provocation."
dex_end
ClefablePokedexDescription: ; 0x2ebc9
dex_text "A timid fairy"
dex_line "POKéMON that is"
dex_line "rarely seen. It"
dex_line "will run and hide"
dex_line "the moment it"
dex_line "senses people."
dex_end
WeezingPokedexDescription: ; 0x2ec26
dex_text "Where two kinds"
dex_line "of poison gases"
dex_line "meet, 2 KOFFINGs"
dex_line "can fuse into a"
dex_line "WEEZING over many"
dex_line "years."
dex_end
PersianPokedexDescription: ; 0x2ec80
dex_text "Although its fur"
dex_line "has many admirers,"
dex_line "it is tough to"
dex_line "raise as a pet"
dex_line "because of its"
dex_line "fickle meanness."
dex_end
MarowakPokedexDescription: ; 0x2ece2
dex_text "The bone it holds"
dex_line "is its key weapon."
dex_line "It throws the"
dex_line "bone skillfully"
dex_line "like a boomerang"
dex_line "to KO targets."
dex_end
HaunterPokedexDescription: ; 0x2ed45
dex_text "Because of its"
dex_line "ability to slip"
dex_line "through block"
dex_line "walls, it is said"
dex_line "to be from an-"
dex_line "other dimension."
dex_end
AbraPokedexDescription: ; 0x2eda4
dex_text "Using its ability"
dex_line "to read minds, it"
dex_line "will identify"
dex_line "impending danger"
dex_line "and TELEPORT to"
dex_line "safety."
dex_end
AlakazamPokedexDescription: ; 0x2edff
dex_text "Its brain can out-"
dex_line "perform a super-"
dex_line "computer."
dex_line "Its intelligence"
dex_line "quotient is said"
dex_line "to be 5,000."
dex_end
PidgeottoPokedexDescription: ; 0x2ee5c
dex_text "Very protective"
dex_line "of its sprawling"
dex_line "territorial area,"
dex_line "this POKéMON will"
dex_line "fiercely peck at"
dex_line "any intruder."
dex_end
PidgeotPokedexDescription: ; 0x2eec0
dex_text "When hunting, it"
dex_line "skims the surface"
dex_line "of water at high"
dex_line "speed to pick off"
dex_line "unwary prey such"
dex_line "as MAGIKARP."
dex_end
StarmiePokedexDescription: ; 0x2ef24
dex_text "Its central core"
dex_line "glows with the"
dex_line "seven colors of"
dex_line "the rainbow. Some"
dex_line "people value the"
dex_line "core as a gem."
dex_end
BulbasaurPokedexDescription: ; 0x2ef86
dex_text "A strange seed was"
dex_line "planted on its"
dex_line "back at birth."
dex_line "The plant sprouts"
dex_line "and grows with"
dex_line "this POKéMON."
dex_end
VenusaurPokedexDescription: ; 0x2efe6
dex_text "The plant blooms"
dex_line "when it is"
dex_line "absorbing solar"
dex_line "energy. It stays"
dex_line "on the move to"
dex_line "seek sunlight."
dex_end
TentacruelPokedexDescription: ; 0x2f041
dex_text "The tentacles are"
dex_line "normally kept"
dex_line "short. On hunts,"
dex_line "they are extended"
dex_line "to ensnare and"
dex_line "immobilize prey."
dex_end
GoldeenPokedexDescription: ; 0x2f0a4
dex_text "Its tail fin"
dex_line "billows like an"
dex_line "elegant ballroom"
dex_line "dress, giving it"
dex_line "the nickname of"
dex_line "the Water Queen."
dex_end
SeakingPokedexDescription: ; 0x2f104
dex_text "In the autumn"
dex_line "spawning season,"
dex_line "they can be seen"
dex_line "swimming power-"
dex_line "fully up rivers"
dex_line "and creeks."
dex_end
PonytaPokedexDescription: ; 0x2f160
dex_text "Its hooves are 10"
dex_line "times harder than"
dex_line "diamonds. It can"
dex_line "trample anything"
dex_line "completely flat"
dex_line "in little time."
dex_end
RapidashPokedexDescription: ; 0x2f1c6
dex_text "Very competitive,"
dex_line "this POKéMON will"
dex_line "chase anything"
dex_line "that moves fast"
dex_line "in the hopes of"
dex_line "racing it."
dex_end
RattataPokedexDescription: ; 0x2f224
dex_text "Bites anything"
dex_line "when it attacks."
dex_line "Small and very"
dex_line "quick, it is a"
dex_line "common sight in"
dex_line "many places."
dex_end
RaticatePokedexDescription: ; 0x2f27f
dex_text "It uses its whis-"
dex_line "kers to maintain"
dex_line "its balance."
dex_line "It apparently"
dex_line "slows down if"
dex_line "they are cut off."
dex_end
NidorinoPokedexDescription: ; 0x2f2dd
dex_text "An aggressive"
dex_line "POKéMON that is"
dex_line "quick to attack."
dex_line "The horn on its"
dex_line "head secretes a"
dex_line "powerful venom."
dex_end
NidorinaPokedexDescription: ; 0x2f33c
dex_text "The female`s horn"
dex_line "develops slowly."
dex_line "Prefers physical"
dex_line "attacks such as"
dex_line "clawing and"
dex_line "biting."
dex_end
GeodudePokedexDescription: ; 0x2f394
dex_text "Found in fields"
dex_line "and mountains."
dex_line "Mistaking them"
dex_line "for boulders,"
dex_line "people often step"
dex_line "or trip on them."
dex_end
PorygonPokedexDescription: ; 0x2f3f3
dex_text "A POKéMON that"
dex_line "consists entirely"
dex_line "of programming"
dex_line "code. Capable of"
dex_line "moving freely in"
dex_line "cyberspace."
dex_end
AerodactylPokedexDescription: ; 0x2f451
dex_text "A ferocious, pre-"
dex_line "historic POKéMON"
dex_line "that goes for the"
dex_line "enemy`s throat"
dex_line "with its serrated"
dex_line "saw-like fangs."
dex_end
MagnemitePokedexDescription: ; 0x2f4b7
dex_text "Uses anti-gravity"
dex_line "to stay suspended."
dex_line "Appears without"
dex_line "warning and uses"
dex_line "THUNDER WAVE and"
dex_line "similar moves."
dex_end
CharmanderPokedexDescription: ; 0x2f51d
dex_text "Obviously prefers"
dex_line "hot places. When"
dex_line "it rains, steam"
dex_line "is said to spout"
dex_line "from the tip of"
dex_line "its tail."
dex_end
SquirtlePokedexDescription: ; 0x2f57b
dex_text "After birth, its"
dex_line "back swells and"
dex_line "hardens into a"
dex_line "shell. Powerfully"
dex_line "sprays foam from"
dex_line "its mouth."
dex_end
CharmeleonPokedexDescription: ; 0x2f5d9
dex_text "When it swings"
dex_line "its burning tail,"
dex_line "it elevates the"
dex_line "temperature to"
dex_line "unbearably high"
dex_line "levels."
dex_end
WartortlePokedexDescription: ; 0x2f631
dex_text "Often hides in"
dex_line "water to stalk"
dex_line "unwary prey. For"
dex_line "swimming fast, it"
dex_line "moves its ears to"
dex_line "maintain balance."
dex_end
CharizardPokedexDescription: ; 0x2f696
dex_text "Spits fire that"
dex_line "is hot enough to"
dex_line "melt boulders."
dex_line "Known to cause"
dex_line "forest fires"
dex_line "unintentionally."
dex_end
OddishPokedexDescription: ; 0x2f6f3
dex_text "During the day,"
dex_line "it keeps its face"
dex_line "buried in the"
dex_line "ground. At night,"
dex_line "it wanders around"
dex_line "sowing its seeds."
dex_end
GloomPokedexDescription: ; 0x2f759
dex_text "The fluid that"
dex_line "oozes from its"
dex_line "mouth isn`t drool."
dex_line "It is a nectar"
dex_line "that is used to"
dex_line "attract prey."
dex_end
VileplumePokedexDescription: ; 0x2f7b7
dex_text "The larger its"
dex_line "petals, the more"
dex_line "toxic pollen it"
dex_line "contains. Its big"
dex_line "head is heavy and"
dex_line "hard to hold up."
dex_end
BellsproutPokedexDescription: ; 0x2f81c
dex_text "A carnivorous"
dex_line "POKéMON that traps"
dex_line "and eats bugs."
dex_line "It uses its root"
dex_line "feet to soak up"
dex_line "needed moisture."
dex_end
WeepinbellPokedexDescription: ; 0x2f87e
dex_text "It spits out"
dex_line "POISONPOWDER to"
dex_line "immobilize the"
dex_line "enemy and then"
dex_line "finishes it with"
dex_line "a spray of ACID."
dex_end
VictreebellPokedexDescription: ; 0x2f8d8
dex_text "Said to live in"
dex_line "huge colonies"
dex_line "deep in jungles,"
dex_line "although no one"
dex_line "has ever returned"
dex_line "from there."
dex_end
SECTION "bankc", ROMX, BANK[$c]
InitRedField: ; 0x30000
ld a, [$d7c1]
and a
ret nz
xor a
ld hl, $d46f
ld [hld], a
ld [hld], a
ld [hld], a
ld [hld], a
ld [hld], a
ld [hl], a
ld [wNumPartyMons], a
ld [$d49b], a
ld [$d4c9], a
ld [wBallType], a
ld [$d4c8], a
ld hl, $d624
ld [hli], a
ld [hli], a
ld [hli], a
ld [$d7ac], a
ld [$d7be], a
ld [wCurrentMap], a ; PALLET_TOWN
ld a, $1
ld [$d49d], a
ld [$d482], a
ld a, $2
ld [wRightAlleyCount], a
ld a, $3
ld [$d49e], a
ld [$d610], a
ld [$d498], a
ld [$d499], a
ld a, $4
ld [wStageCollisionState], a
ld [$d7ad], a
ld a, $80
ld [wIndicatorStates], a
ld [wIndicatorStates + 3], a
ld a, $82
ld [wIndicatorStates + 1], a
ld [$ff8a], a
ld a, Bank(Func_dbba)
ld hl, Func_dbba
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_16f95)
ld hl, Func_16f95
call BankSwitch
ld a, $f
call SetSongBank
ld de, $0001
call PlaySong
ret
StartBallRedField: ; 0x3007d
ld a, [$d496]
and a
jp nz, StartBallAfterBonusStageRedField
ld a, $0
ld [wBallXPos], a
ld a, $a7
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $98
ld [wBallYPos + 1], a
xor a
ld [$d549], a
ld [$d580], a
ld a, [$d7ad]
bit 7, a
jr z, .asm_300ae
ld a, [wStageCollisionState]
res 0, a
ld [$d7ad], a
.asm_300ae
ld a, [wStageCollisionState]
and $1
ld [wStageCollisionState], a
ld a, [$d4c9]
and a
ret z
xor a
ld [$d4c9], a
xor a
ld [$d50b], a
ld [$d50c], a
ld [$d51d], a
ld [$d517], a
ld [$d51e], a
ld hl, $d50f
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [wLeftMapMoveCounter], a
ld [wRightMapMoveCounter], a
ld hl, $d5f9
ld [hli], a
ld [hli], a
ld [hli], a
ld [wBallType], a
ld [$d611], a
ld [$d612], a
ld [$d628], a
ld [$d629], a
ld [$d62a], a
ld [$d62b], a
ld [$d62c], a
ld [$d62d], a
ld [$d62e], a
ld [$d613], a
inc a
ld [$d482], a
ld [$d4ef], a
ld [$d4f1], a
ld a, $3
ld [$d610], a
ld [$ff8a], a
ld a, Bank(Func_16f95)
ld hl, Func_16f95
call BankSwitch
ld a, $f
call SetSongBank
ld de, $0001
call PlaySong
ret
StartBallAfterBonusStageRedField: ; 0x30128
ld a, $0
ld [wBallXPos], a
ld a, $50
ld [wBallXPos + 1], a
ld a, $0
ld [wBallYPos], a
ld a, $16
ld [wBallYPos + 1], a
xor a
ld [wBallYVelocity], a
ld [wBallYVelocity + 1], a
ld [wBallXVelocity], a
ld [wBallXVelocity + 1], a
ld [$d496], a
ld [$d7ab], a
ld [$d7be], a
ld a, [wBallTypeBackup]
ld [wBallType], a
ld a, $f
call SetSongBank
ld de, $0001
call PlaySong
ret
Func_30164: ; 0x30164
ld a, [$d49b]
inc a
cp $b
jr z, .asm_30175
ld [$d49b], a
ld a, $1
ld [$d4ca], a
ret
.asm_30175
ld bc, $34f4
ld [$ff8a], a
ld a, Bank(Func_8588)
ld hl, Func_8588
call BankSwitch
ld a, $2
ld [$d4ca], a
ret
Func_30188: ; 0x30188
ld a, [$d5ca]
and a
ret nz
ld a, [$d4ca]
and a
ret z
cp $1
jr nz, .asm_301a7
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $2974
call Func_32aa
jr .asm_301c9
.asm_301a7
ld bc, $1000
ld de, $0000
push bc
push de
call Func_30e8
call Func_30db
ld hl, $d5d4
ld de, $29a6
call Func_32cc
pop de
pop bc
ld hl, $d5cc
ld de, $2986
call Func_32aa
.asm_301c9
xor a
ld [$d4ca], a
ret
Func_301ce: ; 0x301ce
ld a, [wCurrentStage]
call CallInFollowingTable
PointerTable_301d4: ; 0x301d4
dw Func_314ae
db Bank(Func_314ae), $00
dw Func_314ae
db Bank(Func_314ae), $00
dw Func_314ae
db Bank(Func_314ae), $00
dw Func_314ae
db Bank(Func_314ae), $00
dw Func_3161b
db Bank(Func_3161b), $00
dw Func_3161b
db Bank(Func_3161b), $00
StartMapMoveMode: ; 0x301ec
ld a, [wInSpecialMode]
and a
ret nz
ld a, $1
ld [wInSpecialMode], a
ld a, $2
ld [wSpecialMode], a
xor a
ld [$d54d], a
ld bc, $0030 ; 30 seconds
ld [$ff8a], a
ld a, Bank(StartTimer)
ld hl, StartTimer
call BankSwitch
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_3021b
ld a, [$d55a]
add $12
call Func_30256
.asm_3021b
ld a, [wCurrentStage]
rst $18 ; calls JumpToFuncInTable
CallTable_3021f: ; 0x3021f
; STAGE_RED_FIELD_TOP
dw Func_311b4
; STAGE_RED_FIELD_BOTTOM
dw Func_311b4
dw Func_31324
dw Func_31324
; STAGE_BLUE_FIELD_TOP
dw Func_31326
; STAGE_BLUE_FIELD_BOTTOM
dw Func_31326
Func_3022b: ; 0x3022b
xor a
ld [$d5ca], a
call Func_30e8
xor a
ld [wInSpecialMode], a
ld [wSpecialMode], a
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
ld a, [wCurrentStage]
rst $18 ; calls JumpToFuncInTable
CallTable_30247: ; 0x30247
; STAGE_RED_FIELD_TOP
dw Func_31234
; STAGE_RED_FIELD_BOTTOM
dw Func_31234
dw Func_31325
dw Func_31325
; STAGE_BLUE_FIELD_TOP
dw Func_313c3
; STAGE_BLUE_FIELD_TOP
dw Func_313c3
INCBIN "baserom.gbc",$30253,$30253 - $30253
Func_30253: ; 0x30253
ld a, [wCurrentMap]
; fall through
Func_30256: ; 0x30256
sla a
ld c, a
ld b, $0
push bc
ld hl, PointerTable_3027a
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $c
call Func_10aa
pop bc
ld a, [hGameBoyColorFlag]
and a
ret z
ld hl, PointerTable_30ceb
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $c
call Func_10aa
ret
PointerTable_3027a: ; 0x3027a
dw Data_302b0
dw Data_302c1
dw Data_302d2
dw Data_302e3
dw Data_302f4
dw Data_30305
dw Data_30316
dw Data_30327
dw Data_30338
dw Data_30349
dw Data_3035a
dw Data_3036b
dw Data_3037c
dw Data_3038d
dw Data_3039e
dw Data_303af
dw Data_303c0
dw Data_303d1
dw Data_303e2
dw Data_303f3
dw Data_30404
dw Data_30415
dw Data_30426
dw Data_30437
dw Data_30448
dw Data_30459
dw Data_3046a
Data_302b0: ; 0x302b0
db $08, $7B, $44, $85, $44, $8F, $44, $99, $44, $A3, $44, $AD, $44, $B7, $44, $C1, $44
Data_302c1: ; 0x302c1
db $08, $CB, $44, $D5, $44, $DF, $44, $E9, $44, $F3, $44, $FD, $44, $07, $45, $11, $45
Data_302d2: ; 0x302d2
db $08, $1B, $45, $25, $45, $2F, $45, $39, $45, $43, $45, $4D, $45, $57, $45, $61, $45
Data_302e3: ; 0x302e3
db $08, $6B, $45, $75, $45, $7F, $45, $89, $45, $93, $45, $9D, $45, $A7, $45, $B1, $45
Data_302f4: ; 0x302f4
db $08, $BB, $45, $C5, $45, $CF, $45, $D9, $45, $E3, $45, $ED, $45, $F7, $45, $01, $46
Data_30305: ; 0x30305
db $08, $0B, $46, $15, $46, $1F, $46, $29, $46, $33, $46, $3D, $46, $47, $46, $51, $46
Data_30316: ; 0x30316
db $08, $5B, $46, $65, $46, $6F, $46, $79, $46, $83, $46, $8D, $46, $97, $46, $A1, $46
Data_30327: ; 0x30327
db $08, $AB, $46, $B5, $46, $BF, $46, $C9, $46, $D3, $46, $DD, $46, $E7, $46, $F1, $46
Data_30338: ; 0x30338
db $08, $FB, $46, $05, $47, $0F, $47, $19, $47, $23, $47, $2D, $47, $37, $47, $41, $47
Data_30349: ; 0x30349
db $08, $4B, $47, $55, $47, $5F, $47, $69, $47, $73, $47, $7D, $47, $87, $47, $91, $47
Data_3035a: ; 0x3035a
db $08, $9B, $47, $A5, $47, $AF, $47, $B9, $47, $C3, $47, $CD, $47, $D7, $47, $E1, $47
Data_3036b: ; 0x3036b
db $08, $EB, $47, $F5, $47, $FF, $47, $09, $48, $13, $48, $1D, $48, $27, $48, $31, $48
Data_3037c: ; 0x3037c
db $08, $3B, $48, $45, $48, $4F, $48, $59, $48, $63, $48, $6D, $48, $77, $48, $81, $48
Data_3038d: ; 0x3038d
db $08, $8B, $48, $95, $48, $9F, $48, $A9, $48, $B3, $48, $BD, $48, $C7, $48, $D1, $48
Data_3039e: ; 0x3039e
db $08, $DB, $48, $E5, $48, $EF, $48, $F9, $48, $03, $49, $0D, $49, $17, $49, $21, $49
Data_303af: ; 0x303af
db $08, $2B, $49, $35, $49, $3F, $49, $49, $49, $53, $49, $5D, $49, $67, $49, $71, $49
Data_303c0: ; 0x303c0
db $08, $7B, $49, $85, $49, $8F, $49, $99, $49, $A3, $49, $AD, $49, $B7, $49, $C1, $49
Data_303d1: ; 0x303d1
db $08, $CB, $49, $D5, $49, $DF, $49, $E9, $49, $F3, $49, $FD, $49, $07, $4A, $11, $4A
Data_303e2: ; 0x303e2
db $08, $1B, $4A, $25, $4A, $2F, $4A, $39, $4A, $43, $4A, $4D, $4A, $57, $4A, $61, $4A
Data_303f3: ; 0x303f3
db $08, $6B, $4A, $75, $4A, $7F, $4A, $89, $4A, $93, $4A, $9D, $4A, $A7, $4A, $B1, $4A
Data_30404: ; 0x30404
db $08, $BB, $4A, $C5, $4A, $CF, $4A, $D9, $4A, $E3, $4A, $ED, $4A, $F7, $4A, $01, $4B
Data_30415: ; 0x30415
db $08, $0B, $4B, $15, $4B, $1F, $4B, $29, $4B, $33, $4B, $3D, $4B, $47, $4B, $51, $4B
Data_30426: ; 0x30426
db $08, $5B, $4B, $65, $4B, $6F, $4B, $79, $4B, $83, $4B, $8D, $4B, $97, $4B, $A1, $4B
Data_30437: ; 0x30437
db $08, $AB, $4B, $B5, $4B, $BF, $4B, $C9, $4B, $D3, $4B, $DD, $4B, $E7, $4B, $F1, $4B
Data_30448: ; 0x30448
db $08, $FB, $4B, $05, $4C, $0F, $4C, $19, $4C, $23, $4C, $2D, $4C, $37, $4C, $41, $4C
Data_30459: ; 0x30459
db $08, $4B, $4C, $55, $4C, $5F, $4C, $69, $4C, $73, $4C, $7D, $4C, $87, $4C, $91, $4C
Data_3046a: ; 0x3046a
db $08, $9B, $4C, $A5, $4C, $AF, $4C, $B9, $4C, $C3, $4C, $CD, $4C, $D7, $4C, $E1, $4C
INCBIN "baserom.gbc",$3047b,$30ceb - $3047b
PointerTable_30ceb: ; 0x30ceb
dw Data_30d21
dw Data_30d26
dw Data_30d2b
dw Data_30d30
dw Data_30d35
dw Data_30d3a
dw Data_30d3f
dw Data_30d44
dw Data_30d49
dw Data_30d4e
dw Data_30d53
dw Data_30d58
dw Data_30d5d
dw Data_30d62
dw Data_30d67
dw Data_30d6c
dw Data_30d71
dw Data_30d76
dw Data_30d7b
dw Data_30d80
dw Data_30d85
dw Data_30d8a
dw Data_30d8f
dw Data_30d94
dw Data_30d99
dw Data_30d9e
dw Data_30da3
Data_30d21: ; 0x30d21
db $02, $A8, $4D, $B1, $4D
Data_30d26: ; 0x30d26
db $02, $CD, $4D, $D6, $4D
Data_30d2b: ; 0x30d2b
db $02, $F2, $4D, $FB, $4D
Data_30d30: ; 0x30d30
db $02, $17, $4E, $20, $4E
Data_30d35: ; 0x30d35
db $02, $3C, $4E, $45, $4E
Data_30d3a: ; 0x30d3a
db $02, $61, $4E, $6A, $4E
Data_30d3f: ; 0x30d3f
db $02, $86, $4E, $8F, $4E
Data_30d44: ; 0x30d44
db $02, $AB, $4E, $B4, $4E
Data_30d49: ; 0x30d49
db $02, $D0, $4E, $D9, $4E
Data_30d4e: ; 0x30d4e
db $02, $F5, $4E, $FE, $4E
Data_30d53: ; 0x30d53
db $02, $1A, $4F, $23, $4F
Data_30d58: ; 0x30d58
db $02, $3F, $4F, $48, $4F
Data_30d5d: ; 0x30d5d
db $02, $64, $4F, $6D, $4F
Data_30d62: ; 0x30d62
db $02, $89, $4F, $92, $4F
Data_30d67: ; 0x30d67
db $02, $AE, $4F, $B7, $4F
Data_30d6c: ; 0x30d6c
db $02, $D3, $4F, $DC, $4F
Data_30d71: ; 0x30d71
db $02, $F8, $4F, $01, $50
Data_30d76: ; 0x30d76
db $02, $1D, $50, $26, $50
Data_30d7b: ; 0x30d7b
db $02, $42, $50, $4B, $50
Data_30d80: ; 0x30d80
db $02, $67, $50, $70, $50
Data_30d85: ; 0x30d85
db $02, $8C, $50, $95, $50
Data_30d8a: ; 0x30d8a
db $02, $B1, $50, $BA, $50
Data_30d8f: ; 0x30d8f
db $02, $D6, $50, $DF, $50
Data_30d94: ; 0x30d94
db $02, $FB, $50, $04, $51
Data_30d99: ; 0x30d99
db $02, $20, $51, $29, $51
Data_30d9e: ; 0x30d9e
db $02, $45, $51, $4E, $51
Data_30da3: ; 0x30da3
db $02, $6A, $51, $73, $51
INCBIN "baserom.gbc",$30da8,$3118f - $30da8
Func_3118f: ; 0x3118f
push bc
call Func_30e8
call Func_30db
ld a, [wCurrentMap]
sla a
ld c, a
ld b, $0
ld hl, $2ce3 ; todo
add hl, bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld hl, $d5d4
call Func_32aa
pop de
ld hl, $d5cc
call Func_32aa
ret
Func_311b4: ; 0x311b4
ld a, [$d55a]
and a
jr nz, .asm_311ce
ld a, $80
ld [wIndicatorStates], a
ld [wIndicatorStates + 2], a
xor a
ld [wIndicatorStates + 1], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 4], a
jr .asm_311e2
.asm_311ce
ld a, $80
ld [wIndicatorStates + 1], a
ld [wIndicatorStates + 3], a
xor a
ld [wIndicatorStates], a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 4], a
jr .asm_311e2
.asm_311e2
ld a, $2
ld [$ff8a], a
ld a, Bank(Func_149d9)
ld hl, Func_149d9
call BankSwitch
ld a, $5
ld [$ff8a], a
ld a, Bank(Func_149d9)
ld hl, Func_149d9
call BankSwitch
ld a, $6a
ld [$c7f0], a
ld a, $6b
ld [$c810], a
ld a, $66
ld [$c7e3], a
ld a, $67
ld [$c803], a
ld [$ff8a], a
ld a, Bank(Func_107b0)
ld hl, Func_107b0
call BankSwitch
ld a, $4
ld [$d7ad], a
ld de, $0003
call PlaySong
ld a, [wCurrentStage]
bit 0, a
ret z
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call BankSwitch
ret
Func_31234: ; 0x31234
ld [$ff8a], a
ld a, Bank(Func_107a5)
ld hl, Func_107a5
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_107c2)
ld hl, Func_107c2
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_107c8)
ld hl, Func_107c8
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_107e9)
ld hl, Func_107e9
call BankSwitch
ld a, [wCurrentStage]
bit 0, a
ret z
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_16425)
ld hl, Func_16425
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ret
Func_31281: ; 0x31282
ld a, [$d4e2]
inc a
cp $6
jr c, .asm_3129e
ld a, $ff
ld [$d4e3], a
ld [$d4e4], a
ld [$d4e5], a
ld [$d4e6], a
ld [$d4e7], a
ld [$d4e8], a
xor a
.asm_3129e
ld [$d4e2], a
cp $3
jr c, .asm_312b2
cp $5
jr c, .asm_312e7
ld a, INDIGO_PLATEAU
ld [wCurrentMap], a
ld [$d4e8], a
ret
.asm_312b2
call GenRandom
and $7
cp $7
jr nc, .asm_312b2
ld c, a
ld b, $0
ld hl, $5319
add hl, bc
ld c, [hl]
ld hl, $d4e3
ld a, [$d4e2]
and a
jr z, .asm_312d4
ld b, a
.asm_312cd
ld a, [hli]
cp c
jr z, .asm_312b2
dec b
jr nz, .asm_312cd
.asm_312d4
ld a, c
ld [wCurrentMap], a
ld a, [$d4e2]
ld c, a
ld b, $0
ld hl, $d4e3
add hl, bc
ld a, [wCurrentMap]
ld [hl], a
ret
.asm_312e7
call GenRandom
and $3
ld c, a
ld b, $0
ld hl, $5320
add hl, bc
ld c, [hl]
ld hl, $d4e6
ld a, [$d4e2]
sub $3
jr z, .asm_31306
ld b, a
.asm_312ff
ld a, [hli]
cp c
jr z, .asm_312e7
dec b
jr nz, .asm_312ff
.asm_31306
ld a, c
ld [wCurrentMap], a
ld a, [$d4e2]
ld c, a
ld b, $0
ld hl, $d4e3
add hl, bc
ld a, [wCurrentMap]
ld [hl], a
ret
INCBIN "baserom.gbc",$31319,$31324 - $31319
Func_31324: ; 0x31324
ret
Func_31325: ; 0x31325
ret
INCBIN "baserom.gbc",$31326,$31326 - $31326
Func_31326: ; 0x31326
ld a, [$d55a]
and a
jr nz, .asm_3134c
ld a, $80
ld [wIndicatorStates], a
ld [wIndicatorStates + 2], a
xor a
ld [wIndicatorStates + 1], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 4], a
ld a, $3
ld [$ff8a], a
ld a, Bank(Func_1de4b)
ld hl, Func_1de4b
call BankSwitch
jr .asm_31382
.asm_3134c
ld a, $80
ld [wIndicatorStates + 1], a
ld [wIndicatorStates + 3], a
xor a
ld [wIndicatorStates], a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 4], a
ld a, $1
ld [$ff8a], a
ld a, Bank(Func_1de4b)
ld hl, Func_1de4b
call BankSwitch
ld a, $6
ld [$ff8a], a
ld a, Bank(Func_1de4b)
ld hl, Func_1de4b
call BankSwitch
ld a, $7 ; TODO: this might be the bank of Func_1de6f
ld [$ff8a], a
ld a, Bank(Func_1de6f)
ld hl, Func_1de6f
call BankSwitch
.asm_31382
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_3139d
ld a, $54
ld [$c7e3], a
ld a, $55
ld [$c803], a
ld a, $52
ld [$c7f0], a
ld a, $53
ld [$c810], a
.asm_3139d
ld a, $1
ld [$d644], a
ld [$ff8a], a
ld a, Bank(Func_1f2ed)
ld hl, Func_1f2ed
call BankSwitch
ld de, $0003
call PlaySong
ld a, [wCurrentStage]
bit 0, a
ret z
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call BankSwitch
ret
Func_313c3: ; 0x313c3
ld [$ff8a], a
ld a, Bank(Func_107a5)
ld hl, Func_107a5
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_107c2)
ld hl, Func_107c2
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_1f2ff)
ld hl, Func_1f2ff
call BankSwitch
ld a, $0
ld [$d644], a
ld a, [wCurrentStage]
bit 0, a
ret z
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_1e8f6)
ld hl, Func_1e8f6
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ret
Func_3140b: ; 0x3140b
ld a, [$d4e2]
inc a
cp $6
jr c, .asm_31428
ld a, $ff
ld [$d4e3], a
ld [$d4e4], a
ld [$d4e5], a
ld [$d4e6], a
ld [$d4e7], a
ld [$d4e8], a
xor a
.asm_31428
ld [$d4e2], a
cp $3
jr c, .asm_3143c
cp $5
jr c, .asm_31471
ld a, INDIGO_PLATEAU
ld [wCurrentMap], a
ld [$d4e8], a
ret
.asm_3143c
call GenRandom
and $7
cp $7
jr nc, .asm_3143c
ld c, a
ld b, $0
ld hl, $54a3
add hl, bc
ld c, [hl]
ld hl, $d4e3
ld a, [$d4e2]
and a
jr z, .asm_3145e
ld b, a
.asm_31457
ld a, [hli]
cp c
jr z, .asm_3143c
dec b
jr nz, .asm_31457
.asm_3145e
ld a, c
ld [wCurrentMap], a
ld a, [$d4e2]
ld c, a
ld b, $0
ld hl, $d4e3
add hl, bc
ld a, [wCurrentMap]
ld [hl], a
ret
.asm_31471
call GenRandom
and $3
ld c, a
ld b, $0
ld hl, $54aa
add hl, bc
ld c, [hl]
ld hl, $d4e6
ld a, [$d4e2]
sub $3
jr z, .asm_31490
ld b, a
.asm_31489
ld a, [hli]
cp c
jr z, .asm_31471
dec b
jr nz, .asm_31489
.asm_31490
ld a, c
ld [wCurrentMap], a
ld a, [$d4e2]
ld c, a
ld b, $0
ld hl, $d4e3
add hl, bc
ld a, [wCurrentMap]
ld [hl], a
ret
INCBIN "baserom.gbc",$314a3,$314ae - $314a3
Func_314ae: ; 0x314ae
ld a, [$d57d]
and a
ld a, [$d54c]
jr z, .asm_314d0
cp $1
jp z, Func_31591
cp $3
jp z, Func_31591
cp $2
jp z, Func_315b3
cp $5
jp z, Func_315b3
cp $d
jp z, Func_315d5
.asm_314d0
cp $0
jr z, .asm_314d6
scf
ret
.asm_314d6
call Func_3151f
ld a, [$d54d]
call CallInFollowingTable
PointerTable_314df: ; 0xd13df
dw Func_314ef
db Bank(Func_314ef), $00
dw Func_314f1
db Bank(Func_314f1), $00
dw Func_314f3
db Bank(Func_314f3), $00
dw Func_31505
db Bank(Func_31505), $00
Func_314ef: ; 0x314ef
scf
ret
Func_314f1: ; 0x314f1
scf
ret
Func_314f3: ; 0x314f3
ld [$ff8a], a
ld a, Bank(Func_3022b)
ld hl, Func_3022b
call BankSwitch
ld de, $0001
call PlaySong
scf
ret
Func_31505: ; 0x31505
ld a, [$d5ca]
and a
ret nz
call Func_30e8
ld [$ff8a], a
ld a, Bank(Func_3022b)
ld hl, Func_3022b
call BankSwitch
ld de, $0001
call PlaySong
scf
ret
Func_3151f: ; 0x3151f
ld a, $50
ld [$d4ef], a
ld [$d4f1], a
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $3
ld [$d54d], a
xor a
ld [$d604], a
ld [wIndicatorStates], a
ld [wIndicatorStates + 1], a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 4], a
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_31577
ld [$ff8a], a
ld a, Bank(Func_14135)
ld hl, Func_14135
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_16425)
ld hl, Func_16425
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
.asm_31577
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $2ca8
call Func_32aa
ret
Func_31591: ; 0x31591
ld a, [$d55a]
and a
jr nz, .asm_315b1
ld a, [wIndicatorStates]
and a
jr z, .asm_315b1
xor a
ld [wIndicatorStates], a
ld [wIndicatorStates + 2], a
ld a, $80
ld [wIndicatorStates + 4], a
ld a, $1
ld [$d604], a
ld [$d54d], a
.asm_315b1
scf
ret
Func_315b3: ; 0x315b3
ld a, [$d55a]
and a
jr z, .asm_315d3
ld a, [wIndicatorStates + 1]
and a
jr z, .asm_315d3
xor a
ld [wIndicatorStates + 1], a
ld [wIndicatorStates + 3], a
ld a, $80
ld [wIndicatorStates + 4], a
ld a, $1
ld [$d604], a
ld [$d54d], a
.asm_315d3
scf
ret
Func_315d5: ; 0x315d5
ld de, $0000
call PlaySong
rst $10
ld [$ff8a], a
ld a, Bank(Func_31281)
ld hl, Func_31281
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld de, $2525
call PlaySoundEffect
ld bc, $2cbf
ld [$ff8a], a
ld a, Bank(Func_3118f)
ld hl, Func_3118f
call BankSwitch
.asm_31603
ld [$ff8a], a
ld a, Bank(Func_33e3)
ld hl, Func_33e3
call BankSwitch
rst $10
ld a, [$d5ca]
and a
jr nz, .asm_31603
ld a, $2
ld [$d54d], a
scf
ret
Func_3161b: ; 0x3161b
ld a, [$d57d]
and a
ld a, [$d54c]
jr z, .asm_3163d
cp $1
jp z, Func_31708
cp $f
jp z, Func_31708
cp $2
jp z, Func_3172a
cp $e
jp z, Func_3172a
cp $d
jp z, Func_3174c
.asm_3163d
cp $0
jr z, .asm_31643
scf
ret
.asm_31643
call Func_3168c
ld a, [$d54d]
call CallInFollowingTable
PointerTable_3164c: ; 0x3164c
dw Func_3165c
db Bank(Func_3165c), $00
dw Func_3165e
db Bank(Func_3165e), $00
dw Func_31660
db Bank(Func_31660), $00
dw Func_31672
db Bank(Func_31672), $00
Func_3165c: ; 0x3165c
scf
ret
Func_3165e: ; 0x3165e
scf
ret
Func_31660: ; 0x31660
ld [$ff8a], a
ld a, Bank(Func_3022b)
ld hl, Func_3022b
call BankSwitch
ld de, $0001
call PlaySong
scf
ret
Func_31672: ; 0x31672
ld a, [$d5ca]
and a
ret nz
call Func_30e8
ld [$ff8a], a
ld a, Bank(Func_3022b)
ld hl, Func_3022b
call BankSwitch
ld de, $0001
call PlaySong
scf
ret
Func_3168c: ; 0x3168c
ld a, $50
ld [wLeftMapMoveDiglettAnimationCounter], a
ld [wRightMapMoveDiglettFrame], a
ld a, $3
ld [$d645], a
ld a, $1
ld [$d646], a
ld [$ff8a], a
ld a, Bank(Func_107f8)
ld hl, Func_107f8
call BankSwitch
ld a, [$d57e]
and a
ret z
xor a
ld [$d57e], a
ld a, $3
ld [$d54d], a
xor a
ld [$d604], a
ld [wIndicatorStates], a
ld [wIndicatorStates + 1], a
ld [wIndicatorStates + 2], a
ld [wIndicatorStates + 3], a
ld [wIndicatorStates + 4], a
ld a, [wCurrentStage]
bit 0, a
jr z, .asm_316ee
ld [$ff8a], a
ld a, Bank(Func_1c2cb)
ld hl, Func_1c2cb
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_1e8f6)
ld hl, Func_1e8f6
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
.asm_316ee
ld [$ff8a], a
ld a, Bank(Func_86d2)
ld hl, Func_86d2
call BankSwitch
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $2ca8
call Func_32aa
ret
Func_31708: ; 0x31708
ld a, [$d55a]
and a
jr nz, .asm_31728
ld a, [wIndicatorStates]
and a
jr z, .asm_31728
xor a
ld [wIndicatorStates], a
ld [wIndicatorStates + 2], a
ld a, $80
ld [wIndicatorStates + 4], a
ld a, $1
ld [$d604], a
ld [$d54d], a
.asm_31728
scf
ret
Func_3172a: ; 0x3172a
ld a, [$d55a]
and a
jr z, .asm_3174a
ld a, [wIndicatorStates + 1]
and a
jr z, .asm_3174a
xor a
ld [wIndicatorStates + 1], a
ld [wIndicatorStates + 3], a
ld a, $80
ld [wIndicatorStates + 4], a
ld a, $1
ld [$d604], a
ld [$d54d], a
.asm_3174a
scf
ret
Func_3174c: ; 0x3174c
ld de, $0000
call PlaySong
rst $10
ld [$ff8a], a
ld a, Bank(Func_3140b)
ld hl, Func_3140b
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld de, $2525
call PlaySoundEffect
ld bc, $2cbf
ld [$ff8a], a
ld a, Bank(Func_3118f)
ld hl, Func_3118f
call BankSwitch
.asm_3177a
ld [$ff8a], a
ld a, Bank(Func_33e3)
ld hl, Func_33e3
call BankSwitch
rst $10
ld a, [$d5ca]
and a
jr nz, .asm_3177a
ld a, $2
ld [$d54d], a
scf
ret
INCBIN "baserom.gbc",$31792,$34000 - $31792
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,$37f00 - $34300
StageSeelBonusCollisionMasks: ; 0x37f00
INCBIN "data/collision/masks/seel_bonus.masks"
SECTION "banke", ROMX, BANK[$e]
INCBIN "baserom.gbc",$38000,$3c000 - $38000 ; 0x38000
SECTION "bankf", ROMX, BANK[$f]
Func_3c000: ; 0x3c000
push hl
push de
push bc
push af
call Func_3cb1b
ld hl, $dd01
ld de, $01af
.clearLoop
xor a
ld [hli], a
dec de
ld a, e
or d
jr nz, .clearLoop
ld hl, $ff24
xor a
ld [hli], a
ld [hli], a
ld a, $80
ld [hli], a
ld hl, $ff10
ld e, $4
.asm_3c022
xor a
ld [hli], a
ld [hli], a
ld a, $8
ld [hli], a
xor a
ld [hli], a
ld a, $80
ld [hli], a
dec e
jr nz, .asm_3c022
ld a, $8
ld [$de9a], a
ld a, $77
ld [$de98], a
call Func_3cb15
pop af
pop bc
pop de
pop hl
ret
Func_3c042: ; 0x3c042
ld a, [de]
inc de
and $7
ld [$deae], a
ld c, a
ld b, $0
ld hl, WRAMPointerTable_3cc92
add hl, bc
add hl, bc
ld c, [hl]
inc hl
ld b, [hl]
ld hl, $0002
add hl, bc
res 0, [hl]
push de
xor a
ld hl, $0000
add hl, bc
ld e, $32
.loop
ld [hli], a
dec e
jr nz, .loop
ld hl, $0017
add hl, bc
xor a
ld [hli], a
inc a
ld [hl], a
ld hl, $0028
add hl, bc
ld [hl], a
pop de
ld hl, $0005
add hl, bc
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hl], a
inc de
ld hl, $0000
add hl, bc
ld a, [$de9b]
ld [hli], a
ld a, [$de9c]
ld [hl], a
ret
INCBIN "baserom.gbc",$3c08b,$3c090 - $3c08b
PlaySong_BankF: ; 0x3c090
push de
call Func_3c000
pop de
call Func_3cb1b
ld hl, $de9b
ld [hl], e
inc hl
ld [hl], d
ld hl, SongHeaderPointers0F
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
rlca
rlca
and $3
inc a
.asm_3c0ac
push af
call Func_3c042
call Func_3cadf
pop af
dec a
jr nz, .asm_3c0ac
call Func_3cb15
ret
INCBIN "baserom.gbc",$3c0bb,$3c0c0 - $3c0bb
PlaySoundEffect_BankF: ; 0x3c0c0
call Func_3cb1b
ld hl, $de9b
ld [hl], e
inc hl
ld [hl], d
ld hl, PointerTable_3e3ce
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
rlca
rlca
and $3
inc a
.asm_3c0d7
push af
call Func_3c042
ld hl, $0002
add hl, bc
set 3, [hl]
call Func_3cadf
pop af
dec a
jr nz, .asm_3c0d7
call Func_3cb15
ret
INCBIN "baserom.gbc",$3c0ec,$3c0f0 - $3c0ec
PlayCry_BankF: ; 0x3c0f0
; Plays a Pokemon cry.
; Input: e = mon id
call Func_3cb1b
ld a, e
and a
ret z
dec e
ld d, $0
ld hl, CryData
add hl, de
add hl, de
add hl, de
add hl, de
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl] ; de = base cry id
inc hl
ld a, [hli]
ld [$dea8], a
ld a, [hli]
ld [$dea9], a ; dea8 = cry pitch
ld a, [hli]
ld [$deaa], a
ld a, [hl]
ld [$deab], a ; deaa = cry length
ld hl, $de9b
ld [hl], e
inc hl
ld [hl], d
ld hl, CryBasePointers
add hl, de
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
rlca
rlca
and $3
inc a
.asm_3c12a
push af
call Func_3c042
ld hl, $0002
add hl, bc
set 5, [hl]
ld hl, $0003
add hl, bc
set 4, [hl]
ld hl, $0026
add hl, bc
ld a, [$dea8]
ld [hli], a
ld a, [$dea9]
ld [hl], a
ld a, [$de97]
and $3
cp $3
jr nc, .asm_3c15b
ld hl, $0017
add hl, bc
ld a, [$deaa]
ld [hli], a
ld a, [$deab]
ld [hl], a
.asm_3c15b
call Func_3cadf
pop af
dec a
jr nz, .asm_3c12a
ld a, [$deac]
and a
jr nz, .asm_3c173
ld a, [$de98]
ld [$deac], a
ld a, $77
ld [$de98], a
.asm_3c173
ld a, $1
ld [$dead], a
call Func_3cb15
ret
INCBIN "baserom.gbc",$3c17c,$3c180 - $3c17c
Func_3c180: ; 0x3c180
ld a, [$dd00]
and a
ret z
xor a
ld [$de97], a
ld [$de99], a
ld bc, $dd01
ld hl, $0002
add hl, bc
bit 0, [hl]
jp z, .asm_3c22d
ld hl, $0014
add hl, bc
ld a, [hl]
cp $2
jr c, .asm_3c1a4
dec [hl]
jr .asm_3c1c1
.asm_3c1a4
ld hl, $001c
add hl, bc
ld a, [hl]
ld hl, $001b
add hl, bc
ld [hl], a
ld hl, $0025
add hl, bc
ld a, [hl]
ld hl, $0024
add hl, bc
ld [hl], a
ld hl, $0003
add hl, bc
res 1, [hl]
call Func_3c670
.asm_3c1c1
ld hl, $000d
add hl, bc
ld a, [hli]
ld [$de91], a
ld a, [hli]
ld [$de92], a
ld a, [hli]
ld [$de93], a
ld a, [hl]
ld [$de94], a
call Func_3c4f0
call Func_3c632
ld a, [$dead]
and a
jr z, .asm_3c20a
ld a, [$de97]
cp $4
jr nc, .asm_3c219
ld hl, $ddcb
bit 0, [hl]
jr nz, .asm_3c204
ld hl, $ddfd
bit 0, [hl]
jr nz, .asm_3c204
ld hl, $de2f
bit 0, [hl]
jr nz, .asm_3c204
ld hl, $de61
bit 0, [hl]
jr z, .asm_3c20a
.asm_3c204
ld hl, $000b
add hl, bc
set 5, [hl]
.asm_3c20a
ld a, [$de97]
cp $4
jr nc, .asm_3c219
ld hl, $00ca
add hl, bc
bit 0, [hl]
jr nz, .asm_3c227
.asm_3c219
call Func_3c24d
ld hl, $0019
add hl, bc
ld a, [$de99]
or [hl]
ld [$de99], a
.asm_3c227
ld hl, $000b
add hl, bc
xor a
ld [hl], a
.asm_3c22d
ld hl, $0032
add hl, bc
ld c, l
ld b, h
ld a, [$de97]
inc a
ld [$de97], a
cp $8
jp nz, $418f
call Func_3c40d
ld a, [$de98]
ld [$ff24], a
ld a, [$de99]
ld [$ff25], a
ret
Func_3c24d: ; 0x3c24d
ld hl, PointerTable_3c25e
ld a, [$de97]
and $7
add a
ld e, a
ld d, $0
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
PointerTable_3c25e: ; 0x3c25e
dw Func_3c26e
dw Func_3c2e0
dw Func_3c349
dw Func_3c3cf
dw Func_3c26e
dw Func_3c2e0
dw Func_3c349
dw Func_3c3cf
Func_3c26e: ; 0x3c26e
ld hl, $000b
add hl, bc
bit 3, [hl]
jr z, .asm_3c27b
ld a, [$de9a]
ld [$ff10], a
.asm_3c27b
bit 5, [hl]
jr nz, .asm_3c2ba
bit 4, [hl]
jr nz, .asm_3c2c6
bit 6, [hl]
jr nz, .asm_3c2b4
bit 1, [hl]
jr z, .asm_3c295
ld a, [$de93]
ld [$ff13], a
ld a, [$de94]
ld [$ff14], a
.asm_3c295
bit 2, [hl]
jr z, .asm_3c2a5
ld a, [$de92]
ld [$ff12], a
ld a, [$de94]
or $80
ld [$ff14], a
.asm_3c2a5
bit 0, [hl]
ret z
ld a, [$de91]
ld d, a
ld a, [$ff11]
and $3f
or d
ld [$ff11], a
ret
.asm_3c2b4
ld a, [$de93]
ld [$ff13], a
ret
.asm_3c2ba
ld a, $8
ld [$ff12], a
ld a, [$de94]
or $80
ld [$ff14], a
ret
.asm_3c2c6
ld hl, $de91
ld a, $3f
or [hl]
ld [$ff11], a
ld a, [$de92]
ld [$ff12], a
ld a, [$de93]
ld [$ff13], a
ld a, [$de94]
or $80
ld [$ff14], a
ret
Func_3c2e0: ; 0x3c2e0
ld hl, $000b
add hl, bc
bit 5, [hl]
jr nz, .asm_3c323
bit 4, [hl]
jr nz, .asm_3c32f
bit 6, [hl]
jr nz, .asm_3c31d
bit 1, [hl]
jr z, .asm_3c2fe
ld a, [$de93]
ld [$ff18], a
ld a, [$de94]
ld [$ff19], a
.asm_3c2fe
bit 2, [hl]
jr z, .asm_3c30e
ld a, [$de92]
ld [$ff17], a
ld a, [$de94]
or $80
ld [$ff19], a
.asm_3c30e
bit 0, [hl]
ret z
ld a, [$de91]
ld d, a
ld a, [$ff16]
and $3f
or d
ld [$ff16], a
ret
.asm_3c31d
ld a, [$de93]
ld [$ff18], a
ret
.asm_3c323
ld a, $8
ld [$ff17], a
ld a, [$de94]
or $80
ld [$ff19], a
ret
.asm_3c32f
ld hl, $de91
ld a, $3f
or [hl]
ld [$ff16], a
ld a, [$de92]
ld [$ff17], a
ld a, [$de93]
ld [$ff18], a
ld a, [$de94]
or $80
ld [$ff19], a
ret
Func_3c349: ; 0x3c349
ld hl, $000b
add hl, bc
bit 5, [hl]
jr nz, .asm_3c387
bit 4, [hl]
jr nz, .asm_3c38b
bit 6, [hl]
jr nz, .asm_3c381
bit 1, [hl]
jr z, .asm_3c367
ld a, [$de93]
ld [$ff1d], a
ld a, [$de94]
ld [$ff1e], a
.asm_3c367
bit 2, [hl]
ret z
xor a
ld [$ff1a], a
call LoadWavePattern
ld a, $80
ld [$ff1a], a
ld a, [$de93]
ld [$ff1d], a
ld a, [$de94]
or $80
ld [$ff1e], a
ret
.asm_3c381
ld a, [$de93]
ld [$ff1d], a
ret
.asm_3c387
xor a
ld [$ff1a], a
ret
.asm_3c38b
ld a, $3f
ld [$ff1b], a
xor a
ld [$ff1a], a
call LoadWavePattern
ld a, $80
ld [$ff1a], a
ld a, [$de93]
ld [$ff1d], a
ld a, [$de94]
or $80
ld [$ff1e], a
ret
LoadWavePattern: ; 0x3c3a6
push hl
ld a, [$de92]
and $f
ld l, a
ld h, $0
add hl, hl
add hl, hl
add hl, hl
add hl, hl
ld de, WavePatterns_BankF
add hl, de
ld de, $ff30
push bc
ld b, $10
.loop
ld a, [hli]
ld [de], a
inc de
dec b
jr nz, .loop
pop bc
pop hl
ld a, [$de92]
and $f0
sla a
ld [$ff1c], a ; set volume of wave channel
ret
Func_3c3cf: ; 0x3c3cf
ld hl, $000b
add hl, bc
bit 5, [hl]
jr nz, .asm_3c3f1
bit 4, [hl]
jr nz, .asm_3c3fa
bit 1, [hl]
jr z, .asm_3c3e4
ld a, [$de93]
ld [$ff22], a
.asm_3c3e4
bit 2, [hl]
ret z
ld a, [$de92]
ld [$ff21], a
ld a, $80
ld [$ff23], a
ret
.asm_3c3f1
ld a, $8
ld [$ff21], a
ld a, $80
ld [$ff23], a
ret
.asm_3c3fa
ld a, $3f
ld [$ff20], a
ld a, [$de92]
ld [$ff21], a
ld a, [$de93]
ld [$ff22], a
ld a, $80
ld [$ff23], a
ret
Func_3c40d: ; 0x3c40d
ld a, [$dea2]
and a
ret z
ld a, [$dea3]
and a
jr z, .asm_3c41d
dec a
ld [$dea3], a
ret
.asm_3c41d
ld a, [$dea2]
ld d, a
and $7f
ld [$dea3], a
ld a, [$de98]
and $7
bit 7, d
jr nz, .asm_3c448
and a
jr z, .asm_3c435
dec a
jr .asm_3c454
.asm_3c435
ld a, [$dea4]
ld e, a
ld a, [$dea5]
ld d, a
push bc
call PlaySong_BankF
pop bc
ld hl, $dea2
set 7, [hl]
ret
.asm_3c448
cp $7
jr nc, .asm_3c44f
inc a
jr .asm_3c454
.asm_3c44f
xor a
ld [$dea2], a
ret
.asm_3c454
ld d, a
swap a
or d
ld [$de98], a
ret
Func_3c45c: ; 0x3c45c
ld hl, $0003
add hl, bc
bit 1, [hl]
ret z
ld hl, $0014
add hl, bc
ld a, [hl]
ld hl, $de95
sub [hl]
jr nc, .asm_3c470
ld a, $1
.asm_3c470
ld [hl], a
ld hl, $000f
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $001f
add hl, bc
ld a, e
sub [hl]
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0020
add hl, bc
sub [hl]
jr nc, .asm_3c4ab
ld hl, $0004
add hl, bc
set 1, [hl]
ld hl, $000f
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $001f
add hl, bc
ld a, [hl]
sub e
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0020
add hl, bc
ld a, [hl]
sub d
ld d, a
jr .asm_3c4c9
.asm_3c4ab
ld hl, $0004
add hl, bc
res 1, [hl]
ld hl, $000f
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $001f
add hl, bc
ld a, e
sub [hl]
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0020
add hl, bc
sub [hl]
ld d, a
.asm_3c4c9
push bc
ld hl, $de95
ld b, $0
.asm_3c4cf
inc b
ld a, e
sub [hl]
ld e, a
jr nc, .asm_3c4cf
ld a, d
and a
jr z, .asm_3c4dc
dec d
jr .asm_3c4cf
.asm_3c4dc
ld a, e
add [hl]
ld d, b
pop bc
ld hl, $0021
add hl, bc
ld [hl], d
ld hl, $0022
add hl, bc
ld [hl], a
ld hl, $0023
add hl, bc
xor a
ld [hl], a
; fall through
Func_3c4f0: ; 0x3c4f0
ld hl, $0003
add hl, bc
bit 2, [hl]
jr z, .asm_3c50b
ld hl, $001a
add hl, bc
ld a, [hl]
rlca
rlca
ld [hl], a
and $c0
ld [$de91], a
ld hl, $000b
add hl, bc
set 0, [hl]
.asm_3c50b
ld hl, $0003
add hl, bc
bit 4, [hl]
jr z, .asm_3c529
ld hl, $0026
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $de93
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ld e, l
ld d, h
ld hl, $de93
ld [hl], e
inc hl
ld [hl], d
.asm_3c529
ld hl, $0003
add hl, bc
bit 1, [hl]
jp z, .asm_3c5c1
ld hl, $000f
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0004
add hl, bc
bit 1, [hl]
jr z, .asm_3c574
ld hl, $0021
add hl, bc
ld l, [hl]
ld h, $0
add hl, de
ld d, h
ld e, l
ld hl, $0022
add hl, bc
ld a, [hl]
ld hl, $0023
add hl, bc
add [hl]
ld [hl], a
ld a, $0
adc e
ld e, a
ld a, $0
adc d
ld d, a
ld hl, $0020
add hl, bc
ld a, [hl]
cp d
jp c, $45a1
jr nz, .asm_3c5b4
ld hl, $001f
add hl, bc
ld a, [hl]
cp e
jp c, .asm_3c5a1
jr .asm_3c5b4
.asm_3c574
ld a, e
ld hl, $0021
add hl, bc
ld e, [hl]
sub e
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0022
add hl, bc
ld a, [hl]
add a
ld [hl], a
ld a, e
sbc $0
ld e, a
ld a, d
sbc $0
ld d, a
ld hl, $0020
add hl, bc
ld a, d
cp [hl]
jr c, .asm_3c5a1
jr nz, .asm_3c5b4
ld hl, $001f
add hl, bc
ld a, e
cp [hl]
jr nc, .asm_3c5b4
.asm_3c5a1
ld hl, $0003
add hl, bc
res 1, [hl]
ld hl, $0004
add hl, bc
res 1, [hl]
ld hl, $0020
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
.asm_3c5b4
ld hl, $000f
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ld hl, $000b
add hl, bc
set 1, [hl]
.asm_3c5c1
ld hl, $0003
add hl, bc
bit 0, [hl]
jr z, .asm_3c61a
ld hl, $001b
add hl, bc
ld a, [hl]
and a
jr nz, .asm_3c5e3
ld hl, $001d
add hl, bc
ld a, [hl]
and a
jr z, .asm_3c61a
ld d, a
ld hl, $001e
add hl, bc
ld a, [hl]
and $f
jr z, .asm_3c5e6
.asm_3c5e3
dec [hl]
jr .asm_3c61a
.asm_3c5e6
ld a, [hl]
swap [hl]
or [hl]
ld [hl], a
ld a, [$de93]
ld e, a
ld hl, $0004
add hl, bc
bit 0, [hl]
jr z, .asm_3c605
res 0, [hl]
ld a, d
and $f
ld d, a
ld a, e
sub d
jr nc, .asm_3c611
ld a, $0
jr .asm_3c611
.asm_3c605
set 0, [hl]
ld a, d
and $f0
swap a
add e
jr nc, .asm_3c611
ld a, $ff
.asm_3c611
ld [$de93], a
ld hl, $000b
add hl, bc
set 6, [hl]
.asm_3c61a
ld hl, $0003
add hl, bc
bit 3, [hl]
ret z
ld hl, $0024
add hl, bc
ld a, [hl]
and a
jr z, .asm_3c62b
dec [hl]
ret
.asm_3c62b
ld hl, $000b
add hl, bc
set 5, [hl]
ret
Func_3c632: ; 0x3c632
ld hl, $0002
add hl, bc
bit 4, [hl]
ret z
ld a, [$de9f]
and a
jr z, .asm_3c644
dec a
ld [$de9f], a
ret
.asm_3c644
ld hl, $de9d
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
inc de
cp $ff
ret z
and $f
inc a
ld [$de9f], a
ld a, [de]
inc de
ld [$de92], a
ld a, [de]
inc de
ld [$de93], a
xor a
ld [$de94], a
ld hl, $de9d
ld [hl], e
inc hl
ld [hl], d
ld hl, $000b
add hl, bc
set 4, [hl]
ret
Func_3c670: ; 0x3c670
call Func_3ca10
cp $ff
jr z, .asm_3c6c9
cp $d0
jr c, .asm_3c680
.asm_3c67b
call Func_3c786
jr Func_3c670
.asm_3c680
ld hl, $0002
add hl, bc
bit 3, [hl]
jp nz, Func_3c723
bit 5, [hl]
jp nz, Func_3c723
bit 4, [hl]
jp nz, Func_3c750
ld a, [$de96]
and $f
call Func_3ca5b
ld a, [$de96]
swap a
and $f
jr z, .asm_3c6c2
ld hl, $0011
add hl, bc
ld [hl], a
ld e, a
ld hl, $0012
add hl, bc
ld d, [hl]
call Func_3ca2b
ld hl, $000f
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ld hl, $000b
add hl, bc
set 4, [hl]
jp Func_3c45c
.asm_3c6c2
ld hl, $000b
add hl, bc
set 5, [hl]
ret
.asm_3c6c9
ld hl, $0002
add hl, bc
bit 1, [hl]
jr nz, .asm_3c67b
ld a, [$de97]
cp $4
jr nc, .asm_3c6e0
ld hl, $00ca
add hl, bc
bit 0, [hl]
jr nz, .asm_3c6f6
.asm_3c6e0
ld hl, $0002
add hl, bc
bit 5, [hl]
call nz, Func_3c704
ld a, [$de97]
cp $4
jr nz, .asm_3c6f6
xor a
ld [$ff10], a
ld [$de9a], a
.asm_3c6f6
ld hl, $0002
add hl, bc
res 0, [hl]
ld hl, $0000
add hl, bc
xor a
ld [hli], a
ld [hli], a
ret
Func_3c704: ; 0x3c704
ld a, [$de97]
cp $4
ret nz
xor a
ld hl, $de21
ld [hli], a
ld [hl], a
ld hl, $de85
ld [hli], a
ld [hl], a
ld a, [$deac]
ld [$de98], a
xor a
ld [$deac], a
ld [$dead], a
ret
Func_3c723: ; 0x3c723
ld hl, $000b
add hl, bc
set 4, [hl]
ld a, [$de96]
call Func_3ca5b
call Func_3ca10
ld hl, $000e
add hl, bc
ld [hl], a
call Func_3ca10
ld hl, $000f
add hl, bc
ld [hl], a
ld a, [$de97]
and $3
cp $3
ret z
call Func_3ca10
ld hl, $0010
add hl, bc
ld [hl], a
ret
Func_3c750: ; 0x3c750
ld a, [$de97]
cp $3
ret nz
ld a, [$de96]
and $f
call Func_3ca5b
ld a, [$dea1]
ld e, a
ld d, $0
ld hl, $4ba2
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [$de96]
swap a
and $f
ret z
ld e, a
ld d, $0
add hl, de
add hl, de
ld a, [hli]
ld [$de9d], a
ld a, [hl]
ld [$de9e], a
xor a
ld [$de9f], a
ret
Func_3c786: ; 0x3c786
ld a, [$de96]
sub $d0
ld e, a
ld d, $0
ld hl, PointerTable_3c797
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
PointerTable_3c797: ; 0x3c797
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c9b6
dw Func_3c973
dw Func_3c9c1
dw Func_3c9aa
dw Func_3c994
dw Func_3c9a1
dw Func_3c987
dw Func_3c939
dw Func_3c951
dw Func_3c8ff
dw Func_3c8c4
dw Func_3c8b5
dw Func_3c95f
dw Func_3c9ca
dw Func_3c9da
dw Func_3c926
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c9e9
dw Func_3c7f7
dw Func_3c7f7
dw Func_3ca05
dw Func_3ca0b
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c7f7
dw Func_3c885
dw Func_3c88e
dw Func_3c833
dw Func_3c843
dw Func_3c80d
dw Func_3c7f8
Func_3c7f7: ; 0x3c7f7
ret
Func_3c7f8: ; 0x3c7f8
ld hl, $0002
add hl, bc
res 1, [hl]
ld hl, $0007
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ret
Func_3c80d: ; 0x3c80d
call Func_3ca10
ld e, a
call Func_3ca10
ld d, a
push de
ld hl, $0005
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0007
add hl, bc
ld [hl], e
inc hl
ld [hl], d
pop de
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ld hl, $0002
add hl, bc
set 1, [hl]
ret
Func_3c833: ; 0x3c833
call Func_3ca10
ld e, a
call Func_3ca10
ld d, a
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ret
Func_3c843: ; 0x3c843
call Func_3ca10
ld hl, $0002
add hl, bc
bit 2, [hl]
jr nz, .asm_3c859
and a
jr z, .asm_3c862
dec a
set 2, [hl]
ld hl, $0016
add hl, bc
ld [hl], a
.asm_3c859
ld hl, $0016
add hl, bc
ld a, [hl]
and a
jr z, .asm_3c872
dec [hl]
.asm_3c862
call Func_3ca10
ld e, a
call Func_3ca10
ld d, a
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ret
.asm_3c872
ld hl, $0002
add hl, bc
res 2, [hl]
ld hl, $0005
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
inc de
inc de
ld [hl], d
dec hl
ld [hl], e
ret
Func_3c885: ; 0x3c885
call Func_3ca10
ld hl, $000c
add hl, bc
ld [hl], a
ret
Func_3c88e: ; 0x3c88e
call Func_3ca10
ld hl, $000c
add hl, bc
cp [hl]
jr z, .asm_3c8a5
ld hl, $0005
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
inc de
inc de
ld [hl], d
dec hl
ld [hl], e
ret
.asm_3c8a5
call Func_3ca10
ld e, a
call Func_3ca10
ld d, a
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
ret
Func_3c8b5: ; 0x3c8b5
call Func_3ca10
ld hl, $0025
add hl, bc
ld [hl], a
ld hl, $0003
add hl, bc
set 3, [hl]
ret
Func_3c8c4: ; 0x3c8c4
ld hl, $0003
add hl, bc
set 0, [hl]
ld hl, $0004
add hl, bc
res 0, [hl]
call Func_3ca10
ld hl, $001c
add hl, bc
ld [hl], a
ld hl, $001b
add hl, bc
ld [hl], a
call Func_3ca10
ld hl, $001d
add hl, bc
ld d, a
and $f0
swap a
srl a
ld e, a
adc $0
swap a
or e
ld [hl], a
ld hl, $001e
add hl, bc
ld a, d
and $f
ld d, a
swap a
or d
ld [hl], a
ret
Func_3c8ff: ; 0x3c8ff
call Func_3ca10
ld [$de95], a
call Func_3ca10
ld d, a
and $f
ld e, a
ld a, d
swap a
and $f
ld d, a
call Func_3ca2b
ld hl, $001f
add hl, bc
ld [hl], e
ld hl, $0020
add hl, bc
ld [hl], d
ld hl, $0003
add hl, bc
set 1, [hl]
ret
Func_3c926: ; 0x3c926
ld hl, $0003
add hl, bc
set 4, [hl]
ld hl, $0027
add hl, bc
call Func_3ca10
ld [hld], a
call Func_3ca10
ld [hl], a
ret
Func_3c939: ; 0x3c939
ld hl, $0003
add hl, bc
set 2, [hl]
call Func_3ca10
rrca
rrca
ld hl, $001a
add hl, bc
ld [hl], a
and $c0
ld hl, $000d
add hl, bc
ld [hl], a
ret
Func_3c951: ; 0x3c951
ld hl, $0002
add hl, bc
bit 3, [hl]
jr z, .asm_3c95c
res 3, [hl]
ret
.asm_3c95c
set 3, [hl]
ret
Func_3c95f: ; 0x3c95f
ld hl, $0002
add hl, bc
bit 4, [hl]
jr z, .asm_3c96a
res 4, [hl]
ret
.asm_3c96a
set 4, [hl]
call Func_3ca10
ld [$dea1], a
ret
Func_3c973: ; 0x3c973
call Func_3ca10
ld hl, $0028
add hl, bc
ld [hl], a
ld a, [$de97]
and $3
cp $3
ret z
call Func_3c9a1
ret
Func_3c987: ; 0x3c987
call Func_3ca10
ld [$de9a], a
ld hl, $000b
add hl, bc
set 3, [hl]
ret
Func_3c994: ; 0x3c994
call Func_3ca10
rrca
rrca
and $c0
ld hl, $000d
add hl, bc
ld [hl], a
ret
Func_3c9a1: ; 0x3c9a1
call Func_3ca10
ld hl, $000e
add hl, bc
ld [hl], a
ret
Func_3c9aa: ; 0x3c9aa
call Func_3ca10
ld d, a
call Func_3ca10
ld e, a
call Func_3ca95
ret
Func_3c9b6: ; 0x3c9b6
ld hl, $0012
add hl, bc
ld a, [$de96]
and $7
ld [hl], a
ret
Func_3c9c1: ; 0x3c9c1
call Func_3ca10
ld hl, $0013
add hl, bc
ld [hl], a
ret
Func_3c9ca: ; 0x3c9ca
ld a, [$de97]
call Func_3caf4
call Func_3ca10
ld hl, $0019
add hl, bc
and [hl]
ld [hl], a
ret
Func_3c9da: ; 0x3c9da
call Func_3ca10
ld a, [$dea2]
and a
ret nz
ld a, [$de96]
ld [$de98], a
ret
Func_3c9e9: ; 0x3c9e9
call Func_3ca10
ld e, a
cp $80
jr nc, .asm_3c9f5
ld d, $0
jr .asm_3c9f7
.asm_3c9f5
ld d, $ff
.asm_3c9f7
ld hl, $0017
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
add hl, de
ld e, l
ld d, h
call Func_3ca95
ret
Func_3ca05: ; 0x3ca05
ld a, $1
ld [$dead], a
ret
Func_3ca0b: ; 0x3ca0b
xor a
ld [$dead], a
ret
Func_3ca10: ; 0x3ca10
push hl
push de
ld hl, $0005
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld a, [de]
ld [$de96], a
inc de
ld hl, $0005
add hl, bc
ld [hl], e
inc hl
ld [hl], d
pop de
pop hl
ld a, [$de96]
ret
Func_3ca2b: ; 0x3ca2b
ld hl, $0013
add hl, bc
ld a, [hl]
swap a
and $f
add d
push af
ld hl, $0013
add hl, bc
ld a, [hl]
and $f
ld l, a
ld d, $0
ld h, d
add hl, de
add hl, hl
ld de, $4b20 ; todo
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
pop af
.asm_3ca4b
cp $7
jr nc, .asm_3ca56
sra d
rr e
inc a
jr .asm_3ca4b
.asm_3ca56
ld a, d
and $7
ld d, a
ret
Func_3ca5b: ; 0x3ca5b
inc a
ld e, a
ld d, $0
ld hl, $0028
add hl, bc
ld a, [hl]
ld l, $0
call Func_3ca86
ld a, l
ld hl, $0017
add hl, bc
ld e, [hl]
inc hl
ld d, [hl]
ld hl, $0015
add hl, bc
ld l, [hl]
call Func_3ca86
ld e, l
ld d, h
ld hl, $0015
add hl, bc
ld [hl], e
ld hl, $0014
add hl, bc
ld [hl], d
ret
Func_3ca86: ; 0x3ca86
ld h, $0
.asm_3ca88
srl a
jr nc, .asm_3ca8d
add hl, de
.asm_3ca8d
sla e
rl d
and a
jr nz, .asm_3ca88
ret
Func_3ca95: ; 0x3ca95
push bc
ld a, [$de97]
cp $4
jr nc, .asm_3cab7
ld bc, $dd01
call Func_3cad1
ld bc, $dd33
call Func_3cad1
ld bc, $dd65
call Func_3cad1
ld bc, $dd97
call Func_3cad1
jr .asm_3cacf
.asm_3cab7
ld bc, $ddc9
call Func_3cad1
ld bc, $ddfb
call Func_3cad1
ld bc, $de2d
call Func_3cad1
ld bc, $de5f
call Func_3cad1
.asm_3cacf
pop bc
ret
Func_3cad1: ; 0x3cad1
ld hl, $0017
add hl, bc
ld [hl], e
inc hl
ld [hl], d
xor a
ld hl, $0015
add hl, bc
ld [hl], a
ret
Func_3cadf: ; 0x3cadf
call Func_3cb06
ld a, [$deae]
jr .asm_3caea
ld a, [$de97]
.asm_3caea
call Func_3caf4
ld hl, $0002
add hl, bc
set 0, [hl]
ret
Func_3caf4: ; 0x3caf4
push de
and $3
ld e, a
ld d, $0
ld hl, Data_3cc8e
add hl, de
ld a, [hl]
ld hl, $0019
add hl, bc
ld [hl], a
pop de
ret
Func_3cb06: ; 0x3cb06
ld a, [$deae]
and $3
cp $0
ret nz
xor a
ld [$ff10], a
ld [$de9a], a
ret
Func_3cb15: ; 0x3cb15
ld a, $1
ld [$dd00], a
ret
Func_3cb1b: ; 0x3cb1b
xor a
ld [$dd00], a
ret
INCBIN "baserom.gbc",$3cb20,$3cb52 - $3cb20
WavePatterns_BankF:
WavePattern0_BankF: ; 0x3cb52
db $02, $46, $8A, $CE, $FF, $FE, $ED, $DC, $CB, $A9, $87, $65, $44, $33, $22, $11
WavePattern1_BankF: ; 0x3cb62
db $02, $46, $8A, $CE, $EF, $FF, $FE, $EE, $DD, $CB, $A9, $87, $65, $43, $22, $11
WavePattern2_BankF: ; 0x3cb72
db $01, $23, $43, $21, $FE, $CA, $8A, $CE, $01, $23, $43, $21, $FE, $CA, $8A, $CE
WavePattern3_BankF: ; 0x3cb82
db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE
WavePattern4_BankF: ; 0x3cb92
db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE
INCBIN "baserom.gbc",$3cba2,$3cc8e - $3cba2
Data_3cc8e: ; 0x3cc8e
db $11, $22, $44, $88
WRAMPointerTable_3cc92: ; 0x3cc92
dw $DD01
dw $DD33
dw $DD65
dw $DD97
INCBIN "baserom.gbc",$3cc9a,$3cca2 - $3cc9a
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"
PointerTable_3e3ce: ; 0x3e3ce
dw $646A
dw $6480
dw $649A
dw $64BA
dw $64D0
dw $64E0
dw $64F0
dw $6500
dw $651A
dw $652E
dw $6544
dw $6554
dw $657C
dw $6589
dw $659F
dw $65B5
dw $65C5
dw $65E2
dw $65F4
dw $6606
dw $6618
dw $662A
dw $663C
dw $664E
dw $6660
dw $6672
dw $6684
dw $6696
dw $66A8
dw $66BA
dw $66CC
dw $66DE
dw $66F0
dw $6702
dw $671A
dw $675D
dw $6810
dw $68AE
dw $696D
dw $6A25
dw $6A68
dw $6A82
dw $6B17
dw $6BF9
dw $6C17
dw $6C31
dw $6C4B
dw $6C7D
dw $6C8F
dw $6CA7
dw $6CB7
dw $6CD1
dw $6CE9
dw $6CFF
dw $6D15
dw $6D31
dw $6D4D
dw $6D65
dw $6D78
dw $6D98
dw $6DB0
dw $6DC0
dw $6DD0
dw $6DE3
dw $6DF3
dw $6E1C
dw $6E32
dw $6E48
dw $6E5E
dw $6E78
dw $6E92
dw $6EAA
dw $6EC4
dw $6ED4
dw $6EEA
dw $6F00
dw $6F16
dw $6F27
INCBIN "baserom.gbc",$3e46a,$3ef63 - $3e46a
CryBasePointers: ; 0x3ef63
dw Cry_00_Header_BankF
dw Cry_01_Header_BankF
dw Cry_02_Header_BankF
dw Cry_03_Header_BankF
dw Cry_04_Header_BankF
dw Cry_05_Header_BankF
dw Cry_06_Header_BankF
dw Cry_07_Header_BankF
dw Cry_08_Header_BankF
dw Cry_09_Header_BankF
dw Cry_0A_Header_BankF
dw Cry_0B_Header_BankF
dw Cry_0C_Header_BankF
dw Cry_0D_Header_BankF
dw Cry_0E_Header_BankF
dw Cry_0F_Header_BankF
dw Cry_10_Header_BankF
dw Cry_11_Header_BankF
dw Cry_12_Header_BankF
dw Cry_13_Header_BankF
dw Cry_14_Header_BankF
dw Cry_15_Header_BankF
dw Cry_16_Header_BankF
dw Cry_17_Header_BankF
dw Cry_18_Header_BankF
dw Cry_19_Header_BankF
dw Cry_1A_Header_BankF
dw Cry_1B_Header_BankF
dw Cry_1C_Header_BankF
dw Cry_1D_Header_BankF
dw Cry_1E_Header_BankF
dw Cry_1F_Header_BankF
dw Cry_20_Header_BankF
dw Cry_21_Header_BankF
dw Cry_22_Header_BankF
dw Cry_23_Header_BankF
dw Cry_24_Header_BankF
dw Cry_25_Header_BankF
CryData: ; 0x3efaf
; Each entry is in the following format:
; [base cry id], [pitch], [length
dw $000F, $0080, $0081 ; BULBASAUR
dw $000F, $0020, $0100 ; IVYSAUR
dw $000F, $0000, $0140 ; VENUSAUR
dw $0004, $0060, $00C0 ; CHARMANDER
dw $0004, $0020, $00C0 ; CHARMELEON
dw $0004, $0000, $0100 ; CHARIZARD
dw $001D, $0060, $00C0 ; SQUIRTLE
dw $001D, $0020, $00C0 ; WARTORTLE
dw $0013, $0000, $0100 ; BLASTOISE
dw $0016, $0080, $00A0 ; CATERPIE
dw $001C, $00CC, $0081 ; METAPOD
dw $0016, $0077, $00C0 ; BUTTERFREE
dw $0015, $00EE, $0081 ; WEEDLE
dw $0013, $00FF, $0081 ; KAKUNA
dw $0013, $0060, $0100 ; BEEDRILL
dw $000E, $00DF, $0084 ; PIDGEY
dw $0014, $0028, $0140 ; PIDGEOTTO
dw $0014, $0011, $017F ; PIDGEOT
dw $0022, $0000, $0100 ; RATTATA
dw $0022, $0020, $017F ; RATICATE
dw $0010, $0000, $0100 ; SPEAROW
dw $0018, $0040, $0120 ; FEAROW
dw $0017, $0012, $00C0 ; EKANS
dw $0017, $00E0, $0090 ; ARBOK
dw $000F, $00EE, $0081 ; PIKACHU
dw $0009, $00EE, $0088 ; RAICHU
dw $0000, $0020, $00C0 ; SANDSHREW
dw $0000, $00FF, $017F ; SANDSLASH
dw $0001, $0000, $0100 ; NIDORAN_F
dw $0001, $002C, $0160 ; NIDORINA
dw $000A, $0000, $0100 ; NIDOQUEEN
dw $0000, $0000, $0100 ; NIDORAN_M
dw $0000, $002C, $0140 ; NIDORINO
dw $0009, $0000, $0100 ; NIDOKING
dw $0019, $00CC, $0081 ; CLEFAIRY
dw $0019, $00AA, $00A0 ; CLEFABLE
dw $0024, $004F, $0090 ; VULPIX
dw $0024, $0088, $00E0 ; NINETALES
dw $000E, $00FF, $00B5 ; JIGGLYPUFF
dw $000E, $0068, $00E0 ; WIGGLYTUFF
dw $001D, $00E0, $0100 ; ZUBAT
dw $001D, $00FA, $0100 ; GOLBAT
dw $0008, $00DD, $0081 ; ODDISH
dw $0008, $00AA, $00C0 ; GLOOM
dw $0023, $0022, $017F ; VILEPLUME
dw $001E, $0020, $0160 ; PARAS
dw $001E, $0042, $017F ; PARASECT
dw $001A, $0044, $00C0 ; VENONAT
dw $001A, $0029, $0100 ; VENOMOTH
dw $000B, $00AA, $0081 ; DIGLETT
dw $000B, $002A, $0090 ; DUGTRIO
dw $0019, $0077, $0090 ; MEOWTH
dw $0019, $0099, $017F ; PERSIAN
dw $0021, $0020, $00E0 ; PSYDUCK
dw $0021, $00FF, $00C0 ; GOLDUCK
dw $000A, $00DD, $00E0 ; MANKEY
dw $000A, $00AF, $00C0 ; PRIMEAPE
dw $001F, $0020, $00C0 ; GROWLITHE
dw $0015, $0000, $0100 ; ARCANINE
dw $000E, $00FF, $017F ; POLIWAG
dw $000E, $0077, $00E0 ; POLIWHIRL
dw $000E, $0000, $017F ; POLIWRATH
dw $001C, $00C0, $0081 ; ABRA
dw $001C, $00A8, $0140 ; KADABRA
dw $001C, $0098, $017F ; ALAKAZAM
dw $001F, $00EE, $0081 ; MACHOP
dw $001F, $0048, $00E0 ; MACHOKE
dw $001F, $0008, $0140 ; MACHAMP
dw $0021, $0055, $0081 ; BELLSPROUT
dw $0025, $0044, $00A0 ; WEEPINBELL
dw $0025, $0066, $014C ; VICTREEBEL
dw $001A, $0000, $0100 ; TENTACOOL
dw $001A, $00EE, $017F ; TENTACRUEL
dw $0024, $00F0, $0090 ; GEODUDE
dw $0024, $0000, $0100 ; GRAVELER
dw $0012, $00E0, $00C0 ; GOLEM
dw $0025, $0000, $0100 ; PONYTA
dw $0025, $0020, $0140 ; RAPIDASH
dw $0002, $0000, $0100 ; SLOWPOKE
dw $001F, $0000, $0100 ; SLOWBRO
dw $001C, $0080, $00E0 ; MAGNEMITE
dw $001C, $0020, $0140 ; MAGNETON
dw $0010, $00DD, $0081 ; FARFETCH_D
dw $000B, $00BB, $0081 ; DODUO
dw $000B, $0099, $00A0 ; DODRIO
dw $000C, $0088, $0140 ; SEEL
dw $000C, $0023, $017F ; DEWGONG
dw $0005, $0000, $0100 ; GRIMER
dw $0007, $00EF, $017F ; MUK
dw $0018, $0000, $0100 ; SHELLDER
dw $0018, $006F, $0160 ; CLOYSTER
dw $001C, $0000, $0100 ; GASTLY
dw $001C, $0030, $00C0 ; HAUNTER
dw $0007, $0000, $017F ; GENGAR
dw $0017, $00FF, $0140 ; ONIX
dw $000D, $0088, $00A0 ; DROWZEE
dw $000D, $00EE, $00C0 ; HYPNO
dw $0020, $0020, $0160 ; KRABBY
dw $0020, $00EE, $0160 ; KINGLER
dw $0006, $00ED, $0100 ; VOLTORB
dw $0006, $00A8, $0110 ; ELECTRODE
dw $000B, $0000, $0100 ; EXEGGCUTE
dw $000D, $0000, $0100 ; EXEGGUTOR
dw $0019, $0000, $0100 ; CUBONE
dw $0008, $004F, $00E0 ; MAROWAK
dw $0012, $0080, $0140 ; HITMONLEE
dw $000C, $00EE, $0140 ; HITMONCHAN
dw $000C, $0000, $0100 ; LICKITUNG
dw $0012, $00E6, $015D ; KOFFING
dw $0012, $00FF, $017F ; WEEZING
dw $0004, $0000, $0100 ; RHYHORN
dw $0011, $0000, $0100 ; RHYDON
dw $0014, $000A, $0140 ; CHANSEY
dw $0012, $0000, $0100 ; TANGELA
dw $0003, $0000, $0100 ; KANGASKHAN
dw $0019, $0099, $0090 ; HORSEA
dw $0019, $003C, $0081 ; SEADRA
dw $0016, $0080, $00C0 ; GOLDEEN
dw $0016, $0010, $017F ; SEAKING
dw $001E, $0002, $00A0 ; STARYU
dw $001E, $0000, $0100 ; STARMIE
dw $0020, $0008, $00C0 ; MR_MIME
dw $0016, $0000, $0100 ; SCYTHER
dw $000D, $00FF, $017F ; JYNX
dw $0006, $008F, $017F ; ELECTABUZZ
dw $0004, $00FF, $00B0 ; MAGMAR
dw $0014, $0000, $0100 ; PINSIR
dw $001D, $0011, $00C0 ; TAUROS
dw $0017, $0080, $0080 ; MAGIKARP
dw $0017, $0000, $0100 ; GYARADOS
dw $001B, $0000, $0100 ; LAPRAS
dw $000E, $00FF, $017F ; DITTO
dw $001A, $0088, $00E0 ; EEVEE
dw $001A, $00AA, $017F ; VAPOREON
dw $001A, $003D, $0100 ; JOLTEON
dw $001A, $0010, $00A0 ; FLAREON
dw $0025, $00AA, $017F ; PORYGON
dw $001F, $00F0, $0081 ; OMANYTE
dw $001F, $00FF, $00C0 ; OMASTAR
dw $0016, $00BB, $00C0 ; KABUTO
dw $0018, $00EE, $0081 ; KABUTOPS
dw $0023, $0020, $0170 ; AERODACTYL
dw $0005, $0055, $0081 ; SNORLAX
dw $0009, $0080, $00C0 ; ARTICUNO
dw $0018, $00FF, $0100 ; ZAPDOS
dw $0009, $00F8, $00C0 ; MOLTRES
dw $000F, $0060, $00C0 ; DRATINI
dw $000F, $0040, $0100 ; DRAGONAIR
dw $000F, $003C, $0140 ; DRAGONITE
dw $001E, $0099, $017F ; MEWTWO
dw $001E, $00EE, $017F ; MEW
Cry_00_Header_BankF: ; 0x3f339
db $84
dw $7733
db $05
dw $7742
db $07
dw $7751
Cry_01_Header_BankF: ; 0x3f342
db $84
dw $7943
db $05
dw $7956
db $07
dw $7969
Cry_02_Header_BankF: ; 0x3f34b
db $84
dw $78B8
db $05
dw $78C7
db $07
dw $78D5
Cry_03_Header_BankF: ; 0x3f354
db $84
dw $7652
db $05
dw $7671
db $07
dw $7690
Cry_04_Header_BankF: ; 0x3f35d
db $84
dw $7A01
db $05
dw $7A20
db $07
dw $7A3F
Cry_05_Header_BankF: ; 0x3f366
db $84
dw $77E1
db $05
dw $77F4
db $07
dw $7806
Cry_06_Header_BankF: ; 0x3f36f
db $84
dw $778B
db $05
dw $77A5
db $07
dw $77A6
Cry_07_Header_BankF: ; 0x3f378
db $84
dw $77B9
db $05
dw $77C8
db $07
dw $77D7
Cry_08_Header_BankF: ; 0x3f381
db $84
dw $79D1
db $05
dw $79E4
db $07
dw $79F7
Cry_09_Header_BankF: ; 0x3f38a
db $84
dw $74DB
db $05
dw $74F8
db $07
dw $7519
Cry_0A_Header_BankF: ; 0x3f393
db $84
dw $7976
db $05
dw $7995
db $07
dw $79B8
Cry_0B_Header_BankF: ; 0x3f39c
db $84
dw $7807
db $05
dw $7832
db $07
dw $7851
Cry_0C_Header_BankF: ; 0x3f3a5
db $84
dw $786A
db $05
dw $7891
db $07
dw $78B7
Cry_0D_Header_BankF: ; 0x3f3ae
db $84
dw $78D6
db $05
dw $78F5
db $07
dw $7924
Cry_0E_Header_BankF: ; 0x3f
db $84
dw $775B
db $05
dw $776E
db $07
dw $7781
Cry_0F_Header_BankF: ; 0x3f
db $84
dw $769D
db $05
dw $76B8
db $07
dw $76D3
Cry_10_Header_BankF: ; 0x3f3b7
db $84
dw $76E3
db $05
dw $7706
db $07
dw $7729
Cry_11_Header_BankF: ; 0x3f3c0
db $84
dw $75BF
db $05
dw $75DE
db $07
dw $7601
Cry_12_Header_BankF: ; 0x3f3c9
db $84
dw $7AD7
db $05
dw $7AEA
db $07
dw $7AFD
Cry_13_Header_BankF: ; 0x3f3d2
db $84
dw $7B0A
db $05
dw $7B25
db $07
dw $7B40
Cry_14_Header_BankF: ; 0x3f3db
db $84
dw $7B53
db $05
dw $7B62
db $07
dw $7B71
Cry_15_Header_BankF: ; 0x3f3e4
db $84
dw $7BE1
db $05
dw $7BFC
db $07
dw $7C17
Cry_16_Header_BankF: ; 0x3f3ed
db $84
dw $7A74
db $05
dw $7A83
db $07
dw $7A92
Cry_17_Header_BankF: ; 0x3f3f6
db $84
dw $7C2A
db $05
dw $7C3D
db $07
dw $7C50
Cry_18_Header_BankF: ; 0x3f3ff
db $84
dw $7D3A
db $05
dw $7D5D
db $07
dw $7D80
Cry_19_Header_BankF: ; 0x3f408
db $84
dw $7A52
db $05
dw $7A61
db $07
dw $7A73
Cry_1A_Header_BankF: ; 0x3f411
db $84
dw $7CAB
db $05
dw $7CC6
db $07
dw $7CE1
Cry_1B_Header_BankF: ; 0x3f41a
db $84
dw $7A9C
db $05
dw $7AB3
db $07
dw $7ACA
Cry_1C_Header_BankF: ; 0x3f423
db $84
dw $7C5D
db $05
dw $7C80
db $07
dw $7C9B
Cry_1D_Header_BankF: ; 0x3f42c
db $84
dw $7CF4
db $05
dw $7D0F
db $07
dw $7D2A
Cry_1E_Header_BankF: ; 0x3f435
db $84
dw $7B7B
db $05
dw $7B9E
db $07
dw $7BC5
Cry_1F_Header_BankF: ; 0x3f43e
db $84
dw $7D93
db $05
dw $7DA6
db $07
dw $7DB9
Cry_20_Header_BankF: ; 0x3f447
db $84
dw $7DC6
db $05
dw $7DD9
db $07
dw $7DEC
Cry_21_Header_BankF: ; 0x3f450
db $84
dw $7DF9
db $05
dw $7E1C
db $07
dw $7E3E
Cry_22_Header_BankF: ; 0x3f459
db $84
dw $7E3F
db $05
dw $7E52
db $07
dw $7E65
Cry_23_Header_BankF: ; 0x3f462
db $84
dw $7532
db $05
dw $7549
db $07
dw $755C
Cry_24_Header_BankF: ; 0x3f46b
db $84
dw $7569
db $05
dw $758C
db $07
dw $75AF
Cry_25_Header_BankF: ; 0x3f474
db $84
dw $7617
db $05
dw $762E
db $07
dw $7645
INCBIN "baserom.gbc",$3f48f,$40000 - $3f48f
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]
PlayPikachuSoundClip: ; 0x50000
; Plays the pcm (pulse-code modulation) sound clip of one of the pikachu noises.
sla a
ld c, a
ld b, $0
ld hl, PikachuSoundClipPointers
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
push hl
di
ld b, $4
.asm_50010
ld a, [$ff44]
and a
jr nz, .asm_50010
dec b
jr nz, .asm_50010
xor a
ld [$ff24], a
ld [$ff25], a
ld a, $80
ld [$ff26], a
xor a
ld [$ff1a], a
ld hl, $d84b
ld c, $30
ld b, $10
.asm_5002b
ld a, [$ff00+c]
ld [hli], a
ld a, $ff
ld [$ff00+c], a
inc c
dec b
jr nz, .asm_5002b
ld a, $80
ld [$ff1a], a
ld a, $ff
ld [$ff1b], a
ld a, $20
ld [$ff1c], a
ld a, $ff
ld [$ff1d], a
ld a, $87
ld [$ff1e], a
ld a, $77
ld [$ff24], a
ld a, $44
ld [$ff25], a
pop hl
call PlayPikachuPCM
xor a
ld [$ff24], a
ld [$ff25], a
ld [$ff26], a
ld hl, $d84b
ld c, $30
ld b, $10
.asm_50062
ld a, [hli]
ld [$ff00+c], a
inc c
dec b
jr nz, .asm_50062
ld a, $77
ld [$ff24], a
ld a, $ff
ld [$ff25], a
ld a, $80
ld [$ff26], a
ei
ret
PikachuSoundClipPointers: ; 0x50076
dw PikachuBillboardBonusSoundClip
dw PikachuThundershockSoundClip
PikachuBillboardBonusSoundClip: ; 0x5007a
dw $caf ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds)
INCBIN "audio/sound_clips/pi_ka_chu.pcm"
db $1f ; unused
PikachuThundershockSoundClip: ; 0x50d2c
dw $1227 ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds)
INCBIN "audio/sound_clips/piiiiikaaaa.pcm"
db $f0, $00, $00 ; unused
PlayPikachuPCM: ; 0x51f56
; Plays the audio PCM at [hl]
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
; bc = number of bytes in the sound clip's PCM (pulse-code modulation)
.loop
ld a, [hli]
ld d, a
ld a, $3
.playSingleSample
dec a
jr nz, .playSingleSample
call LoadNextSoundClipSample
call PlaySoundClipSample
call LoadNextSoundClipSample
call PlaySoundClipSample
call LoadNextSoundClipSample
call PlaySoundClipSample
call LoadNextSoundClipSample
call PlaySoundClipSample
call LoadNextSoundClipSample
call PlaySoundClipSample
call LoadNextSoundClipSample
call PlaySoundClipSample
call LoadNextSoundClipSample
call PlaySoundClipSample
call LoadNextSoundClipSample
dec bc
ld a, c
or b
jr nz, .loop
ret
LoadNextSoundClipSample: ; 0x51f94
ld a, d
and $80
srl a
srl a
ld [$ff1c], a
sla d
ret
PlaySoundClipSample: ; 0x51fa0
ld a, $3
.loop
dec a
jr nz, .loop
ret
INCBIN "baserom.gbc",$51fa6,$54000 - $51fa6
SECTION "bank15", ROMX, BANK[$15]
INCBIN "baserom.gbc",$54000,$58000 - $54000 ; 0x54000
SECTION "bank16", ROMX, BANK[$16]
BallSaver30SecondsOnPic: ; 0x58000
INCBIN "gfx/billboard/slot/30secondballsaver_on.2bpp"
BallSaver30SecondsOffPic: ; 0x58180
INCBIN "gfx/billboard/slot/30secondballsaver_off.2bpp"
BallSaver60SecondsOnPic: ; 0x58300
INCBIN "gfx/billboard/slot/60secondballsaver_on.2bpp"
BallSaver60SecondsOffPic: ; 0x580480
INCBIN "gfx/billboard/slot/60secondballsaver_off.2bpp"
BallSaver90SecondsOnPic: ; 0x58600
INCBIN "gfx/billboard/slot/90secondballsaver_on.2bpp"
BallSaver90SecondsOffPic: ; 0x58780
INCBIN "gfx/billboard/slot/90secondballsaver_off.2bpp"
PikachuSaverOnPic: ; 0x58900
INCBIN "gfx/billboard/slot/pikachusaver_on.2bpp"
PikachuSaverOffPic: ; 0x58a80
INCBIN "gfx/billboard/slot/pikachusaver_off.2bpp"
ExtraBallOnPic: ; 0x58c00
INCBIN "gfx/billboard/slot/extraball_on.2bpp"
ExtraBallOffPic: ; 0x58d80
INCBIN "gfx/billboard/slot/extraball_off.2bpp"
SmallRewardOnPic: ; 0x58f00
INCBIN "gfx/billboard/slot/small_on.2bpp"
SmallRewardOffPic: ; 0x59080
INCBIN "gfx/billboard/slot/small_off.2bpp"
BigRewardOnPic: ; 0x59200
INCBIN "gfx/billboard/slot/big_on.2bpp"
BigRewardOffPic: ; 0x59380
INCBIN "gfx/billboard/slot/big_off.2bpp"
CatchEmModeOnPic: ; 0x59500
INCBIN "gfx/billboard/slot/catchem_on.2bpp"
CatchEmModeOffPic: ; 0x59680
INCBIN "gfx/billboard/slot/catchem_off.2bpp"
EvolutionModeOnPic: ; 0x59800
INCBIN "gfx/billboard/slot/evolution_on.2bpp"
EvolutionModeOffPic: ; 0x59980
INCBIN "gfx/billboard/slot/evolution_off.2bpp"
GreatBallOnPic: ; 0x59b00
INCBIN "gfx/billboard/slot/greatball_on.2bpp"
GreatBallOffPic: ; 0x59c80
INCBIN "gfx/billboard/slot/greatball_off.2bpp"
UltraBallOnPic: ; 0x59e00
INCBIN "gfx/billboard/slot/ultraball_on.2bpp"
UltraBallOffPic: ; 0x59f80
INCBIN "gfx/billboard/slot/ultraball_off.2bpp"
MasterBallOnPic: ; 0x5a100
INCBIN "gfx/billboard/slot/masterball_on.2bpp"
MasterBallOffPic: ; 0x5a280
INCBIN "gfx/billboard/slot/masterball_off.2bpp"
BonusMultiplierOnPic: ; 0x5a400
INCBIN "gfx/billboard/slot/bonusmultiplier_on.2bpp"
BonusMultiplierOffPic: ; 0x5a580
INCBIN "gfx/billboard/slot/bonusmultiplier_off.2bpp"
HurryUpOnPic: ; 0x5a700
INCBIN "gfx/billboard/hurryup_on.2bpp"
HurryUpOffPic: ; 0x5a880
INCBIN "gfx/billboard/hurryup_off.2bpp"
HurryUp2OnPic: ; 0x5aa00
INCBIN "gfx/billboard/hurryup2_on.2bpp"
HurryUp2OffPic: ; 0x5ab80
INCBIN "gfx/billboard/hurryup2_off.2bpp"
GoToNextOnPic: ; 0x5ad00
INCBIN "gfx/billboard/gotonext_on.2bpp"
GoToNextOffPic: ; 0x5ae80
INCBIN "gfx/billboard/gotonext_off.2bpp"
GoToGengarBonusOnPic: ; 0x5b000
INCBIN "gfx/billboard/bonus_stages/gotogengarbonus_on.2bpp"
GoToGengarBonusOffPic: ; 0x5b180
INCBIN "gfx/billboard/bonus_stages/gotogengarbonus_off.2bpp"
GoToMewtwoBonusOnPic: ; 0x5b300
INCBIN "gfx/billboard/bonus_stages/gotomewtwobonus_on.2bpp"
GoToMewtwoBonusOffPic: ; 0x5b480
INCBIN "gfx/billboard/bonus_stages/gotomewtwobonus_off.2bpp"
GoToMeowthBonusOnPic: ; 0x5b600
INCBIN "gfx/billboard/bonus_stages/gotomeowthbonus_on.2bpp"
GoToMeowthBonusOffPic: ; 0x5b780
INCBIN "gfx/billboard/bonus_stages/gotomeowthbonus_off.2bpp"
GoToDiglettBonusOnPic: ; 0x5b900
INCBIN "gfx/billboard/bonus_stages/gotodiglettbonus_on.2bpp"
GoToDiglettBonusOffPic: ; 0x5ba80
INCBIN "gfx/billboard/bonus_stages/gotodiglettbonus_off.2bpp"
GoToSeelBonusOnPic: ; 0x5bc00
INCBIN "gfx/billboard/bonus_stages/gotoseelbonus_on.2bpp"
GoToSeelBonusOffPic: ; 0x5bd80
INCBIN "gfx/billboard/bonus_stages/gotoseelbonus_off.2bpp"
ChanseyBillboardBGPalette1: ; 0x5bf00
RGB 31, 31, 31
RGB 31, 15, 20
RGB 27, 5, 7
RGB 0, 0, 0
ChanseyBillboardBGPalette2: ; 0x5bf08
RGB 31, 31, 31
RGB 31, 15, 20
RGB 27, 5, 7
RGB 0, 0, 0
TangelaBillboardBGPalette1: ; 0x5bf10
RGB 31, 31, 31
RGB 15, 21, 29
RGB 4, 8, 18
RGB 0, 0, 0
TangelaBillboardBGPalette2: ; 0x5bf18
RGB 31, 31, 31
RGB 15, 21, 29
RGB 4, 8, 18
RGB 0, 0, 0
KangaskhanBillboardBGPalette1: ; 0x5bf20
RGB 31, 31, 31
RGB 31, 18, 9
RGB 17, 10, 4
RGB 0, 0, 0
KangaskhanBillboardBGPalette2: ; 0x5bf28
RGB 31, 31, 31
RGB 31, 18, 9
RGB 17, 10, 4
RGB 0, 0, 0
HorseaBillboardBGPalette1: ; 0x5bf30
RGB 31, 31, 31
RGB 12, 19, 31
RGB 4, 7, 22
RGB 0, 0, 0
HorseaBillboardBGPalette2: ; 0x5bf38
RGB 31, 31, 31
RGB 25, 26, 3
RGB 4, 7, 22
RGB 0, 0, 0
SeadraBillboardBGPalette1: ; 0x5bf40
RGB 31, 31, 31
RGB 12, 19, 31
RGB 4, 7, 22
RGB 0, 0, 0
SeadraBillboardBGPalette2: ; 0x5bf48
RGB 31, 31, 31
RGB 12, 19, 31
RGB 4, 7, 22
RGB 0, 0, 0
GoldeenBillboardBGPalette1: ; 0x5bf50
RGB 31, 31, 31
RGB 30, 16, 4
RGB 29, 3, 0
RGB 0, 0, 0
GoldeenBillboardBGPalette2: ; 0x5bf58
RGB 31, 31, 31
RGB 30, 16, 4
RGB 29, 3, 0
RGB 0, 0, 0
SeakingBillboardBGPalette1: ; 0x5bf60
RGB 31, 31, 31
RGB 29, 17, 5
RGB 31, 5, 0
RGB 0, 0, 0
SeakingBillboardBGPalette2: ; 0x5bf68
RGB 31, 31, 31
RGB 29, 17, 5
RGB 31, 5, 0
RGB 0, 0, 0
StaryuBillboardBGPalette1: ; 0x5bf70
RGB 31, 31, 31
RGB 31, 20, 0
RGB 19, 3, 6
RGB 0, 0, 0
StaryuBillboardBGPalette2: ; 0x5bf78
RGB 31, 31, 31
RGB 31, 16, 8
RGB 25, 3, 2
RGB 0, 0, 0
StarmieBillboardBGPalette1: ; 0x5bf80
RGB 31, 31, 31
RGB 31, 17, 0
RGB 15, 8, 16
RGB 0, 0, 0
StarmieBillboardBGPalette2: ; 0x5bf88
RGB 31, 31, 31
RGB 31, 16, 8
RGB 25, 3, 2
RGB 0, 0, 0
MrMimeBillboardBGPalette1: ; 0x5bf90
RGB 31, 31, 31
RGB 31, 17, 19
RGB 28, 6, 4
RGB 0, 0, 0
MrMimeBillboardBGPalette2: ; 0x5bf98
RGB 31, 31, 31
RGB 31, 17, 19
RGB 28, 6, 4
RGB 0, 0, 0
ScytherBillboardBGPalette1: ; 0x5bfa0
RGB 31, 31, 31
RGB 17, 31, 4
RGB 4, 16, 4
RGB 0, 0, 0
ScytherBillboardBGPalette2: ; 0x5bfa8
RGB 31, 31, 31
RGB 17, 31, 4
RGB 4, 16, 4
RGB 0, 0, 0
JynxBillboardBGPalette1: ; 0x5bfb0
RGB 31, 31, 31
RGB 29, 13, 15
RGB 30, 6, 1
RGB 0, 0, 0
JynxBillboardBGPalette2: ; 0x5bfb8
RGB 31, 31, 31
RGB 31, 21, 0
RGB 30, 6, 1
RGB 0, 0, 0
ElectabuzzBillboardBGPalette1: ; 0x5bfc0
RGB 31, 31, 31
RGB 31, 27, 0
RGB 19, 11, 0
RGB 0, 0, 0
ElectabuzzBillboardBGPalette2: ; 0x5bfc8
RGB 31, 31, 31
RGB 31, 27, 0
RGB 19, 11, 0
RGB 0, 0, 0
MagmarBillboardBGPalette1: ; 0x5bfd0
RGB 31, 31, 31
RGB 31, 27, 0
RGB 28, 6, 0
RGB 0, 0, 0
MagmarBillboardBGPalette2: ; 0x5bfd8
RGB 31, 31, 31
RGB 31, 27, 0
RGB 28, 6, 0
RGB 0, 0, 0
PinsirBillboardBGPalette1: ; 0x5bfe0
RGB 31, 31, 31
RGB 17, 23, 10
RGB 21, 10, 3
RGB 0, 0, 0
PinsirBillboardBGPalette2: ; 0x5bfe8
RGB 31, 31, 31
RGB 31, 19, 8
RGB 21, 10, 3
RGB 0, 0, 0
TaurosBillboardBGPalette1: ; 0x5bff0
RGB 31, 31, 31
RGB 31, 18, 7
RGB 17, 9, 0
RGB 0, 0, 0
TaurosBillboardBGPalette2: ; 0x5bff8
RGB 31, 31, 31
RGB 14, 16, 20
RGB 17, 9, 0
RGB 0, 0, 0
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"
MeowthBonusBaseGameBoyGfx: ; 0x5f600
INCBIN "gfx/stage/meowth_bonus/meowth_bonus_base_gameboy.2bpp"
SECTION "bank18", ROMX, BANK[$18]
VenomothPic: ; 0x60000
INCBIN "gfx/billboard/mon_pics/venomoth.2bpp"
VenomothSilhouettePic: ; 0x60180
INCBIN "gfx/billboard/mon_silhouettes/venomoth.2bpp"
DiglettPic: ; 0x60300
INCBIN "gfx/billboard/mon_pics/diglett.2bpp"
DiglettSilhouettePic: ; 0x60480
INCBIN "gfx/billboard/mon_silhouettes/diglett.2bpp"
DugtrioPic: ; 0x60600
INCBIN "gfx/billboard/mon_pics/dugtrio.2bpp"
DugtrioSilhouettePic: ; 0x60780
INCBIN "gfx/billboard/mon_silhouettes/dugtrio.2bpp"
MeowthPic: ; 0x60900
INCBIN "gfx/billboard/mon_pics/meowth.2bpp"
MeowthSilhouettePic: ; 0x60a80
INCBIN "gfx/billboard/mon_silhouettes/meowth.2bpp"
PersianPic: ; 0x60c00
INCBIN "gfx/billboard/mon_pics/persian.2bpp"
PersianSilhouettePic: ; 0x60d80
INCBIN "gfx/billboard/mon_silhouettes/persian.2bpp"
PsyduckPic: ; 0x60f00
INCBIN "gfx/billboard/mon_pics/psyduck.2bpp"
PsyduckSilhouettePic: ; 0x61080
INCBIN "gfx/billboard/mon_silhouettes/psyduck.2bpp"
GolduckPic: ; 0x61200
INCBIN "gfx/billboard/mon_pics/golduck.2bpp"
GolduckSilhouettePic: ; 0x61380
INCBIN "gfx/billboard/mon_silhouettes/golduck.2bpp"
MankeyPic: ; 0x61500
INCBIN "gfx/billboard/mon_pics/mankey.2bpp"
MankeySilhouettePic: ; 0x61680
INCBIN "gfx/billboard/mon_silhouettes/mankey.2bpp"
PrimeapePic: ; 0x61800
INCBIN "gfx/billboard/mon_pics/primeape.2bpp"
PrimeapeSilhouettePic: ; 0x61980
INCBIN "gfx/billboard/mon_silhouettes/primeape.2bpp"
GrowlithePic: ; 0x61b00
INCBIN "gfx/billboard/mon_pics/growlithe.2bpp"
GrowlitheSilhouettePic: ; 0x61c80
INCBIN "gfx/billboard/mon_silhouettes/growlithe.2bpp"
ArcaninePic: ; 0x61e00
INCBIN "gfx/billboard/mon_pics/arcanine.2bpp"
ArcanineSilhouettePic: ; 0x61f80
INCBIN "gfx/billboard/mon_silhouettes/arcanine.2bpp"
PoliwagPic: ; 0x62100
INCBIN "gfx/billboard/mon_pics/poliwag.2bpp"
PoliwagSilhouettePic: ; 0x62280
INCBIN "gfx/billboard/mon_silhouettes/poliwag.2bpp"
PoliwhirlPic: ; 0x62400
INCBIN "gfx/billboard/mon_pics/poliwhirl.2bpp"
PoliwhirlSilhouettePic: ; 0x62580
INCBIN "gfx/billboard/mon_silhouettes/poliwhirl.2bpp"
PoliwrathPic: ; 0x62700
INCBIN "gfx/billboard/mon_pics/poliwrath.2bpp"
PoliwrathSilhouettePic: ; 0x62880
INCBIN "gfx/billboard/mon_silhouettes/poliwrath.2bpp"
AbraPic: ; 0x62a00
INCBIN "gfx/billboard/mon_pics/abra.2bpp"
AbraSilhouettePic: ; 0x62b80
INCBIN "gfx/billboard/mon_silhouettes/abra.2bpp"
KadabraPic: ; 0x62d00
INCBIN "gfx/billboard/mon_pics/kadabra.2bpp"
KadabraSilhouettePic: ; 0x62e80
INCBIN "gfx/billboard/mon_silhouettes/kadabra.2bpp"
StageRedFieldTopStatusBarSymbolsGfx_GameBoy: ; 0x63000
INCBIN "gfx/stage/red_top/status_bar_symbols_gameboy.2bpp"
INCBIN "baserom.gbc",$63100,$632a0 - $63100
StageRedFieldTopBaseGameBoyGfx: ; 0x632a0
INCBIN "gfx/stage/red_top/red_top_base_gameboy.2bpp"
SECTION "bank19", ROMX, BANK[$19]
NidorinoPic: ; 0x64000
INCBIN "gfx/billboard/mon_pics/nidorino.2bpp"
NidorinoSilhouettePic: ; 0x64180
INCBIN "gfx/billboard/mon_silhouettes/nidorino.2bpp"
NidokingPic: ; 0x64300
INCBIN "gfx/billboard/mon_pics/nidoking.2bpp"
NidokingSilhouettePic: ; 0x64480
INCBIN "gfx/billboard/mon_silhouettes/nidoking.2bpp"
ClefairyPic: ; 0x64600
INCBIN "gfx/billboard/mon_pics/clefairy.2bpp"
ClefairySilhouettePic: ; 0x64780
INCBIN "gfx/billboard/mon_silhouettes/clefairy.2bpp"
ClefablePic: ; 0x64900
INCBIN "gfx/billboard/mon_pics/clefable.2bpp"
ClefableSilhouettePic: ; 0x64a80
INCBIN "gfx/billboard/mon_silhouettes/clefable.2bpp"
VulpixPic: ; 0x64c00
INCBIN "gfx/billboard/mon_pics/vulpix.2bpp"
VulpixSilhouettePic: ; 0x64d80
INCBIN "gfx/billboard/mon_silhouettes/vulpix.2bpp"
NinetalesPic: ; 0x64f00
INCBIN "gfx/billboard/mon_pics/ninetales.2bpp"
NinetalesSilhouettePic: ; 0x65080
INCBIN "gfx/billboard/mon_silhouettes/ninetales.2bpp"
JigglypuffPic: ; 0x65200
INCBIN "gfx/billboard/mon_pics/jigglypuff.2bpp"
JigglypuffSilhouettePic: ; 0x65380
INCBIN "gfx/billboard/mon_silhouettes/jigglypuff.2bpp"
WigglytuffPic: ; 0x65500
INCBIN "gfx/billboard/mon_pics/wigglytuff.2bpp"
WigglytuffSilhouettePic: ; 0x65680
INCBIN "gfx/billboard/mon_silhouettes/wigglytuff.2bpp"
ZubatPic: ; 0x65800
INCBIN "gfx/billboard/mon_pics/zubat.2bpp"
ZubatSilhouettePic: ; 0x65980
INCBIN "gfx/billboard/mon_silhouettes/zubat.2bpp"
GolbatPic: ; 0x65b00
INCBIN "gfx/billboard/mon_pics/golbat.2bpp"
GolbatSilhouettePic: ; 0x65c80
INCBIN "gfx/billboard/mon_silhouettes/golbat.2bpp"
OddishPic: ; 0x65e00
INCBIN "gfx/billboard/mon_pics/oddish.2bpp"
OddishSilhouettePic: ; 0x65f80
INCBIN "gfx/billboard/mon_silhouettes/oddish.2bpp"
GloomPic: ; 0x66100
INCBIN "gfx/billboard/mon_pics/gloom.2bpp"
GloomSilhouettePic: ; 0x66280
INCBIN "gfx/billboard/mon_silhouettes/gloom.2bpp"
VileplumePic: ; 0x66400
INCBIN "gfx/billboard/mon_pics/vileplume.2bpp"
VileplumeSilhouettePic: ; 0x66580
INCBIN "gfx/billboard/mon_silhouettes/vileplume.2bpp"
ParasPic: ; 0x66700
INCBIN "gfx/billboard/mon_pics/paras.2bpp"
ParasSilhouettePic: ; 0x66880
INCBIN "gfx/billboard/mon_silhouettes/paras.2bpp"
ParasectPic: ; 0x66a00
INCBIN "gfx/billboard/mon_pics/parasect.2bpp"
ParasectSilhouettePic: ; 0x66b80
INCBIN "gfx/billboard/mon_silhouettes/parasect.2bpp"
VenonatPic: ; 0x66d00
INCBIN "gfx/billboard/mon_pics/venonat.2bpp"
VenonatSilhouettePic: ; 0x66e80
INCBIN "gfx/billboard/mon_silhouettes/venonat.2bpp"
StageBlueFieldBottomBaseGameBoyGfx: ; 0x67000
INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboy.2bpp"
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"
StageBlueFieldTopStatusBarSymbolsGfx_GameBoy: ; 0x6b000
INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboy.2bpp"
INCBIN "baserom.gbc",$6b100,$6b2a0 - $6b100
StageBlueFieldTopBaseGameBoyGfx: ; 0x6b2a0
INCBIN "gfx/stage/blue_top/blue_top_base_gameboy.2bpp"
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,$73000 - $71500
GengarBonusBaseGameBoyGfx: ; 0x73000
INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboy.2bpp"
SECTION "bank1d", ROMX, BANK[$1d]
PidgeottoPic: ; 0x74000
INCBIN "gfx/billboard/mon_pics/pidgeotto.2bpp"
PidgeottoSilhouettePic: ; 0x74180
INCBIN "gfx/billboard/mon_silhouettes/pidgeotto.2bpp"
PidgeotPic: ; 0x74300
INCBIN "gfx/billboard/mon_pics/pidgeot.2bpp"
PidgeotSilhouettePic: ; 0x74480
INCBIN "gfx/billboard/mon_silhouettes/pidgeot.2bpp"
RattataPic: ; 0x74600
INCBIN "gfx/billboard/mon_pics/rattata.2bpp"
RattataSilhouettePic: ; 0x74780
INCBIN "gfx/billboard/mon_silhouettes/rattata.2bpp"
RaticatePic: ; 0x74900
INCBIN "gfx/billboard/mon_pics/raticate.2bpp"
RaticateSilhouettePic: ; 0x74a80
INCBIN "gfx/billboard/mon_silhouettes/raticate.2bpp"
SpearowPic: ; 0x74c00
INCBIN "gfx/billboard/mon_pics/spearow.2bpp"
SpearowSilhouettePic: ; 0x74d80
INCBIN "gfx/billboard/mon_silhouettes/spearow.2bpp"
FearowPic: ; 0x74f00
INCBIN "gfx/billboard/mon_pics/fearow.2bpp"
FearowSilhouettePic: ; 0x75080
INCBIN "gfx/billboard/mon_silhouettes/fearow.2bpp"
EkansPic: ; 0x75200
INCBIN "gfx/billboard/mon_pics/ekans.2bpp"
EkansSilhouettePic: ; 0x75380
INCBIN "gfx/billboard/mon_silhouettes/ekans.2bpp"
ArbokPic: ; 0x75500
INCBIN "gfx/billboard/mon_pics/arbok.2bpp"
ArbokSilhouettePic: ; 0x75680
INCBIN "gfx/billboard/mon_silhouettes/arbok.2bpp"
PikachuPic: ; 0x75800
INCBIN "gfx/billboard/mon_pics/pikachu.2bpp"
PikachuSilhouettePic: ; 0x75980
INCBIN "gfx/billboard/mon_silhouettes/pikachu.2bpp"
RaichuPic: ; 0x75b00
INCBIN "gfx/billboard/mon_pics/raichu.2bpp"
RaichuSilhouettePic: ; 0x75c80
INCBIN "gfx/billboard/mon_silhouettes/raichu.2bpp"
SandshrewPic: ; 0x75e00
INCBIN "gfx/billboard/mon_pics/sandshrew.2bpp"
SandshrewSilhouettePic: ; 0x75f80
INCBIN "gfx/billboard/mon_silhouettes/sandshrew.2bpp"
SandslashPic: ; 0x76100
INCBIN "gfx/billboard/mon_pics/sandslash.2bpp"
SandslashSilhouettePic: ; 0x76280
INCBIN "gfx/billboard/mon_silhouettes/sandslash.2bpp"
Nidoran_FPic: ; 0x76400
INCBIN "gfx/billboard/mon_pics/nidoran_f.2bpp"
Nidoran_FSilhouettePic: ; 0x76580
INCBIN "gfx/billboard/mon_silhouettes/nidoran_f.2bpp"
NidorinaPic: ; 0x76700
INCBIN "gfx/billboard/mon_pics/nidorina.2bpp"
NidorinaSilhouettePic: ; 0x76880
INCBIN "gfx/billboard/mon_silhouettes/nidorina.2bpp"
NidoqueenPic: ; 0x76a00
INCBIN "gfx/billboard/mon_pics/nidoqueen.2bpp"
NidoqueenSilhouettePic: ; 0x76b80
INCBIN "gfx/billboard/mon_silhouettes/nidoqueen.2bpp"
Nidoran_MPic: ; 0x76d00
INCBIN "gfx/billboard/mon_pics/nidoran_m.2bpp"
Nidoran_MSilhouettePic: ; 0x76e80
INCBIN "gfx/billboard/mon_silhouettes/nidoran_m.2bpp"
StageRedFieldBottomBaseGameBoyGfx: ; 0x77000
INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboy.2bpp"
SECTION "bank1e", ROMX, BANK[$1e]
BulbasaurPic: ; 0x78000
INCBIN "gfx/billboard/mon_pics/bulbasaur.2bpp"
BulbasaurSilhouettePic: ; 0x78180
INCBIN "gfx/billboard/mon_silhouettes/bulbasaur.2bpp"
IvysaurPic: ; 0x78300
INCBIN "gfx/billboard/mon_pics/ivysaur.2bpp"
IvysaurSilhouettePic: ; 0x78480
INCBIN "gfx/billboard/mon_silhouettes/ivysaur.2bpp"
VenusaurPic: ; 0x78600
INCBIN "gfx/billboard/mon_pics/venusaur.2bpp"
VenusaurSilhouettePic: ; 0x78780
INCBIN "gfx/billboard/mon_silhouettes/venusaur.2bpp"
CharmanderPic: ; 0x78900
INCBIN "gfx/billboard/mon_pics/charmander.2bpp"
CharmanderSilhouettePic: ; 0x78a80
INCBIN "gfx/billboard/mon_silhouettes/charmander.2bpp"
CharmeleonPic: ; 0x78c00
INCBIN "gfx/billboard/mon_pics/charmeleon.2bpp"
CharmeleonSilhouettePic: ; 0x78d80
INCBIN "gfx/billboard/mon_silhouettes/charmeleon.2bpp"
CharizardPic: ; 0x78f00
INCBIN "gfx/billboard/mon_pics/charizard.2bpp"
CharizardSilhouettePic: ; 0x79080
INCBIN "gfx/billboard/mon_silhouettes/charizard.2bpp"
SquirtlePic: ; 0x79200
INCBIN "gfx/billboard/mon_pics/squirtle.2bpp"
SquirtleSilhouettePic: ; 0x79380
INCBIN "gfx/billboard/mon_silhouettes/squirtle.2bpp"
WartortlePic: ; 0x79500
INCBIN "gfx/billboard/mon_pics/wartortle.2bpp"
WartortleSilhouettePic: ; 0x79680
INCBIN "gfx/billboard/mon_silhouettes/wartortle.2bpp"
BlastoisePic: ; 0x79800
INCBIN "gfx/billboard/mon_pics/blastoise.2bpp"
BlastoiseSilhouettePic: ; 0x79980
INCBIN "gfx/billboard/mon_silhouettes/blastoise.2bpp"
CaterpiePic: ; 0x79b00
INCBIN "gfx/billboard/mon_pics/caterpie.2bpp"
CaterpieSilhouettePic: ; 0x79c80
INCBIN "gfx/billboard/mon_silhouettes/caterpie.2bpp"
MetapodPic: ; 0x79e00
INCBIN "gfx/billboard/mon_pics/metapod.2bpp"
MetapodSilhouettePic: ; 0x79f80
INCBIN "gfx/billboard/mon_silhouettes/metapod.2bpp"
ButterfreePic: ; 0x7a100
INCBIN "gfx/billboard/mon_pics/butterfree.2bpp"
ButterfreeSilhouettePic: ; 0x7a280
INCBIN "gfx/billboard/mon_silhouettes/butterfree.2bpp"
WeedlePic: ; 0x7a400
INCBIN "gfx/billboard/mon_pics/weedle.2bpp"
WeedleSilhouettePic: ; 0x7a580
INCBIN "gfx/billboard/mon_silhouettes/weedle.2bpp"
KakunaPic: ; 0x7a700
INCBIN "gfx/billboard/mon_pics/kakuna.2bpp"
KakunaSilhouettePic: ; 0x7a880
INCBIN "gfx/billboard/mon_silhouettes/kakuna.2bpp"
BeedrillPic: ; 0x7aa00
INCBIN "gfx/billboard/mon_pics/beedrill.2bpp"
BeedrillSilhouettePic: ; 0x7ab80
INCBIN "gfx/billboard/mon_silhouettes/beedrill.2bpp"
PidgeyPic: ; 0x7ad00
INCBIN "gfx/billboard/mon_pics/pidgey.2bpp"
PidgeySilhouettePic: ; 0x7ae80
INCBIN "gfx/billboard/mon_silhouettes/pidgey.2bpp"
BonusMultiplierX1OnPic: ; 0x7b000
INCBIN "gfx/billboard/slot/bonusmultiplierX1_on.2bpp"
BonusMultiplierX1OffPic: ; 0x7b180
INCBIN "gfx/billboard/slot/bonusmultiplierX1_off.2bpp"
BonusMultiplierX2OnPic: ; 0x7b300
INCBIN "gfx/billboard/slot/bonusmultiplierX2_on.2bpp"
BonusMultiplierX2OffPic: ; 0x7b480
INCBIN "gfx/billboard/slot/bonusmultiplierX2_off.2bpp"
BonusMultiplierX3OnPic: ; 0x7b600
INCBIN "gfx/billboard/slot/bonusmultiplierX3_on.2bpp"
BonusMultiplierX3OffPic: ; 0x7b780
INCBIN "gfx/billboard/slot/bonusmultiplierX3_off.2bpp"
BonusMultiplierX4OnPic: ; 0x7b900
INCBIN "gfx/billboard/slot/bonusmultiplierX4_on.2bpp"
BonusMultiplierX4OffPic: ; 0x7ba80
INCBIN "gfx/billboard/slot/bonusmultiplierX4_off.2bpp"
BonusMultiplierX5OnPic: ; 0x7bc00
INCBIN "gfx/billboard/slot/bonusmultiplierX5_on.2bpp"
BonusMultiplierX5OffPic: ; 0x7bd80
INCBIN "gfx/billboard/slot/bonusmultiplierX5_off.2bpp"
MagikarpBillboardBGPalette1: ; 0x7bf00
RGB 31, 31, 31
RGB 29, 28, 4
RGB 31, 7, 0
RGB 0, 0, 0
MagikarpBillboardBGPalette2: ; 0x7bf08
RGB 31, 31, 31
RGB 31, 14, 12
RGB 31, 7, 0
RGB 0, 0, 0
GyaradosBillboardBGPalette1: ; 0x7bf10
RGB 31, 31, 31
RGB 12, 18, 31
RGB 3, 9, 14
RGB 0, 0, 0
GyaradosBillboardBGPalette2: ; 0x7bf18
RGB 31, 31, 31
RGB 31, 14, 16
RGB 15, 3, 0
RGB 0, 0, 0
LaprasBillboardBGPalette1: ; 0x7bf20
RGB 31, 31, 31
RGB 12, 19, 31
RGB 5, 8, 19
RGB 0, 0, 0
LaprasBillboardBGPalette2: ; 0x7bf28
RGB 31, 31, 31
RGB 12, 19, 31
RGB 5, 8, 19
RGB 0, 0, 0
DittoBillboardBGPalette1: ; 0x7bf30
RGB 31, 31, 31
RGB 26, 9, 21
RGB 15, 2, 10
RGB 0, 0, 0
DittoBillboardBGPalette2: ; 0x7bf38
RGB 31, 31, 31
RGB 26, 9, 21
RGB 15, 2, 10
RGB 0, 0, 0
EeveeBillboardBGPalette1: ; 0x7bf40
RGB 31, 31, 31
RGB 25, 16, 4
RGB 12, 7, 0
RGB 0, 0, 0
EeveeBillboardBGPalette2: ; 0x7bf48
RGB 31, 31, 31
RGB 25, 16, 4
RGB 12, 7, 0
RGB 0, 0, 0
VaporeonBillboardBGPalette1: ; 0x7bf50
RGB 31, 31, 31
RGB 10, 18, 29
RGB 4, 6, 14
RGB 0, 0, 0
VaporeonBillboardBGPalette2: ; 0x7bf58
RGB 31, 31, 31
RGB 31, 28, 7
RGB 4, 6, 14
RGB 0, 0, 0
JolteonBillboardBGPalette1: ; 0x7bf60
RGB 31, 31, 31
RGB 31, 26, 0
RGB 15, 10, 0
RGB 0, 0, 0
JolteonBillboardBGPalette2: ; 0x7bf68
RGB 31, 31, 31
RGB 31, 26, 0
RGB 15, 10, 0
RGB 0, 0, 0
FlareonBillboardBGPalette1: ; 0x7bf70
RGB 31, 31, 31
RGB 31, 27, 0
RGB 31, 6, 0
RGB 0, 0, 0
FlareonBillboardBGPalette2: ; 0x7bf78
RGB 31, 31, 31
RGB 31, 27, 0
RGB 31, 6, 0
RGB 0, 0, 0
PorygonBillboardBGPalette1: ; 0x7bf80
RGB 31, 31, 31
RGB 29, 12, 13
RGB 2, 10, 17
RGB 0, 0, 0
PorygonBillboardBGPalette2: ; 0x7bf88
RGB 31, 31, 31
RGB 5, 23, 31
RGB 2, 10, 17
RGB 0, 0, 0
OmanyteBillboardBGPalette1: ; 0x7bf90
RGB 31, 31, 31
RGB 22, 21, 14
RGB 0, 15, 25
RGB 0, 0, 0
OmanyteBillboardBGPalette2: ; 0x7bf98
RGB 31, 31, 31
RGB 11, 26, 29
RGB 0, 15, 25
RGB 0, 0, 0
OmastarBillboardBGPalette1: ; 0x7bfa0
RGB 31, 31, 31
RGB 22, 21, 14
RGB 0, 15, 25
RGB 0, 0, 0
OmastarBillboardBGPalette2: ; 0x7bfa8
RGB 31, 31, 31
RGB 11, 26, 29
RGB 0, 15, 25
RGB 0, 0, 0
KabutoBillboardBGPalette1: ; 0x7bfb0
RGB 31, 31, 31
RGB 29, 18, 0
RGB 14, 6, 0
RGB 0, 0, 0
KabutoBillboardBGPalette2: ; 0x7bfb8
RGB 31, 6, 0
RGB 29, 18, 0
RGB 14, 6, 0
RGB 0, 0, 0
KabutopsBillboardBGPalette1: ; 0x7bfc0
RGB 31, 31, 31
RGB 31, 22, 13
RGB 19, 12, 0
RGB 0, 0, 0
KabutopsBillboardBGPalette2: ; 0x7bfc8
RGB 31, 31, 31
RGB 16, 25, 12
RGB 19, 12, 0
RGB 0, 0, 0
AerodactylBillboardBGPalette1: ; 0x7bfd0
RGB 31, 31, 31
RGB 20, 18, 31
RGB 8, 6, 15
RGB 0, 0, 0
AerodactylBillboardBGPalette2: ; 0x7bfd8
RGB 31, 31, 31
RGB 20, 18, 31
RGB 17, 3, 25
RGB 0, 0, 0
SnorlaxBillboardBGPalette1: ; 0x7bfe0
RGB 31, 31, 31
RGB 31, 27, 9
RGB 5, 6, 14
RGB 0, 0, 0
SnorlaxBillboardBGPalette2: ; 0x7bfe8
RGB 31, 31, 31
RGB 31, 27, 9
RGB 28, 6, 2
RGB 0, 0, 0
ArticunoBillboardBGPalette1: ; 0x7bff0
RGB 31, 31, 31
RGB 13, 27, 29
RGB 5, 13, 24
RGB 0, 0, 0
ArticunoBillboardBGPalette2: ; 0x7bff8
RGB 31, 31, 31
RGB 13, 27, 29
RGB 5, 13, 24
RGB 0, 0, 0
SECTION "bank1f", ROMX, BANK[$1f]
SlowpokeAnimatedPic: ; 0x7c000
INCBIN "gfx/billboard/mon_animated/slowpoke.w32.interleave.2bpp"
MagnemiteAnimatedPic: ; 0x7c300
INCBIN "gfx/billboard/mon_animated/magnemite.w32.interleave.2bpp"
FarfetchdAnimatedPic: ; 0x7c600
INCBIN "gfx/billboard/mon_animated/farfetch_d.w32.interleave.2bpp"
DoduoAnimatedPic: ; 0x7c900
INCBIN "gfx/billboard/mon_animated/doduo.w32.interleave.2bpp"
SeelAnimatedPic: ; 0x7cc00
INCBIN "gfx/billboard/mon_animated/seel.w32.interleave.2bpp"
GrimerAnimatedPic: ; 0x7cf00
INCBIN "gfx/billboard/mon_animated/grimer.w32.interleave.2bpp"
ShellderAnimatedPic: ; 0x7d200
INCBIN "gfx/billboard/mon_animated/shellder.w32.interleave.2bpp"
GastlyAnimatedPic: ; 0x7d500
INCBIN "gfx/billboard/mon_animated/gastly.w32.interleave.2bpp"
OnixAnimatedPic: ; 0x7d800
INCBIN "gfx/billboard/mon_animated/onix.w32.interleave.2bpp"
DrowzeeAnimatedPic: ; 0x7db00
INCBIN "gfx/billboard/mon_animated/drowzee.w32.interleave.2bpp"
KrabbyAnimatedPic: ; 0x7de00
INCBIN "gfx/billboard/mon_animated/krabby.w32.interleave.2bpp"
VoltorbAnimatedPic: ; 0x7e100
INCBIN "gfx/billboard/mon_animated/voltorb.w32.interleave.2bpp"
ExeggcuteAnimatedPic: ; 0x7e400
INCBIN "gfx/billboard/mon_animated/exeggcute.w32.interleave.2bpp"
CuboneAnimatedPic: ; 0x7e700
INCBIN "gfx/billboard/mon_animated/cubone.w32.interleave.2bpp"
HitmonleeAnimatedPic: ; 0x7ea00
INCBIN "gfx/billboard/mon_animated/hitmonlee.w32.interleave.2bpp"
HitmonchanAnimatedPic: ; 0x7ed00
INCBIN "gfx/billboard/mon_animated/hitmonchan.w32.interleave.2bpp"
MewtwoBonusBaseGameBoyGfx: ; 0x7f000
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboy.2bpp"
EraseAllDataGfx: ; 0x7fd00: ; 0x7fd00
INCBIN "gfx/erase_all_data.2bpp"
SECTION "bank20", ROMX, BANK[$20]
LickitungAnimatedPic: ; 0x80000
INCBIN "gfx/billboard/mon_animated/lickitung.w32.interleave.2bpp"
KoffingAnimatedPic: ; 0x80300
INCBIN "gfx/billboard/mon_animated/koffing.w32.interleave.2bpp"
RhyhornAnimatedPic: ; 0x80600
INCBIN "gfx/billboard/mon_animated/rhyhorn.w32.interleave.2bpp"
ChanseyAnimatedPic: ; 0x80900
INCBIN "gfx/billboard/mon_animated/chansey.w32.interleave.2bpp"
TangelaAnimatedPic: ; 0x80c00
INCBIN "gfx/billboard/mon_animated/tangela.w32.interleave.2bpp"
KangaskhanAnimatedPic: ; 0x80f00
INCBIN "gfx/billboard/mon_animated/kangaskhan.w32.interleave.2bpp"
HorseaAnimatedPic: ; 0x81200
INCBIN "gfx/billboard/mon_animated/horsea.w32.interleave.2bpp"
GoldeenAnimatedPic: ; 0x81500
INCBIN "gfx/billboard/mon_animated/goldeen.w32.interleave.2bpp"
StaryuAnimatedPic: ; 0x81800
INCBIN "gfx/billboard/mon_animated/staryu.w32.interleave.2bpp"
MrMimeAnimatedPic: ; 0x81b00
INCBIN "gfx/billboard/mon_animated/mr_mime.w32.interleave.2bpp"
ScytherAnimatedPic: ; 0x81e00
INCBIN "gfx/billboard/mon_animated/scyther.w32.interleave.2bpp"
JynxAnimatedPic: ; 0x82100
INCBIN "gfx/billboard/mon_animated/jynx.w32.interleave.2bpp"
ElectabuzzAnimatedPic: ; 0x82400
INCBIN "gfx/billboard/mon_animated/electabuzz.w32.interleave.2bpp"
MagmarAnimatedPic: ; 0x82700
INCBIN "gfx/billboard/mon_animated/magmar.w32.interleave.2bpp"
PinsirAnimatedPic: ; 0x82a00
INCBIN "gfx/billboard/mon_animated/pinsir.w32.interleave.2bpp"
TaurosAnimatedPic: ; 0x82d00
INCBIN "gfx/billboard/mon_animated/tauros.w32.interleave.2bpp"
MewtwoBonusBaseGameBoyColorGfx: ; 0x83000
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboycolor.2bpp"
StageDiglettBonusCollisionMasks: ; 0x83d00
INCBIN "data/collision/masks/diglett_bonus.masks"
SECTION "bank21", ROMX, BANK[$21]
MagikarpAnimatedPic: ; 0x84000
INCBIN "gfx/billboard/mon_animated/magikarp.w32.interleave.2bpp"
LaprasAnimatedPic: ; 0x84300
INCBIN "gfx/billboard/mon_animated/lapras.w32.interleave.2bpp"
DittoAnimatedPic: ; 0x84600
INCBIN "gfx/billboard/mon_animated/ditto.w32.interleave.2bpp"
EeveeAnimatedPic: ; 0x84900
INCBIN "gfx/billboard/mon_animated/eevee.w32.interleave.2bpp"
PorygonAnimatedPic: ; 0x84c00
INCBIN "gfx/billboard/mon_animated/porygon.w32.interleave.2bpp"
OmanyteAnimatedPic: ; 0x84f00
INCBIN "gfx/billboard/mon_animated/omanyte.w32.interleave.2bpp"
KabutoAnimatedPic: ; 0x85200
INCBIN "gfx/billboard/mon_animated/kabuto.w32.interleave.2bpp"
AerodactylAnimatedPic: ; 0x85500
INCBIN "gfx/billboard/mon_animated/aerodactyl.w32.interleave.2bpp"
SnorlaxAnimatedPic: ; 0x85800
INCBIN "gfx/billboard/mon_animated/snorlax.w32.interleave.2bpp"
ArticunoAnimatedPic: ; 0x85b00
INCBIN "gfx/billboard/mon_animated/articuno.w32.interleave.2bpp"
ZapdosAnimatedPic: ; 0x85e00
INCBIN "gfx/billboard/mon_animated/zapdos.w32.interleave.2bpp"
MoltresAnimatedPic: ; 0x86100
INCBIN "gfx/billboard/mon_animated/moltres.w32.interleave.2bpp"
DratiniAnimatedPic: ; 0x86400
INCBIN "gfx/billboard/mon_animated/dratini.w32.interleave.2bpp"
MewtwoAnimatedPic: ; 0x86700
INCBIN "gfx/billboard/mon_animated/mewtwo.w32.interleave.2bpp"
MewAnimatedPic: ; 0x86a00
INCBIN "gfx/billboard/mon_animated/mew.w32.interleave.2bpp"
INCBIN "baserom.gbc",$86d00,$87e80 - $86d00
GengarBonusHaunter1Gfx: ; 0x87e80
INCBIN "gfx/stage/gengar_bonus/haunter_1.2bpp"
GengarBonusHaunter2Gfx: ; 0x87ea0
INCBIN "gfx/stage/gengar_bonus/haunter_2.w32.interleave.2bpp"
SECTION "bank22", ROMX, BANK[$22]
ZubatAnimatedPic: ; 0x88000
INCBIN "gfx/billboard/mon_animated/zubat.w32.interleave.2bpp"
OddishAnimatedPic: ; 0x88300
INCBIN "gfx/billboard/mon_animated/oddish.w32.interleave.2bpp"
ParasAnimatedPic: ; 0x88600
INCBIN "gfx/billboard/mon_animated/paras.w32.interleave.2bpp"
VenonatAnimatedPic: ; 0x88900
INCBIN "gfx/billboard/mon_animated/venonat.w32.interleave.2bpp"
DiglettAnimatedPic: ; 0x88c00
INCBIN "gfx/billboard/mon_animated/diglett.w32.interleave.2bpp"
MeowthAnimatedPic: ; 0x88f00
INCBIN "gfx/billboard/mon_animated/meowth.w32.interleave.2bpp"
PsyduckAnimatedPic: ; 0x89200
INCBIN "gfx/billboard/mon_animated/psyduck.w32.interleave.2bpp"
MankeyAnimatedPic: ; 0x89500
INCBIN "gfx/billboard/mon_animated/mankey.w32.interleave.2bpp"
GrowlitheAnimatedPic: ; 0x89800
INCBIN "gfx/billboard/mon_animated/growlithe.w32.interleave.2bpp"
PoliwagAnimatedPic: ; 0x89b00
INCBIN "gfx/billboard/mon_animated/poliwag.w32.interleave.2bpp"
AbraAnimatedPic: ; 0x89e00
INCBIN "gfx/billboard/mon_animated/abra.w32.interleave.2bpp"
MachopAnimatedPic: ; 0x8a100
INCBIN "gfx/billboard/mon_animated/machop.w32.interleave.2bpp"
BellsproutAnimatedPic: ; 0x8a400
INCBIN "gfx/billboard/mon_animated/bellsprout.w32.interleave.2bpp"
TentacoolAnimatedPic: ; 0x8a700
INCBIN "gfx/billboard/mon_animated/tentacool.w32.interleave.2bpp"
GeodudeAnimatedPic: ; 0x8aa00
INCBIN "gfx/billboard/mon_animated/geodude.w32.interleave.2bpp"
PonytaAnimatedPic: ; 0x8ad00
INCBIN "gfx/billboard/mon_animated/ponyta.w32.interleave.2bpp"
FieldSelectScreenGfx:
FieldSelectBlinkingBorderGfx: ; 0x8b000
INCBIN "gfx/field_select/blinking_border.2bpp"
FieldSelectGfx: ; 0x8b100
INCBIN "gfx/field_select/field_select_tiles.2bpp"
GengarBonusGastlyGfx: ; 0x8bd00
INCBIN "gfx/stage/gengar_bonus/gastly.w32.interleave.2bpp"
INCBIN "baserom.gbc",$8be80,$8bf00 - $8be80
BulbasaurBillboardBGPalette1: ; 0x8bf00
RGB 31, 31, 31
RGB 0, 19, 13
RGB 26, 1, 0
RGB 0, 0, 0
BulbasaurBillboardBGPalette2: ; 0x8bf08
RGB 31, 31, 31
RGB 0, 19, 13
RGB 0, 9, 0
RGB 0, 0, 0
IvysaurBillboardBGPalette1: ; 0x8bf10
RGB 31, 31, 31
RGB 0, 19, 13
RGB 0, 12, 6
RGB 0, 0, 0
IvysaurBillboardBGPalette2: ; 0x8bf18
RGB 31, 31, 31
RGB 25, 17, 3
RGB 0, 12, 6
RGB 0, 0, 0
VenusaurBillboardBGPalette1: ; 0x8bf20
RGB 31, 31, 31
RGB 0, 19, 13
RGB 26, 1, 0
RGB 0, 0, 0
VenusaurBillboardBGPalette2: ; 0x8bf28
RGB 31, 31, 31
RGB 0, 19, 13
RGB 5, 15, 0
RGB 0, 0, 0
CharmanderBillboardBGPalette1: ; 0x8bf30
RGB 31, 31, 31
RGB 31, 17, 1
RGB 26, 0, 0
RGB 3, 2, 0
CharmanderBillboardBGPalette2: ; 0x8bf38
RGB 31, 31, 31
RGB 31, 17, 1
RGB 26, 0, 0
RGB 3, 2, 0
CharmeleonBillboardBGPalette1: ; 0x8bf40
RGB 31, 31, 31
RGB 31, 17, 1
RGB 26, 4, 0
RGB 3, 2, 0
CharmeleonBillboardBGPalette2: ; 0x8bf48
RGB 31, 31, 31
RGB 31, 17, 1
RGB 26, 4, 0
RGB 3, 2, 0
CharizardBillboardBGPalette1: ; 0x8bf50
RGB 31, 31, 31
RGB 31, 17, 1
RGB 26, 4, 0
RGB 3, 2, 0
CharizardBillboardBGPalette2: ; 0x8bf58
RGB 31, 31, 31
RGB 31, 17, 1
RGB 26, 4, 0
RGB 3, 2, 0
SquirtleBillboardBGPalette1: ; 0x8bf60
RGB 31, 31, 31
RGB 26, 23, 0
RGB 0, 16, 31
RGB 0, 0, 0
SquirtleBillboardBGPalette2: ; 0x8bf68
RGB 31, 31, 31
RGB 14, 27, 31
RGB 0, 16, 31
RGB 0, 1, 3
WartortleBillboardBGPalette1: ; 0x8bf70
RGB 31, 31, 31
RGB 29, 23, 0
RGB 0, 16, 31
RGB 0, 0, 0
WartortleBillboardBGPalette2: ; 0x8bf78
RGB 31, 31, 31
RGB 14, 27, 31
RGB 0, 16, 31
RGB 0, 1, 3
BlastoiseBillboardBGPalette1: ; 0x8bf80
RGB 31, 31, 31
RGB 27, 20, 10
RGB 12, 6, 3
RGB 0, 0, 0
BlastoiseBillboardBGPalette2: ; 0x8bf88
RGB 31, 31, 31
RGB 11, 18, 31
RGB 2, 6, 19
RGB 0, 0, 0
CaterpieBillboardBGPalette1: ; 0x8bf90
RGB 31, 31, 31
RGB 23, 27, 5
RGB 3, 17, 0
RGB 0, 0, 0
CaterpieBillboardBGPalette2: ; 0x8bf98
RGB 31, 31, 31
RGB 23, 27, 5
RGB 3, 17, 0
RGB 0, 0, 0
MetapodBillboardBGPalette1: ; 0x8bfa0
RGB 31, 31, 31
RGB 23, 27, 5
RGB 7, 18, 0
RGB 0, 0, 0
MetapodBillboardBGPalette2: ; 0x8bfa8
RGB 31, 31, 31
RGB 23, 27, 5
RGB 7, 18, 0
RGB 0, 0, 0
ButterfreeBillboardBGPalette1: ; 0x8bfb0
RGB 31, 31, 31
RGB 31, 15, 0
RGB 31, 0, 1
RGB 3, 2, 0
ButterfreeBillboardBGPalette2: ; 0x8bfb8
RGB 31, 31, 31
RGB 11, 13, 31
RGB 9, 8, 18
RGB 0, 0, 0
WeedleBillboardBGPalette1: ; 0x8bfc0
RGB 31, 31, 31
RGB 29, 25, 0
RGB 25, 6, 7
RGB 3, 2, 0
WeedleBillboardBGPalette2: ; 0x8bfc8
RGB 31, 31, 31
RGB 29, 25, 0
RGB 25, 6, 7
RGB 3, 2, 0
KakunaBillboardBGPalette1: ; 0x8bfd0
RGB 31, 31, 31
RGB 28, 24, 0
RGB 18, 12, 0
RGB 3, 2, 0
KakunaBillboardBGPalette2: ; 0x8bfd8
RGB 31, 31, 31
RGB 28, 24, 0
RGB 18, 12, 0
RGB 3, 2, 0
BeedrillBillboardBGPalette1: ; 0x8bfe0
RGB 31, 31, 31
RGB 30, 27, 0
RGB 21, 7, 0
RGB 3, 2, 0
BeedrillBillboardBGPalette2: ; 0x8bfe8
RGB 31, 31, 31
RGB 30, 27, 0
RGB 21, 7, 0
RGB 3, 2, 0
PidgeyBillboardBGPalette1: ; 0x8bff0
RGB 31, 31, 31
RGB 30, 25, 1
RGB 26, 9, 3
RGB 3, 2, 0
PidgeyBillboardBGPalette2: ; 0x8bff8
RGB 31, 31, 31
RGB 30, 25, 1
RGB 26, 9, 3
RGB 3, 2, 0
SECTION "bank23", ROMX, BANK[$23]
BulbasaurAnimatedPic: ; 0x8c000
INCBIN "gfx/billboard/mon_animated/bulbasaur.w32.interleave.2bpp"
CharmanderAnimatedPic: ; 0x8c300
INCBIN "gfx/billboard/mon_animated/charmander.w32.interleave.2bpp"
SquirtleAnimatedPic: ; 0x8c600
INCBIN "gfx/billboard/mon_animated/squirtle.w32.interleave.2bpp"
CaterpieAnimatedPic: ; 0x8c900
INCBIN "gfx/billboard/mon_animated/caterpie.w32.interleave.2bpp"
WeedleAnimatedPic: ; 0x8cc00
INCBIN "gfx/billboard/mon_animated/weedle.w32.interleave.2bpp"
PidgeyAnimatedPic: ; 0x8cf00
INCBIN "gfx/billboard/mon_animated/pidgey.w32.interleave.2bpp"
RattataAnimatedPic: ; 0x8d200
INCBIN "gfx/billboard/mon_animated/rattata.w32.interleave.2bpp"
SpearowAnimatedPic: ; 0x8d500
INCBIN "gfx/billboard/mon_animated/spearow.w32.interleave.2bpp"
EkansAnimatedPic: ; 0x8d800
INCBIN "gfx/billboard/mon_animated/ekans.w32.interleave.2bpp"
PikachuAnimatedPic: ; 0x8db00
INCBIN "gfx/billboard/mon_animated/pikachu.w32.interleave.2bpp"
SandshrewAnimatedPic: ; 0x8de00
INCBIN "gfx/billboard/mon_animated/sandshrew.w32.interleave.2bpp"
NidoranFAnimatedPic: ; 0x8e100
INCBIN "gfx/billboard/mon_animated/nidoran_f.w32.interleave.2bpp"
NidoranMAnimatedPic: ; 0x8e400
INCBIN "gfx/billboard/mon_animated/nidoran_m.w32.interleave.2bpp"
ClefairyAnimatedPic: ; 0x8e700
INCBIN "gfx/billboard/mon_animated/clefairy.w32.interleave.2bpp"
VulpixAnimatedPic: ; 0x8ea00
INCBIN "gfx/billboard/mon_animated/vulpix.w32.interleave.2bpp"
JigglypuffAnimatedPic: ; 0x8ed00
INCBIN "gfx/billboard/mon_animated/jigglypuff.w32.interleave.2bpp"
INCBIN "baserom.gbc",$8f000,$8ff00 - $8f000 ; 0x8f000
PalletTownBillboardBGPalette1: ; 0x8ff00
RGB 31, 31, 31
RGB 22, 18, 17
RGB 0, 19, 0
RGB 0, 0, 0
PalletTownBillboardBGPalette2: ; 0x8ff08
RGB 31, 31, 31
RGB 24, 9, 3
RGB 0, 4, 25
RGB 0, 0, 0
ViridianCityBillboardBGPalette1: ; 0x8ff10
RGB 31, 31, 31
RGB 0, 14, 31
RGB 0, 22, 0
RGB 0, 0, 0
ViridianCityBillboardBGPalette2: ; 0x8ff18
RGB 31, 31, 31
RGB 26, 15, 3
RGB 0, 22, 0
RGB 0, 0, 0
ViridianForestBillboardBGPalette1: ; 0x8ff20
RGB 31, 31, 31
RGB 31, 20, 3
RGB 2, 16, 1
RGB 0, 0, 0
ViridianForestBillboardBGPalette2: ; 0x8ff28
RGB 31, 31, 31
RGB 31, 20, 3
RGB 24, 6, 0
RGB 0, 0, 0
PewterCityBillboardBGPalette1: ; 0x8ff30
RGB 31, 31, 31
RGB 27, 20, 10
RGB 2, 16, 1
RGB 0, 0, 0
PewterCityBillboardBGPalette2: ; 0x8ff38
RGB 31, 31, 31
RGB 5, 17, 31
RGB 26, 3, 1
RGB 0, 0, 0
MtMoonBillboardBGPalette1: ; 0x8ff40
RGB 31, 28, 2
RGB 19, 20, 27
RGB 2, 7, 20
RGB 0, 0, 0
MtMoonBillboardBGPalette2: ; 0x8ff48
RGB 31, 28, 2
RGB 19, 20, 27
RGB 2, 7, 20
RGB 0, 0, 0
CeruleanCityBillboardBGPalette1: ; 0x8ff50
RGB 31, 22, 5
RGB 16, 22, 4
RGB 1, 15, 0
RGB 0, 0, 0
CeruleanCityBillboardBGPalette2: ; 0x8ff58
RGB 31, 31, 31
RGB 16, 22, 31
RGB 3, 11, 31
RGB 0, 0, 0
VermilionSeasideBillboardBGPalette1: ; 0x8ff60
RGB 31, 31, 31
RGB 8, 20, 31
RGB 2, 8, 23
RGB 0, 0, 0
VermilionSeasideBillboardBGPalette2: ; 0x8ff68
RGB 31, 31, 31
RGB 22, 22, 22
RGB 21, 8, 0
RGB 0, 0, 0
VermilionStreetsBillboardBGPalette1: ; 0x8ff70
RGB 31, 31, 31
RGB 20, 22, 25
RGB 31, 8, 0
RGB 0, 0, 0
VermilionStreetsBillboardBGPalette2: ; 0x8ff78
RGB 31, 31, 31
RGB 20, 22, 25
RGB 7, 8, 13
RGB 0, 0, 0
RockMountainBillboardBGPalette1: ; 0x8ff80
RGB 31, 31, 31
RGB 27, 13, 4
RGB 21, 5, 0
RGB 0, 0, 0
RockMountainBillboardBGPalette2: ; 0x8ff88
RGB 3, 18, 31
RGB 27, 13, 4
RGB 2, 16, 1
RGB 0, 0, 0
LavenderTownBillboardBGPalette1: ; 0x8ff90
RGB 31, 31, 10
RGB 11, 18, 31
RGB 2, 6, 19
RGB 0, 0, 0
LavenderTownBillboardBGPalette2: ; 0x8ff98
RGB 31, 31, 31
RGB 11, 18, 31
RGB 2, 6, 19
RGB 0, 0, 0
CeladonCityBillboardBGPalette1: ; 0x8ffa0
RGB 31, 31, 31
RGB 11, 19, 31
RGB 29, 8, 4
RGB 0, 0, 0
CeladonCityBillboardBGPalette2: ; 0x8ffa8
RGB 31, 31, 31
RGB 31, 9, 9
RGB 16, 2, 2
RGB 0, 0, 0
CyclingRoadBillboardBGPalette1: ; 0x8ffb0
RGB 31, 24, 15
RGB 11, 21, 5
RGB 31, 9, 5
RGB 0, 0, 0
CyclingRoadBillboardBGPalette2: ; 0x8ffb8
RGB 31, 22, 13
RGB 11, 21, 5
RGB 0, 15, 0
RGB 0, 0, 0
FuchsiaCityBillboardBGPalette1: ; 0x8ffc0
RGB 31, 31, 31
RGB 10, 25, 31
RGB 26, 3, 1
RGB 0, 0, 0
FuchsiaCityBillboardBGPalette2: ; 0x8ffc8
RGB 31, 31, 31
RGB 27, 23, 6
RGB 28, 6, 3
RGB 0, 0, 0
SafariZoneBillboardBGPalette1: ; 0x8ffd0
RGB 31, 31, 31
RGB 13, 27, 31
RGB 4, 19, 27
RGB 0, 0, 0
SafariZoneBillboardBGPalette2: ; 0x8ffd8
RGB 29, 21, 17
RGB 13, 19, 5
RGB 0, 14, 0
RGB 0, 0, 0
SaffronCityBillboardBGPalette1: ; 0x8ffe0
RGB 31, 31, 31
RGB 8, 19, 31
RGB 2, 7, 26
RGB 0, 0, 0
SaffronCityBillboardBGPalette2: ; 0x8ffe8
RGB 31, 31, 31
RGB 27, 28, 1
RGB 24, 7, 5
RGB 0, 0, 0
SeafoamIslandsBillboardBGPalette1: ; 0x8fff0
RGB 24, 27, 30
RGB 31, 24, 1
RGB 2, 15, 1
RGB 0, 0, 0
SeafoamIslandsBillboardBGPalette2: ; 0x8fff8
RGB 24, 27, 30
RGB 0, 14, 31
RGB 0, 9, 23
RGB 0, 0, 0
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,$93c00 - $93000
CinnabarIslandBillboardBGPaletteMap: ; 0x93c00
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $6, $7, $7, $7, $6
db $6, $6, $6, $6, $6, $6
IndigoPlateauBillboardBGPaletteMap: ; 0x93c18
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $7, $7, $7, $7, $7, $7
INCBIN "baserom.gbc",$93c39,$94000 - $93c39
SECTION "bank25", ROMX, BANK[$25]
MagnemitePic: ; 0x94000
INCBIN "gfx/billboard/mon_pics/magnemite.2bpp"
MagnemiteSilhouettePic: ; 0x94180
INCBIN "gfx/billboard/mon_silhouettes/magnemite.2bpp"
MagnetonPic: ; 0x94300
INCBIN "gfx/billboard/mon_pics/magneton.2bpp"
MagnetonSilhouettePic: ; 0x94480
INCBIN "gfx/billboard/mon_silhouettes/magneton.2bpp"
Farfetch_dPic: ; 0x94600
INCBIN "gfx/billboard/mon_pics/farfetch_d.2bpp"
Farfetch_dSilhouettePic: ; 0x94780
INCBIN "gfx/billboard/mon_silhouettes/farfetch_d.2bpp"
DoduoPic: ; 0x94900
INCBIN "gfx/billboard/mon_pics/doduo.2bpp"
DoduoSilhouettePic: ; 0x94a80
INCBIN "gfx/billboard/mon_silhouettes/doduo.2bpp"
DodrioPic: ; 0x94c00
INCBIN "gfx/billboard/mon_pics/dodrio.2bpp"
DodrioSilhouettePic: ; 0x94d80
INCBIN "gfx/billboard/mon_silhouettes/dodrio.2bpp"
SeelPic: ; 0x94f00
INCBIN "gfx/billboard/mon_pics/seel.2bpp"
SeelSilhouettePic: ; 0x95080
INCBIN "gfx/billboard/mon_silhouettes/seel.2bpp"
DewgongPic: ; 0x95200
INCBIN "gfx/billboard/mon_pics/dewgong.2bpp"
DewgongSilhouettePic: ; 0x95380
INCBIN "gfx/billboard/mon_silhouettes/dewgong.2bpp"
GrimerPic: ; 0x95500
INCBIN "gfx/billboard/mon_pics/grimer.2bpp"
GrimerSilhouettePic: ; 0x95680
INCBIN "gfx/billboard/mon_silhouettes/grimer.2bpp"
MukPic: ; 0x95800
INCBIN "gfx/billboard/mon_pics/muk.2bpp"
MukSilhouettePic: ; 0x95980
INCBIN "gfx/billboard/mon_silhouettes/muk.2bpp"
ShellderPic: ; 0x95b00
INCBIN "gfx/billboard/mon_pics/shellder.2bpp"
ShellderSilhouettePic: ; 0x95c80
INCBIN "gfx/billboard/mon_silhouettes/shellder.2bpp"
CloysterPic: ; 0x95e00
INCBIN "gfx/billboard/mon_pics/cloyster.2bpp"
CloysterSilhouettePic: ; 0x95f80
INCBIN "gfx/billboard/mon_silhouettes/cloyster.2bpp"
GastlyPic: ; 0x96100
INCBIN "gfx/billboard/mon_pics/gastly.2bpp"
GastlySilhouettePic: ; 0x96280
INCBIN "gfx/billboard/mon_silhouettes/gastly.2bpp"
HaunterPic: ; 0x96400
INCBIN "gfx/billboard/mon_pics/haunter.2bpp"
HaunterSilhouettePic: ; 0x96580
INCBIN "gfx/billboard/mon_silhouettes/haunter.2bpp"
GengarPic: ; 0x96700
INCBIN "gfx/billboard/mon_pics/gengar.2bpp"
GengarSilhouettePic: ; 0x96880
INCBIN "gfx/billboard/mon_silhouettes/gengar.2bpp"
OnixPic: ; 0x96a00
INCBIN "gfx/billboard/mon_pics/onix.2bpp"
OnixSilhouettePic: ; 0x96b80
INCBIN "gfx/billboard/mon_silhouettes/onix.2bpp"
DrowzeePic: ; 0x96d00
INCBIN "gfx/billboard/mon_pics/drowzee.2bpp"
DrowzeeSilhouettePic: ; 0x96e80
INCBIN "gfx/billboard/mon_silhouettes/drowzee.2bpp"
INCBIN "baserom.gbc",$97000,$97a00 - $97000
StageRedFieldTopGfx3: ; 0x97a00
INCBIN "gfx/stage/red_top/red_top_3.2bpp"
StageRedFieldTopGfx1: ; 0x97ba0
INCBIN "gfx/stage/red_top/red_top_1.2bpp"
StageRedFieldTopGfx2: ; 0x97e00
INCBIN "gfx/stage/red_top/red_top_2.2bpp"
SECTION "bank26", ROMX, BANK[$26]
AlakazamPic: ; 0x98000
INCBIN "gfx/billboard/mon_pics/alakazam.2bpp"
AlakazamSilhouettePic: ; 0x98180
INCBIN "gfx/billboard/mon_silhouettes/alakazam.2bpp"
MachopPic: ; 0x98300
INCBIN "gfx/billboard/mon_pics/machop.2bpp"
MachopSilhouettePic: ; 0x98480
INCBIN "gfx/billboard/mon_silhouettes/machop.2bpp"
MachokePic: ; 0x98600
INCBIN "gfx/billboard/mon_pics/machoke.2bpp"
MachokeSilhouettePic: ; 0x98780
INCBIN "gfx/billboard/mon_silhouettes/machoke.2bpp"
MachampPic: ; 0x98900
INCBIN "gfx/billboard/mon_pics/machamp.2bpp"
MachampSilhouettePic: ; 0x98a80
INCBIN "gfx/billboard/mon_silhouettes/machamp.2bpp"
BellsproutPic: ; 0x98c00
INCBIN "gfx/billboard/mon_pics/bellsprout.2bpp"
BellsproutSilhouettePic: ; 0x98d80
INCBIN "gfx/billboard/mon_silhouettes/bellsprout.2bpp"
WeepinbellPic: ; 0x98f00
INCBIN "gfx/billboard/mon_pics/weepinbell.2bpp"
WeepinbellSilhouettePic: ; 0x97080
INCBIN "gfx/billboard/mon_silhouettes/weepinbell.2bpp"
VictreebellPic: ; 0x97200
INCBIN "gfx/billboard/mon_pics/victreebell.2bpp"
VictreebellSilhouettePic: ; 0x97380
INCBIN "gfx/billboard/mon_silhouettes/victreebell.2bpp"
TentacoolPic: ; 0x97500
INCBIN "gfx/billboard/mon_pics/tentacool.2bpp"
TentacoolSilhouettePic: ; 0x97680
INCBIN "gfx/billboard/mon_silhouettes/tentacool.2bpp"
TentacruelPic: ; 0x97800
INCBIN "gfx/billboard/mon_pics/tentacruel.2bpp"
TentacruelSilhouettePic: ; 0x97980
INCBIN "gfx/billboard/mon_silhouettes/tentacruel.2bpp"
GeodudePic: ; 0x97b00
INCBIN "gfx/billboard/mon_pics/geodude.2bpp"
GeodudeSilhouettePic: ; 0x97c80
INCBIN "gfx/billboard/mon_silhouettes/geodude.2bpp"
GravelerPic: ; 0x97e00
INCBIN "gfx/billboard/mon_pics/graveler.2bpp"
GravelerSilhouettePic: ; 0x97f80
INCBIN "gfx/billboard/mon_silhouettes/graveler.2bpp"
GolemPic: ; 0x9a100
INCBIN "gfx/billboard/mon_pics/golem.2bpp"
GolemSilhouettePic: ; 0x9a280
INCBIN "gfx/billboard/mon_silhouettes/golem.2bpp"
PonytaPic: ; 0x9a400
INCBIN "gfx/billboard/mon_pics/ponyta.2bpp"
PonytaSilhouettePic: ; 0x9a580
INCBIN "gfx/billboard/mon_silhouettes/ponyta.2bpp"
RapidashPic: ; 0x9a700
INCBIN "gfx/billboard/mon_pics/rapidash.2bpp"
RapidashSilhouettePic: ; 0x9a880
INCBIN "gfx/billboard/mon_silhouettes/rapidash.2bpp"
SlowpokePic: ; 0x9aa00
INCBIN "gfx/billboard/mon_pics/slowpoke.2bpp"
SlowpokeSilhouettePic: ; 0x9ab80
INCBIN "gfx/billboard/mon_silhouettes/slowpoke.2bpp"
SlowbroPic: ; 0x9ad00
INCBIN "gfx/billboard/mon_pics/slowbro.2bpp"
SlowbroSilhouettePic: ; 0x9ae80
INCBIN "gfx/billboard/mon_silhouettes/slowbro.2bpp"
INCBIN "baserom.gbc",$9b000,$9bba0 - $9b000
GengarBonusGengar1Gfx: ; 0x9bba0
INCBIN "gfx/stage/gengar_bonus/gengar_1.2bpp"
GengarBonusGengar2Gfx: ; 0x9bd00
INCBIN "gfx/stage/gengar_bonus/gengar_2.2bpp"
GengarBonusGengar3Gfx: ; 0x9bd60
INCBIN "gfx/stage/gengar_bonus/gengar_3.2bpp"
SECTION "bank27", ROMX, BANK[$27]
StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor: ; 0x9c000
INCBIN "gfx/stage/red_top/status_bar_symbols_gameboycolor.2bpp"
INCBIN "baserom.gbc",$9c100,$9c2a0 - $9c100
StageRedFieldTopBaseGameBoyColorGfx: ; 0x9c2a0
INCBIN "gfx/stage/red_top/red_top_base_gameboycolor.2bpp"
StageRedFieldTopGfx4: ; 0x9d000
INCBIN "gfx/stage/red_top/red_top_4.2bpp"
GengarBonusBaseGameBoyColorGfx: ; 0x9e000
INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboycolor.2bpp"
GengarBonus1Gfx: ; 0x9f000
INCBIN "gfx/stage/gengar_bonus/gengar_bonus_1.2bpp"
SECTION "bank28", ROMX, BANK[$28]
StageBlueFieldTopStatusBarSymbolsGfx_GameBoyColor: ; 0xa0000
INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboycolor.2bpp"
INCBIN "baserom.gbc",$a0100,$a02a0 - $a0100
StageBlueFieldTopBaseGameBoyColorGfx: ; 0xa02a0
INCBIN "gfx/stage/blue_top/blue_top_base_gameboycolor.2bpp"
StageBlueFieldTopGfx4: ; 0xa1000
INCBIN "gfx/stage/blue_top/blue_top_4.2bpp"
StageRedFieldBottomBaseGameBoyColorGfx: ; 0xa2000
INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboycolor.2bpp"
StageRedFieldBottomGfx5: ; 0xa3000
INCBIN "gfx/stage/red_bottom/red_bottom_5.2bpp"
SECTION "bank29", ROMX, BANK[$29]
StageBlueFieldBottomBaseGameBoyColorGfx: ; 0xa4000
INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboycolor.2bpp"
StageBlueFieldBottomGfx1: ; 0xa5000
INCBIN "gfx/stage/blue_bottom/blue_bottom_1.2bpp"
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,$a82c0 - $a8000
PinballGreatballShakeGfx: ; 0xa82c0
INCBIN "gfx/stage/ball_greatball_shake.w16.interleave.2bpp"
PinballUltraballShakeGfx: ; 0xa8300
INCBIN "gfx/stage/ball_ultraball_shake.w16.interleave.2bpp"
PinballMasterballShakeGfx: ; 0xa8340
INCBIN "gfx/stage/ball_masterball_shake.w16.interleave.2bpp"
PinballPokeballShakeGfx: ; 0xa8380
INCBIN "gfx/stage/ball_pokeball_shake.w16.interleave.2bpp"
StageSharedPikaBoltGfx: ; 0xa83c0
INCBIN "gfx/stage/shared/pika_bolt.2bpp"
PinballPokeballGfx: ; 0xa8400
INCBIN "gfx/stage/ball_pokeball.w32.interleave.2bpp"
FlipperGfx: ; 0xa8600
INCBIN "gfx/stage/flipper.2bpp"
PikachuSaverGfx: ; 0xa8720
INCBIN "gfx/stage/pikachu_saver.2bpp"
INCBIN "baserom.gbc",$a8800,$a8a00 - $a8800
PinballGreatballGfx: ; 0xa8a00
INCBIN "gfx/stage/ball_greatball.w32.interleave.2bpp"
PinballUltraballGfx: ; 0xa8c00
INCBIN "gfx/stage/ball_ultraball.w32.interleave.2bpp"
PinballMasterballGfx: ; 0xa8e00
INCBIN "gfx/stage/ball_masterball.w32.interleave.2bpp"
PinballPokeballMiniGfx: ; 0xa9000
INCBIN "gfx/stage/ball_pokeball_mini.w32.interleave.2bpp"
PinballGreatballMiniGfx: ; 0xa9200
INCBIN "gfx/stage/ball_greatball_mini.w32.interleave.2bpp"
PinballUltraballMiniGfx: ; 0xa9400
INCBIN "gfx/stage/ball_ultraball_mini.w32.interleave.2bpp"
PinballMasterballMiniGfx: ; 0xa9600
INCBIN "gfx/stage/ball_masterball_mini.w32.interleave.2bpp"
PinballBallMiniGfx: ; 0xa9800
INCBIN "gfx/stage/ball_mini.w32.interleave.2bpp"
INCBIN "baserom.gbc",$a9a00,$abb00 - $a9a00
PaletteTownBillboardBGPaletteMap: ; 0xabb00
db $6, $7, $7, $7, $7, $7
db $6, $6, $6, $6, $6, $7
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $7, $7
ViridianCityBillboardBGPaletteMap: ; 0xabb18
db $6, $6, $6, $6, $7, $6
db $6, $6, $6, $6, $7, $6
db $7, $7, $7, $7, $7, $6
db $7, $7, $7, $7, $7, $6
ViridianForestBillboardBGPaletteMap: ; 0xabb30
db $6, $7, $6, $6, $7, $6
db $7, $7, $7, $7, $7, $6
db $6, $7, $6, $6, $7, $6
db $6, $7, $7, $7, $7, $6
PewterCityBillboardBGPaletteMap: ; 0xabb48
db $7, $7, $7, $7, $7, $7
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
MtMoonBillboardBGPaletteMap: ; 0xabb60
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
CeruleanCityBillboardBGPaletteMap: ; 0xabb78
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
VermilionSeasideBillboardBGPaletteMap: ; 0xabb90
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $7, $7, $7, $6, $6, $6
VermilionStreetsBillboardBGPaletteMap: ; 0xabba8
db $6, $6, $6, $6, $6, $7
db $6, $6, $7, $7, $7, $7
db $6, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
RockMountainBillboardBGPaletteMap: ; 0xabbc0
db $7, $7, $7, $7, $7, $7
db $6, $6, $7, $7, $7, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
LavenderTownBillboardBGPaletteMap: ; 0xabbd8
db $6, $7, $7, $6, $6, $6
db $6, $7, $7, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
CeladonCityBillboardBGPaletteMap: ; 0xabbf0
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $7, $7
db $6, $6, $7, $7, $7, $7
CyclingRoadBillboardBGPaletteMap: ; 0xabc08
db $7, $7, $7, $7, $6, $6
db $7, $6, $6, $6, $6, $7
db $6, $6, $6, $6, $6, $7
db $6, $6, $6, $6, $7, $7
FuchsiaCityBillboardBGPaletteMap: ; 0xabc20
db $7, $6, $6, $6, $6, $6
db $7, $6, $6, $6, $6, $6
db $7, $7, $7, $6, $6, $7
db $7, $7, $7, $7, $7, $7
SafariZoneBillboardBGPaletteMap: ; 0xabc38
db $6, $6, $6, $6, $6, $6
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
SaffronCityBillboardBGPaletteMap: ; 0xabc50
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $7, $7, $7, $6, $7, $7
db $7, $7, $7, $7, $7, $7
SeafoamIslandsBillboardBGPaletteMap: ; 0xabc68
db $7, $7, $7, $7, $7, $7
db $7, $7, $6, $7, $7, $7
db $7, $7, $7, $6, $7, $7
db $7, $7, $7, $7, $7, $7
INCBIN "baserom.gbc",$abc80,$abf00 - $abc80
BulbasaurAnimatedObjPalette1: ; 0xabf00
RGB 31, 31, 31
RGB 5, 21, 30
RGB 1, 3, 22
RGB 0, 0, 0
BulbasaurAnimatedObjPalette2: ; 0xabf08
RGB 31, 31, 31
RGB 0, 21, 15
RGB 0, 12, 6
RGB 0, 0, 0
CharmanderAnimatedObjPalette1: ; 0xabf10
RGB 31, 31, 31
RGB 31, 17, 0
RGB 26, 1, 0
RGB 0, 0, 0
CharmanderAnimatedObjPalette2: ; 0xabf18
RGB 31, 31, 31
RGB 31, 17, 0
RGB 26, 1, 0
RGB 0, 0, 0
SquirtleAnimatedObjPalette1: ; 0xabf20
RGB 31, 31, 31
RGB 4, 19, 31
RGB 1, 5, 17
RGB 0, 0, 0
SquirtleAnimatedObjPalette2: ; 0xabf28
RGB 31, 31, 31
RGB 31, 20, 11
RGB 14, 9, 3
RGB 0, 0, 0
CaterpieAnimatedObjPalette1: ; 0xabf30
RGB 31, 31, 31
RGB 0, 25, 9
RGB 27, 13, 0
RGB 0, 0, 0
CaterpieAnimatedObjPalette2: ; 0xabf38
RGB 31, 31, 31
RGB 0, 25, 9
RGB 27, 13, 0
RGB 0, 0, 0
WeedleAnimatedObjPalette1: ; 0xabf40
RGB 31, 31, 31
RGB 31, 25, 3
RGB 25, 9, 7
RGB 0, 0, 0
WeedleAnimatedObjPalette2: ; 0xabf48
RGB 31, 31, 31
RGB 31, 25, 3
RGB 25, 9, 7
RGB 0, 0, 0
PidgeyAnimatedObjPalette1: ; 0xabf50
RGB 31, 31, 31
RGB 31, 20, 11
RGB 21, 10, 4
RGB 0, 0, 0
PidgeyAnimatedObjPalette2: ; 0xabf58
RGB 31, 31, 31
RGB 31, 20, 11
RGB 21, 10, 4
RGB 0, 0, 0
RattataAnimatedObjPalette1: ; 0xabf60
RGB 31, 31, 31
RGB 30, 12, 23
RGB 20, 4, 8
RGB 0, 0, 0
RattataAnimatedObjPalette2: ; 0xabf68
RGB 31, 31, 31
RGB 30, 12, 23
RGB 20, 4, 8
RGB 0, 0, 0
SpearowAnimatedObjPalette1: ; 0xabf70
RGB 31, 31, 31
RGB 31, 22, 14
RGB 24, 4, 2
RGB 0, 0, 0
SpearowAnimatedObjPalette2: ; 0xabf78
RGB 31, 31, 31
RGB 31, 22, 14
RGB 24, 4, 2
RGB 0, 0, 0
EkansAnimatedObjPalette1: ; 0xabf80
RGB 31, 31, 31
RGB 30, 26, 12
RGB 20, 7, 12
RGB 0, 0, 0
EkansAnimatedObjPalette2: ; 0xabf88
RGB 31, 31, 31
RGB 30, 26, 12
RGB 20, 7, 12
RGB 0, 0, 0
PikachuAnimatedObjPalette1: ; 0xabf90
RGB 31, 31, 31
RGB 31, 29, 0
RGB 23, 10, 0
RGB 3, 3, 0
PikachuAnimatedObjPalette2: ; 0xabf98
RGB 31, 31, 31
RGB 31, 29, 0
RGB 23, 10, 0
RGB 3, 3, 0
SandshrewAnimatedObjPalette1: ; 0xabfa0
RGB 31, 31, 31
RGB 30, 25, 3
RGB 19, 11, 0
RGB 0, 0, 0
SandshrewAnimatedObjPalette2: ; 0xabfa8
RGB 31, 31, 31
RGB 30, 25, 3
RGB 19, 11, 0
RGB 0, 0, 0
NidoranFAnimatedObjPalette1: ; 0xabfb0
RGB 31, 31, 31
RGB 19, 23, 30
RGB 8, 8, 24
RGB 0, 0, 0
NidoranFAnimatedObjPalette2: ; 0xabfb8
RGB 31, 31, 31
RGB 19, 23, 30
RGB 8, 8, 24
RGB 0, 0, 0
NidoranMAnimatedObjPalette1: ; 0xabfc0
RGB 31, 31, 31
RGB 28, 16, 25
RGB 20, 5, 12
RGB 0, 0, 0
NidoranMAnimatedObjPalette2: ; 0xabfc8
RGB 31, 31, 31
RGB 28, 16, 25
RGB 20, 5, 12
RGB 0, 0, 0
ClefairyAnimatedObjPalette1: ; 0xabfd0
RGB 31, 31, 31
RGB 31, 20, 20
RGB 23, 5, 6
RGB 0, 0, 0
ClefairyAnimatedObjPalette2: ; 0xabfd8
RGB 31, 31, 31
RGB 31, 20, 20
RGB 23, 5, 6
RGB 0, 0, 0
VulpixAnimatedObjPalette1: ; 0xabfe0
RGB 31, 31, 31
RGB 30, 20, 13
RGB 27, 8, 0
RGB 0, 0, 0
VulpixAnimatedObjPalette2: ; 0xabfe8
RGB 31, 31, 31
RGB 30, 20, 13
RGB 27, 8, 0
RGB 0, 0, 0
JigglypuffAnimatedObjPalette1: ; 0xabff0
RGB 31, 31, 31
RGB 31, 18, 18
RGB 7, 6, 27
RGB 0, 0, 0
JigglypuffAnimatedObjPalette2: ; 0xabff8
RGB 31, 31, 31
RGB 31, 18, 18
RGB 7, 6, 27
RGB 0, 0, 0
SECTION "bank2b", ROMX, BANK[$2b]
TitlescreenFadeInGfx: ; 0xac000
INCBIN "gfx/titlescreen/titlescreen_fade_in.2bpp"
INCBIN "baserom.gbc",$ad800,$af000 - $ad800
StageBlueFieldBottomCollisionMasks: ; 0xaf000
INCBIN "data/collision/masks/blue_stage_bottom.masks"
INCBIN "baserom.gbc",$af800,$b0000 - $af800
SECTION "bank2c", ROMX, BANK[$2c]
INCBIN "baserom.gbc",$b0000,$b3000 - $b0000
StageRedFieldTopCollisionAttributes6: ; 0xb3000
INCBIN "data/collision/maps/red_stage_top_6.collision"
INCBIN "baserom.gbc",$b3400,$b3800 - $b3400
FieldSelectTilemap: ; 0xb3800
INCBIN "gfx/tilemaps/field_select.map"
FieldSelectBGAttributes: ; 0xb3c00
INCBIN "gfx/bgattr/field_select.bgattr"
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"
StageRedFieldTopCollisionAttributes5: ; 0xb6c00
INCBIN "data/collision/maps/red_stage_top_5.collision"
INCBIN "baserom.gbc",$b7000,$b7400 - $b7000
StageRedFieldTopCollisionAttributes4: ; 0xb7400
INCBIN "data/collision/maps/red_stage_top_4.collision"
INCBIN "baserom.gbc",$b7800,$b7c00 - $b7800
PidgeottoBillboardBGPaletteMap: ; 0xb7c00
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
PidgeotBillboardBGPaletteMap: ; 0xb7c18
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
RattataBillboardBGPaletteMap: ; 0xb7c30
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
RaticateBillboardBGPaletteMap: ; 0xb7c48
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
SpearowBillboardBGPaletteMap: ; 0xb7c60
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
FearowBillboardBGPaletteMap: ; 0xb7c78
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
EkansBillboardBGPaletteMap: ; 0xb7c90
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
ArbokBillboardBGPaletteMap: ; 0xb7ca8
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
PikachuBillboardBGPaletteMap: ; 0xb7cc0
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
RaichuBillboardBGPaletteMap: ; 0xb7cd8
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
SandshrewBillboardBGPaletteMap: ; 0xb7cf0
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
SandslashBillboardBGPaletteMap: ; 0xb7d08
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
NidoranFBillboardBGPaletteMap: ; 0xb7d20
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
NidorinaBillboardBGPaletteMap: ; 0xb7d38
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
NidoqueenBillboardBGPaletteMap: ; 0xb7d50
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
NidoranMBillboardBGPaletteMap: ; 0xb7d68
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
INCBIN "baserom.gbc",$b7d80,$b8000 - $b7d80 ; 0xb7d80
SECTION "bank2e", ROMX, BANK[$2e]
StageRedFieldTopCollisionAttributes3: ; 0xb8000
INCBIN "data/collision/maps/red_stage_top_3.collision"
INCBIN "baserom.gbc",$b8400,$b8800 - $b8400
StageRedFieldTopCollisionAttributes2: ; 0xb8800
INCBIN "data/collision/maps/red_stage_top_2.collision"
INCBIN "baserom.gbc",$b8c00,$b9000 - $b8c00
StageRedFieldTopCollisionAttributes1: ; 0xb9000
INCBIN "data/collision/maps/red_stage_top_1.collision"
INCBIN "baserom.gbc",$b9400,$b9800 - $b9400
StageRedFieldTopCollisionAttributes0: ; 0xb9800
INCBIN "data/collision/maps/red_stage_top_0.collision"
INCBIN "baserom.gbc",$b9c00,$ba000 - $b9c00
StageRedFieldTopTilemap_GameBoy: ; 0xba000
INCBIN "gfx/tilemaps/stage_red_field_top_gameboy.map"
INCBIN "baserom.gbc",$ba400,$ba800 - $ba400
StageRedFieldBottomTilemap_GameBoy: ; 0xba800
INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboy.map"
INCBIN "baserom.gbc",$bac00,$bb000 - $bac00
StageRedFieldTopCollisionMasks0: ; 0xbb000
INCBIN "data/collision/masks/red_stage_top_0.masks"
StageRedFieldTopCollisionMasks1: ; 0xbb800
INCBIN "data/collision/masks/red_stage_top_1.masks"
SECTION "bank2f", ROMX, BANK[$2f]
StageRedFieldTopCollisionMasks2: ; 0xbc000
INCBIN "data/collision/masks/red_stage_top_2.masks"
StageRedFieldTopCollisionMasks3: ; 0xbc800
INCBIN "data/collision/masks/red_stage_top_3.masks"
StageRedFieldTopCollisionAttributes7: ; 0xbd000
INCBIN "data/collision/maps/red_stage_top_7.collision"
INCBIN "baserom.gbc",$bd400,$bd800 - $bd400
StageRedFieldBottomCollisionAttributes: ; 0xbd800
INCBIN "data/collision/maps/red_stage_bottom.collision"
INCBIN "baserom.gbc",$bdc00,$be000 - $bdc00
StageRedFieldTopTilemap_GameBoyColor: ; 0xbe000
INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor.map"
StageRedFieldTopTilemap2_GameBoyColor: ; 0xbe400
INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor_2.map"
StageRedFieldBottomTilemap_GameBoyColor: ; 0xbe800
INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor.map"
StageRedFieldBottomTilemap2_GameBoyColor: ; 0xbec00
INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor_2.map"
StageBlueFieldTopTilemap_GameBoy: ; 0xbf000
INCBIN "gfx/tilemaps/stage_blue_field_top_gameboy.map"
INCBIN "baserom.gbc",$bf400,$bf800 - $bf400
EraseAllDataTilemap: ; 0xbf800
INCBIN "gfx/tilemaps/erase_all_data.map"
EraseAllDataBGAttributes: ; 0xbfc00
INCBIN "gfx/bgattr/erase_all_data.bgattr"
SECTION "bank30", ROMX, BANK[$30]
StageBlueFieldBottomTilemap_GameBoy: ; 0xc0000
INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboy.map"
INCBIN "baserom.gbc",$c0400,$c0800 - $c0400
StageBlueFieldTopCollisionMasks: ; 0xc0800
INCBIN "data/collision/masks/blue_stage_top.masks"
StageBlueFieldTopCollisionAttributesBallEntrance: ; 0xc1000
INCBIN "data/collision/maps/blue_stage_top_ball_entrance.collision"
INCBIN "baserom.gbc",$c1400,$c2800 - $c1400
StageBlueFieldTopCollisionAttributes: ; 0xc2800
INCBIN "data/collision/maps/blue_stage_top.collision"
INCBIN "baserom.gbc",$c2c00,$c3800 - $c2c00
OptionMenuTilemap: ; 0xc3800
INCBIN "gfx/tilemaps/option_menu.map"
INCBIN "baserom.gbc",$c3a40,$c4000 - $c3a40 ; 0xc3a40
SECTION "bank31", ROMX, BANK[$31]
StageBlueFieldBottomCollisionAttributes: ; 0xc4000
INCBIN "data/collision/maps/blue_stage_bottom.collision"
INCBIN "baserom.gbc",$c4400,$c5800 - $c4400
TitlescreenTilemap: ; 0xc5800
INCBIN "gfx/tilemaps/titlescreen.map"
TitlescreenBGAttributes: ; 0xc5c00
INCBIN "gfx/bgattr/titlescreen.bgattr"
INCBIN "baserom.gbc",$c5e40,$c6000 - $c5e40
CopyrightScreenTilemap: ; 0xc6000
INCBIN "gfx/tilemaps/copyright_screen.map"
CopyrightScreenBGAttributes: ; 0xc6400
INCBIN "gfx/bgattr/copyright_screen.bgattr"
StageBlueFieldTopTilemap_GameBoyColor: ; 0xc6800
INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor.map"
StageBlueFieldTopTilemap2_GameBoyColor: ; 0xc6c00
INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor_2.map"
StageBlueFieldBottomTilemap_GameBoyColor: ; 0xc7000
INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor.map"
StageBlueFieldBottomTilemap2_GameBoyColor: ; 0xc7400
INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor_2.map"
StageGengarBonusCollisionAttributesBallEntrance: ; 0xc7800
INCBIN "data/collision/maps/gengar_bonus_ball_entrance.collision"
SECTION "bank32", ROMX, BANK[$32]
StageGengarBonusCollisionAttributes: ; 0xc8000
INCBIN "data/collision/maps/gengar_bonus.collision"
INCBIN "baserom.gbc",$c8400,$c8800 - $c8400
GengarBonusTilemap_GameBoy: ; 0xc8800
INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboy.map"
INCBIN "baserom.gbc",$c8c00,$c9000 - $c8c00
GengarBonusBottomTilemap_GameBoyColor: ; 0xc9000
INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor.map"
GengarBonusBottomTilemap2_GameBoyColor: ; 0xc9400
INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor_2.map"
MewtwoBonus3Gfx: ; 0xc9800
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_3.2bpp"
MewtwoBonus1Gfx: ; 0xc99a0
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_1.2bpp"
MewtwoBonus2Gfx: ; 0xc9c00
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_2.2bpp"
MewtwoBonus4Gfx: ; 0xc9c60
INCBIN "gfx/stage/mewtwo_bonus/mewtwo_4.2bpp"
INCBIN "baserom.gbc",$c9f00,$ca000 - $c9f00
StageMewtwoBonusCollisionAttributesBallEntrance: ; 0xca000
INCBIN "data/collision/maps/mewtwo_bonus_ball_entrance.collision"
INCBIN "baserom.gbc",$ca400,$ca800 - $ca400
StageMewtwoBonusCollisionAttributes: ; 0xca800
INCBIN "data/collision/maps/mewtwo_bonus.collision"
INCBIN "baserom.gbc",$cac00,$cb000 - $cac00
MewtwoBonusTilemap_GameBoy: ; 0xcb000
INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboy.map"
INCBIN "baserom.gbc",$cb400,$cb800 - $cb400
MewtoBonusBottomTilemap_GameBoyColor: ; 0xcb800
INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor.map"
MewtoBonusBottomTilemap2_GameBoyColor: ; 0xcbc00
INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor_2.map"
SECTION "bank33", ROMX, BANK[$33]
MeowthBonusMeowth3Gfx: ; 0xcc000
INCBIN "gfx/stage/meowth_bonus/meowth_3.2bpp"
MeowthBonusMeowth1Gfx: ; 0xcc1a0
INCBIN "gfx/stage/meowth_bonus/meowth_1.2bpp"
MeowthBonusMeowth2Gfx: ; 0xcc400
INCBIN "gfx/stage/meowth_bonus/meowth_2.2bpp"
MeowthBonusMeowth4Gfx: ; 0xcc460
INCBIN "gfx/stage/meowth_bonus/meowth_4.2bpp"
INCBIN "baserom.gbc",$cc7c0,$cc800 - $cc7c0
StageMeowthBonusCollisionAttributesBallEntrance: ; 0xcc800
INCBIN "data/collision/maps/meowth_bonus_ball_entrance.collision"
INCBIN "baserom.gbc",$ccc00,$cd000 - $ccc00
StageMeowthBonusCollisionAttributes: ; 0xcd000
INCBIN "data/collision/maps/meowth_bonus.collision"
INCBIN "baserom.gbc",$cd400,$cd800 - $cd400
MeowthBonusTilemap_GameBoy: ; 0xcd800
INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboy.map"
INCBIN "baserom.gbc",$cdc00,$ce800 - $cdc00
StageDiglettBonusCollisionAttributesBallEntrance: ; 0xce800
INCBIN "data/collision/maps/diglett_bonus_ball_entrance.collision"
INCBIN "baserom.gbc",$cec00,$cf000 - $cec00
StageDiglettBonusCollisionAttributes: ; 0xcf000
INCBIN "data/collision/maps/diglett_bonus.collision"
INCBIN "baserom.gbc",$cf400,$d0000 - $cf400
SECTION "bank34", ROMX, BANK[$34]
MagikarpAnimatedCollisionMask: ; 0xd04000
INCBIN "data/collision/mon_masks/magikarp_collision.1bpp"
LaprasAnimatedCollisionMask: ; 0xd04080
INCBIN "data/collision/mon_masks/lapras_collision.1bpp"
DittoAnimatedCollisionMask: ; 0xd04100
INCBIN "data/collision/mon_masks/ditto_collision.1bpp"
EeveeAnimatedCollisionMask: ; 0xd04180
INCBIN "data/collision/mon_masks/eevee_collision.1bpp"
PorygonAnimatedCollisionMask: ; 0xd04200
INCBIN "data/collision/mon_masks/porygon_collision.1bpp"
OmanyteAnimatedCollisionMask: ; 0xd04280
INCBIN "data/collision/mon_masks/omanyte_collision.1bpp"
KabutoAnimatedCollisionMask: ; 0xd04300
INCBIN "data/collision/mon_masks/kabuto_collision.1bpp"
AerodactylAnimatedCollisionMask: ; 0xd04380
INCBIN "data/collision/mon_masks/aerodactyl_collision.1bpp"
SnorlaxAnimatedCollisionMask: ; 0xd04400
INCBIN "data/collision/mon_masks/snorlax_collision.1bpp"
ArticunoAnimatedCollisionMask: ; 0xd04480
INCBIN "data/collision/mon_masks/articuno_collision.1bpp"
ZapdosAnimatedCollisionMask: ; 0xd04500
INCBIN "data/collision/mon_masks/zapdos_collision.1bpp"
MoltresAnimatedCollisionMask: ; 0xd04580
INCBIN "data/collision/mon_masks/moltres_collision.1bpp"
DratiniAnimatedCollisionMask: ; 0xd04600
INCBIN "data/collision/mon_masks/dratini_collision.1bpp"
MewtwoAnimatedCollisionMask: ; 0xd04680
INCBIN "data/collision/mon_masks/mewtwo_collision.1bpp"
MewAnimatedCollisionMask: ; 0xd04700
INCBIN "data/collision/mon_masks/mew_collision.1bpp"
INCBIN "baserom.gbc",$d0780,$80
LickitungAnimatedCollisionMask: ; 0xd04800
INCBIN "data/collision/mon_masks/lickitung_collision.1bpp"
KoffingAnimatedCollisionMask: ; 0xd04880
INCBIN "data/collision/mon_masks/koffing_collision.1bpp"
RhyhornAnimatedCollisionMask: ; 0xd04900
INCBIN "data/collision/mon_masks/rhyhorn_collision.1bpp"
ChanseyAnimatedCollisionMask: ; 0xd04980
INCBIN "data/collision/mon_masks/chansey_collision.1bpp"
TangelaAnimatedCollisionMask: ; 0xd04A00
INCBIN "data/collision/mon_masks/tangela_collision.1bpp"
KangaskhanAnimatedCollisionMask: ; 0xd04A80
INCBIN "data/collision/mon_masks/kangaskhan_collision.1bpp"
HorseaAnimatedCollisionMask: ; 0xd04B00
INCBIN "data/collision/mon_masks/horsea_collision.1bpp"
GoldeenAnimatedCollisionMask: ; 0xd04B80
INCBIN "data/collision/mon_masks/goldeen_collision.1bpp"
StaryuAnimatedCollisionMask: ; 0xd04C00
INCBIN "data/collision/mon_masks/staryu_collision.1bpp"
MrMimeAnimatedCollisionMask: ; 0xd04C80
INCBIN "data/collision/mon_masks/mrmime_collision.1bpp"
ScytherAnimatedCollisionMask: ; 0xd04D00
INCBIN "data/collision/mon_masks/scyther_collision.1bpp"
JynxAnimatedCollisionMask: ; 0xd04D80
INCBIN "data/collision/mon_masks/jynx_collision.1bpp"
ElectabuzzAnimatedCollisionMask: ; 0xd04E00
INCBIN "data/collision/mon_masks/electabuzz_collision.1bpp"
MagmarAnimatedCollisionMask: ; 0xd04E80
INCBIN "data/collision/mon_masks/magmar_collision.1bpp"
PinsirAnimatedCollisionMask: ; 0xd04F00
INCBIN "data/collision/mon_masks/pinsir_collision.1bpp"
TaurosAnimatedCollisionMask: ; 0xd04F80
INCBIN "data/collision/mon_masks/tauros_collision.1bpp"
SlowpokeAnimatedCollisionMask: ; 0xd05000
INCBIN "data/collision/mon_masks/slowpoke_collision.1bpp"
MagnemiteAnimatedCollisionMask: ; 0xd05080
INCBIN "data/collision/mon_masks/magnemite_collision.1bpp"
FarfetchdAnimatedCollisionMask: ; 0xd05100
INCBIN "data/collision/mon_masks/farfetchd_collision.1bpp"
DoduoAnimatedCollisionMask: ; 0xd05180
INCBIN "data/collision/mon_masks/doduo_collision.1bpp"
SeelAnimatedCollisionMask: ; 0xd05200
INCBIN "data/collision/mon_masks/seel_collision.1bpp"
GrimerAnimatedCollisionMask: ; 0xd05280
INCBIN "data/collision/mon_masks/grimer_collision.1bpp"
ShellderAnimatedCollisionMask: ; 0xd05300
INCBIN "data/collision/mon_masks/shellder_collision.1bpp"
GastlyAnimatedCollisionMask: ; 0xd05380
INCBIN "data/collision/mon_masks/gastly_collision.1bpp"
OnixAnimatedCollisionMask: ; 0xd05400
INCBIN "data/collision/mon_masks/onix_collision.1bpp"
DrowzeeAnimatedCollisionMask: ; 0xd05480
INCBIN "data/collision/mon_masks/drowzee_collision.1bpp"
KrabbyAnimatedCollisionMask: ; 0xd05500
INCBIN "data/collision/mon_masks/krabby_collision.1bpp"
VoltorbAnimatedCollisionMask: ; 0xd05580
INCBIN "data/collision/mon_masks/voltorb_collision.1bpp"
ExeggcuteAnimatedCollisionMask: ; 0xd05600
INCBIN "data/collision/mon_masks/exeggcute_collision.1bpp"
CuboneAnimatedCollisionMask: ; 0xd05680
INCBIN "data/collision/mon_masks/cubone_collision.1bpp"
HitmonleeAnimatedCollisionMask: ; 0xd05700
INCBIN "data/collision/mon_masks/hitmonlee_collision.1bpp"
HitmonchanAnimatedCollisionMask: ; 0xd05780
INCBIN "data/collision/mon_masks/hitmonchan_collision.1bpp"
ZubatAnimatedCollisionMask: ; 0xd05800
INCBIN "data/collision/mon_masks/zubat_collision.1bpp"
OddishAnimatedCollisionMask: ; 0xd05880
INCBIN "data/collision/mon_masks/oddish_collision.1bpp"
ParasAnimatedCollisionMask: ; 0xd05900
INCBIN "data/collision/mon_masks/paras_collision.1bpp"
VenonatAnimatedCollisionMask: ; 0xd05980
INCBIN "data/collision/mon_masks/venonat_collision.1bpp"
DiglettAnimatedCollisionMask: ; 0xd05A00
INCBIN "data/collision/mon_masks/diglett_collision.1bpp"
MeowthAnimatedCollisionMask: ; 0xd05A80
INCBIN "data/collision/mon_masks/meowth_collision.1bpp"
PsyduckAnimatedCollisionMask: ; 0xd05B00
INCBIN "data/collision/mon_masks/psyduck_collision.1bpp"
MankeyAnimatedCollisionMask: ; 0xd05B80
INCBIN "data/collision/mon_masks/mankey_collision.1bpp"
GrowlitheAnimatedCollisionMask: ; 0xd05C00
INCBIN "data/collision/mon_masks/growlithe_collision.1bpp"
PoliwagAnimatedCollisionMask: ; 0xd05C80
INCBIN "data/collision/mon_masks/poliwag_collision.1bpp"
AbraAnimatedCollisionMask: ; 0xd05D00
INCBIN "data/collision/mon_masks/abra_collision.1bpp"
MachopAnimatedCollisionMask: ; 0xd05D80
INCBIN "data/collision/mon_masks/machop_collision.1bpp"
BellsproutAnimatedCollisionMask: ; 0xd05E00
INCBIN "data/collision/mon_masks/bellsprout_collision.1bpp"
TentacoolAnimatedCollisionMask: ; 0xd05E80
INCBIN "data/collision/mon_masks/tentacool_collision.1bpp"
GeodudeAnimatedCollisionMask: ; 0xd05F00
INCBIN "data/collision/mon_masks/geodude_collision.1bpp"
PonytaAnimatedCollisionMask: ; 0xd05F80
INCBIN "data/collision/mon_masks/ponyta_collision.1bpp"
BulbasaurAnimatedCollisionMask: ; 0xd06000
INCBIN "data/collision/mon_masks/bulbasaur_collision.1bpp"
CharmanderAnimatedCollisionMask: ; 0xd06080
INCBIN "data/collision/mon_masks/charmander_collision.1bpp"
SquirtleAnimatedCollisionMask: ; 0xd06100
INCBIN "data/collision/mon_masks/squirtle_collision.1bpp"
CaterpieAnimatedCollisionMask: ; 0xd06180
INCBIN "data/collision/mon_masks/caterpie_collision.1bpp"
WeedleAnimatedCollisionMask: ; 0xd06200
INCBIN "data/collision/mon_masks/weedle_collision.1bpp"
PidgeyAnimatedCollisionMask: ; 0xd06280
INCBIN "data/collision/mon_masks/pidgey_collision.1bpp"
RattataAnimatedCollisionMask: ; 0xd06300
INCBIN "data/collision/mon_masks/rattata_collision.1bpp"
SpearowAnimatedCollisionMask: ; 0xd06380
INCBIN "data/collision/mon_masks/spearow_collision.1bpp"
EkansAnimatedCollisionMask: ; 0xd06400
INCBIN "data/collision/mon_masks/ekans_collision.1bpp"
PikachuAnimatedCollisionMask: ; 0xd06480
INCBIN "data/collision/mon_masks/pikachu_collision.1bpp"
SandshrewAnimatedCollisionMask: ; 0xd06500
INCBIN "data/collision/mon_masks/sandshrew_collision.1bpp"
NidoranfAnimatedCollisionMask: ; 0xd06580
INCBIN "data/collision/mon_masks/nidoranf_collision.1bpp"
NidoranmAnimatedCollisionMask: ; 0xd06600
INCBIN "data/collision/mon_masks/nidoranm_collision.1bpp"
ClefairyAnimatedCollisionMask: ; 0xd06680
INCBIN "data/collision/mon_masks/clefairy_collision.1bpp"
VulpixAnimatedCollisionMask: ; 0xd06700
INCBIN "data/collision/mon_masks/vulpix_collision.1bpp"
JigglypuffAnimatedCollisionMask: ; 0xd06780
INCBIN "data/collision/mon_masks/jigglypuff_collision.1bpp"
INCBIN "baserom.gbc",$d2800,$d4000 - $d2800 ; 0xd0000
SECTION "bank35", ROMX, BANK[$35]
StageSeelBonusCollisionAttributesBallEntrance: ; 0xd4000
INCBIN "data/collision/maps/seel_bonus_ball_entrance.collision"
INCBIN "baserom.gbc",$d4400,$d4800 - $d4400
StageSeelBonusCollisionAttributes: ; 0xd4800
INCBIN "data/collision/maps/seel_bonus.collision"
INCBIN "baserom.gbc",$d4c00,$d6000 - $d4c00
Alphabet1Gfx: ; 0xd6000
INCBIN "gfx/stage/alphabet_1.2bpp"
INCBIN "baserom.gbc",$d61a0,$d6200 - $d61a0
Alphabet2Gfx: ; 0xd6200
INCBIN "gfx/stage/alphabet_2.2bpp"
INCBIN "baserom.gbc",$d63a0,$d6450 - $d63a0
InGameMenuSymbolsGfx: ; 0xd6450
INCBIN "gfx/stage/menu_symbols.2bpp"
INCBIN "baserom.gbc",$d6490,$d6600 - $d6490
StageBlueFieldTopGfx3: ; 0xd6600
INCBIN "gfx/stage/blue_top/blue_top_3.2bpp"
StageBlueFieldTopGfx1: ; 0xd67a0
INCBIN "gfx/stage/blue_top/blue_top_1.2bpp"
StageBlueFieldTopGfx2: ; 0xd6a00
INCBIN "gfx/stage/blue_top/blue_top_2.2bpp"
StageRedJapaneseCharactersGfx: ; 0xd6c00
INCBIN "gfx/stage/red_bottom/japanese_characters.2bpp"
StageRedJapaneseCharactersGfx2: ; 0xd7000
INCBIN "gfx/stage/red_bottom/japanese_characters_2.2bpp"
NidorinoBillboardBGPaletteMap: ; 0xd7200
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
NidokingBillboardBGPaletteMap: ; 0xd7218
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
ClefairyBillboardBGPaletteMap: ; 0xd7230
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
ClefableBillboardBGPaletteMap: ; 0xd7248
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
VulpixBillboardBGPaletteMap: ; 0xd7260
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
NinetalesBillboardBGPaletteMap: ; 0xd7278
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
JigglypuffBillboardBGPaletteMap: ; 0xd7290
db $6, $6, $6, $6, $6, $6
db $6, $7, $7, $7, $7, $6
db $6, $7, $7, $7, $7, $6
db $6, $6, $6, $6, $6, $6
WigglytuffBillboardBGPaletteMap: ; 0xd72a8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $7, $6, $6
db $6, $7, $6, $7, $6, $6
db $6, $6, $6, $6, $6, $6
ZubatBillboardBGPaletteMap: ; 0xd72c0
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
GolbatBillboardBGPaletteMap: ; 0xd72d8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
OddishBillboardBGPaletteMap: ; 0xd72f0
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $7, $7, $7, $7, $6
db $6, $7, $7, $7, $7, $6
GloomBillboardBGPaletteMap: ; 0xd7308
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $7, $7, $7, $7, $6
db $7, $7, $7, $7, $7, $7
VileplumeBillboardBGPaletteMap: ; 0xd7320
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $7, $7, $7, $7, $6
db $6, $6, $7, $7, $7, $6
ParasBillboardBGPaletteMap: ; 0xd7338
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
ParasectBillboardBGPaletteMap: ; 0xd7350
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
VenonatBillboardBGPaletteMap: ; 0xd7368
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
INCBIN "baserom.gbc",$d7380,$d7600 - $d7380
VenomothBillboardBGPaletteMap: ; 0xd7600
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
DiglettBillboardBGPaletteMap: ; 0xd7618
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $6, $7, $7, $6, $6
DugtrioBillboardBGPaletteMap: ; 0xd7630
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
MeowthBillboardBGPaletteMap: ; 0xd7648
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
PersianBillboardBGPaletteMap: ; 0xd7660
db $6, $6, $6, $6, $6, $6
db $7, $7, $7, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
PsyduckBillboardBGPaletteMap: ; 0xd7678
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
GolduckBillboardBGPaletteMap: ; 0xd7690
db $6, $7, $7, $7, $6, $6
db $6, $7, $7, $7, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
MankeyBillboardBGPaletteMap: ; 0xd76a8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
PrimeapeBillboardBGPaletteMap: ; 0xd76c0
db $6, $6, $6, $6, $6, $6
db $7, $6, $6, $6, $6, $7
db $7, $6, $6, $6, $6, $7
db $6, $6, $6, $6, $6, $6
GrowlitheBillboardBGPaletteMap: ; 0xd76d8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $7, $7, $6, $6, $6
ArcanineBillboardBGPaletteMap: ; 0xd76f0
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
PoliwagBillboardBGPaletteMap: ; 0xd7708
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $6, $6, $6
db $6, $6, $7, $6, $6, $6
db $6, $6, $6, $6, $6, $6
PoliwhirlBillboardBGPaletteMap: ; 0xd7720
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
PoliwrathBillboardBGPaletteMap: ; 0xd7738
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
AbraBillboardBGPaletteMap: ; 0xd7750
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
KadabraBillboardBGPaletteMap: ; 0xd7768
db $6, $6, $6, $6, $6, $6
db $6, $7, $6, $6, $6, $6
db $6, $7, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
INCBIN "baserom.gbc",$d7780,$d7a00 - $d7780
AlakazamBillboardBGPaletteMap: ; 0xd7a00
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $7, $6, $6, $7, $6
db $6, $6, $6, $6, $6, $6
MachopBillboardBGPaletteMap: ; 0xd7a18
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $7
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
MachokeBillboardBGPaletteMap: ; 0xd7a30
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
MachampBillboardBGPaletteMap: ; 0xd7a48
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
BellsproutBillboardBGPaletteMap: ; 0xd7a60
db $6, $6, $6, $6, $7, $7
db $6, $7, $7, $6, $7, $7
db $6, $7, $7, $6, $6, $7
db $6, $6, $6, $6, $7, $7
WeepinbellBillboardBGPaletteMap: ; 0xd7a78
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $7, $7, $7, $6, $6, $6
db $7, $7, $7, $6, $6, $6
VictreebellBillboardBGPaletteMap: ; 0xd7a90
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $6, $6, $6
db $6, $6, $7, $7, $7, $7
db $6, $6, $6, $6, $6, $6
TentacoolBillboardBGPaletteMap: ; 0xd7aa8
db $6, $7, $6, $6, $7, $6
db $6, $6, $7, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
TentacruelBillboardBGPaletteMap: ; 0xd7ac0
db $6, $6, $7, $6, $7, $6
db $6, $6, $6, $7, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
GeodudeBillboardBGPaletteMap: ; 0xd7ad8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
GravelerBillboardBGPaletteMap: ; 0xd7af0
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
GolemBillboardBGPaletteMap: ; 0xd7b08
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $7, $7, $6, $6, $6
db $6, $7, $7, $6, $6, $6
PonytaBillboardBGPaletteMap: ; 0xd7b20
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $6, $6, $7
db $6, $6, $6, $6, $6, $7
db $6, $6, $6, $6, $6, $6
RapidashBillboardBGPaletteMap: ; 0xd7b38
db $7, $7, $7, $7, $7, $6
db $7, $7, $7, $6, $7, $6
db $7, $7, $6, $6, $6, $6
db $7, $7, $6, $6, $6, $6
SlowpokeBillboardBGPaletteMap: ; 0xd7b50
db $6, $6, $6, $6, $6, $6
db $7, $7, $7, $7, $6, $6
db $7, $7, $7, $7, $6, $6
db $7, $7, $7, $7, $6, $6
SlowbroBillboardBGPaletteMap: ; 0xd7b68
db $7, $7, $7, $7, $7, $7
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
INCBIN "baserom.gbc",$d7b80,$d8000 - $d7b80
SECTION "bank36", ROMX, BANK[$36]
INCBIN "baserom.gbc",$d8000,$d8400 - $d8000
MagnemiteBillboardBGPaletteMap: ; 0xd8400
db $7, $7, $6, $6, $6, $6
db $7, $7, $6, $6, $6, $7
db $6, $6, $6, $6, $6, $7
db $6, $6, $6, $6, $6, $6
MagnetonBillboardBGPaletteMap: ; 0xd8418
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
FarfetchdBillboardBGPaletteMap: ; 0xd8430
db $6, $6, $6, $6, $7, $7
db $6, $6, $6, $6, $7, $7
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
DoduoBillboardBGPaletteMap: ; 0xd8448
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
DodrioBillboardBGPaletteMap: ; 0xd8460
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
SeelBillboardBGPaletteMap: ; 0xd8478
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $7, $7, $6
db $6, $6, $7, $7, $7, $6
DewgongBillboardBGPaletteMap: ; 0xd8490
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
GrimerBillboardBGPaletteMap: ; 0xd84a8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
MukBillboardBGPaletteMap: ; 0xd84c0
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
ShellderBillboardBGPaletteMap: ; 0xd84d8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $7, $7, $7, $6, $6
CloysterBillboardBGPaletteMap: ; 0xd84f0
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
GastlyBillboardBGPaletteMap: ; 0xd8508
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $7, $7, $6, $6, $6
db $6, $6, $6, $6, $6, $6
HaunterBillboardBGPaletteMap: ; 0xd8520
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $7, $7, $7, $6, $6
db $6, $6, $6, $6, $6, $6
GengarBillboardBGPaletteMap: ; 0xd8538
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $6, $7, $6
db $6, $6, $6, $6, $6, $6
OnixBillboardBGPaletteMap: ; 0xd8550
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
DrowzeeBillboardBGPaletteMap: ; 0xd8568
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
INCBIN "baserom.gbc",$d8580,$d8800 - $d8580
HypnoBillboardBGPaletteMap: ; 0xd8800
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $7, $7
db $7, $6, $6, $6, $7, $7
db $7, $6, $6, $6, $7, $7
KrabbyBillboardBGPaletteMap: ; 0xd8818
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
KinglerBillboardBGPaletteMap: ; 0xd8830
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
VoltorbBillboardBGPaletteMap: ; 0xd8848
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $7
db $6, $6, $6, $6, $7, $7
db $7, $6, $6, $7, $7, $7
ElectrodeBillboardBGPaletteMap: ; 0xd8860
db $6, $6, $6, $7, $7, $6
db $6, $6, $6, $7, $7, $7
db $6, $6, $6, $6, $7, $7
db $6, $6, $6, $6, $6, $6
ExeggcuteBillboardBGPaletteMap: ; 0xd8878
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
ExeggutorBillboardBGPaletteMap: ; 0xd8890
db $6, $6, $6, $6, $6, $6
db $6, $7, $7, $7, $7, $6
db $6, $7, $7, $7, $7, $6
db $6, $7, $7, $7, $7, $6
CuboneBillboardBGPaletteMap: ; 0xd88a8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $7, $7, $7, $7, $7, $6
MarowakBillboardBGPaletteMap: ; 0xd88c0
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $7, $7
HitmonleeBillboardBGPaletteMap: ; 0xd88d8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
HitmonchanBillboardBGPaletteMap: ; 0xd88f0
db $6, $6, $7, $7, $7, $7
db $6, $6, $6, $7, $7, $7
db $6, $6, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
LickitungBillboardBGPaletteMap: ; 0xd8908
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $7, $6, $6
KoffingBillboardBGPaletteMap: ; 0xd8920
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
WeezingBillboardBGPaletteMap: ; 0xd8938
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
RhyhornBillboardBGPaletteMap: ; 0xd8950
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
RhydonBillboardBGPaletteMap: ; 0xd8968
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
INCBIN "baserom.gbc",$d8980,$d8c00 - $d8980
SaverTextOffGfx: ; 0xd8c00
INCBIN "gfx/stage/saver_off.2bpp"
INCBIN "baserom.gbc",$d8c40,$d9000 - $d8c40
StageRedFieldBottomCollisionMasks: ; 0xd9000
INCBIN "data/collision/masks/red_stage_bottom.masks"
MagikarpBillboardBGPaletteMap: ; 0xd9400
db $6, $6, $6, $6, $6, $6
db $7, $7, $6, $6, $6, $6
db $7, $7, $6, $6, $6, $6
db $7, $7, $6, $6, $6, $6
GyaradosBillboardBGPaletteMap: ; 0xd9418
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $6, $7, $7, $6, $6
LaprasBillboardBGPaletteMap: ; 0xd9430
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
DittoBillboardBGPaletteMap: ; 0xd9448
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
EeveeBillboardBGPaletteMap: ; 0xd9460
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
VaporeonBillboardBGPaletteMap: ; 0xd9478
db $7, $7, $7, $6, $6, $6
db $7, $7, $6, $6, $7, $7
db $7, $7, $6, $6, $7, $7
db $6, $6, $6, $6, $6, $6
JolteonBillboardBGPaletteMap: ; 0xd9490
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
FlareonBillboardBGPaletteMap: ; 0xd94a8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
PorygonBillboardBGPaletteMap: ; 0xd94c0
db $6, $6, $6, $6, $7, $6
db $6, $6, $7, $6, $6, $7
db $6, $7, $7, $6, $6, $7
db $6, $7, $7, $7, $6, $6
OmanyteBillboardBGPaletteMap: ; 0xd94d8
db $6, $7, $6, $6, $6, $6
db $6, $7, $6, $6, $6, $6
db $7, $7, $6, $6, $6, $6
db $7, $7, $6, $6, $6, $6
OmastarBillboardBGPaletteMap: ; 0xd94f0
db $6, $6, $6, $6, $7, $6
db $6, $6, $6, $6, $7, $7
db $6, $7, $7, $6, $6, $7
db $6, $6, $7, $6, $6, $7
KabutoBillboardBGPaletteMap: ; 0xd9508
db $6, $6, $6, $7, $7, $6
db $6, $6, $7, $7, $7, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
KabutopsBillboardBGPaletteMap: ; 0xd9520
db $7, $6, $6, $6, $6, $7
db $7, $6, $6, $6, $7, $7
db $7, $6, $6, $7, $6, $7
db $6, $6, $7, $7, $6, $6
AerodactylBillboardBGPaletteMap: ; 0xd9538
db $7, $7, $6, $6, $7, $7
db $7, $7, $6, $7, $7, $7
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
SnorlaxBillboardBGPaletteMap: ; 0xd9550
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $6, $7, $6, $6, $6
db $6, $6, $6, $6, $6, $6
ArticunoBillboardBGPaletteMap: ; 0xd9568
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
INCBIN "baserom.gbc",$d9580,$d9800 - $d9580
ZapdosBillboardBGPaletteMap: ; 0xd9800
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
MoltresBillboardBGPaletteMap: ; 0xd9818
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
DratiniBillboardBGPaletteMap: ; 0xd9830
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
DragonairBillboardBGPaletteMap: ; 0xd9848
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
DragoniteBillboardBGPaletteMap: ; 0xd9860
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $7, $6, $6, $6, $6, $7
db $7, $7, $6, $6, $7, $7
MewtwoBillboardBGPaletteMap: ; 0xd9878
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $6, $6, $6, $6, $6
MewBillboardBGPaletteMap: ; 0xd9890
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $7, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
INCBIN "baserom.gbc",$d98a8,$da000 - $d98a8
CopyrightTextGfx: ; 0xda000
INCBIN "gfx/copyright_text.2bpp"
ChanseyBillboardBGPaletteMap: ; 0xda400
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
TangelaBillboardBGPaletteMap: ; 0xda418
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
KangaskhanBillboardBGPaletteMap: ; 0xda430
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
HorseaBillboardBGPaletteMap: ; 0xda448
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $7, $7
SeadraBillboardBGPaletteMap: ; 0xda460
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
GoldeenBillboardBGPaletteMap: ; 0xda478
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
SeakingBillboardBGPaletteMap: ; 0xda490
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
StaryuBillboardBGPaletteMap: ; 0xda4a8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $7, $6, $6
db $6, $6, $6, $6, $6, $6
StarmieBillboardBGPaletteMap: ; 0xda4c0
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $7, $6, $6
db $6, $6, $6, $6, $6, $6
MrMimeBillboardBGPaletteMap: ; 0xda4d8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
ScytherBillboardBGPaletteMap: ; 0xda4f0
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
JynxBillboardBGPaletteMap: ; 0xda508
db $6, $7, $7, $7, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $6, $6, $6
ElectabuzzBillboardBGPaletteMap: ; 0xda520
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
MagmarBillboardBGPaletteMap: ; 0xda538
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
PinsirBillboardBGPaletteMap: ; 0xda550
db $6, $6, $6, $6, $6, $6
db $6, $6, $7, $6, $6, $6
db $6, $6, $7, $6, $6, $6
db $6, $6, $6, $6, $7, $7
TaurosBillboardBGPaletteMap: ; 0xda568
db $7, $7, $6, $6, $7, $7
db $7, $7, $6, $7, $7, $7
db $6, $7, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
INCBIN "baserom.gbc",$da580,$da800 - $da580
BulbasaurBillboardBGPaletteMap: ; 0xda800
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $6, $7, $7
db $7, $7, $7, $6, $6, $7
IvysaurBillboardBGPaletteMap: ; 0xda818
db $6, $7, $7, $7, $7, $7
db $7, $6, $6, $6, $6, $7
db $6, $6, $6, $7, $6, $7
db $6, $6, $6, $7, $7, $7
VenusaurBillboardBGPaletteMap: ; 0xda830
db $7, $7, $6, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $6, $6, $6, $6, $7
db $7, $7, $6, $6, $6, $7
CharmanderBillboardBGPaletteMap: ; 0xda848
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
CharmeleonBillboardBGPaletteMap: ; 0xda860
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
CharizardBillboardBGPaletteMap: ; 0xda878
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
SquirtleBillboardBGPaletteMap: ; 0xda890
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $6, $6, $7, $7
WartortleBillboardBGPaletteMap: ; 0xda8a8
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $6, $6, $7, $7
db $7, $6, $6, $6, $7, $7
BlastoiseBillboardBGPaletteMap: ; 0xda8c0
db $6, $6, $6, $6, $7, $7
db $6, $7, $7, $7, $7, $7
db $6, $6, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
CaterpieBillboardBGPaletteMap: ; 0xda8d8
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
db $6, $6, $6, $6, $6, $6
MetapodBillboardBGPaletteMap: ; 0xda8f0
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
ButterfreeBillboardBGPaletteMap: ; 0xda908
db $7, $7, $7, $7, $7, $7
db $7, $7, $6, $6, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
WeedleBillboardBGPaletteMap: ; 0xda920
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
KakunaBillboardBGPaletteMap: ; 0xda938
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
BeedrillBillboardBGPaletteMap: ; 0xda950
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
PidgeyBillboardBGPaletteMap: ; 0xda968
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
db $7, $7, $7, $7, $7, $7
INCBIN "baserom.gbc",$da980,$dac00 - $da980
StageSharedBonusSlotGlowGfx: ; 0xdac00
INCBIN "gfx/stage/shared/bonus_slot_glow.2bpp"
INCBIN "baserom.gbc",$dad60,$dade0 - $dad60
StageSharedBonusSlotGlow2Gfx: ; 0xdade0
INCBIN "gfx/stage/shared/bonus_slot_glow_2.2bpp"
StageRedFieldTopGfx5: ; 0xdae00
INCBIN "gfx/stage/red_top/red_top_5.2bpp"
INCBIN "baserom.gbc",$db000,$db200 - $db000
TimerDigitsGfx: ; 0xdb200
INCBIN "gfx/stage/timer_digits.2bpp"
INCBIN "baserom.gbc",$db360,$db600 - $db360
StageGengarBonusCollisionMasks: ; 0xdb600
INCBIN "data/collision/masks/gengar_bonus.masks"
ZubatAnimatedObjPalette1: ; 0xdb780
RGB 31, 31, 31
RGB 15, 19, 31
RGB 14, 9, 21
RGB 0, 0, 0
ZubatAnimatedObjPalette2: ; 0xdb3788
RGB 31, 31, 31
RGB 15, 19, 31
RGB 14, 9, 21
RGB 0, 0, 0
OddishAnimatedObjPalette1: ; 0xdb790
RGB 31, 31, 31
RGB 27, 29, 5
RGB 5, 16, 0
RGB 0, 0, 0
OddishAnimatedObjPalette2: ; 0xdb798
RGB 31, 31, 31
RGB 27, 29, 5
RGB 5, 16, 0
RGB 0, 0, 0
ParasAnimatedObjPalette1: ; 0xdb7a0
RGB 31, 31, 31
RGB 31, 15, 1
RGB 22, 5, 2
RGB 0, 0, 0
ParasAnimatedObjPalette2: ; 0xdb7a8
RGB 31, 31, 31
RGB 31, 15, 1
RGB 22, 5, 2
RGB 0, 0, 0
VenonatAnimatedObjPalette1: ; 0xdb7b0
RGB 31, 31, 31
RGB 24, 15, 28
RGB 12, 5, 18
RGB 0, 0, 0
VenonatAnimatedObjPalette2: ; 0xdb7b8
RGB 31, 31, 31
RGB 24, 15, 28
RGB 12, 5, 18
RGB 0, 0, 0
DiglettAnimatedObjPalette1: ; 0xdb7c0
RGB 31, 31, 31
RGB 31, 18, 1
RGB 24, 9, 3
RGB 0, 0, 0
DiglettAnimatedObjPalette2: ; 0xdb7c8
RGB 31, 31, 31
RGB 31, 18, 1
RGB 24, 9, 3
RGB 0, 0, 0
MeowthAnimatedObjPalette1: ; 0xdb7d0
RGB 31, 31, 31
RGB 30, 25, 16
RGB 23, 12, 6
RGB 0, 0, 0
MeowthAnimatedObjPalette2: ; 0xdb7d8
RGB 31, 31, 31
RGB 30, 25, 16
RGB 23, 12, 6
RGB 0, 0, 0
PsyduckAnimatedObjPalette1: ; 0xdb7e0
RGB 31, 31, 31
RGB 31, 31, 0
RGB 19, 17, 0
RGB 0, 0, 0
PsyduckAnimatedObjPalette2: ; 0xdb7e8
RGB 31, 31, 31
RGB 31, 31, 0
RGB 19, 17, 0
RGB 0, 0, 0
MankeyAnimatedObjPalette1: ; 0xdb7f0
RGB 31, 31, 31
RGB 31, 21, 19
RGB 23, 8, 4
RGB 0, 0, 0
MankeyAnimatedObjPalette2: ; 0xdb7f8
RGB 31, 31, 31
RGB 31, 21, 19
RGB 23, 8, 4
RGB 0, 0, 0
GrowlitheAnimatedObjPalette1: ; 0xdb800
RGB 31, 31, 31
RGB 31, 18, 1
RGB 24, 9, 3
RGB 0, 0, 0
GrowlitheAnimatedObjPalette2: ; 0xdb808
RGB 31, 31, 31
RGB 31, 18, 1
RGB 24, 9, 3
RGB 0, 0, 0
PoliwagAnimatedObjPalette1: ; 0xdb810
RGB 31, 31, 31
RGB 17, 19, 23
RGB 9, 10, 12
RGB 0, 0, 0
PoliwagAnimatedObjPalette2: ; 0xdb818
RGB 31, 31, 31
RGB 17, 19, 23
RGB 9, 10, 12
RGB 0, 0, 0
AbraAnimatedObjPalette1: ; 0xdb820
RGB 31, 31, 31
RGB 30, 24, 0
RGB 17, 10, 4
RGB 0, 0, 0
AbraAnimatedObjPalette2: ; 0xdb828
RGB 31, 31, 31
RGB 30, 24, 0
RGB 17, 10, 4
RGB 0, 0, 0
MachopAnimatedObjPalette1: ; 0xdb830
RGB 31, 31, 31
RGB 17, 19, 23
RGB 9, 10, 12
RGB 0, 0, 0
MachopAnimatedObjPalette2: ; 0xdb838
RGB 31, 31, 31
RGB 17, 19, 23
RGB 9, 10, 12
RGB 0, 0, 0
BellsproutAnimatedObjPalette1: ; 0xdb840
RGB 31, 31, 31
RGB 29, 26, 5
RGB 5, 16, 0
RGB 0, 0, 0
BellsproutAnimatedObjPalette2: ; 0xdb848
RGB 31, 31, 31
RGB 29, 26, 5
RGB 5, 16, 0
RGB 0, 0, 0
TentacoolAnimatedObjPalette1: ; 0xdb850
RGB 31, 31, 31
RGB 16, 22, 31
RGB 0, 11, 22
RGB 0, 0, 0
TentacoolAnimatedObjPalette2: ; 0xdb858
RGB 31, 31, 31
RGB 16, 22, 31
RGB 0, 11, 22
RGB 0, 0, 0
GeodudeAnimatedObjPalette1: ; 0xdb860
RGB 31, 31, 31
RGB 19, 23, 20
RGB 8, 11, 7
RGB 0, 0, 0
GeodudeAnimatedObjPalette2: ; 0xdb868
RGB 31, 31, 31
RGB 19, 23, 20
RGB 8, 11, 7
RGB 0, 0, 0
PonytaAnimatedObjPalette1: ; 0xdb870
RGB 31, 31, 31
RGB 31, 28, 11
RGB 31, 6, 0
RGB 0, 0, 0
PonytaAnimatedObjPalette2: ; 0xdb878
RGB 31, 31, 31
RGB 31, 28, 11
RGB 31, 6, 0
RGB 0, 0, 0
SlowpokeAnimatedObjPalette1: ; 0xdb880
RGB 31, 31, 31
RGB 31, 18, 16
RGB 31, 11, 9
RGB 0, 0, 0
SlowpokeAnimatedObjPalette2: ; 0xdb888
RGB 31, 31, 31
RGB 31, 18, 16
RGB 31, 11, 9
RGB 0, 0, 0
MagnemiteAnimatedObjPalette1: ; 0xdb890
RGB 31, 31, 31
RGB 17, 19, 23
RGB 9, 10, 12
RGB 0, 0, 0
MagnemiteAnimatedObjPalette2: ; 0xdb898
RGB 31, 31, 31
RGB 17, 19, 23
RGB 9, 10, 12
RGB 0, 0, 0
FarfetchdAnimatedObjPalette1: ; 0xdb8a0
RGB 31, 31, 31
RGB 31, 22, 5
RGB 19, 11, 4
RGB 0, 0, 0
FarfetchdAnimatedObjPalette2: ; 0xdb8a8
RGB 31, 31, 31
RGB 31, 22, 5
RGB 19, 11, 4
RGB 0, 0, 0
DoduoAnimatedObjPalette1: ; 0xdb8b0
RGB 31, 31, 31
RGB 30, 20, 5
RGB 22, 5, 2
RGB 0, 0, 0
DoduoAnimatedObjPalette2: ; 0xdb8b8
RGB 31, 31, 31
RGB 30, 20, 5
RGB 22, 5, 2
RGB 0, 0, 0
SeelAnimatedObjPalette1: ; 0xdb8c0
RGB 31, 31, 31
RGB 20, 24, 29
RGB 8, 11, 20
RGB 0, 0, 0
SeelAnimatedObjPalette2: ; 0xdb8c8
RGB 31, 31, 31
RGB 20, 24, 29
RGB 8, 11, 20
RGB 0, 0, 0
GrimerAnimatedObjPalette1: ; 0xdb8d0
RGB 31, 31, 31
RGB 27, 15, 31
RGB 16, 7, 19
RGB 0, 0, 0
GrimerAnimatedObjPalette2: ; 0xdb8d8
RGB 31, 31, 31
RGB 27, 15, 31
RGB 16, 7, 19
RGB 0, 0, 0
ShellderAnimatedObjPalette1: ; 0xdb8e0
RGB 31, 31, 31
RGB 26, 19, 29
RGB 15, 11, 17
RGB 0, 0, 0
ShellderAnimatedObjPalette2: ; 0xdb8e8
RGB 31, 31, 31
RGB 26, 19, 29
RGB 15, 11, 17
RGB 0, 0, 0
GastlyAnimatedObjPalette1: ; 0xdb8f0
RGB 31, 31, 31
RGB 25, 17, 28
RGB 12, 7, 15
RGB 0, 0, 0
GastlyAnimatedObjPalette2: ; 0xdb8f8
RGB 31, 31, 31
RGB 31, 23, 17
RGB 23, 8, 4
RGB 0, 0, 0
OnixAnimatedObjPalette1: ; 0xdb900
RGB 31, 31, 31
RGB 17, 19, 23
RGB 9, 10, 12
RGB 0, 0, 0
OnixAnimatedObjPalette2: ; 0xdb908
RGB 31, 31, 31
RGB 17, 19, 23
RGB 9, 10, 12
RGB 0, 0, 0
DrowzeeAnimatedObjPalette1: ; 0xdb910
RGB 31, 31, 31
RGB 30, 24, 0
RGB 17, 10, 4
RGB 0, 0, 0
DrowzeeAnimatedObjPalette2: ; 0xdb918
RGB 31, 31, 31
RGB 30, 24, 0
RGB 17, 10, 4
RGB 0, 0, 0
KrabbyAnimatedObjPalette1: ; 0xdb920
RGB 31, 31, 31
RGB 31, 20, 8
RGB 28, 6, 0
RGB 0, 0, 0
KrabbyAnimatedObjPalette2: ; 0xdb928
RGB 31, 31, 31
RGB 31, 20, 8
RGB 28, 6, 0
RGB 0, 0, 0
VoltorbAnimatedObjPalette1: ; 0xdb930
RGB 31, 31, 31
RGB 31, 17, 14
RGB 31, 0, 0
RGB 0, 0, 0
VoltorbAnimatedObjPalette2: ; 0xdb938
RGB 31, 31, 31
RGB 31, 17, 14
RGB 31, 0, 0
RGB 0, 0, 0
ExeggcuteAnimatedObjPalette1: ; 0xdb940
RGB 31, 31, 31
RGB 31, 17, 16
RGB 20, 8, 5
RGB 0, 0, 0
ExeggcuteAnimatedObjPalette2: ; 0xdb948
RGB 31, 31, 31
RGB 31, 17, 16
RGB 20, 8, 5
RGB 0, 0, 0
CuboneAnimatedObjPalette1: ; 0xdb950
RGB 31, 31, 31
RGB 30, 15, 5
RGB 18, 9, 4
RGB 0, 0, 0
CuboneAnimatedObjPalette2: ; 0xdb958
RGB 31, 31, 31
RGB 20, 22, 29
RGB 13, 8, 6
RGB 0, 0, 0
HitmonleeAnimatedObjPalette1: ; 0xdb960
RGB 31, 31, 31
RGB 26, 13, 7
RGB 16, 10, 7
RGB 0, 0, 0
HitmonleeAnimatedObjPalette2: ; 0xdb968
RGB 31, 31, 31
RGB 26, 13, 7
RGB 16, 10, 7
RGB 0, 0, 0
HitmonchanAnimatedObjPalette1: ; 0xdb970
RGB 31, 31, 31
RGB 27, 17, 10
RGB 24, 4, 2
RGB 0, 0, 0
HitmonchanAnimatedObjPalette2: ; 0xdb978
RGB 31, 31, 31
RGB 27, 17, 10
RGB 24, 4, 2
RGB 0, 0, 0
LickitungAnimatedObjPalette1: ; 0xdb980
RGB 31, 31, 31
RGB 31, 18, 16
RGB 31, 11, 9
RGB 0, 0, 0
LickitungAnimatedObjPalette2: ; 0xdb988
RGB 31, 31, 31
RGB 31, 18, 16
RGB 31, 11, 9
RGB 0, 0, 0
KoffingAnimatedObjPalette1: ; 0xdb990
RGB 31, 31, 31
RGB 26, 19, 29
RGB 15, 11, 17
RGB 0, 0, 0
KoffingAnimatedObjPalette2: ; 0xdb998
RGB 31, 31, 31
RGB 26, 19, 29
RGB 15, 11, 17
RGB 0, 0, 0
RhyhornAnimatedObjPalette1: ; 0xdb9a0
RGB 31, 31, 31
RGB 26, 13, 24
RGB 15, 4, 14
RGB 0, 0, 0
RhyhornAnimatedObjPalette2: ; 0xdb9a8
RGB 31, 31, 31
RGB 26, 13, 24
RGB 15, 4, 14
RGB 0, 0, 0
ChanseyAnimatedObjPalette1: ; 0xdb9b0
RGB 31, 31, 31
RGB 31, 18, 16
RGB 31, 11, 9
RGB 0, 0, 0
ChanseyAnimatedObjPalette2: ; 0xdb9b8
RGB 31, 31, 31
RGB 31, 18, 16
RGB 31, 11, 9
RGB 0, 0, 0
TangelaAnimatedObjPalette1: ; 0xdb9c0
RGB 31, 31, 31
RGB 13, 19, 31
RGB 1, 6, 20
RGB 0, 0, 0
TangelaAnimatedObjPalette2: ; 0xdb9c8
RGB 31, 31, 31
RGB 13, 19, 31
RGB 1, 6, 20
RGB 0, 0, 0
KangaskhanAnimatedObjPalette1: ; 0xdb9d0
RGB 31, 31, 31
RGB 28, 21, 11
RGB 16, 10, 5
RGB 0, 0, 0
KangaskhanAnimatedObjPalette2: ; 0xdb9d8
RGB 31, 31, 31
RGB 28, 21, 11
RGB 16, 10, 5
RGB 0, 0, 0
HorseaAnimatedObjPalette1: ; 0xdb9e0
RGB 31, 31, 31
RGB 13, 19, 31
RGB 1, 6, 20
RGB 0, 0, 0
HorseaAnimatedObjPalette2: ; 0xdb9e8
RGB 31, 31, 31
RGB 13, 19, 31
RGB 1, 6, 20
RGB 0, 0, 0
GoldeenAnimatedObjPalette1: ; 0xdb9f0
RGB 31, 31, 31
RGB 31, 18, 16
RGB 29, 0, 0
RGB 0, 0, 0
GoldeenAnimatedObjPalette2: ; 0xdb9f8
RGB 31, 31, 31
RGB 31, 18, 16
RGB 29, 0, 0
RGB 0, 0, 0
StaryuAnimatedObjPalette1: ; 0xdba00
RGB 31, 31, 31
RGB 31, 22, 5
RGB 19, 7, 1
RGB 0, 0, 0
StaryuAnimatedObjPalette2: ; 0xdba08
RGB 31, 31, 31
RGB 31, 22, 5
RGB 19, 7, 1
RGB 0, 0, 0
MrMimeAnimatedObjPalette1: ; 0xdba10
RGB 31, 31, 31
RGB 31, 18, 16
RGB 29, 0, 0
RGB 0, 0, 0
MrMimeAnimatedObjPalette2: ; 0xdba18
RGB 31, 31, 31
RGB 31, 18, 16
RGB 29, 0, 0
RGB 0, 0, 0
ScytherAnimatedObjPalette1: ; 0xdba20
RGB 31, 31, 31
RGB 22, 29, 5
RGB 6, 17, 1
RGB 0, 0, 0
ScytherAnimatedObjPalette2: ; 0xdba28
RGB 31, 31, 31
RGB 22, 29, 5
RGB 6, 17, 1
RGB 0, 0, 0
JynxAnimatedObjPalette1: ; 0xdba30
RGB 31, 31, 31
RGB 31, 16, 16
RGB 25, 1, 3
RGB 0, 0, 0
JynxAnimatedObjPalette2: ; 0xdba38
RGB 31, 31, 31
RGB 31, 16, 16
RGB 25, 1, 3
RGB 0, 0, 0
ElectabuzzAnimatedObjPalette1: ; 0xdba40
RGB 31, 31, 31
RGB 31, 30, 0
RGB 21, 14, 1
RGB 0, 0, 0
ElectabuzzAnimatedObjPalette2: ; 0xdba48
RGB 31, 31, 31
RGB 31, 30, 0
RGB 21, 14, 1
RGB 0, 0, 0
MagmarAnimatedObjPalette1: ; 0xdba50
RGB 31, 31, 31
RGB 31, 23, 2
RGB 31, 3, 0
RGB 0, 0, 0
MagmarAnimatedObjPalette2: ; 0xdba58
RGB 31, 31, 31
RGB 31, 23, 2
RGB 31, 3, 0
RGB 0, 0, 0
PinsirAnimatedObjPalette1: ; 0xdba60
RGB 31, 31, 31
RGB 28, 20, 13
RGB 17, 12, 6
RGB 0, 0, 0
PinsirAnimatedObjPalette2: ; 0xdba68
RGB 31, 31, 31
RGB 28, 20, 13
RGB 17, 12, 6
RGB 0, 0, 0
TaurosAnimatedObjPalette1: ; 0xdba70
RGB 31, 31, 31
RGB 31, 21, 5
RGB 20, 9, 3
RGB 0, 0, 0
TaurosAnimatedObjPalette2: ; 0xdba78
RGB 31, 31, 31
RGB 31, 21, 5
RGB 20, 9, 3
RGB 0, 0, 0
PidgeottoBillboardBGPalette1: ; 0xdba80
RGB 31, 31, 31
RGB 30, 21, 0
RGB 28, 6, 1
RGB 3, 2, 0
PidgeottoBillboardBGPalette2: ; 0xdba88
RGB 31, 31, 31
RGB 30, 21, 0
RGB 28, 6, 1
RGB 3, 2, 0
PidgeotBillboardBGPalette1: ; 0xdba90
RGB 31, 31, 31
RGB 26, 23, 0
RGB 28, 6, 1
RGB 3, 2, 0
PidgeotBillboardBGPalette2: ; 0xdba98
RGB 31, 31, 31
RGB 26, 23, 0
RGB 28, 6, 1
RGB 3, 2, 0
RattataBillboardBGPalette1: ; 0xdbaa0
RGB 31, 31, 31
RGB 30, 16, 24
RGB 21, 4, 7
RGB 0, 0, 0
RattataBillboardBGPalette2: ; 0xdbaa8
RGB 31, 31, 31
RGB 30, 16, 24
RGB 21, 4, 7
RGB 0, 0, 0
RaticateBillboardBGPalette1: ; 0xdbab0
RGB 31, 31, 31
RGB 30, 24, 7
RGB 27, 7, 0
RGB 3, 2, 0
RaticateBillboardBGPalette2: ; 0xdbab8
RGB 31, 31, 31
RGB 30, 24, 7
RGB 27, 7, 0
RGB 3, 2, 0
SpearowBillboardBGPalette1: ; 0xdbac0
RGB 31, 31, 31
RGB 31, 24, 2
RGB 30, 3, 0
RGB 0, 0, 0
SpearowBillboardBGPalette2: ; 0xdbac8
RGB 31, 31, 31
RGB 31, 24, 2
RGB 30, 3, 0
RGB 0, 0, 0
FearowBillboardBGPalette1: ; 0xdbad0
RGB 31, 31, 31
RGB 31, 24, 2
RGB 30, 3, 0
RGB 0, 0, 0
FearowBillboardBGPalette2: ; 0xdbad8
RGB 31, 31, 31
RGB 31, 24, 2
RGB 30, 3, 0
RGB 0, 0, 0
EkansBillboardBGPalette1: ; 0xdbae0
RGB 31, 31, 31
RGB 30, 16, 24
RGB 21, 4, 7
RGB 0, 0, 0
EkansBillboardBGPalette2: ; 0xdbae8
RGB 31, 31, 31
RGB 30, 16, 24
RGB 21, 4, 7
RGB 0, 0, 0
ArbokBillboardBGPalette1: ; 0xdbaf0
RGB 31, 31, 31
RGB 30, 16, 24
RGB 26, 1, 5
RGB 0, 0, 0
ArbokBillboardBGPalette2: ; 0xdbaf8
RGB 31, 31, 31
RGB 30, 16, 24
RGB 26, 1, 5
RGB 0, 0, 0
PikachuBillboardBGPalette1: ; 0xdbb00
RGB 31, 31, 31
RGB 30, 24, 4
RGB 27, 7, 0
RGB 3, 2, 0
PikachuBillboardBGPalette2: ; 0xdbb08
RGB 31, 31, 31
RGB 30, 24, 4
RGB 27, 7, 0
RGB 3, 2, 0
RaichuBillboardBGPalette1: ; 0xdbb10
RGB 31, 31, 31
RGB 30, 26, 3
RGB 29, 16, 0
RGB 3, 2, 0
RaichuBillboardBGPalette2: ; 0xdbb18
RGB 31, 31, 31
RGB 30, 26, 3
RGB 29, 16, 0
RGB 3, 2, 0
SandshrewBillboardBGPalette1: ; 0xdbb20
RGB 31, 31, 31
RGB 31, 25, 7
RGB 23, 14, 0
RGB 0, 0, 0
SandshrewBillboardBGPalette2: ; 0xdbb28
RGB 31, 31, 31
RGB 31, 25, 7
RGB 23, 14, 0
RGB 0, 0, 0
SandslashBillboardBGPalette1: ; 0xdbb30
RGB 31, 31, 31
RGB 31, 25, 7
RGB 25, 10, 0
RGB 3, 2, 0
SandslashBillboardBGPalette2: ; 0xdbb38
RGB 31, 31, 31
RGB 31, 25, 7
RGB 25, 10, 0
RGB 3, 2, 0
NidoranFBillboardBGPalette1: ; 0xdbb40
RGB 31, 31, 31
RGB 19, 23, 31
RGB 8, 8, 24
RGB 0, 0, 0
NidoranFBillboardBGPalette2: ; 0xdbb48
RGB 31, 31, 31
RGB 19, 23, 31
RGB 8, 8, 24
RGB 0, 0, 0
NidorinaBillboardBGPalette1: ; 0xdbb50
RGB 31, 31, 31
RGB 19, 23, 31
RGB 8, 8, 24
RGB 0, 0, 0
NidorinaBillboardBGPalette2: ; 0xdbb58
RGB 31, 31, 31
RGB 19, 23, 31
RGB 8, 8, 24
RGB 0, 0, 0
NidoqueenBillboardBGPalette1: ; 0xdbb60
RGB 31, 31, 31
RGB 10, 18, 31
RGB 6, 5, 23
RGB 0, 0, 0
NidoqueenBillboardBGPalette2: ; 0xdbb68
RGB 31, 31, 31
RGB 10, 18, 31
RGB 6, 5, 23
RGB 0, 0, 0
NidoranMBillboardBGPalette1: ; 0xdbb70
RGB 31, 31, 31
RGB 28, 16, 25
RGB 17, 1, 12
RGB 0, 0, 0
NidoranMBillboardBGPalette2: ; 0xdbb78
RGB 31, 31, 31
RGB 28, 16, 25
RGB 17, 1, 12
RGB 0, 0, 0
StageRedFieldTopGfx6: ; 0xdbb80
INCBIN "gfx/stage/red_top/red_top_6.2bpp"
INCBIN "baserom.gbc",$dbbc0,$dbc80 - $dbbc0
StageMewtwoBonusCollisionMasks: ; 0xdbc80
INCBIN "data/collision/masks/mewtwo_bonus.masks"
MagikarpAnimatedObjPalette1: ; 0xdbd80
RGB 31, 31, 31
RGB 31, 16, 10
RGB 28, 6, 0
RGB 0, 0, 0
MagikarpAnimatedObjPalette2: ; 0xdbd88
RGB 31, 31, 31
RGB 31, 16, 10
RGB 28, 6, 0
RGB 0, 0, 0
LaprasAnimatedObjPalette1: ; 0xdbd90
RGB 31, 31, 31
RGB 11, 22, 31
RGB 0, 10, 30
RGB 0, 0, 0
LaprasAnimatedObjPalette2: ; 0xdbd98
RGB 31, 31, 31
RGB 11, 22, 31
RGB 0, 10, 30
RGB 0, 0, 0
DittoAnimatedObjPalette1: ; 0xdbda0
RGB 31, 31, 31
RGB 25, 18, 28
RGB 15, 7, 16
RGB 0, 0, 0
DittoAnimatedObjPalette2: ; 0xdbda8
RGB 31, 31, 31
RGB 25, 18, 28
RGB 15, 7, 16
RGB 0, 0, 0
EeveeAnimatedObjPalette1: ; 0xdbdb0
RGB 31, 31, 31
RGB 29, 20, 10
RGB 17, 9, 4
RGB 0, 0, 0
EeveeAnimatedObjPalette2: ; 0xdbdb8
RGB 31, 31, 31
RGB 29, 20, 10
RGB 17, 9, 4
RGB 0, 0, 0
PorygonAnimatedObjPalette1: ; 0xdbdc0
RGB 31, 31, 31
RGB 29, 8, 20
RGB 0, 0, 31
RGB 0, 0, 0
PorygonAnimatedObjPalette2: ; 0xdbdc8
RGB 31, 31, 31
RGB 29, 8, 20
RGB 0, 0, 31
RGB 0, 0, 0
OmanyteAnimatedObjPalette1: ; 0xdbdd0
RGB 31, 31, 31
RGB 13, 18, 31
RGB 1, 6, 20
RGB 0, 0, 0
OmanyteAnimatedObjPalette2: ; 0xdbdd8
RGB 31, 31, 31
RGB 13, 18, 31
RGB 1, 6, 20
RGB 0, 0, 0
KabutoAnimatedObjPalette1: ; 0xdbde0
RGB 31, 31, 31
RGB 29, 21, 6
RGB 20, 7, 1
RGB 0, 0, 0
KabutoAnimatedObjPalette2: ; 0xdbde8
RGB 31, 31, 31
RGB 29, 21, 6
RGB 20, 7, 1
RGB 0, 0, 0
AerodactylAnimatedObjPalette1: ; 0xdbdf0
RGB 31, 31, 31
RGB 25, 20, 29
RGB 10, 8, 17
RGB 0, 0, 0
AerodactylAnimatedObjPalette2: ; 0xdbdf8
RGB 31, 31, 31
RGB 25, 20, 29
RGB 10, 8, 17
RGB 0, 0, 0
SnorlaxAnimatedObjPalette1: ; 0xdbe00
RGB 31, 31, 31
RGB 31, 25, 9
RGB 17, 7, 2
RGB 0, 0, 0
SnorlaxAnimatedObjPalette2: ; 0xdbe08
RGB 31, 31, 31
RGB 31, 25, 9
RGB 17, 7, 2
RGB 0, 0, 0
ArticunoAnimatedObjPalette1: ; 0xdbe10
RGB 31, 31, 31
RGB 11, 22, 31
RGB 0, 4, 31
RGB 0, 0, 0
ArticunoAnimatedObjPalette2: ; 0xdbe18
RGB 31, 31, 31
RGB 11, 22, 31
RGB 0, 4, 31
RGB 0, 0, 0
ZapdosAnimatedObjPalette1: ; 0xdbe20
RGB 31, 31, 31
RGB 31, 29, 0
RGB 22, 7, 3
RGB 0, 0, 0
ZapdosAnimatedObjPalette2: ; 0xdbe28
RGB 31, 31, 31
RGB 31, 29, 0
RGB 22, 7, 3
RGB 0, 0, 0
MoltresAnimatedObjPalette1: ; 0xdbe30
RGB 31, 31, 31
RGB 31, 26, 0
RGB 31, 3, 0
RGB 0, 0, 0
MoltresAnimatedObjPalette2: ; 0xdbe38
RGB 31, 31, 31
RGB 31, 26, 0
RGB 31, 3, 0
RGB 0, 0, 0
DratiniAnimatedObjPalette1: ; 0xdbe40
RGB 31, 31, 31
RGB 20, 22, 31
RGB 6, 8, 18
RGB 0, 0, 0
DratiniAnimatedObjPalette2: ; 0xdbe48
RGB 31, 31, 31
RGB 20, 22, 31
RGB 6, 8, 18
RGB 0, 0, 0
MewtwoAnimatedObjPalette1: ; 0xdbe50
RGB 31, 31, 31
RGB 31, 19, 27
RGB 23, 8, 17
RGB 0, 0, 0
MewtwoAnimatedObjPalette2: ; 0xdbe58
RGB 31, 31, 31
RGB 31, 19, 27
RGB 23, 8, 17
RGB 0, 0, 0
MewAnimatedObjPalette1: ; 0xdbe60
RGB 31, 31, 31
RGB 31, 19, 27
RGB 23, 8, 17
RGB 0, 0, 0
MewAnimatedObjPalette2: ; 0xdbe68
RGB 31, 31, 31
RGB 31, 19, 27
RGB 23, 8, 17
RGB 0, 0, 0
INCBIN "baserom.gbc",$dbe70,$dc000 - $dbe70
SECTION "bank37", ROMX, BANK[$37]
StageSharedArrowsGfx: ; 0xdc000
INCBIN "gfx/stage/shared/arrows.2bpp"
INCBIN "baserom.gbc",$dc080,$dc100 - $dc080
NidorinoBillboardBGPalette1: ; 0xdc100
RGB 31, 31, 31
RGB 31, 15, 24
RGB 21, 3, 15
RGB 0, 0, 0
NidorinoBillboardBGPalette2: ; 0xdc108
RGB 31, 31, 31
RGB 31, 15, 24
RGB 21, 3, 15
RGB 0, 0, 0
NidokingBillboardBGPalette1: ; 0xdc110
RGB 31, 31, 31
RGB 25, 14, 31
RGB 17, 0, 26
RGB 0, 0, 0
NidokingBillboardBGPalette2: ; 0xdc118
RGB 31, 31, 31
RGB 25, 14, 31
RGB 17, 0, 26
RGB 0, 0, 0
ClefairyBillboardBGPalette1: ; 0xdc120
RGB 31, 31, 31
RGB 31, 14, 18
RGB 20, 8, 4
RGB 0, 0, 0
ClefairyBillboardBGPalette2: ; 0xdc128
RGB 31, 31, 31
RGB 31, 14, 18
RGB 20, 8, 4
RGB 0, 0, 0
ClefableBillboardBGPalette1: ; 0xdc130
RGB 31, 31, 31
RGB 31, 14, 18
RGB 20, 8, 4
RGB 0, 0, 0
ClefableBillboardBGPalette2: ; 0xdc138
RGB 31, 31, 31
RGB 31, 14, 18
RGB 20, 8, 4
RGB 0, 0, 0
VulpixBillboardBGPalette1: ; 0xdc140
RGB 31, 31, 31
RGB 31, 17, 13
RGB 25, 6, 0
RGB 0, 0, 0
VulpixBillboardBGPalette2: ; 0xdc148
RGB 31, 31, 31
RGB 31, 17, 13
RGB 25, 6, 0
RGB 0, 0, 0
NinetalesBillboardBGPalette1: ; 0xdc150
RGB 31, 31, 31
RGB 28, 26, 0
RGB 23, 12, 3
RGB 0, 0, 0
NinetalesBillboardBGPalette2: ; 0xdc158
RGB 31, 31, 31
RGB 28, 26, 0
RGB 23, 12, 3
RGB 0, 0, 0
JigglypuffBillboardBGPalette1: ; 0xdc160
RGB 31, 31, 31
RGB 31, 16, 19
RGB 22, 6, 11
RGB 3, 2, 0
JigglypuffBillboardBGPalette2: ; 0xdc168
RGB 31, 31, 31
RGB 31, 16, 19
RGB 13, 2, 21
RGB 0, 0, 0
WigglytuffBillboardBGPalette1: ; 0xdc170
RGB 31, 31, 31
RGB 31, 16, 19
RGB 22, 6, 11
RGB 3, 2, 0
WigglytuffBillboardBGPalette2: ; 0xdc178
RGB 31, 31, 31
RGB 31, 16, 19
RGB 13, 5, 19
RGB 0, 0, 0
ZubatBillboardBGPalette1: ; 0xdc180
RGB 31, 31, 31
RGB 14, 15, 30
RGB 10, 5, 26
RGB 3, 2, 0
ZubatBillboardBGPalette2: ; 0xdc188
RGB 31, 31, 31
RGB 14, 15, 30
RGB 10, 5, 26
RGB 0, 0, 0
GolbatBillboardBGPalette1: ; 0xdc190
RGB 31, 31, 31
RGB 15, 15, 30
RGB 10, 5, 26
RGB 3, 2, 0
GolbatBillboardBGPalette2: ; 0xdc198
RGB 31, 31, 31
RGB 15, 15, 30
RGB 10, 5, 26
RGB 0, 0, 0
OddishBillboardBGPalette1: ; 0xdc1a0
RGB 31, 31, 31
RGB 22, 28, 2
RGB 7, 18, 0
RGB 0, 0, 0
OddishBillboardBGPalette2: ; 0xdc1a8
RGB 31, 31, 31
RGB 31, 6, 0
RGB 4, 8, 14
RGB 0, 0, 0
GloomBillboardBGPalette1: ; 0xdc1b0
RGB 31, 31, 31
RGB 30, 19, 15
RGB 28, 4, 0
RGB 0, 0, 0
GloomBillboardBGPalette2: ; 0xdc1b8
RGB 31, 31, 31
RGB 19, 20, 31
RGB 4, 8, 14
RGB 0, 0, 0
VileplumeBillboardBGPalette1: ; 0xdc1c0
RGB 31, 31, 31
RGB 30, 19, 15
RGB 28, 4, 0
RGB 0, 0, 0
VileplumeBillboardBGPalette2: ; 0xdc1c8
RGB 31, 31, 31
RGB 19, 20, 31
RGB 4, 8, 14
RGB 0, 0, 0
ParasBillboardBGPalette1: ; 0xdc1d0
RGB 31, 31, 31
RGB 31, 20, 11
RGB 23, 6, 3
RGB 0, 0, 0
ParasBillboardBGPalette2: ; 0xdc1d8
RGB 31, 31, 31
RGB 31, 20, 11
RGB 23, 6, 3
RGB 0, 0, 0
ParasectBillboardBGPalette1: ; 0xdc1e0
RGB 31, 31, 31
RGB 31, 20, 11
RGB 23, 6, 3
RGB 0, 0, 0
ParasectBillboardBGPalette2: ; 0xdc1e8
RGB 31, 31, 31
RGB 31, 20, 11
RGB 23, 6, 3
RGB 0, 0, 0
VenonatBillboardBGPalette1: ; 0xdc1f0
RGB 31, 31, 31
RGB 24, 15, 28
RGB 12, 5, 18
RGB 0, 0, 0
VenonatBillboardBGPalette2: ; 0xdc1f8
RGB 31, 31, 31
RGB 24, 15, 28
RGB 12, 5, 18
RGB 0, 0, 0
VenomothBillboardBGPalette1: ; 0xdc200
RGB 31, 31, 31
RGB 27, 17, 29
RGB 17, 7, 16
RGB 0, 0, 0
VenomothBillboardBGPalette2: ; 0xdc208
RGB 31, 31, 31
RGB 27, 17, 29
RGB 17, 7, 16
RGB 0, 0, 0
DiglettBillboardBGPalette1: ; 0xdc210
RGB 31, 31, 31
RGB 24, 17, 5
RGB 15, 7, 0
RGB 0, 0, 0
DiglettBillboardBGPalette2: ; 0xdc218
RGB 31, 31, 31
RGB 24, 17, 5
RGB 23, 3, 0
RGB 0, 0, 0
DugtrioBillboardBGPalette1: ; 0xdc220
RGB 31, 31, 31
RGB 24, 17, 5
RGB 15, 7, 0
RGB 0, 0, 0
DugtrioBillboardBGPalette2: ; 0xdc228
RGB 31, 31, 31
RGB 24, 17, 5
RGB 23, 3, 0
RGB 0, 0, 0
MeowthBillboardBGPalette1: ; 0xdc230
RGB 31, 31, 31
RGB 29, 28, 7
RGB 19, 10, 0
RGB 0, 0, 0
MeowthBillboardBGPalette2: ; 0xdc238
RGB 31, 31, 31
RGB 29, 28, 7
RGB 31, 0, 0
RGB 0, 0, 0
PersianBillboardBGPalette1: ; 0xdc240
RGB 31, 31, 31
RGB 29, 28, 7
RGB 19, 10, 0
RGB 0, 0, 0
PersianBillboardBGPalette2: ; 0xdc248
RGB 31, 31, 31
RGB 29, 28, 7
RGB 31, 0, 0
RGB 0, 0, 0
PsyduckBillboardBGPalette1: ; 0xdc250
RGB 31, 31, 31
RGB 31, 31, 0
RGB 19, 17, 0
RGB 0, 0, 0
PsyduckBillboardBGPalette2: ; 0xdc258
RGB 31, 31, 31
RGB 31, 31, 0
RGB 19, 17, 0
RGB 0, 0, 0
GolduckBillboardBGPalette1: ; 0xdc260
RGB 31, 31, 31
RGB 26, 25, 7
RGB 13, 15, 27
RGB 0, 0, 0
GolduckBillboardBGPalette2: ; 0xdc268
RGB 31, 31, 31
RGB 31, 0, 0
RGB 13, 15, 27
RGB 0, 0, 0
MankeyBillboardBGPalette1: ; 0xdc270
RGB 31, 31, 31
RGB 28, 20, 17
RGB 22, 9, 5
RGB 0, 0, 0
MankeyBillboardBGPalette2: ; 0xdc278
RGB 31, 31, 31
RGB 28, 20, 17
RGB 22, 9, 5
RGB 0, 0, 0
PrimeapeBillboardBGPalette1: ; 0xdc280
RGB 31, 31, 31
RGB 28, 20, 17
RGB 22, 9, 5
RGB 0, 0, 0
PrimeapeBillboardBGPalette2: ; 0xdc288
RGB 31, 31, 31
RGB 15, 15, 15
RGB 22, 9, 5
RGB 0, 0, 0
GrowlitheBillboardBGPalette1: ; 0xdc290
RGB 31, 31, 31
RGB 28, 27, 10
RGB 26, 12, 0
RGB 0, 0, 0
GrowlitheBillboardBGPalette2: ; 0xdc298
RGB 31, 31, 31
RGB 28, 27, 10
RGB 31, 0, 0
RGB 0, 0, 0
ArcanineBillboardBGPalette1: ; 0xdc2a0
RGB 31, 31, 31
RGB 28, 27, 10
RGB 26, 12, 0
RGB 0, 0, 0
ArcanineBillboardBGPalette2: ; 0xdc2a8
RGB 31, 31, 31
RGB 28, 27, 10
RGB 31, 0, 0
RGB 0, 0, 0
PoliwagBillboardBGPalette1: ; 0xdc2b0
RGB 31, 31, 31
RGB 20, 20, 27
RGB 11, 11, 18
RGB 0, 0, 0
PoliwagBillboardBGPalette2: ; 0xdc2b8
RGB 31, 31, 31
RGB 31, 17, 14
RGB 11, 11, 18
RGB 0, 0, 0
PoliwhirlBillboardBGPalette1: ; 0xdc2c0
RGB 31, 31, 31
RGB 20, 20, 27
RGB 11, 11, 18
RGB 0, 0, 0
PoliwhirlBillboardBGPalette2: ; 0xdc2c8
RGB 31, 31, 31
RGB 20, 20, 27
RGB 11, 11, 18
RGB 0, 0, 0
PoliwrathBillboardBGPalette1: ; 0xdc2d0
RGB 31, 31, 31
RGB 20, 20, 27
RGB 11, 11, 18
RGB 0, 0, 0
PoliwrathBillboardBGPalette2: ; 0xdc2d8
RGB 31, 31, 31
RGB 20, 20, 27
RGB 11, 11, 18
RGB 0, 0, 0
AbraBillboardBGPalette1: ; 0xdc2e0
RGB 31, 31, 31
RGB 31, 30, 0
RGB 19, 11, 6
RGB 0, 0, 0
AbraBillboardBGPalette2: ; 0xdc2e8
RGB 31, 31, 31
RGB 31, 30, 0
RGB 19, 11, 6
RGB 0, 0, 0
KadabraBillboardBGPalette1: ; 0xdc2f0
RGB 31, 31, 31
RGB 31, 30, 0
RGB 19, 11, 6
RGB 0, 0, 0
KadabraBillboardBGPalette2: ; 0xdc2f8
RGB 31, 31, 31
RGB 21, 21, 21
RGB 19, 11, 6
RGB 0, 0, 0
HypnoBillboardBGPalette1: ; 0xdc300
RGB 31, 31, 31
RGB 31, 30, 0
RGB 21, 15, 5
HypnoBillboardBGPalette2: ; 0xdc308
RGB 0, 0, 0
RGB 31, 31, 31
RGB 19, 23, 31
RGB 21, 15, 5
RGB 0, 0, 0
KrabbyBillboardBGPalette1: ; 0xdc310
RGB 31, 31, 31
RGB 31, 16, 17
RGB 25, 6, 0
KrabbyBillboardBGPalette2: ; 0xdc318
RGB 0, 0, 0
RGB 31, 31, 31
RGB 31, 16, 17
RGB 25, 6, 0
RGB 0, 0, 0
KinglerBillboardBGPalette1: ; 0xdc320
RGB 31, 31, 31
RGB 31, 16, 17
RGB 25, 6, 0
KinglerBillboardBGPalette2: ; 0xdc328
RGB 0, 0, 0
RGB 31, 31, 31
RGB 31, 16, 17
RGB 25, 6, 0
RGB 0, 0, 0
VoltorbBillboardBGPalette1: ; 0xdc330
RGB 31, 31, 31
RGB 31, 16, 17
RGB 25, 6, 0
VoltorbBillboardBGPalette2: ; 0xdc338
RGB 0, 0, 0
RGB 31, 31, 31
RGB 19, 23, 31
RGB 25, 6, 0
RGB 0, 0, 0
ElectrodeBillboardBGPalette1: ; 0xdc340
RGB 31, 31, 31
RGB 31, 15, 12
RGB 25, 6, 0
ElectrodeBillboardBGPalette2: ; 0xdc348
RGB 0, 0, 0
RGB 31, 31, 31
RGB 19, 23, 31
RGB 25, 6, 0
RGB 0, 0, 0
ExeggcuteBillboardBGPalette1: ; 0xdc350
RGB 31, 31, 31
RGB 31, 15, 12
RGB 18, 8, 6
ExeggcuteBillboardBGPalette2: ; 0xdc358
RGB 0, 0, 0
RGB 31, 31, 31
RGB 31, 15, 12
RGB 18, 8, 6
RGB 0, 0, 0
ExeggutorBillboardBGPalette1: ; 0xdc360
RGB 31, 31, 31
RGB 31, 27, 5
RGB 7, 18, 0
ExeggutorBillboardBGPalette2: ; 0xdc368
RGB 3, 2, 0
RGB 31, 31, 31
RGB 31, 23, 5
RGB 20, 10, 3
RGB 0, 0, 0
CuboneBillboardBGPalette1: ; 0xdc370
RGB 31, 31, 31
RGB 18, 20, 27
RGB 20, 10, 3
CuboneBillboardBGPalette2: ; 0xdc378
RGB 0, 0, 0
RGB 31, 31, 31
RGB 29, 23, 10
RGB 20, 10, 3
RGB 0, 0, 0
MarowakBillboardBGPalette1: ; 0xdc380
RGB 31, 31, 31
RGB 18, 20, 27
RGB 20, 10, 3
MarowakBillboardBGPalette2: ; 0xdc388
RGB 0, 0, 0
RGB 31, 31, 31
RGB 29, 23, 10
RGB 20, 10, 3
RGB 0, 0, 0
HitmonleeBillboardBGPalette1: ; 0xdc390
RGB 31, 31, 31
RGB 29, 23, 10
RGB 21, 13, 3
HitmonleeBillboardBGPalette2: ; 0xdc398
RGB 0, 0, 0
RGB 31, 31, 31
RGB 29, 23, 10
RGB 21, 13, 3
RGB 0, 0, 0
HitmonchanBillboardBGPalette1: ; 0xdc3a0
RGB 31, 31, 31
RGB 31, 21, 13
RGB 23, 3, 3
HitmonchanBillboardBGPalette2: ; 0xdc3a8
RGB 3, 2, 0
RGB 31, 31, 31
RGB 31, 21, 13
RGB 22, 3, 25
RGB 0, 0, 0
LickitungBillboardBGPalette1: ; 0xdc3b0
RGB 31, 31, 31
RGB 31, 21, 21
RGB 31, 9, 8
LickitungBillboardBGPalette2: ; 0xdc3b8
RGB 0, 0, 0
RGB 31, 31, 31
RGB 31, 20, 12
RGB 31, 9, 8
RGB 0, 0, 0
KoffingBillboardBGPalette1: ; 0xdc3c0
RGB 31, 31, 31
RGB 21, 13, 28
RGB 10, 7, 14
KoffingBillboardBGPalette2: ; 0xdc3c8
RGB 3, 2, 0
RGB 31, 31, 31
RGB 21, 13, 28
RGB 21, 4, 7
RGB 0, 0, 0
WeezingBillboardBGPalette1: ; 0xdc3d0
RGB 31, 31, 31
RGB 21, 13, 28
RGB 10, 7, 14
WeezingBillboardBGPalette2: ; 0xdc3d8
RGB 0, 0, 0
RGB 31, 31, 31
RGB 21, 13, 28
RGB 21, 4, 7
RGB 3, 2, 0
RhyhornBillboardBGPalette1: ; 0xdc3e0
RGB 31, 31, 31
RGB 21, 21, 21
RGB 13, 11, 16
RhyhornBillboardBGPalette2: ; 0xdc3e8
RGB 0, 0, 0
RGB 31, 31, 31
RGB 21, 21, 21
RGB 13, 11, 16
RGB 0, 0, 0
RhydonBillboardBGPalette1: ; 0xdc3f0
RGB 31, 31, 31
RGB 21, 21, 21
RGB 13, 11, 16
RhydonBillboardBGPalette2: ; 0xdc3f8
RGB 0, 0, 0
RGB 31, 31, 31
RGB 21, 21, 21
RGB 13, 11, 16
RGB 0, 0, 0
MagnemiteBillboardBGPalette1: ; 0xdc400
RGB 31, 31, 31
RGB 20, 20, 26
RGB 11, 11, 20
RGB 0, 0, 0
MagnemiteBillboardBGPalette2: ; 0xdc408
RGB 31, 31, 31
RGB 20, 20, 26
RGB 31, 0, 0
RGB 0, 0, 0
MagnetonBillboardBGPalette1: ; 0xdc410
RGB 31, 31, 31
RGB 20, 20, 26
RGB 11, 11, 20
RGB 0, 0, 0
MagnetonBillboardBGPalette2: ; 0xdc418
RGB 31, 31, 31
RGB 20, 20, 26
RGB 11, 11, 20
RGB 0, 0, 0
FarfetchdBillboardBGPalette1: ; 0xdc420
RGB 31, 31, 31
RGB 31, 29, 13
RGB 20, 12, 9
RGB 0, 0, 0
FarfetchdBillboardBGPalette2: ; 0xdc428
RGB 31, 31, 31
RGB 21, 31, 17
RGB 7, 20, 6
RGB 0, 0, 0
DoduoBillboardBGPalette1: ; 0xdc430
RGB 31, 31, 31
RGB 29, 26, 14
RGB 26, 16, 4
RGB 0, 0, 0
DoduoBillboardBGPalette2: ; 0xdc438
RGB 31, 31, 31
RGB 29, 26, 14
RGB 26, 16, 4
RGB 0, 0, 0
DodrioBillboardBGPalette1: ; 0xdc440
RGB 31, 31, 31
RGB 29, 26, 14
RGB 26, 16, 4
RGB 0, 0, 0
DodrioBillboardBGPalette2: ; 0xdc448
RGB 31, 31, 31
RGB 29, 26, 14
RGB 26, 16, 4
RGB 0, 0, 0
SeelBillboardBGPalette1: ; 0xdc450
RGB 31, 31, 31
RGB 20, 20, 26
RGB 11, 11, 20
RGB 0, 0, 0
SeelBillboardBGPalette2: ; 0xdc458
RGB 31, 31, 31
RGB 29, 26, 14
RGB 31, 11, 10
RGB 0, 0, 0
DewgongBillboardBGPalette1: ; 0xdc460
RGB 31, 31, 31
RGB 20, 20, 26
RGB 11, 11, 20
RGB 0, 0, 0
DewgongBillboardBGPalette2: ; 0xdc468
RGB 31, 31, 31
RGB 20, 20, 26
RGB 11, 11, 20
RGB 0, 0, 0
GrimerBillboardBGPalette1: ; 0xdc470
RGB 31, 31, 31
RGB 27, 18, 30
RGB 15, 7, 19
RGB 0, 0, 0
GrimerBillboardBGPalette2: ; 0xdc478
RGB 31, 31, 31
RGB 27, 18, 30
RGB 15, 7, 19
RGB 0, 0, 0
MukBillboardBGPalette1: ; 0xdc480
RGB 31, 31, 31
RGB 27, 18, 30
RGB 15, 7, 19
RGB 0, 0, 0
MukBillboardBGPalette2: ; 0xdc488
RGB 31, 31, 31
RGB 27, 18, 30
RGB 15, 7, 19
RGB 0, 0, 0
ShellderBillboardBGPalette1: ; 0xdc490
RGB 31, 31, 31
RGB 24, 21, 25
RGB 13, 11, 15
RGB 0, 0, 0
ShellderBillboardBGPalette2: ; 0xdc498
RGB 31, 31, 31
RGB 24, 21, 25
RGB 31, 13, 13
RGB 0, 0, 0
CloysterBillboardBGPalette1: ; 0xdc4a0
RGB 31, 31, 31
RGB 25, 21, 26
RGB 14, 11, 16
RGB 0, 0, 0
CloysterBillboardBGPalette2: ; 0xdc4a8
RGB 31, 31, 31
RGB 25, 21, 26
RGB 14, 11, 16
RGB 0, 0, 0
GastlyBillboardBGPalette1: ; 0xdc4b0
RGB 31, 31, 31
RGB 26, 18, 27
RGB 15, 8, 16
RGB 0, 0, 0
GastlyBillboardBGPalette2: ; 0xdc4b8
RGB 31, 31, 31
RGB 26, 18, 27
RGB 26, 10, 8
RGB 0, 0, 0
HaunterBillboardBGPalette1: ; 0xdc4c0
RGB 31, 31, 31
RGB 26, 18, 27
RGB 15, 8, 16
RGB 0, 0, 0
HaunterBillboardBGPalette2: ; 0xdc4c8
RGB 31, 31, 31
RGB 31, 13, 13
RGB 14, 9, 15
RGB 0, 0, 0
GengarBillboardBGPalette1: ; 0xdc4d0
RGB 31, 31, 31
RGB 18, 21, 23
RGB 10, 12, 13
RGB 0, 0, 0
GengarBillboardBGPalette2: ; 0xdc4d8
RGB 31, 31, 31
RGB 31, 11, 6
RGB 10, 12, 13
RGB 0, 0, 0
OnixBillboardBGPalette1: ; 0xdc4e0
RGB 31, 31, 31
RGB 20, 20, 24
RGB 10, 10, 14
RGB 0, 0, 0
OnixBillboardBGPalette2: ; 0xdc4e8
RGB 31, 31, 31
RGB 20, 20, 24
RGB 10, 10, 14
RGB 0, 0, 0
DrowzeeBillboardBGPalette1: ; 0xdc4f0
RGB 31, 31, 31
RGB 31, 30, 0
RGB 21, 19, 0
RGB 0, 0, 0
DrowzeeBillboardBGPalette2: ; 0xdc4f8
RGB 31, 31, 31
RGB 31, 30, 0
RGB 21, 19, 0
RGB 0, 0, 0
AlakazamBillboardBGPalette1: ; 0xdc500
RGB 31, 31, 31
RGB 31, 30, 0
RGB 19, 11, 6
RGB 0, 0, 0
AlakazamBillboardBGPalette2: ; 0xdc508
RGB 31, 31, 31
RGB 21, 21, 21
RGB 19, 11, 6
RGB 0, 0, 0
MachopBillboardBGPalette1: ; 0xdc510
RGB 31, 31, 31
RGB 19, 19, 21
RGB 12, 12, 13
RGB 0, 0, 0
MachopBillboardBGPalette2: ; 0xdc518
RGB 31, 31, 31
RGB 19, 19, 21
RGB 31, 0, 0
RGB 0, 0, 0
MachokeBillboardBGPalette1: ; 0xdc520
RGB 31, 31, 31
RGB 18, 18, 22
RGB 11, 11, 14
RGB 0, 0, 0
MachokeBillboardBGPalette2: ; 0xdc528
RGB 31, 31, 31
RGB 18, 18, 22
RGB 31, 0, 0
RGB 0, 0, 0
MachampBillboardBGPalette1: ; 0xdc530
RGB 31, 31, 31
RGB 18, 21, 22
RGB 9, 12, 13
RGB 0, 0, 0
MachampBillboardBGPalette2: ; 0xdc538
RGB 31, 31, 31
RGB 18, 21, 22
RGB 31, 0, 0
RGB 0, 0, 0
BellsproutBillboardBGPalette1: ; 0xdc540
RGB 31, 31, 31
RGB 26, 29, 7
RGB 11, 20, 0
RGB 0, 0, 0
BellsproutBillboardBGPalette2: ; 0xdc548
RGB 31, 31, 31
RGB 26, 29, 7
RGB 31, 11, 8
RGB 0, 0, 0
WeepinbellBillboardBGPalette1: ; 0xdc550
RGB 31, 31, 31
RGB 26, 29, 7
RGB 11, 20, 0
RGB 0, 0, 0
WeepinbellBillboardBGPalette2: ; 0xdc558
RGB 31, 31, 31
RGB 26, 29, 7
RGB 31, 11, 8
RGB 0, 0, 0
VictreebellBillboardBGPalette1: ; 0xdc560
RGB 31, 31, 31
RGB 29, 31, 9
RGB 11, 20, 0
RGB 0, 0, 0
VictreebellBillboardBGPalette2: ; 0xdc568
RGB 31, 31, 31
RGB 29, 31, 9
RGB 31, 11, 8
RGB 0, 0, 0
TentacoolBillboardBGPalette1: ; 0xdc570
RGB 31, 31, 31
RGB 16, 22, 31
RGB 0, 11, 22
RGB 0, 0, 0
TentacoolBillboardBGPalette2: ; 0xdc578
RGB 31, 31, 31
RGB 16, 22, 31
RGB 31, 5, 6
RGB 0, 0, 0
TentacruelBillboardBGPalette1: ; 0xdc580
RGB 31, 31, 31
RGB 16, 22, 31
RGB 0, 11, 22
RGB 0, 0, 0
TentacruelBillboardBGPalette2: ; 0xdc588
RGB 31, 31, 31
RGB 16, 22, 31
RGB 31, 5, 6
RGB 0, 0, 0
GeodudeBillboardBGPalette1: ; 0xdc590
RGB 31, 31, 31
RGB 20, 23, 22
RGB 10, 13, 12
RGB 0, 0, 0
GeodudeBillboardBGPalette2: ; 0xdc598
RGB 31, 31, 31
RGB 20, 23, 22
RGB 10, 13, 12
RGB 0, 0, 0
GravelerBillboardBGPalette1: ; 0xdc5a0
RGB 31, 31, 31
RGB 20, 23, 22
RGB 10, 13, 12
RGB 0, 0, 0
GravelerBillboardBGPalette2: ; 0xdc5a8
RGB 31, 31, 31
RGB 20, 23, 22
RGB 10, 13, 12
RGB 0, 0, 0
GolemBillboardBGPalette1: ; 0xdc5b0
RGB 31, 31, 31
RGB 26, 25, 15
RGB 10, 13, 12
RGB 0, 0, 0
GolemBillboardBGPalette2: ; 0xdc5b8
RGB 31, 31, 31
RGB 26, 25, 15
RGB 31, 0, 0
RGB 0, 0, 0
PonytaBillboardBGPalette1: ; 0xdc5c0
RGB 31, 31, 31
RGB 27, 26, 11
RGB 31, 0, 0
RGB 0, 0, 0
PonytaBillboardBGPalette2: ; 0xdc5c8
RGB 31, 31, 31
RGB 31, 29, 0
RGB 31, 0, 0
RGB 0, 0, 0
RapidashBillboardBGPalette1: ; 0xdc5d0
RGB 31, 31, 31
RGB 27, 26, 11
RGB 31, 0, 0
RGB 0, 0, 0
RapidashBillboardBGPalette2: ; 0xdc5d8
RGB 31, 31, 31
RGB 31, 29, 0
RGB 31, 0, 0
RGB 0, 0, 0
SlowpokeBillboardBGPalette1: ; 0xdc5e0
RGB 31, 31, 31
RGB 31, 21, 21
RGB 31, 11, 11
RGB 0, 0, 0
SlowpokeBillboardBGPalette2: ; 0xdc5e8
RGB 31, 31, 31
RGB 31, 27, 15
RGB 31, 11, 11
RGB 0, 0, 0
SlowbroBillboardBGPalette1: ; 0xdc5f0
RGB 31, 31, 31
RGB 31, 27, 15
RGB 31, 11, 11
RGB 0, 0, 0
SlowbroBillboardBGPalette2: ; 0xdc5f8
RGB 31, 31, 31
RGB 23, 23, 23
RGB 12, 12, 12
RGB 0, 0, 0
StageMeowthBonusCollisionMasks: ; 0xdc600
INCBIN "data/collision/masks/meowth_bonus.masks"
ZapdosBillboardBGPalette1: ; 0xdc700
RGB 31, 31, 31
RGB 29, 27, 0
RGB 20, 6, 0
RGB 0, 0, 0
ZapdosBillboardBGPalette2: ; 0xdc708
RGB 31, 31, 31
RGB 29, 27, 0
RGB 20, 6, 0
RGB 0, 0, 0
MoltresBillboardBGPalette1: ; 0xdc710
RGB 31, 31, 31
RGB 30, 25, 0
RGB 30, 6, 0
RGB 0, 0, 0
MoltresBillboardBGPalette2: ; 0xdc718
RGB 31, 31, 31
RGB 30, 25, 0
RGB 30, 6, 0
RGB 0, 0, 0
DratiniBillboardBGPalette1: ; 0xdc720
RGB 31, 31, 31
RGB 17, 19, 24
RGB 6, 11, 15
RGB 0, 0, 0
DratiniBillboardBGPalette2: ; 0xdc728
RGB 31, 31, 31
RGB 17, 19, 24
RGB 6, 11, 15
RGB 0, 0, 0
DragonairBillboardBGPalette1: ; 0xdc730
RGB 31, 31, 31
RGB 9, 19, 30
RGB 2, 4, 26
RGB 0, 0, 0
DragonairBillboardBGPalette2: ; 0xdc738
RGB 31, 31, 31
RGB 9, 19, 30
RGB 2, 4, 26
RGB 0, 0, 0
DragoniteBillboardBGPalette1: ; 0xdc740
RGB 31, 31, 31
RGB 31, 23, 7
RGB 27, 11, 0
RGB 0, 0, 0
DragoniteBillboardBGPalette2: ; 0xdc748
RGB 31, 31, 31
RGB 13, 22, 16
RGB 27, 11, 0
RGB 0, 0, 0
MewtwoBillboardBGPalette1: ; 0xdc750
RGB 31, 31, 31
RGB 28, 23, 28
RGB 13, 7, 20
RGB 0, 0, 0
MewtwoBillboardBGPalette2: ; 0xdc758
RGB 31, 31, 31
RGB 28, 23, 28
RGB 20, 5, 18
RGB 0, 0, 0
MewBillboardBGPalette1: ; 0xdc760
RGB 31, 31, 31
RGB 31, 18, 24
RGB 31, 7, 12
RGB 0, 0, 0
MewBillboardBGPalette2: ; 0xdc768
RGB 31, 31, 31
RGB 31, 18, 24
RGB 0, 10, 31
RGB 0, 0, 0
INCBIN "baserom.gbc",$dc770,$dc980 - $dc770
StageRedFieldTopPalettes: ; 0xdc980
StageRedFieldTopBGPalette0: ; 0xdc980
RGB 31, 31, 31
RGB 13, 20, 31
RGB 31, 4, 4
RGB 0, 0, 0
StageRedFieldTopBGPalette1: ; 0xdc988
RGB 31, 31, 31
RGB 24, 31, 0
RGB 31, 0, 0
RGB 3, 0, 0
StageRedFieldTopBGPalette2: ; 0xdc990
RGB 31, 31, 31
RGB 11, 25, 31
RGB 0, 11, 31
RGB 0, 0, 0
StageRedFieldTopBGPalette3: ; 0xdc998
RGB 31, 31, 31
RGB 31, 13, 13
RGB 31, 0, 0
RGB 0, 0, 0
StageRedFieldTopBGPalette4: ; 0xdc9a0
RGB 31, 31, 31
RGB 31, 0, 31
RGB 31, 0, 0
RGB 0, 0, 0
StageRedFieldTopBGPalette5: ; 0xdc9a8
RGB 24, 31, 0
RGB 31, 0, 31
RGB 31, 0, 0
RGB 0, 0, 0
StageRedFieldTopBGPalette6: ; 0xdc9b0
RGB 31, 31, 31
RGB 13, 13, 31
RGB 31, 0, 0
RGB 0, 0, 0
StageRedFieldTopBGPalette7: ; 0xdc9b8
RGB 31, 31, 31
RGB 31, 13, 13
RGB 31, 0, 0
RGB 0, 0, 0
StageRedFieldTopOBJPalette0: ; 0xdc9c0
RGB 21, 21, 21
RGB 31, 31, 31
RGB 31, 5, 4
RGB 0, 0, 0
StageRedFieldTopOBJPalette1: ; 0xdc9c8
RGB 31, 31, 31
RGB 31, 19, 22
RGB 21, 0, 0
RGB 4, 0, 0
StageRedFieldTopOBJPalette2: ; 0xdc9d0
RGB 20, 20, 20
RGB 31, 31, 31
RGB 31, 0, 31
RGB 0, 0, 0
StageRedFieldTopOBJPalette3: ; 0xdc9d8
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 22, 0
RGB 10, 4, 0
StageRedFieldTopOBJPalette4: ; 0xdc9e0
RGB 20, 20, 20
RGB 18, 31, 18
RGB 5, 19, 0
RGB 0, 7, 0
StageRedFieldTopOBJPalette5: ; 0xdc9e8
RGB 31, 31, 31
RGB 31, 20, 0
RGB 31, 15, 16
RGB 5, 2, 0
StageRedFieldTopOBJPalette6: ; 0xdc9f0
RGB 20, 20, 20
RGB 0, 31, 25
RGB 0, 18, 14
RGB 0, 0, 0
StageRedFieldTopOBJPalette7: ; 0xdc9f8
RGB 31, 31, 31
RGB 31, 15, 13
RGB 21, 0, 0
RGB 4, 0, 0
INCBIN "baserom.gbc",$dca00,$dca80 - $dca00
StageRedFieldBottomPalettes: ; 0xdca80
StageRedFieldBottomBGPalette0: ; 0xdca80
RGB 31, 31, 31
RGB 13, 20, 31
RGB 31, 4, 4
RGB 0, 0, 0
StageRedFieldBottomBGPalette1: ; 0xdca88
RGB 31, 31, 31
RGB 24, 31, 0
RGB 31, 0, 0
RGB 3, 0, 0
StageRedFieldBottomBGPalette2: ; 0xdca90
RGB 31, 31, 31
RGB 11, 25, 31
RGB 0, 11, 31
RGB 0, 0, 0
StageRedFieldBottomBGPalette3: ; 0xdca98
RGB 31, 31, 31
RGB 31, 13, 13
RGB 31, 0, 0
RGB 0, 0, 0
StageRedFieldBottomBGPalette4: ; 0xdcaa0
RGB 31, 31, 31
RGB 31, 0, 31
RGB 31, 0, 0
RGB 0, 0, 0
StageRedFieldBottomBGPalette5: ; 0xdcaa8
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
StageRedFieldBottomBGPalette6: ; 0xdcab0
RGB 29, 30, 31
RGB 27, 20, 10
RGB 2, 16, 1
RGB 0, 0, 0
StageRedFieldBottomBGPalette7: ; 0xdcab8
RGB 29, 30, 31
RGB 5, 17, 31
RGB 26, 3, 1
RGB 0, 0, 0
StageRedFieldBottomOBJPalette0: ; 0xdcac0
RGB 21, 21, 21
RGB 31, 31, 31
RGB 31, 5, 4
RGB 0, 0, 0
StageRedFieldBottomOBJPalette1: ; 0xdcac8
RGB 31, 31, 31
RGB 21, 21, 21
RGB 27, 21, 0
RGB 0, 0, 0
StageRedFieldBottomOBJPalette2: ; 0xdcad0
RGB 21, 21, 21
RGB 31, 31, 31
RGB 21, 21, 27
RGB 0, 0, 0
StageRedFieldBottomOBJPalette3: ; 0xdcad8
RGB 31, 31, 31
RGB 31, 31, 31
RGB 8, 8, 8
RGB 0, 0, 0
StageRedFieldBottomOBJPalette4: ; 0xdcae0
RGB 21, 21, 21
RGB 31, 28, 0
RGB 29, 0, 0
RGB 0, 0, 0
StageRedFieldBottomOBJPalette5: ; 0xdcae8
RGB 31, 31, 31
RGB 31, 31, 31
RGB 8, 8, 8
RGB 0, 0, 0
StageRedFieldBottomOBJPalette6: ; 0xdcaf0
RGB 20, 20, 20
RGB 0, 31, 25
RGB 0, 18, 14
RGB 0, 0, 0
StageRedFieldBottomOBJPalette7: ; 0xdcaf8
RGB 31, 31, 31
RGB 31, 30, 16
RGB 27, 24, 8
RGB 23, 19, 3
StageBlueFieldTopPalettes: ; 0xdcb00
StageBlueFieldTopBGPalette0: ; 0xdcb00
RGB 31, 31, 31
RGB 13, 20, 31
RGB 31, 4, 4
RGB 0, 0, 0
StageBlueFieldTopBGPalette1: ; 0xdcb08
RGB 31, 31, 31
RGB 11, 25, 31
RGB 0, 11, 31
RGB 0, 0, 0
StageBlueFieldTopBGPalette2: ; 0xdcb10
RGB 31, 31, 31
RGB 4, 23, 13
RGB 0, 13, 4
RGB 0, 0, 0
StageBlueFieldTopBGPalette3: ; 0xdcb18
RGB 31, 31, 31
RGB 31, 29, 0
RGB 15, 8, 0
RGB 0, 0, 0
StageBlueFieldTopBGPalette4: ; 0xdcb20
RGB 31, 31, 31
RGB 31, 0, 0
RGB 16, 0, 0
RGB 0, 0, 0
StageBlueFieldTopBGPalette5: ; 0xdcb28
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
StageBlueFieldTopBGPalette6: ; 0xdcb30
RGB 31, 31, 31
RGB 13, 13, 31
RGB 31, 0, 0
RGB 0, 0, 0
StageBlueFieldTopBGPalette7: ; 0xdcb38
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
StageBlueFieldTopOBJPalette0: ; 0xdcb40
RGB 21, 21, 21
RGB 31, 31, 31
RGB 31, 5, 4
RGB 0, 0, 0
StageBlueFieldTopOBJPalette1: ; 0xdcb48
RGB 31, 31, 31
RGB 31, 13, 15
RGB 23, 4, 6
RGB 0, 0, 0
StageBlueFieldTopOBJPalette2: ; 0xdcb50
RGB 21, 21, 21
RGB 31, 31, 31
RGB 31, 26, 0
RGB 10, 6, 0
StageBlueFieldTopOBJPalette3: ; 0xdcb58
RGB 31, 31, 31
RGB 24, 22, 26
RGB 12, 10, 14
RGB 0, 0, 0
StageBlueFieldTopOBJPalette4: ; 0xdcb60
RGB 21, 21, 21
RGB 31, 31, 31
RGB 8, 8, 8
RGB 0, 0, 0
StageBlueFieldTopOBJPalette5: ; 0xdcb68
RGB 31, 31, 31
RGB 31, 31, 31
RGB 8, 8, 8
RGB 0, 0, 0
StageBlueFieldTopOBJPalette6: ; 0xdcb70
RGB 21, 21, 21
RGB 0, 31, 25
RGB 0, 18, 14
RGB 0, 0, 0
StageBlueFieldTopOBJPalette7: ; 0xdcb78
RGB 31, 31, 31
RGB 31, 31, 31
RGB 8, 8, 8
RGB 0, 0, 0
StageBlueFieldBottomPalettes: ; 0xdcb80
StageBlueFieldBottomBGPalette0: ; 0xdcb80
RGB 31, 31, 31
RGB 13, 20, 31
RGB 31, 4, 4
RGB 0, 0, 0
StageBlueFieldBottomBGPalette1: ; 0xdcb88
RGB 31, 31, 31
RGB 11, 25, 31
RGB 0, 11, 31
RGB 0, 0, 0
StageBlueFieldBottomBGPalette2: ; 0xdcb90
RGB 31, 31, 31
RGB 4, 23, 13
RGB 0, 13, 4
RGB 0, 0, 0
StageBlueFieldBottomBGPalette3: ; 0xdcb98
RGB 31, 31, 31
RGB 31, 29, 0
RGB 15, 8, 0
RGB 0, 0, 0
StageBlueFieldBottomBGPalette4: ; 0xdcba0
RGB 31, 31, 31
RGB 31, 0, 0
RGB 16, 0, 0
RGB 0, 0, 0
StageBlueFieldBottomBGPalette5: ; 0xdcba8
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
StageBlueFieldBottomBGPalette6: ; 0xdcbb0
RGB 31, 31, 31
RGB 15, 20, 31
RGB 7, 11, 21
RGB 0, 0, 0
StageBlueFieldBottomBGPalette7: ; 0xdcbb8
RGB 31, 31, 31
RGB 27, 20, 10
RGB 24, 7, 5
RGB 0, 0, 0
StageBlueFieldBottomOBJPalette0: ; 0xdcbc0
RGB 21, 21, 21
RGB 31, 31, 31
RGB 31, 5, 4
RGB 0, 0, 0
StageBlueFieldBottomOBJPalette1: ; 0xdcbc8
RGB 31, 31, 31
RGB 21, 21, 21
RGB 27, 21, 0
RGB 0, 0, 0
StageBlueFieldBottomOBJPalette2: ; 0xdcbd0
RGB 21, 21, 21
RGB 31, 31, 31
RGB 21, 21, 27
RGB 0, 0, 0
StageBlueFieldBottomOBJPalette3: ; 0xdcbd8
RGB 31, 31, 31
RGB 31, 31, 31
RGB 8, 8, 8
RGB 0, 0, 0
StageBlueFieldBottomOBJPalette4: ; 0xdcbe0
RGB 21, 21, 21
RGB 31, 28, 0
RGB 29, 0, 0
RGB 0, 0, 0
StageBlueFieldBottomOBJPalette5: ; 0xdcbe8
RGB 31, 31, 31
RGB 31, 31, 31
RGB 8, 8, 8
RGB 0, 0, 0
StageBlueFieldBottomOBJPalette6: ; 0xdcbf0
RGB 21, 21, 21
RGB 0, 31, 25
RGB 0, 18, 14
RGB 0, 0, 0
StageBlueFieldBottomOBJPalette7: ; 0xdcbf8
RGB 31, 31, 31
RGB 31, 30, 16
RGB 27, 24, 8
RGB 23, 19, 3
PaletteData_dcc00: ; 0xdcc00
RGB 31, 31, 31
RGB 31, 28, 0
RGB 0, 11, 31
RGB 0, 0, 0
PaletteData_dcc08: ; 0xdcc08
RGB 31, 31, 31
RGB 31, 28, 0
RGB 29, 0, 0
RGB 0, 0, 0
PaletteData_dcc10: ; 0xdcc10
RGB 31, 31, 31
RGB 31, 0, 0
RGB 16, 0, 0
RGB 0, 0, 0
PaletteData_dcc18: ; 0xdcc18
RGB 31, 31, 31
RGB 31, 29, 0
RGB 15, 8, 0
RGB 0, 0, 0
PaletteData_dcc20: ; 0xdcc20
RGB 31, 31, 31
RGB 4, 23, 13
RGB 29, 0, 0
RGB 0, 0, 0
PaletteData_dcc28: ; 0xdcc28
RGB 31, 31, 31
RGB 29, 0, 0
RGB 0, 0, 22
RGB 0, 0, 0
PaletteData_dcc30: ; 0xdcc30
RGB 31, 31, 31
RGB 31, 0, 15
RGB 11, 0, 13
RGB 0, 0, 0
PaletteData_dcc38: ; 0xdcc38
RGB 31, 31, 31
RGB 11, 25, 31
RGB 0, 11, 31
RGB 0, 0, 0
PaletteData_dcc40: ; 0xdcc40
RGB 31, 31, 31
RGB 15, 15, 19
RGB 31, 0, 31
RGB 0, 0, 0
PaletteData_dcc48: ; 0xdcc48
RGB 31, 31, 31
RGB 31, 25, 31
RGB 31, 0, 31
RGB 0, 0, 0
PaletteData_dcc50: ; 0xdcc50
RGB 31, 31, 31
RGB 31, 31, 0
RGB 27, 11, 2
RGB 0, 0, 0
PaletteData_dcc58: ; 0xdcc58
RGB 31, 31, 31
RGB 31, 18, 8
RGB 27, 0, 0
RGB 0, 0, 0
PaletteData_dcc60: ; 0xdcc60
RGB 31, 31, 31
RGB 20, 20, 26
RGB 31, 11, 10
RGB 0, 0, 0
INCBIN "baserom.gbc",$dcc68,$dcd80 - $dcc68
EraseAllDataPalettes: ; 0xdcd80
EraseAllDataBGPalette0: ; 0xdcd80
RGB 31, 31, 31
RGB 23, 23, 23
RGB 14, 14, 14
RGB 5, 5, 5
EraseAllDataBGPalette1: ; 0xdcd88
RGB 31, 31, 31
RGB 0, 0, 31
RGB 31, 6, 6
RGB 0, 0, 0
EraseAllDataBGPalette2: ; 0xdcd90
RGB 31, 31, 31
RGB 0, 8, 31
RGB 31, 6, 6
RGB 0, 0, 0
EraseAllDataBGPalette3: ; 0xdcd98
RGB 31, 31, 31
RGB 0, 16, 31
RGB 31, 6, 6
RGB 0, 0, 0
EraseAllDataBGPalette4: ; 0xdcda0
RGB 31, 31, 31
RGB 0, 24, 31
RGB 31, 6, 6
RGB 0, 0, 0
EraseAllDataBGPalette5: ; 0xdcda8
RGB 31, 31, 31
RGB 0, 31, 31
RGB 31, 6, 6
RGB 0, 0, 0
EraseAllDataBGPalette6: ; 0xdcdb0
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
EraseAllDataBGPalette7: ; 0xdcdb8
RGB 31, 29, 4
RGB 29, 18, 0
RGB 31, 0, 0
RGB 5, 5, 5
EraseAllDataOBJPalette0: ; 0xdcdc0
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 6, 6
RGB 0, 0, 0
EraseAllDataOBJPalette1: ; 0xdcdc8
RGB 31, 31, 31
RGB 31, 29, 4
RGB 29, 18, 0
RGB 0, 0, 0
EraseAllDataOBJPalette2: ; 0xdcdd0
RGB 20, 20, 20
RGB 31, 31, 31
RGB 14, 14, 14
RGB 5, 5, 5
EraseAllDataOBJPalette3: ; 0xdcdd8
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
EraseAllDataOBJPalette4: ; 0xdcde0
RGB 31, 31, 31
RGB 31, 0, 0
RGB 31, 31, 31
RGB 0, 0, 0
EraseAllDataOBJPalette5: ; 0xdcde8
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
EraseAllDataOBJPalette6: ; 0xdcdf0
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
EraseAllDataOBJPalette7: ; 0xdcdf8
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
INCBIN "baserom.gbc",$dce00,$dcf00 - $dce00
MewtwoBonusPalettes: ; 0xdcf00
MewtwoBonusBGPalette0: ; 0xdcf00
RGB 31, 31, 31
RGB 13, 20, 31
RGB 31, 4, 4
RGB 0, 0, 0
MewtwoBonusBGPalette1: ; 0xdcf08
RGB 31, 31, 31
RGB 15, 15, 21
RGB 6, 6, 11
RGB 0, 0, 0
MewtwoBonusBGPalette2: ; 0xdcf10
RGB 31, 31, 31
RGB 31, 0, 0
RGB 16, 0, 0
RGB 0, 0, 0
MewtwoBonusBGPalette3: ; 0xdcf18
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
MewtwoBonusBGPalette4: ; 0xdcf20
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
MewtwoBonusBGPalette5: ; 0xdcf28
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
MewtwoBonusBGPalette6: ; 0xdcf30
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
MewtwoBonusBGPalette7: ; 0xdcf38
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
MewtwoBonusOBJPalette0: ; 0xdcf40
RGB 20, 20, 20
RGB 31, 31, 31
RGB 31, 5, 4
RGB 0, 0, 0
MewtwoBonusOBJPalette1: ; 0xdcf48
RGB 31, 31, 31
RGB 24, 19, 0
RGB 13, 8, 0
RGB 0, 0, 0
MewtwoBonusOBJPalette2: ; 0xdcf50
RGB 20, 20, 20
RGB 31, 31, 31
RGB 21, 21, 27
RGB 0, 0, 0
MewtwoBonusOBJPalette3: ; 0xdcf58
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
MewtwoBonusOBJPalette4: ; 0xdcf60
RGB 20, 20, 20
RGB 31, 25, 31
RGB 31, 0, 31
RGB 0, 0, 0
MewtwoBonusOBJPalette5: ; 0xdcf68
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
MewtwoBonusOBJPalette6: ; 0xdcf70
RGB 20, 20, 20
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
MewtwoBonusOBJPalette7: ; 0xdcf78
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
TitlescreenPalettes: ; 0xdcf80
TitlescreenBGPalette0: ; 0xdcf80
RGB 31, 31, 31
RGB 31, 29, 0
RGB 31, 0, 0
RGB 0, 0, 0
TitlescreenBGPalette1: ; 0xdcf88
RGB 31, 31, 31
RGB 0, 12, 26
RGB 31, 0, 0
RGB 0, 0, 0
TitlescreenBGPalette2: ; 0xdcf90
RGB 31, 31, 31
RGB 23, 31, 24
RGB 31, 0, 0
RGB 0, 0, 0
TitlescreenBGPalette3: ; 0xdcf98
RGB 31, 31, 31
RGB 31, 29, 0
RGB 0, 12, 26
RGB 0, 0, 0
TitlescreenBGPalette4: ; 0xdcfa0
RGB 31, 31, 31
RGB 20, 20, 31
RGB 0, 12, 26
RGB 0, 0, 0
TitlescreenBGPalette5: ; 0xdcfa8
RGB 31, 31, 31
RGB 23, 31, 24
RGB 0, 12, 26
RGB 0, 0, 0
TitlescreenBGPalette6: ; 0xdcfb0
RGB 31, 31, 31
RGB 20, 20, 31
RGB 23, 31, 24
RGB 0, 0, 0
TitlescreenBGPalette7: ; 0xdcfb8
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
TitlescreenOBJPalette0: ; 0xdcfc0
RGB 20, 20, 20
RGB 31, 31, 31
RGB 31, 29, 0
RGB 0, 0, 0
TitlescreenOBJPalette1: ; 0xdcfc8
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 0, 0
RGB 0, 0, 0
TitlescreenOBJPalette2: ; 0xdcfd0
RGB 20, 20, 20
RGB 31, 31, 31
RGB 23, 23, 27
RGB 0, 0, 0
TitlescreenOBJPalette3: ; 0xdcfd8
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
TitlescreenOBJPalette4: ; 0xdcfe0
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
TitlescreenOBJPalette5: ; 0xdcfe8
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
TitlescreenOBJPalette6: ; 0xdcff0
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
TitlescreenOBJPalette7: ; 0xdcff8
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
RGB 0, 6, 0
CopyrightScreenPalettes: ; 0xdd000
CopyrightScreenBGPalette0: ; 0xdd000
RGB 31, 31, 31
RGB 22, 22, 22
RGB 11, 11, 11
RGB 0, 0, 0
CopyrightScreenBGPalette1: ; 0xdd008
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenBGPalette2: ; 0xdd010
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenBGPalette3: ; 0xdd018
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenBGPalette4: ; 0xdd020
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenBGPalette5: ; 0xdd028
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenBGPalette6: ; 0xdd030
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenBGPalette7: ; 0xdd038
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenOBJPalette0: ; 0xdd040
RGB 31, 31, 31
RGB 31, 31, 31
RGB 22, 22, 22
RGB 0, 0, 0
CopyrightScreenOBJPalette1: ; 0xdd048
RGB 31, 31, 31
RGB 31, 31, 31
RGB 11, 11, 11
RGB 0, 0, 0
CopyrightScreenOBJPalette2: ; 0xdd050
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenOBJPalette3: ; 0xdd058
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenOBJPalette4: ; 0xdd060
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenOBJPalette5: ; 0xdd068
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenOBJPalette6: ; 0xdd070
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
CopyrightScreenOBJPalette7: ; 0xdd078
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
RGB 31, 31, 31
GengarBonusPalettes: ; 0xdd080
GengarBonusBGPalette0: ; 0xdd080
RGB 31, 31, 31
RGB 13, 20, 31
RGB 31, 4, 4
RGB 0, 0, 0
GengarBonusBGPalette1: ; 0xdd088
RGB 28, 31, 4
RGB 8, 14, 31
RGB 4, 5, 15
RGB 0, 0, 0
GengarBonusBGPalette2: ; 0xdd090
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
GengarBonusBGPalette3: ; 0xdd098
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
GengarBonusBGPalette4: ; 0xdd0a0
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
GengarBonusBGPalette5: ; 0xdd0a8
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
GengarBonusBGPalette6: ; 0xdd0b0
RGB 31, 31, 31
RGB 13, 13, 31
RGB 31, 0, 0
RGB 0, 0, 0
GengarBonusBGPalette7: ; 0xdd0b8
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
GengarBonusOBJPalette0: ; 0xdd0c0
RGB 20, 20, 20
RGB 31, 31, 31
RGB 31, 5, 4
RGB 0, 0, 0
GengarBonusOBJPalette1: ; 0xdd0c8
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
GengarBonusOBJPalette2: ; 0xdd0d0
RGB 20, 20, 20
RGB 31, 31, 31
RGB 21, 21, 27
RGB 0, 0, 0
GengarBonusOBJPalette3: ; 0xdd0d8
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
GengarBonusOBJPalette4: ; 0xdd0e0
RGB 20, 20, 20
RGB 31, 31, 31
RGB 29, 0, 31
RGB 0, 0, 0
GengarBonusOBJPalette5: ; 0xdd0e8
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
GengarBonusOBJPalette6: ; 0xdd0f0
RGB 20, 20, 20
RGB 31, 31, 31
RGB 8, 8, 8
RGB 0, 0, 0
GengarBonusOBJPalette7: ; 0xdd0f8
RGB 31, 31, 31
RGB 20, 20, 20
RGB 8, 8, 8
RGB 0, 0, 0
FieldSelectScreenPalettes: ; 0xdd100
FieldSelectScreenBGPalette0: ; 0xdd100
RGB 31, 31, 31
RGB 31, 20, 0
RGB 31, 0, 0
RGB 0, 0, 0
FieldSelectScreenBGPalette1: ; 0xdd108
RGB 31, 31, 31
RGB 0, 22, 31
RGB 0, 0, 31
RGB 0, 0, 0
FieldSelectScreenBGPalette2: ; 0xdd110
RGB 31, 31, 31
RGB 31, 0, 0
RGB 0, 25, 0
RGB 0, 0, 0
FieldSelectScreenBGPalette3: ; 0xdd118
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
FieldSelectScreenBGPalette4: ; 0xdd120
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
FieldSelectScreenBGPalette5: ; 0xdd128
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
FieldSelectScreenBGPalette6: ; 0xdd130
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
FieldSelectScreenBGPalette7: ; 0xdd138
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
RGB 31, 0, 31
FieldSelectScreenOBJPalette0: ; 0xdd140
RGB 10, 10, 10
RGB 31, 31, 31
RGB 21, 21, 21
RGB 0, 0, 0
CinnabarIslandBillboardBGPalette1: ; 0xdd148
RGB 31, 31, 31
RGB 14, 21, 0
RGB 0, 10, 31
RGB 0, 0, 0
CinnabarIslandBillboardBGPalette2: ; 0xdd150
RGB 31, 31, 31
RGB 14, 21, 0
RGB 2, 11, 1
RGB 0, 0, 0
IndigoPlateauBillboardBGPalette1: ; 0xdd158
RGB 31, 31, 31
RGB 11, 18, 31
RGB 7, 9, 19
RGB 0, 0, 0
IndigoPlateauBillboardBGPalette2: ; 0xdd160
RGB 31, 31, 31
RGB 11, 18, 31
RGB 9, 20, 0
RGB 0, 0, 0
PokeBallObjPalette: ; 0xdd168
RGB 21, 21, 21
RGB 31, 31, 31
RGB 31, 5, 4
RGB 0, 0, 0
GreatBallObjPalette: ; 0xdd170
RGB 21, 21, 21
RGB 31, 31, 31
RGB 2, 8, 31
RGB 0, 0, 0
UltraBallObjPalette: ; 0xdd178
RGB 21, 21, 21
RGB 31, 31, 31
RGB 27, 21, 0
RGB 0, 0, 0
MasterBallObjPalette: ; 0xdd180
RGB 21, 21, 21
RGB 31, 31, 31
RGB 21, 3, 21
RGB 0, 0, 0
INCBIN "baserom.gbc",$dd188,$e0000 - $dd188
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