Files
pokepinball/main.asm
T
2015-03-08 13:00:09 -07:00

8019 lines
173 KiB
NASM
Executable File

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 Func_477
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 [$fffe], a
ld sp, $fffe
di
xor a
ld [$ff0f], a
ld a, [$ff40] ; LCD Control
bit 7, a ; Check if LCD Display is enabled
jr nz, .LCDDisplayEnabled
set 7, a
ld [$ff40], a
.LCDDisplayEnabled
ld bc, $0002
call Func_948
.waitForVBlank
ld a, [$ff44] ; LY register (LCDC Y-Coordinate)
cp 145 ; > 144 means V-Blank
jr c, .waitForVBlank
ld a, $81
ld [$ff40], a ; Enable LCD Display
xor a
ld [$ff47], a ; Clear Palette Data
ld [$ff48], a
ld [$ff49], a
ld bc, $0002
call Func_948
.waitForVBlank2
ld a, [$ff44] ; LY register (LCDC Y-Coordinate)
cp 145 ; > 144 means V-Blank
jr c, .waitForVBlank2
xor a
ld [$ff40], a ; Disable LCD Display
ld hl, wc000
ld bc, $2000
call ClearData ; Clear WRAM Bank 0
ld hl, vTiles0
ld bc, $1000
call ClearData ; Clear First half of VRAM
ld a, $a
ld [$0000], a ; Enable RAM
ld a, $1
ld [$2000], a ; Load ROM Bank $1
ld a, $0
ld [$6000], a ; Enable ROM Banking Mode
ld a, $0
ld [$4000], a ; Set bits 5 and 6 of ROM Bank Number
ld a, $1
ld [hLoadedROMBank], a
ld a, $1
ld [$6000], a ; Enable RAM Banking Mode
ld a, $0
ld [$4000], a ; Load RAM Bank $0
ld sp, $dfff ; Initialize stack pointer to the end of WRAM Bank $1
ld hl, $ff80
ld bc, $007e
call ClearData ; Clear High RAM (HRAM)
call InitializeHRAM
call ClearOAMBuffer
xor a
ld [$d7fb], a
ld [$d7fc], a
ld [$d7fd], a
ld [$ffb0], a
ld [$ffb1], a
ld [$d8e1], a
ld [$d7fe], a
ld [$fffc], a
ld hl, $ff9e
xor a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld a, $8f
ld [hli], a
ld a, $a6
ld [hli], a
ld a, $0
ld [$d849], a
ld [$d84a], a
ld a, $f
call Func_52c
call Func_23b
ld a, [$fffe]
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, [$fffe]
cp $11
jr nz, .asm_248
ld a, $1
ld [$fffe], a
ld [$fffd], a
ret
.asm_248
xor a
ld [$fffe], a
ld [$fffd], a
ret
INCBIN "baserom.gbc",$24e,$2f2 - $24e
Func_2f2: ; 0x2f2
push af
push bc
push de
push hl
call $ff80
ld a, [$ff9e]
ld [$ff40], a
call Func_113a
ei
ld a, [$ff44]
cp $90
jr c, .asm_328
ld hl, $ff9f
ld c, $41
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
inc c
ld a, [hli]
ld [$ff00+c], a
.asm_328
ld a, [$ffa2]
ld [$ffa8], a
ld a, [$ffa9]
ld [$ffaa], a
ld a, [$ffab]
ld [$ffac], a
ld a, [$ffad]
ld [$ffae], a
call Func_ab8
ld a, [$daa3]
and a
jr nz, .asm_359
ld a, [$ff98]
cp $f
jr nz, .asm_359
ld a, [$ff99]
and $f
jr z, .asm_359
ld hl, [sp+$8]
ld [hl], $c3
inc hl
ld [hl], $3
ld a, $1
ld [$daa3], a
.asm_359
ld hl, $ffb2
ld a, [hl]
inc [hl]
and a
jr nz, .asm_365
ld hl, $ffb3
inc [hl]
.asm_365
ld hl, $ffb4
inc [hl]
ld a, [$d8e1]
and a
call nz, Func_167b
ld a, [$d849]
and a
jr nz, .asm_37d
ld a, [$d85d]
and a
call nz, $0504
.asm_37d
ld a, [$d84a]
and a
jr z, .asm_39d
xor a
ld [$d84a], a
ld a, $1
ld [$d849], a
ld a, $bc
ld [$ff06], a
ld a, $0
ld [$ff07], a
ld hl, $ffff
set 2, [hl]
ld a, $4
ld [$ff07], a
.asm_39d
ld hl, $4000
ld a, [$d917]
and a
jr nz, .asm_3b5
ld a, [$d803]
rrca
ld [$d803], a
and $1
jr z, .asm_3b5
set 3, [hl]
jr .asm_3b7
.asm_3b5
res 3, [hl]
.asm_3b7
ld a, [$d4aa]
and a
call nz, $0e69
pop hl
pop de
pop bc
pop af
reti
INCBIN "baserom.gbc",$3c3,$3ec - $3c3
Func_3ec: ; 0x3ec
push af
push bc
push de
push hl
ld a, [$ffb0]
sla a
ld c, a
ld b, $0
ld hl, $0408
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
INCBIN "baserom.gbc",$3ff,$418 - $3ff
Func_418: ; 0x418
ei
push af
push bc
push de
push hl
ld a, [$d849]
and a
jr z, .asm_42a
ld a, [$d85d]
and a
call nz, Func_504
.asm_42a
ld a, [$d84a]
and a
jr z, .asm_440
xor a
ld [$d84a], a
ld [$d849], a
ld a, $0
ld [$ff07], a
ld hl, $ffff
res 2, [hl]
.asm_440
pop hl
pop de
pop bc
pop af
reti
Func_445: ; 0x445
push af
push bc
push de
push hl
ld hl, $045d ; todo
push hl
ld a, [$ffb1]
sla a
ld c, a
ld b, $0
ld hl, $0462 ; todo
add hl, bc
ld c, [hl]
inc hl
ld b, [hl]
push bc
ret
INCBIN "baserom.gbc",$45d,$467 - $45d
Func_467: ; 0x467
reti
Func_468: ; 0x468
ld a, [$ff40]
bit 7, a
ret z
ld hl, $ffb2
xor a
ld [hl], a
.asm_472
ld a, [hl]
and a
jr z, .asm_472
ret
Func_477: ; 0x477
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
INCBIN "baserom.gbc",$490,$4af - $490
PlaySoundEffect: ; 0x4af
; input: de = sound effect id? I think d specifies something special and e holds the id
ld a, [$dead]
and a
ret nz
ld a, [$d800]
and a
jr z, .asm_4bd
ld a, d
and a
ret z
.asm_4bd
ld a, d
ld [$d800], a
ld d, $0
ld a, [hLoadedROMBank]
push af
ld a, [$d85b]
ld [hLoadedROMBank], a
ld [$2000], a
call $40c0 ; todo
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
INCBIN "baserom.gbc",$4d8,$504 - $4d8
Func_504: ; 0x504
ld a, [hLoadedROMBank]
push af
ld a, [$d85b]
ld [hLoadedROMBank], a
ld [$2000], a
call $4180 ; todo
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ld a, [$d801]
inc a
ld [$d801], a
and $3
ret nz
ld a, [$d800]
and a
ret z
dec a
ld [$d800], a
ret
Func_52c: ; 0x52c
di
ld [$d85b], a
ei
ret
Func_532: ; 0x532
ld e, a
ld d, $0
sla e
rl d
sla e
rl d
pop hl
add hl, de
ld e, [hl]
inc hl
ld d, [hl]
inc hl
ld a, [hl]
ld h, d
ld l, e
jp BankSwitch
BankSwitchSimple: ; 0x549
; Switches to Bank in register a and jumps to hl.
ld [hLoadedROMBank], a
ld [$2000], a ; Load Bank
jp [hl]
BankSwitch: ; 0x54f
ld e, a
ld a, [hLoadedROMBank] ; currently-loaded Bank
cp e
jr z, .doJump
push af
ld a, e
call .loadNewBank
call .doJump
pop de
ld a, d
.loadNewBank
push hl
push de
ld hl, $ffff
ld d, [hl]
ld [hl], $0
ld [$2000], a
ld [hLoadedROMBank], a
ld [hl], d
pop de
pop hl
ret
.doJump
ld a, [$ff8b]
ld e, a
ld a, [$ff8a]
jp [hl]
Func_576: ; 0x576
ld a, [$ff40]
bit 7, a
ret z
ld a, [$ff9e]
res 7, a
ld [$ff9e], a
.asm_581
ld a, [$ff40]
bit 7, a
jr nz, .asm_581
ret
Func_588: ; 0x588
ld a, [$ffc4]
and a
call nz, Func_597
ld a, [$ff9e]
set 7, a
ld [$ff40], a
ld [$ff9e], a
ret
Func_597: ; 0x597
ld de, $ff68
ld a, $80
ld [de], a
inc de
ld b, $8
.asm_5a0
ld a, [$d80c]
call Func_5c2
dec b
jr nz, .asm_5a0
ld de, $ff6a
ld a, $80
ld [de], a
inc de
ld b, $4
.asm_5b2
ld a, [$d80d]
call Func_5c2
ld a, [$d80e]
call Func_5c2
dec b
jr nz, .asm_5b2
ret
Func_5c2: ; 0x5c2
push bc
ld b, $4
.asm_5c5
push af
push bc
and $3
sla a
ld c, a
ld b, $0
ld hl, $05e1
add hl, bc
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
pop bc
pop af
srl a
srl a
dec b
jr nz, .asm_5c5
pop bc
ret
INCBIN "baserom.gbc",$5e1,$5f7 - $5e1
InitializeHRAM: ; 0x5f7
; Initializes registers $ff80 - $ff8a
ld c, $80
ld b, $a ; number of bytes to load
ld hl, InitialHRAM
.loop
ld a, [hli]
ld [$ff00+c], a ; add register c to $ff00, and store register a into the resulting address
inc c
dec b
jr nz, .loop
ret
InitialHRAM:
; These $a bytes are initially load into $ff80 - $ff8a by InitializeHRAM.
db $3e, $d0, $e0, $46, $3e, $28, $3d, $20, $fd, $c9
WaitForLCD: ; 0x60f
; Wait for LCD controller to stop reading from both OAM and VRAM because
; CPU can't access OAM, VRAM, or palette data ($ff69, $ff6b) during this time.
ld a, [$ff41] ; LCDC Status register
and $3
jr nz, WaitForLCD
ld a, $a
.delay10Cycles
dec a
jr nz, .delay10Cycles
ret
Func_61b: ; 0x61b
ld a, [$ff44] ; LY register (LCDC Y-Coordinate)
cp $40
jr c, .asm_625
cp $80
jr c, .asm_63d
.asm_625
ld a, [$ff44] ; LY register (LCDC Y-Coordinate)
cp $40
jr c, .asm_625
cp $80
jr nc, .asm_625
.asm_62f
ld a, [$ff41]
and $3
jr nz, .asm_62f ; wait for lcd controller to finish transferring data
ld a, $15
.wait
dec a
jr nz, .wait
nop
nop
nop
.asm_63d
ret
INCBIN "baserom.gbc",$63e,$654 - $63e
ClearData: ; 0x654
; Clears bc bytes starting at hl.
; bc can be a maximum of $7fff, since it checks bit 7 of b when looping.
xor a
dec bc
.clearLoop
ld [hli], a
dec bc
bit 7, b
jr z, .clearLoop
ret
Func_65d: ; 0x65d
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, c
or b
jr nz, Func_65d
ret
Func_666: ; 0x666
bit 7, h
jr nz, .asm_679
ld [$fffa], a
ld a, [$fff8]
push af
ld a, [$fffa]
ld [$fff8], a
ld [$2000], a
scf
jr .asm_67d
.asm_679
ld [$4000], a
and a
.asm_67d
push af
.asm_67e
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, c
or b
jr nz, .asm_67e
pop af
ret nc
pop af
ld [$fff8], a
ld [$2000], a
ret
INCBIN "baserom.gbc",$68f,$6a4 - $68f
LoadVideoData: ; 0x6a4
; Input:
; hl = address of pointer table
; a = index of item to load in pointer table
; This needs more documentation. It loads things like graphics and palettes.
sla a
ld c, a
ld b, $0
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
.loadItem
ld a, [hli]
ld c, a
and [hl]
cp $ff ; two consecutive $ff bytes terminate the array
ret z
ld a, [hli]
ld b, a ; bc contains pointer to data to be loaded
push hl
push bc
ld a, [hli] ; a contains bank of data to be loaded
ld e, [hl]
inc hl
ld d, [hl] ; de contains destination address for data
inc hl
ld c, [hl]
inc hl
ld b, [hl] ; bc contains last word of data struct
inc hl ; this is a wasted instruction
pop hl
call Func_6cb
pop hl
ld bc, $0005
add hl, bc
jr .loadItem
Func_6cb: ; 0x6cb
srl b
rr c
jp c, Func_6fd ; if lowest bit of bc is set
jp Func_6d5 ; This jumps to the next instruction... Strange.
Func_6d5: ; 0x6d5
ld [$fffa], a ; save bank of data to be loaded
ld a, [hLoadedROMBank]
push af
ld a, [$fffa] ; a contains bank of data to be loaded
ld [hLoadedROMBank], a
ld [$2000], a ; switch bank to the bank of data to be loaded
srl b
rr c
rl a
and $1 ; checks bit 1 of the last word in the data struct
ld [$ff4f], a ; set VRAM Bank
.copyByte
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, c
or b ; does bc = 0?
jr nz, .copyByte
xor a
ld [$ff4f], a ; set VRAM Bank to Bank 0
pop af
ld [hLoadedROMBank], a
ld [$2000], a ; reload the previous ROM Bank
ret
Func_6fd: ; 0x6fd
ld [$fffa], a ; save bank of data to be loaded
ld a, [hLoadedROMBank]
push af
ld a, [$fffa] ; a contains bank of data to be loaded
ld [hLoadedROMBank], a
ld [$2000], a ; switch bank to the bank of data to be loaded
ld a, e
bit 6, a
jr nz, .asm_717
ld de, $ff68
call Func_724
jr z, .asm_71d
xor a
.asm_717
ld de, $ff6a
call Func_724
.asm_71d
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
Func_724: ; 0x724
res 6, a
ld b, a
set 7, a
ld [de], a
inc de
.copyByte
ld a, [hli]
ld [de], a
inc b
dec c
ret z
bit 6, b
jr z, .copyByte
ret
Func_735: ; 0x735
push hl
ld hl, $ff40
bit 7, [hl]
pop hl
jp z, Func_666
; fall through
Func_73f: ; 0x73f
; This loads some data into VRAM. It waits for the LCD H-Blank to copy the data 4 bytes at a time.
; input: hl = source of data
; a = bank of data to load
; de = destination of data
; bc = number of bytes to copy
bit 7, h
jr nz, .asm_752
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
scf
jr .asm_756
.asm_752
ld [$4000], a
and a
.asm_756
push af
call WaitForLCD
.loop
call Func_61b
.waitForHBlank
ld a, [$ff41]
and $3
jr nz, .waitForHBlank
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec bc
dec bc
dec bc
dec bc
nop
nop
nop
nop
ld a, b
or c
jr nz, .loop
pop af
ret nc
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
INCBIN "baserom.gbc",$790,$848 - $790
PutTileInVRAM: ; 0x848
; Puts a tile in VRAM.
; input: a = tile number
; hl = pointer to VRAM location where tile should be placed
push af
call WaitForLCD
call Func_61b
.asm_84f
ld a, [$ff41]
and $3
jr nz, .asm_84f ; wait for lcd controller to finish transferring data
pop af
ld [hl], a ; Store tile number in VRAM background map
ret
INCBIN "baserom.gbc",$858,$916 - $858
ClearOAMBuffer: ; 0x916
; Clears the OAM buffer by loading $f0 into all of the entries.
ld hl, wOAMBuffer ; 0xd000
ld b, 4 * 40 ; wOAMBuffer is 4 * 40 bytes long (40 OAM entries, 4 bytes each)
ld a, $f0 ; byte to write
.loop
ld [hli], a
dec b
jr nz, .loop
xor a
ld [$d802], a
ret
Func_926: ; 0x926
ld a, [$d802]
cp $a0
jr nc, .asm_93a
ld l, a
ld h, $d0
cpl
add $a1
ld b, a
ld a, $f0
.asm_936
ld [hli], a
dec b
jr nz, .asm_936
.asm_93a
xor a
ld [$d802], a
ret
Func_93f: ; 0x93f
push bc
rst $10
pop bc
dec bc
ld a, c
or b
jr nz, Func_93f
ret
Func_948: ; 0x948
ld de, $06d6
.asm_94b
nop
nop
nop
dec de
ld a, d
or e
jr nz, .asm_94b
dec bc
ld a, b
or c
jr nz, Func_948
ret
Func_959: ; 0x959
push bc
push de
push hl
ld a, [$d811]
ld c, a
ld b, $0
inc a
cp $37
jr nz, .asm_96e
call Func_9fa
xor a
ld bc, $0000
.asm_96e
ld [$d811], a
ld hl, $d812
add hl, bc
ld a, [hl]
pop hl
pop de
pop bc
ret
Func_97a: ; 0x97a
ld a, [$d810]
ld d, a
ld a, $0
ld a, [$afff]
.asm_983
cp d
jr c, .asm_989
sub d
jr .asm_983
.asm_989
ld [$d80f], a
ld [$d848], a
ld e, $1
ld hl, $09c4 ; todo
ld a, $36
.asm_996
push af
ld c, [hl]
inc hl
ld b, $0
push hl
ld hl, $d812
add hl, bc
ld [hl], e
ld a, [$d80f]
sub e
jr nc, .asm_9a8
add d
.asm_9a8
ld e, a
ld a, [hl]
ld [$d80f], a
pop hl
pop af
dec a
jr nz, .asm_996
call Func_9fa
call Func_9fa
call Func_9fa
ld a, $0
call Func_959
ld [$afff], a
ret
INCBIN "baserom.gbc",$9c4,$9fa - $9c4
Func_9fa: ; 0x9fa
ld a, [$d810]
ld d, a
ld bc, $d812
ld hl, $d831
ld e, $18
.asm_a06
ld a, [bc]
sub [hl]
jr nc, .asm_a0b
add d
.asm_a0b
ld [bc], a
dec e
jr nz, .asm_a06
ld bc, $d82a
ld hl, $d812
ld e, $1f
.asm_a17
ld a, [bc]
sub [hl]
jr nc, .asm_a1c
add d
.asm_a1c
ld [bc], a
dec e
jr nz, .asm_a17
ret
INCBIN "baserom.gbc",$a21,$ab8 - $a21
Func_ab8: ; 0xab8
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
ld [$ff98], a
ld a, $30
ld [$ff00], a
ld a, [$ff98]
ld hl, $ff9c
xor [hl]
push af
ld hl, $ff98
and [hl]
ld [$ff99], a
ld [$ff9a], a
pop af
ld hl, $ff9c
and [hl]
ld [$ff9b], a
ld a, [$ff98]
and a
jr z, .asm_b15
ld hl, $ff9c
cp [hl]
jr nz, .asm_b15
ld hl, $ff9d
dec [hl]
jr nz, .asm_b1a
ld a, [$ff98]
ld [$ff9a], a
ld a, [$d807]
ld [$ff9d], a
jr .asm_b1a
.asm_b15
ld a, [$d806]
ld [$ff9d], a
.asm_b1a
ld a, [$ff98]
ld [$ff9c], a
ld hl, $d808
ld a, [$ff98]
or [hl]
ld [hli], a
ld a, [$ff99]
or [hl]
ld [hli], a
ld a, [$ff9a]
or [hl]
ld [hli], a
ret
Func_b2e: ; 0xb2e
ld hl, $d808
xor a
ld [hli], a
ld [hli], a
ld [hl], a
ret
INCBIN "baserom.gbc",$b36,$b4c - $b36
IsKeyPressed: ; 0xb4c
; Checks if a key for the specified key config is pressed.
; input: hl = pointer to key config byte pair (e.g. wKeyConfigLeftFlipper)
; output: zero flag is set if a corresponding key is pressed
; zero flag is reset if no corresponding key is pressed
ld a, [$ff98]
and [hl]
jr z, .asm_b58
cp [hl]
jr nz, .asm_b58
ld a, [$ff99]
and [hl]
ret nz
.asm_b58
inc hl
ld a, [$ff98]
and [hl]
ret z
cp [hl]
jr nz, .asm_b64
ld a, [$ff99]
and [hl]
ret
.asm_b64
xor a
ret
Func_b66: ; 0xb66
ld a, [$fffe]
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, [$fffe]
and a
jp nz, Func_c19
ld hl, $ffa3
ld de, $d80c
ld b, $3
.asm_bcc
ld a, [de]
and $55
ld c, a
ld a, [de]
and $aa
srl a
and c
ld [hli], a
inc de
dec b
jr nz, .asm_bcc
ld bc, $0002
call Func_93f
ld hl, $ffa3
ld de, $d80c
ld b, $3
.asm_be9
ld a, [de]
and $aa
srl a
add [hl]
ld [hli], a
inc de
dec b
jr nz, .asm_be9
ld bc, $0002
call Func_93f
ld hl, $ffa3
ld de, $d80c
ld b, $3
.asm_c02
ld a, [de]
and $55
ld c, a
ld a, [de]
and $aa
srl a
or c
add [hl]
ld [hli], a
inc de
dec b
jr nz, .asm_c02
ld bc, $0002
call Func_93f
ret
Func_c19: ; 0xc19
ld b, $10
.asm_c1b
push bc
ld de, $d200
ld hl, $d280
call Func_c2d
call Func_d61
pop bc
dec b
jr nz, .asm_c1b
ret
Func_c2d: ; 0xc2d
ld a, b
cp $1
jr z, .asm_c49
ld c, $40
.asm_c34
push bc
ld a, [hli]
sub $42
ld c, a
ld a, [hld]
sbc $8
ld b, a
call Func_c60
ld a, c
ld [hli], a
ld a, b
ld [hli], a
pop bc
dec c
jr nz, .asm_c34
ret
.asm_c49
ld c, $40
.asm_c4b
push bc
ld a, [hli]
sub $21
ld c, a
ld a, [hld]
sbc $4
ld b, a
call Func_c60
ld a, c
ld [hli], a
ld a, b
ld [hli], a
pop bc
dec c
jr nz, .asm_c4b
ret
Func_c60: ; 0xc60
push hl
ld a, [de]
and $1f
ld l, a
ld a, c
and $1f
cp l
jr nc, .asm_c70
ld a, c
and $e0
or l
ld c, a
.asm_c70
ld a, [de]
and $e0
ld l, a
inc de
ld a, [de]
srl a
rr l
srl a
rr l
ld a, c
and $e0
ld h, a
ld a, b
srl a
rr h
srl a
rr h
ld a, h
cp l
jr nc, .asm_ca3
ld h, $0
sla l
rl h
sla l
rl h
ld a, c
and $1f
or l
ld c, a
ld a, b
and $7c
or h
ld b, a
.asm_ca3
ld a, [de]
and $7c
ld l, a
ld a, b
and $7c
cp l
jr nc, .asm_cb2
ld a, b
and $3
or l
ld b, a
.asm_cb2
inc de
pop hl
ret
INCBIN "baserom.gbc",$cb5,$cb5 - $cb5
Func_cb5: ; 0xcb5
ld a, [$fffe]
and a
jp nz, Func_cee
ld hl, $ffa3
ld b, $3
.asm_cc0
push bc
push hl
ld b, $3
.asm_cc4
ld a, [hl]
and $55
ld c, a
ld a, [hl]
and $aa
srl a
or c
cpl
inc a
add [hl]
ld [hli], a
dec b
jr nz, .asm_cc4
ld bc, $0002
call Func_93f
pop hl
pop bc
dec b
jr nz, .asm_cc0
xor a
ld hl, $ffa3
ld [hli], a
ld [hli], a
ld [hl], a
ld bc, $0002
call Func_93f
ret
Func_cee: ; 0xcee
ld hl, $d280
ld de, $ff68
call Func_d9d
ld hl, $d2c0
ld de, $ff6a
call Func_d9d
ld b, $10
.asm_d02
push bc
ld hl, $d280
call Func_d11
call Func_d61
pop bc
dec b
jr nz, .asm_d02
ret
Func_d11: ; 0xd11
ld b, $40
.asm_d13
ld a, [hl]
and $1f
add $2
ld e, a
cp $1f
jr c, .asm_d1f
ld e, $1f
.asm_d1f
ld a, [hl]
and $e0
or e
ld [hl], a
ld a, [hli]
and $e0
ld e, [hl]
dec hl
srl e
rr a
srl e
rr a
add $10
ld e, a
jr nc, .asm_d38
ld e, $f8
.asm_d38
ld d, $0
sla e
rl d
sla e
rl d
ld a, [hl]
and $1f
or e
ld [hli], a
ld a, [hl]
and $7c
or d
ld [hl], a
ld a, [hl]
and $7c
add $8
ld e, a
cp $7c
jr c, .asm_d58
ld e, $7c
.asm_d58
ld a, [hl]
and $3
or e
ld [hli], a
dec b
jr nz, .asm_d13
ret
Func_d61: ; 0d61
ld a, [$ffff]
res 0, a
ld [$ffff], a
ld hl, $d280
ld de, $ff68
ld a, $80
ld [de], a
inc de
.asm_d71
ld a, [$ff44]
cp $90
jr c, .asm_d71
ld b, $10
.asm_d79
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
dec b
jr nz, .asm_d79
inc de
ld a, $80
ld [de], a
inc de
ld b, $10
.asm_d8b
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
ld a, [hli]
ld [de], a
dec b
jr nz, .asm_d8b
ld a, [$ffff]
set 0, a
ld [$ffff], a
ret
Func_d9d: ; 0xd9d
ld b, $0
ld c, e
inc c
call WaitForLCD
.asm_da4
call Func_61b
.asm_da7
ld a, [$ff41]
and $3
jr nz, .asm_da7 ; wait for lcd controller to finish transferring data
ld a, b
ld [de], a
ld a, [$ff00+c]
ld [hli], a
inc b
ld a, b
ld [de], a
ld a, [$ff00+c]
ld [hli], a
inc b
ld a, b
ld [de], a
ld a, [$ff00+c]
ld [hli], a
inc b
ld a, b
ld [de], a
ld a, [$ff00+c]
ld [hli], a
inc b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ld a, b
cp $40
jr nz, .asm_da4
ret
INCBIN "baserom.gbc",$dd4,$f0c - $dd4
Func_f0c: ; 0xf0c
call Func_f34
ret nc
.asm_f10
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, b
or c
jr nz, .asm_f10
scf
ret
Func_f1a: ; 0xf1a
push bc
push de
push hl
.asm_f1d
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, b
or c
jr nz, .asm_f1d
pop hl
pop de
pop bc
ld h, d
ld l, e
call Func_f74
call Func_fa1
call Func_f4c
ret
Func_f34: ; 0xf34
call Func_f62
jr nc, .asm_f3f
call Func_f7e
jr nc, .asm_f3f
ret
.asm_f3f
add hl, bc
inc hl
inc hl
inc hl
inc hl
call Func_f62
ret nc
call Func_f7e
ret
Func_f4c: ; 0xf4c
push bc
push hl
push de
inc bc
inc bc
inc bc
inc bc
ld d, h
ld e, l
add hl, bc
.asm_f56
ld a, [de]
ld [hli], a
inc de
dec bc
ld a, b
or c
jr nz, .asm_f56
pop de
pop hl
pop bc
ret
Func_f62: ; 0xf62
push hl
add hl, bc
ld a, [hli]
cp $4e
jr nz, .asm_f71
ld a, [hl]
cp $54
jr nz, .asm_f71
scf
jr .asm_f72
.asm_f71
and a
.asm_f72
pop hl
ret
Func_f74: ; 0xf74
push hl
add hl, bc
ld a, $4e
ld [hli], a
ld a, $54
ld [hl], a
pop hl
ret
Func_f7e: ; 0xf7e
push bc
push de
push hl
inc bc
inc bc
ld de, $0000
.asm_f86
ld a, [hli]
add e
ld e, a
jr nc, .asm_f8c
inc d
.asm_f8c
dec bc
ld a, b
or c
jr nz, .asm_f86
ld a, [hli]
cp e
jr nz, .asm_f9c
ld a, [hl]
cp d
jr nz, .asm_f9c
scf
jr .asm_f9d
.asm_f9c
and a
.asm_f9d
pop hl
pop de
pop bc
ret
Func_fa1: ; 0xfa1
push bc
push de
push hl
inc bc
inc bc
ld de, $0000
.asm_fa9
ld a, [hli]
add e
ld e, a
jr nc, .asm_faf
inc d
.asm_faf
dec bc
ld a, b
or c
jr nz, .asm_fa9
ld a, e
ld [hli], a
ld a, d
ld [hl], a
pop hl
pop de
pop bc
ret
INCBIN "baserom.gbc",$fbc,$10aa - $fbc
Func_10aa: ; 0x10aa
ld c, a
ld a, [hli]
ld b, a
.asm_10ad
push bc
ld a, c
ld c, [hl]
inc hl
ld b, [hl]
inc hl
push af
ld a, [bc]
ld e, a
inc bc
ld a, [bc]
ld d, a
inc bc
pop af
push hl
call Func_10c5
pop hl
pop bc
dec b
jr nz, .asm_10ad
ret
Func_10c5: ; 0x10c5
push af
ld a, [$ff40]
bit 7, a
jr z, .asm_10d2
.asm_10cc
ld a, [$ff44]
cp $88
jr nc, .asm_10cc
.asm_10d2
pop af
ld hl, $d7fb
ld l, [hl]
ld h, $cb
inc bc
ld [hl], c
inc h
ld [hl], b
inc h
ld [hl], a
inc h
ld [hl], e
inc h
ld [hl], d
ld e, $ff
ld [$fffa], a
ld a, [$fff8]
push af
ld a, [$fffa]
ld [$fff8], 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 [$fff8], a
ld [$2000], a
ld hl, $d7fb
ld l, [hl]
ld h, $ca
inc l
ld [hl], $0
dec l
ld [hl], e
ld hl, $d7fb
inc [hl]
ld a, [$ff40]
bit 7, a
ret nz
ld a, [$ffff]
push af
res 0, a
ld [$ffff], a
call Func_113a
pop af
ld [$ffff], a
ret
INCBIN "baserom.gbc",$1129,$113a - $1129
Func_113a: ; 0x113a
ld hl, $d7fc
ld a, [$d7fb]
cp [hl]
ret z
ld l, [hl]
ld h, $ca
ld [hl], $ff
.asm_1147
ld a, [hl]
and a
jr z, .asm_116c
push hl
inc h
ld e, [hl]
inc h
ld d, [hl]
inc h
ld a, [hLoadedROMBank]
push af
ld a, [hl]
ld [hLoadedROMBank], a
ld [$2000], a
inc h
ld a, [hl]
inc h
ld h, [hl]
ld l, a
call Func_117a
pop af
ld [hLoadedROMBank], a
ld [$2000], a
pop hl
inc l
jr .asm_1147
.asm_116c
ld a, l
ld [$d7fc], a
ld hl, $d7fb
cp [hl]
ret nz
xor a
ld [$d7fa], a
ret
Func_117a: ; 0x117a
jp [hl]
INCBIN "baserom.gbc",$117b,$12a1 - $117b
Func_12a1: ; 0x12a1
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
ld a, [hl]
and $7
jr z, .asm_12e5
ld b, a
ld c, $0
.asm_12b5
push bc
ld a, $0
ld [$ff00+c], a
ld a, $30
ld [$ff00+c], a
ld b, $10
.asm_12be
ld e, $8
ld a, [hli]
ld d, a
.asm_12c2
bit 0, d
ld a, $10
jr nz, .asm_12ca
ld a, $20
.asm_12ca
ld [$ff00+c], a
ld a, $30
ld [$ff00+c], a
rr d
dec e
jr nz, .asm_12c2
dec b
jr nz, .asm_12be
ld a, $20
ld [$ff00+c], a
ld a, $30
ld [$ff00+c], a
pop bc
dec b
jr z, .asm_12e5
call Func_12ec
jr .asm_12b5
.asm_12e5
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
Func_12ec ; 0x12ec
ld de, $1b58
.asm_12ef
nop
nop
nop
dec de
ld a, d
or e
jr nz, .asm_12ef
ret
Func_12f8: ; 0x12f8
ld a, $e
ld hl, $4010 ; todo
call Func_12a1
call Func_12ec
ld a, [$ff00]
and $3
cp $3
jr nz, .asm_1346
ld a, $20
ld [$ff00], a
ld a, [$ff00]
ld a, [$ff00]
ld a, $30
ld [$ff00], a
ld a, $10
ld [$ff00], a
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
ld a, $30
ld [$ff00], a
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
ld a, [$ff00]
and $3
cp $3
jr nz, .asm_1346
ld a, $e
ld hl, $4000
call Func_12a1
call Func_12ec
and a
ret
.asm_1346
ld a, $e
ld hl, $4000
call Func_12a1
call Func_12ec
scf
ret
Func_1353: ; 0x1353
ld [$fffa], a
ld a, [hLoadedROMBank]
push af
ld a, [$fffa]
ld [hLoadedROMBank], a
ld [$2000], a
push af
push hl
ld a, $e4
ld [$ff47], a
ld de, $0010
add hl, de
ld de, vTiles1 ; tiles
call Func_65d
ld hl, vBGMap0 ; bgmap
ld de, $000c
ld a, $80
ld c, $d
.asm_1379
ld b, $14
.asm_137b
ld [hli], a
inc a
dec b
jr nz, .asm_137b
add hl, de
dec c
jr nz, .asm_1379
ld a, $81
ld [$ff40], a
ld bc, $0005
call Func_948
pop hl
pop af
call Func_12a1
ld bc, $0006
call Func_948
ld a, [$ffa3]
ld [$ff47], a
ld a, [$ff9e]
ld [$ff40], a
pop af
ld [hLoadedROMBank], a
ld [$2000], a
ret
Func_13a8: ; 0x13a8
ld a, [$fffb]
and a
ret z
ld bc, $0078
call Func_948
call Func_1489
ld a, $e
ld hl, $69e6
call Func_12a1
ld bc, $0004
call Func_948
ld a, $e
ld hl, $69f6
call Func_12a1
ld bc, $0004
call Func_948
ld a, $e
ld hl, $6a06
call Func_12a1
ld bc, $0004
call Func_948
ld a, $e
ld hl, $6a16
call Func_12a1
ld bc, $0004
call Func_948
ld a, $e
ld hl, $6a26
call Func_12a1
ld bc, $0004
call Func_948
ld a, $e
ld hl, $6a36
call Func_12a1
ld bc, $0004
call Func_948
ld a, $e
ld hl, $6a46
call Func_12a1
ld bc, $0004
call Func_948
ld a, $e
ld hl, $6a56
call Func_12a1
ld bc, $0004
call Func_948
ld bc, $1000
ld a, $e
ld hl, $4156 ; todo
call Func_1353
ld bc, $0004
call Func_948
ld bc, $1000
ld a, $e
ld hl, $5166 ; todo
call Func_1353
ld bc, $0004
call Func_948
ld bc, $0860
ld a, $e
ld hl, $6176 ; todo
call Func_1353
ld bc, $0004
call Func_948
ld bc, $00a0
ld a, $e
ld hl, $40a6 ; todo
call Func_1353
ld bc, $0004
call Func_948
ld bc, $005a
ld a, $e
ld hl, $4030
call Func_1353
ld bc, $0004
call Func_948
ld a, $e
ld hl, $4020
call Func_12a1
ld bc, $0004
call Func_948
ret
Func_1489: ; 0x1489
ld a, [$fffb]
and a
ret z
ld a, [$fffc]
and a
ret nz
ld a, $e
ld hl, $6a66 ; todo
call Func_12a1
ld bc, $0004
call Func_948
ld a, $ff
ld [$fffc], a
ret
Func_14a4: ; 0x14a4
ld a, [$fffb]
and a
ret z
ld bc, $0002
call Func_948
ld a, [$fffc]
and a
ret z
ld a, $e
ld hl, $6a76
call Func_12a1
ld bc, $0004
call Func_948
xor a
ld [$fffc], a
ret
INCBIN "baserom.gbc",$14c4,$167b - $14c4
Func_167b: ; 0x167b
ld a, [$d8ad]
cp $1
ret nz
ld a, [$d8c7]
cp $ff
ret z
ld a, [$d8db]
and a
ret nz
ld hl, $d8e0
inc [hl]
ld a, [hl]
cp $6
ret c
xor a
ld [hl], a
ld [$d8e2], a
call Func_18ac
ret
INCBIN "baserom.gbc",$169d,$16bf - $169d
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
INCBIN "baserom.gbc",$16e2,$16fd - $16e2
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
INCBIN "baserom.gbc",$1740,$18ac - $1740
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,$191d - $18ff
Func_191d: ; 0x191d
rrca
nop
nop
nop
rrca
nop
nop
nop
ld a, $1
ld d, $0
ld hl, $1901
ld bc, $0008
jp Func_18d4
INCBIN "baserom.gbc",$1932,$19ca - $1932
Func_19ca: ; 0x19ca
ld a, $5
ld d, $0
ld hl, Func_191d
ld bc, $0008
jp Func_18d4
INCBIN "baserom.gbc",$19d7,$19e5 - $19d7
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
INCBIN "baserom.gbc",$1a21,$1f24 - $1a21
LoadOAMData: ; 0x1f24
; This function loads OAM data, but it adds b and c to the x and y values for some reason.
; input: a = OAM data id (see OAMDataPointers)
push bc
push de
push hl
ld e, a
ld d, $0
sla e
rl d ; multiply de by 2
ld a, [hLoadedROMBank]
push af
ld a, Bank(OAMDataPointers)
ld [hLoadedROMBank], a
ld [$2000], a
ld hl, OAMDataPointers
add hl, de ; hl points to oam pointer in OAMDataPointers
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a ; de points to OAM data
ld a, [$d802]
ld l, a
ld h, (wOAMBuffer >> 8)
.loadOAMDataLoop
ld a, [de]
cp $80 ; OAM data list terminator
jr z, .doneReadingOAMData
add c
ld [hli], a
inc de
ld a, [de]
add b
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
jr .loadOAMDataLoop
.doneReadingOAMData
ld a, l
ld [$d802], a
pop af
ld [hLoadedROMBank], a
ld [$2000], a
pop hl
pop de
pop bc
ret
INCBIN "baserom.gbc",$1f68,$1ffc - $1f68
Func_1ffc: ; 0x1ffc
ld a, $b
ld [$d806], a
ld a, $4
ld [$d807], a
ld [$ff8a], a
ld a, $f
ld hl, $4000
call BankSwitch
ld a, $1
ld [$d85d], a
ld a, $37
ld [$d470], a
ld [$d471], a
ld [$d472], a
ld a, $1
ld [$d8f1], 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, [$d8f1]
call Func_532
nop
ld b, b
ld [bc], a
nop
ld e, l
ld b, c
ld [bc], a
nop
ld e, $42
ld [bc], a
nop
nop
ld b, b
inc bc
nop
ld d, e
ld e, b
inc bc
nop
nop
ld b, b
ld a, [bc]
nop
ld c, d
ld b, e
inc bc
nop
ld a, a
ld c, d
inc bc
nop
db $d3
ld d, [hl]
inc bc
nop
ld a, [hLoadedROMBank]
push af
ld a, $2
ld [hLoadedROMBank], a
ld [$2000], a
call $4d17 ; todo
jr c, .asm_2084
pop af
ld [hLoadedROMBank], a
ld [$2000], a
and a
ret
.asm_2084
pop af
ld [hLoadedROMBank], a
ld [$2000], a
scf
ret
INCBIN "baserom.gbc",$208c,$30db - $208c
Func_30db: ; 0x30db
ld a, $86
ld [$ffa6], a
ld a, $1
ld [$d5ca], a
ld [$d5cb], a
ret
Func_30e8: ; 0x30e8
ld a, $81
ld hl, $c600
ld b, $40
.asm_30ef
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
dec b
jr nz, .asm_30ef
xor a
ld [$d5cc], a
ld [$d5d4], a
ld [$d5dc], a
ld [$d5e4], a
ld [$d5e9], a
ld [$d5ee], a
ret
INCBIN "baserom.gbc",$310a,$32aa - $310a
Func_32aa: ; 0x32aa
ld a, $1
ld [hli], a
ld a, [de]
ld [hli], a
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
push af
inc de
ld a, [de]
ld [hli], a
inc de
pop af
ld l, a
ld h, $c5
.asm_32c5
ld a, [de]
ld [hli], a
inc de
and a
jr nz, .asm_32c5
ret
INCBIN "baserom.gbc",$32cc,$3579 - $32cc
Func_3579: ; 0x3579
ld hl, $d47a
xor a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ret
INCBIN "baserom.gbc",$3582,$4000 - $3582
SECTION "bank1", ROMX, BANK[$1]
OAMDataPointers: ; 0x4000
dw BallSpin0OAM
dw BallSpin1OAM
dw BallSpin2OAM
dw BallSpin3OAM
dw BallSpin4OAM
dw BallSpin5OAM
dw BallSpin6OAM
dw BallSpin7OAM
dw OAMData_8
dw OAMData_9
dw OAMData_a
dw OAMData_b
dw OAMData_c
dw OAMData_d
dw OAMData_e
dw OAMData_f
dw OAMData_10
dw OAMData_11
dw OAMData_12
dw OAMData_13
dw OAMData_14
dw OAMData_15
dw OAMData_16
dw OAMData_17
dw OAMData_18
dw OAMData_19
dw OAMData_1a
dw OAMData_1b
dw OAMData_1c
dw OAMData_1d
dw OAMData_1e
dw OAMData_1f
dw OAMData_20
dw OAMData_21
dw OAMData_22
dw OAMData_23
dw OAMData_24
dw OAMData_25
dw OAMData_26
dw OAMData_27
dw OAMData_28
dw OAMData_29
dw OAMData_2a
dw OAMData_2b
dw OAMData_2c
dw OAMData_2d
dw OAMData_2e
dw OAMData_2f
dw OAMData_30
dw OAMData_31
dw OAMData_32
dw OAMData_33
dw OAMData_34
dw OAMData_35
dw OAMData_36
dw OAMData_37
dw OAMData_38
dw OAMData_39
dw OAMData_3a
dw OAMData_3b
dw OAMData_3c
dw OAMData_3d
dw OAMData_3e
dw OAMData_3f
dw OAMData_40
dw OAMData_41
dw OAMData_42
dw OAMData_43
dw OAMData_44
dw OAMData_45
dw OAMData_46
dw OAMData_47
dw OAMData_48
dw OAMData_49
dw OAMData_4a
dw OAMData_4b
dw OAMData_4c
dw OAMData_4d
dw OAMData_4e
dw OAMData_4f
dw OAMData_50
dw OAMData_51
dw OAMData_52
dw OAMData_53
dw OAMData_54
dw OAMData_55
dw OAMData_56
dw OAMData_57
dw OAMData_58
dw OAMData_59
dw TitlescreenPikachuBlinkFrame1OAM
dw TitlescreenPikachuBlinkFrame2OAM
dw TitlescreenPikachuBlinkFrame3OAM
dw TitlescreenPokeball1OAM
dw TitlescreenPokeball2OAM
dw TitlescreenPokeball3OAM
dw TitlescreenPokeball4OAM
dw TitlescreenPokeball5OAM
dw OAMData_62
dw OAMData_63
dw OAMData_64
dw OAMData_65
dw OAMData_66
dw OAMData_67
dw OAMData_68
dw OAMData_69
dw OAMData_6a
dw OAMData_6b
dw OAMData_6c
dw OAMData_6d
dw OAMData_6e
dw OAMData_6f
dw OAMData_70
dw OAMData_71
dw OAMData_72
dw OAMData_73
dw OAMData_74
dw OAMData_75
dw OAMData_76
dw OAMData_77
dw OAMData_78
dw OAMData_79
dw OAMData_7a
dw OAMData_7b
dw OAMData_7c
dw OAMData_7d
dw OAMData_7e
dw OAMData_7f
dw OAMData_80
dw OAMData_81
dw OAMData_82
dw OAMData_83
dw OAMData_84
dw OAMData_85
dw OAMData_86
dw OAMData_87
dw OAMData_88
dw OAMData_89
dw OAMData_8a
dw OAMData_8b
dw OAMData_8c
dw OAMData_8d
dw OAMData_8e
dw OAMData_8f
dw OAMData_90
dw OAMData_91
dw OAMData_92
dw OAMData_93
dw OAMData_94
dw OAMData_95
dw OAMData_96
dw OAMData_97
dw OAMData_98
dw OAMData_99
dw OAMData_9a
dw OAMData_9b
dw OAMData_9c
dw OAMData_9d
dw FieldSelectRedStageBorderOAM
dw FieldSelectBlueStageBorderOAM
dw OAMData_a0
dw OAMData_a1
dw OAMData_a2
dw OAMData_a3
dw OAMData_a4
dw OAMData_a5
dw OAMData_a6
dw OAMData_a7
dw OAMData_a8
dw OAMData_a9
dw OAMData_aa
dw OAMData_ab
dw OAMData_ac
dw OAMData_ad
dw OAMData_ae
dw OAMData_af
dw OAMData_b0
dw Timer0DigitOAM
dw Timer1DigitOAM
dw Timer2DigitOAM
dw Timer3DigitOAM
dw Timer4DigitOAM
dw Timer5DigitOAM
dw Timer6DigitOAM
dw Timer7DigitOAM
dw Timer8DigitOAM
dw Timer9DigitOAM
dw TimerColonOAM
dw OAMData_bc
dw OAMData_bd
dw OAMData_be
dw OAMData_bf
dw OAMData_c0
dw OAMData_c1
dw OAMData_c2
dw OAMData_c3
dw OAMData_c4
dw OAMData_c5
dw OAMData_c6
dw OAMData_c7
dw OAMData_c8
dw OAMData_c9
dw OAMData_ca
dw OAMData_cb
dw OAMData_cc
dw OAMData_cd
dw OAMData_ce
dw OAMData_cf
dw OAMData_d0
dw OAMData_d1
dw OAMData_d2
dw OAMData_d3
dw OAMData_d4
dw OAMData_d5
dw OAMData_d6
dw OAMData_d7
dw OAMData_d8
dw OAMData_d9
dw OAMData_da
dw OAMData_db
dw OAMData_dc
dw OAMData_dd
dw OAMData_de
dw OAMData_df
dw OAMData_e0
dw OAMData_e1
dw OAMData_e2
dw OAMData_e3
dw OAMData_e4
dw OAMData_e5
dw OAMData_e6
dw OAMData_e7
dw OAMData_e8
dw OAMData_e9
dw OAMData_ea
dw OAMData_eb
dw OAMData_ec
dw OAMData_ed
dw OAMData_ee
dw OAMData_ef
dw OAMData_f0
dw OAMData_f1
dw OAMData_f2
dw OAMData_f3
dw OAMData_f4
dw OAMData_f5
dw OAMData_f6
dw OAMData_f7
dw OAMData_f8
BallSpin0OAM: ; 0x41f2
db $08, $08, $42, $00
db $08, $00, $40, $00
db $80 ; terminator
BallSpin1OAM: ; 0x41fb
db $08, $08, $46, $00
db $08, $00, $44, $00
db $80 ; terminator
BallSpin2OAM: ; 0x4204
db $08, $08, $4a, $00
db $08, $00, $48, $00
db $80 ; terminator
BallSpin3OAM: ; 0x420d
db $08, $08, $4e, $00
db $08, $00, $4c, $00
db $80 ; terminator
BallSpin4OAM: ; 0x4216
db $08, $08, $52, $00
db $08, $00, $50, $00
db $80 ; terminator
BallSpin5OAM: ; 0x421f
db $08, $08, $56, $00
db $08, $00, $54, $00
db $80 ; terminator
BallSpin6OAM: ; 0x4228
db $08, $08, $5a, $00
db $08, $00, $58, $00
db $80 ; terminator
BallSpin7OAM: ; 0x4231
db $08, $08, $5e, $00
db $08, $00, $5c, $00
db $80 ; terminator
OAMData_8: ; 0x423a
db $0c, $05, $64, $02
db $0a, $fd, $62, $02
db $14, $f5, $60, $02
db $80 ; terminator
OAMData_9: ; 0x4247
db $0c, $05, $6a, $02
db $04, $fd, $68, $02
db $0c, $f5, $66, $02
db $80 ; terminator
OAMData_a: ; 0x4254
db $0a, $05, $70, $02
db $03, $fd, $6e, $02
db $fd, $f5, $6c, $02
db $80 ; terminator
OAMData_b: ; 0x4261
db $0c, $03, $64, $22
db $0a, $0b, $62, $22
db $14, $13, $60, $22
db $80 ; terminator
OAMData_c: ; 0x426e
db $0c, $03, $6a, $22
db $04, $0b, $68, $22
db $0c, $13, $66, $22
db $80 ; terminator
OAMData_d: ; 0x427b
db $0a, $03, $70, $22
db $03, $0b, $6e, $22
db $fd, $13, $6c, $22
db $80 ; terminator
OAMData_e: ; 0x4288
db $00, $09, $74, $04
db $00, $01, $72, $04
db $80 ; terminator
OAMData_f: ; 0x4291
db $00, $01, $76, $04
db $00, $09, $78, $04
db $80 ; terminator
OAMData_10: ; 0x429a
db $00, $09, $7c, $04
db $00, $01, $7a, $04
db $80 ; terminator
OAMData_11: ; 0x42a3
db $f5, $01, $3d, $51
db $f1, $06, $3e, $31
db $00, $09, $7c, $04
db $00, $01, $7a, $04
db $80 ; terminator
OAMData_12: ; 0x42b4
db $f1, $07, $3c, $11
db $f1, $02, $3e, $11
db $00, $09, $7c, $04
db $00, $01, $7a, $04
db $80 ; terminator
OAMData_13: ; 0x42c5
db $e9, $06, $3e, $31
db $e9, $01, $3c, $31
db $f1, $00, $3e, $31
db $f1, $08, $3c, $31
db $00, $09, $7c, $04
db $00, $01, $7a, $04
db $80 ; terminator
OAMData_14: ; 0x42de
db $e8, $01, $3e, $11
db $e8, $06, $3c, $11
db $f3, $01, $3c, $31
db $f3, $05, $3e, $31
db $00, $09, $7c, $04
db $00, $01, $7a, $04
db $80 ; terminator
OAMData_15: ; 0x42f7
db $e5, $09, $3e, $11
db $f1, $07, $3c, $11
db $e9, $02, $3f, $51
db $f2, $01, $3c, $31
db $00, $09, $7c, $04
db $00, $01, $7a, $04
db $80 ; terminator
OAMData_16: ; 0x4310
db $e8, $01, $3d, $51
db $f5, $00, $3f, $71
db $f2, $06, $3e, $31
db $e6, $07, $3c, $11
db $00, $09, $7c, $04
db $00, $01, $7a, $04
db $80 ; terminator
OAMData_17: ; 0x4329
db $0c, $05, $64, $11
db $0a, $fd, $62, $11
db $14, $f5, $60, $11
db $80 ; terminator
OAMData_18: ; 0x4336
db $0c, $03, $64, $31
db $0a, $0b, $62, $31
db $14, $13, $60, $31
db $80 ; terminator
OAMData_19: ; 0x4343
db $00, $08, $a2, $02
db $00, $00, $a0, $02
db $80 ; terminator
OAMData_1a: ; 0x434c
db $00, $10, $9e, $02
db $00, $08, $9c, $02
db $00, $00, $9a, $02
db $00, $f8, $98, $02
db $f0, $10, $96, $02
db $f0, $08, $94, $02
db $f0, $00, $92, $02
db $f0, $f8, $90, $02
db $80 ; terminator
OAMData_1b: ; 0x436d
db $01, $0f, $a7, $62
db $ff, $f7, $7f, $62
db $e7, $07, $7e, $02
db $e7, $fb, $a6, $02
db $f3, $f4, $a5, $42
db $e7, $12, $a6, $22
db $fd, $fd, $a7, $42
db $ef, $fa, $a6, $02
db $ed, $0c, $a6, $22
db $ef, $13, $a4, $22
db $e6, $02, $a5, $42
db $02, $05, $a7, $62
db $fc, $0b, $a7, $62
db $f7, $f9, $a4, $02
db $fb, $10, $a5, $62
db $f5, $09, $42, $00
db $f5, $01, $40, $00
db $80 ; terminator
OAMData_1c: ; 0x43b2
db $02, $11, $7f, $42
db $e6, $f9, $7e, $22
db $e6, $0f, $7e, $02
db $f5, $f0, $a5, $42
db $05, $05, $a7, $62
db $f0, $09, $42, $00
db $f0, $01, $40, $00
db $f5, $17, $a5, $62
db $01, $f7, $7f, $62
db $80 ; terminator
OAMData_1d: ; 0x43d7
db $ee, $09, $42, $00
db $ee, $01, $40, $00
db $80 ; terminator
OAMData_1e: ; 0x43e0
db $ed, $09, $42, $00
db $ed, $01, $40, $00
db $80 ; terminator
OAMData_1f: ; 0x43e9
db $ee, $09, $42, $00
db $ee, $01, $40, $00
db $80 ; terminator
OAMData_20: ; 0x43f2
db $f0, $09, $42, $00
db $f0, $01, $40, $00
db $80 ; terminator
OAMData_21: ; 0x43fb
db $f5, $09, $42, $00
db $f5, $01, $40, $00
db $80 ; terminator
OAMData_22: ; 0x4404
db $fb, $09, $42, $00
db $fb, $01, $40, $00
db $80 ; terminator
OAMData_23: ; 0x440d
db $02, $09, $42, $00
db $02, $01, $40, $00
db $80 ; terminator
OAMData_24: ; 0x4416
db $01, $09, $42, $00
db $01, $01, $40, $00
db $80 ; terminator
OAMData_25: ; 0x441f
db $02, $0a, $3a, $00
db $02, $02, $38, $00
db $80 ; terminator
OAMData_26: ; 0x4428
db $fb, $0a, $9e, $15
db $fb, $02, $9c, $15
db $ff, $15, $9a, $13
db $ff, $0d, $98, $13
db $ff, $05, $96, $13
db $ff, $fd, $94, $13
db $ef, $08, $92, $13
db $ef, $00, $90, $13
db $80 ; terminator
OAMData_27: ; 0x4449
db $fc, $0a, $1c, $15
db $fc, $02, $1a, $15
db $fe, $15, $9a, $13
db $ff, $0d, $a8, $13
db $ff, $05, $a6, $13
db $ff, $fd, $a4, $13
db $ef, $08, $a2, $13
db $ef, $00, $a0, $13
db $80 ; terminator
OAMData_28: ; 0x446a
db $ff, $08, $2e, $15
db $ff, $00, $2c, $15
db $ff, $10, $2a, $13
db $ff, $08, $28, $13
db $ff, $00, $26, $13
db $ff, $f8, $24, $13
db $ef, $10, $22, $13
db $ef, $08, $20, $13
db $ef, $00, $1e, $13
db $80 ; terminator
OAMData_29: ; 0x448f
db $ef, $03, $92, $15
db $f3, $0b, $94, $15
db $f3, $fb, $90, $15
db $0d, $09, $9e, $13
db $fd, $09, $9c, $13
db $0d, $01, $9a, $13
db $fd, $01, $98, $13
db $00, $11, $a0, $13
db $00, $f9, $96, $13
db $80 ; terminator
OAMData_2a: ; 0x44b4
db $f0, $04, $a4, $15
db $f3, $0c, $a6, $15
db $f3, $fc, $a2, $15
db $00, $12, $1e, $13
db $00, $0a, $1c, $13
db $00, $02, $1a, $13
db $00, $fa, $a8, $13
db $80 ; terminator
OAMData_2b: ; 0x44d1
db $f8, $10, $26, $15
db $f3, $08, $24, $15
db $f3, $00, $22, $15
db $f8, $f8, $20, $15
db $00, $10, $2e, $13
db $00, $08, $2c, $13
db $00, $00, $2a, $13
db $00, $f8, $28, $13
db $80 ; terminator
OAMData_2c: ; 0x44f2
db $00, $10, $9e, $13
db $00, $08, $9c, $13
db $00, $00, $9a, $13
db $00, $f8, $98, $13
db $f0, $10, $96, $13
db $f0, $08, $94, $13
db $f0, $00, $92, $13
db $f0, $f8, $90, $13
db $80 ; terminator
OAMData_2d: ; 0x4513
db $00, $10, $1e, $13
db $00, $08, $1c, $13
db $00, $00, $1a, $13
db $00, $f8, $a8, $13
db $f0, $10, $a6, $13
db $f0, $08, $a4, $13
db $f0, $00, $a2, $13
db $f0, $f8, $a0, $13
db $80 ; terminator
OAMData_2e: ; 0x4534
db $00, $10, $2e, $13
db $00, $08, $2c, $13
db $00, $00, $2a, $13
db $00, $f8, $28, $13
db $f0, $10, $26, $13
db $f0, $08, $24, $13
db $f0, $00, $22, $13
db $f0, $f8, $20, $13
db $80 ; terminator
OAMData_2f: ; 0x4555
db $00, $10, $9e, $13
db $00, $08, $9c, $13
db $00, $00, $9a, $13
db $00, $f8, $98, $13
db $f0, $10, $96, $13
db $f0, $08, $94, $13
db $f0, $00, $92, $13
db $f0, $f8, $90, $13
db $80 ; terminator
OAMData_30: ; 0x4576
db $00, $10, $1e, $13
db $00, $08, $1c, $13
db $00, $00, $1a, $13
db $00, $f8, $a8, $13
db $f0, $10, $a6, $13
db $f0, $08, $a4, $13
db $f0, $00, $a2, $13
db $f0, $f8, $a0, $13
db $80 ; terminator
OAMData_31: ; 0x4597
db $01, $10, $2e, $13
db $01, $08, $2c, $13
db $01, $00, $2a, $13
db $01, $f8, $28, $13
db $f1, $10, $26, $13
db $f1, $08, $24, $13
db $f1, $00, $22, $13
db $f1, $f8, $20, $13
db $80 ; terminator
OAMData_32: ; 0x45b8
db $10, $08, $30, $06
db $80 ; terminator
OAMData_33: ; 0x45bd
db $10, $08, $30, $26
db $80 ; terminator
OAMData_34: ; 0x45c2
db $10, $08, $32, $06
db $80 ; terminator
OAMData_35: ; 0x45c7
db $10, $08, $32, $26
db $80 ; terminator
OAMData_36: ; 0x45cc
db $10, $08, $34, $06
db $80 ; terminator
OAMData_37: ; 0x45d1
db $10, $08, $34, $26
db $80 ; terminator
OAMData_38: ; 0x45d6
db $10, $08, $36, $06
db $80 ; terminator
OAMData_39: ; 0x45db
db $08, $08, $37, $46
db $80 ; terminator
OAMData_3a: ; 0x45e0
db $10, $08, $90, $06
db $80 ; terminator
OAMData_3b: ; 0x45e5
db $10, $08, $92, $06
db $80 ; terminator
OAMData_3c: ; 0x45ea
db $10, $08, $94, $06
db $80 ; terminator
OAMData_3d: ; 0x45ef
db $10, $08, $96, $17
db $80 ; terminator
OAMData_3e: ; 0x45f4
db $10, $08, $98, $17
db $80 ; terminator
OAMData_3f: ; 0x45f9
db $10, $08, $9a, $06
db $80 ; terminator
OAMData_40: ; 0x45fe
db $10, $08, $9c, $06
db $80 ; terminator
OAMData_41: ; 0x4603
db $10, $08, $20, $06
db $80 ; terminator
OAMData_42: ; 0x4608
db $10, $08, $22, $06
db $80 ; terminator
OAMData_43: ; 0x460d
db $10, $08, $24, $06
db $80 ; terminator
OAMData_44: ; 0x4612
db $10, $08, $26, $17
db $80 ; terminator
OAMData_45: ; 0x4617
db $10, $08, $28, $17
db $80 ; terminator
OAMData_46: ; 0x461c
db $10, $08, $2a, $06
db $80 ; terminator
OAMData_47: ; 0x4621
db $10, $08, $2c, $06
db $80 ; terminator
OAMData_48: ; 0x4626
db $10, $08, $60, $06
db $80 ; terminator
OAMData_49: ; 0x462b
db $10, $08, $62, $06
db $80 ; terminator
OAMData_4a: ; 0x4630
db $10, $08, $64, $06
db $80 ; terminator
OAMData_4b: ; 0x4635
db $10, $08, $66, $17
db $80 ; terminator
OAMData_4c: ; 0x463a
db $10, $08, $68, $17
db $80 ; terminator
OAMData_4d: ; 0x463f
db $10, $08, $6a, $06
db $80 ; terminator
OAMData_4e: ; 0x4644
db $10, $08, $6c, $06
db $80 ; terminator
OAMData_4f: ; 0x4649
db $1f, $19, $20, $37
db $1f, $21, $1e, $37
db $0f, $19, $1c, $37
db $0f, $21, $1a, $37
db $1f, $10, $20, $17
db $1f, $08, $1e, $17
db $0f, $10, $1c, $17
db $0f, $08, $1a, $17
db $80 ; terminator
OAMData_50: ; 0x466a
db $1f, $19, $28, $37
db $1f, $21, $26, $37
db $0f, $19, $24, $37
db $0f, $21, $22, $37
db $1f, $10, $28, $17
db $1f, $08, $26, $17
db $0f, $10, $24, $17
db $0f, $08, $22, $17
db $80 ; terminator
OAMData_51: ; 0x468b
db $1f, $19, $38, $37
db $1f, $10, $38, $17
db $1f, $21, $2e, $37
db $0f, $19, $2c, $37
db $0f, $21, $2a, $37
db $1f, $08, $2e, $17
db $0f, $10, $2c, $17
db $0f, $08, $2a, $17
db $80 ; terminator
OAMData_52: ; 0x46ac
db $08, $f8, $60, $00
db $80 ; terminator
OAMData_53: ; 0x46b1
db $08, $08, $60, $00
db $08, $00, $60, $00
db $08, $f8, $60, $00
db $80 ; terminator
OAMData_54: ; 0x46be
db $08, $20, $60, $00
db $08, $18, $60, $00
db $08, $10, $60, $00
db $08, $08, $60, $00
db $08, $00, $60, $00
db $08, $f8, $60, $00
db $80 ; terminator
OAMData_55: ; 0x46d7
db $10, $20, $60, $00
db $10, $18, $60, $00
db $10, $10, $60, $00
db $10, $08, $60, $00
db $10, $00, $60, $00
db $10, $f8, $60, $00
db $08, $20, $60, $00
db $08, $18, $60, $00
db $08, $10, $60, $00
db $08, $08, $60, $00
db $08, $00, $60, $00
db $08, $f8, $60, $00
db $80 ; terminator
OAMData_56: ; 0x4708
db $10, $20, $60, $40
db $10, $18, $60, $40
db $10, $10, $60, $40
db $10, $08, $60, $40
db $10, $00, $60, $40
db $18, $20, $60, $40
db $18, $18, $60, $40
db $18, $10, $60, $40
db $18, $08, $60, $40
db $18, $00, $60, $40
db $18, $f8, $60, $40
db $10, $f8, $60, $40
db $08, $f8, $60, $40
db $08, $20, $59, $00
db $08, $18, $58, $00
db $08, $10, $57, $00
db $08, $08, $56, $00
db $08, $00, $55, $00
db $80 ; terminator
OAMData_57: ; 0x4751
db $18, $20, $60, $40
db $18, $18, $60, $40
db $18, $10, $60, $40
db $18, $08, $60, $40
db $18, $00, $60, $40
db $18, $f8, $60, $40
db $10, $f8, $60, $40
db $08, $f8, $60, $40
db $10, $20, $5f, $00
db $10, $18, $5e, $00
db $10, $10, $5d, $00
db $10, $08, $5c, $00
db $10, $00, $5b, $00
db $08, $20, $59, $00
db $08, $18, $58, $00
db $08, $10, $57, $00
db $08, $08, $56, $00
db $08, $00, $55, $00
db $80 ; terminator
OAMData_58: ; 0x479a
db $18, $f8, $60, $40
db $10, $f8, $5a, $00
db $08, $f8, $54, $00
db $18, $20, $65, $00
db $18, $18, $64, $00
db $18, $10, $63, $00
db $18, $08, $62, $00
db $18, $00, $61, $00
db $10, $20, $5f, $00
db $10, $18, $5e, $00
db $10, $10, $5d, $00
db $10, $08, $5c, $00
db $10, $00, $5b, $00
db $08, $20, $59, $00
db $08, $18, $58, $00
db $08, $10, $57, $00
db $08, $08, $56, $00
db $08, $00, $55, $00
db $80 ; terminator
OAMData_59: ; 0x47e3
db $08, $f8, $60, $40
db $18, $f8, $67, $00
db $10, $f8, $66, $00
db $18, $20, $65, $00
db $18, $18, $64, $00
db $18, $10, $63, $00
db $18, $08, $62, $00
db $18, $00, $61, $00
db $10, $20, $5f, $00
db $10, $18, $5e, $00
db $10, $10, $5d, $00
db $10, $08, $5c, $00
db $10, $00, $5b, $00
db $08, $20, $59, $00
db $08, $18, $58, $00
db $08, $10, $57, $00
db $08, $08, $56, $00
db $08, $00, $55, $00
db $80 ; terminator
TitlescreenPikachuBlinkFrame1OAM: ; 0x482c
db $10, $28, $3f, $00
db $10, $20, $3e, $00
db $10, $18, $3d, $00
db $10, $10, $3c, $00
db $10, $08, $3b, $00
db $80 ; terminator
TitlescreenPikachuBlinkFrame2OAM: ; 0x4841
db $18, $09, $44, $00
db $10, $10, $41, $00
db $10, $08, $40, $00
db $80 ; terminator
TitlescreenPikachuBlinkFrame3OAM: ; 0x484e
db $18, $09, $45, $00
db $10, $10, $43, $00
db $10, $08, $42, $00
db $80 ; terminator
; These next 5 OAM entries are for the individual frames of the
; bouncing pokeball on the titlescreen.
TitlescreenPokeball1OAM: ; 0x485b
db $14, $00, $4c, $02
db $0c, $00, $46, $31
db $14, $f8, $47, $02
db $0c, $f8, $46, $11
db $80 ; terminator
TitlescreenPokeball2OAM: ; 0x486c
db $15, $00, $4d, $02
db $0d, $00, $48, $31
db $15, $f8, $49, $02
db $0d, $f8, $48, $11
db $80 ; terminator
TitlescreenPokeball3OAM: ; 0x487d
db $13, $00, $4c, $02
db $0b, $00, $46, $31
db $13, $f8, $47, $02
db $0b, $f8, $46, $11
db $80 ; terminator
TitlescreenPokeball4OAM: ; 0x488e
db $11, $00, $4e, $02
db $09, $00, $4a, $31
db $11, $f8, $4b, $02
db $09, $f8, $4a, $11
db $80 ; terminator
TitlescreenPokeball5OAM: ; 0x489f
db $11, $00, $4c, $02
db $09, $00, $46, $31
db $11, $f8, $47, $02
db $09, $f8, $46, $11
db $80 ; terminator
OAMData_62: ; 0x48b0
db $10, $20, $53, $11
db $10, $18, $52, $11
db $08, $20, $51, $11
db $18, $0c, $50, $11
db $10, $0c, $4f, $11
db $80 ; terminator
OAMData_63: ; 0x48c5
db $10, $08, $70, $11
db $80 ; terminator
OAMData_64: ; 0x48ca
db $10, $10, $71, $31
db $10, $08, $71, $11
db $80 ; terminator
OAMData_65: ; 0x48d3
db $10, $18, $74, $17
db $10, $10, $73, $00
db $10, $08, $72, $17
db $80 ; terminator
OAMData_66: ; 0x48e0
db $10, $18, $77, $17
db $10, $10, $76, $00
db $10, $08, $75, $17
db $80 ; terminator
OAMData_67: ; 0x48ed
db $10, $08, $78, $00
db $80 ; terminator
OAMData_68: ; 0x48f2
db $10, $08, $79, $00
db $80 ; terminator
OAMData_69: ; 0x48f7
db $10, $08, $79, $11
db $80 ; terminator
OAMData_6a: ; 0x48fc
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
OAMData_6c: ; 0x491a
db $10, $08, $53, $11
db $80 ; terminator
OAMData_6d: ; 0x491f
db $10, $08, $54, $11
db $80 ; terminator
OAMData_6e: ; 0x4924
db $10, $08, $55, $11
db $80 ; terminator
OAMData_6f: ; 0x4929
db $10, $08, $56, $11
db $80 ; terminator
OAMData_70: ; 0x492e
db $10, $08, $57, $11
db $80 ; terminator
OAMData_71: ; 0x4933
db $10, $08, $58, $11
db $80 ; terminator
OAMData_72: ; 0x4938
db $10, $08, $59, $11
db $80 ; terminator
OAMData_73: ; 0x493d
db $10, $08, $5a, $11
db $80 ; terminator
OAMData_74: ; 0x4942
db $10, $08, $5b, $11
db $80 ; terminator
OAMData_75: ; 0x4947
db $10, $08, $5c, $11
db $80 ; terminator
OAMData_76: ; 0x494c
db $10, $08, $5e, $11
db $80 ; terminator
OAMData_77: ; 0x4951
db $11, $07, $34, $00
db $80 ; terminator
OAMData_78: ; 0x4956
db $0f, $07, $36, $00
db $80 ; terminator
OAMData_79: ; 0x495b
db $0f, $07, $38, $00
db $80 ; terminator
OAMData_7a: ; 0x4960
db $f4, $18, $26, $13
db $f4, $10, $24, $13
db $f4, $08, $22, $13
db $10, $00, $3a, $02
db $09, $10, $3e, $00
db $08, $08, $3c, $00
db $80 ; terminator
OAMData_7b: ; 0x4979
db $10, $28, $78, $00
db $10, $08, $5c, $02
db $10, $10, $5e, $02
db $10, $18, $60, $02
db $10, $20, $62, $02
db $20, $08, $64, $02
db $20, $10, $66, $02
db $20, $18, $68, $02
db $20, $20, $6a, $02
db $20, $28, $6c, $02
db $30, $08, $6e, $02
db $30, $10, $70, $02
db $30, $18, $72, $02
db $30, $20, $74, $02
db $30, $28, $76, $02
db $80 ; terminator
OAMData_7c: ; 0x49b6
db $11, $29, $7a, $02
db $11, $09, $40, $02
db $11, $11, $42, $02
db $11, $19, $44, $02
db $11, $21, $46, $02
db $21, $09, $48, $02
db $21, $11, $4a, $02
db $21, $19, $4c, $02
db $21, $21, $4e, $02
db $21, $29, $50, $02
db $31, $09, $52, $02
db $31, $11, $54, $02
db $31, $19, $56, $02
db $31, $21, $58, $02
db $31, $29, $5a, $02
db $80 ; terminator
OAMData_7d: ; 0x49f3
db $0c, $10, $2a, $04
db $0c, $08, $28, $04
db $80 ; terminator
OAMData_7e: ; 0x49fc
db $0d, $10, $2e, $04
db $0d, $08, $2c, $04
db $80 ; terminator
OAMData_7f: ; 0x4a05
db $0b, $10, $2a, $04
db $0b, $08, $28, $04
db $80 ; terminator
OAMData_80: ; 0x4a0e
db $09, $10, $32, $04
db $09, $08, $30, $04
db $80 ; terminator
OAMData_81: ; 0x4a17
db $09, $10, $2a, $04
db $09, $08, $28, $04
db $80 ; terminator
OAMData_82: ; 0x4a20
db $10, $08, $7c, $00
db $80 ; terminator
OAMData_83: ; 0x4a25
db $10, $08, $7c, $20
db $80 ; terminator
OAMData_84: ; 0x4a2a
db $10, $08, $7e, $11
db $80 ; terminator
OAMData_85: ; 0x4a2f
db $10, $08, $20, $13
db $80 ; terminator
OAMData_86: ; 0x4a34
db $18, $08, $7f, $00
db $10, $08, $7e, $00
db $80 ; terminator
OAMData_87: ; 0x4a3d
db $20, $25, $15, $02
db $18, $25, $0f, $02
db $10, $25, $0a, $02
db $18, $1d, $0e, $02
db $18, $15, $0d, $02
db $18, $0d, $0c, $02
db $18, $05, $0b, $02
db $10, $1d, $09, $02
db $10, $15, $08, $02
db $10, $0d, $07, $02
db $10, $05, $06, $02
db $20, $1d, $14, $02
db $20, $15, $13, $02
db $20, $0d, $12, $02
db $20, $05, $11, $02
db $80 ; terminator
OAMData_88: ; 0x4a7a
db $20, $f5, $10, $02
db $18, $f5, $02, $02
db $10, $f5, $01, $02
db $80 ; terminator
OAMData_89: ; 0x4a87
db $10, $f5, $10, $42
db $18, $f5, $02, $42
db $20, $f5, $01, $42
db $80 ; terminator
OAMData_8a: ; 0x4a94
db $20, $fd, $00, $02
db $18, $fd, $00, $02
db $10, $fd, $00, $02
db $80 ; terminator
OAMData_8b: ; 0x4aa1
db $20, $fd, $00, $02
db $18, $fd, $04, $02
db $10, $fd, $03, $02
db $80 ; terminator
OAMData_8c: ; 0x4aae
db $10, $fd, $00, $02
db $18, $fd, $04, $42
db $20, $fd, $03, $42
db $80 ; terminator
OAMData_8d: ; 0x4abb
db $18, $fd, $05, $02
db $20, $fd, $03, $42
db $10, $fd, $03, $02
db $80 ; terminator
OAMData_8e: ; 0x4ac8
db $0e, $2f, $1f, $02
db $0e, $27, $1e, $02
db $16, $2f, $29, $02
db $16, $27, $28, $02
db $16, $1f, $27, $02
db $16, $17, $26, $02
db $16, $0f, $25, $02
db $16, $07, $24, $02
db $16, $ff, $23, $02
db $16, $f7, $22, $02
db $16, $ef, $21, $02
db $16, $e7, $20, $02
db $0e, $1f, $1d, $02
db $0e, $17, $1c, $02
db $0e, $0f, $1b, $02
db $0e, $07, $1a, $02
db $0e, $ff, $19, $02
db $0e, $f7, $18, $02
db $0e, $ef, $17, $02
db $0e, $e7, $16, $02
db $80 ; terminator
OAMData_8f: ; 0x4b19
db $0e, $2f, $1f, $02
db $0e, $27, $1e, $02
db $16, $2f, $3b, $02
db $16, $27, $3a, $02
db $16, $1f, $39, $02
db $16, $17, $38, $02
db $16, $0f, $37, $02
db $16, $07, $36, $02
db $16, $ff, $35, $02
db $16, $f7, $34, $02
db $16, $ef, $33, $02
db $16, $e7, $32, $02
db $0e, $1f, $31, $02
db $0e, $17, $30, $02
db $0e, $0f, $2f, $02
db $0e, $07, $2e, $02
db $0e, $ff, $2d, $02
db $0e, $f7, $2c, $02
db $0e, $ef, $2b, $02
db $0e, $e7, $2a, $02
db $80 ; terminator
OAMData_90: ; 0x4b6a
db $1d, $14, $48, $02
db $1d, $0c, $47, $02
db $15, $1c, $45, $02
db $15, $14, $44, $02
db $15, $0c, $43, $02
db $15, $04, $42, $02
db $15, $fc, $41, $02
db $1d, $1c, $00, $02
db $1d, $fc, $00, $02
db $25, $1c, $4c, $22
db $25, $14, $4e, $02
db $25, $0c, $4e, $02
db $25, $04, $4d, $02
db $25, $fc, $4c, $02
db $1d, $04, $46, $02
db $0d, $1c, $40, $02
db $0d, $14, $3f, $02
db $0d, $0c, $3e, $02
db $0d, $04, $3d, $02
db $0d, $fc, $3c, $02
db $80 ; terminator
OAMData_91: ; 0x4bbb
db $1d, $14, $49, $02
db $1d, $0c, $47, $02
db $15, $1c, $45, $02
db $15, $14, $44, $02
db $15, $0c, $43, $02
db $15, $04, $42, $02
db $15, $fc, $41, $02
db $1d, $1c, $00, $02
db $1d, $fc, $00, $02
db $25, $1c, $4c, $22
db $25, $14, $4e, $02
db $25, $0c, $4e, $02
db $25, $04, $4d, $02
db $25, $fc, $4c, $02
db $1d, $04, $46, $02
db $0d, $1c, $40, $02
db $0d, $14, $3f, $02
db $0d, $0c, $3e, $02
db $0d, $04, $3d, $02
db $0d, $fc, $3c, $02
db $80 ; terminator
OAMData_92: ; 0x4c0c
db $1d, $14, $4a, $02
db $1d, $0c, $47, $02
db $15, $1c, $45, $02
db $15, $14, $44, $02
db $15, $0c, $43, $02
db $15, $04, $42, $02
db $15, $fc, $41, $02
db $1d, $1c, $00, $02
db $1d, $fc, $00, $02
db $25, $1c, $4c, $22
db $25, $14, $4e, $02
db $25, $0c, $4e, $02
db $25, $04, $4d, $02
db $25, $fc, $4c, $02
db $1d, $04, $46, $02
db $0d, $1c, $40, $02
db $0d, $14, $3f, $02
db $0d, $0c, $3e, $02
db $0d, $04, $3d, $02
db $0d, $fc, $3c, $02
db $80 ; terminator
OAMData_93: ; 0x4c5d
db $1d, $14, $4b, $02
db $1d, $0c, $47, $02
db $15, $1c, $45, $02
db $15, $14, $44, $02
db $15, $0c, $43, $02
db $15, $04, $42, $02
db $15, $fc, $41, $02
db $1d, $1c, $00, $02
db $1d, $fc, $00, $02
db $25, $1c, $4c, $22
db $25, $14, $4e, $02
db $25, $0c, $4e, $02
db $25, $04, $4d, $02
db $25, $fc, $4c, $02
db $1d, $04, $46, $02
db $0d, $1c, $40, $02
db $0d, $14, $3f, $02
db $0d, $0c, $3e, $02
db $0d, $04, $3d, $02
db $0d, $fc, $3c, $02
db $80 ; terminator
OAMData_94: ; 0x4cae
db $28, $eb, $10, $02
db $20, $2b, $00, $02
db $20, $eb, $00, $02
db $28, $33, $58, $42
db $20, $33, $62, $02
db $18, $33, $62, $02
db $18, $2b, $61, $02
db $10, $33, $58, $02
db $10, $2b, $57, $02
db $20, $23, $69, $02
db $20, $1b, $68, $02
db $20, $13, $67, $02
db $20, $0b, $66, $02
db $20, $03, $65, $02
db $20, $fb, $64, $02
db $20, $f3, $63, $02
db $18, $23, $60, $02
db $18, $1b, $5f, $02
db $18, $13, $5e, $02
db $18, $0b, $5d, $02
db $18, $03, $5c, $02
db $18, $fb, $5b, $02
db $18, $f3, $5a, $02
db $18, $eb, $59, $02
db $10, $23, $56, $02
db $10, $1b, $55, $02
db $10, $13, $54, $02
db $10, $0b, $53, $02
db $10, $03, $52, $02
db $10, $fb, $51, $02
db $10, $f3, $50, $02
db $10, $eb, $4f, $02
db $28, $2b, $71, $02
db $28, $23, $70, $02
db $28, $1b, $6f, $02
db $28, $13, $6e, $02
db $28, $0b, $6d, $02
db $28, $03, $6c, $02
db $28, $fb, $6b, $02
db $28, $f3, $6a, $02
db $80 ; terminator
OAMData_95: ; 0x4d4f
db $18, $18, $7d, $11
db $18, $10, $7c, $11
db $18, $08, $7b, $11
db $10, $10, $7a, $11
db $80 ; terminator
OAMData_96: ; 0x4d60
db $18, $08, $7d, $31
db $18, $10, $7c, $31
db $18, $18, $7b, $31
db $10, $10, $7a, $31
db $80 ; terminator
OAMData_97: ; 0x4d71
db $16, $30, $8b, $02
db $16, $28, $8a, $02
db $16, $20, $89, $02
db $16, $18, $88, $02
db $16, $10, $87, $02
db $16, $08, $86, $02
db $16, $00, $85, $02
db $16, $f8, $84, $02
db $16, $f0, $83, $02
db $16, $e8, $82, $02
db $0e, $30, $81, $02
db $0e, $28, $80, $02
db $0e, $20, $79, $02
db $0e, $18, $78, $02
db $0e, $10, $77, $02
db $0e, $08, $76, $02
db $0e, $00, $75, $02
db $0e, $f8, $74, $02
db $0e, $f0, $73, $02
db $0e, $e8, $72, $02
db $80 ; terminator
OAMData_98: ; 0x4dc2
db $18, $10, $8f, $04
db $18, $08, $8e, $04
db $10, $10, $8d, $04
db $10, $08, $8c, $04
db $80 ; terminator
OAMData_99: ; 0x4dd3
db $18, $10, $91, $04
db $18, $08, $90, $04
db $10, $10, $8d, $04
db $10, $08, $8c, $04
db $80 ; terminator
OAMData_9a: ; 0x4de4
db $18, $10, $93, $04
db $18, $08, $92, $04
db $10, $10, $8d, $04
db $10, $08, $8c, $04
db $80 ; terminator
OAMData_9b: ; 0x4df5
db $10, $10, $95, $04
db $10, $08, $94, $04
db $18, $10, $93, $04
db $18, $08, $92, $04
db $80 ; terminator
OAMData_9c: ; 0x4e06
db $18, $10, $97, $04
db $18, $08, $96, $04
db $10, $10, $95, $04
db $10, $08, $94, $04
db $80 ; terminator
OAMData_9d: ; 0x4e17
db $18, $10, $8f, $04
db $18, $08, $8e, $04
db $10, $10, $95, $04
db $10, $08, $94, $04
db $80 ; terminator
FieldSelectRedStageBorderOAM: ; 0x4e28
db $36, $1c, $71, $40
db $26, $24, $72, $60
db $2e, $24, $72, $60
db $36, $24, $70, $60
db $36, $17, $71, $40
db $36, $0f, $71, $40
db $36, $07, $71, $40
db $36, $ff, $71, $40
db $36, $f7, $71, $40
db $26, $e8, $72, $40
db $2e, $e8, $72, $40
db $36, $f0, $71, $40
db $36, $e8, $70, $40
db $22, $e8, $72, $40
db $22, $24, $72, $60
db $12, $24, $72, $60
db $1a, $24, $72, $60
db $0a, $24, $72, $20
db $12, $e8, $72, $40
db $1a, $e8, $72, $40
db $0a, $e8, $72, $00
db $e2, $1c, $71, $00
db $02, $e8, $72, $00
db $02, $24, $72, $20
db $fa, $24, $72, $20
db $f2, $24, $72, $20
db $ea, $24, $72, $20
db $e2, $17, $71, $00
db $e2, $0f, $71, $00
db $e2, $07, $71, $00
db $e2, $24, $70, $20
db $e2, $ff, $71, $00
db $e2, $f7, $71, $00
db $fa, $e8, $72, $00
db $f2, $e8, $72, $00
db $ea, $e8, $72, $00
db $e2, $f0, $71, $00
db $e2, $e8, $70, $00
db $80 ; terminator
FieldSelectBlueStageBorderOAM: ; 0x4ec1
db $36, $1c, $74, $40
db $26, $24, $75, $60
db $2e, $24, $75, $60
db $36, $24, $73, $60
db $36, $17, $74, $40
db $36, $0f, $74, $40
db $36, $07, $74, $40
db $36, $ff, $74, $40
db $36, $f7, $74, $40
db $26, $e8, $75, $40
db $2e, $e8, $75, $40
db $36, $f0, $74, $40
db $36, $e8, $73, $40
db $22, $e8, $75, $40
db $22, $24, $75, $60
db $12, $24, $75, $60
db $1a, $24, $75, $60
db $0a, $24, $75, $20
db $12, $e8, $75, $40
db $1a, $e8, $75, $40
db $0a, $e8, $75, $00
db $e2, $1c, $74, $00
db $02, $e8, $75, $00
db $02, $24, $75, $20
db $fa, $24, $75, $20
db $f2, $24, $75, $20
db $ea, $24, $75, $20
db $e2, $17, $74, $00
db $e2, $0f, $74, $00
db $e2, $07, $74, $00
db $e2, $24, $73, $20
db $e2, $ff, $74, $00
db $e2, $f7, $74, $00
db $fa, $e8, $75, $00
db $f2, $e8, $75, $00
db $ea, $e8, $75, $00
db $e2, $f0, $74, $00
db $e2, $e8, $73, $00
db $80 ; terminator
OAMData_a0: ; 0x4f5a
db $36, $1c, $77, $40
db $26, $24, $78, $60
db $2e, $24, $78, $60
db $36, $24, $76, $60
db $36, $17, $77, $40
db $36, $0f, $77, $40
db $36, $07, $77, $40
db $36, $ff, $77, $40
db $36, $f7, $77, $40
db $26, $e8, $78, $40
db $2e, $e8, $78, $40
db $36, $f0, $77, $40
db $36, $e8, $76, $40
db $22, $e8, $78, $40
db $22, $24, $78, $60
db $12, $24, $78, $60
db $1a, $24, $78, $60
db $0a, $24, $78, $20
db $12, $e8, $78, $40
db $1a, $e8, $78, $40
db $0a, $e8, $78, $00
db $e2, $1c, $77, $00
db $02, $e8, $78, $00
db $02, $24, $78, $20
db $fa, $24, $78, $20
db $f2, $24, $78, $20
db $ea, $24, $78, $20
db $e2, $17, $77, $00
db $e2, $0f, $77, $00
db $e2, $07, $77, $00
db $e2, $24, $76, $20
db $e2, $ff, $77, $00
db $e2, $f7, $77, $00
db $fa, $e8, $78, $00
db $f2, $e8, $78, $00
db $ea, $e8, $78, $00
db $e2, $f0, $77, $00
db $e2, $e8, $76, $00
db $80 ; terminator
OAMData_a1: ; 0x4ff3
db $10, $08, $7c, $08
db $80 ; terminator
OAMData_a2: ; 0x4ff8
db $08, $08, $7d, $48
db $80 ; terminator
OAMData_a3: ; 0x4ffd
db $10, $08, $7e, $08
db $80 ; terminator
OAMData_a4: ; 0x5002
db $10, $08, $7e, $28
db $80 ; terminator
OAMData_a5: ; 0x5007
db $03, $0a, $0f, $1d
db $fb, $0a, $0e, $1d
db $03, $02, $0d, $1d
db $fb, $02, $0c, $1d
db $07, $15, $0b, $1b
db $ff, $15, $0a, $1b
db $07, $0d, $09, $1b
db $ff, $0d, $08, $1b
db $07, $05, $07, $1b
db $ff, $05, $06, $1b
db $07, $fd, $05, $1b
db $ff, $fd, $04, $1b
db $f7, $08, $03, $1b
db $ef, $08, $02, $1b
db $f7, $00, $01, $1b
db $ef, $00, $00, $1b
db $80 ; terminator
OAMData_a6: ; 0x5048
db $04, $0a, $1d, $1d
db $fc, $0a, $1c, $1d
db $04, $02, $1b, $1d
db $fc, $02, $1a, $1d
db $06, $15, $0b, $1b
db $fe, $15, $0a, $1b
db $07, $0d, $19, $1b
db $ff, $0d, $18, $1b
db $07, $05, $17, $1b
db $ff, $05, $16, $1b
db $07, $fd, $15, $1b
db $ff, $fd, $14, $1b
db $f7, $08, $13, $1b
db $ef, $08, $12, $1b
db $f7, $00, $11, $1b
db $ef, $00, $10, $1b
db $80 ; terminator
OAMData_a7: ; 0x5089
db $07, $08, $2f, $1d
db $ff, $08, $2e, $1d
db $07, $00, $2d, $1d
db $ff, $00, $2c, $1d
db $07, $10, $2b, $1b
db $ff, $10, $2a, $1b
db $07, $08, $29, $1b
db $ff, $08, $28, $1b
db $07, $00, $27, $1b
db $ff, $00, $26, $1b
db $07, $f8, $25, $1b
db $ff, $f8, $24, $1b
db $f7, $10, $23, $1b
db $ef, $10, $22, $1b
db $f7, $08, $21, $1b
db $ef, $08, $20, $1b
db $f7, $00, $1f, $1b
db $ef, $00, $1e, $1b
db $80 ; terminator
OAMData_a8: ; 0x50d2
db $15, $01, $0b, $0a
db $ef, $03, $02, $1d
db $f7, $03, $03, $1d
db $fb, $0b, $05, $1d
db $f3, $0b, $04, $1d
db $fb, $fb, $01, $1d
db $f3, $fb, $00, $1d
db $0d, $09, $0e, $1b
db $05, $09, $0d, $1b
db $fd, $09, $0c, $1b
db $0d, $01, $0a, $1b
db $05, $01, $09, $1b
db $fd, $01, $08, $1b
db $08, $11, $11, $1b
db $00, $11, $10, $1b
db $08, $f9, $07, $1b
db $00, $f9, $06, $1b
db $80 ; terminator
OAMData_a9: ; 0x5117
db $f8, $04, $15, $1d
db $f0, $04, $14, $1d
db $fb, $0c, $17, $1d
db $f3, $0c, $16, $1d
db $fb, $fc, $13, $1d
db $f3, $fc, $12, $1d
db $08, $12, $1f, $1b
db $00, $12, $1e, $1b
db $08, $0a, $1d, $1b
db $00, $0a, $1c, $1b
db $08, $02, $1b, $1b
db $00, $02, $1a, $1b
db $08, $fa, $19, $1b
db $00, $fa, $18, $1b
db $80 ; terminator
OAMData_aa: ; 0x5150
db $00, $10, $27, $1d
db $f8, $10, $26, $1d
db $fb, $08, $25, $1d
db $f3, $08, $24, $1d
db $fb, $00, $23, $1d
db $f3, $00, $22, $1d
db $00, $f8, $21, $1d
db $f8, $f8, $20, $1d
db $08, $10, $2f, $1b
db $00, $10, $2e, $1b
db $08, $08, $2d, $1b
db $00, $08, $2c, $1b
db $08, $00, $2b, $1b
db $00, $00, $2a, $1b
db $08, $f8, $29, $1b
db $00, $f8, $28, $1b
db $80 ; terminator
OAMData_ab: ; 0x5191
db $08, $10, $0f, $1b
db $00, $10, $0e, $1b
db $08, $08, $0d, $1b
db $00, $08, $0c, $1b
db $08, $00, $0b, $1b
db $00, $00, $0a, $1b
db $08, $f8, $09, $1b
db $00, $f8, $08, $1b
db $f8, $10, $07, $1b
db $f0, $10, $06, $1b
db $f8, $08, $05, $1b
db $f0, $08, $04, $1b
db $f8, $00, $03, $1b
db $f0, $00, $02, $1b
db $f8, $f8, $01, $1b
db $f0, $f8, $00, $1b
db $80 ; terminator
OAMData_ac: ; 0x51d2
db $08, $10, $1f, $1b
db $00, $10, $1e, $1b
db $08, $08, $1d, $1b
db $00, $08, $1c, $1b
db $08, $00, $1b, $1b
db $00, $00, $1a, $1b
db $08, $f8, $19, $1b
db $00, $f8, $18, $1b
db $f8, $10, $17, $1b
db $f0, $10, $16, $1b
db $f8, $08, $15, $1b
db $f0, $08, $14, $1b
db $f8, $00, $13, $1b
db $f0, $00, $12, $1b
db $f8, $f8, $11, $1b
db $f0, $f8, $10, $1b
db $80 ; terminator
OAMData_ad: ; 0x5213
db $08, $10, $2f, $1b
db $00, $10, $2e, $1b
db $08, $08, $2d, $1b
db $00, $08, $2c, $1b
db $08, $00, $2b, $1b
db $00, $00, $2a, $1b
db $08, $f8, $29, $1b
db $00, $f8, $28, $1b
db $f8, $10, $27, $1b
db $f0, $10, $26, $1b
db $f8, $08, $25, $1b
db $f0, $08, $24, $1b
db $f8, $00, $23, $1b
db $f0, $00, $22, $1b
db $f8, $f8, $21, $1b
db $f0, $f8, $20, $1b
db $80 ; terminator
OAMData_ae: ; 0x5254
db $08, $10, $0f, $1d
db $00, $10, $0e, $1b
db $08, $08, $0d, $1d
db $00, $08, $0c, $1b
db $08, $00, $0b, $1d
db $00, $00, $0a, $1b
db $08, $f8, $09, $1d
db $00, $f8, $08, $1b
db $f8, $10, $07, $1b
db $f0, $10, $06, $1b
db $f8, $08, $05, $1b
db $f0, $08, $04, $1b
db $f8, $00, $03, $1b
db $f0, $00, $02, $1b
db $f8, $f8, $01, $1b
db $f0, $f8, $00, $1b
db $80 ; terminator
OAMData_af: ; 0x5295
db $08, $10, $1f, $1d
db $00, $10, $1e, $1b
db $08, $08, $1d, $1d
db $00, $08, $1c, $1b
db $08, $00, $1b, $1d
db $00, $00, $1a, $1b
db $08, $f8, $19, $1d
db $00, $f8, $18, $1b
db $f8, $10, $17, $1b
db $f0, $10, $16, $1b
db $f8, $08, $15, $1b
db $f0, $08, $14, $1b
db $f8, $00, $13, $1b
db $f0, $00, $12, $1b
db $f8, $f8, $11, $1b
db $f0, $f8, $10, $1b
db $80 ; terminator
OAMData_b0: ; 0x52d6
db $09, $10, $2f, $1d
db $01, $10, $2e, $1b
db $09, $08, $2d, $1d
db $01, $08, $2c, $1b
db $09, $00, $2b, $1d
db $01, $00, $2a, $1b
db $09, $f8, $29, $1d
db $01, $f8, $28, $1b
db $f9, $10, $27, $1b
db $f1, $10, $26, $1b
db $f9, $08, $25, $1b
db $f1, $08, $24, $1b
db $f9, $00, $23, $1b
db $f1, $00, $22, $1b
db $f9, $f8, $21, $1b
db $f1, $f8, $20, $1b
db $80 ; terminator
Timer0DigitOAM: ; 0x5317
db $10, $08, $60, $08
db $80 ; terminator
Timer1DigitOAM: ; 0x531c
db $10, $08, $62, $08
db $80 ; terminator
Timer2DigitOAM: ; 0x5321
db $10, $08, $64, $08
db $80 ; terminator
Timer3DigitOAM: ; 0x5326
db $10, $08, $66, $08
db $80 ; terminator
Timer4DigitOAM: ; 0x532b
db $10, $08, $68, $08
db $80 ; terminator
Timer5DigitOAM: ; 0x5330
db $10, $08, $6a, $08
db $80 ; terminator
Timer6DigitOAM: ; 0x5335
db $10, $08, $6c, $08
db $80 ; terminator
Timer7DigitOAM: ; 0x533a
db $10, $08, $6e, $08
db $80 ; terminator
Timer8DigitOAM: ; 0x533f
db $10, $08, $70, $08
db $80 ; terminator
Timer9DigitOAM: ; 0x5344
db $10, $08, $72, $08
db $80 ; terminator
TimerColonOAM: ; 0x5349
db $10, $08, $74, $08
db $80 ; terminator
OAMData_bc: ; 0x534e
db $10, $10, $30, $11
db $10, $08, $2e, $11
db $80 ; terminator
OAMData_bd: ; 0x5357
db $10, $10, $34, $11
db $10, $08, $32, $11
db $80 ; terminator
OAMData_be: ; 0x5360
db $12, $10, $66, $15
db $02, $10, $64, $15
db $12, $08, $62, $15
db $02, $08, $60, $15
db $80 ; terminator
OAMData_bf: ; 0x5371
db $00, $0a, $68, $15
db $10, $10, $6c, $15
db $10, $08, $6a, $15
db $80 ; terminator
OAMData_c0: ; 0x537e
db $0f, $10, $70, $15
db $0f, $08, $6e, $15
db $80 ; terminator
OAMData_c1: ; 0x5387
db $00, $0b, $72, $15
db $10, $10, $76, $15
db $10, $08, $74, $15
db $80 ; terminator
OAMData_c2: ; 0x5394
db $08, $0f, $78, $22
db $08, $07, $78, $02
db $80 ; terminator
OAMData_c3: ; 0x539d
db $08, $0f, $7b, $62
db $08, $07, $7b, $42
db $80 ; terminator
OAMData_c4: ; 0x53a6
db $08, $0f, $7d, $62
db $08, $07, $7d, $42
db $80 ; terminator
OAMData_c5: ; 0x53af
db $08, $0f, $7e, $22
db $08, $07, $7e, $02
db $80 ; terminator
OAMData_c6: ; 0x53b8
db $08, $0f, $7c, $22
db $08, $07, $7c, $02
db $80 ; terminator
OAMData_c7: ; 0x53c1
db $08, $0f, $7a, $22
db $08, $07, $7a, $02
db $80 ; terminator
OAMData_c8: ; 0x53ca
db $18, $11, $96, $02
db $20, $29, $a6, $02
db $30, $21, $a4, $02
db $20, $21, $a2, $02
db $38, $19, $a0, $02
db $28, $19, $9e, $02
db $18, $19, $9c, $02
db $38, $11, $9a, $02
db $28, $11, $98, $02
db $38, $09, $94, $02
db $28, $09, $92, $02
db $18, $09, $90, $02
db $80 ; terminator
OAMData_c9: ; 0x53fb
db $18, $21, $2c, $02
db $18, $19, $28, $02
db $30, $09, $20, $02
db $20, $09, $1e, $02
db $28, $19, $2a, $02
db $30, $11, $26, $02
db $20, $11, $24, $02
db $10, $11, $22, $02
db $10, $09, $1c, $02
db $80 ; terminator
OAMData_ca: ; 0x5420
db $30, $08, $1a, $02
db $20, $08, $a8, $02
db $80 ; terminator
OAMData_cb: ; 0x5429
db $10, $18, $06, $1b
db $20, $10, $04, $1b
db $10, $10, $02, $1b
db $10, $08, $00, $1b
db $80 ; terminator
OAMData_cc: ; 0x543a
db $20, $11, $0e, $0c
db $10, $11, $0c, $0c
db $22, $09, $0a, $0c
db $12, $09, $08, $0c
db $80 ; terminator
OAMData_cd: ; 0x544b
db $0f, $11, $30, $11
db $0f, $09, $2e, $11
db $80 ; terminator
OAMData_ce: ; 0x5454
db $10, $0f, $30, $11
db $10, $07, $2e, $11
db $80 ; terminator
OAMData_cf: ; 0x545d
db $11, $11, $30, $11
db $11, $09, $2e, $11
db $80 ; terminator
OAMData_d0: ; 0x5466
db $10, $17, $16, $1b
db $1f, $0f, $14, $1b
db $0f, $0f, $12, $1b
db $0f, $07, $10, $1b
db $80 ; terminator
OAMData_d1: ; 0x5477
db $10, $08, $36, $06
db $80 ; terminator
OAMData_d2: ; 0x547c
db $08, $08, $37, $46
db $80 ; terminator
OAMData_d3: ; 0x5481
db $10, $08, $38, $06
db $80 ; terminator
OAMData_d4: ; 0x5486
db $10, $08, $3a, $06
db $80 ; terminator
OAMData_d5: ; 0x548b
db $10, $08, $3c, $06
db $80 ; terminator
OAMData_d6: ; 0x5490
db $10, $08, $3e, $06
db $80 ; terminator
OAMData_d7: ; 0x5495
db $10, $08, $b0, $00
db $80 ; terminator
OAMData_d8: ; 0x549a
db $10, $08, $b2, $00
db $80 ; terminator
OAMData_d9: ; 0x549f
db $10, $08, $b4, $00
db $80 ; terminator
OAMData_da: ; 0x54a4
db $10, $08, $b6, $00
db $80 ; terminator
OAMData_db: ; 0x54a9
db $10, $08, $38, $00
db $80 ; terminator
OAMData_dc: ; 0x54ae
db $10, $08, $3a, $00
db $80 ; terminator
OAMData_dd: ; 0x54b3
db $10, $08, $7e, $00
db $80 ; terminator
OAMData_de: ; 0x54b8
db $10, $08, $bc, $00
db $80 ; terminator
OAMData_df: ; 0x54bd
db $10, $08, $a8, $00
db $80 ; terminator
OAMData_e0: ; 0x54c2
db $10, $10, $92, $13
db $10, $08, $90, $13
db $80 ; terminator
OAMData_e1: ; 0x54cb
db $10, $10, $96, $13
db $10, $08, $94, $13
db $80 ; terminator
OAMData_e2: ; 0x54d4
db $20, $18, $1e, $11
db $20, $10, $1c, $11
db $20, $08, $1a, $11
db $10, $18, $9c, $11
db $10, $10, $9a, $11
db $10, $08, $98, $11
db $80 ; terminator
OAMData_e3: ; 0x54ed
db $10, $18, $a2, $11
db $10, $10, $a0, $11
db $10, $08, $9e, $11
db $20, $18, $1e, $11
db $20, $10, $1c, $11
db $20, $08, $1a, $11
db $80 ; terminator
OAMData_e4: ; 0x5506
db $10, $1a, $a8, $11
db $10, $12, $a6, $11
db $10, $0a, $a4, $11
db $20, $18, $1e, $11
db $20, $10, $1c, $11
db $20, $08, $1a, $11
db $80 ; terminator
OAMData_e5: ; 0x551f
db $20, $18, $2a, $13
db $20, $10, $28, $13
db $20, $08, $26, $13
db $10, $18, $24, $13
db $10, $10, $22, $13
db $10, $08, $20, $13
db $80 ; terminator
OAMData_e6: ; 0x5538
db $20, $18, $36, $13
db $20, $10, $34, $13
db $20, $08, $32, $13
db $10, $18, $30, $13
db $10, $10, $2e, $13
db $10, $08, $2c, $13
db $80 ; terminator
OAMData_e7: ; 0x5551
db $20, $10, $76, $13
db $20, $08, $74, $13
db $10, $10, $72, $13
db $10, $08, $70, $13
db $20, $18, $2a, $13
db $10, $18, $24, $13
db $80 ; terminator
OAMData_e8: ; 0x556a
db $10, $10, $78, $22
db $10, $08, $78, $02
db $80 ; terminator
OAMData_e9: ; 0x5573
db $10, $10, $7b, $62
db $10, $08, $7b, $42
db $80 ; terminator
OAMData_ea: ; 0x557c
db $10, $10, $7d, $62
db $10, $08, $7d, $42
db $80 ; terminator
OAMData_eb: ; 0x5585
db $10, $10, $7e, $22
db $10, $08, $7e, $02
db $80 ; terminator
OAMData_ec: ; 0x558e
db $10, $10, $7c, $22
db $10, $08, $7c, $02
db $80 ; terminator
OAMData_ed: ; 0x5597
db $10, $10, $7a, $22
db $10, $08, $7a, $02
db $80 ; terminator
OAMData_ee: ; 0x55a0
db $10, $08, $38, $06
db $80 ; terminator
OAMData_ef: ; 0x55a5
db $10, $08, $3a, $06
db $80 ; terminator
OAMData_f0: ; 0x55aa
db $10, $08, $3a, $26
db $80 ; terminator
OAMData_f1: ; 0x55af
db $10, $08, $3c, $06
db $80 ; terminator
OAMData_f2: ; 0x55b4
db $10, $08, $3e, $06
db $80 ; terminator
OAMData_f3: ; 0x55b9
db $10, $08, $3e, $26
db $80 ; terminator
OAMData_f4: ; 0x55be
db $08, $08, $39, $46
db $80 ; terminator
OAMData_f5: ; 0x55c3
db $10, $08, $72, $00
db $80 ; terminator
OAMData_f6: ; 0x55c8
db $10, $08, $74, $00
db $80 ; terminator
OAMData_f7: ; 0x55cd
db $10, $08, $76, $00
db $80 ; terminator
OAMData_f8: ; 0x55d2
db $10, $08, $78, $00
db $80 ; terminator
INCBIN "baserom.gbc",$55d7,$8000 - $55d7 ; 0x55d7
SECTION "bank2", ROMX, BANK[$2]
INCBIN "baserom.gbc",$8000,$821e - $8000 ; 0x8000
Func_821e: ; 0x821e
ld a, [$d8f2]
rst $18
INCBIN "baserom.gbc",$8222,$8228 - $8222
Func_8228: ; 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, [$fffe]
ld hl, PointerTable_825e
call LoadVideoData
call ClearOAMBuffer
call Func_b66
call Func_588
call Func_14a4
ld bc, $0050
call Func_93f
call Func_bbe
ld hl, $d8f2
inc [hl]
ret
PointerTable_825e: ; 0x825e
dw DataArray_8262
dw DataArray_8272
DataArray_8262: ; 0x8262
dw $6000
db $36
dw vTiles1
dw $1000
dw $6000
db $31
dw vBGMap0
dw $1000
db $FF, $FF ; terminators
DataArray_8272: ; 0x8272
dw CopyrightTextGfx
db Bank(CopyrightTextGfx)
dw vTiles1
dw $1000 ; todo (This is the number of bytes to copy times 4 with two flags as lower 2 bits)
dw CopyrightScreenTilemap
db Bank(CopyrightScreenTilemap)
dw vBGMap0
dw $1000
dw $6400
db $31
dw vBGMap0
dw $1002
dw $5000 ; Some kind of GBC palette data
db $37
dw $0000
dw $101
db $FF, $FF ; terminators
INCBIN "baserom.gbc",$8290,$82a8 - $8290 ; 0x8290
Func_82a8: ; 0x82a8
call Func_cb5
call Func_576
ld hl, $a000
ld de, wRedHighScore1Points
ld bc, $0082
call Func_f0c
jr c, .asm_82c6
ld [$ff8a], a
ld a, Bank(CopyInitialHighScores)
ld hl, CopyInitialHighScores
call BankSwitch
.asm_82c6
ld hl, $a10c
ld de, wPokedexFlags
ld bc, $0098
call Func_f0c
jr c, .asm_82de
ld [$ff8a], a
ld a, $a
ld hl, $4d66
call BankSwitch
.asm_82de
ld hl, $a244
ld de, wKeyConfigs
ld bc, $000e
call Func_f0c
jr c, .asm_82f6
ld [$ff8a], a
ld a, $3
ld hl, $4a3a
call BankSwitch
.asm_82f6
ld hl, $a268
ld de, $d300
ld bc, $04c3 ; This is saved game data from when the player saves in the middle of a game.
call Func_f0c
jr c, .asm_8308
xor a
ld [$d7c2], a ; if this is non-zero, the main menu will prompt for "continue or new game?".
.asm_8308
ld hl, $d8f1
inc [hl]
xor a
ld [$d8f2], a
ret
INCBIN "baserom.gbc",$8311,$867d - $8311
StartTimer: ; 0x867d
; Starts the timer that counts down with the specified starting time when things
; like CatchEm Mode starts.
; input: b = minutes
; c = seconds
ld a, c
ld [wTimerSeconds], a
ld a, b
ld [wTimerMinutes], a
xor a
ld [wTimerFrames], a
ld [$d57e], a
ld [$d57f], a
ld a, $1
ld [$d57d], a
ld a, $1
ld [$d580], a
ld [$ff8a], a
ld a, Bank(Func_1404a)
ld hl, Func_1404a
call BankSwitch
ret
INCBIN "baserom.gbc",$86a4,$c000 - $86a4
SECTION "bank3", ROMX, BANK[$3]
INCBIN "baserom.gbc",$c000,$c0f7 - $c000
HandleTitlescreenAnimations: ; 0xc0f7
ld a, [$fffe]
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
INCBIN "baserom.gbc",$c10e,$c21d - $c10e
Func_c21d: ; 0xc21d
; World's greatest function.
ret
HandleTitlescreenPikachuBlinkingAnimation: ; 0xc21e
ld a, [wTitleScreenBlinkAnimationFrame]
sla a
ld c, a
ld b, $0
ld hl, TitleScreenBlinkAnimation
add hl, bc
ld bc, $3810
ld a, [hl]
cp $5a ; blink animation frame 1 OAM id
call nz, LoadOAMData
ld a, [wTitleScreenBlinkAnimationCounter]
dec a
jr nz, .done
inc hl
inc hl ; hl points to next frame in TitleScreenBlinkAnimation array
ld a, [hl]
and a ; reached the end of the animation frames?
jr z, .saveAnimationFrame
ld a, [wTitleScreenBlinkAnimationFrame]
inc a
.saveAnimationFrame
ld [wTitleScreenBlinkAnimationFrame], a
sla a
ld c, a
ld b, $0
ld hl, (TitleScreenBlinkAnimation + 1)
add hl, bc
ld a, [hl] ; a contains second byte in the current animation frame data
cp $3c ; is this a long-duration animation frame?
jr c, .done
ld c, a
call Func_959
and $1f
add c
.done
ld [wTitleScreenBlinkAnimationCounter], a
ret
TitleScreenBlinkAnimation: ; 0xc25f
; Array of animation frames. The animation is looped when it finishes.
; first byte = OAM data id to load
; second byte = number of frames to show this animation.
db $5a, $c8
db $5b, $04
db $5c, $04
db $5b, $04
db $5a, $3c
db $5b, $03
db $5c, $03
db $5b, $03
db $5a, $03
db $5b, $03
db $5c, $03
db $5b, $03
db $00 ; terminator
HandleTitlescreenPokeballAnimation: ; 0xc278
ld a, [wTitleScreenCursorSelection]
sla a
ld c, a
ld b, $0
ld hl, TitleScreenPokeballCoordOffsets
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld e, $0
ld a, [$d8f2] ; 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
INCBIN "baserom.gbc",$c2df,$c3b9 - $c2df
PointerTable_c3b9: ; 0xc3b9
dw DataArray_c3bd
dw DataArray_c3d4
DataArray_c3bd: ; 0xc3bd
dw OptionMenuAndKeyConfigGfx
db Bank(OptionMenuAndKeyConfigGfx)
dw vTiles0
dw $5000
dw OptionMenuTilemap
db Bank(OptionMenuTilemap)
dw vBGMap0
dw $900
dw $7000
db $30
dw vBGMap1
dw $900
db $FF, $FF ; terminators
DataArray_c3d4: ; 0xc3d4
dw OptionMenuAndKeyConfigGfx
db Bank(OptionMenuAndKeyConfigGfx)
dw vTiles0
dw $5000
dw OptionMenuTilemap
db Bank(OptionMenuTilemap)
dw vBGMap0
dw $900
dw $7c00
db $30
dw vBGMap0
dw $902
dw $7000
db $30
dw vBGMap1
dw $900
dw $7400
db $30
dw vBGMap1
dw $902
dw $4e00
db $37
dw $0000
dw $101
db $FF, $FF ; terminators
INCBIN "baserom.gbc",$c400,$c715 - $c400
UpdateSoundTestBackgroundMusicSelection: ; 0xc715
ld a, [$ff9a] ; 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, [$ff99] ; 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, [$ff9a] ; 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:
; 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)
; 0xc7ac
INCBIN "baserom.gbc",$c7ac,$d3ff - $c7ac
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
INCBIN "baserom.gbc",$d46f,$d71c - $d46f
PointerTable_d71c: ; 0xd71c
dw DataArray_d720
dw DataArray_d730
DataArray_d720: ; 0xd720
dw FieldSelectScreenGfx
db Bank(FieldSelectScreenGfx)
dw vTiles1 - $100
dw $3400
dw FieldSelectTilemap
db Bank(FieldSelectTilemap)
dw vBGMap0
dw $900
db $FF, $FF ; terminators
DataArray_d730: ; 0xd730
dw FieldSelectScreenGfx
db Bank(FieldSelectScreenGfx)
dw vTiles1 - $100
dw $3400
dw FieldSelectTilemap
db Bank(FieldSelectTilemap)
dw vBGMap0
dw $900
dw $7c00
db $2C
dw vBGMap0
dw $902
dw $5100
db $37
dw $0000
dw $91
db $FF, $FF ; terminators
INCBIN "baserom.gbc",$d74e,$dbd4 - $d74e
Func_dbd4: ; 0xdbd4
ld a, [$d4a3]
ld [$d4a6], a
ld a, [$d4a4]
ld [$d4a7], a
ld a, [$d4a5]
ld [$d4a8], a
ld a, $0
ld [$d4a1], a
ld a, $ff
ld [$d4a2], a
ld a, $3b
ld [$d4a3], a
ld a, $3c
ld [$d4a4], a
ld a, $ff
ld [$d4a5], a
ret
INCBIN "baserom.gbc",$dc00,$eeee - $dc00
Func_eeee: ; 0xeeee
push bc
ld bc, $0200
.asm_eef2
dec bc
ld a, b
or c
jr nz, .asm_eef2
pop bc
ret
INCBIN "baserom.gbc",$eef9,$f178 - $eef9
LoadBillboardPicture: ; 0xf178
; Loads a billboard picture's tiles into VRAM
; input: a = billboard picture id
push hl
ld c, a
ld b, $0
sla c
add c ; a has been multplied by 3 becuase entires in BillboardPicturePointers are 3 bytes long
ld c, a
ld hl, BillboardPicturePointers
add hl, bc
ld a, [hli]
ld c, a
ld a, [hli]
ld b, a
ld a, [hl]
ld h, b
ld l, c
ld de, $8900 ; destination address to copy the tiles
ld bc, $180 ; billboard pictures are $180 bytes
call Func_73f ; loads the tiles into VRAM
pop hl
ret
INCBIN "baserom.gbc",$f196,$f1b8 - $f196
BillboardPicturePointers: ; 0xf1b8
dw BallSaver30SecondsOnPic
db Bank(BallSaver30SecondsOnPic)
dw BallSaver60SecondsOnPic
db Bank(BallSaver60SecondsOnPic)
dw BallSaver90SecondsOnPic
db Bank(BallSaver90SecondsOnPic)
dw PikachuSaverOnPic
db Bank(PikachuSaverOnPic)
dw ExtraBallOnPic
db Bank(ExtraBallOnPic)
dw SmallRewardOnPic
db Bank(SmallRewardOnPic)
dw BigRewardOnPic
db Bank(BigRewardOnPic)
dw CatchEmModeOnPic
db Bank(CatchEmModeOnPic)
dw EvolutionModeOnPic
db Bank(EvolutionModeOnPic)
dw GreatBallOnPic
db Bank(GreatBallOnPic)
dw UltraBallOnPic
db Bank(UltraBallOnPic)
dw MasterBallOnPic
db Bank(MasterBallOnPic)
dw BonusMultiplierOnPic
db Bank(BonusMultiplierOnPic)
dw GoToGengarBonusOnPic
db Bank(GoToGengarBonusOnPic)
dw GoToMewtwoBonusOnPic
db Bank(GoToMewtwoBonusOnPic)
dw GoToMeowthBonusOnPic
db Bank(GoToMeowthBonusOnPic)
dw GoToDiglettBonusOnPic
db Bank(GoToDiglettBonusOnPic)
dw GoToSeelBonusOnPic
db Bank(GoToSeelBonusOnPic)
dw SmallReward100PointsOnPic
db Bank(SmallReward100PointsOnPic)
dw SmallReward200PointsOnPic
db Bank(SmallReward200PointsOnPic)
dw SmallReward300PointsOnPic
db Bank(SmallReward300PointsOnPic)
dw SmallReward400PointsOnPic
db Bank(SmallReward400PointsOnPic)
dw SmallReward500PointsOnPic
db Bank(SmallReward500PointsOnPic)
dw SmallReward600PointsOnPic
db Bank(SmallReward600PointsOnPic)
dw SmallReward700PointsOnPic
db Bank(SmallReward700PointsOnPic)
dw SmallReward800PointsOnPic
db Bank(SmallReward800PointsOnPic)
dw SmallReward900PointsOnPic
db Bank(SmallReward900PointsOnPic)
dw BigReward1000000PointsOnPic
db Bank(BigReward1000000PointsOnPic)
dw BigReward2000000PointsOnPic
db Bank(BigReward2000000PointsOnPic)
dw BigReward3000000PointsOnPic
db Bank(BigReward3000000PointsOnPic)
dw BigReward4000000PointsOnPic
db Bank(BigReward4000000PointsOnPic)
dw BigReward5000000PointsOnPic
db Bank(BigReward5000000PointsOnPic)
dw BigReward6000000PointsOnPic
db Bank(BigReward6000000PointsOnPic)
dw BigReward7000000PointsOnPic
db Bank(BigReward7000000PointsOnPic)
dw BigReward8000000PointsOnPic
db Bank(BigReward8000000PointsOnPic)
dw BigReward9000000PointsOnPic
db Bank(BigReward9000000PointsOnPic)
dw BonusMultiplierX1OnPic
db Bank(BonusMultiplierX1OnPic)
dw BonusMultiplierX2OnPic
db Bank(BonusMultiplierX2OnPic)
dw BonusMultiplierX3OnPic
db Bank(BonusMultiplierX3OnPic)
dw BonusMultiplierX4OnPic
db Bank(BonusMultiplierX4OnPic)
dw BonusMultiplierX5OnPic
db Bank(BonusMultiplierX5OnPic)
dw PalletTownPic
db Bank(PalletTownPic)
dw ViridianCityPic
db Bank(ViridianCityPic)
dw ViridianForestPic
db Bank(ViridianForestPic)
dw PewterCityPic
db Bank(PewterCityPic)
dw MtMoonPic
db Bank(MtMoonPic)
dw CeruleanCityPic
db Bank(CeruleanCityPic)
dw VermilionCitySeasidePic
db Bank(VermilionCitySeasidePic)
dw VermilionCityStreetsPic
db Bank(VermilionCityStreetsPic)
dw RockMountainPic
db Bank(RockMountainPic)
dw LavenderTownPic
db Bank(LavenderTownPic)
dw CeladonCityPic
db Bank(CeladonCityPic)
dw CyclingRoadPic
db Bank(CyclingRoadPic)
dw FuchsiaCityPic
db Bank(FuchsiaCityPic)
dw SafariZonePic
db Bank(SafariZonePic)
dw SaffronCityPic
db Bank(SaffronCityPic)
dw SeafoamIslandsPic
db Bank(SeafoamIslandsPic)
dw CinnabarIslandPic
db Bank(CinnabarIslandPic)
dw IndigoPlateauPic
db Bank(IndigoPlateauPic)
INCBIN "baserom.gbc",$f269,$10000 - $f269
SECTION "bank4", ROMX, BANK[$4]
INCBIN "baserom.gbc",$10000,$1003f - $10000
StartCatchEmMode: ; 0x1003f
ld a, [$d54b] ; current game mode?
and a
ret nz
ld a, $1
ld [$d54b], a ; set to catchem mode?
xor a
ld [$d550], a
ld [$d54d], a
ld a, [$d4ac]
sla a
ld c, a
ld b, $0
push bc
ld hl, WildMonOffsetsPointers
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wCurrentMap]
sla a
ld c, a
add hl, bc
ld a, [hli]
ld c, a
ld a, [hl]
ld b, a
pop de
ld hl, WildMonPointers
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
add hl, bc
call Func_959 ; random number?
and $f
call .asm_10130
ld c, a
ld b, $0
add hl, bc
ld a, [$d55b] ; this probably gets set to $08 when the rare mons should be used.
sla a
ld c, a
add hl, bc
ld a, [hl] ; a contains mon id
dec a
ld [wCurrentMon], a
ld a, [wCurrentMon]
ld c, a
ld b, $0
ld hl, EvolutionLineIds
add hl, bc
ld c, [hl]
ld h, b
ld l, c
add hl, bc
add hl, bc ; multiply the evolution line id by 3
ld bc, Data_13685
add hl, bc
ld a, [hli]
ld [$d5c1], a
ld [$d5be], a
ld a, [hli]
ld [$d5c2], a
ld a, [hli]
ld [$d5c3], a
ld hl, $d586
ld a, [$d5b6]
ld c, a
and a
ld b, $18
jr z, .asm_100c7
.asm_100ba
ld a, $1
ld [hli], a
xor a
ld [hli], a
dec b
dec c
jr nz, .asm_100ba
ld a, b
and a
jr z, .asm_100ce
.asm_100c7
xor a
ld [hli], a
inc a
ld [hli], a
dec b
jr nz, .asm_100c7
.asm_100ce
ld a, [wCurrentMon]
ld c, a
ld b, $0
sla c
rl b
ld hl, CatchEmTimerData
add hl, bc
ld a, [hli]
ld c, a
ld a, [hl]
ld b, a
ld [$ff8a], a
ld a, Bank(StartTimer)
ld hl, StartTimer
call BankSwitch
ld [$ff8a], a
ld a, Bank(Func_dbd4)
ld hl, Func_dbd4
call BankSwitch
call Func_10696
call Func_3579
ld a, [$d4ac]
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, [$d4ac]
rst $18
ld [hl], c
ld c, b
ld [hl], c
ld c, b
adc d
ld c, c
adc d
ld c, c
adc h
ld c, c
adc h
ld c, c
.asm_10130 ; I think this checks to see if it should be Mew
push af
cp $f
jr nz, .asm_10155
ld a, c
cp $60
jr nz, .asm_10155
ld a, b
cp $1
jr nz, .asm_10155
ld a, [$d55b]
cp $8
jr nz, .asm_10155
ld a, [$d62f]
cp $2
jr nz, .asm_10155
pop af
xor a
ld [$d62f], a
ld a, $10
ret
.asm_10155
pop af
ret
INCBIN "baserom.gbc",$10157,$10696 - $10157
Func_10696: ; 0x10696
call Func_30e8
call Func_30db
ld hl, $d5cc
ld de, $29b7
call Func_32aa
ret
INCBIN "baserom.gbc",$106a6,$10753 - $106a6
SetPokemonSeenFlag: ; 0x10753
ld a, [$d550]
and a
ld a, [wCurrentMon]
jr z, .asm_10766
ld a, [$d552]
cp $ff
jr nz, .asm_10766
ld a, [wCurrentMon]
.asm_10766
ld c, a
ld b, $0
ld hl, wPokedexFlags
add hl, bc
set 0, [hl]
ld hl, wPokedexFlags
ld de, $a10c
ld bc, $0098
call Func_f1a
ret
INCBIN "baserom.gbc",$1077c,$1126c - $1077c
WildMonOffsetsPointers: ; 0x1126c
dw RedStageWildMonDataOffsets
dw RedStageWildMonDataOffsets
dw RedStageWildMonDataOffsets
dw RedStageWildMonDataOffsets
dw BlueStageWildMonDataOffsets
dw BlueStageWildMonDataOffsets
RedStageWildMonDataOffsets: ; 0x11278
dw (RedStagePalletTownWildMons - RedStageWildMons) ; PALLET_TOWN
dw $0000 ; VIRIDIAN_CITY (unused in Red Stage)
dw (RedStageViridianForestWildMons - RedStageWildMons) ; VIRIDIAN_FOREST
dw (RedStagePewterCityWildMons - RedStageWildMons) ; PEWTER_CITY
dw $0000 ; MT_MOON (unused in Red Stage)
dw (RedStageCeruleanCityWildMons - RedStageWildMons) ; CERULEAN_CITY
dw (RedStageVermilionSeasideWildMons - RedStageWildMons) ; VERMILION_SEASIDE
dw $0000 ; VERMILION_STREETS (unused in Red Stage)
dw (RedStageRockMountainWildMons - RedStageWildMons) ; ROCK_MOUNTAIN
dw (RedStageLavenderTownWildMons - RedStageWildMons) ; LAVENDER_TOWN
dw $0000 ; CELADON_CITY (unused in Red Stage)
dw (RedStageCyclingRoadWildMons - RedStageWildMons) ; CYCLING_ROAD
dw $0000 ; FUCHSIA_CITY (unused in Red Stage)
dw (RedStageSafariZoneWildMons - RedStageWildMons) ; SAFARI_ZONE
dw $0000 ; SAFFRON_CITY (unused in Red Stage)
dw (RedStageSeafoamIslandsWildMons - RedStageWildMons) ; SEAFOAM_ISLANDS
dw (RedStageCinnabarIslandWildMons - RedStageWildMons) ; CINNABAR_ISLAND
dw (RedStageIndigoPlateauWildMons - RedStageWildMons) ; INDIGO_PLATEAU
BlueStageWildMonDataOffsets: ; 0x1129c
dw $0000 ; PALLET_TOWN (unused in Blue Stage)
dw (BlueStageViridianCityWildMons - BlueStageWildMons) ; VIRIDIAN_CITY
dw (BlueStageViridianForestWildMons - BlueStageWildMons) ; VIRIDIAN_FOREST
dw $0000 ; PEWTER_CITY (unused in Blue Stage)
dw (BlueStageMtMoonWildMons - BlueStageWildMons) ; MT_MOON
dw (BlueStageCeruleanCityWildMons - BlueStageWildMons) ; CERULEAN_CITY
dw $0000 ; VERMILION_SEASIDE (unused in Blue Stage)
dw (BlueStageVermilionStreetsWildMons - BlueStageWildMons) ; VERMILION_STREETS
dw (BlueStageRockMountainWildMons - BlueStageWildMons) ; ROCK_MOUNTAIN
dw $0000 ; LAVENDER_TOWN (unused in Blue Stage)
dw (BlueStageCeladonCityWildMons - BlueStageWildMons) ; CELADON_CITY
dw $0000 ; CYCLING_ROAD (unused in Blue Stage)
dw (BlueStageFuchsiaCityWildMons - BlueStageWildMons) ; FUCHSIA_CITY
dw (BlueStageSafariZoneWildMons - BlueStageWildMons) ; SAFARI_ZONE
dw (BlueStageSaffronCityWildMons - BlueStageWildMons) ; SAFFRON_CITY
dw $0000 ; SEAFOAM_ISLANDS (unused in Blue Stage)
dw (BlueStageCinnabarIslandWildMons - BlueStageWildMons) ; CINNABAR_ISLAND
dw (BlueStageIndigoPlateauWildMons - BlueStageWildMons) ; INDIGO_PLATEAU
WildMonPointers: ; 0x112c0
dw RedStageWildMons
dw RedStageWildMons
dw RedStageWildMons
dw RedStageWildMons
dw BlueStageWildMons
dw BlueStageWildMons
INCLUDE "data/red_wild_mons.asm"
INCLUDE "data/blue_wild_mons.asm"
INCBIN "baserom.gbc",$115ce,$1161d - $115ce
INCLUDE "data/evolution_lines.asm"
INCBIN "baserom.gbc",$116b4,$12a22 - $116b4
INCLUDE "data/catchem_timer_values.asm"
INCBIN "baserom.gbc",$12b50,$13685 - $12b50
Data_13685: ; 0x13685
; Each 3-byte entry is related to an evolution line. Don't know what this is for, yet.
db $12, $12, $10
db $10, $10, $10
db $12, $12, $0E
db $14, $14, $12
db $14, $14, $10
db $0A, $0A, $0E
db $11, $13, $10
db $0B, $0B, $10
db $12, $12, $0E
db $12, $14, $0E
db $10, $12, $10
db $11, $12, $0E
db $11, $12, $0E
db $12, $13, $10
db $11, $11, $10
db $12, $12, $10
db $08, $08, $10
db $10, $10, $10
db $10, $10, $10
db $11, $11, $0E
db $10, $10, $0E
db $14, $14, $0E
db $30, $30, $10
db $12, $12, $10
db $12, $12, $10
db $10, $10, $10
db $10, $10, $10
db $12, $14, $10
db $10, $12, $10
db $0C, $0C, $12
db $12, $14, $0C
db $12, $14, $0E
db $30, $30, $10
db $14, $14, $10
db $12, $12, $0E
db $12, $12, $0E
db $14, $14, $0E
db $12, $12, $10
db $14, $14, $0E
db $10, $10, $0E
db $12, $12, $10
db $14, $14, $10
db $14, $12, $10
db $02, $02, $10
db $12, $12, $10
db $12, $12, $10
db $14, $10, $10
db $14, $10, $10
db $14, $12, $10
db $11, $11, $10
db $14, $14, $10
db $12, $12, $10
db $10, $10, $10
db $12, $12, $10
db $0F, $0F, $0E
db $12, $12, $0E
db $23, $23, $10
db $13, $13, $10
db $13, $13, $10
db $12, $12, $10
db $12, $14, $10
db $14, $14, $0E
db $12, $12, $0E
db $12, $14, $10
db $18, $18, $0C
db $16, $16, $0C
db $14, $14, $10
db $12, $12, $10
db $10, $10, $0E
db $12, $12, $0E
db $12, $12, $0E
db $0C, $0C, $12
db $26, $36, $12
db $13, $13, $10
db $13, $13, $10
db $13, $13, $10
db $12, $12, $0E
db $14, $14, $0E
db $14, $14, $0E
SECTION "bank5", ROMX, BANK[$5]
INCBIN "baserom.gbc",$14000,$1404a - $14000
Func_1404a: ; 0x1404a
ld a, [$d57d]
and a
ret z
ld a, [$fffe]
and a
ret nz
ld a, [$d580]
and a
ret z
ld a, $f
ld [$d581], a
call Func_1762f
ld hl, $d582
ld a, $ff
ld [hli], a
ld [hli], a
ld [hli], a
ld [hl], a
ld hl, $d582
ld a, [wTimerMinutes]
and $f
call Func_1764f
ld a, [wTimerSeconds]
swap a
and $f
call Func_1764f
ld a, [wTimerSeconds]
and $f
call Func_1764f
ld a, e
srl a
srl a
ld d, $90
call Func_1764f
ret
INCBIN "baserom.gbc",$14091,$1659c - $14091
.showNextMap
ld a, [$d4e1]
inc a
cp $7 ; number of maps to choose from at the start of play
jr c, .gotMapId
xor a ; wrap around to 0
.gotMapId
ld [$d4e1], a
ld c, a
ld b, $0
ld hl, RedStageInitialMaps
add hl, bc
ld a, [hl]
ld [wCurrentMap], a
push af
ld de, $0048
call PlaySoundEffect
pop af
add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers
ld [$ff8a], a
ld a, Bank(LoadBillboardPicture)
ld hl, LoadBillboardPicture
call BankSwitch
ld b, $20 ; number of frames to delay before the next map is shown
.waitOnCurrentMap
push bc
ld [$ff8a], a
ld a, Bank(Func_eeee)
ld hl, Func_eeee
call BankSwitch
ld hl, wKeyConfigBallStart
call IsKeyPressed
jr nz, .ballStartKeyPressed
pop bc
dec b
jr nz, .waitOnCurrentMap
jr .showNextMap
.ballStartKeyPressed
pop bc
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld bc, $2cd1
ld [$ff8a], a
ld a, Bank(Func_3118f)
ld hl, Func_3118f
call BankSwitch
ld a, [wCurrentMap]
ld [$d4e3], a
xor a
ld [$d4e2], a
ret
RedStageInitialMaps: ; 0x16605
db PALLET_TOWN
db VIRIDIAN_FOREST
db PEWTER_CITY
db CERULEAN_CITY
db VERMILION_SEASIDE
db ROCK_MOUNTAIN
db LAVENDER_TOWN
INCBIN "baserom.gbc",$1660c,$175f5 - $1660c
DrawTimer: ; 0x175f5
; Loads the OAM data for the timer in the top-right corner of the screen.
ld a, [wTimerMinutes]
and $f
call DrawTimerDigit
ld a, $a ; colon
call DrawTimerDigit
ld a, [wTimerSeconds]
swap a
and $f
call DrawTimerDigit ; tens digit of the minutes
ld a, [wTimerSeconds]
and $f
call DrawTimerDigit ; ones digit of the minutes
ret
INCBIN "baserom.gbc",$17615,$17625 - $17615
DrawTimerDigit: ; 0x17625
add $b1 ; the timer digits' OAM ids start at $b1
call LoadOAMData
ld a, b
add $8
ld b, a
ret
Func_1762f: ; 0x1762f
ld de, $600c
ld a, [$d4ac]
cp $6
ret nc
ld de, $0000
bit 0, a
ret z
ld de, $3004
ld a, [$d54b]
and a
ret z
ld a, [$d550]
and a
ret nz
ld de, $3008
ret
Func_1764f: ; 0x1764f
push bc
push de
cp [hl]
jr z, .asm_1765d
push af
push hl
add d
call Func_17665
pop hl
pop af
ld [hl], a
.asm_1765d
inc hl
pop de
ld a, d
add $10
ld d, a
pop bc
ret
Func_17665: ; 0x17665
ld c, a
ld b, $0
sla c
rl b
ld hl, $7679 ; todo
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $5
call Func_10aa
ret
INCBIN "baserom.gbc",$17679,$17e81 - $17679
Func_17e81: ; 0x17e81
ld a, [$d548]
and a
ret z
ld hl, wBallSpin
ld a, [wBallRotation]
add [hl]
ld [wBallRotation], a
ld a, [wBallXPos]
inc a
ld hl, hBoardXShift
sub [hl]
ld b, a
ld a, [wBallYPos]
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, [$fffe]
and a
ret nz
ld a, [$fffe]
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]
ld [$d4c5], a
ld a, [wBallYPos]
ld [$d4c6], a
ld a, [wBallRotation]
ld [$d4c7], a
ret
INCBIN "baserom.gbc",$17efb,$18000 - $17efb
SECTION "bank6", ROMX, BANK[$6]
INCBIN "baserom.gbc",$18000,$1c000 - $18000 ; 0x18000
SECTION "bank7", ROMX, BANK[$7]
INCBIN "baserom.gbc",$1c000,$1c846 - $1c000
.showNextMap
ld a, [$d4e1]
inc a
cp $7 ; number of maps to choose from at the start of play
jr c, .gotMapId
xor a ; wrap around to 0
.gotMapId
ld [$d4e1], a
ld c, a
ld b, $0
ld hl, BlueStageInitialMaps
add hl, bc
ld a, [hl]
ld [wCurrentMap], a
push af
ld de, $0048
call PlaySoundEffect
pop af
add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers
ld [$ff8a], a
ld a, Bank(LoadBillboardPicture)
ld hl, LoadBillboardPicture
call BankSwitch
ld b, $20 ; number of frames to delay before the next map is shown
.waitOnCurrentMap
push bc
ld [$ff8a], a
ld a, Bank(Func_eeee)
ld hl, Func_eeee
call BankSwitch
ld hl, wKeyConfigBallStart
call IsKeyPressed
jr nz, .ballStartKeyPressed
pop bc
dec b
jr nz, .waitOnCurrentMap
jr .showNextMap
.ballStartKeyPressed
pop bc
ld [$ff8a], a
ld a, Bank(Func_30253)
ld hl, Func_30253
call BankSwitch
ld bc, $2cd1
ld [$ff8a], a
ld a, Bank(Func_3118f)
ld hl, Func_3118f
call BankSwitch
ld a, [wCurrentMap]
ld [$d4e3], a
xor a
ld [$d4e2], a
ret
BlueStageInitialMaps: ; 0x1c8af
db VIRIDIAN_CITY
db VIRIDIAN_FOREST
db MT_MOON
db CERULEAN_CITY
db VERMILION_STREETS
db ROCK_MOUNTAIN
db CELADON_CITY
INCBIN "baserom.gbc",$1c8b6,$20000 - $1c8b6
SECTION "bank8", ROMX, BANK[$8]
INCBIN "baserom.gbc",$20000,$24000 - $20000 ; 0x20000
SECTION "bank9", ROMX, BANK[$9]
INCBIN "baserom.gbc",$24000,$28000 - $24000 ; 0x24000
SECTION "banka", ROMX, BANK[$a]
INCBIN "baserom.gbc",$28000,$2c000 - $28000 ; 0x28000
SECTION "bankb", ROMX, BANK[$b]
INCBIN "baserom.gbc",$2c000,$30000 - $2c000 ; 0x2c000
SECTION "bankc", ROMX, BANK[$c]
INCBIN "baserom.gbc",$30000,$30253 - $30000 ; 0x30000
Func_30253: ; 0x30253
ld a, [wCurrentMap]
sla a
ld c, a
ld b, $0
push bc
ld hl, PointerTable_3027a
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $c
call Func_10aa
pop bc
ld a, [$fffe]
and a
ret z
ld hl, PointerTable_30ceb
add hl, bc
ld a, [hli]
ld h, [hl]
ld l, a
ld a, $c
call Func_10aa
ret
PointerTable_3027a: ; 0x3027a
dw Data_302b0
dw Data_302c1
dw Data_302d2
dw Data_302e3
dw Data_302f4
dw Data_30305
dw Data_30316
dw Data_30327
dw Data_30338
dw Data_30349
dw Data_3035a
dw Data_3036b
dw Data_3037c
dw Data_3038d
dw Data_3039e
dw Data_303af
dw Data_303c0
dw Data_303d1
dw Data_303e2
dw Data_303f3
dw Data_30404
dw Data_30415
dw Data_30426
dw Data_30437
dw Data_30448
dw Data_30459
dw Data_3046a
Data_302b0: ; 0x302b0
db $08, $7B, $44, $85, $44, $8F, $44, $99, $44, $A3, $44, $AD, $44, $B7, $44, $C1, $44
Data_302c1: ; 0x302c1
db $08, $CB, $44, $D5, $44, $DF, $44, $E9, $44, $F3, $44, $FD, $44, $07, $45, $11, $45
Data_302d2: ; 0x302d2
db $08, $1B, $45, $25, $45, $2F, $45, $39, $45, $43, $45, $4D, $45, $57, $45, $61, $45
Data_302e3: ; 0x302e3
db $08, $6B, $45, $75, $45, $7F, $45, $89, $45, $93, $45, $9D, $45, $A7, $45, $B1, $45
Data_302f4: ; 0x302f4
db $08, $BB, $45, $C5, $45, $CF, $45, $D9, $45, $E3, $45, $ED, $45, $F7, $45, $01, $46
Data_30305: ; 0x30305
db $08, $0B, $46, $15, $46, $1F, $46, $29, $46, $33, $46, $3D, $46, $47, $46, $51, $46
Data_30316: ; 0x30316
db $08, $5B, $46, $65, $46, $6F, $46, $79, $46, $83, $46, $8D, $46, $97, $46, $A1, $46
Data_30327: ; 0x30327
db $08, $AB, $46, $B5, $46, $BF, $46, $C9, $46, $D3, $46, $DD, $46, $E7, $46, $F1, $46
Data_30338: ; 0x30338
db $08, $FB, $46, $05, $47, $0F, $47, $19, $47, $23, $47, $2D, $47, $37, $47, $41, $47
Data_30349: ; 0x30349
db $08, $4B, $47, $55, $47, $5F, $47, $69, $47, $73, $47, $7D, $47, $87, $47, $91, $47
Data_3035a: ; 0x3035a
db $08, $9B, $47, $A5, $47, $AF, $47, $B9, $47, $C3, $47, $CD, $47, $D7, $47, $E1, $47
Data_3036b: ; 0x3036b
db $08, $EB, $47, $F5, $47, $FF, $47, $09, $48, $13, $48, $1D, $48, $27, $48, $31, $48
Data_3037c: ; 0x3037c
db $08, $3B, $48, $45, $48, $4F, $48, $59, $48, $63, $48, $6D, $48, $77, $48, $81, $48
Data_3038d: ; 0x3038d
db $08, $8B, $48, $95, $48, $9F, $48, $A9, $48, $B3, $48, $BD, $48, $C7, $48, $D1, $48
Data_3039e: ; 0x3039e
db $08, $DB, $48, $E5, $48, $EF, $48, $F9, $48, $03, $49, $0D, $49, $17, $49, $21, $49
Data_303af: ; 0x303af
db $08, $2B, $49, $35, $49, $3F, $49, $49, $49, $53, $49, $5D, $49, $67, $49, $71, $49
Data_303c0: ; 0x303c0
db $08, $7B, $49, $85, $49, $8F, $49, $99, $49, $A3, $49, $AD, $49, $B7, $49, $C1, $49
Data_303d1: ; 0x303d1
db $08, $CB, $49, $D5, $49, $DF, $49, $E9, $49, $F3, $49, $FD, $49, $07, $4A, $11, $4A
Data_303e2: ; 0x303e2
db $08, $1B, $4A, $25, $4A, $2F, $4A, $39, $4A, $43, $4A, $4D, $4A, $57, $4A, $61, $4A
Data_303f3: ; 0x303f3
db $08, $6B, $4A, $75, $4A, $7F, $4A, $89, $4A, $93, $4A, $9D, $4A, $A7, $4A, $B1, $4A
Data_30404: ; 0x30404
db $08, $BB, $4A, $C5, $4A, $CF, $4A, $D9, $4A, $E3, $4A, $ED, $4A, $F7, $4A, $01, $4B
Data_30415: ; 0x30415
db $08, $0B, $4B, $15, $4B, $1F, $4B, $29, $4B, $33, $4B, $3D, $4B, $47, $4B, $51, $4B
Data_30426: ; 0x30426
db $08, $5B, $4B, $65, $4B, $6F, $4B, $79, $4B, $83, $4B, $8D, $4B, $97, $4B, $A1, $4B
Data_30437: ; 0x30437
db $08, $AB, $4B, $B5, $4B, $BF, $4B, $C9, $4B, $D3, $4B, $DD, $4B, $E7, $4B, $F1, $4B
Data_30448: ; 0x30448
db $08, $FB, $4B, $05, $4C, $0F, $4C, $19, $4C, $23, $4C, $2D, $4C, $37, $4C, $41, $4C
Data_30459: ; 0x30459
db $08, $4B, $4C, $55, $4C, $5F, $4C, $69, $4C, $73, $4C, $7D, $4C, $87, $4C, $91, $4C
Data_3046a: ; 0x3046a
db $08, $9B, $4C, $A5, $4C, $AF, $4C, $B9, $4C, $C3, $4C, $CD, $4C, $D7, $4C, $E1, $4C
INCBIN "baserom.gbc",$3047b,$30ceb - $3047b
PointerTable_30ceb: ; 0x30ceb
dw Data_30d21
dw Data_30d26
dw Data_30d2b
dw Data_30d30
dw Data_30d35
dw Data_30d3a
dw Data_30d3f
dw Data_30d44
dw Data_30d49
dw Data_30d4e
dw Data_30d53
dw Data_30d58
dw Data_30d5d
dw Data_30d62
dw Data_30d67
dw Data_30d6c
dw Data_30d71
dw Data_30d76
dw Data_30d7b
dw Data_30d80
dw Data_30d85
dw Data_30d8a
dw Data_30d8f
dw Data_30d94
dw Data_30d99
dw Data_30d9e
dw Data_30da3
Data_30d21: ; 0x30d21
db $02, $A8, $4D, $B1, $4D
Data_30d26: ; 0x30d26
db $02, $CD, $4D, $D6, $4D
Data_30d2b: ; 0x30d2b
db $02, $F2, $4D, $FB, $4D
Data_30d30: ; 0x30d30
db $02, $17, $4E, $20, $4E
Data_30d35: ; 0x30d35
db $02, $3C, $4E, $45, $4E
Data_30d3a: ; 0x30d3a
db $02, $61, $4E, $6A, $4E
Data_30d3f: ; 0x30d3f
db $02, $86, $4E, $8F, $4E
Data_30d44: ; 0x30d44
db $02, $AB, $4E, $B4, $4E
Data_30d49: ; 0x30d49
db $02, $D0, $4E, $D9, $4E
Data_30d4e: ; 0x30d4e
db $02, $F5, $4E, $FE, $4E
Data_30d53: ; 0x30d53
db $02, $1A, $4F, $23, $4F
Data_30d58: ; 0x30d58
db $02, $3F, $4F, $48, $4F
Data_30d5d: ; 0x30d5d
db $02, $64, $4F, $6D, $4F
Data_30d62: ; 0x30d62
db $02, $89, $4F, $92, $4F
Data_30d67: ; 0x30d67
db $02, $AE, $4F, $B7, $4F
Data_30d6c: ; 0x30d6c
db $02, $D3, $4F, $DC, $4F
Data_30d71: ; 0x30d71
db $02, $F8, $4F, $01, $50
Data_30d76: ; 0x30d76
db $02, $1D, $50, $26, $50
Data_30d7b: ; 0x30d7b
db $02, $42, $50, $4B, $50
Data_30d80: ; 0x30d80
db $02, $67, $50, $70, $50
Data_30d85: ; 0x30d85
db $02, $8C, $50, $95, $50
Data_30d8a: ; 0x30d8a
db $02, $B1, $50, $BA, $50
Data_30d8f: ; 0x30d8f
db $02, $D6, $50, $DF, $50
Data_30d94: ; 0x30d94
db $02, $FB, $50, $04, $51
Data_30d99: ; 0x30d99
db $02, $20, $51, $29, $51
Data_30d9e: ; 0x30d9e
db $02, $45, $51, $4E, $51
Data_30da3: ; 0x30da3
db $02, $6A, $51, $73, $51
INCBIN "baserom.gbc",$30da8,$3118f - $30da8
Func_3118f: ; 0x3118f
push bc
call Func_30e8
call Func_30db
ld a, [wCurrentMap]
sla a
ld c, a
ld b, $0
ld hl, $2ce3 ; todo
add hl, bc
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld hl, $d5d4
call Func_32aa
pop de
ld hl, $d5cc
call Func_32aa
ret
INCBIN "baserom.gbc",$311b4,$33fff - $311b4
SECTION "bankd", ROMX, BANK[$d]
SlotOnPic: ; 0x34000
INCBIN "gfx/billboard/slot/slot_on.2bpp"
SlotOffPic: ; 0x34180
INCBIN "gfx/billboard/slot/slot_off.2bpp"
INCBIN "baserom.gbc",$34300,$38000 - $34300 ; 0x34000
SECTION "banke", ROMX, BANK[$e]
INCBIN "baserom.gbc",$38000,$3c000 - $38000 ; 0x38000
SECTION "bankf", ROMX, BANK[$f]
INCBIN "baserom.gbc",$3c000,$3cca2 - $3c000
SongHeaderPointers0F: ; 0x3cca2
dw Music_Nothing0F
dw Music_BlueField
dw Music_CatchEmRed
dw Music_HurryUpRed
dw Music_Pokedex
dw Music_GastlyInTheGraveyard
dw Music_HaunterInTheGraveyard
dw Music_GengarInTheGraveyard
; 0x3ccb2
INCLUDE "audio/music/nothing0f.asm"
INCLUDE "audio/music/bluefield.asm"
INCLUDE "audio/music/catchemred.asm"
INCLUDE "audio/music/pokedex.asm"
INCLUDE "audio/music/hurryupred.asm"
INCLUDE "audio/music/gastlyinthegraveyard.asm"
INCLUDE "audio/music/haunterinthegraveyard.asm"
INCLUDE "audio/music/gengarinthegraveyard.asm"
INCBIN "baserom.gbc",$3e3ce,$40000 - $3e3ce
SECTION "bank10", ROMX, BANK[$10]
INCBIN "baserom.gbc",$40000,$40ca2 - $40000
SongHeaderPointers10: ; 0x40ca2
dw Music_Nothing10
dw Music_RedField
dw Music_CatchEmBlue
dw Music_HurryUpBlue
dw Music_HiScore
dw Music_GameOver
; 0x40cae
INCLUDE "audio/music/nothing10.asm"
INCLUDE "audio/music/redfield.asm"
INCLUDE "audio/music/catchemblue.asm"
INCLUDE "audio/music/hiscore.asm"
INCLUDE "audio/music/gameover.asm"
INCLUDE "audio/music/hurryupblue.asm"
INCBIN "baserom.gbc",$4255b,$44000 - $4255b
SECTION "bank11", ROMX, BANK[$11]
INCBIN "baserom.gbc",$44000,$44ca2 - $44000
SongHeaderPointers11: ; 0x44ca2
dw Music_Nothing11
dw Music_WhackTheDiglett
dw Music_WhackTheDugtrio
dw Music_SeelStage
dw Music_Title
; 0x44cac
INCLUDE "audio/music/nothing11.asm"
INCLUDE "audio/music/whackthediglett.asm"
INCLUDE "audio/music/whackthedugtrio.asm"
INCLUDE "audio/music/seelstage.asm"
INCLUDE "audio/music/title.asm"
INCBIN "baserom.gbc",$462d3,$48000 - $462d3
SECTION "bank12", ROMX, BANK[$12]
INCBIN "baserom.gbc",$48000,$48ca2 - $48000
SongHeaderPointers12: ; 0x48ca2
dw Music_Nothing12
dw Music_MewtwoStage
dw Music_Options
dw Music_FieldSelect
dw Music_MeowthStage
; 0x48cac
INCLUDE "audio/music/nothing12.asm"
INCLUDE "audio/music/mewtwostage.asm"
INCLUDE "audio/music/options.asm"
INCLUDE "audio/music/fieldselect.asm"
INCLUDE "audio/music/meowthstage.asm"
INCBIN "baserom.gbc",$49c04,$4c000 - $49c04
SECTION "bank13", ROMX, BANK[$13]
INCBIN "baserom.gbc",$4c000,$4cca2 - $4c000
SongHeaderPointers13: ; 0x4cca2
dw Music_Nothing13
dw Music_EndCredits
dw Music_NameEntry
; 0x4cca8
INCLUDE "audio/music/nothing13.asm"
INCLUDE "audio/music/endcredits.asm"
INCLUDE "audio/music/nameentry.asm"
INCBIN "baserom.gbc",$4def4,$50000 - $4def4
SECTION "bank14", ROMX, BANK[$14]
INCBIN "baserom.gbc",$50000,$54000 - $50000 ; 0x50000
SECTION "bank15", ROMX, BANK[$15]
INCBIN "baserom.gbc",$54000,$58000 - $54000 ; 0x54000
SECTION "bank16", ROMX, BANK[$16]
BallSaver30SecondsOnPic: ; 0x58000
INCBIN "gfx/billboard/slot/30secondballsaver_on.2bpp"
BallSaver30SecondsOffPic: ; 0x58180
INCBIN "gfx/billboard/slot/30secondballsaver_off.2bpp"
BallSaver60SecondsOnPic: ; 0x58300
INCBIN "gfx/billboard/slot/60secondballsaver_on.2bpp"
BallSaver60SecondsOffPic: ; 0x580480
INCBIN "gfx/billboard/slot/60secondballsaver_off.2bpp"
BallSaver90SecondsOnPic: ; 0x58600
INCBIN "gfx/billboard/slot/90secondballsaver_on.2bpp"
BallSaver90SecondsOffPic: ; 0x58780
INCBIN "gfx/billboard/slot/90secondballsaver_off.2bpp"
PikachuSaverOnPic: ; 0x58900
INCBIN "gfx/billboard/slot/pikachusaver_on.2bpp"
PikachuSaverOffPic: ; 0x58a80
INCBIN "gfx/billboard/slot/pikachusaver_off.2bpp"
ExtraBallOnPic: ; 0x58c00
INCBIN "gfx/billboard/slot/extraball_on.2bpp"
ExtraBallOffPic: ; 0x58d80
INCBIN "gfx/billboard/slot/extraball_off.2bpp"
SmallRewardOnPic: ; 0x58f00
INCBIN "gfx/billboard/slot/small_on.2bpp"
SmallRewardOffPic: ; 0x59080
INCBIN "gfx/billboard/slot/small_off.2bpp"
BigRewardOnPic: ; 0x59200
INCBIN "gfx/billboard/slot/big_on.2bpp"
BigRewardOffPic: ; 0x59380
INCBIN "gfx/billboard/slot/big_off.2bpp"
CatchEmModeOnPic: ; 0x59500
INCBIN "gfx/billboard/slot/catchem_on.2bpp"
CatchEmModeOffPic: ; 0x59680
INCBIN "gfx/billboard/slot/catchem_off.2bpp"
EvolutionModeOnPic: ; 0x59800
INCBIN "gfx/billboard/slot/evolution_on.2bpp"
EvolutionModeOffPic: ; 0x59980
INCBIN "gfx/billboard/slot/evolution_off.2bpp"
GreatBallOnPic: ; 0x59b00
INCBIN "gfx/billboard/slot/greatball_on.2bpp"
GreatBallOffPic: ; 0x59c80
INCBIN "gfx/billboard/slot/greatball_off.2bpp"
UltraBallOnPic: ; 0x59e00
INCBIN "gfx/billboard/slot/ultraball_on.2bpp"
UltraBallOffPic: ; 0x59f80
INCBIN "gfx/billboard/slot/ultraball_off.2bpp"
MasterBallOnPic: ; 0x5a100
INCBIN "gfx/billboard/slot/masterball_on.2bpp"
MasterBallOffPic: ; 0x5a280
INCBIN "gfx/billboard/slot/masterball_off.2bpp"
BonusMultiplierOnPic: ; 0x5a400
INCBIN "gfx/billboard/slot/bonusmultiplier_on.2bpp"
BonusMultiplierOffPic: ; 0x5a580
INCBIN "gfx/billboard/slot/bonusmultiplier_off.2bpp"
HurryUpOnPic: ; 0x5a700
INCBIN "gfx/billboard/hurryup_on.2bpp"
HurryUpOffPic: ; 0x5a880
INCBIN "gfx/billboard/hurryup_off.2bpp"
HurryUp2OnPic: ; 0x5aa00
INCBIN "gfx/billboard/hurryup2_on.2bpp"
HurryUp2OffPic: ; 0x5ab80
INCBIN "gfx/billboard/hurryup2_off.2bpp"
GoToNextOnPic: ; 0x5ad00
INCBIN "gfx/billboard/gotonext_on.2bpp"
GoToNextOffPic: ; 0x5ae80
INCBIN "gfx/billboard/gotonext_off.2bpp"
GoToGengarBonusOnPic: ; 0x5b000
INCBIN "gfx/billboard/bonus_stages/gotogengarbonus_on.2bpp"
GoToGengarBonusOffPic: ; 0x5b180
INCBIN "gfx/billboard/bonus_stages/gotogengarbonus_off.2bpp"
GoToMewtwoBonusOnPic: ; 0x5b300
INCBIN "gfx/billboard/bonus_stages/gotomewtwobonus_on.2bpp"
GoToMewtwoBonusOffPic: ; 0x5b480
INCBIN "gfx/billboard/bonus_stages/gotomewtwobonus_off.2bpp"
GoToMeowthBonusOnPic: ; 0x5b600
INCBIN "gfx/billboard/bonus_stages/gotomeowthbonus_on.2bpp"
GoToMeowthBonusOffPic: ; 0x5b780
INCBIN "gfx/billboard/bonus_stages/gotomeowthbonus_off.2bpp"
GoToDiglettBonusOnPic: ; 0x5b900
INCBIN "gfx/billboard/bonus_stages/gotodiglettbonus_on.2bpp"
GoToDiglettBonusOffPic: ; 0x5ba80
INCBIN "gfx/billboard/bonus_stages/gotodiglettbonus_off.2bpp"
GoToSeelBonusOnPic: ; 0x5bc00
INCBIN "gfx/billboard/bonus_stages/gotoseelbonus_on.2bpp"
GoToSeelBonusOffPic: ; 0x5bd80
INCBIN "gfx/billboard/bonus_stages/gotoseelbonus_off.2bpp"
INCBIN "baserom.gbc",$5bf00,$5c000 - $5bf00 ; 0x5bf00
SECTION "bank17", ROMX, BANK[$17]
SmallReward100PointsOnPic: ; 0x5c000
INCBIN "gfx/billboard/slot/100points_on.2bpp"
SmallReward100PointsOffPic: ; 0x5c180
INCBIN "gfx/billboard/slot/100points_off.2bpp"
SmallReward200PointsOnPic: ; 0x5c300
INCBIN "gfx/billboard/slot/200points_on.2bpp"
SmallReward200PointsOffPic: ; 0x54800
INCBIN "gfx/billboard/slot/200points_off.2bpp"
SmallReward300PointsOnPic: ; 0x5c600
INCBIN "gfx/billboard/slot/300points_on.2bpp"
SmallReward300PointsOffPic: ; 0x5c780
INCBIN "gfx/billboard/slot/300points_off.2bpp"
SmallReward400PointsOnPic: ; 0x5c900
INCBIN "gfx/billboard/slot/400points_on.2bpp"
SmallReward400PointsOffPic: ; 0x5ca80
INCBIN "gfx/billboard/slot/400points_off.2bpp"
SmallReward500PointsOnPic: ; 0x5cc00
INCBIN "gfx/billboard/slot/500points_on.2bpp"
SmallReward500PointsOffPic: ; 0x5cd80
INCBIN "gfx/billboard/slot/500points_off.2bpp"
SmallReward600PointsOnPic: ; 0x5cf00
INCBIN "gfx/billboard/slot/600points_on.2bpp"
SmallReward600PointsOffPic: ; 0x5d080
INCBIN "gfx/billboard/slot/600points_off.2bpp"
SmallReward700PointsOnPic: ; 0x5d200
INCBIN "gfx/billboard/slot/700points_on.2bpp"
SmallReward700PointsOffPic: ; 0x5d380
INCBIN "gfx/billboard/slot/700points_off.2bpp"
SmallReward800PointsOnPic: ; 0x5d500
INCBIN "gfx/billboard/slot/800points_on.2bpp"
SmallReward800PointsOffPic: ; 0x5d680
INCBIN "gfx/billboard/slot/800points_off.2bpp"
SmallReward900PointsOnPic: ; 0x5d800
INCBIN "gfx/billboard/slot/900points_on.2bpp"
SmallReward900PointsOffPic: ; 0x5d980
INCBIN "gfx/billboard/slot/900points_off.2bpp"
BigReward1000000PointsOnPic: ; 0x5db00
INCBIN "gfx/billboard/slot/1000000points_on.2bpp"
BigReward1000000PointsOffPic: ; 0x5dc80
INCBIN "gfx/billboard/slot/1000000points_off.2bpp"
BigReward2000000PointsOnPic: ; 0x5de00
INCBIN "gfx/billboard/slot/2000000points_on.2bpp"
BigReward2000000PointsOffPic: ; 0x5df80
INCBIN "gfx/billboard/slot/2000000points_off.2bpp"
BigReward3000000PointsOnPic: ; 0x5e100
INCBIN "gfx/billboard/slot/3000000points_on.2bpp"
BigReward3000000PointsOffPic: ; 0x5e280
INCBIN "gfx/billboard/slot/3000000points_off.2bpp"
BigReward4000000PointsOnPic: ; 0x5e400
INCBIN "gfx/billboard/slot/4000000points_on.2bpp"
BigReward4000000PointsOffPic: ; 0x5e580
INCBIN "gfx/billboard/slot/4000000points_off.2bpp"
BigReward5000000PointsOnPic: ; 0x5e700
INCBIN "gfx/billboard/slot/5000000points_on.2bpp"
BigReward5000000PointsOffPic: ; 0x5e880
INCBIN "gfx/billboard/slot/5000000points_off.2bpp"
BigReward6000000PointsOnPic: ; 0x5ea00
INCBIN "gfx/billboard/slot/6000000points_on.2bpp"
BigReward6000000PointsOffPic: ; 0x5eb80
INCBIN "gfx/billboard/slot/6000000points_off.2bpp"
BigReward7000000PointsOnPic: ; 0x5ed00
INCBIN "gfx/billboard/slot/7000000points_on.2bpp"
BigReward7000000PointsOffPic: ; 0x5ee80
INCBIN "gfx/billboard/slot/7000000points_off.2bpp"
BigReward8000000PointsOnPic: ; 0x5f000
INCBIN "gfx/billboard/slot/8000000points_on.2bpp"
BigReward8000000PointsOffPic: ; 0x5f180
INCBIN "gfx/billboard/slot/8000000points_off.2bpp"
BigReward9000000PointsOnPic: ; 0x5f300
INCBIN "gfx/billboard/slot/9000000points_on.2bpp"
BigReward9000000PointsOffPic: ; 0x5f480
INCBIN "gfx/billboard/slot/9000000points_off.2bpp"
INCBIN "baserom.gbc",$5f600,$60000 - $5f600 ; 0x5f600
SECTION "bank18", ROMX, BANK[$18]
VenomothPic: ; 0x60000
INCBIN "gfx/billboard/mon_pics/venomoth.2bpp"
VenomothSilhouettePic: ; 0x60180
INCBIN "gfx/billboard/mon_silhouettes/venomoth.2bpp"
DiglettPic: ; 0x60300
INCBIN "gfx/billboard/mon_pics/diglett.2bpp"
DiglettSilhouettePic: ; 0x60480
INCBIN "gfx/billboard/mon_silhouettes/diglett.2bpp"
DugtrioPic: ; 0x60600
INCBIN "gfx/billboard/mon_pics/dugtrio.2bpp"
DugtrioSilhouettePic: ; 0x60780
INCBIN "gfx/billboard/mon_silhouettes/dugtrio.2bpp"
MeowthPic: ; 0x60900
INCBIN "gfx/billboard/mon_pics/meowth.2bpp"
MeowthSilhouettePic: ; 0x60a80
INCBIN "gfx/billboard/mon_silhouettes/meowth.2bpp"
PersianPic: ; 0x60c00
INCBIN "gfx/billboard/mon_pics/persian.2bpp"
PersianSilhouettePic: ; 0x60d80
INCBIN "gfx/billboard/mon_silhouettes/persian.2bpp"
PsyduckPic: ; 0x60f00
INCBIN "gfx/billboard/mon_pics/psyduck.2bpp"
PsyduckSilhouettePic: ; 0x61080
INCBIN "gfx/billboard/mon_silhouettes/psyduck.2bpp"
GolduckPic: ; 0x61200
INCBIN "gfx/billboard/mon_pics/golduck.2bpp"
GolduckSilhouettePic: ; 0x61380
INCBIN "gfx/billboard/mon_silhouettes/golduck.2bpp"
MankeyPic: ; 0x61500
INCBIN "gfx/billboard/mon_pics/mankey.2bpp"
MankeySilhouettePic: ; 0x61680
INCBIN "gfx/billboard/mon_silhouettes/mankey.2bpp"
PrimeapePic: ; 0x61800
INCBIN "gfx/billboard/mon_pics/primeape.2bpp"
PrimeapeSilhouettePic: ; 0x61980
INCBIN "gfx/billboard/mon_silhouettes/primeape.2bpp"
GrowlithePic: ; 0x61b00
INCBIN "gfx/billboard/mon_pics/growlithe.2bpp"
GrowlitheSilhouettePic: ; 0x61c80
INCBIN "gfx/billboard/mon_silhouettes/growlithe.2bpp"
ArcaninePic: ; 0x61e00
INCBIN "gfx/billboard/mon_pics/arcanine.2bpp"
ArcanineSilhouettePic: ; 0x61f80
INCBIN "gfx/billboard/mon_silhouettes/arcanine.2bpp"
PoliwagPic: ; 0x62100
INCBIN "gfx/billboard/mon_pics/poliwag.2bpp"
PoliwagSilhouettePic: ; 0x62280
INCBIN "gfx/billboard/mon_silhouettes/poliwag.2bpp"
PoliwhirlPic: ; 0x62400
INCBIN "gfx/billboard/mon_pics/poliwhirl.2bpp"
PoliwhirlSilhouettePic: ; 0x62580
INCBIN "gfx/billboard/mon_silhouettes/poliwhirl.2bpp"
PoliwrathPic: ; 0x62700
INCBIN "gfx/billboard/mon_pics/poliwrath.2bpp"
PoliwrathSilhouettePic: ; 0x62880
INCBIN "gfx/billboard/mon_silhouettes/poliwrath.2bpp"
AbraPic: ; 0x62a00
INCBIN "gfx/billboard/mon_pics/abra.2bpp"
AbraSilhouettePic: ; 0x62b80
INCBIN "gfx/billboard/mon_silhouettes/abra.2bpp"
KadabraPic: ; 0x62d00
INCBIN "gfx/billboard/mon_pics/kadabra.2bpp"
KadabraSilhouettePic: ; 0x62e80
INCBIN "gfx/billboard/mon_silhouettes/kadabra.2bpp"
INCBIN "baserom.gbc",$63000,$64000 - $63000 ; 0x63000
SECTION "bank19", ROMX, BANK[$19]
NidorinoPic: ; 0x64000
INCBIN "gfx/billboard/mon_pics/nidorino.2bpp"
NidorinoSilhouettePic: ; 0x64180
INCBIN "gfx/billboard/mon_silhouettes/nidorino.2bpp"
NidokingPic: ; 0x64300
INCBIN "gfx/billboard/mon_pics/nidoking.2bpp"
NidokingSilhouettePic: ; 0x64480
INCBIN "gfx/billboard/mon_silhouettes/nidoking.2bpp"
ClefairyPic: ; 0x64600
INCBIN "gfx/billboard/mon_pics/clefairy.2bpp"
ClefairySilhouettePic: ; 0x64780
INCBIN "gfx/billboard/mon_silhouettes/clefairy.2bpp"
ClefablePic: ; 0x64900
INCBIN "gfx/billboard/mon_pics/clefable.2bpp"
ClefableSilhouettePic: ; 0x64a80
INCBIN "gfx/billboard/mon_silhouettes/clefable.2bpp"
VulpixPic: ; 0x64c00
INCBIN "gfx/billboard/mon_pics/vulpix.2bpp"
VulpixSilhouettePic: ; 0x64d80
INCBIN "gfx/billboard/mon_silhouettes/vulpix.2bpp"
NinetalesPic: ; 0x64f00
INCBIN "gfx/billboard/mon_pics/ninetales.2bpp"
NinetalesSilhouettePic: ; 0x65080
INCBIN "gfx/billboard/mon_silhouettes/ninetales.2bpp"
JigglypuffPic: ; 0x65200
INCBIN "gfx/billboard/mon_pics/jigglypuff.2bpp"
JigglypuffSilhouettePic: ; 0x65380
INCBIN "gfx/billboard/mon_silhouettes/jigglypuff.2bpp"
WigglytuffPic: ; 0x65500
INCBIN "gfx/billboard/mon_pics/wigglytuff.2bpp"
WigglytuffSilhouettePic: ; 0x65680
INCBIN "gfx/billboard/mon_silhouettes/wigglytuff.2bpp"
ZubatPic: ; 0x65800
INCBIN "gfx/billboard/mon_pics/zubat.2bpp"
ZubatSilhouettePic: ; 0x65980
INCBIN "gfx/billboard/mon_silhouettes/zubat.2bpp"
GolbatPic: ; 0x65b00
INCBIN "gfx/billboard/mon_pics/golbat.2bpp"
GolbatSilhouettePic: ; 0x65c80
INCBIN "gfx/billboard/mon_silhouettes/golbat.2bpp"
OddishPic: ; 0x65e00
INCBIN "gfx/billboard/mon_pics/oddish.2bpp"
OddishSilhouettePic: ; 0x65f80
INCBIN "gfx/billboard/mon_silhouettes/oddish.2bpp"
GloomPic: ; 0x66100
INCBIN "gfx/billboard/mon_pics/gloom.2bpp"
GloomSilhouettePic: ; 0x66280
INCBIN "gfx/billboard/mon_silhouettes/gloom.2bpp"
VileplumePic: ; 0x66400
INCBIN "gfx/billboard/mon_pics/vileplume.2bpp"
VileplumeSilhouettePic: ; 0x66580
INCBIN "gfx/billboard/mon_silhouettes/vileplume.2bpp"
ParasPic: ; 0x66700
INCBIN "gfx/billboard/mon_pics/paras.2bpp"
ParasSilhouettePic: ; 0x66880
INCBIN "gfx/billboard/mon_silhouettes/paras.2bpp"
ParasectPic: ; 0x66a00
INCBIN "gfx/billboard/mon_pics/parasect.2bpp"
ParasectSilhouettePic: ; 0x66b80
INCBIN "gfx/billboard/mon_silhouettes/parasect.2bpp"
VenonatPic: ; 0x66d00
INCBIN "gfx/billboard/mon_pics/venonat.2bpp"
VenonatSilhouettePic: ; 0x66e80
INCBIN "gfx/billboard/mon_silhouettes/venonat.2bpp"
INCBIN "baserom.gbc",$67000,$68000 - $67000 ; 0x67000
SECTION "bank1a", ROMX, BANK[$1a]
ChanseyPic: ; 0x68000
INCBIN "gfx/billboard/mon_pics/chansey.2bpp"
ChanseySilhouettePic: ; 0x68180
INCBIN "gfx/billboard/mon_silhouettes/chansey.2bpp"
TangelaPic: ; 0x68300
INCBIN "gfx/billboard/mon_pics/tangela.2bpp"
TangelaSilhouettePic: ; 0x68480
INCBIN "gfx/billboard/mon_silhouettes/tangela.2bpp"
KangaskhanPic: ; 0x68600
INCBIN "gfx/billboard/mon_pics/kangaskhan.2bpp"
KangaskhanSilhouettePic: ; 0x68780
INCBIN "gfx/billboard/mon_silhouettes/kangaskhan.2bpp"
HorseaPic: ; 0x68900
INCBIN "gfx/billboard/mon_pics/horsea.2bpp"
HorseaSilhouettePic: ; 0x68a80
INCBIN "gfx/billboard/mon_silhouettes/horsea.2bpp"
SeadraPic: ; 0x68c00
INCBIN "gfx/billboard/mon_pics/seadra.2bpp"
SeadraSilhouettePic: ; 0x68d80
INCBIN "gfx/billboard/mon_silhouettes/seadra.2bpp"
GoldeenPic: ; 0x68f00
INCBIN "gfx/billboard/mon_pics/goldeen.2bpp"
GoldeenSilhouettePic: ; 0x69080
INCBIN "gfx/billboard/mon_silhouettes/goldeen.2bpp"
SeakingPic: ; 0x69200
INCBIN "gfx/billboard/mon_pics/seaking.2bpp"
SeakingSilhouettePic: ; 0x69380
INCBIN "gfx/billboard/mon_silhouettes/seaking.2bpp"
StaryuPic: ; 0x69500
INCBIN "gfx/billboard/mon_pics/staryu.2bpp"
StaryuSilhouettePic: ; 0x69680
INCBIN "gfx/billboard/mon_silhouettes/staryu.2bpp"
StarmiePic: ; 0x69800
INCBIN "gfx/billboard/mon_pics/starmie.2bpp"
StarmieSilhouettePic: ; 0x69980
INCBIN "gfx/billboard/mon_silhouettes/starmie.2bpp"
Mr_MimePic: ; 0x69b00
INCBIN "gfx/billboard/mon_pics/mr_mime.2bpp"
Mr_MimeSilhouettePic: ; 0x69c80
INCBIN "gfx/billboard/mon_silhouettes/mr_mime.2bpp"
ScytherPic: ; 0x69e00
INCBIN "gfx/billboard/mon_pics/scyther.2bpp"
ScytherSilhouettePic: ; 0x69f80
INCBIN "gfx/billboard/mon_silhouettes/scyther.2bpp"
JynxPic: ; 0x6a100
INCBIN "gfx/billboard/mon_pics/jynx.2bpp"
JynxSilhouettePic: ; 0x6a280
INCBIN "gfx/billboard/mon_silhouettes/jynx.2bpp"
ElectabuzzPic: ; 0x6a400
INCBIN "gfx/billboard/mon_pics/electabuzz.2bpp"
ElectabuzzSilhouettePic: ; 0x6a580
INCBIN "gfx/billboard/mon_silhouettes/electabuzz.2bpp"
MagmarPic: ; 0x6a700
INCBIN "gfx/billboard/mon_pics/magmar.2bpp"
MagmarSilhouettePic: ; 0x6a880
INCBIN "gfx/billboard/mon_silhouettes/magmar.2bpp"
PinsirPic: ; 0x6aa00
INCBIN "gfx/billboard/mon_pics/pinsir.2bpp"
PinsirSilhouettePic: ; 0x6ab80
INCBIN "gfx/billboard/mon_silhouettes/pinsir.2bpp"
TaurosPic: ; 0x6ad00
INCBIN "gfx/billboard/mon_pics/tauros.2bpp"
TaurosSilhouettePic: ; 0x6ae80
INCBIN "gfx/billboard/mon_silhouettes/tauros.2bpp"
INCBIN "baserom.gbc",$6b000,$6c000 - $6b000 ; 0x6b000
SECTION "bank1b", ROMX, BANK[$1b]
MagikarpPic: ; 0x6c000
INCBIN "gfx/billboard/mon_pics/magikarp.2bpp"
MagikarpSilhouettePic: ; 0x6c180
INCBIN "gfx/billboard/mon_silhouettes/magikarp.2bpp"
GyaradosPic: ; 0x6c300
INCBIN "gfx/billboard/mon_pics/gyarados.2bpp"
GyaradosSilhouettePic: ; 0x6c480
INCBIN "gfx/billboard/mon_silhouettes/gyarados.2bpp"
LaprasPic: ; 0x6c600
INCBIN "gfx/billboard/mon_pics/lapras.2bpp"
LaprasSilhouettePic: ; 0x6c780
INCBIN "gfx/billboard/mon_silhouettes/lapras.2bpp"
DittoPic: ; 0x6c900
INCBIN "gfx/billboard/mon_pics/ditto.2bpp"
DittoSilhouettePic: ; 0x6ca80
INCBIN "gfx/billboard/mon_silhouettes/ditto.2bpp"
EeveePic: ; 0x6cc00
INCBIN "gfx/billboard/mon_pics/eevee.2bpp"
EeveeSilhouettePic: ; 0x6cd80
INCBIN "gfx/billboard/mon_silhouettes/eevee.2bpp"
VaporeonPic: ; 0x6cf00
INCBIN "gfx/billboard/mon_pics/vaporeon.2bpp"
VaporeonSilhouettePic: ; 0x6d080
INCBIN "gfx/billboard/mon_silhouettes/vaporeon.2bpp"
JolteonPic: ; 0x6d200
INCBIN "gfx/billboard/mon_pics/jolteon.2bpp"
JolteonSilhouettePic: ; 0x6d380
INCBIN "gfx/billboard/mon_silhouettes/jolteon.2bpp"
FlareonPic: ; 0x6d500
INCBIN "gfx/billboard/mon_pics/flareon.2bpp"
FlareonSilhouettePic: ; 0x6d680
INCBIN "gfx/billboard/mon_silhouettes/flareon.2bpp"
PorygonPic: ; 0x6d800
INCBIN "gfx/billboard/mon_pics/porygon.2bpp"
PorygonSilhouettePic: ; 0x6d980
INCBIN "gfx/billboard/mon_silhouettes/porygon.2bpp"
OmanytePic: ; 0x6db00
INCBIN "gfx/billboard/mon_pics/omanyte.2bpp"
OmanyteSilhouettePic: ; 0x6dc80
INCBIN "gfx/billboard/mon_silhouettes/omanyte.2bpp"
OmastarPic: ; 0x6de00
INCBIN "gfx/billboard/mon_pics/omastar.2bpp"
OmastarSilhouettePic: ; 0x6df80
INCBIN "gfx/billboard/mon_silhouettes/omastar.2bpp"
KabutoPic: ; 0x6e100
INCBIN "gfx/billboard/mon_pics/kabuto.2bpp"
KabutoSilhouettePic: ; 0x6e280
INCBIN "gfx/billboard/mon_silhouettes/kabuto.2bpp"
KabutopsPic: ; 0x6e400
INCBIN "gfx/billboard/mon_pics/kabutops.2bpp"
KabutopsSilhouettePic: ; 0x6e580
INCBIN "gfx/billboard/mon_silhouettes/kabutops.2bpp"
AerodactylPic: ; 0x6e700
INCBIN "gfx/billboard/mon_pics/aerodactyl.2bpp"
AerodactylSilhouettePic: ; 0x6e880
INCBIN "gfx/billboard/mon_silhouettes/aerodactyl.2bpp"
SnorlaxPic: ; 0x6ea00
INCBIN "gfx/billboard/mon_pics/snorlax.2bpp"
SnorlaxSilhouettePic: ; 0x6eb80
INCBIN "gfx/billboard/mon_silhouettes/snorlax.2bpp"
ArticunoPic: ; 0x6ed00
INCBIN "gfx/billboard/mon_pics/articuno.2bpp"
ArticunoSilhouettePic: ; 0x6ee80
INCBIN "gfx/billboard/mon_silhouettes/articuno.2bpp"
INCBIN "baserom.gbc",$6f000,$70000 - $6f000 ; 0x6f000
SECTION "bank1c", ROMX, BANK[$1c]
ZapdosPic: ; 0x70000
INCBIN "gfx/billboard/mon_pics/zapdos.2bpp"
ZapdosSilhouettePic: ; 0x70180
INCBIN "gfx/billboard/mon_silhouettes/zapdos.2bpp"
MoltresPic: ; 0x70300
INCBIN "gfx/billboard/mon_pics/moltres.2bpp"
MoltresSilhouettePic: ; 0x70480
INCBIN "gfx/billboard/mon_silhouettes/moltres.2bpp"
DratiniPic: ; 0x70600
INCBIN "gfx/billboard/mon_pics/dratini.2bpp"
DratiniSilhouettePic: ; 0x70780
INCBIN "gfx/billboard/mon_silhouettes/dratini.2bpp"
DragonairPic: ; 0x70900
INCBIN "gfx/billboard/mon_pics/dragonair.2bpp"
DragonairSilhouettePic: ; 0x70a80
INCBIN "gfx/billboard/mon_silhouettes/dragonair.2bpp"
DragonitePic: ; 0x70c00
INCBIN "gfx/billboard/mon_pics/dragonite.2bpp"
DragoniteSilhouettePic: ; 0x70d80
INCBIN "gfx/billboard/mon_silhouettes/dragonite.2bpp"
MewtwoPic: ; 0x70f00
INCBIN "gfx/billboard/mon_pics/mewtwo.2bpp"
MewtwoSilhouettePic: ; 0x71080
INCBIN "gfx/billboard/mon_silhouettes/mewtwo.2bpp"
MewPic: ; 0x71200
INCBIN "gfx/billboard/mon_pics/mew.2bpp"
MewSilhouettePic: ; 0x71380
INCBIN "gfx/billboard/mon_silhouettes/mew.2bpp"
INCBIN "baserom.gbc",$71500,$74000 - $71500 ; 0x71500
SECTION "bank1d", ROMX, BANK[$1d]
PidgeottoPic: ; 0x74000
INCBIN "gfx/billboard/mon_pics/pidgeotto.2bpp"
PidgeottoSilhouettePic: ; 0x74180
INCBIN "gfx/billboard/mon_silhouettes/pidgeotto.2bpp"
PidgeotPic: ; 0x74300
INCBIN "gfx/billboard/mon_pics/pidgeot.2bpp"
PidgeotSilhouettePic: ; 0x74480
INCBIN "gfx/billboard/mon_silhouettes/pidgeot.2bpp"
RattataPic: ; 0x74600
INCBIN "gfx/billboard/mon_pics/rattata.2bpp"
RattataSilhouettePic: ; 0x74780
INCBIN "gfx/billboard/mon_silhouettes/rattata.2bpp"
RaticatePic: ; 0x74900
INCBIN "gfx/billboard/mon_pics/raticate.2bpp"
RaticateSilhouettePic: ; 0x74a80
INCBIN "gfx/billboard/mon_silhouettes/raticate.2bpp"
SpearowPic: ; 0x74c00
INCBIN "gfx/billboard/mon_pics/spearow.2bpp"
SpearowSilhouettePic: ; 0x74d80
INCBIN "gfx/billboard/mon_silhouettes/spearow.2bpp"
FearowPic: ; 0x74f00
INCBIN "gfx/billboard/mon_pics/fearow.2bpp"
FearowSilhouettePic: ; 0x75080
INCBIN "gfx/billboard/mon_silhouettes/fearow.2bpp"
EkansPic: ; 0x75200
INCBIN "gfx/billboard/mon_pics/ekans.2bpp"
EkansSilhouettePic: ; 0x75380
INCBIN "gfx/billboard/mon_silhouettes/ekans.2bpp"
ArbokPic: ; 0x75500
INCBIN "gfx/billboard/mon_pics/arbok.2bpp"
ArbokSilhouettePic: ; 0x75680
INCBIN "gfx/billboard/mon_silhouettes/arbok.2bpp"
PikachuPic: ; 0x75800
INCBIN "gfx/billboard/mon_pics/pikachu.2bpp"
PikachuSilhouettePic: ; 0x75980
INCBIN "gfx/billboard/mon_silhouettes/pikachu.2bpp"
RaichuPic: ; 0x75b00
INCBIN "gfx/billboard/mon_pics/raichu.2bpp"
RaichuSilhouettePic: ; 0x75c80
INCBIN "gfx/billboard/mon_silhouettes/raichu.2bpp"
SandshrewPic: ; 0x75e00
INCBIN "gfx/billboard/mon_pics/sandshrew.2bpp"
SandshrewSilhouettePic: ; 0x75f80
INCBIN "gfx/billboard/mon_silhouettes/sandshrew.2bpp"
SandslashPic: ; 0x76100
INCBIN "gfx/billboard/mon_pics/sandslash.2bpp"
SandslashSilhouettePic: ; 0x76280
INCBIN "gfx/billboard/mon_silhouettes/sandslash.2bpp"
Nidoran_FPic: ; 0x76400
INCBIN "gfx/billboard/mon_pics/nidoran_f.2bpp"
Nidoran_FSilhouettePic: ; 0x76580
INCBIN "gfx/billboard/mon_silhouettes/nidoran_f.2bpp"
NidorinaPic: ; 0x76700
INCBIN "gfx/billboard/mon_pics/nidorina.2bpp"
NidorinaSilhouettePic: ; 0x76880
INCBIN "gfx/billboard/mon_silhouettes/nidorina.2bpp"
NidoqueenPic: ; 0x76a00
INCBIN "gfx/billboard/mon_pics/nidoqueen.2bpp"
NidoqueenSilhouettePic: ; 0x76b80
INCBIN "gfx/billboard/mon_silhouettes/nidoqueen.2bpp"
Nidoran_MPic: ; 0x76d00
INCBIN "gfx/billboard/mon_pics/nidoran_m.2bpp"
Nidoran_MSilhouettePic: ; 0x76e80
INCBIN "gfx/billboard/mon_silhouettes/nidoran_m.2bpp"
INCBIN "baserom.gbc",$77000,$78000 - $77000 ; 0x77000
SECTION "bank1e", ROMX, BANK[$1e]
BulbasaurPic: ; 0x78000
INCBIN "gfx/billboard/mon_pics/bulbasaur.2bpp"
BulbasaurSilhouettePic: ; 0x78180
INCBIN "gfx/billboard/mon_silhouettes/bulbasaur.2bpp"
IvysaurPic: ; 0x78300
INCBIN "gfx/billboard/mon_pics/ivysaur.2bpp"
IvysaurSilhouettePic: ; 0x78480
INCBIN "gfx/billboard/mon_silhouettes/ivysaur.2bpp"
VenusaurPic: ; 0x78600
INCBIN "gfx/billboard/mon_pics/venusaur.2bpp"
VenusaurSilhouettePic: ; 0x78780
INCBIN "gfx/billboard/mon_silhouettes/venusaur.2bpp"
CharmanderPic: ; 0x78900
INCBIN "gfx/billboard/mon_pics/charmander.2bpp"
CharmanderSilhouettePic: ; 0x78a80
INCBIN "gfx/billboard/mon_silhouettes/charmander.2bpp"
CharmeleonPic: ; 0x78c00
INCBIN "gfx/billboard/mon_pics/charmeleon.2bpp"
CharmeleonSilhouettePic: ; 0x78d80
INCBIN "gfx/billboard/mon_silhouettes/charmeleon.2bpp"
CharizardPic: ; 0x78f00
INCBIN "gfx/billboard/mon_pics/charizard.2bpp"
CharizardSilhouettePic: ; 0x79080
INCBIN "gfx/billboard/mon_silhouettes/charizard.2bpp"
SquirtlePic: ; 0x79200
INCBIN "gfx/billboard/mon_pics/squirtle.2bpp"
SquirtleSilhouettePic: ; 0x79380
INCBIN "gfx/billboard/mon_silhouettes/squirtle.2bpp"
WartortlePic: ; 0x79500
INCBIN "gfx/billboard/mon_pics/wartortle.2bpp"
WartortleSilhouettePic: ; 0x79680
INCBIN "gfx/billboard/mon_silhouettes/wartortle.2bpp"
BlastoisePic: ; 0x79800
INCBIN "gfx/billboard/mon_pics/blastoise.2bpp"
BlastoiseSilhouettePic: ; 0x79980
INCBIN "gfx/billboard/mon_silhouettes/blastoise.2bpp"
CaterpiePic: ; 0x79b00
INCBIN "gfx/billboard/mon_pics/caterpie.2bpp"
CaterpieSilhouettePic: ; 0x79c80
INCBIN "gfx/billboard/mon_silhouettes/caterpie.2bpp"
MetapodPic: ; 0x79e00
INCBIN "gfx/billboard/mon_pics/metapod.2bpp"
MetapodSilhouettePic: ; 0x79f80
INCBIN "gfx/billboard/mon_silhouettes/metapod.2bpp"
ButterfreePic: ; 0x7a100
INCBIN "gfx/billboard/mon_pics/butterfree.2bpp"
ButterfreeSilhouettePic: ; 0x7a280
INCBIN "gfx/billboard/mon_silhouettes/butterfree.2bpp"
WeedlePic: ; 0x7a400
INCBIN "gfx/billboard/mon_pics/weedle.2bpp"
WeedleSilhouettePic: ; 0x7a580
INCBIN "gfx/billboard/mon_silhouettes/weedle.2bpp"
KakunaPic: ; 0x7a700
INCBIN "gfx/billboard/mon_pics/kakuna.2bpp"
KakunaSilhouettePic: ; 0x7a880
INCBIN "gfx/billboard/mon_silhouettes/kakuna.2bpp"
BeedrillPic: ; 0x7aa00
INCBIN "gfx/billboard/mon_pics/beedrill.2bpp"
BeedrillSilhouettePic: ; 0x7ab80
INCBIN "gfx/billboard/mon_silhouettes/beedrill.2bpp"
PidgeyPic: ; 0x7ad00
INCBIN "gfx/billboard/mon_pics/pidgey.2bpp"
PidgeySilhouettePic: ; 0x7ae80
INCBIN "gfx/billboard/mon_silhouettes/pidgey.2bpp"
BonusMultiplierX1OnPic: ; 0x7b000
INCBIN "gfx/billboard/slot/bonusmultiplierX1_on.2bpp"
BonusMultiplierX1OffPic: ; 0x7b180
INCBIN "gfx/billboard/slot/bonusmultiplierX1_off.2bpp"
BonusMultiplierX2OnPic: ; 0x7b300
INCBIN "gfx/billboard/slot/bonusmultiplierX2_on.2bpp"
BonusMultiplierX2OffPic: ; 0x7b480
INCBIN "gfx/billboard/slot/bonusmultiplierX2_off.2bpp"
BonusMultiplierX3OnPic: ; 0x7b600
INCBIN "gfx/billboard/slot/bonusmultiplierX3_on.2bpp"
BonusMultiplierX3OffPic: ; 0x7b780
INCBIN "gfx/billboard/slot/bonusmultiplierX3_off.2bpp"
BonusMultiplierX4OnPic: ; 0x7b900
INCBIN "gfx/billboard/slot/bonusmultiplierX4_on.2bpp"
BonusMultiplierX4OffPic: ; 0x7ba80
INCBIN "gfx/billboard/slot/bonusmultiplierX4_off.2bpp"
BonusMultiplierX5OnPic: ; 0x7bc00
INCBIN "gfx/billboard/slot/bonusmultiplierX5_on.2bpp"
BonusMultiplierX5OffPic: ; 0x7bd80
INCBIN "gfx/billboard/slot/bonusmultiplierX5_off.2bpp"
INCBIN "baserom.gbc",$7bf00,$7c000 - $7bf00 ; 0x7bf00
SECTION "bank1f", ROMX, BANK[$1f]
SlowpokeAnimatedPic: ; 0x7c000
INCBIN "gfx/billboard/mon_animated/slowpoke.2bpp"
MagnemiteAnimatedPic: ; 0x7c300
INCBIN "gfx/billboard/mon_animated/magnemite.2bpp"
Farfetch_DAnimatedPic: ; 0x7c600
INCBIN "gfx/billboard/mon_animated/farfetch_d.2bpp"
DoduoAnimatedPic: ; 0x7c900
INCBIN "gfx/billboard/mon_animated/doduo.2bpp"
SeelAnimatedPic: ; 0x7cc00
INCBIN "gfx/billboard/mon_animated/seel.2bpp"
GrimerAnimatedPic: ; 0x7cf00
INCBIN "gfx/billboard/mon_animated/grimer.2bpp"
ShellderAnimatedPic: ; 0x7d200
INCBIN "gfx/billboard/mon_animated/shellder.2bpp"
GastlyAnimatedPic: ; 0x7d500
INCBIN "gfx/billboard/mon_animated/gastly.2bpp"
OnixAnimatedPic: ; 0x7d800
INCBIN "gfx/billboard/mon_animated/onix.2bpp"
DrowzeeAnimatedPic: ; 0x7db00
INCBIN "gfx/billboard/mon_animated/drowzee.2bpp"
KrabbyAnimatedPic: ; 0x7de00
INCBIN "gfx/billboard/mon_animated/krabby.2bpp"
VoltorbAnimatedPic: ; 0x7e100
INCBIN "gfx/billboard/mon_animated/voltorb.2bpp"
ExeggcuteAnimatedPic: ; 0x7e400
INCBIN "gfx/billboard/mon_animated/exeggcute.2bpp"
CuboneAnimatedPic: ; 0x7e700
INCBIN "gfx/billboard/mon_animated/cubone.2bpp"
HitmonleeAnimatedPic: ; 0x7ea00
INCBIN "gfx/billboard/mon_animated/hitmonlee.2bpp"
HitmonchanAnimatedPic: ; 0x7ed00
INCBIN "gfx/billboard/mon_animated/hitmonchan.2bpp"
INCBIN "baserom.gbc",$7f000,$80000 - $7f000 ; 0x7f000
SECTION "bank20", ROMX, BANK[$20]
LickitungAnimatedPic: ; 0x80000
INCBIN "gfx/billboard/mon_animated/lickitung.2bpp"
KoffingAnimatedPic: ; 0x80300
INCBIN "gfx/billboard/mon_animated/koffing.2bpp"
RhyhornAnimatedPic: ; 0x80600
INCBIN "gfx/billboard/mon_animated/rhyhorn.2bpp"
ChanseyAnimatedPic: ; 0x80900
INCBIN "gfx/billboard/mon_animated/chansey.2bpp"
TangelaAnimatedPic: ; 0x80c00
INCBIN "gfx/billboard/mon_animated/tangela.2bpp"
KangaskhanAnimatedPic: ; 0x80f00
INCBIN "gfx/billboard/mon_animated/kangaskhan.2bpp"
HorseaAnimatedPic: ; 0x81200
INCBIN "gfx/billboard/mon_animated/horsea.2bpp"
GoldeenAnimatedPic: ; 0x81500
INCBIN "gfx/billboard/mon_animated/goldeen.2bpp"
StaryuAnimatedPic: ; 0x81800
INCBIN "gfx/billboard/mon_animated/staryu.2bpp"
Mr_MimeAnimatedPic: ; 0x81b00
INCBIN "gfx/billboard/mon_animated/mr_mime.2bpp"
ScytherAnimatedPic: ; 0x81e00
INCBIN "gfx/billboard/mon_animated/scyther.2bpp"
JynxAnimatedPic: ; 0x82100
INCBIN "gfx/billboard/mon_animated/jynx.2bpp"
ElectabuzzAnimatedPic: ; 0x82400
INCBIN "gfx/billboard/mon_animated/electabuzz.2bpp"
MagmarAnimatedPic: ; 0x82700
INCBIN "gfx/billboard/mon_animated/magmar.2bpp"
PinsirAnimatedPic: ; 0x82a00
INCBIN "gfx/billboard/mon_animated/pinsir.2bpp"
TaurosAnimatedPic: ; 0x82d00
INCBIN "gfx/billboard/mon_animated/tauros.2bpp"
INCBIN "baserom.gbc",$83000,$84000 - $83000 ; 0x83000
SECTION "bank21", ROMX, BANK[$21]
MagikarpAnimatedPic: ; 0x84000
INCBIN "gfx/billboard/mon_animated/magikarp.2bpp"
LaprasAnimatedPic: ; 0x84300
INCBIN "gfx/billboard/mon_animated/lapras.2bpp"
DittoAnimatedPic: ; 0x84600
INCBIN "gfx/billboard/mon_animated/ditto.2bpp"
EeveeAnimatedPic: ; 0x84900
INCBIN "gfx/billboard/mon_animated/eevee.2bpp"
PorygonAnimatedPic: ; 0x84c00
INCBIN "gfx/billboard/mon_animated/porygon.2bpp"
OmanyteAnimatedPic: ; 0x84f00
INCBIN "gfx/billboard/mon_animated/omanyte.2bpp"
KabutoAnimatedPic: ; 0x85200
INCBIN "gfx/billboard/mon_animated/kabuto.2bpp"
AerodactylAnimatedPic: ; 0x85500
INCBIN "gfx/billboard/mon_animated/aerodactyl.2bpp"
SnorlaxAnimatedPic: ; 0x85800
INCBIN "gfx/billboard/mon_animated/snorlax.2bpp"
ArticunoAnimatedPic: ; 0x85b00
INCBIN "gfx/billboard/mon_animated/articuno.2bpp"
ZapdosAnimatedPic: ; 0x85e00
INCBIN "gfx/billboard/mon_animated/zapdos.2bpp"
MoltresAnimatedPic: ; 0x86100
INCBIN "gfx/billboard/mon_animated/moltres.2bpp"
DratiniAnimatedPic: ; 0x86400
INCBIN "gfx/billboard/mon_animated/dratini.2bpp"
MewtwoAnimatedPic: ; 0x86700
INCBIN "gfx/billboard/mon_animated/mewtwo.2bpp"
MewAnimatedPic: ; 0x86a00
INCBIN "gfx/billboard/mon_animated/mew.2bpp"
INCBIN "baserom.gbc",$86d00,$88000 - $86d00 ; 0x86d00
SECTION "bank22", ROMX, BANK[$22]
ZubatAnimatedPic: ; 0x88000
INCBIN "gfx/billboard/mon_animated/zubat.2bpp"
OddishAnimatedPic: ; 0x88300
INCBIN "gfx/billboard/mon_animated/oddish.2bpp"
ParasAnimatedPic: ; 0x88600
INCBIN "gfx/billboard/mon_animated/paras.2bpp"
VenonatAnimatedPic: ; 0x88900
INCBIN "gfx/billboard/mon_animated/venonat.2bpp"
DiglettAnimatedPic: ; 0x88c00
INCBIN "gfx/billboard/mon_animated/diglett.2bpp"
MeowthAnimatedPic: ; 0x88f00
INCBIN "gfx/billboard/mon_animated/meowth.2bpp"
PsyduckAnimatedPic: ; 0x89200
INCBIN "gfx/billboard/mon_animated/psyduck.2bpp"
MankeyAnimatedPic: ; 0x89500
INCBIN "gfx/billboard/mon_animated/mankey.2bpp"
GrowlitheAnimatedPic: ; 0x89800
INCBIN "gfx/billboard/mon_animated/growlithe.2bpp"
PoliwagAnimatedPic: ; 0x89b00
INCBIN "gfx/billboard/mon_animated/poliwag.2bpp"
AbraAnimatedPic: ; 0x89e00
INCBIN "gfx/billboard/mon_animated/abra.2bpp"
MachopAnimatedPic: ; 0x8a100
INCBIN "gfx/billboard/mon_animated/machop.2bpp"
BellsproutAnimatedPic: ; 0x8a400
INCBIN "gfx/billboard/mon_animated/bellsprout.2bpp"
TentacoolAnimatedPic: ; 0x8a700
INCBIN "gfx/billboard/mon_animated/tentacool.2bpp"
GeodudeAnimatedPic: ; 0x8aa00
INCBIN "gfx/billboard/mon_animated/geodude.2bpp"
PonytaAnimatedPic: ; 0x8ad00
INCBIN "gfx/billboard/mon_animated/ponyta.2bpp"
FieldSelectScreenGfx:
FieldSelectBlinkingBorderGfx: ; 0x8b000
INCBIN "gfx/field_select/blinking_border.2bpp"
FieldSelectGfx: ; 0x8b100
INCBIN "gfx/field_select/field_select_tiles.2bpp"
INCBIN "baserom.gbc",$8bd00,$8c000 - $8bd00 ; 0x8bd00
SECTION "bank23", ROMX, BANK[$23]
BulbasaurAnimatedPic: ; 0x8c000
INCBIN "gfx/billboard/mon_animated/bulbasaur.2bpp"
CharmanderAnimatedPic: ; 0x8c300
INCBIN "gfx/billboard/mon_animated/charmander.2bpp"
SquirtleAnimatedPic: ; 0x8c600
INCBIN "gfx/billboard/mon_animated/squirtle.2bpp"
CaterpieAnimatedPic: ; 0x8c900
INCBIN "gfx/billboard/mon_animated/caterpie.2bpp"
WeedleAnimatedPic: ; 0x8cc00
INCBIN "gfx/billboard/mon_animated/weedle.2bpp"
PidgeyAnimatedPic: ; 0x8cf00
INCBIN "gfx/billboard/mon_animated/pidgey.2bpp"
RattataAnimatedPic: ; 0x8d200
INCBIN "gfx/billboard/mon_animated/rattata.2bpp"
SpearowAnimatedPic: ; 0x8d500
INCBIN "gfx/billboard/mon_animated/spearow.2bpp"
EkansAnimatedPic: ; 0x8d800
INCBIN "gfx/billboard/mon_animated/ekans.2bpp"
PikachuAnimatedPic: ; 0x8db00
INCBIN "gfx/billboard/mon_animated/pikachu.2bpp"
SandshrewAnimatedPic: ; 0x8de00
INCBIN "gfx/billboard/mon_animated/sandshrew.2bpp"
Nidoran_FAnimatedPic: ; 0x8e100
INCBIN "gfx/billboard/mon_animated/nidoran_f.2bpp"
Nidoran_MAnimatedPic: ; 0x8e400
INCBIN "gfx/billboard/mon_animated/nidoran_m.2bpp"
ClefairyAnimatedPic: ; 0x8e700
INCBIN "gfx/billboard/mon_animated/clefairy.2bpp"
VulpixAnimatedPic: ; 0x8ea00
INCBIN "gfx/billboard/mon_animated/vulpix.2bpp"
JigglypuffAnimatedPic: ; 0x8ed00
INCBIN "gfx/billboard/mon_animated/jigglypuff.2bpp"
INCBIN "baserom.gbc",$8f000,$90000 - $8f000 ; 0x8f000
SECTION "bank24", ROMX, BANK[$24]
HypnoPic: ; 0x90000
INCBIN "gfx/billboard/mon_pics/hypno.2bpp"
HypnoSilhouettePic: ; 0x90180
INCBIN "gfx/billboard/mon_silhouettes/hypno.2bpp"
KrabbyPic: ; 0x90300
INCBIN "gfx/billboard/mon_pics/krabby.2bpp"
KrabbySilhouettePic: ; 0x90480
INCBIN "gfx/billboard/mon_silhouettes/krabby.2bpp"
KinglerPic: ; 0x90600
INCBIN "gfx/billboard/mon_pics/kingler.2bpp"
KinglerSilhouettePic: ; 0x90780
INCBIN "gfx/billboard/mon_silhouettes/kingler.2bpp"
VoltorbPic: ; 0x90900
INCBIN "gfx/billboard/mon_pics/voltorb.2bpp"
VoltorbSilhouettePic: ; 0x90a80
INCBIN "gfx/billboard/mon_silhouettes/voltorb.2bpp"
ElectrodePic: ; 0x90c00
INCBIN "gfx/billboard/mon_pics/electrode.2bpp"
ElectrodeSilhouettePic: ; 0x90d80
INCBIN "gfx/billboard/mon_silhouettes/electrode.2bpp"
ExeggcutePic: ; 0x90f00
INCBIN "gfx/billboard/mon_pics/exeggcute.2bpp"
ExeggcuteSilhouettePic: ; 0x91080
INCBIN "gfx/billboard/mon_silhouettes/exeggcute.2bpp"
ExeggutorPic: ; 0x91200
INCBIN "gfx/billboard/mon_pics/exeggutor.2bpp"
ExeggutorSilhouettePic: ; 0x91380
INCBIN "gfx/billboard/mon_silhouettes/exeggutor.2bpp"
CubonePic: ; 0x91500
INCBIN "gfx/billboard/mon_pics/cubone.2bpp"
CuboneSilhouettePic: ; 0x91680
INCBIN "gfx/billboard/mon_silhouettes/cubone.2bpp"
MarowakPic: ; 0x91800
INCBIN "gfx/billboard/mon_pics/marowak.2bpp"
MarowakSilhouettePic: ; 0x91980
INCBIN "gfx/billboard/mon_silhouettes/marowak.2bpp"
HitmonleePic: ; 0x91b00
INCBIN "gfx/billboard/mon_pics/hitmonlee.2bpp"
HitmonleeSilhouettePic: ; 0x91c80
INCBIN "gfx/billboard/mon_silhouettes/hitmonlee.2bpp"
HitmonchanPic: ; 0x91e00
INCBIN "gfx/billboard/mon_pics/hitmonchan.2bpp"
HitmonchanSilhouettePic: ; 0x91f80
INCBIN "gfx/billboard/mon_silhouettes/hitmonchan.2bpp"
LickitungPic: ; 0x92100
INCBIN "gfx/billboard/mon_pics/lickitung.2bpp"
LickitungSilhouettePic: ; 0x92280
INCBIN "gfx/billboard/mon_silhouettes/lickitung.2bpp"
KoffingPic: ; 0x92400
INCBIN "gfx/billboard/mon_pics/koffing.2bpp"
KoffingSilhouettePic: ; 0x92580
INCBIN "gfx/billboard/mon_silhouettes/koffing.2bpp"
WeezingPic: ; 0x92700
INCBIN "gfx/billboard/mon_pics/weezing.2bpp"
WeezingSilhouettePic: ; 0x92880
INCBIN "gfx/billboard/mon_silhouettes/weezing.2bpp"
RhyhornPic: ; 0x92a00
INCBIN "gfx/billboard/mon_pics/rhyhorn.2bpp"
RhyhornSilhouettePic: ; 0x92b80
INCBIN "gfx/billboard/mon_silhouettes/rhyhorn.2bpp"
RhydonPic: ; 0x92d00
INCBIN "gfx/billboard/mon_pics/rhydon.2bpp"
RhydonSilhouettePic: ; 0x92e80
INCBIN "gfx/billboard/mon_silhouettes/rhydon.2bpp"
INCBIN "baserom.gbc",$93000,$94000 - $93000 ; 0x93000
SECTION "bank25", ROMX, BANK[$25]
MagnemitePic: ; 0x94000
INCBIN "gfx/billboard/mon_pics/magnemite.2bpp"
MagnemiteSilhouettePic: ; 0x94180
INCBIN "gfx/billboard/mon_silhouettes/magnemite.2bpp"
MagnetonPic: ; 0x94300
INCBIN "gfx/billboard/mon_pics/magneton.2bpp"
MagnetonSilhouettePic: ; 0x94480
INCBIN "gfx/billboard/mon_silhouettes/magneton.2bpp"
Farfetch_dPic: ; 0x94600
INCBIN "gfx/billboard/mon_pics/farfetch_d.2bpp"
Farfetch_dSilhouettePic: ; 0x94780
INCBIN "gfx/billboard/mon_silhouettes/farfetch_d.2bpp"
DoduoPic: ; 0x94900
INCBIN "gfx/billboard/mon_pics/doduo.2bpp"
DoduoSilhouettePic: ; 0x94a80
INCBIN "gfx/billboard/mon_silhouettes/doduo.2bpp"
DodrioPic: ; 0x94c00
INCBIN "gfx/billboard/mon_pics/dodrio.2bpp"
DodrioSilhouettePic: ; 0x94d80
INCBIN "gfx/billboard/mon_silhouettes/dodrio.2bpp"
SeelPic: ; 0x94f00
INCBIN "gfx/billboard/mon_pics/seel.2bpp"
SeelSilhouettePic: ; 0x95080
INCBIN "gfx/billboard/mon_silhouettes/seel.2bpp"
DewgongPic: ; 0x95200
INCBIN "gfx/billboard/mon_pics/dewgong.2bpp"
DewgongSilhouettePic: ; 0x95380
INCBIN "gfx/billboard/mon_silhouettes/dewgong.2bpp"
GrimerPic: ; 0x95500
INCBIN "gfx/billboard/mon_pics/grimer.2bpp"
GrimerSilhouettePic: ; 0x95680
INCBIN "gfx/billboard/mon_silhouettes/grimer.2bpp"
MukPic: ; 0x95800
INCBIN "gfx/billboard/mon_pics/muk.2bpp"
MukSilhouettePic: ; 0x95980
INCBIN "gfx/billboard/mon_silhouettes/muk.2bpp"
ShellderPic: ; 0x95b00
INCBIN "gfx/billboard/mon_pics/shellder.2bpp"
ShellderSilhouettePic: ; 0x95c80
INCBIN "gfx/billboard/mon_silhouettes/shellder.2bpp"
CloysterPic: ; 0x95e00
INCBIN "gfx/billboard/mon_pics/cloyster.2bpp"
CloysterSilhouettePic: ; 0x95f80
INCBIN "gfx/billboard/mon_silhouettes/cloyster.2bpp"
GastlyPic: ; 0x96100
INCBIN "gfx/billboard/mon_pics/gastly.2bpp"
GastlySilhouettePic: ; 0x96280
INCBIN "gfx/billboard/mon_silhouettes/gastly.2bpp"
HaunterPic: ; 0x96400
INCBIN "gfx/billboard/mon_pics/haunter.2bpp"
HaunterSilhouettePic: ; 0x96580
INCBIN "gfx/billboard/mon_silhouettes/haunter.2bpp"
GengarPic: ; 0x96700
INCBIN "gfx/billboard/mon_pics/gengar.2bpp"
GengarSilhouettePic: ; 0x96880
INCBIN "gfx/billboard/mon_silhouettes/gengar.2bpp"
OnixPic: ; 0x96a00
INCBIN "gfx/billboard/mon_pics/onix.2bpp"
OnixSilhouettePic: ; 0x96b80
INCBIN "gfx/billboard/mon_silhouettes/onix.2bpp"
DrowzeePic: ; 0x96d00
INCBIN "gfx/billboard/mon_pics/drowzee.2bpp"
DrowzeeSilhouettePic: ; 0x96e80
INCBIN "gfx/billboard/mon_silhouettes/drowzee.2bpp"
INCBIN "baserom.gbc",$97000,$98000 - $97000 ; 0x97000
SECTION "bank26", ROMX, BANK[$26]
AlakazamPic: ; 0x98000
INCBIN "gfx/billboard/mon_pics/alakazam.2bpp"
AlakazamSilhouettePic: ; 0x98180
INCBIN "gfx/billboard/mon_silhouettes/alakazam.2bpp"
MachopPic: ; 0x98300
INCBIN "gfx/billboard/mon_pics/machop.2bpp"
MachopSilhouettePic: ; 0x98480
INCBIN "gfx/billboard/mon_silhouettes/machop.2bpp"
MachokePic: ; 0x98600
INCBIN "gfx/billboard/mon_pics/machoke.2bpp"
MachokeSilhouettePic: ; 0x98780
INCBIN "gfx/billboard/mon_silhouettes/machoke.2bpp"
MachampPic: ; 0x98900
INCBIN "gfx/billboard/mon_pics/machamp.2bpp"
MachampSilhouettePic: ; 0x98a80
INCBIN "gfx/billboard/mon_silhouettes/machamp.2bpp"
BellsproutPic: ; 0x98c00
INCBIN "gfx/billboard/mon_pics/bellsprout.2bpp"
BellsproutSilhouettePic: ; 0x98d80
INCBIN "gfx/billboard/mon_silhouettes/bellsprout.2bpp"
WeepinbellPic: ; 0x98f00
INCBIN "gfx/billboard/mon_pics/weepinbell.2bpp"
WeepinbellSilhouettePic: ; 0x97080
INCBIN "gfx/billboard/mon_silhouettes/weepinbell.2bpp"
VictreebellPic: ; 0x97200
INCBIN "gfx/billboard/mon_pics/victreebell.2bpp"
VictreebellSilhouettePic: ; 0x97380
INCBIN "gfx/billboard/mon_silhouettes/victreebell.2bpp"
TentacoolPic: ; 0x97500
INCBIN "gfx/billboard/mon_pics/tentacool.2bpp"
TentacoolSilhouettePic: ; 0x97680
INCBIN "gfx/billboard/mon_silhouettes/tentacool.2bpp"
TentacruelPic: ; 0x97800
INCBIN "gfx/billboard/mon_pics/tentacruel.2bpp"
TentacruelSilhouettePic: ; 0x97980
INCBIN "gfx/billboard/mon_silhouettes/tentacruel.2bpp"
GeodudePic: ; 0x97b00
INCBIN "gfx/billboard/mon_pics/geodude.2bpp"
GeodudeSilhouettePic: ; 0x97c80
INCBIN "gfx/billboard/mon_silhouettes/geodude.2bpp"
GravelerPic: ; 0x97e00
INCBIN "gfx/billboard/mon_pics/graveler.2bpp"
GravelerSilhouettePic: ; 0x97f80
INCBIN "gfx/billboard/mon_silhouettes/graveler.2bpp"
GolemPic: ; 0x9a100
INCBIN "gfx/billboard/mon_pics/golem.2bpp"
GolemSilhouettePic: ; 0x9a280
INCBIN "gfx/billboard/mon_silhouettes/golem.2bpp"
PonytaPic: ; 0x9a400
INCBIN "gfx/billboard/mon_pics/ponyta.2bpp"
PonytaSilhouettePic: ; 0x9a580
INCBIN "gfx/billboard/mon_silhouettes/ponyta.2bpp"
RapidashPic: ; 0x9a700
INCBIN "gfx/billboard/mon_pics/rapidash.2bpp"
RapidashSilhouettePic: ; 0x9a880
INCBIN "gfx/billboard/mon_silhouettes/rapidash.2bpp"
SlowpokePic: ; 0x9aa00
INCBIN "gfx/billboard/mon_pics/slowpoke.2bpp"
SlowpokeSilhouettePic: ; 0x9ab80
INCBIN "gfx/billboard/mon_silhouettes/slowpoke.2bpp"
SlowbroPic: ; 0x9ad00
INCBIN "gfx/billboard/mon_pics/slowbro.2bpp"
SlowbroSilhouettePic: ; 0x9ae80
INCBIN "gfx/billboard/mon_silhouettes/slowbro.2bpp"
INCBIN "baserom.gbc",$9b000,$9c000 - $9b000 ; 0x9b000
SECTION "bank27", ROMX, BANK[$27]
INCBIN "baserom.gbc",$9c000,$a0000 - $9c000 ; 0x9c000
SECTION "bank28", ROMX, BANK[$28]
INCBIN "baserom.gbc",$a0000,$a4000 - $a0000 ; 0xa0000
SECTION "bank29", ROMX, BANK[$29]
INCBIN "baserom.gbc",$a4000,$a6000 - $a4000 ; 0xa4000
PalletTownPic: ; 0xa6000
INCBIN "gfx/billboard/maps/pallettown.2bpp"
ViridianCityPic: ; 0xa6180
INCBIN "gfx/billboard/maps/viridiancity.2bpp"
ViridianForestPic: ; 0xa6300
INCBIN "gfx/billboard/maps/viridianforest.2bpp"
PewterCityPic: ; 0xa6480
INCBIN "gfx/billboard/maps/pewtercity.2bpp"
MtMoonPic: ; 0xa6600
INCBIN "gfx/billboard/maps/mtmoon.2bpp"
CeruleanCityPic: ; 0xa6780
INCBIN "gfx/billboard/maps/ceruleancity.2bpp"
VermilionCitySeasidePic: ; 0xa6900
INCBIN "gfx/billboard/maps/vermilioncityseaside.2bpp"
VermilionCityStreetsPic: ; 0xa6a80
INCBIN "gfx/billboard/maps/vermilioncitystreets.2bpp"
RockMountainPic: ; 0xa6c00
INCBIN "gfx/billboard/maps/rockmountain.2bpp"
LavenderTownPic: ; 0xa6d80
INCBIN "gfx/billboard/maps/lavendertown.2bpp"
CeladonCityPic: ; 0xa6f00
INCBIN "gfx/billboard/maps/celadoncity.2bpp"
CyclingRoadPic: ; 0xa7080
INCBIN "gfx/billboard/maps/cyclingroad.2bpp"
FuchsiaCityPic: ; 0xa7200
INCBIN "gfx/billboard/maps/fuchsiacity.2bpp"
SafariZonePic: ; 0xa7380
INCBIN "gfx/billboard/maps/safarizone.2bpp"
SaffronCityPic: ; 0xa7500
INCBIN "gfx/billboard/maps/saffroncity.2bpp"
SeafoamIslandsPic: ; 0xa7680
INCBIN "gfx/billboard/maps/seafoamislands.2bpp"
CinnabarIslandPic: ; 0xa7800
INCBIN "gfx/billboard/maps/cinnabarisland.2bpp"
IndigoPlateauPic: ; 0xa7980
INCBIN "gfx/billboard/maps/indigoplateau.2bpp"
INCBIN "baserom.gbc",$a7b00,$a8000 - $a7b00 ; 0xa7b00
SECTION "bank2a", ROMX, BANK[$2a]
INCBIN "baserom.gbc",$a8000,$ac000 - $a8000 ; 0xa8000
SECTION "bank2b", ROMX, BANK[$2b]
INCBIN "baserom.gbc",$ac000,$b0000 - $ac000 ; 0xac000
SECTION "bank2c", ROMX, BANK[$2c]
INCBIN "baserom.gbc",$b0000,$b3800 - $b0000 ; 0xb0000
FieldSelectTilemap: ; 0xb3800
INCBIN "gfx/tilemaps/field_select.map"
INCBIN "baserom.gbc",$b3c00,$b4000 - $b3c00 ; 0xb3c00
SECTION "bank2d", ROMX, BANK[$2d]
INCBIN "baserom.gbc",$b4000,$b4400 - $b4000 ; 0xb4000
PikachuBlinkingEyeGfx: ; 0xb4400
INCBIN "gfx/titlescreen/pikachu_blinking_eye.2bpp"
BouncingPokeballGfx: ; 0xb44460
INCBIN "gfx/titlescreen/bouncing_pokeball.2bpp"
UnusedTitlescreenGfx: ; 0xb44f0
INCBIN "gfx/titlescreen/blank_tiles.2bpp"
GameStartMenuGfx: ; 0xb4540
; Optional dialogue for "NEW GAME" or "CONTINUE"
INCBIN "gfx/titlescreen/game_start_menu.2bpp"
UnusedTitlescreenGfx2: ; 0xb4680
INCBIN "gfx/titlescreen/blank_tiles_2.2bpp"
TitlescreenGfx: ; 0xb4800
INCBIN "gfx/titlescreen/titlescreen.2bpp"
OptionMenuAndKeyConfigGfx:
OptionMenuBlankGfx: ; 0xb5800
INCBIN "gfx/option_menu/blank.2bpp"
OptionMenuArrowGfx: ; 0xb5a00
INCBIN "gfx/option_menu/arrow.2bpp"
OptionMenuPikaBubbleGfx: ; 0xb5a20
INCBIN "gfx/option_menu/pika_bubble.2bpp"
OptionMenuBouncingPokeballGfx: ; 0xb5a80
INCBIN "gfx/option_menu/bouncing_pokeball.2bpp"
OptionMenuRumblePikachuAnimationGfx: ; 0xb5b40
INCBIN "gfx/option_menu/rumble_pikachu_animation.2bpp"
OptionMenuPsyduckGfx: ; 0xb5c00
INCBIN "gfx/option_menu/psyduck.2bpp"
OptionMenuBoldArrowGfx: ; 0xb5fc0
INCBIN "gfx/option_menu/bold_arrow.2bpp"
OptionMenuUnknownGfx: ; 0xb5fd0
INCBIN "baserom.gbc",$b5fd0,$b6020 - $b5fd0
OptionMenuOptionTextGfx: ; 0xb6020
INCBIN "gfx/option_menu/option_text.2bpp"
OptionMenuPikachuGfx: ; 0xb6080
INCBIN "gfx/option_menu/pikachu.2bpp"
OptionMenuPsyduckFeetGfx: ; 0xb6170
INCBIN "gfx/option_menu/psyduck_feet.2bpp"
OptionMenuUnknown2Gfx: ; 0xb6200
INCBIN "baserom.gbc",$b6200,$b6250 - $b6200
OptionMenuRumbleTextGfx: ; 0xb6250
INCBIN "gfx/option_menu/rumble_text.2bpp"
OptionMenuUnknown3Gfx: ; 0xb62b0
INCBIN "baserom.gbc",$b62b0,$b6320 - $b62b0
OptionMenuKeyCoTextGfx: ; 0xb6320
INCBIN "gfx/option_menu/key_co_text.2bpp"
OptionMenuSoundTestDigitsGfx: ; 0xb6370
INCBIN "gfx/option_menu/sound_test_digits.2bpp"
OptionMenuNfigTextGfx: ; 0xb6470
INCBIN "gfx/option_menu/nfig_text.2bpp"
OptionMenuUnknown4Gfx: ; 0xb64a0
INCBIN "baserom.gbc",$b64a0,$b6500 - $b64a0
KeyConfigResetTextGfx: ; 0xb6500
INCBIN "gfx/key_config/reset_text.2bpp"
KeyConfigBallStartTextGfx: ; 0xb6560
INCBIN "gfx/key_config/ball_start_text.2bpp"
KeyConfigLeftFlipperTextGfx: ; 0xb65f0
INCBIN "gfx/key_config/left_flipper_text.2bpp"
KeyConfigRightFlipperTextGfx: ; 0xb6680
INCBIN "gfx/key_config/right_flipper_text.2bpp"
KeyConfigTiltTextGfx: ; 0xb6710
INCBIN "gfx/key_config/tilt_text.2bpp"
KeyConfigMenuTextGfx: ; 0xb6810
INCBIN "gfx/key_config/menu_text.2bpp"
KeyConfigKeyConfigTextGfx: ; 0xb6880
INCBIN "gfx/key_config/key_config_text.2bpp"
KeyConfigIconsGfx: ; 0xb6900
INCBIN "gfx/key_config/icons.2bpp"
OptionMenuSoundTextTextGfx: ; 0xb6a40
INCBIN "gfx/option_menu/sound_test_text.2bpp"
OptionMenuOnOffTextGfx: ; 0xb6ad0
INCBIN "gfx/option_menu/on_off_text.2bpp"
OptionMenuBGMSETextGfx: ; 0xb6b10
INCBIN "gfx/option_menu/bgm_se_text.2bpp"
INCBIN "baserom.gbc",$b6c00,$b8000 - $b6c00 ; 0xb6c00
SECTION "bank2e", ROMX, BANK[$2e]
INCBIN "baserom.gbc",$b8000,$bc000 - $b8000 ; 0xb8000
SECTION "bank2f", ROMX, BANK[$2f]
INCBIN "baserom.gbc",$bc000,$c0000 - $bc000 ; 0xbc000
SECTION "bank30", ROMX, BANK[$30]
INCBIN "baserom.gbc",$c0000,$c3800 - $c0000 ; 0xc0000
OptionMenuTilemap: ; 0xc3800
INCBIN "gfx/tilemaps/option_menu.map"
INCBIN "baserom.gbc",$c3a40,$c4000 - $c3a40 ; 0xc3a40
SECTION "bank31", ROMX, BANK[$31]
INCBIN "baserom.gbc",$c4000,$c5800 - $c4000 ; 0xc4000
TitlescreenTilemap: ; 0xc5800
INCBIN "gfx/tilemaps/titlescreen.map"
INCBIN "baserom.gbc",$c5c00,$c6000 - $c5c00 ; 0xc4000
CopyrightScreenTilemap: ; 0xc6000
INCBIN "gfx/tilemaps/copyright_screen.map"
INCBIN "baserom.gbc",$c6400,$c8000 - $c6400 ; 0xc6400
SECTION "bank32", ROMX, BANK[$32]
INCBIN "baserom.gbc",$c8000,$cc000 - $c8000 ; 0xc8000
SECTION "bank33", ROMX, BANK[$33]
INCBIN "baserom.gbc",$cc000,$d0000 - $cc000 ; 0xcc000
SECTION "bank34", ROMX, BANK[$34]
INCBIN "baserom.gbc",$d0000,$d4000 - $d0000 ; 0xd0000
SECTION "bank35", ROMX, BANK[$35]
INCBIN "baserom.gbc",$d4000,$d8000 - $d4000 ; 0xd4000
SECTION "bank36", ROMX, BANK[$36]
INCBIN "baserom.gbc",$d8000,$da000 - $d8000 ; 0xd8000
CopyrightTextGfx: ; 0xda000
INCBIN "gfx/copyright_text.2bpp"
INCBIN "baserom.gbc",$da400,$dc000 - $da400 ; 0xda400
SECTION "bank37", ROMX, BANK[$37]
INCBIN "baserom.gbc",$dc000,$e0000 - $dc000 ; 0xdc000
SECTION "bank38", ROMX, BANK[$38]
INCBIN "baserom.gbc",$e0000,$e4000 - $e0000 ; 0xe0000
SECTION "bank39", ROMX, BANK[$39]
INCBIN "baserom.gbc",$e4000,$e8000 - $e4000 ; 0xe4000
SECTION "bank3a", ROMX, BANK[$3a]
INCBIN "baserom.gbc",$e8000,$ec000 - $e8000 ; 0xe8000
SECTION "bank3b", ROMX, BANK[$3b]
INCBIN "baserom.gbc",$ec000,$f0000 - $ec000 ; 0xec000
SECTION "bank3c", ROMX, BANK[$3c]
INCBIN "baserom.gbc",$f0000,$f4000 - $f0000 ; 0xf0000
SECTION "bank3d", ROMX, BANK[$3d]
INCBIN "baserom.gbc",$f4000,$f8000 - $f4000 ; 0xf4000
SECTION "bank3e", ROMX, BANK[$3e]
INCBIN "baserom.gbc",$f8000,$fc000 - $f8000 ; 0xf8000
SECTION "bank3f", ROMX, BANK[$3f]
INCBIN "baserom.gbc",$fc000,$fffff - $fc000 ; 0xfc000