INCLUDE "charmap.asm" INCLUDE "macros.asm" INCLUDE "constants.asm" SECTION "rst 00", ROM0 [$00] di jp Entry SECTION "rst 10", ROM0 [$10] jp DelayFrame SECTION "rst 18", ROM0 [$18] jp JumpToFuncInTable SECTION "rst 20", ROM0 [$20] jp Func_486 SECTION "VBlankInt", ROM0 [$40] jp VBlank SECTION "HBlankInt", ROM0 [$48] jp LCD SECTION "TimerInt", ROM0 [$50] jp Timer SECTION "SerialInt", ROM0 [$58] jp Serial SECTION "JoypadInt", ROM0 [$60] jp Joypad SECTION "Entry", ROM0 [$100] Entry: ; 0x100 nop jp Start SECTION "Header", ROM0 [$104] ; The header is generated by rgbfix. ; The space here is allocated to prevent code from being overwritten. ds $150 - $104 SECTION "Main", ROM0 Start: ; 0x150 ld [hGameBoyColorFlag], a ld sp, hGameBoyColorFlag di xor a ld [rIF], a ld a, [rLCDC] ; LCD Control bit 7, a ; Check if LCD Display is enabled jr nz, .LCDDisplayEnabled set 7, a ld [rLCDC], a .LCDDisplayEnabled ld bc, $0002 call Func_948 .waitForVBlank ld a, [rLY] ; LY register (LCDC Y-Coordinate) cp 145 ; > 144 means V-Blank jr c, .waitForVBlank ld a, $81 ld [rLCDC], a ; Enable LCD Display xor a ld [rBGP], a ; Clear Palette Data ld [rOBP0], a ld [rOBP1], a ld bc, $0002 call Func_948 .waitForVBlank2 ld a, [rLY] ; LY register (LCDC Y-Coordinate) cp 145 ; > 144 means V-Blank jr c, .waitForVBlank2 xor a ld [rLCDC], 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 [MBC5SRamEnable], a ; Enable RAM ld a, $1 ld [MBC5RomBank], a ; Load ROM Bank $1 ld a, $0 ld [MBC5RomBankOn], a ; Enable ROM Banking Mode ld a, $0 ld [MBC5SRamBank], a ; Set bits 5 and 6 of ROM Bank Number ld a, $1 ld [hLoadedROMBank], a ld a, $1 ld [MBC5RomBankOn], a ; Enable RAM Banking Mode ld a, $0 ld [MBC5SRamBank], a ; Load RAM Bank $0 ld sp, $dfff ; Initialize stack pointer to the end of WRAM Bank $1 ld hl, hPushOAM ld bc, $007e call ClearData ; Clear High RAM (HRAM) call WriteDMACodeToHRAM call ClearOAMBuffer xor a ld [$d7fb], a ld [$d7fc], a ld [$d7fd], a ld [$ffb0], a ld [$ffb1], a ld [$d8e1], a ld [$d7fe], a ld [$fffc], a ld hl, $ff9e xor a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld a, $8f ld [hli], a ld a, $a6 ld [hli], a ld a, $0 ld [$d849], a ld [$d84a], a ld a, Bank(PlaySong_BankF) call SetSongBank call Func_23b ld a, [hGameBoyColorFlag] and a jr nz, .asm_222 call Func_12f8 rl a and $1 ld [$fffb], a call Func_13a8 ld a, [$fffb] and a jr z, .asm_222 ld a, $1 ld [$d917], a .asm_222 ld a, $1 ld [rIE], a ; Only enable LCD Status interrupt ei ld a, $ff ld [$d810], a call Func_97a xor a ld [$daa3], a ld a, BANK(Func_1ffc) ld hl, Func_1ffc call BankSwitchSimple Func_23b: ; 0x23b ld a, [hGameBoyColorFlag] cp $11 jr nz, .asm_248 ld a, $1 ld [hGameBoyColorFlag], a ld [$fffd], a ret .asm_248 xor a ld [hGameBoyColorFlag], a ld [$fffd], a ret dr $24e, $2f2 VBlank: ; 0x2f2 push af push bc push de push hl call hPushOAM ; OAM DMA transfer ld a, [$ff9e] ld [rLCDC], a call Func_113a ei ld a, [rLY] cp $90 jr c, .asm_328 ld hl, $ff9f ld c, rSTAT - $ff00 ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c inc c ld a, [hli] ld [$ff00+c], a inc c inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a .asm_328 ld a, [$ffa2] ld [$ffa8], a ld a, [$ffa9] ld [$ffaa], a ld a, [$ffab] ld [$ffac], a ld a, [$ffad] ld [$ffae], a call ReadJoypad ld a, [$daa3] and a jr nz, .asm_359 ld a, [hJoypadState] cp $f jr nz, .asm_359 ld a, [hNewlyPressedButtons] and $f jr z, .asm_359 ld hl, [sp+$8] ld [hl], $c3 inc hl ld [hl], $3 ld a, $1 ld [$daa3], a .asm_359 ld hl, $ffb2 ld a, [hl] inc [hl] and a jr nz, .asm_365 ld hl, $ffb3 inc [hl] .asm_365 ld hl, $ffb4 inc [hl] ld a, [$d8e1] and a call nz, Func_167b ld a, [$d849] and a jr nz, .asm_37d ld a, [$d85d] and a call nz, Func_504 .asm_37d ld a, [$d84a] and a jr z, .asm_39d xor a ld [$d84a], a ld a, $1 ld [$d849], a ld a, $bc ld [rTMA], a ld a, $0 ld [rTAC], a ld hl, rIE set 2, [hl] ld a, $4 ld [rTAC], a .asm_39d ld hl, MBC5SRamBank ld a, [$d917] and a jr nz, .asm_3b5 ld a, [$d803] rrca ld [$d803], a and $1 jr z, .asm_3b5 set 3, [hl] jr .asm_3b7 .asm_3b5 res 3, [hl] .asm_3b7 ld a, [$d4aa] and a call nz, Func_e69 pop hl pop de pop bc pop af reti dr $3c3, $3ec LCD: ; 0x3ec push af push bc push de push hl ld a, [$ffb0] sla a ld c, a ld b, $0 ld hl, PointerTable_408 add hl, bc ld a, [hli] ld h, [hl] ld l, a jp [hl] Func_3ff: ; 0x3ff ld a, $1 ld [$ffb5], a pop hl pop de pop bc pop af reti PointerTable_408: ; 0x408 dw Func_fbc dw Func_fbf dw Func_fea dw Func_105d dw Func_109e dw Func_10a1 dw Func_10a4 dw Func_10a7 Timer: ; 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 [rTAC], a ld hl, rIE res 2, [hl] .asm_440 pop hl pop de pop bc pop af reti Serial: ; 0x445 push af push bc push de push hl ld hl, Data_45d ; todo push hl ld a, [$ffb1] sla a ld c, a ld b, $0 ld hl, Data_462 ; todo add hl, bc ld c, [hl] inc hl ld b, [hl] push bc ret Data_45d: db $e1, $d1, $c1, $f1, $d9 Data_462: db $64, $16, $66, $04, $c9 Joypad: ; 0x467 reti DelayFrame: ; 0x468 ld a, [rLCDC] bit 7, a ret z ld hl, $ffb2 xor a ld [hl], a .asm_472 ld a, [hl] and a jr z, .asm_472 ret JumpToFuncInTable: ; 0x477 ; Jumps to a function in the pointer table immediately following ; a "rst JumpTable" call. Function must be in the same Bank as the pointer table. ; input: a = index of function in table sla a pop hl push de ld e, a ld d, $0 add hl, de ld e, [hl] inc hl ld d, [hl] ld l, e ld h, d pop de jp [hl] Func_486: ; 0x486 rlca add l ld l, a jr nc, .noCarry inc h .noCarry ld a, [hli] ld h, [hl] ld l, a ret PlaySong: ; 0x490 ld a, [hLoadedROMBank] push af ld a, [wCurrentSongBank] ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, e ld [$d7bf], a ld a, [wCurrentSongBank] ld [$d7c0], a call PlaySong_BankF ; this function is replicated in multiple banks. pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret PlaySoundEffect: ; 0x4af ; input: de = sound effect id? I think d specifies something special and e holds the id ld a, [$dead] and a ret nz ld a, [$d800] and a jr z, .asm_4bd ld a, d and a ret z .asm_4bd ld a, d ld [$d800], a ld d, $0 ld a, [hLoadedROMBank] push af ld a, [wCurrentSongBank] ld [hLoadedROMBank], a ld [MBC5RomBank], a call PlaySoundEffect_BankF ; this function is replicated in multiple banks pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret Func_4d8: ; 0x4d8 push bc push de push hl ld a, [$ddcb] ld hl, $ddfd or [hl] ld hl, $de2f or [hl] and $1 call z, PlaySoundEffect pop hl pop de pop bc ret PlayCry: ; 0x4ef ; Plays a Pokemon cry. ; Input: e = mon id ld a, [hLoadedROMBank] push af ld a, [wCurrentSongBank] ld [hLoadedROMBank], a ld [MBC5RomBank], a call PlayCry_BankF ; this function is replicated in multiple banks pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret Func_504: ; 0x504 ld a, [hLoadedROMBank] push af ld a, [wCurrentSongBank] ld [hLoadedROMBank], a ld [MBC5RomBank], a call $4180 ; todo pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, [$d801] inc a ld [$d801], a and $3 ret nz ld a, [$d800] and a ret z dec a ld [$d800], a ret SetSongBank: ; 0x52c di ld [wCurrentSongBank], a ei ret CallInFollowingTable: ; 0x532 ; Calls a function in a table located immediately after a call to this function. ; Inputs: a = entry in the table ld e, a ld d, $0 sla e rl d sla e rl d ; multiplied a by 4 because entries in the table are 4 bytes each pop hl add hl, de ld e, [hl] inc hl ld d, [hl] inc hl ld a, [hl] ld h, d ld l, e jp BankSwitch BankSwitchSimple: ; 0x549 ; Switches to Bank in register a and jumps to hl. ld [hLoadedROMBank], a ld [MBC5RomBank], 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, rIE ld d, [hl] ld [hl], $0 ld [MBC5RomBank], 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, [rLCDC] bit 7, a ret z ld a, [$ff9e] res 7, a ld [$ff9e], a .asm_581 ld a, [rLCDC] 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 [rLCDC], a ld [$ff9e], a ret Func_597: ; 0x597 ld de, rBGPI 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, rOBPI 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, Data_5e1 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 Data_5e1: dr $5e1, $5f7 WriteDMACodeToHRAM: ; 0x5f7 ; Initializes registers hPushOAM - $ff8a ld c, $80 ld b, $a ; number of bytes to load ld hl, DMARoutine .loop ld a, [hli] ld [$ff00+c], a ; add register c to $ff00, and store register a into the resulting address inc c dec b jr nz, .loop ret DMARoutine: ; This routine is initially loaded into hPushOAM - $ff8a by WriteDMACodeToHRAM. ld a, (wOAMBuffer >> 8) ld [rDMA], a ; start DMA ld a, $28 .waitLoop ; wait for DMA to finish dec a jr nz, .waitLoop ret WaitForLCD: ; 0x60f ; Wait for LCD controller to stop reading from both OAM and VRAM because ; CPU can't access OAM, VRAM, or palette data ($ff69, $ff6b) during this time. ld a, [rSTAT] ; LCDC Status register and $3 jr nz, WaitForLCD ld a, $a .delay10Cycles dec a jr nz, .delay10Cycles ret Func_61b: ; 0x61b ld a, [rLY] ; LY register (LCDC Y-Coordinate) cp $40 jr c, .asm_625 cp $80 jr c, .asm_63d .asm_625 ld a, [rLY] ; LY register (LCDC Y-Coordinate) cp $40 jr c, .asm_625 cp $80 jr nc, .asm_625 .asm_62f ld a, [rSTAT] and $3 jr nz, .asm_62f ; wait for lcd controller to finish transferring data ld a, $15 .wait dec a jr nz, .wait nop nop nop .asm_63d ret Func_63e: ; 0xc3e dec bc .asm_63f ld [hli], a dec bc bit 7, b jr z, .asm_63f ret dr $646, $654 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 LocalCopyData: ; 0x65d ld a, [hli] ld [de], a inc de dec bc ld a, c or b jr nz, LocalCopyData ret FarCopyData: ; 0x666 spooky ; Copies data from any bank to either working RAM or video RAM ; Input: hl = address of data to copy ; a = bank of data to copy ; de = destination for data ; bc = number of bytes to copy bit 7, h jr nz, .copyFromSRAM ld [$fffa], a ld a, [hLoadedROMBank] push af ld a, [$fffa] ld [hLoadedROMBank], a ld [MBC5RomBank], a scf jr .copyData .copyFromSRAM ld [MBC5SRamBank], a and a .copyData push af .copyLoop ld a, [hli] ld [de], a inc de dec bc ld a, c or b jr nz, .copyLoop pop af ret nc pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret ReadByteFromBank: ; 0x68f ; Input: a = bank ; hl = address of byte to read ; Output: a = byte at a:hl push de ld d, a ld a, [hLoadedROMBank] ld e, a ld a, d ld [hLoadedROMBank], a ld [MBC5RomBank], a ld d, [hl] ld a, e ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, d pop de ret LoadVideoData: ; 0x6a4 ; Input: ; hl = address of pointer table ; a = index of item to load in pointer table ; This needs more documentation. It loads things like graphics and palettes. sla a ld c, a ld b, $0 add hl, bc ld a, [hli] ld h, [hl] ld l, a .loadItem ld a, [hli] ld c, a and [hl] cp $ff ; two consecutive $ff bytes terminate the array ret z ld a, [hli] ld b, a ; bc contains pointer to data to be loaded push hl push bc ld a, [hli] ; a contains bank of data to be loaded ld e, [hl] inc hl ld d, [hl] ; de contains destination address for data inc hl ld c, [hl] inc hl ld b, [hl] ; bc contains last word of data struct inc hl ; this is a wasted instruction pop hl call Func_6cb pop hl ld bc, $0005 add hl, bc jr .loadItem Func_6cb: ; 0x6cb srl b rr c jp c, Func_6fd ; if lowest bit of bc is set jp Func_6d5 ; This jumps to the next instruction... Strange. Func_6d5: ; 0x6d5 ld [$fffa], a ; save bank of data to be loaded ld a, [hLoadedROMBank] push af ld a, [$fffa] ; a contains bank of data to be loaded ld [hLoadedROMBank], a ld [MBC5RomBank], 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 [rVBK], 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 [rVBK], a ; set VRAM Bank to Bank 0 pop af ld [hLoadedROMBank], a ld [MBC5RomBank], 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 [MBC5RomBank], a ; switch bank to the bank of data to be loaded ld a, e bit 6, a jr nz, .asm_717 ld de, rBGPI call Func_724 jr z, .asm_71d xor a .asm_717 ld de, rOBPI call Func_724 .asm_71d pop af ld [hLoadedROMBank], a ld [MBC5RomBank], 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, rLCDC bit 7, [hl] pop hl jp z, FarCopyData ; fall through LoadVRAMData: ; 0x73f ; This loads some data into VRAM. It waits for the LCD H-Blank to copy the data 4 bytes at a time. ; input: hl = source of data ; a = bank of data to load ; de = destination of data ; bc = number of bytes to copy bit 7, h jr nz, .asm_752 ld [$fffa], a ld a, [hLoadedROMBank] push af ld a, [$fffa] ld [hLoadedROMBank], a ld [MBC5RomBank], a scf jr .asm_756 .asm_752 ld [MBC5SRamBank], a and a .asm_756 push af call WaitForLCD .loop call Func_61b .waitForHBlank ld a, [rSTAT] 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 [MBC5RomBank], a ret FarCopyPalettes: ; 0x790 push hl ld hl, rLCDC bit 7, [hl] pop hl jp nz, Func_7dc bit 7, h jr nz, .asm_7ad ld [$fffa], a ld a, [hLoadedROMBank] push af ld a, [$fffa] ld [hLoadedROMBank], a ld [MBC5RomBank], a scf jr .asm_7b1 .asm_7ad ld [MBC5SRamBank], a and a .asm_7b1 push af ld a, e bit 6, e ld de, rBGPI jr z, .asm_7bf res 6, a ld de, rOBPI .asm_7bf set 7, a ld [de], a inc de .asm_7c3 ld a, [hli] ld [de], a ld a, [hli] ld [de], a ld a, [hli] ld [de], a ld a, [hli] ld [de], a dec bc dec bc dec bc dec bc ld a, b or c jr nz, .asm_7c3 pop af ret nc pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret Func_7dc: ; 0x7dc bit 7, h jr nz, .asm_7ef ld [$fffa], a ld a, [hLoadedROMBank] push af ld a, [$fffa] ld [hLoadedROMBank], a ld [MBC5RomBank], a scf jr .asm_7f3 .asm_7ef ld [MBC5SRamBank], a and a .asm_7f3 push af ld a, e bit 6, e ld de, rBGPI jr z, .asm_801 res 6, a ld de, rOBPI .asm_801 push hl ld h, d ld l, e set 7, a call PutTileInVRAM inc de pop hl call WaitForLCD .asm_80e call Func_61b .asm_811 ld a, [rSTAT] and $3 jr nz, .asm_811 ld a, [hli] ld [de], a ld a, [hli] ld [de], a ld a, [hli] ld [de], a ld a, [hli] ld [de], a nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop dec bc dec bc dec bc dec bc nop nop nop nop ld a, b or c jr nz, .asm_80e pop af ret nc pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret PutTileInVRAM: ; 0x848 ; Puts a tile in VRAM. ; input: a = tile number ; hl = pointer to VRAM location where tile should be placed push af call WaitForLCD call Func_61b .asm_84f ld a, [rSTAT] and $3 jr nz, .asm_84f ; wait for lcd controller to finish transferring data pop af ld [hl], a ; Store tile number in VRAM background map ret Func_858: ; 0x858 push af call WaitForLCD call Func_61b .asm_85f ld a, [rSTAT] and $3 jr nz, .asm_85f ld a, $1 ld [rVBK], a pop af ld [hl], a xor a ld [rVBK], a ret Func_86f: ; 0x86f ld [$fffa], a ld a, [hLoadedROMBank] push af ld a, [$fffa] ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, [rLCDC] bit 7, a jr nz, .asm_8ac ld a, $1 ld [rVBK], a ld b, $4 .asm_887 push bc ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de ld bc, $001a add hl, bc pop bc dec b jr nz, .asm_887 xor a ld [rVBK], a pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret .asm_8ac ld b, $4 .asm_8ae push bc ld a, [de] call Func_858 inc hl inc de ld a, [de] call Func_858 inc hl inc de ld a, [de] call Func_858 inc hl inc de ld a, [de] call Func_858 inc hl inc de ld a, [de] call Func_858 inc hl inc de ld a, [de] call Func_858 inc de ld bc, $001b add hl, bc pop bc dec b jr nz, .asm_8ae pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret Func_8e1: ; 0x8e1 ld [$fffa], a ld a, [hLoadedROMBank] push af ld a, [$fffa] ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, [rLCDC] bit 7, a jr nz, .asm_902 ld a, c ld [hli], a .asm_8f5 ld a, [de] ld [hl], a inc de dec b jr nz, .asm_8f5 pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret .asm_902 ld a, c call PutTileInVRAM inc hl .asm_907 ld a, [de] call PutTileInVRAM inc de dec b jr nz, .asm_907 pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret ClearOAMBuffer: ; 0x916 ; Clears the OAM buffer by loading $f0 into all of the entries. ld hl, wOAMBuffer ; 0xd000 ld b, 4 * 40 ; wOAMBuffer is 4 * 40 bytes long (40 OAM entries, 4 bytes each) ld a, $f0 ; byte to write .loop ld [hli], a dec b jr nz, .loop xor a ld [$d802], a ret Func_926: ; 0x926 ld a, [$d802] cp $a0 jr nc, .asm_93a ld l, a ld h, $d0 cpl add $a1 ld b, a ld a, $f0 .asm_936 ld [hli], a dec b jr nz, .asm_936 .asm_93a xor a ld [$d802], a ret Func_93f: ; 0x93f push bc rst AdvanceFrame pop bc dec bc ld a, c or b jr nz, Func_93f ret Func_948: ; 0x948 ld de, $06d6 .asm_94b nop nop nop dec de ld a, d or e jr nz, .asm_94b dec bc ld a, b or c jr nz, Func_948 ret GenRandom: ; 0x959 push bc push de push hl ld a, [$d811] ld c, a ld b, $0 inc a cp $37 jr nz, .asm_96e call Func_9fa xor a ld bc, $0000 .asm_96e ld [$d811], a ld hl, $d812 add hl, bc ld a, [hl] pop hl pop de pop bc ret Func_97a: ; 0x97a ld a, [$d810] ld d, a ld a, $0 ld a, [$afff] .asm_983 cp d jr c, .asm_989 sub d jr .asm_983 .asm_989 ld [$d80f], a ld [$d848], a ld e, $1 ld hl, Data_9c4 ; todo ld a, $36 .asm_996 push af ld c, [hl] inc hl ld b, $0 push hl ld hl, $d812 add hl, bc ld [hl], e ld a, [$d80f] sub e jr nc, .asm_9a8 add d .asm_9a8 ld e, a ld a, [hl] ld [$d80f], a pop hl pop af dec a jr nz, .asm_996 call Func_9fa call Func_9fa call Func_9fa ld a, $0 call GenRandom ld [$afff], a ret Data_9c4: dr $9c4, $9fa Func_9fa: ; 0x9fa ld a, [$d810] ld d, a ld bc, $d812 ld hl, $d831 ld e, $18 .asm_a06 ld a, [bc] sub [hl] jr nc, .asm_a0b add d .asm_a0b ld [bc], a dec e jr nz, .asm_a06 ld bc, $d82a ld hl, $d812 ld e, $1f .asm_a17 ld a, [bc] sub [hl] jr nc, .asm_a1c add d .asm_a1c ld [bc], a dec e jr nz, .asm_a17 ret Func_a21: ; 0xa21 push bc push hl ld c, a ld b, $0 ld hl, Data_a38 add hl, bc ld l, [hl] call GenRandom call Func_dd4 inc h srl h ld a, h pop hl pop bc ret Data_a38: dr $a38, $ab8 ReadJoypad: ; 0xab8 ; Reads the current state of the joypad and saves the state into ; some registers the game uses during gameplay. It remembers the joypad state ; from the current frame, previous frame, and two frames ago. ld a, $20 ld [rJOYP], a ld a, [rJOYP] ld a, [rJOYP] and $f swap a ld b, a ld a, $30 ld [rJOYP], a ld a, $10 ld [rJOYP], a ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] and $f or b cpl ; a contains currently-pressed buttons ld [hJoypadState], a ld a, $30 ld [rJOYP], a ld a, [hJoypadState] ld hl, hPreviousJoypadState xor [hl] ; a contains buttons that are different from previous frame push af ld hl, hJoypadState and [hl] ; a contains newly-pressed buttons compared to last frame ld [hNewlyPressedButtons], a ld [hPressedButtons], a pop af ld hl, hPreviousJoypadState and [hl] ; a contains newly-pressed buttons compared to two frames ago ld [hPrevPreviousJoypadState], a ld a, [hJoypadState] and a jr z, .asm_b15 ld hl, hPreviousJoypadState cp [hl] jr nz, .asm_b15 ; button(s) is pressed, and they're identical to the buttons pressed last frame. ; this code is related to holding down a button for an extended period of time. ld hl, $ff9d dec [hl] jr nz, .asm_b1a ld a, [hJoypadState] ld [hPressedButtons], a ld a, [$d807] ld [$ff9d], a jr .asm_b1a .asm_b15 ld a, [$d806] ld [$ff9d], a .asm_b1a ld a, [hJoypadState] ld [hPreviousJoypadState], a ld hl, $d808 ld a, [hJoypadState] or [hl] ld [hli], a ld a, [hNewlyPressedButtons] or [hl] ld [hli], a ld a, [hPressedButtons] or [hl] ld [hli], a ret Func_b2e: ; 0xb2e ld hl, $d808 xor a ld [hli], a ld [hli], a ld [hl], a ret IsKeyPressed2: ; 0xb36 ld a, [hJoypadState] and [hl] jr z, .asm_b3e cp [hl] jr z, .asm_b48 .asm_b3e inc hl ld a, [hJoypadState] and [hl] ret z cp [hl] jr z, .asm_b48 xor a ret .asm_b48 ld a, $1 and a ret IsKeyPressed: ; 0xb4c ; Checks if a key for the specified key config is pressed. ; input: hl = pointer to key config byte pair (e.g. wKeyConfigLeftFlipper) ; output: zero flag is set if a corresponding key is pressed ; zero flag is reset if no corresponding key is pressed ld a, [hJoypadState] and [hl] jr z, .asm_b58 cp [hl] jr nz, .asm_b58 ld a, [hNewlyPressedButtons] and [hl] ret nz .asm_b58 inc hl ld a, [hJoypadState] and [hl] ret z cp [hl] jr nz, .asm_b64 ld a, [hNewlyPressedButtons] and [hl] ret .asm_b64 xor a ret Func_b66: ; 0xb66 ld a, [hGameBoyColorFlag] and a jr nz, .asm_b73 xor a ld [$ffa3], a ld [$ffa4], a ld [$ffa5], a ret .asm_b73 ld de, rBGPI ld hl, $d200 ; todo ld b, $0 ld c, $20 .asm_b7d ld a, b ld [rBGPI], a inc b ld a, [rBGPD] ld [hli], a ld a, b ld [rBGPI], a inc b ld a, [rBGPD] ld [hli], a dec c jr nz, .asm_b7d ld b, $0 ld c, $20 .asm_b92 ld a, b ld [rOBPI], a inc b ld a, [rOBPD] ld [hli], a ld a, b ld [rOBPI], a inc b ld a, [rOBPD] ld [hli], a dec c jr nz, .asm_b92 ld de, rBGPI ld b, $2 .asm_ba8 ld a, $80 ld [de], a inc de ld c, $20 .asm_bae ld a, $ff ld [de], a ld [hli], a ld a, $7f ld [de], a ld [hli], a dec c jr nz, .asm_bae inc de dec b jr nz, .asm_ba8 ret Func_bbe: ; 0xbbe ld a, [hGameBoyColorFlag] and a jp nz, Func_c19 ld hl, $ffa3 ld de, $d80c ld b, $3 .asm_bcc ld a, [de] and $55 ld c, a ld a, [de] and $aa srl a and c ld [hli], a inc de dec b jr nz, .asm_bcc ld bc, $0002 call Func_93f ld hl, $ffa3 ld de, $d80c ld b, $3 .asm_be9 ld a, [de] and $aa srl a add [hl] ld [hli], a inc de dec b jr nz, .asm_be9 ld bc, $0002 call Func_93f ld hl, $ffa3 ld de, $d80c ld b, $3 .asm_c02 ld a, [de] and $55 ld c, a ld a, [de] and $aa srl a or c add [hl] ld [hli], a inc de dec b jr nz, .asm_c02 ld bc, $0002 call Func_93f ret Func_c19: ; 0xc19 ld b, $10 .asm_c1b push bc ld de, $d200 ld hl, $d280 call Func_c2d call Func_d61 pop bc dec b jr nz, .asm_c1b ret Func_c2d: ; 0xc2d ld a, b cp $1 jr z, .asm_c49 ld c, $40 .asm_c34 push bc ld a, [hli] sub $42 ld c, a ld a, [hld] sbc $8 ld b, a call Func_c60 ld a, c ld [hli], a ld a, b ld [hli], a pop bc dec c jr nz, .asm_c34 ret .asm_c49 ld c, $40 .asm_c4b push bc ld a, [hli] sub $21 ld c, a ld a, [hld] sbc $4 ld b, a call Func_c60 ld a, c ld [hli], a ld a, b ld [hli], a pop bc dec c jr nz, .asm_c4b ret Func_c60: ; 0xc60 push hl ld a, [de] and $1f ld l, a ld a, c and $1f cp l jr nc, .asm_c70 ld a, c and $e0 or l ld c, a .asm_c70 ld a, [de] and $e0 ld l, a inc de ld a, [de] srl a rr l srl a rr l ld a, c and $e0 ld h, a ld a, b srl a rr h srl a rr h ld a, h cp l jr nc, .asm_ca3 ld h, $0 sla l rl h sla l rl h ld a, c and $1f or l ld c, a ld a, b and $7c or h ld b, a .asm_ca3 ld a, [de] and $7c ld l, a ld a, b and $7c cp l jr nc, .asm_cb2 ld a, b and $3 or l ld b, a .asm_cb2 inc de pop hl ret Func_cb5: ; 0xcb5 ld a, [hGameBoyColorFlag] and a jp nz, Func_cee ld hl, $ffa3 ld b, $3 .asm_cc0 push bc push hl ld b, $3 .asm_cc4 ld a, [hl] and $55 ld c, a ld a, [hl] and $aa srl a or c cpl inc a add [hl] ld [hli], a dec b jr nz, .asm_cc4 ld bc, $0002 call Func_93f pop hl pop bc dec b jr nz, .asm_cc0 xor a ld hl, $ffa3 ld [hli], a ld [hli], a ld [hl], a ld bc, $0002 call Func_93f ret Func_cee: ; 0xcee ld hl, $d280 ld de, rBGPI call Func_d9d ld hl, $d2c0 ld de, rOBPI 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, [rIE] res 0, a ld [rIE], a ld hl, $d280 ld de, rBGPI ld a, $80 ld [de], a inc de .asm_d71 ld a, [rLY] 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, [rIE] set 0, a ld [rIE], a ret Func_d9d: ; 0xd9d ld b, $0 ld c, e inc c call WaitForLCD .asm_da4 call Func_61b .asm_da7 ld a, [rSTAT] and $3 jr nz, .asm_da7 ; wait for lcd controller to finish transferring data ld a, b ld [de], a ld a, [$ff00+c] ld [hli], a inc b ld a, b ld [de], a ld a, [$ff00+c] ld [hli], a inc b ld a, b ld [de], a ld a, [$ff00+c] ld [hli], a inc b ld a, b ld [de], a ld a, [$ff00+c] ld [hli], a inc b nop nop nop nop nop nop nop nop nop nop nop nop nop ld a, b cp $40 jr nz, .asm_da4 ret Func_dd4: ; 0xdd4 ; Return a * l to hl ; Stupid waste of space push bc ld c, l ld b, $0 ld hl, $0000 bit 0, a jr z, .asm_de0 add hl, bc .asm_de0 sla c rl b bit 1, a jr z, .asm_de9 add hl, bc .asm_de9 sla c rl b bit 2, a jr z, .asm_df2 add hl, bc .asm_df2 sla c rl b bit 3, a jr z, .asm_dfb add hl, bc .asm_dfb sla c rl b bit 4, a jr z, .asm_e04 add hl, bc .asm_e04 sla c rl b bit 5, a jr z, .asm_e0d add hl, bc .asm_e0d sla c rl b bit 6, a jr z, .asm_e16 add hl, bc .asm_e16 sla c rl b bit 7, a jr z, .asm_e1f add hl, bc .asm_e1f pop bc ret ConvertHexByteToDecWord: ; 0xe21 ; Convert the base-16 value in register a into a Binary Coded Decimal (base-10) word. ; Example: If a = $97, de = $0151. ld b, a ld hl, PowersOfTwo ; todo ld de, $0000 .asm_e28 srl b ld a, [hli] jr nc, .asm_e34 add e daa ld e, a ld a, [hl] adc d daa ld d, a .asm_e34 inc hl ld a, b and a jr nz, .asm_e28 ret PowersOfTwo: ; 0xe3a dw $0001 dw $0002 dw $0004 dw $0008 dw $0016 dw $0032 dw $0064 dw $0128 Func_e4a: ; 0xe4a ld a, [hl] cp $64 jr z, .asm_e53 inc a ld [hl], a scf ret .asm_e53 and a ret Func_e55: ; 0xe55 cp c jr c, .asm_e5b sub c jr Func_e55 .asm_e5b and a ret Func_e5d: ; 0xe5d ld a, $1 ld [$d84a], a .asm_e62 ld a, [$d84a] and a jr nz, .asm_e62 ret Func_e69: ; 0xe69 ld a, [rLY] cp $90 jr nc, Func_e69 .asm_e6f ld a, [rSTAT] and $3 jr nz, .asm_e6f ld a, $a .asm_e77 dec a jr nz, .asm_e77 ld hl, wcBottomMessageText + $140 call Func_eef push hl ld hl, $9c00 call Func_ef8 pop hl call Func_eef push hl ld hl, $9c04 call Func_ef8 pop hl call Func_eef push hl ld hl, $9c08 call Func_ef8 pop hl call Func_eef push hl ld hl, $9c0c call Func_ef8 pop hl call Func_eef push hl ld hl, $9c10 call Func_ef8 pop hl ld hl, wcBottomMessageText + $1c0 call Func_eef push hl ld hl, $9c20 call Func_ef8 pop hl call Func_eef push hl ld hl, $9c24 call Func_ef8 pop hl call Func_eef push hl ld hl, $9c28 call Func_ef8 pop hl call Func_eef push hl ld hl, $9c2c call Func_ef8 pop hl call Func_eef push hl ld hl, $9c30 call Func_ef8 pop hl ret Func_eef: ; 0xeef ld a, [hli] ld b, a ld a, [hli] ld c, a ld a, [hli] ld d, a ld a, [hli] ld e, a ret Func_ef8: ; 0xef8 ld a, [rSTAT] and $3 jr nz, Func_ef8 ld a, b ld [hli], a ld a, c ld [hli], a ld a, d ld [hli], a ld a, e ld [hli], a ld a, $a .asm_f08 dec a jr nz, .asm_f08 ret Func_f0c: ; 0xf0c call Func_f34 ret nc .asm_f10 ld a, [hli] ld [de], a inc de dec bc ld a, b or c jr nz, .asm_f10 scf ret SaveData: ; 0xf1a ; Input: hl = data to save ; bc = number of bytes to save ; de = destination for saved data push bc push de push hl .asm_f1d ld a, [hli] ld [de], a inc de dec bc ld a, b or c jr nz, .asm_f1d pop hl pop de pop bc ld h, d ld l, e call Func_f74 call Func_fa1 call Func_f4c ret Func_f34: ; 0xf34 call Func_f62 jr nc, .asm_f3f call Func_f7e jr nc, .asm_f3f ret .asm_f3f add hl, bc inc hl inc hl inc hl inc hl call Func_f62 ret nc call Func_f7e ret Func_f4c: ; 0xf4c push bc push hl push de inc bc inc bc inc bc inc bc ld d, h ld e, l add hl, bc .asm_f56 ld a, [de] ld [hli], a inc de dec bc ld a, b or c jr nz, .asm_f56 pop de pop hl pop bc ret Func_f62: ; 0xf62 push hl add hl, bc ld a, [hli] cp $4e jr nz, .asm_f71 ld a, [hl] cp $54 jr nz, .asm_f71 scf jr .asm_f72 .asm_f71 and a .asm_f72 pop hl ret Func_f74: ; 0xf74 push hl add hl, bc ld a, $4e ld [hli], a ld a, $54 ld [hl], a pop hl ret Func_f7e: ; 0xf7e push bc push de push hl inc bc inc bc ld de, $0000 .asm_f86 ld a, [hli] add e ld e, a jr nc, .asm_f8c inc d .asm_f8c dec bc ld a, b or c jr nz, .asm_f86 ld a, [hli] cp e jr nz, .asm_f9c ld a, [hl] cp d jr nz, .asm_f9c scf jr .asm_f9d .asm_f9c and a .asm_f9d pop hl pop de pop bc ret Func_fa1: ; 0xfa1 push bc push de push hl inc bc inc bc ld de, $0000 .asm_fa9 ld a, [hli] add e ld e, a jr nc, .asm_faf inc d .asm_faf dec bc ld a, b or c jr nz, .asm_fa9 ld a, e ld [hli], a ld a, d ld [hl], a pop hl pop de pop bc ret Func_fbc: ; 0xfbc jp Func_3ff Func_fbf: ; 0xfbf ld hl, $ffa8 ld c, [hl] ld a, [rLY] cp c jp c, Func_3ff inc c inc c cp c jp nc, Func_3ff ld a, [$ffaf] ld c, a ld a, [$ff9e] xor $10 and c ld c, a ld hl, rSTAT .asm_fdb ld a, [hl] and $3 jr nz, .asm_fdb ld a, [rLCDC] and $80 or c ld [rLCDC], a jp Func_3ff Func_fea: ; 0xfea ld hl, $ffa8 ld a, [$ffaa] cp [hl] jr nz, .asm_1015 ld a, [rLY] cp [hl] jp nz, Func_3ff ld a, [$ff9e] xor $18 ld c, a ld a, [$ffac] ld b, a ld hl, rSTAT .asm_1003 ld a, [hl] and $3 jr nz, .asm_1003 ld a, [rLCDC] and $80 or c ld [rLCDC], a ld a, b ld [rSCY], a jp Func_3ff .asm_1015 ld a, [rLY] cp [hl] jr nz, .asm_1037 ld a, [$ffa8] ld hl, $ffaa sub [hl] add $40 ld c, a ld a, [$ffaa] ld b, a ld hl, rSTAT .asm_1029 ld a, [hl] and $3 jr nz, .asm_1029 ld a, c ld [rSCY], a ld a, b ld [rLYC], a jp Func_3ff .asm_1037 ld hl, $ffaa ld a, [rLY] cp [hl] jp nz, Func_3ff ld a, [$ff9e] xor $18 ld c, a ld a, [$ffac] ld b, a ld hl, rSTAT .asm_104b ld a, [hl] and $3 jr nz, .asm_104b ld a, [rLCDC] and $80 or c ld [rLCDC], a ld a, b ld [rSCY], a jp Func_3ff Func_105d: ; 0x105d ld hl, $ffa8 ld a, [rLY] cp [hl] jr z, .asm_1069 dec a cp [hl] jr nz, .asm_1080 .asm_1069 ld a, [$ffaa] ld c, a ld a, [$ffac] ld b, a ld hl, rSTAT .asm_1072 ld a, [hl] and $3 jr nz, .asm_1072 ld a, b ld [rSCY], a ld a, c ld [rLYC], a jp Func_3ff .asm_1080 ld hl, $ffaa ld a, [rLY] cp [hl] jr z, .asm_108d dec a cp [hl] jp nz, Func_3ff .asm_108d ld a, [$ffae] ld b, a ld hl, rSTAT .asm_1093 ld a, [hl] and $3 jr nz, .asm_1093 ld a, b ld [rSCY], a jp Func_3ff Func_109e: ; 0x109e jp Func_3ff Func_10a1: ; 0x10a1 jp Func_3ff Func_10a4: ; 0x10a4 jp Func_3ff Func_10a7: ; 0x10a7 jp Func_3ff Func_10aa: ; 0x10aa ld c, a ld a, [hli] ld b, a .asm_10ad push bc ld a, c ld c, [hl] inc hl ld b, [hl] inc hl push af ld a, [bc] ld e, a inc bc ld a, [bc] ld d, a inc bc pop af push hl call Func_10c5 pop hl pop bc dec b jr nz, .asm_10ad ret Func_10c5: ; 0x10c5 push af ld a, [rLCDC] bit 7, a jr z, .asm_10d2 .asm_10cc ld a, [rLY] cp $88 jr nc, .asm_10cc .asm_10d2 pop af ld hl, $d7fb ld l, [hl] ld h, $cb inc bc ld [hl], c inc h ld [hl], b inc h ld [hl], a inc h ld [hl], e inc h ld [hl], d ld e, $ff ld [$fffa], a ld a, [hLoadedROMBank] push af ld a, [$fffa] ld [hLoadedROMBank], a ld [MBC5RomBank], a dec bc ld a, [bc] ld hl, $d7fa add [hl] cp $30 jr c, .asm_10fe ld a, [bc] ld e, $0 .asm_10fe add $4 ld [hl], a pop af ld [hLoadedROMBank], a ld [MBC5RomBank], 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, [rLCDC] bit 7, a ret nz ld a, [rIE] push af res 0, a ld [rIE], a call Func_113a pop af ld [rIE], a ret Func_1129: ; 0x1129 ld a, [$d7fb] ld [$d7fc], a ret Func_1130: ; 0x1130 push hl ld a, [$d7fb] ld hl, $d7fc cp [hl] pop hl ret Func_113a: ; 0x113a ld hl, $d7fc ld a, [$d7fb] cp [hl] ret z ld l, [hl] ld h, $ca ld [hl], $ff .loop ld a, [hl] and a jr z, .done push hl inc h ld e, [hl] inc h ld d, [hl] inc h ld a, [hLoadedROMBank] push af ld a, [hl] ld [hLoadedROMBank], a ld [MBC5RomBank], a inc h ld a, [hl] inc h ld h, [hl] ld l, a call Func_117a pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a pop hl inc l jr .loop .done ld a, l ld [$d7fc], a ld hl, $d7fb cp [hl] ret nz xor a ld [$d7fa], a ret Func_117a: ; 0x117a jp [hl] LoadTileLists: ; 0x117b ; Loads a series of defined tile ids into VRAM ; input: de = pointer to data structure ; data structure: list of VRAM tile data with the following format ; [num tiles][destination pointer][list of tile ids] ld h, d ld l, e .loadTileSequence ld a, [hli] and a ret z ld b, a ld a, [hli] ld e, a ld a, [hli] ld d, a ; de = destination for tile data .loadTileData ld a, [hli] ld [de], a inc de dec b jr nz, .loadTileData jr .loadTileSequence Func_118d: ; 0x118d ld a, $1 ld [rVBK], a call LoadTileLists xor a ld [rVBK], a ret dr $1198, $12a1 Func_12a1: ; 0x12a1 ld [$fffa], a ld a, [hLoadedROMBank] push af ld a, [$fffa] ld [hLoadedROMBank], a ld [MBC5RomBank], 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 [MBC5RomBank], a ret Func_12ec ; 0x12ec ld de, 7000 .asm_12ef nop nop nop dec de ld a, d or e jr nz, .asm_12ef ret Func_12f8: ; 0x12f8 ld a, BANK(Data_38010) ld hl, Data_38010 call Func_12a1 call Func_12ec ld a, [rJOYP] and $3 cp $3 jr nz, .asm_1346 ld a, $20 ld [rJOYP], a ld a, [rJOYP] ld a, [rJOYP] ld a, $30 ld [rJOYP], a ld a, $10 ld [rJOYP], a ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] ld a, $30 ld [rJOYP], a ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] ld a, [rJOYP] and $3 cp $3 jr nz, .asm_1346 ld a, BANK(Data_38000) ld hl, Data_38000 call Func_12a1 call Func_12ec and a ret .asm_1346 ld a, BANK(Data_38000) ld hl, Data_38000 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 [MBC5RomBank], a push af push hl ld a, $e4 ld [rBGP], a ld de, $0010 add hl, de ld de, vTiles1 ; tiles call LocalCopyData 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 [rLCDC], a ld bc, $0005 call Func_948 pop hl pop af call Func_12a1 ld bc, $0006 call Func_948 ld a, [$ffa3] ld [rBGP], a ld a, [$ff9e] ld [rLCDC], a pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret Func_13a8: ; 0x13a8 ld a, [$fffb] and a ret z ld bc, $0078 call Func_948 call Func_1489 ld a, BANK(Data_3a9e6) ld hl, Data_3a9e6 call Func_12a1 ld bc, $0004 call Func_948 ld a, BANK(Data_3a9f6) ld hl, Data_3a9f6 call Func_12a1 ld bc, $0004 call Func_948 ld a, BANK(Data_3aa06) ld hl, Data_3aa06 call Func_12a1 ld bc, $0004 call Func_948 ld a, BANK(Data_3aa16) ld hl, Data_3aa16 call Func_12a1 ld bc, $0004 call Func_948 ld a, BANK(Data_3aa26) ld hl, Data_3aa26 call Func_12a1 ld bc, $0004 call Func_948 ld a, BANK(Data_3aa36) ld hl, Data_3aa36 call Func_12a1 ld bc, $0004 call Func_948 ld a, BANK(Data_3aa46) ld hl, Data_3aa46 call Func_12a1 ld bc, $0004 call Func_948 ld a, BANK(Data_3aa56) ld hl, Data_3aa56 call Func_12a1 ld bc, $0004 call Func_948 ld bc, Data_39166 - Data_38156 - $10 ld a, BANK(Data_38156) ld hl, Data_38156 ; todo call Func_1353 ld bc, $0004 call Func_948 ld bc, Data_3a176 - Data_39166 - $10 ld a, BANK(Data_39166) ld hl, Data_39166 ; todo call Func_1353 ld bc, $0004 call Func_948 ld bc, Data_3a9e6 - Data_3a176 - $10 ld a, BANK(Data_3a176) ld hl, Data_3a176 ; todo call Func_1353 ld bc, $0004 call Func_948 ld bc, Data_38156 - Data_380a6 - $10 ld a, BANK(Data_380a6) ld hl, Data_380a6 ; todo call Func_1353 ld bc, $0004 call Func_948 ld bc, Data_3809a - Data_38030 - $10 ld a, BANK(Data_38030) ld hl, Data_38030 call Func_1353 ld bc, $0004 call Func_948 ld a, BANK(Data_38020) ld hl, Data_38020 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, BANK(Data_3aa66) ld hl, Data_3aa66 ; 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, BANK(Data_3aa76) ld hl, Data_3aa76 call Func_12a1 ld bc, $0004 call Func_948 xor a ld [$fffc], a ret dr $14c4, $167b 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 dr $169d, $16a2 Func_16a2: ; 0x16a2 xor a ld [rSB], a ld [rSC], a ld [$d8ad], a dec a ld [$d8c7], a ld [$d8c8], a call Func_16b5 ret Func_16b5: ; 0x16b5 xor a ld [$d8c5], a ld [$d8ca], a ld [$d8db], a ; fall through Func_16bf: ; 0x16bf xor a ld [$d8af], a ld [$d8b0], a ld [$d8b1], a ld [$d8b2], a ld [$d8c6], a ld [$d8c3], a ld [$d8c4], a ld [$d8b9], a ld [$d8ba], a ld [$d8dc], a ld [$d8e2], a ret Func_16e2: ; 0x16e2 ld a, [$d8db] and a jr z, .asm_16ec call Func_16fd ret nc .asm_16ec ld a, [$d8ae] cp $1 jr nz, .asm_16f7 call Func_16fd ret nc .asm_16f7 call Func_1925 jp Func_19e5 Func_16fd: ; 0x16fd ld a, [$d8c5] cp $2 jr nz, .asm_173c xor a ld [$d8e0], a ld [$d8ae], a inc a ld [$d8ad], a ld a, [$d8c7] cp $ff jr z, .asm_1735 bit 0, a jr nz, .asm_172e bit 1, a jr nz, .asm_172e bit 4, a jr z, .asm_173a xor a ld [$d8ad], a ld [$d8ae], a ld a, [$d8c7] jr .asm_173a .asm_172e scf ret xor a ld [$d8ae], a dec a .asm_1735 inc a ld [$d8ad], a dec a .asm_173a and a ret .asm_173c xor a ld a, $f0 ret Func_1740: ; 0x1740 ld a, [$d8ad] cp $1 jr z, .asm_1752 cp $2 jr z, .asm_1752 and a ld a, $ff ret z .asm_174f ld a, $f0 ret .asm_1752 ld a, [$d8e2] and a jr nz, .asm_174f ld a, [$d8db] and a jr z, .asm_1762 call Func_16fd ret nc .asm_1762 ld a, [$d8ae] cp $2 jr nz, .asm_176d call Func_16fd ret nc .asm_176d ld a, [$d8c7] cp $ff ret z call Func_1932 jp Func_19e5 Func_1779: ; 0x1779 ld c, a ld a, [$d8ad] and a ld a, [$d8c7] ret z ld a, [$d8ad] cp $1 jr z, .asm_1790 cp $3 jr z, .asm_1790 ld a, $f0 ret .asm_1790 ld a, [$d8db] and a jr nz, .asm_17df ld a, c inc a ld [$d8de], a ld a, l ld [$d8c1], a ld a, h ld [$d8c2], a ld a, [$d8c7] cp $ff ret z ld a, [$d8ab] ld [$d8ac], a and a jr z, .asm_17d6 ld a, [$d8de] dec a dec a push af ld c, a ld b, $0 push hl ld hl, $d89d add hl, bc ld a, [hl] pop hl ld [$d8ac], a pop af add a ld c, a ld b, $0 push hl ld hl, $d88b add hl, bc ld a, [hli] ld b, [hl] pop hl ld c, a jp .asm_17d9 .asm_17d6 ld bc, $0280 .asm_17d9 call Func_1989 jp Func_19e5 .asm_17df ld a, [$d8c5] cp $2 ld a, $f0 jp nz, .asm_1869 ld hl, $d8de ld a, [$d8c7] bit 4, a jp nz, .asm_1859 bit 1, a jp nz, .asm_1804 bit 0, a jp nz, .asm_1804 dec [hl] ld a, [$d8c7] jr z, .asm_1860 .asm_1804 ld a, [hl] cp $1 jr z, .asm_186a ld bc, $0280 ld a, [$d8ab] ld [$d8ac], a and a jr z, .asm_1836 ld a, [$d8de] dec a dec a push af ld c, a ld b, $0 push hl ld hl, $d89d add hl, bc ld a, [hl] pop hl ld [$d8ac], a pop af add a ld c, a ld b, $0 push hl ld hl, $d88b add hl, bc ld a, [hli] ld b, [hl] pop hl ld c, a .asm_1836 ld a, [$d8c7] bit 1, a jp nz, .asm_184e ld a, [$d8bf] add $80 ld [$d8bf], a ld a, [$d8c0] adc $2 ld [$d8c0], a .asm_184e ld a, [$d8bf] ld l, a ld a, [$d8c0] ld h, a jp .asm_17d9 .asm_1859 push af ld a, $1 ld [$d8dc], a pop af .asm_1860 push af xor a ld [$d8cc], a ld [$d8db], a pop af .asm_1869 ret .asm_186a ld a, [$d8dd] and a ld a, [$d8c7] jr z, .asm_1860 call Func_19d7 jp Func_19e5 dr $1879, $18ac 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 dr $18ff, $1901 Data_1901: dr $1901, $1909 Data_1909: dr $1909, $190d Data_190d: dr $190d, $191d Data_191d: dr $191d, $1925 Func_1925: ; 0x1925 ld a, $1 ld d, $0 ld hl, Data_1901 ; todo ld bc, $0008 jp Func_18d4 Func_1932: ; 0x19332 ld a, $2 ld d, $0 ld hl, $d8cd ld bc, $000c call Func_18d4 ld hl, Data_1909 ld de, $d8cd ld bc, $0004 call LocalCopyData ld de, $0006 ld a, [$d8a8] ld [$d8d1], a call Func_1982 ld a, [$d8a9] ld [$d8d2], a call Func_1982 ld a, [$d8aa] ld [$d8d3], a call Func_1982 ld a, [$d8a7] ld [$d8d4], a call Func_1982 ld a, e ld [$d8d5], a ld a, d ld [$d8d6], a xor a ld [$d8d7], a ld [$d8d8], a ret Func_1982: ; 0x1982 add e ld e, a ld a, d adc $0 ld d, a ret Func_1989: ; 0x1989 ld a, l ld [$d8bf], a ld a, h ld [$d8c0], a ld a, c ld [$d8b7], a ld a, b ld [$d8b8], a push bc ld a, $3 ld d, $1 ld hl, $d8cd ld bc, $0004 call Func_18d4 ld a, [$190d] ld [$d8cd], a ld a, [$d8ac] ld [$d8ce], a pop bc ld a, c ld [$d8cf], a ld a, b ld [$d8d0], a ret dr $19bd, $19ca Func_19ca: ; 0x19ca ld a, $5 ld d, $0 ld hl, Data_191d ; todo ld bc, $0008 jp Func_18d4 Func_19d7: ; 0x19d7 ld a, $6 ld d, $1 ld hl, Data_190d ; todo ld bc, $0008 jp Func_18d4 ; XXX ret 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 [rSB], a ld a, $1 ld [rSC], a ld a, $81 ld [rSC], a ld a, $f0 ret Func_1a21: ; 0x1a21 call Func_1a59 call Func_1a89 jr c, .asm_1a3f .asm_1a29 call Func_1aa9 call Func_1b3d jr c, .asm_1a3f ld a, [$d86c] and a jr z, .asm_1a29 call Func_1b60 jr c, .asm_1a3f call Func_1b88 .asm_1a3f call Func_1ba7 ret Func_1a43: ; 0x1a43 xor a ld [$d86e], a call Func_1a59 call Func_1a89 jr c, .asm_1a54 ld a, $1 ld [$d86e], a .asm_1a54 call Func_1ba7 ret ret ; unused instruction? Func_1a59: ; 0x1a59 ld [$d86a], a ld a, h ld [$d869], a ld a, l ld [$d868], a ld a, $80 ld [$d866], a ld a, $c2 ld [$d867], a xor a ld [$d86b], a ld [$d86c], a ld [$d86d], a call Func_16a2 ld hl, rIE set 3, [hl] xor a ld [$ffb1], a ld a, $1 ld [$d8e1], a ret Func_1a89: ; 0x1a89 call Func_16e2 cp $f0 jr z, .asm_1a9f cp $ff jp z, Func_1bb2 ld a, [$d8c8] cp $81 jp nz, Func_1bb2 and a ret .asm_1a9f ld a, [hNewlyPressedButtons] bit 1, a jp nz, Func_1bd3 rst AdvanceFrame jr Func_1a89 Func_1aa9: ; 0x1aa9 ld a, [$d866] ld l, a ld a, [$d867] ld h, a ld de, wc000 ld b, $2 .asm_1ab6 ld c, $14 .asm_1ab8 ld a, [hli] call Func_1ae2 dec c jr nz, .asm_1ab8 ld a, l add $c ld l, a jr nc, .asm_1ac6 inc h .asm_1ac6 dec b jr nz, .asm_1ab6 ld a, l ld [$d866], a ld a, h ld [$d867], a ld a, [$d86b] inc a ld [$d86b], a cp $9 jr nz, .asm_1ae1 ld a, $1 ld [$d86c], a .asm_1ae1 ret Func_1ae2: ; 0x1ae2 push bc push hl xor $80 swap a ld c, a and $f ld b, a ld a, c and $f0 ld c, a ld a, [$d868] ld l, a ld a, [$d869] ld h, a add hl, bc ld a, [hLoadedROMBank] push af ld a, [$d86a] ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc e ld a, [hli] ld [de], a inc de pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a pop hl pop bc ret Func_1b3d: ; 0x1b3d ld a, [$d86c] ld [$d8dd], a ld hl, wc000 ld a, $1 call Func_1779 cp $ff jp z, Func_1bb2 cp $f0 jr z, .asm_1b56 and a ret .asm_1b56 ld a, [hNewlyPressedButtons] bit BIT_B_BUTTON, a jp nz, Func_1bd3 rst AdvanceFrame jr Func_1b3d Func_1b60: ; 0x1b60 ld a, $1 ld [$d8a8], a ld a, $13 ld [$d8a9], a call Func_1740 cp $ff jp z, Func_1bb2 cp $f0 jr z, .asm_1b7e ld bc, $001e call Func_93f and a ret .asm_1b7e ld a, [hNewlyPressedButtons] bit BIT_B_BUTTON, a jp nz, Func_1bd3 rst AdvanceFrame jr Func_1b60 Func_1b88: ; 0x1b88 ld a, [$d8c7] ld b, a cp $ff jr z, Func_1bb2 and $f0 jr nz, Func_1bb2 bit 1, b jr nz, .asm_1b9d call Func_16a2 and a ret .asm_1b9d ld a, [hNewlyPressedButtons] bit BIT_B_BUTTON, a jp nz, Func_1bd3 rst AdvanceFrame jr Func_1b88 Func_1ba7: ; 0x1ba7 ld hl, rIE res 3, [hl] xor a ld [$d8e1], a and a ret Func_1bb2: ; 0x1bb2 ld hl, Data_1bcf ld a, [$d8c7] cp $ff jr z, .asm_1bc6 ld b, $3 .asm_1bbe inc hl sla a jr c, .asm_1bc6 dec b jr nz, .asm_1bbe .asm_1bc6 ld a, [hl] ld [$d86d], a call Func_16a2 scf ret Data_1bcf: dr $1bcf, $1bd3 Func_1bd3: ; 0x1bd3 ld de, $0001 call PlaySoundEffect ld a, $5 ld [$d86d], a call Func_16a2 scf ret Func_1be3: ; 0x1be3 ld a, $c0 ld [rRP], a ld a, $ff ld [$d8ea], a xor a ld b, a .asm_1bee inc a jr nz, .asm_1bee inc b jr nz, .asm_1bee ld hl, $d8eb ld a, [rKEY1] bit 7, a jr z, .asm_1c0c ld [hl], $e inc hl ld [hl], $12 inc hl ld [hl], $8 inc hl ld [hl], $c inc hl ld [hl], $c ret .asm_1c0c ld [hl], $6 inc hl ld [hl], $8 inc hl ld [hl], $2 inc hl ld [hl], $4 inc hl ld [hl], $5 ret Func_1c1b: ; 0x1c1b inc d ret z ld a, [$ff00+c] bit 1, a jr z, Func_1c1b ret Func_1c23: ; 0x1c23 inc d ret z ld a, [$ff00+c] bit 1, a jr nz, Func_1c23 ret Func_1c2b: ; 0x1c2b ld a, $c1 ld [$ff00+c], a .asm_1c2e dec d jr nz, .asm_1c2e ret Func_1c32: ; 0x1c32 ld a, $c0 ld [$ff00+c], a .asm_1c35 dec d jr nz, .asm_1c35 ret dr $1c39, $1c50 Func_1c50: ; 0x1c50 ld a, $1 ld [$d8e9], a ld b, $1a ld c, $56 ld d, $0 ld e, d call Func_1c23 ld a, d and a jp z, Func_1dc2 ld d, e call Func_1c1b ld a, d and a jp z, Func_1dc2 call Func_1c23 ld a, d and a jp z, Func_1dc2 call Func_1c1b ld a, d and a jp z, Func_1dc2 cp $8 jp c, Func_1dc2 cp $2a jp nc, Func_1dc2 ld a, $0 ld [$d8ea], a ld d, b call Func_1c32 ld d, b call Func_1c2b ld d, b call Func_1c32 ld d, b call Func_1c2b ld d, b call Func_1c32 ret Func_1ca1: ; 0x1ca1 ld a, $2 ld [$d8e9], a ld b, $1a ld c, $56 ld d, b ld e, $0 call Func_1c32 ld d, b call Func_1c2b ld d, b call Func_1c32 ld d, b call Func_1c2b ld d, b call Func_1c32 ld d, e call Func_1c23 ld a, d and a jp z, Func_1dc2 ld d, e call Func_1c1b ld a, d and a jp z, Func_1dc2 ld d, e call Func_1c23 ld a, d and a jp z, Func_1dc2 ld d, e call Func_1c1b ld a, d and a jp z, Func_1dc2 ld d, $1a call Func_1c32 ld a, $0 ld [$d8ea], a ret dr $1cef, $1cf8 Func_1cf8: ; 0x1cf8 xor a ld [$d8e4], a ld [$d8e5], a push hl push bc ld hl, $d8e6 ld a, $5a ld [hli], a ld [hl], b dec hl ld b, $2 ld d, $1e call Func_1c32 call Func_1d44 pop bc pop hl call Func_1ed3 call Func_1d44 ld a, [$d8e4] ld [$d8e6], a ld a, [$d8e5] ld [$d8e7], a ld hl, $d8e6 ld b, $2 call Func_1d44 ld hl, $d8ea ld b, $1 call Func_1e3b ld a, [$d8e6] ld [$d8e4], a ld a, [$d8e7] ld [$d8e5], a ret Func_1d44: ; 0x1d44 ld a, [$d8ea] cp $0 ret nz ld c, $56 ld d, $16 call Func_1c2b ld d, $16 call Func_1c32 ld a, b cpl ld b, a .asm_1d59 inc b jr z, .asm_1dae ld a, $8 ld [$d8e3], a ld a, [hli] ld e, a ld a, [$d8e4] add e ld [$d8e4], a jr nc, .asm_1d75 ld a, [$d8e5] inc a ld [$d8e5], a jr .asm_1d78 .asm_1d75 call Func_1ed3 .asm_1d78 ld a, e rlca ld e, a jr nc, .asm_1d8d ld a, [$d8eb] ld d, a call Func_1c2b ld a, [$d8ec] ld d, a call Func_1c32 jr .asm_1d9b .asm_1d8d ld a, [$d8ed] ld d, a call Func_1c2b ld a, [$d8ee] ld d, a call Func_1c32 .asm_1d9b ld a, [$d8e3] dec a ld [$d8e3], a jr z, .asm_1dac call Func_1ed4 call Func_1ed4 jr .asm_1d78 .asm_1dac jr .asm_1d59 .asm_1dae call Func_1ed3 call Func_1ed3 call Func_1ed4 ld d, $16 call Func_1c2b ld d, $16 call Func_1c32 ret Func_1dc2: ; 0x1dc2 ld a, $2 ld [$d8ea], a ret dr $1dc8, $1dd1 Func_1dd1: ; 0x1dd1 ld a, [$d8ea] or $4 ld [$d8ea], a ret Func_1dda: ; 0x1dda xor a ld [$d8e4], a ld [$d8e5], a push hl ld hl, $d8e6 ld b, $2 call Func_1e3b ld a, [$d8e7] ld [$d8e8], a ld b, a pop hl ld a, [$d8e6] cp $5a jp nz, Func_1dd1 call Func_1e3b ld a, [$d8e4] ld d, a ld a, [$d8e5] ld e, a push de ld hl, $d8e6 ld b, $2 call Func_1e3b pop de ld hl, $d8e6 ld a, [hli] xor d ld b, a ld a, [hl] xor e or b jr z, .asm_1e22 ld a, [$d8ea] or $1 ld [$d8ea], a .asm_1e22 push de ld hl, $d8ea ld b, $1 call Func_1d44 pop de ld a, d ld [$d8e4], a ld a, e ld [$d8e5], a ld a, [$d8e8] cp $82 ret z ret Func_1e3b: ; 0x1e3b ld a, [$d8ea] cp $0 ret nz ld c, $56 ld d, $0 call Func_1c23 ld a, d or a jp z, Func_1dc2 ld d, $0 call Func_1c1b ld a, d or a jp z, Func_1dc2 ld d, $0 call Func_1c23 ld a, d or a jp z, Func_1dc2 call Func_1ed4 call Func_1ed4 push af pop af ld a, b cpl ld b, a .asm_1e6c inc b jr z, .asm_1eb9 ld a, $8 ld [$d8e3], a .asm_1e74 ld d, $0 call Func_1c1b call Func_1c23 ld a, [$d8ef] cp d jr nc, .asm_1e88 ld a, e set 0, a ld e, a jr .asm_1e8c .asm_1e88 ld a, e res 0, a ld e, a .asm_1e8c ld a, [$d8e3] dec a ld [$d8e3], a jr z, .asm_1ea0 ld a, e rlca ld e, a call Func_1ed4 call Func_1ed4 jr .asm_1e74 .asm_1ea0 ld a, e ld [hli], a ld a, [$d8e4] add e ld [$d8e4], a jr nc, .asm_1eb4 ld a, [$d8e5] inc a ld [$d8e5], a jr .asm_1eb7 .asm_1eb4 call Func_1ed3 .asm_1eb7 jr .asm_1e6c .asm_1eb9 ld d, $0 call Func_1c1b ld a, d and a jp z, Func_1dc2 ld d, $11 call Func_1c32 ret dr $1ec9, $1ed3 Func_1ed3: ; 0x1ed3 ret Func_1ed4: ; 0x1ed4 jr z, .asm_1ed6 .asm_1ed6 jr nz, .asm_1ed8 .asm_1ed8 ret dr $1ed9, $1f0b LoadOAMData2: ; 0x1f0b ; This function loads OAM data, but it adds b and c to the x and y values ; input: a = OAM data id (see OAMDataPointers2) push bc push de push hl ld e, a ld d, $0 sla e rl d ld a, [hLoadedROMBank] push af ld a, Bank(OAMDataPointers2) ld [hLoadedROMBank], a ld [MBC5RomBank], a ld hl, OAMDataPointers2 jr asm_1f3b LoadOAMData: ; 0x1f24 ; This function loads OAM data, but it adds b and c to the x and y values ; input: a = OAM data id (see OAMDataPointers) push bc push de push hl ld e, a ld d, $0 sla e rl d ; multiply de by 2 ld a, [hLoadedROMBank] push af ld a, Bank(OAMDataPointers) ld [hLoadedROMBank], a ld [MBC5RomBank], a ld hl, OAMDataPointers asm_1f3b: ; 0x1f3b add hl, de ; hl points to oam pointer in OAMDataPointers ld a, [hli] ld e, a ld a, [hl] ld d, a ; de points to OAM data ld a, [$d802] ld l, a ld h, (wOAMBuffer >> 8) .loadOAMDataLoop ld a, [de] cp $80 ; OAM data list terminator jr z, .doneReadingOAMData add c ld [hli], a inc de ld a, [de] add b ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de jr .loadOAMDataLoop .doneReadingOAMData ld a, l ld [$d802], a pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a pop hl pop de pop bc ret dr $1f68, $1ffc Func_1ffc: ; 0x1ffc ld a, $b ld [$d806], a ld a, $4 ld [$d807], a ld [$ff8a], a callba Func_3c000 ld a, $1 ld [$d85d], a ld a, $37 ld [$d470], a ld [$d471], a ld [$d472], a ld a, SCREEN_ERASE_ALL_DATA ld [wCurrentScreen], a .asm_2025 call Func_2034 call Func_2043 call Func_926 call Func_b2e rst AdvanceFrame jr .asm_2025 Func_2034: ; 0x2034 ld a, [$d804] and a jr z, .asm_203f dec a ld [$d804], a ret .asm_203f ld [$d803], a ret Func_2043: ; 0x2043 ld a, [wCurrentScreen] call CallInFollowingTable CallTable_2049: ; 0x2049 ; First two bytes is function pointer. ; Third byte is bank of function. ; Fourth byte seems to be unused. dw Func_8000 db Bank(Func_8000), $00 ; SCREEN_ERASE_ALL_DATA dw HandleEraseAllDataMenu db Bank(HandleEraseAllDataMenu), $00 ; SCREEN_COPYRIGHT dw HandleCopyrightScreen db Bank(HandleCopyrightScreen), $00 ; SCREEN_TITLESCREEN dw HandleTitlescreen db Bank(HandleTitlescreen), $00 ; SCREEN_PINBALL_GAME dw HandlePinballGame db Bank(HandlePinballGame), $00 ; SCREEN_POKEDEX dw HandlePokedexScreen db Bank(HandlePokedexScreen), $00 ; SCREEN_OPTIONS dw HandleOptionsScreen db Bank(HandleOptionsScreen), $00 ; SCREEN_HIGH_SCORES dw HandleHighScoresScreen db Bank(HandleHighScoresScreen), $00 ; SCREEN_FIELD_SELECT dw HandleFieldSelectScreen db Bank(HandleFieldSelectScreen), $00 ; end of call table Func_206d: ; 0x206d ld a, [hLoadedROMBank] push af ld a, Bank(Func_8d17) ld [hLoadedROMBank], a ld [MBC5RomBank], a call Func_8d17 jr c, .asm_2084 pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a and a ret .asm_2084 pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a scf ret Func_208c: ; 0x208c ld a, [hLoadedROMBank] push af ld a, Bank(Func_8ee0) ld [hLoadedROMBank], a ld [MBC5RomBank], a call Func_8ee0 jr c, .asm_20a3 pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a and a ret .asm_20a3 pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a scf ret Func_20ab: ; 0x20ab push af xor a ld [$ffb6], a jr .asm_20c6 push af ld a, b xor c ld [$ffb6], a bit 7, b jr z, .asm_20be ld a, b cpl inc a ld b, a .asm_20be bit 7, c jr z, .asm_20c6 ld a, c cpl inc a ld c, a .asm_20c6 push de push hl ld a, b cp c jr nc, .asm_20ce ld b, c ld c, a .asm_20ce ld h, $3e ld l, c ld e, [hl] inc h ld d, [hl] ld l, b ld a, [hl] dec h ld l, [hl] ld h, a add hl, de push af ld d, $3e ld a, b sub c ld e, a ld a, [de] ld c, a inc d ld a, [de] ld b, a ld a, l sub c ld l, a ld a, h sbc b ld h, a jr nc, .asm_20f1 pop af ccf jr .asm_20f2 .asm_20f1 pop af .asm_20f2 rr h rr l ld b, h ld c, l ld a, [$ffb6] rlca jr nc, .asm_2107 ld a, c cpl add $1 ld c, a ld a, b cpl adc $0 ld b, a .asm_2107 pop hl pop de pop af ret Func_210b: ; 0x210b push af push hl ld a, b xor d ld [$ffb7], a bit 7, b jr z, .asm_211f ld a, c cpl add $1 ld c, a ld a, b cpl adc $0 ld b, a .asm_211f push bc ld b, e call Func_20ab ld l, c ld h, b ld bc, $0080 add hl, bc ld l, h ld h, $0 pop bc ld c, e call Func_20ab add hl, bc ld a, [$ffb7] rlca jr nc, .asm_2142 ld a, l cpl add $1 ld l, a ld a, h cpl adc $0 ld h, a .asm_2142 ld c, l ld b, h pop hl pop af ret Func_2147: ; 0x2147 add $40 ; fall through Func_2149: ; 0x2149 push hl ld [$ffb6], a and $7f cp $40 jr c, .asm_2155 cpl add $81 .asm_2155 ld hl, Data_26be ; todo ld e, a ld d, $0 add hl, de ld e, [hl] pop hl ld d, $0 ld a, [$ffb6] sla a ret nc ld d, $ff ret ApplyGravityToBall: ; 0x2168 ; Adds a constant to the pinball's y velocity. ld a, [$d549] and a ret z ld de, $000b ; gravity added to y velocity every frame ld hl, wBallYVelocity ld a, [hli] ld h, [hl] ld l, a add hl, de ld a, l ld [wBallYVelocity], a ld a, h ld [wBallYVelocity + 1], a ret LimitBallVelocity: ; 0x2180 ; Ensures that the ball's x and y velocity are kept under a threshold. ; The ball can travel at a higher max speed when moving diagonally, since it ; limits the x and y components independently. ld hl, wBallXVelocity + 1 call _LimitBallVelocity ld hl, wBallYVelocity + 1 ; fall through _LimitBallVelocity: ; 0x2189 ld a, [hl] bit 7, a ; is it negative velocity? (left or up) jr nz, .negativeVelocity cp $8 ret c ld a, $7 ; max positive velocity ld [hl], a ret .negativeVelocity cp $f9 ret nc ld a, $f9 ; max negative velocity ld [hl], a ret MoveBallPosition: ; 0x219c ; Updates the ball's position according to its velocity ld a, [wBallXPos] ld [wPreviousBallXPos], a ld a, [wBallXPos + 1] ld [wPreviousBallXPos + 1], a ld a, [wBallYPos] ld [wPreviousBallYPos], a ld a, [wBallYPos + 1] ld [wPreviousBallYPos + 1], a ld de, wBallXVelocity + 1 ld hl, wBallXPos call AddVelocityToPosition ld de, wBallYVelocity + 1 ld hl, wBallYPos ; fall through AddVelocityToPosition: ; 0x21c3 ld a, [de] bit 7, a jr nz, .asm_21d1 cp $5 jr c, .asm_21da ld bc, $04ff jr .asm_21de .asm_21d1 cp $fc jr nc, .asm_21da ld bc, $fb01 jr .asm_21de .asm_21da ld b, a dec de ld a, [de] ld c, a .asm_21de ld a, [hl] add c ld [hli], a ld a, [hl] adc b ld [hl], a ret Func_21e5: ; 0x21e5 cpl inc a ; fall through Func_21e7: ; 0x21e7 push hl push bc push de ld [$ff8c], a call Func_2147 ld a, e ld [$ff8d], a ld a, d ld [$ff8e], a call Func_210b ld l, c ld h, b pop bc push bc ld a, [$ff8c] call Func_2149 ld a, e ld [$ff8f], a ld a, d ld [$ff90], a call Func_210b add hl, bc pop de pop bc push hl push de ld a, [$ff8f] ld e, a ld a, [$ff90] cpl ld d, a call Func_210b ld l, c ld h, b pop bc ld a, [$ff8d] ld e, a ld a, [$ff8e] ld d, a call Func_210b add hl, bc ld d, h ld e, l pop bc pop hl ret Func_222b: ; 0x222b push hl ld hl, $d7f8 ld [hl], $ff bit 7, d jr nz, .asm_2297 ld [hl], $0 ld a, d cp $3 jr c, .asm_2254 ld a, $ff ld [$d803], a ld a, $1 ld [$d804], a ld a, [wFlipperCollision] and a jr nz, .asm_2254 push de ld de, $0008 call Func_4d8 pop de .asm_2254 srl d rr e srl d rr e ld h, d ld l, e srl d rr e ld a, [$d7eb] and a jr z, .asm_226c .asm_2268 add hl, de dec a jr nz, .asm_2268 .asm_226c ld d, h ld e, l ld a, e cpl add $1 ld e, a ld a, d cpl adc $0 ld d, a ld a, [wBallSpin] sra a ld l, a ld h, $0 bit 7, l jr z, .asm_2286 ld h, $ff .asm_2286 add hl, bc ld b, h ld c, l push bc sla c rl b sla c rl b ld a, b ld [wBallSpin], a pop bc .asm_2297 pop hl ret LoadBallVelocity: ; 0x2299 ; Loads velocity of the ball into bc and de ; bc = x velocity ; de = y velocity push hl ld hl, wBallXVelocity ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld e, a ld a, [hl] ld d, a pop hl ret SetBallVelocity: ; 0x22a7 ; Sets the x and y velocities of the ball. ; bc = x velocity ; de = y velocity push hl ld hl, wBallXVelocity ld a, c ld [hli], a ld a, b ld [hli], a ld a, e ld [hli], a ld a, d ld [hl], a pop hl ret Func_22b5: ; 0x22b5 ld a, [wBallXPos + 1] sub $4 push af and $7 ld [wSubTileBallXPos], a ; sub-tile position pop af and $f8 ld c, a ld a, [wBallYPos + 1] sub $4 push af and $7 ld [wSubTileBallYPos], a pop af and $f8 ld b, a ld l, b ; bc contains tile coords of ball position ld h, $0 sla l rl h sla l rl h ; b was multiplied by 4 (y tile position) srl c srl c srl c ; c was divided by 8 (x tile position) ld b, $0 add hl, bc ld a, l ld [$d7f3], a ld a, h ld [$d7f4], a ld a, [wStageCollisionMapPointer] ld c, a ld a, [wStageCollisionMapPointer + 1] ld b, a add hl, bc ; hl = address of upper-left collision byte ld a, [hLoadedROMBank] push af ld a, [wStageCollisionMapBank] ld [hLoadedROMBank], a ld [MBC5RomBank], a ld bc, $001f ; number of tiles wide - 1 ld a, [hli] ld [wUpperLeftCollisionAttribute], a ld a, [hl] ld [wUpperRightCollisionAttribute], a add hl, bc ld a, [hli] ld [wLowerLeftCollisionAttribute], a ld a, [hl] ld [wLowerRightCollisionAttribute], a pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, [hLoadedROMBank] push af ld a, [wStageCollisionMasksBank] ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, [wSubTileBallXPos] sla a ld c, a ld b, $0 ld hl, SubTileXPos_CollisionDataPointers add hl, bc ld e, [hl] inc hl ld d, [hl] ld a, [wSubTileBallYPos] ld c, a ld b, $10 ; number of times to loop over .asm_233d .asm_233d push bc ld a, [de] inc de add c ; add the sub tile y pos push af srl a srl a srl a ld c, a ld b, $0 ld hl, wUpperLeftCollisionAttribute add hl, bc ld a, [hl] call Func_248a jr nc, .asm_235e pop af and $7 ld c, a ld b, $0 add hl, bc jr .asm_237b .asm_235e ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b ld hl, wStageCollisionMasksPointer ld a, [hli] ld h, [hl] ld l, a add hl, bc pop af and $7 ld c, a ld b, $0 add hl, bc .asm_237b ld a, [de] inc de and [hl] push af ld a, [de] inc de ld c, a ld hl, $d7c9 add hl, bc pop af ld [hl], a pop bc dec b jr nz, .asm_233d pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ld hl, $d7c9 ld de, $d7d9 ld b, $4 .asm_239a ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de dec b jr nz, .asm_239a ld hl, $d7c9 ld de, $0000 ld b, $0 ld a, [hl] and a jr z, .asm_23c1 .asm_23b5 ld a, [hli] inc b and a jr z, .asm_23c1 ld a, b cp $11 jr nc, .asm_23ee jr .asm_23b5 .asm_23c1 ld a, [hli] inc b and a jr nz, .asm_23cd ld a, b cp $11 jr nc, .asm_23ee jr .asm_23c1 .asm_23cd push de ld d, $1 ld c, b dec c .asm_23d2 ld a, [hli] inc b inc d and a jr nz, .asm_23d2 dec d ld a, b dec a dec a and $f swap c or c ld c, a ld a, d cp e pop de jr c, .asm_23e9 ld e, a ld d, c .asm_23e9 ld a, b cp $10 jr c, .asm_23c1 .asm_23ee ld a, e ld [$d7e9], a and a ret z ld a, [hLoadedROMBank] push af ld a, Bank(Data_8817) ld [hLoadedROMBank], a ld [MBC5RomBank], a push de ld e, d ld d, $0 ld hl, Data_8817 add hl, de ld a, [hl] ld [$d7ea], a sla e rl d ld hl, Data_8917 add hl, de ld a, [wBallYPos] add [hl] ld [wBallYPos], a inc hl ld a, [wBallYPos + 1] adc [hl] ld [wBallYPos + 1], a ld hl, Data_8b17 add hl, de ld a, [wBallXPos] add [hl] ld [wBallXPos], a inc hl ld a, [wBallXPos + 1] adc [hl] ld [wBallXPos + 1], a pop de pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, d swap a and $f ld e, a ld a, d and $f sub e jr nc, .asm_2449 add $10 .asm_2449 add e add e inc a and $1e ld c, a ld b, $0 ld hl, Data_250e ; todo add hl, bc ld a, [wSubTileBallXPos] add $4 add [hl] bit 3, a ld c, b jr z, .asm_2462 ld c, $2 .asm_2462 ld a, [wSubTileBallYPos] add $4 inc hl add [hl] bit 3, a jr z, .asm_246e inc c .asm_246e ld hl, wUpperLeftCollisionAttribute add hl, bc ld a, [hl] ld [$d7f5], a ld hl, Data_250a ; todo add hl, bc ld a, [$d7f3] add [hl] ld [$d7f6], a ld a, [$d7f4] adc $0 ld [$d7f7], a ret Func_248a: ; 0x248a push af ld a, [wCurrentStage] bit 0, a jr nz, .asm_2495 pop af and a ret .asm_2495 pop af cp $d0 ccf ret nc cp $e0 jr nc, .asm_24ab sub $d0 sla a sla a sla a ld l, a ld h, $c4 scf ret .asm_24ab push de sub $e0 ld b, a ld a, [wCurrentStage] cp $6 ; gengar stage buggy? jr nc, .asm_24e0 bit 4, b ld hl, Data_3800 ld a, [$d7af] jr z, .asm_24c8 res 4, b ld hl, Data_3980 ld a, [$d7b3] .asm_24c8 ld de, $0080 cp $7 jr c, .asm_24d5 add hl, de cp $e jr c, .asm_24d5 add hl, de .asm_24d5 ld e, b sla e sla e sla e add hl, de pop de scf ret .asm_24e0 bit 4, b ld hl, Data_3b00 ld a, [$d7af] jr z, .asm_24f2 res 4, b ld hl, Data_3c80 ld a, [$d7b3] .asm_24f2 ld de, $0080 cp $7 jr c, .asm_24ff add hl, de cp $e jr c, .asm_24ff add hl, de .asm_24ff ld e, b sla e sla e sla e add hl, de pop de scf ret Data_250a: dr $250a, $250e Data_250e: dr $250e, $252e SubTileXPos_CollisionDataPointers: ; 0x252e dw SubTileXPos_CollisionData0 dw SubTileXPos_CollisionData1 dw SubTileXPos_CollisionData2 dw SubTileXPos_CollisionData3 dw SubTileXPos_CollisionData4 dw SubTileXPos_CollisionData5 dw SubTileXPos_CollisionData6 dw SubTileXPos_CollisionData7 SubTileXPos_CollisionData0: ; 0x253e db $00, $10, $0B db $00, $08, $0C db $00, $04, $0D db $01, $40, $0A db $01, $01, $0E db $03, $80, $09 db $13, $80, $0F db $04, $80, $08 db $14, $80, $00 db $05, $80, $07 db $15, $80, $01 db $07, $40, $06 db $07, $01, $02 db $08, $10, $05 db $08, $08, $04 db $08, $04, $03 SubTileXPos_CollisionData1: ; 0x256e db $00, $08, $0B db $00, $04, $0C db $00, $02, $0D db $01, $20, $0A db $11, $80, $0E db $03, $40, $09 db $13, $40, $0F db $04, $40, $08 db $14, $40, $00 db $05, $40, $07 db $15, $40, $01 db $07, $20, $06 db $17, $80, $02 db $08, $08, $05 db $08, $04, $04 db $08, $02, $03 SubTileXPos_CollisionData2: ; 0x259e db $00, $04, $0B db $00, $02, $0C db $00, $01, $0D db $01, $10, $0A db $11, $40, $0E db $03, $20, $09 db $13, $20, $0F db $04, $20, $08 db $14, $20, $00 db $05, $20, $07 db $15, $20, $01 db $07, $10, $06 db $17, $40, $02 db $08, $04, $05 db $08, $02, $04 db $08, $01, $03 SubTileXPos_CollisionData3: ; 0x25ce db $00, $02, $0B db $00, $01, $0C db $10, $80, $0D db $01, $08, $0A db $11, $20, $0E db $03, $10, $09 db $13, $10, $0F db $04, $10, $08 db $14, $10, $00 db $05, $10, $07 db $15, $10, $01 db $07, $08, $06 db $17, $20, $02 db $08, $02, $05 db $08, $01, $04 db $18, $80, $03 SubTileXPos_CollisionData4: ; 0x25fe db $00, $01, $0B db $10, $80, $0C db $10, $40, $0D db $01, $04, $0A db $11, $10, $0E db $03, $08, $09 db $13, $08, $0F db $04, $08, $08 db $14, $08, $00 db $05, $08, $07 db $15, $08, $01 db $07, $04, $06 db $17, $10, $02 db $08, $01, $05 db $18, $80, $04 db $18, $40, $03 SubTileXPos_CollisionData5: ; 0x262e db $10, $80, $0B db $10, $40, $0C db $10, $20, $0D db $01, $02, $0A db $11, $08, $0E db $03, $04, $09 db $13, $04, $0F db $04, $04, $08 db $14, $04, $00 db $05, $04, $07 db $15, $04, $01 db $07, $02, $06 db $17, $08, $02 db $18, $80, $05 db $18, $40, $04 db $18, $20, $03 SubTileXPos_CollisionData6: ; 0x265e db $10, $40, $0B db $10, $20, $0C db $10, $10, $0D db $01, $01, $0A db $11, $04, $0E db $03, $02, $09 db $13, $02, $0F db $04, $02, $08 db $14, $02, $00 db $05, $02, $07 db $15, $02, $01 db $07, $01, $06 db $17, $04, $02 db $18, $40, $05 db $18, $20, $04 db $18, $10, $03 SubTileXPos_CollisionData7: ; 0x268e db $10, $20, $0B db $10, $10, $0C db $10, $08, $0D db $11, $80, $0A db $11, $02, $0E db $03, $01, $09 db $13, $01, $0F db $04, $01, $08 db $14, $01, $00 db $05, $01, $07 db $15, $01, $01 db $17, $80, $06 db $17, $02, $02 db $18, $20, $05 db $18, $10, $04 db $18, $08, $03 Data_26be: dr $26be, $2720 Func_2720: ; 0x2720 ld a, $ff ld [$d4ea], a call Func_272f ld a, [$d4ea] ld [$d4ec], a ret Func_272f: ; 0x272f ; not collisions ld a, [wCurrentStage] call CallInFollowingTable CallTable_2735: ; 0x2735 ; STAGE_RED_FIELD_TOP dw Func_143e1 db Bank(Func_143e1), $00 ; STAGE_RED_FIELD_BOTTOM dw Func_143f9 db Bank(Func_143f9), $00 dw Func_18061 db Bank(Func_18061), $00 dw Func_18062 db Bank(Func_18062), $00 ; STAGE_BLUE_FIELD_TOP dw Func_1c520 db Bank(Func_1c520), $00 ; STAGE_BLUE_FIELD_BOTTOM dw Func_1c536 db Bank(Func_1c536), $00 ; STAGE_GENGAR_BONUS dw Func_181b1 db Bank(Func_181b1), $00 ; STAGE_GENGAR_BONUS dw Func_181b1 db Bank(Func_181b1), $00 ; STAGE_MEWTWO_BONUS dw Func_19330 db Bank(Func_19330), $00 ; STAGE_MEWTWO_BONUS dw Func_19330 db Bank(Func_19330), $00 ; STAGE_MEOWTH_BONUS dw Func_2414d db Bank(Func_2414d), $00 ; STAGE_MEOWTH_BONUS dw Func_2414d db Bank(Func_2414d), $00 ; STAGE_DIGLETT_BONUS dw Func_19ab3 db Bank(Func_19ab3), $00 ; STAGE_DIGLETT_BONUS dw Func_19ab3 db Bank(Func_19ab3), $00 ; STAGE_SEEL_BONUS dw Func_25bbc db Bank(Func_25bbc), $00 ; STAGE_SEEL_BONUS dw Func_25bbc db Bank(Func_25bbc), $00 Func_2775: ; 0x2775 ld a, [$d4ea] inc a jr nz, .asm_27a2 ld a, [bc] bit 7, a jr nz, .asm_27a2 push bc push de call nc, Func_27da pop hl call c, Func_27a4 ld a, [$d4ea] ld b, a pop hl ld [hl], $0 jr nc, .asm_27a2 ld a, [$d4ec] cp b jr z, .asm_27a2 ld a, [$d4eb] ld [hli], a ld a, [$d4ea] ld [hl], a scf ret .asm_27a2 and a ret Func_27a4: ; 0x27a4 xor a ld [$d4eb], a ld a, [hli] ld d, a ld a, [hli] ld e, a ld a, [wBallXPos + 1] ld b, a ld a, [wBallYPos + 1] ld c, a .asm_27b4 ld a, [$d4eb] inc a ld [$d4eb], a ld a, [hli] ld [$d4ea], a cp $ff ret z ld a, [hli] sub b bit 7, a jr z, .asm_27ca cpl inc a .asm_27ca cp d ld a, [hli] jr nc, .asm_27b4 sub c bit 7, a jr z, .asm_27d5 cpl inc a .asm_27d5 cp e jr nc, .asm_27b4 scf ret Func_27da: ; 0x27da ld a, [hli] and a jr z, .asm_27e8 dec hl ld a, [wStageCollisionState] ld c, a ld b, $0 add hl, bc ld c, [hl] add hl, bc .asm_27e8 ld a, [$d7e9] and a ret z ld a, [$d7f5] ld b, a ld c, $ff .asm_27f3 inc c ld a, [hli] cp $ff ret z cp b jr nz, .asm_27f3 scf ret PinballCollideWithPoints: ; 0x27fd ; Checks if pinball collides with any of the (x, y) points in the given list. ; Saves the index of the collided point. ; Input: hl = pointer to array of (x, y) points ; Output: Saves index of collided point in $d578 ld a, [wBallXPos + 1] ld b, a ld a, [wBallYPos + 1] ld c, a ld d, $0 .nextPoint ld a, [hli] and a ret z inc d ld a, [hli] sub b cp $e8 ld a, [hli] jr c, .nextPoint sub c cp $e8 jr c, .nextPoint ld a, d ld [$d578], a ret Func_281c: ; 0x281c ld a, [wCurrentStage] call CallInFollowingTable CallTable_2822: ; 0x2822 ; not collisions ; STAGE_RED_FIELD_TOP dw Func_1460e db Bank(Func_1460e), $00 ; STAGE_RED_FIELD_BOTTOM dw Func_14652 db Bank(Func_14652), $00 dw Func_1806d db Bank(Func_1806d), $00 dw Func_1806e db Bank(Func_1806e), $00 ; STAGE_BLUE_FIELD_TOP dw Func_1c715 db Bank(Func_1c715), $00 ; STAGE_BLUE_FIELD_BOTTOM dw Func_1c769 db Bank(Func_1c769), $00 ; STAGE_GENGAR_BONUS dw Func_18377 db Bank(Func_18377), $00 ; STAGE_GENGAR_BONUS dw Func_18377 db Bank(Func_18377), $00 ; STAGE_MEWTWO_BONUS dw Func_19451 db Bank(Func_19451), $00 ; STAGE_MEWTWO_BONUS dw Func_19451 db Bank(Func_19451), $00 ; STAGE_MEOWTH_BONUS dw Func_2442a db Bank(Func_2442a), $00 ; STAGE_MEOWTH_BONUS dw Func_2442a db Bank(Func_2442a), $00 ; STAGE_DIGLETT_BONUS dw Func_19b88 db Bank(Func_19b88), $00 ; STAGE_DIGLETT_BONUS dw Func_19b88 db Bank(Func_19b88), $00 ; STAGE_SEEL_BONUS dw Func_25c5a db Bank(Func_25c5a), $00 ; STAGE_SEEL_BONUS dw Func_25c5a db Bank(Func_25c5a), $00 Func_2862: ; 0x2862 ld a, [$d7be] and a jr nz, .asm_287c ld a, [hGameBoyColorFlag] and a jr z, .asm_287b ld a, $0 ld hl, Data_2890 ld de, $0052 ld bc, $0004 call FarCopyPalettes .asm_287b ret .asm_287c ld a, [hGameBoyColorFlag] and a jr z, .asm_288f ld a, $0 ld hl, Data_2894 ld de, $0052 ld bc, $0004 call FarCopyPalettes .asm_288f ret Data_2890: RGB 31, 31, 31 RGB 21, 21, 27 Data_2894: RGB 27, 10, 10 RGB 20, 04, 04 Data_2898: dr $2898, $28a0 CopyHLToDE: ; 0x28a0 ; Places [hl] into [de] ; Also places $0 into [de + 2] ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de xor a ld [de], a ret UpdateAnimation: ; 0x28a9 ; Updates an animation struct. (See wDugtrioAnimationFrameCounter) ; Input: de = pointer to 3-byte animation struct ; hl = pointer to animation frames data ; Sets carry flag if the animation is over. ld a, [de] and a ret z ; return, if counter is zero dec a ld [de], a ret nz ; return if counter is not zero after the decrement push de inc de inc de ld a, [de] ; a = current frame index inc a ld [de], a ld c, a ld b, $0 sla c rl b add hl, bc ; hl = pointer to two-byte entry in the frames data table ld a, [hli] pop de and a scf ret z ; return if the next entry is $00 push de ld [de], a ; save the animation duration inc de ld a, [hli] ld [de], a ; save the next animation frame id pop de ret INCLUDE "text.asm" 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, wcBottomMessageText + $100 ld b, $40 .asm_30ef ld [hli], a ld [hli], a ld [hli], a ld [hli], a dec b jr nz, .asm_30ef xor a ld [$d5cc], a ld [$d5d4], a ld [$d5dc], a ld [$d5e4], a ld [$d5e9], a ld [$d5ee], a ret Func_310a: ; 0x310a ld a, $81 ld hl, wcBottomMessageText + $140 ld b, $5 .asm_3111 ld [hli], a ld [hli], a ld [hli], a ld [hli], a dec b jr nz, .asm_3111 ld hl, wcBottomMessageText + $1c0 ld b, $5 .asm_311d ld [hli], a ld [hli], a ld [hli], a ld [hli], a dec b jr nz, .asm_311d ret Func_3125: ; 0x3125 ld b, $1 jr asm_312b Func_3129: ; 0x3129 ld b, $0 asm_312b: ; 0x312b ld a, [$d805] and a jp nz, Func_3268 .asm_3132 ld a, [hli] and a ret z ld c, $81 cp $20 jr z, .asm_3175 cp $2c jr z, .asm_3178 cp $24 jr z, .asm_317c cp $5c jr z, .asm_3184 cp $60 jr z, .asm_318d cp $21 jr z, .asm_31a8 cp $78 jr z, .asm_31b1 cp $65 jr z, .asm_3196 cp $2a jr z, .asm_319f cp $2e jr z, .asm_31ba cp $3a jr z, .asm_31c3 cp $30 jr c, .asm_316b cp $3a jr c, .asm_31cc .asm_316b cp $41 jr c, .asm_3173 cp $5b jr c, .asm_31d0 .asm_3173 jr .asm_3132 .asm_3175 ld a, c jr .asm_31d2 .asm_3178 inc c dec e jr .asm_31d3 .asm_317c xor a call Func_31e1 ld a, $83 jr .asm_31d2 .asm_3184 ld a, $1 call Func_31e1 ld a, $84 jr .asm_31d2 .asm_318d ld a, $2 call Func_31e1 ld a, $85 jr .asm_31d2 .asm_3196 ld a, $3 call Func_31e1 ld a, $83 jr .asm_31d2 .asm_319f ld a, $4 call Func_31e1 ld a, $87 jr .asm_31d2 .asm_31a8 ld a, $5 call Func_31e1 ld a, $85 jr .asm_31d2 .asm_31b1 ld a, $6 call Func_31e1 ld a, $85 jr .asm_31d2 .asm_31ba ld a, $7 call Func_31e1 ld a, $86 jr .asm_31d2 .asm_31c3 ld a, $8 call Func_31e1 ld a, $83 jr .asm_31d2 .asm_31cc add $56 jr .asm_31d2 .asm_31d0 add $bf .asm_31d2 ld [de], a .asm_31d3 bit 0, b jr nz, .asm_31dd set 7, e ld a, c ld [de], a res 7, e .asm_31dd inc e jp .asm_3132 Func_31e1: ; 0x31e1 push bc push de push hl ld c, a ld a, [hGameBoyColorFlag] and a ld a, c jr z, .asm_31ed add $9 .asm_31ed ld c, a sla a sla a add c ld c, a ld b, $0 ld hl, Data_320e ; todo add hl, bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld b, a ld a, [hli] ld h, [hl] ld l, a ld a, b ld bc, $0010 call LoadVRAMData pop hl pop de pop bc ret Data_320e: dr $320e, $3268 Func_3268: ; 0x3268 ld a, [hli] and a ret z ld c, $81 cp $20 jr z, .asm_3297 cp $2c jr z, .asm_329a cp $30 jr c, .asm_327d cp $3a jr c, .asm_329e .asm_327d cp $a0 jr c, .asm_3285 cp $e0 jr c, .asm_328f .asm_3285 cp $e0 jr c, .asm_328d cp $f4 jr c, .asm_3293 .asm_328d jr Func_3268 .asm_328f sub $80 jr .asm_32a0 .asm_3293 sub $50 jr .asm_32a0 .asm_3297 ld a, c jr .asm_32a0 .asm_329a inc c dec e jr .asm_32a1 .asm_329e add $56 .asm_32a0 ld [de], a .asm_32a1 set 7, e ld a, c ld [de], a res 7, e inc e jr Func_3268 LoadTextHeader: ; 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, wcBottomMessageText / $100 .asm_32c5 ld a, [de] ld [hli], a inc de and a jr nz, .asm_32c5 ret Func_32cc: ; 0x32cc ld a, $1 ld [hli], a ld a, [de] ld [hli], a ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a push af inc de ld a, [de] ld [hli], a inc de pop af ld e, a ld d, $c5 ld hl, [sp+$5] ld bc, $0801 .asm_32ec ld a, [hl] swap a and $f call Func_3309 dec b ld a, [hld] and $f call Func_3309 dec b jr nz, .asm_32ec ld a, $30 ld [de], a inc de ld a, $20 ld [de], a inc de xor a ld [de], a ret Func_3309: ; 0x3309 jr nz, .asm_3312 ld a, b dec a jr z, .asm_3312 ld a, c and a ret nz .asm_3312 add $30 ld [de], a inc de ld c, $0 ld a, b cp $6 jr z, .asm_3320 cp $3 ret nz .asm_3320 ld a, $2c ld [de], a inc de ret Func_3325: ; 0x3325 ld a, [hli] and a ret z ld a, [hl] dec a ld [hli], a ret nz ld a, [hld] ld [hl], a inc hl inc hl push hl ld a, [hli] ld e, a cp [hl] inc hl jr nz, .asm_333c ld a, [hl] dec a ld [hl], a jr nz, .asm_333d .asm_333c dec e .asm_333d push de ld d, $c6 inc hl push hl ld l, [hl] ld h, $c5 call Func_3129 pop hl inc hl ld a, [hl] dec a ld [hl], a pop de pop hl ld [hl], e ret nz dec hl dec hl dec hl ld [hl], $0 ret Func_3357: ; 0x3357 ld a, $1 ld [hli], a ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a push af inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de pop af ld l, a ld h, $c5 .asm_336b ld a, [de] ld [hli], a inc de and a jr nz, .asm_336b ret Func_3372: ; 0x3372 ld a, $1 ld [hli], a ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a push af inc de ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a pop af ld e, a ld d, $c5 ld hl, [sp+$5] ld bc, $0801 .asm_338a ld a, [hl] swap a and $f call Func_33a7 dec b ld a, [hld] and $f call Func_33a7 dec b jr nz, .asm_338a ld a, $30 ld [de], a inc de ld a, $20 ld [de], a inc de xor a ld [de], a ret Func_33a7: ; 0x33a7 jr nz, .asm_33b0 ld a, b dec a jr z, .asm_33b0 ld a, c and a ret nz .asm_33b0 add $30 ld [de], a inc de ld c, $0 ld a, b cp $6 jr z, .asm_33be cp $3 ret nz .asm_33be ld a, $2c ld [de], a inc de ret Func_33c3: ; 0x33c3 ld a, [hli] and a ret z ld a, [hli] ld e, a ld d, $c6 push hl ld l, [hl] ld h, $c5 call Func_3129 pop hl inc hl ld a, [hl] dec a ld [hli], a ret nz ld a, [hl] dec a ld [hld], a bit 7, a ret z dec hl dec hl dec hl ld [hl], $0 ret Func_33e3: ; 0x33e3 ld a, [$d5ca] and a jr nz, .asm_33ed ld [$d5cb], a ret .asm_33ed ld c, $0 ld a, [$d5cc] and a jr z, .asm_33fe push bc ld hl, $d5cc call Func_3325 pop bc inc c .asm_33fe ld a, [$d5d4] and a jr z, .asm_340d push bc ld hl, $d5d4 call Func_3325 pop bc inc c .asm_340d ld a, [$d5dc] and a jr z, .asm_341c push bc ld hl, $d5dc call Func_3325 pop bc inc c .asm_341c ld a, [$d5e4] and a jr z, .asm_342b push bc ld hl, $d5e4 call Func_33c3 pop bc inc c .asm_342b ld a, [$d5e9] and a jr z, .asm_343a push bc ld hl, $d5e9 call Func_33c3 pop bc inc c .asm_343a ld a, [$d5ee] and a jr z, .asm_3449 push bc ld hl, $d5ee call Func_33c3 pop bc inc c .asm_3449 ld a, c and a ret nz ld [$d5ca], a call Func_30e8 ld a, [hGameBoyColorFlag] and a jr nz, .gameboyColor ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy) ld hl, $30 + StageRedFieldTopStatusBarSymbolsGfx_GameBoy ld de, $8830 ld bc, $0040 call Func_735 ret .gameboyColor ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor) ld hl, $30 + StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor ld de, $8830 ld bc, $0040 call Func_735 ret Func_3475: ; 0x3475 xor a ld [hJoypadState], a ld [hNewlyPressedButtons], a ld [hPressedButtons], a call HandleTilts ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(HandleFlippers) ld hl, HandleFlippers call nz, BankSwitch ld [$ff8a], a callba Func_84b7 call Func_33e3 call Func_926 rst AdvanceFrame ld a, [$d5ca] and a jr nz, Func_3475 ret FiftyBillionPoints: ; 34a6 dx 6, $050000000000 OneHundredBillionPoints: ; 34ac dx 6, $100000000000 OneHundredMillionPoints: ; 34b2 dx 6, $000100000000 FourHundredMillionPoints: ; 34b8 dx 6, $000400000000 FiveHundredMillionPoints: ; 34be dx 6, $000500000000 OneBillionPoints: ; 34c4 dx 6, $001000000000 FiveBillionPoints: ; 34ca dx 6, $005000000000 OneMillionPoints: ; 34d0 dx 6, $000001000000 TenMillionPoints: ; 34d6 dx 6, $000010000000 ThirtyMillionPoints: ; 34dc dx 6, $000030000000 FiftyMillionPoints: ; 34e2 dx 6, $000050000000 TenThousandPoints: ; 34e8 dx 6, $000000010000 FiftyThousandPoints: ; 34ee dx 6, $000000050000 OneHundredThousandPoints: ; 34f4 dx 6, $000000100000 OneHundredPoints: ; 34fa dx 6, $000000000100 Func_3500: ld hl, $d464 ld a, e ld [hli], a ld a, d ld [hli], a ld a, c ld [hli], a ld a, b ld [hli], a xor a ld [hli], a ld [hl], a ld bc, $d464 ldh [$ff8a], a callba AddBCDScore ret Func_351c: ; 0x351c ld hl, $d464 ld a, e ld [hli], a ld a, d ld [hli], a ld a, c ld [hli], a ld a, b ld [hli], a xor a ld [hli], a ld [hl], a ld bc, $d464 ld [$ff8a], a callba Func_8588 ret Func_3538: ; 0x3538 ld hl, $d47a ld a, [hl] add e daa ld [hli], a ld a, [hl] adc d daa ld [hli], a ld a, [hl] adc c daa ld [hli], a ld a, [hl] adc b daa ld [hli], a ret nc ld hl, $d47a ld a, $99 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ret Func_3556: ; 0x3556 ld a, [$d47a] ld e, a ld a, [$d47b] ld d, a ld a, [$d47c] ld c, a ld a, [$d47d] ld b, a ret dr $3567, $3579 Func_3579: ; 0x3579 ld hl, $d47a xor a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ret HandleTilts: ; 0x3582 call HandleLeftTilt call HandleRightTilt call HandleUpperTilt ret HandleLeftTilt: ; 0x358c ld a, [wLeftTiltReset] and a jr nz, .tiltCoolDown ld hl, wKeyConfigLeftTilt call IsKeyPressed2 jr z, .tiltCoolDown ld a, [wLeftTiltCounter] cp $3 jr z, .startCoolDown inc a ld [wLeftTiltCounter], a cp $1 jr nz, .skipSoundEffect ld de, $003f call PlaySoundEffect .skipSoundEffect ld a, [$d548] ld hl, $d549 and [hl] jr z, .skipBallMovement ld a, [wBallXPos + 1] dec a ; move ball's position to the left by 1 pixel ld [wBallXPos + 1], a .skipBallMovement ld a, [$d79f] inc a ld [$d79f], a ld a, $1 ld [wLeftTiltPushing], a ret .startCoolDown ld a, $1 ld [wLeftTiltReset], a .tiltCoolDown xor a ld [wLeftTiltPushing], a ld a, [wLeftTiltCounter] and a jr z, .done dec a ld [wLeftTiltCounter], a ld a, [$d79f] dec a ld [$d79f], a ret .done ld hl, wKeyConfigLeftTilt call IsKeyPressed2 ret nz xor a ld [wLeftTiltReset], a ret HandleRightTilt: ; 0x35f3 ld a, [wRightTiltReset] and a jr nz, .tiltCoolDown ld hl, wKeyConfigRightTilt call IsKeyPressed2 jr z, .tiltCoolDown ld a, [wRightTiltCounter] cp $3 jr z, .startCoolDown inc a ld [wRightTiltCounter], a cp $1 jr nz, .skipSoundEffect ld de, $003f call PlaySoundEffect .skipSoundEffect ld a, [$d548] ld hl, $d549 and [hl] jr z, .skipBallMovement ld a, [wBallXPos + 1] inc a ; move ball's position to the right by 1 pixel ld [wBallXPos + 1], a .skipBallMovement ld a, [$d79f] dec a ld [$d79f], a ld a, $1 ld [wRightTiltPushing], a ret .startCoolDown ld a, $1 ld [wRightTiltReset], a .tiltCoolDown xor a ld [wRightTiltPushing], a ld a, [wRightTiltCounter] and a jr z, .done dec a ld [wRightTiltCounter], a ld a, [$d79f] inc a ld [$d79f], a ret .done ld hl, wKeyConfigRightTilt call IsKeyPressed2 ret nz xor a ld [wRightTiltReset], a ret HandleUpperTilt: ; 0x365a ld a, [wUpperTiltReset] and a jr nz, .tiltCoolDown ld hl, wKeyConfigUpperTilt call IsKeyPressed2 jr z, .tiltCoolDown ld a, [wUpperTiltCounter] cp $4 jr z, .startCoolDown inc a ld [wUpperTiltCounter], a cp $1 jr nz, .skipSoundEffect ld de, $003f call PlaySoundEffect .skipSoundEffect ld a, [$d548] ld hl, $d549 and [hl] jr z, .skipBallMovement ld a, [wBallYPos + 1] inc a ; move ball's position down by 1 pixel ld [wBallYPos + 1], a .skipBallMovement ld a, [$d7a0] dec a ld [$d7a0], a ld a, $1 ld [wUpperTiltPushing], a ret .startCoolDown ld a, $1 ld [wUpperTiltReset], a .tiltCoolDown xor a ld [wUpperTiltPushing], a ld a, [wUpperTiltCounter] and a jr z, .done dec a ld [wUpperTiltCounter], a ld a, [$d7a0] inc a ld [$d7a0], a ret .done ld hl, wKeyConfigUpperTilt call IsKeyPressed2 ret nz xor a ld [wUpperTiltReset], a ret ApplyTiltForces: ; 0x36c1 ld a, [$d548] ld hl, $d549 and [hl] ret z ld c, $0 ld a, [wUpperTiltPushing] srl a rl c ld a, [wRightTiltPushing] srl a rl c ld a, [wLeftTiltPushing] srl a rl c ld b, $0 sla c ld hl, Data_372d add hl, bc ld a, [hli] ld h, [hl] ld l, a bit 7, h ret nz ld a, [$d7ea] ld c, a ld b, $0 sla c rl b sla c rl b add hl, bc ld a, [hLoadedROMBank] push af ld a, BANK(TiltLeftOnlyForce) ld [hLoadedROMBank], a ld [MBC5RomBank], a ld a, [wBallXVelocity] add [hl] ld [wBallXVelocity], a inc hl ld a, [wBallXVelocity + 1] adc [hl] ld [wBallXVelocity + 1], a inc hl ld a, [wBallYVelocity] add [hl] ld [wBallYVelocity], a inc hl ld a, [wBallYVelocity + 1] adc [hl] ld [wBallYVelocity + 1], a pop af ld [hLoadedROMBank], a ld [MBC5RomBank], a ret Data_372d: dw -1 ; no tilt dw TiltLeftOnlyForce dw TiltRightOnlyForce dw -1 ; left + right (cancel) dw TiltUpOnlyForce dw TiltUpLeftForce dw TiltUpRightForce dw TiltUpOnlyForce dr $373d, $3800 Data_3800: dr $3800, $3980 Data_3980: dr $3980, $3b00 Data_3b00: dr $3b00, $3c80 Data_3c80: dr $3c80, $3e00 dr $3e00, $4000 SECTION "bank1", ROMX, BANK[$1] OAMDataPointers: ; 0x4000 dw BallSpin0OAM dw BallSpin1OAM dw BallSpin2OAM dw BallSpin3OAM dw BallSpin4OAM dw BallSpin5OAM dw BallSpin6OAM dw BallSpin7OAM dw OAMData_8 dw OAMData_9 dw OAMData_a dw OAMData_b dw OAMData_c dw OAMData_d dw OAMData_e dw OAMData_f dw OAMData_10 dw OAMData_11 dw OAMData_12 dw OAMData_13 dw OAMData_14 dw OAMData_15 dw OAMData_16 dw OAMData_17 dw OAMData_18 dw OAMData_19 dw OAMData_1a dw OAMData_1b dw OAMData_1c dw OAMData_1d dw OAMData_1e dw OAMData_1f dw OAMData_20 dw OAMData_21 dw OAMData_22 dw OAMData_23 dw OAMData_24 dw OAMData_25 dw OAMData_26 dw OAMData_27 dw OAMData_28 dw OAMData_29 dw OAMData_2a dw OAMData_2b dw OAMData_2c dw OAMData_2d dw OAMData_2e dw OAMData_2f dw OAMData_30 dw OAMData_31 dw OAMData_32 dw OAMData_33 dw OAMData_34 dw OAMData_35 dw OAMData_36 dw OAMData_37 dw OAMData_38 dw OAMData_39 dw OAMData_3a dw OAMData_3b dw OAMData_3c dw OAMData_3d dw OAMData_3e dw OAMData_3f dw OAMData_40 dw OAMData_41 dw OAMData_42 dw OAMData_43 dw OAMData_44 dw OAMData_45 dw OAMData_46 dw OAMData_47 dw OAMData_48 dw OAMData_49 dw OAMData_4a dw OAMData_4b dw OAMData_4c dw OAMData_4d dw OAMData_4e dw OAMData_4f dw OAMData_50 dw OAMData_51 dw OAMData_52 dw OAMData_53 dw OAMData_54 dw OAMData_55 dw OAMData_56 dw OAMData_57 dw OAMData_58 dw OAMData_59 dw TitlescreenPikachuBlinkFrame1OAM dw TitlescreenPikachuBlinkFrame2OAM dw TitlescreenPikachuBlinkFrame3OAM dw TitlescreenPokeball1OAM dw TitlescreenPokeball2OAM dw TitlescreenPokeball3OAM dw TitlescreenPokeball4OAM dw TitlescreenPokeball5OAM dw OAMData_62 dw OAMData_63 dw OAMData_64 dw OAMData_65 dw OAMData_66 dw OAMData_67 dw OAMData_68 dw OAMData_69 dw PokeDexTextOAM dw OAMData_6b dw Digit0OAM dw Digit1OAM dw Digit2OAM dw Digit3OAM dw Digit4OAM dw Digit5OAM dw Digit6OAM dw Digit7OAM dw Digit8OAM dw Digit9OAM dw SlashCharacterOAM dw OAMData_77 dw OAMData_78 dw OAMData_79 dw OAMData_7a dw OAMData_7b dw OAMData_7c dw OAMData_7d dw OAMData_7e dw OAMData_7f dw OAMData_80 dw OAMData_81 dw OAMData_82 dw OAMData_83 dw OAMData_84 dw OAMData_85 dw OAMData_86 dw OAMData_87 dw OAMData_88 dw OAMData_89 dw OAMData_8a dw OAMData_8b dw OAMData_8c dw OAMData_8d dw OAMData_8e dw SendingHighScoresTextOAM dw OAMData_90 dw OAMData_91 dw OAMData_92 dw OAMData_93 dw OAMData_94 dw HighScoresRightArrowOAM dw HighScoresLeftArrowOAM dw OAMData_97 dw SendHighScoresAnimation1OAM dw SendHighScoresAnimation2OAM dw SendHighScoresAnimation3OAM dw SendHighScoresAnimation4OAM dw SendHighScoresAnimation5OAM dw SendHighScoresAnimation6OAM dw FieldSelectRedStageBorderOAM dw FieldSelectBlueStageBorderOAM dw OAMData_a0 dw OAMData_a1 dw OAMData_a2 dw OAMData_a3 dw OAMData_a4 dw OAMData_a5 dw OAMData_a6 dw OAMData_a7 dw OAMData_a8 dw OAMData_a9 dw OAMData_aa dw OAMData_ab dw OAMData_ac dw OAMData_ad dw OAMData_ae dw OAMData_af dw OAMData_b0 dw Timer0DigitOAM dw Timer1DigitOAM dw Timer2DigitOAM dw Timer3DigitOAM dw Timer4DigitOAM dw Timer5DigitOAM dw Timer6DigitOAM dw Timer7DigitOAM dw Timer8DigitOAM dw Timer9DigitOAM dw TimerColonOAM dw OAMData_bc dw OAMData_bd dw OAMData_be dw OAMData_bf dw OAMData_c0 dw OAMData_c1 dw OAMData_c2 dw OAMData_c3 dw OAMData_c4 dw OAMData_c5 dw OAMData_c6 dw OAMData_c7 dw OAMData_c8 dw OAMData_c9 dw OAMData_ca dw OAMData_cb dw OAMData_cc dw OAMData_cd dw OAMData_ce dw OAMData_cf dw OAMData_d0 dw OAMData_d1 dw OAMData_d2 dw OAMData_d3 dw OAMData_d4 dw OAMData_d5 dw OAMData_d6 dw OAMData_d7 dw OAMData_d8 dw OAMData_d9 dw OAMData_da dw OAMData_db dw OAMData_dc dw OAMData_dd dw OAMData_de dw OAMData_df dw OAMData_e0 dw OAMData_e1 dw OAMData_e2 dw OAMData_e3 dw OAMData_e4 dw OAMData_e5 dw OAMData_e6 dw OAMData_e7 dw OAMData_e8 dw OAMData_e9 dw OAMData_ea dw OAMData_eb dw OAMData_ec dw OAMData_ed dw OAMData_ee dw OAMData_ef dw OAMData_f0 dw OAMData_f1 dw OAMData_f2 dw OAMData_f3 dw OAMData_f4 dw OAMData_f5 dw OAMData_f6 dw OAMData_f7 dw OAMData_f8 BallSpin0OAM: ; 0x41f2 db $08, $08, $42, $00 db $08, $00, $40, $00 db $80 ; terminator BallSpin1OAM: ; 0x41fb db $08, $08, $46, $00 db $08, $00, $44, $00 db $80 ; terminator BallSpin2OAM: ; 0x4204 db $08, $08, $4a, $00 db $08, $00, $48, $00 db $80 ; terminator BallSpin3OAM: ; 0x420d db $08, $08, $4e, $00 db $08, $00, $4c, $00 db $80 ; terminator BallSpin4OAM: ; 0x4216 db $08, $08, $52, $00 db $08, $00, $50, $00 db $80 ; terminator BallSpin5OAM: ; 0x421f db $08, $08, $56, $00 db $08, $00, $54, $00 db $80 ; terminator BallSpin6OAM: ; 0x4228 db $08, $08, $5a, $00 db $08, $00, $58, $00 db $80 ; terminator BallSpin7OAM: ; 0x4231 db $08, $08, $5e, $00 db $08, $00, $5c, $00 db $80 ; terminator OAMData_8: ; 0x423a db $0c, $05, $64, $02 db $0a, $fd, $62, $02 db $14, $f5, $60, $02 db $80 ; terminator OAMData_9: ; 0x4247 db $0c, $05, $6a, $02 db $04, $fd, $68, $02 db $0c, $f5, $66, $02 db $80 ; terminator OAMData_a: ; 0x4254 db $0a, $05, $70, $02 db $03, $fd, $6e, $02 db $fd, $f5, $6c, $02 db $80 ; terminator OAMData_b: ; 0x4261 db $0c, $03, $64, $22 db $0a, $0b, $62, $22 db $14, $13, $60, $22 db $80 ; terminator OAMData_c: ; 0x426e db $0c, $03, $6a, $22 db $04, $0b, $68, $22 db $0c, $13, $66, $22 db $80 ; terminator OAMData_d: ; 0x427b db $0a, $03, $70, $22 db $03, $0b, $6e, $22 db $fd, $13, $6c, $22 db $80 ; terminator OAMData_e: ; 0x4288 db $00, $09, $74, $04 db $00, $01, $72, $04 db $80 ; terminator OAMData_f: ; 0x4291 db $00, $01, $76, $04 db $00, $09, $78, $04 db $80 ; terminator OAMData_10: ; 0x429a db $00, $09, $7c, $04 db $00, $01, $7a, $04 db $80 ; terminator OAMData_11: ; 0x42a3 db $f5, $01, $3d, $51 db $f1, $06, $3e, $31 db $00, $09, $7c, $04 db $00, $01, $7a, $04 db $80 ; terminator OAMData_12: ; 0x42b4 db $f1, $07, $3c, $11 db $f1, $02, $3e, $11 db $00, $09, $7c, $04 db $00, $01, $7a, $04 db $80 ; terminator OAMData_13: ; 0x42c5 db $e9, $06, $3e, $31 db $e9, $01, $3c, $31 db $f1, $00, $3e, $31 db $f1, $08, $3c, $31 db $00, $09, $7c, $04 db $00, $01, $7a, $04 db $80 ; terminator OAMData_14: ; 0x42de db $e8, $01, $3e, $11 db $e8, $06, $3c, $11 db $f3, $01, $3c, $31 db $f3, $05, $3e, $31 db $00, $09, $7c, $04 db $00, $01, $7a, $04 db $80 ; terminator OAMData_15: ; 0x42f7 db $e5, $09, $3e, $11 db $f1, $07, $3c, $11 db $e9, $02, $3f, $51 db $f2, $01, $3c, $31 db $00, $09, $7c, $04 db $00, $01, $7a, $04 db $80 ; terminator OAMData_16: ; 0x4310 db $e8, $01, $3d, $51 db $f5, $00, $3f, $71 db $f2, $06, $3e, $31 db $e6, $07, $3c, $11 db $00, $09, $7c, $04 db $00, $01, $7a, $04 db $80 ; terminator OAMData_17: ; 0x4329 db $0c, $05, $64, $11 db $0a, $fd, $62, $11 db $14, $f5, $60, $11 db $80 ; terminator OAMData_18: ; 0x4336 db $0c, $03, $64, $31 db $0a, $0b, $62, $31 db $14, $13, $60, $31 db $80 ; terminator OAMData_19: ; 0x4343 db $00, $08, $a2, $02 db $00, $00, $a0, $02 db $80 ; terminator OAMData_1a: ; 0x434c db $00, $10, $9e, $02 db $00, $08, $9c, $02 db $00, $00, $9a, $02 db $00, $f8, $98, $02 db $f0, $10, $96, $02 db $f0, $08, $94, $02 db $f0, $00, $92, $02 db $f0, $f8, $90, $02 db $80 ; terminator OAMData_1b: ; 0x436d db $01, $0f, $a7, $62 db $ff, $f7, $7f, $62 db $e7, $07, $7e, $02 db $e7, $fb, $a6, $02 db $f3, $f4, $a5, $42 db $e7, $12, $a6, $22 db $fd, $fd, $a7, $42 db $ef, $fa, $a6, $02 db $ed, $0c, $a6, $22 db $ef, $13, $a4, $22 db $e6, $02, $a5, $42 db $02, $05, $a7, $62 db $fc, $0b, $a7, $62 db $f7, $f9, $a4, $02 db $fb, $10, $a5, $62 db $f5, $09, $42, $00 db $f5, $01, $40, $00 db $80 ; terminator OAMData_1c: ; 0x43b2 db $02, $11, $7f, $42 db $e6, $f9, $7e, $22 db $e6, $0f, $7e, $02 db $f5, $f0, $a5, $42 db $05, $05, $a7, $62 db $f0, $09, $42, $00 db $f0, $01, $40, $00 db $f5, $17, $a5, $62 db $01, $f7, $7f, $62 db $80 ; terminator OAMData_1d: ; 0x43d7 db $ee, $09, $42, $00 db $ee, $01, $40, $00 db $80 ; terminator OAMData_1e: ; 0x43e0 db $ed, $09, $42, $00 db $ed, $01, $40, $00 db $80 ; terminator OAMData_1f: ; 0x43e9 db $ee, $09, $42, $00 db $ee, $01, $40, $00 db $80 ; terminator OAMData_20: ; 0x43f2 db $f0, $09, $42, $00 db $f0, $01, $40, $00 db $80 ; terminator OAMData_21: ; 0x43fb db $f5, $09, $42, $00 db $f5, $01, $40, $00 db $80 ; terminator OAMData_22: ; 0x4404 db $fb, $09, $42, $00 db $fb, $01, $40, $00 db $80 ; terminator OAMData_23: ; 0x440d db $02, $09, $42, $00 db $02, $01, $40, $00 db $80 ; terminator OAMData_24: ; 0x4416 db $01, $09, $42, $00 db $01, $01, $40, $00 db $80 ; terminator OAMData_25: ; 0x441f db $02, $0a, $3a, $00 db $02, $02, $38, $00 db $80 ; terminator OAMData_26: ; 0x4428 db $fb, $0a, $9e, $15 db $fb, $02, $9c, $15 db $ff, $15, $9a, $13 db $ff, $0d, $98, $13 db $ff, $05, $96, $13 db $ff, $fd, $94, $13 db $ef, $08, $92, $13 db $ef, $00, $90, $13 db $80 ; terminator OAMData_27: ; 0x4449 db $fc, $0a, $1c, $15 db $fc, $02, $1a, $15 db $fe, $15, $9a, $13 db $ff, $0d, $a8, $13 db $ff, $05, $a6, $13 db $ff, $fd, $a4, $13 db $ef, $08, $a2, $13 db $ef, $00, $a0, $13 db $80 ; terminator OAMData_28: ; 0x446a db $ff, $08, $2e, $15 db $ff, $00, $2c, $15 db $ff, $10, $2a, $13 db $ff, $08, $28, $13 db $ff, $00, $26, $13 db $ff, $f8, $24, $13 db $ef, $10, $22, $13 db $ef, $08, $20, $13 db $ef, $00, $1e, $13 db $80 ; terminator OAMData_29: ; 0x448f db $ef, $03, $92, $15 db $f3, $0b, $94, $15 db $f3, $fb, $90, $15 db $0d, $09, $9e, $13 db $fd, $09, $9c, $13 db $0d, $01, $9a, $13 db $fd, $01, $98, $13 db $00, $11, $a0, $13 db $00, $f9, $96, $13 db $80 ; terminator OAMData_2a: ; 0x44b4 db $f0, $04, $a4, $15 db $f3, $0c, $a6, $15 db $f3, $fc, $a2, $15 db $00, $12, $1e, $13 db $00, $0a, $1c, $13 db $00, $02, $1a, $13 db $00, $fa, $a8, $13 db $80 ; terminator OAMData_2b: ; 0x44d1 db $f8, $10, $26, $15 db $f3, $08, $24, $15 db $f3, $00, $22, $15 db $f8, $f8, $20, $15 db $00, $10, $2e, $13 db $00, $08, $2c, $13 db $00, $00, $2a, $13 db $00, $f8, $28, $13 db $80 ; terminator OAMData_2c: ; 0x44f2 db $00, $10, $9e, $13 db $00, $08, $9c, $13 db $00, $00, $9a, $13 db $00, $f8, $98, $13 db $f0, $10, $96, $13 db $f0, $08, $94, $13 db $f0, $00, $92, $13 db $f0, $f8, $90, $13 db $80 ; terminator OAMData_2d: ; 0x4513 db $00, $10, $1e, $13 db $00, $08, $1c, $13 db $00, $00, $1a, $13 db $00, $f8, $a8, $13 db $f0, $10, $a6, $13 db $f0, $08, $a4, $13 db $f0, $00, $a2, $13 db $f0, $f8, $a0, $13 db $80 ; terminator OAMData_2e: ; 0x4534 db $00, $10, $2e, $13 db $00, $08, $2c, $13 db $00, $00, $2a, $13 db $00, $f8, $28, $13 db $f0, $10, $26, $13 db $f0, $08, $24, $13 db $f0, $00, $22, $13 db $f0, $f8, $20, $13 db $80 ; terminator OAMData_2f: ; 0x4555 db $00, $10, $9e, $13 db $00, $08, $9c, $13 db $00, $00, $9a, $13 db $00, $f8, $98, $13 db $f0, $10, $96, $13 db $f0, $08, $94, $13 db $f0, $00, $92, $13 db $f0, $f8, $90, $13 db $80 ; terminator OAMData_30: ; 0x4576 db $00, $10, $1e, $13 db $00, $08, $1c, $13 db $00, $00, $1a, $13 db $00, $f8, $a8, $13 db $f0, $10, $a6, $13 db $f0, $08, $a4, $13 db $f0, $00, $a2, $13 db $f0, $f8, $a0, $13 db $80 ; terminator OAMData_31: ; 0x4597 db $01, $10, $2e, $13 db $01, $08, $2c, $13 db $01, $00, $2a, $13 db $01, $f8, $28, $13 db $f1, $10, $26, $13 db $f1, $08, $24, $13 db $f1, $00, $22, $13 db $f1, $f8, $20, $13 db $80 ; terminator OAMData_32: ; 0x45b8 db $10, $08, $30, $06 db $80 ; terminator OAMData_33: ; 0x45bd db $10, $08, $30, $26 db $80 ; terminator OAMData_34: ; 0x45c2 db $10, $08, $32, $06 db $80 ; terminator OAMData_35: ; 0x45c7 db $10, $08, $32, $26 db $80 ; terminator OAMData_36: ; 0x45cc db $10, $08, $34, $06 db $80 ; terminator OAMData_37: ; 0x45d1 db $10, $08, $34, $26 db $80 ; terminator OAMData_38: ; 0x45d6 db $10, $08, $36, $06 db $80 ; terminator OAMData_39: ; 0x45db db $08, $08, $37, $46 db $80 ; terminator OAMData_3a: ; 0x45e0 db $10, $08, $90, $06 db $80 ; terminator OAMData_3b: ; 0x45e5 db $10, $08, $92, $06 db $80 ; terminator OAMData_3c: ; 0x45ea db $10, $08, $94, $06 db $80 ; terminator OAMData_3d: ; 0x45ef db $10, $08, $96, $17 db $80 ; terminator OAMData_3e: ; 0x45f4 db $10, $08, $98, $17 db $80 ; terminator OAMData_3f: ; 0x45f9 db $10, $08, $9a, $06 db $80 ; terminator OAMData_40: ; 0x45fe db $10, $08, $9c, $06 db $80 ; terminator OAMData_41: ; 0x4603 db $10, $08, $20, $06 db $80 ; terminator OAMData_42: ; 0x4608 db $10, $08, $22, $06 db $80 ; terminator OAMData_43: ; 0x460d db $10, $08, $24, $06 db $80 ; terminator OAMData_44: ; 0x4612 db $10, $08, $26, $17 db $80 ; terminator OAMData_45: ; 0x4617 db $10, $08, $28, $17 db $80 ; terminator OAMData_46: ; 0x461c db $10, $08, $2a, $06 db $80 ; terminator OAMData_47: ; 0x4621 db $10, $08, $2c, $06 db $80 ; terminator OAMData_48: ; 0x4626 db $10, $08, $60, $06 db $80 ; terminator OAMData_49: ; 0x462b db $10, $08, $62, $06 db $80 ; terminator OAMData_4a: ; 0x4630 db $10, $08, $64, $06 db $80 ; terminator OAMData_4b: ; 0x4635 db $10, $08, $66, $17 db $80 ; terminator OAMData_4c: ; 0x463a db $10, $08, $68, $17 db $80 ; terminator OAMData_4d: ; 0x463f db $10, $08, $6a, $06 db $80 ; terminator OAMData_4e: ; 0x4644 db $10, $08, $6c, $06 db $80 ; terminator OAMData_4f: ; 0x4649 db $1f, $19, $20, $37 db $1f, $21, $1e, $37 db $0f, $19, $1c, $37 db $0f, $21, $1a, $37 db $1f, $10, $20, $17 db $1f, $08, $1e, $17 db $0f, $10, $1c, $17 db $0f, $08, $1a, $17 db $80 ; terminator OAMData_50: ; 0x466a db $1f, $19, $28, $37 db $1f, $21, $26, $37 db $0f, $19, $24, $37 db $0f, $21, $22, $37 db $1f, $10, $28, $17 db $1f, $08, $26, $17 db $0f, $10, $24, $17 db $0f, $08, $22, $17 db $80 ; terminator OAMData_51: ; 0x468b db $1f, $19, $38, $37 db $1f, $10, $38, $17 db $1f, $21, $2e, $37 db $0f, $19, $2c, $37 db $0f, $21, $2a, $37 db $1f, $08, $2e, $17 db $0f, $10, $2c, $17 db $0f, $08, $2a, $17 db $80 ; terminator OAMData_52: ; 0x46ac db $08, $f8, $60, $00 db $80 ; terminator OAMData_53: ; 0x46b1 db $08, $08, $60, $00 db $08, $00, $60, $00 db $08, $f8, $60, $00 db $80 ; terminator OAMData_54: ; 0x46be db $08, $20, $60, $00 db $08, $18, $60, $00 db $08, $10, $60, $00 db $08, $08, $60, $00 db $08, $00, $60, $00 db $08, $f8, $60, $00 db $80 ; terminator OAMData_55: ; 0x46d7 db $10, $20, $60, $00 db $10, $18, $60, $00 db $10, $10, $60, $00 db $10, $08, $60, $00 db $10, $00, $60, $00 db $10, $f8, $60, $00 db $08, $20, $60, $00 db $08, $18, $60, $00 db $08, $10, $60, $00 db $08, $08, $60, $00 db $08, $00, $60, $00 db $08, $f8, $60, $00 db $80 ; terminator OAMData_56: ; 0x4708 db $10, $20, $60, $40 db $10, $18, $60, $40 db $10, $10, $60, $40 db $10, $08, $60, $40 db $10, $00, $60, $40 db $18, $20, $60, $40 db $18, $18, $60, $40 db $18, $10, $60, $40 db $18, $08, $60, $40 db $18, $00, $60, $40 db $18, $f8, $60, $40 db $10, $f8, $60, $40 db $08, $f8, $60, $40 db $08, $20, $59, $00 db $08, $18, $58, $00 db $08, $10, $57, $00 db $08, $08, $56, $00 db $08, $00, $55, $00 db $80 ; terminator OAMData_57: ; 0x4751 db $18, $20, $60, $40 db $18, $18, $60, $40 db $18, $10, $60, $40 db $18, $08, $60, $40 db $18, $00, $60, $40 db $18, $f8, $60, $40 db $10, $f8, $60, $40 db $08, $f8, $60, $40 db $10, $20, $5f, $00 db $10, $18, $5e, $00 db $10, $10, $5d, $00 db $10, $08, $5c, $00 db $10, $00, $5b, $00 db $08, $20, $59, $00 db $08, $18, $58, $00 db $08, $10, $57, $00 db $08, $08, $56, $00 db $08, $00, $55, $00 db $80 ; terminator OAMData_58: ; 0x479a db $18, $f8, $60, $40 db $10, $f8, $5a, $00 db $08, $f8, $54, $00 db $18, $20, $65, $00 db $18, $18, $64, $00 db $18, $10, $63, $00 db $18, $08, $62, $00 db $18, $00, $61, $00 db $10, $20, $5f, $00 db $10, $18, $5e, $00 db $10, $10, $5d, $00 db $10, $08, $5c, $00 db $10, $00, $5b, $00 db $08, $20, $59, $00 db $08, $18, $58, $00 db $08, $10, $57, $00 db $08, $08, $56, $00 db $08, $00, $55, $00 db $80 ; terminator OAMData_59: ; 0x47e3 db $08, $f8, $60, $40 db $18, $f8, $67, $00 db $10, $f8, $66, $00 db $18, $20, $65, $00 db $18, $18, $64, $00 db $18, $10, $63, $00 db $18, $08, $62, $00 db $18, $00, $61, $00 db $10, $20, $5f, $00 db $10, $18, $5e, $00 db $10, $10, $5d, $00 db $10, $08, $5c, $00 db $10, $00, $5b, $00 db $08, $20, $59, $00 db $08, $18, $58, $00 db $08, $10, $57, $00 db $08, $08, $56, $00 db $08, $00, $55, $00 db $80 ; terminator TitlescreenPikachuBlinkFrame1OAM: ; 0x482c db $10, $28, $3f, $00 db $10, $20, $3e, $00 db $10, $18, $3d, $00 db $10, $10, $3c, $00 db $10, $08, $3b, $00 db $80 ; terminator TitlescreenPikachuBlinkFrame2OAM: ; 0x4841 db $18, $09, $44, $00 db $10, $10, $41, $00 db $10, $08, $40, $00 db $80 ; terminator TitlescreenPikachuBlinkFrame3OAM: ; 0x484e db $18, $09, $45, $00 db $10, $10, $43, $00 db $10, $08, $42, $00 db $80 ; terminator ; These next 5 OAM entries are for the individual frames of the ; bouncing pokeball on the titlescreen. TitlescreenPokeball1OAM: ; 0x485b db $14, $00, $4c, $02 db $0c, $00, $46, $31 db $14, $f8, $47, $02 db $0c, $f8, $46, $11 db $80 ; terminator TitlescreenPokeball2OAM: ; 0x486c db $15, $00, $4d, $02 db $0d, $00, $48, $31 db $15, $f8, $49, $02 db $0d, $f8, $48, $11 db $80 ; terminator TitlescreenPokeball3OAM: ; 0x487d db $13, $00, $4c, $02 db $0b, $00, $46, $31 db $13, $f8, $47, $02 db $0b, $f8, $46, $11 db $80 ; terminator TitlescreenPokeball4OAM: ; 0x488e db $11, $00, $4e, $02 db $09, $00, $4a, $31 db $11, $f8, $4b, $02 db $09, $f8, $4a, $11 db $80 ; terminator TitlescreenPokeball5OAM: ; 0x489f db $11, $00, $4c, $02 db $09, $00, $46, $31 db $11, $f8, $47, $02 db $09, $f8, $46, $11 db $80 ; terminator OAMData_62: ; 0x48b0 db $10, $20, $53, $11 db $10, $18, $52, $11 db $08, $20, $51, $11 db $18, $0c, $50, $11 db $10, $0c, $4f, $11 db $80 ; terminator OAMData_63: ; 0x48c5 db $10, $08, $70, $11 db $80 ; terminator OAMData_64: ; 0x48ca db $10, $10, $71, $31 db $10, $08, $71, $11 db $80 ; terminator OAMData_65: ; 0x48d3 db $10, $18, $74, $17 db $10, $10, $73, $00 db $10, $08, $72, $17 db $80 ; terminator OAMData_66: ; 0x48e0 db $10, $18, $77, $17 db $10, $10, $76, $00 db $10, $08, $75, $17 db $80 ; terminator OAMData_67: ; 0x48ed db $10, $08, $78, $00 db $80 ; terminator OAMData_68: ; 0x48f2 db $10, $08, $79, $00 db $80 ; terminator OAMData_69: ; 0x48f7 db $10, $08, $79, $11 db $80 ; terminator PokeDexTextOAM: ; 0x48fc ; "POKeDEX" in the top-right corner of the Pokedex screen db $12, $34, $7f, $11 db $12, $2c, $7e, $11 db $12, $24, $7d, $11 db $12, $1c, $7c, $11 db $12, $14, $7b, $11 db $12, $0c, $7a, $11 db $80 ; terminator OAMData_6b: ; 0x4915 db $10, $08, $6f, $11 db $80 ; terminator Digit0OAM: ; 0x491a db $10, $08, $53, $11 db $80 ; terminator Digit1OAM: ; 0x491f db $10, $08, $54, $11 db $80 ; terminator Digit2OAM: ; 0x4924 db $10, $08, $55, $11 db $80 ; terminator Digit3OAM: ; 0x4929 db $10, $08, $56, $11 db $80 ; terminator Digit4OAM: ; 0x492e db $10, $08, $57, $11 db $80 ; terminator Digit5OAM: ; 0x4933 db $10, $08, $58, $11 db $80 ; terminator Digit6OAM: ; 0x4938 db $10, $08, $59, $11 db $80 ; terminator Digit7OAM: ; 0x493d db $10, $08, $5a, $11 db $80 ; terminator Digit8OAM: ; 0x4942 db $10, $08, $5b, $11 db $80 ; terminator Digit9OAM: ; 0x4947 db $10, $08, $5c, $11 db $80 ; terminator SlashCharacterOAM: ; 0x494c ; "/" (used to separate seen/own count on the pokedex screen) db $10, $08, $5e, $11 db $80 ; terminator OAMData_77: ; 0x4951 db $11, $07, $34, $00 db $80 ; terminator OAMData_78: ; 0x4956 db $0f, $07, $36, $00 db $80 ; terminator OAMData_79: ; 0x495b db $0f, $07, $38, $00 db $80 ; terminator OAMData_7a: ; 0x4960 db $f4, $18, $26, $13 db $f4, $10, $24, $13 db $f4, $08, $22, $13 db $10, $00, $3a, $02 db $09, $10, $3e, $00 db $08, $08, $3c, $00 db $80 ; terminator OAMData_7b: ; 0x4979 db $10, $28, $78, $00 db $10, $08, $5c, $02 db $10, $10, $5e, $02 db $10, $18, $60, $02 db $10, $20, $62, $02 db $20, $08, $64, $02 db $20, $10, $66, $02 db $20, $18, $68, $02 db $20, $20, $6a, $02 db $20, $28, $6c, $02 db $30, $08, $6e, $02 db $30, $10, $70, $02 db $30, $18, $72, $02 db $30, $20, $74, $02 db $30, $28, $76, $02 db $80 ; terminator OAMData_7c: ; 0x49b6 db $11, $29, $7a, $02 db $11, $09, $40, $02 db $11, $11, $42, $02 db $11, $19, $44, $02 db $11, $21, $46, $02 db $21, $09, $48, $02 db $21, $11, $4a, $02 db $21, $19, $4c, $02 db $21, $21, $4e, $02 db $21, $29, $50, $02 db $31, $09, $52, $02 db $31, $11, $54, $02 db $31, $19, $56, $02 db $31, $21, $58, $02 db $31, $29, $5a, $02 db $80 ; terminator OAMData_7d: ; 0x49f3 db $0c, $10, $2a, $04 db $0c, $08, $28, $04 db $80 ; terminator OAMData_7e: ; 0x49fc db $0d, $10, $2e, $04 db $0d, $08, $2c, $04 db $80 ; terminator OAMData_7f: ; 0x4a05 db $0b, $10, $2a, $04 db $0b, $08, $28, $04 db $80 ; terminator OAMData_80: ; 0x4a0e db $09, $10, $32, $04 db $09, $08, $30, $04 db $80 ; terminator OAMData_81: ; 0x4a17 db $09, $10, $2a, $04 db $09, $08, $28, $04 db $80 ; terminator OAMData_82: ; 0x4a20 db $10, $08, $7c, $00 db $80 ; terminator OAMData_83: ; 0x4a25 db $10, $08, $7c, $20 db $80 ; terminator OAMData_84: ; 0x4a2a db $10, $08, $7e, $11 db $80 ; terminator OAMData_85: ; 0x4a2f db $10, $08, $20, $13 db $80 ; terminator OAMData_86: ; 0x4a34 db $18, $08, $7f, $00 db $10, $08, $7e, $00 db $80 ; terminator OAMData_87: ; 0x4a3d db $20, $25, $15, $02 db $18, $25, $0f, $02 db $10, $25, $0a, $02 db $18, $1d, $0e, $02 db $18, $15, $0d, $02 db $18, $0d, $0c, $02 db $18, $05, $0b, $02 db $10, $1d, $09, $02 db $10, $15, $08, $02 db $10, $0d, $07, $02 db $10, $05, $06, $02 db $20, $1d, $14, $02 db $20, $15, $13, $02 db $20, $0d, $12, $02 db $20, $05, $11, $02 db $80 ; terminator OAMData_88: ; 0x4a7a db $20, $f5, $10, $02 db $18, $f5, $02, $02 db $10, $f5, $01, $02 db $80 ; terminator OAMData_89: ; 0x4a87 db $10, $f5, $10, $42 db $18, $f5, $02, $42 db $20, $f5, $01, $42 db $80 ; terminator OAMData_8a: ; 0x4a94 db $20, $fd, $00, $02 db $18, $fd, $00, $02 db $10, $fd, $00, $02 db $80 ; terminator OAMData_8b: ; 0x4aa1 db $20, $fd, $00, $02 db $18, $fd, $04, $02 db $10, $fd, $03, $02 db $80 ; terminator OAMData_8c: ; 0x4aae db $10, $fd, $00, $02 db $18, $fd, $04, $42 db $20, $fd, $03, $42 db $80 ; terminator OAMData_8d: ; 0x4abb db $18, $fd, $05, $02 db $20, $fd, $03, $42 db $10, $fd, $03, $02 db $80 ; terminator OAMData_8e: ; 0x4ac8 db $0e, $2f, $1f, $02 db $0e, $27, $1e, $02 db $16, $2f, $29, $02 db $16, $27, $28, $02 db $16, $1f, $27, $02 db $16, $17, $26, $02 db $16, $0f, $25, $02 db $16, $07, $24, $02 db $16, $ff, $23, $02 db $16, $f7, $22, $02 db $16, $ef, $21, $02 db $16, $e7, $20, $02 db $0e, $1f, $1d, $02 db $0e, $17, $1c, $02 db $0e, $0f, $1b, $02 db $0e, $07, $1a, $02 db $0e, $ff, $19, $02 db $0e, $f7, $18, $02 db $0e, $ef, $17, $02 db $0e, $e7, $16, $02 db $80 ; terminator SendingHighScoresTextOAM: ; 0x4b19 ; The text "SENDING..." during the sending high scores animation. db $0e, $2f, $1f, $02 db $0e, $27, $1e, $02 db $16, $2f, $3b, $02 db $16, $27, $3a, $02 db $16, $1f, $39, $02 db $16, $17, $38, $02 db $16, $0f, $37, $02 db $16, $07, $36, $02 db $16, $ff, $35, $02 db $16, $f7, $34, $02 db $16, $ef, $33, $02 db $16, $e7, $32, $02 db $0e, $1f, $31, $02 db $0e, $17, $30, $02 db $0e, $0f, $2f, $02 db $0e, $07, $2e, $02 db $0e, $ff, $2d, $02 db $0e, $f7, $2c, $02 db $0e, $ef, $2b, $02 db $0e, $e7, $2a, $02 db $80 ; terminator OAMData_90: ; 0x4b6a db $1d, $14, $48, $02 db $1d, $0c, $47, $02 db $15, $1c, $45, $02 db $15, $14, $44, $02 db $15, $0c, $43, $02 db $15, $04, $42, $02 db $15, $fc, $41, $02 db $1d, $1c, $00, $02 db $1d, $fc, $00, $02 db $25, $1c, $4c, $22 db $25, $14, $4e, $02 db $25, $0c, $4e, $02 db $25, $04, $4d, $02 db $25, $fc, $4c, $02 db $1d, $04, $46, $02 db $0d, $1c, $40, $02 db $0d, $14, $3f, $02 db $0d, $0c, $3e, $02 db $0d, $04, $3d, $02 db $0d, $fc, $3c, $02 db $80 ; terminator OAMData_91: ; 0x4bbb db $1d, $14, $49, $02 db $1d, $0c, $47, $02 db $15, $1c, $45, $02 db $15, $14, $44, $02 db $15, $0c, $43, $02 db $15, $04, $42, $02 db $15, $fc, $41, $02 db $1d, $1c, $00, $02 db $1d, $fc, $00, $02 db $25, $1c, $4c, $22 db $25, $14, $4e, $02 db $25, $0c, $4e, $02 db $25, $04, $4d, $02 db $25, $fc, $4c, $02 db $1d, $04, $46, $02 db $0d, $1c, $40, $02 db $0d, $14, $3f, $02 db $0d, $0c, $3e, $02 db $0d, $04, $3d, $02 db $0d, $fc, $3c, $02 db $80 ; terminator OAMData_92: ; 0x4c0c db $1d, $14, $4a, $02 db $1d, $0c, $47, $02 db $15, $1c, $45, $02 db $15, $14, $44, $02 db $15, $0c, $43, $02 db $15, $04, $42, $02 db $15, $fc, $41, $02 db $1d, $1c, $00, $02 db $1d, $fc, $00, $02 db $25, $1c, $4c, $22 db $25, $14, $4e, $02 db $25, $0c, $4e, $02 db $25, $04, $4d, $02 db $25, $fc, $4c, $02 db $1d, $04, $46, $02 db $0d, $1c, $40, $02 db $0d, $14, $3f, $02 db $0d, $0c, $3e, $02 db $0d, $04, $3d, $02 db $0d, $fc, $3c, $02 db $80 ; terminator OAMData_93: ; 0x4c5d db $1d, $14, $4b, $02 db $1d, $0c, $47, $02 db $15, $1c, $45, $02 db $15, $14, $44, $02 db $15, $0c, $43, $02 db $15, $04, $42, $02 db $15, $fc, $41, $02 db $1d, $1c, $00, $02 db $1d, $fc, $00, $02 db $25, $1c, $4c, $22 db $25, $14, $4e, $02 db $25, $0c, $4e, $02 db $25, $04, $4d, $02 db $25, $fc, $4c, $02 db $1d, $04, $46, $02 db $0d, $1c, $40, $02 db $0d, $14, $3f, $02 db $0d, $0c, $3e, $02 db $0d, $04, $3d, $02 db $0d, $fc, $3c, $02 db $80 ; terminator OAMData_94: ; 0x4cae db $28, $eb, $10, $02 db $20, $2b, $00, $02 db $20, $eb, $00, $02 db $28, $33, $58, $42 db $20, $33, $62, $02 db $18, $33, $62, $02 db $18, $2b, $61, $02 db $10, $33, $58, $02 db $10, $2b, $57, $02 db $20, $23, $69, $02 db $20, $1b, $68, $02 db $20, $13, $67, $02 db $20, $0b, $66, $02 db $20, $03, $65, $02 db $20, $fb, $64, $02 db $20, $f3, $63, $02 db $18, $23, $60, $02 db $18, $1b, $5f, $02 db $18, $13, $5e, $02 db $18, $0b, $5d, $02 db $18, $03, $5c, $02 db $18, $fb, $5b, $02 db $18, $f3, $5a, $02 db $18, $eb, $59, $02 db $10, $23, $56, $02 db $10, $1b, $55, $02 db $10, $13, $54, $02 db $10, $0b, $53, $02 db $10, $03, $52, $02 db $10, $fb, $51, $02 db $10, $f3, $50, $02 db $10, $eb, $4f, $02 db $28, $2b, $71, $02 db $28, $23, $70, $02 db $28, $1b, $6f, $02 db $28, $13, $6e, $02 db $28, $0b, $6d, $02 db $28, $03, $6c, $02 db $28, $fb, $6b, $02 db $28, $f3, $6a, $02 db $80 ; terminator HighScoresRightArrowOAM: ; 0x4d4f db $18, $18, $7d, $11 db $18, $10, $7c, $11 db $18, $08, $7b, $11 db $10, $10, $7a, $11 db $80 ; terminator HighScoresLeftArrowOAM: ; 0x4d60 db $18, $08, $7d, $31 db $18, $10, $7c, $31 db $18, $18, $7b, $31 db $10, $10, $7a, $31 db $80 ; terminator OAMData_97: ; 0x4d71 db $16, $30, $8b, $02 db $16, $28, $8a, $02 db $16, $20, $89, $02 db $16, $18, $88, $02 db $16, $10, $87, $02 db $16, $08, $86, $02 db $16, $00, $85, $02 db $16, $f8, $84, $02 db $16, $f0, $83, $02 db $16, $e8, $82, $02 db $0e, $30, $81, $02 db $0e, $28, $80, $02 db $0e, $20, $79, $02 db $0e, $18, $78, $02 db $0e, $10, $77, $02 db $0e, $08, $76, $02 db $0e, $00, $75, $02 db $0e, $f8, $74, $02 db $0e, $f0, $73, $02 db $0e, $e8, $72, $02 db $80 ; terminator SendHighScoresAnimation1OAM: ; 0x4dc2 db $18, $10, $8f, $04 db $18, $08, $8e, $04 db $10, $10, $8d, $04 db $10, $08, $8c, $04 db $80 ; terminator SendHighScoresAnimation2OAM: ; 0x4dd3 db $18, $10, $91, $04 db $18, $08, $90, $04 db $10, $10, $8d, $04 db $10, $08, $8c, $04 db $80 ; terminator SendHighScoresAnimation3OAM: ; 0x4de4 db $18, $10, $93, $04 db $18, $08, $92, $04 db $10, $10, $8d, $04 db $10, $08, $8c, $04 db $80 ; terminator SendHighScoresAnimation4OAM: ; 0x4df5 db $10, $10, $95, $04 db $10, $08, $94, $04 db $18, $10, $93, $04 db $18, $08, $92, $04 db $80 ; terminator SendHighScoresAnimation5OAM: ; 0x4e06 db $18, $10, $97, $04 db $18, $08, $96, $04 db $10, $10, $95, $04 db $10, $08, $94, $04 db $80 ; terminator SendHighScoresAnimation6OAM: ; 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 ; bellsprout? db $12, $10, $66, $15 db $02, $10, $64, $15 db $12, $08, $62, $15 db $02, $08, $60, $15 db $80 ; terminator OAMData_bf: ; 0x5371 db $00, $0a, $68, $15 db $10, $10, $6c, $15 db $10, $08, $6a, $15 db $80 ; terminator OAMData_c0: ; 0x537e db $0f, $10, $70, $15 db $0f, $08, $6e, $15 db $80 ; terminator OAMData_c1: ; 0x5387 db $00, $0b, $72, $15 db $10, $10, $76, $15 db $10, $08, $74, $15 db $80 ; terminator OAMData_c2: ; 0x5394 db $08, $0f, $78, $22 db $08, $07, $78, $02 db $80 ; terminator OAMData_c3: ; 0x539d db $08, $0f, $7b, $62 db $08, $07, $7b, $42 db $80 ; terminator OAMData_c4: ; 0x53a6 db $08, $0f, $7d, $62 db $08, $07, $7d, $42 db $80 ; terminator OAMData_c5: ; 0x53af db $08, $0f, $7e, $22 db $08, $07, $7e, $02 db $80 ; terminator OAMData_c6: ; 0x53b8 db $08, $0f, $7c, $22 db $08, $07, $7c, $02 db $80 ; terminator OAMData_c7: ; 0x53c1 db $08, $0f, $7a, $22 db $08, $07, $7a, $02 db $80 ; terminator OAMData_c8: ; 0x53ca db $18, $11, $96, $02 db $20, $29, $a6, $02 db $30, $21, $a4, $02 db $20, $21, $a2, $02 db $38, $19, $a0, $02 db $28, $19, $9e, $02 db $18, $19, $9c, $02 db $38, $11, $9a, $02 db $28, $11, $98, $02 db $38, $09, $94, $02 db $28, $09, $92, $02 db $18, $09, $90, $02 db $80 ; terminator OAMData_c9: ; 0x53fb db $18, $21, $2c, $02 db $18, $19, $28, $02 db $30, $09, $20, $02 db $20, $09, $1e, $02 db $28, $19, $2a, $02 db $30, $11, $26, $02 db $20, $11, $24, $02 db $10, $11, $22, $02 db $10, $09, $1c, $02 db $80 ; terminator OAMData_ca: ; 0x5420 db $30, $08, $1a, $02 db $20, $08, $a8, $02 db $80 ; terminator OAMData_cb: ; 0x5429 db $10, $18, $06, $1b db $20, $10, $04, $1b db $10, $10, $02, $1b db $10, $08, $00, $1b db $80 ; terminator OAMData_cc: ; 0x543a db $20, $11, $0e, $0c db $10, $11, $0c, $0c db $22, $09, $0a, $0c db $12, $09, $08, $0c db $80 ; terminator OAMData_cd: ; 0x544b db $0f, $11, $30, $11 db $0f, $09, $2e, $11 db $80 ; terminator OAMData_ce: ; 0x5454 db $10, $0f, $30, $11 db $10, $07, $2e, $11 db $80 ; terminator OAMData_cf: ; 0x545d db $11, $11, $30, $11 db $11, $09, $2e, $11 db $80 ; terminator OAMData_d0: ; 0x5466 db $10, $17, $16, $1b db $1f, $0f, $14, $1b db $0f, $0f, $12, $1b db $0f, $07, $10, $1b db $80 ; terminator OAMData_d1: ; 0x5477 db $10, $08, $36, $06 db $80 ; terminator OAMData_d2: ; 0x547c db $08, $08, $37, $46 db $80 ; terminator OAMData_d3: ; 0x5481 db $10, $08, $38, $06 db $80 ; terminator OAMData_d4: ; 0x5486 db $10, $08, $3a, $06 db $80 ; terminator OAMData_d5: ; 0x548b db $10, $08, $3c, $06 db $80 ; terminator OAMData_d6: ; 0x5490 db $10, $08, $3e, $06 db $80 ; terminator OAMData_d7: ; 0x5495 db $10, $08, $b0, $00 db $80 ; terminator OAMData_d8: ; 0x549a db $10, $08, $b2, $00 db $80 ; terminator OAMData_d9: ; 0x549f db $10, $08, $b4, $00 db $80 ; terminator OAMData_da: ; 0x54a4 db $10, $08, $b6, $00 db $80 ; terminator OAMData_db: ; 0x54a9 db $10, $08, $38, $00 db $80 ; terminator OAMData_dc: ; 0x54ae db $10, $08, $3a, $00 db $80 ; terminator OAMData_dd: ; 0x54b3 db $10, $08, $7e, $00 db $80 ; terminator OAMData_de: ; 0x54b8 db $10, $08, $bc, $00 db $80 ; terminator OAMData_df: ; 0x54bd db $10, $08, $a8, $00 db $80 ; terminator OAMData_e0: ; 0x54c2 db $10, $10, $92, $13 db $10, $08, $90, $13 db $80 ; terminator OAMData_e1: ; 0x54cb db $10, $10, $96, $13 db $10, $08, $94, $13 db $80 ; terminator OAMData_e2: ; 0x54d4 db $20, $18, $1e, $11 db $20, $10, $1c, $11 db $20, $08, $1a, $11 db $10, $18, $9c, $11 db $10, $10, $9a, $11 db $10, $08, $98, $11 db $80 ; terminator OAMData_e3: ; 0x54ed db $10, $18, $a2, $11 db $10, $10, $a0, $11 db $10, $08, $9e, $11 db $20, $18, $1e, $11 db $20, $10, $1c, $11 db $20, $08, $1a, $11 db $80 ; terminator OAMData_e4: ; 0x5506 db $10, $1a, $a8, $11 db $10, $12, $a6, $11 db $10, $0a, $a4, $11 db $20, $18, $1e, $11 db $20, $10, $1c, $11 db $20, $08, $1a, $11 db $80 ; terminator OAMData_e5: ; 0x551f db $20, $18, $2a, $13 db $20, $10, $28, $13 db $20, $08, $26, $13 db $10, $18, $24, $13 db $10, $10, $22, $13 db $10, $08, $20, $13 db $80 ; terminator OAMData_e6: ; 0x5538 db $20, $18, $36, $13 db $20, $10, $34, $13 db $20, $08, $32, $13 db $10, $18, $30, $13 db $10, $10, $2e, $13 db $10, $08, $2c, $13 db $80 ; terminator OAMData_e7: ; 0x5551 db $20, $10, $76, $13 db $20, $08, $74, $13 db $10, $10, $72, $13 db $10, $08, $70, $13 db $20, $18, $2a, $13 db $10, $18, $24, $13 db $80 ; terminator OAMData_e8: ; 0x556a db $10, $10, $78, $22 db $10, $08, $78, $02 db $80 ; terminator OAMData_e9: ; 0x5573 db $10, $10, $7b, $62 db $10, $08, $7b, $42 db $80 ; terminator OAMData_ea: ; 0x557c db $10, $10, $7d, $62 db $10, $08, $7d, $42 db $80 ; terminator OAMData_eb: ; 0x5585 db $10, $10, $7e, $22 db $10, $08, $7e, $02 db $80 ; terminator OAMData_ec: ; 0x558e db $10, $10, $7c, $22 db $10, $08, $7c, $02 db $80 ; terminator OAMData_ed: ; 0x5597 db $10, $10, $7a, $22 db $10, $08, $7a, $02 db $80 ; terminator OAMData_ee: ; 0x55a0 db $10, $08, $38, $06 db $80 ; terminator OAMData_ef: ; 0x55a5 db $10, $08, $3a, $06 db $80 ; terminator OAMData_f0: ; 0x55aa db $10, $08, $3a, $26 db $80 ; terminator OAMData_f1: ; 0x55af db $10, $08, $3c, $06 db $80 ; terminator OAMData_f2: ; 0x55b4 db $10, $08, $3e, $06 db $80 ; terminator OAMData_f3: ; 0x55b9 db $10, $08, $3e, $26 db $80 ; terminator OAMData_f4: ; 0x55be db $08, $08, $39, $46 db $80 ; terminator OAMData_f5: ; 0x55c3 db $10, $08, $72, $00 db $80 ; terminator OAMData_f6: ; 0x55c8 db $10, $08, $74, $00 db $80 ; terminator OAMData_f7: ; 0x55cd db $10, $08, $76, $00 db $80 ; terminator OAMData_f8: ; 0x55d2 db $10, $08, $78, $00 db $80 ; terminator OAMDataPointers2: ; 0x55d7 dw OAMData2_0 dw OAMData2_1 dw OAMData2_2 dw OAMData2_3 dw OAMData2_4 dw OAMData2_5 dw OAMData2_6 dw OAMData2_7 dw OAMData2_8 dw OAMData2_9 dw OAMData2_a dw OAMData2_b dw OAMData2_c dw OAMData2_d dw OAMData2_e dw OAMData2_f dw OAMData2_10 dw OAMData2_11 dw OAMData2_12 dw OAMData2_13 dw OAMData2_14 dw OAMData2_15 dw OAMData2_16 dw OAMData2_17 dw OAMData2_18 dw OAMData2_19 dw OAMData2_1a dw OAMData2_1b dw OAMData2_1c dw OAMData2_1d dw OAMData2_1e dw OAMData2_1f dw OAMData2_20 dw OAMData2_21 dw OAMData2_22 dw OAMData2_23 dw OAMData2_24 dw OAMData2_25 dw OAMData2_26 dw OAMData2_27 dw OAMData2_28 dw OAMData2_29 dw OAMData2_2a dw OAMData2_2b dw OAMData2_2c dw OAMData2_2d dw OAMData2_2e dw OAMData2_2f dw OAMData2_30 dw OAMData2_31 dw OAMData2_32 dw OAMData2_33 dw OAMData2_34 dw OAMData2_35 dw OAMData2_36 dw OAMData2_37 dw OAMData2_38 dw OAMData2_39 dw OAMData2_3a dw OAMData2_3b dw OAMData2_3c dw OAMData2_3d dw OAMData2_3e dw OAMData2_3f dw OAMData2_40 dw OAMData2_41 dw OAMData2_42 dw OAMData2_43 dw OAMData2_44 dw OAMData2_45 dw OAMData2_46 dw OAMData2_47 dw OAMData2_48 dw OAMData2_49 dw OAMData2_4a dw OAMData2_4b dw OAMData2_4c dw OAMData2_4d dw OAMData2_4e dw OAMData2_4f dw OAMData2_50 dw OAMData2_51 dw OAMData2_52 dw OAMData2_53 dw OAMData2_54 dw OAMData2_55 dw OAMData2_56 dw OAMData2_57 dw OAMData2_58 dw OAMData2_59 dw OAMData2_5a dw OAMData2_5b dw OAMData2_5c dw OAMData2_5d dw OAMData2_5e dw OAMData2_5f dw OAMData2_60 dw OAMData2_61 dw OAMData2_62 dw OAMData2_63 dw OAMData2_64 dw OAMData2_65 dw OAMData2_66 dw OAMData2_67 dw OAMData2_68 dw OAMData2_69 dw OAMData2_6a dw OAMData2_6b dw OAMData2_6c dw OAMData2_6d dw OAMData2_6e dw OAMData2_6f dw OAMData2_70 dw OAMData2_71 dw OAMData2_72 dw OAMData2_73 dw OAMData2_74 dw OAMData2_75 dw OAMData2_76 dw OAMData2_77 dw OAMData2_78 dw OAMData2_79 dw OAMData2_7a dw OAMData2_7b dw OAMData2_7c dw OAMData2_7d dw OAMData2_7e dw OAMData2_7f dw OAMData2_80 dw OAMData2_81 dw OAMData2_82 dw OAMData2_83 dw OAMData2_84 OAMData2_0: ; 0x56e1 db $20, $20, $9E, $04 db $20, $18, $9C, $04 db $20, $10, $9A, $04 db $20, $08, $98, $04 db $10, $20, $96, $04 db $10, $18, $94, $04 db $10, $10, $92, $04 db $10, $08, $90, $04 db $80 ; terminator OAMData2_1: ; 0x5702 db $21, $20, $9E, $04 db $21, $18, $9C, $04 db $21, $10, $9A, $04 db $21, $08, $98, $04 db $11, $20, $96, $04 db $11, $18, $94, $04 db $11, $10, $92, $04 db $11, $08, $90, $04 db $80 ; terminator OAMData2_2: ; 0x db $1F, $20, $9E, $04 db $1F, $18, $9C, $04 db $1F, $10, $9A, $04 db $1F, $08, $98, $04 db $0F, $20, $96, $04 db $0F, $18, $94, $04 db $0F, $10, $92, $04 db $0F, $08, $90, $04 db $80 ; terminator OAMData2_3: ; 0x db $1F, $18, $A6, $04 db $1F, $10, $A4, $04 db $0F, $18, $A2, $04 db $0F, $10, $A0, $04 db $1F, $20, $9E, $04 db $1F, $08, $98, $04 db $0F, $20, $96, $04 db $0F, $08, $90, $04 db $80 ; terminator OAMData2_4: ; 0x db $1A, $21, $1A, $04 db $1A, $19, $A8, $04 db $1E, $00, $A2, $24 db $1E, $08, $A0, $24 db $30, $10, $9E, $04 db $20, $18, $9C, $04 db $20, $10, $9A, $04 db $20, $08, $98, $04 db $10, $20, $96, $04 db $10, $18, $94, $04 db $10, $10, $92, $04 db $10, $08, $90, $04 db $80 ; terminator OAMData2_5: ; 0x db $1E, $02, $A6, $24 db $1E, $0A, $A4, $24 db $1C, $23, $A6, $04 db $1C, $1B, $A4, $04 db $2E, $11, $9E, $04 db $1E, $18, $9C, $04 db $1E, $10, $9A, $04 db $1E, $08, $98, $04 db $0E, $20, $96, $04 db $0E, $18, $94, $04 db $0E, $10, $92, $04 db $0E, $08, $90, $04 db $80 ; terminator OAMData2_6: ; 0x db $1E, $23, $A2, $04 db $1E, $1B, $A0, $04 db $1A, $02, $1A, $24 db $1A, $0A, $A8, $24 db $2D, $10, $9E, $04 db $1D, $18, $9C, $04 db $1D, $10, $9A, $04 db $1D, $08, $98, $04 db $0D, $20, $96, $04 db $0D, $18, $94, $04 db $0D, $10, $92, $04 db $0D, $08, $90, $04 db $80 ; terminator OAMData2_7: ; 0x db $1C, $00, $A6, $24 db $1C, $08, $A4, $24 db $1E, $21, $A6, $04 db $1E, $19, $A4, $04 db $2E, $0F, $9E, $04 db $1E, $18, $9C, $04 db $1E, $10, $9A, $04 db $1E, $08, $98, $04 db $0E, $20, $96, $04 db $0E, $18, $94, $04 db $0E, $10, $92, $04 db $0E, $08, $90, $04 db $80 ; terminator OAMData2_8: ; 0x db $17, $09, $A8, $24 db $17, $01, $1A, $24 db $0F, $1E, $A8, $04 db $0F, $26, $1A, $04 db $2D, $18, $28, $04 db $1D, $18, $26, $04 db $1D, $10, $24, $04 db $0D, $20, $22, $04 db $0D, $18, $20, $04 db $0D, $10, $1E, $04 db $0E, $08, $1C, $04 db $80 ; terminator OAMData2_9: ; 0x db $20, $30, $32, $24 db $30, $30, $3A, $04 db $10, $30, $38, $04 db $30, $08, $34, $04 db $20, $08, $32, $04 db $10, $08, $30, $04 db $38, $28, $1E, $04 db $38, $20, $1C, $04 db $38, $18, $1A, $04 db $38, $10, $A8, $04 db $28, $28, $A6, $04 db $28, $20, $A4, $04 db $28, $18, $A2, $04 db $28, $10, $A0, $04 db $18, $28, $9E, $04 db $18, $20, $9C, $04 db $18, $18, $9A, $04 db $18, $10, $98, $04 db $08, $28, $96, $04 db $08, $20, $94, $04 db $08, $18, $92, $04 db $08, $10, $90, $04 db $80 ; terminator OAMData2_a: ; 0x db $31, $08, $36, $04 db $39, $28, $26, $04 db $39, $20, $24, $04 db $39, $18, $22, $04 db $39, $10, $20, $04 db $21, $30, $32, $24 db $31, $30, $3A, $04 db $11, $30, $38, $04 db $21, $08, $32, $04 db $11, $08, $30, $04 db $29, $28, $A6, $04 db $29, $20, $A4, $04 db $29, $18, $A2, $04 db $29, $10, $A0, $04 db $19, $28, $9E, $04 db $19, $20, $9C, $04 db $19, $18, $9A, $04 db $19, $10, $98, $04 db $09, $28, $96, $04 db $09, $20, $94, $04 db $09, $18, $92, $04 db $09, $10, $90, $04 db $80 ; terminator OAMData2_b: ; 0x db $39, $28, $2E, $04 db $39, $20, $2C, $04 db $39, $18, $2A, $04 db $39, $10, $28, $04 db $31, $30, $3C, $04 db $21, $30, $32, $24 db $11, $30, $38, $04 db $31, $08, $34, $04 db $21, $08, $32, $04 db $11, $08, $30, $04 db $29, $28, $A6, $04 db $29, $20, $A4, $04 db $29, $18, $A2, $04 db $29, $10, $A0, $04 db $19, $28, $9E, $04 db $19, $20, $9C, $04 db $19, $18, $9A, $04 db $19, $10, $98, $04 db $09, $28, $96, $04 db $09, $20, $94, $04 db $09, $18, $92, $04 db $09, $10, $90, $04 db $80 ; terminator OAMData2_c: ; 0x db $39, $28, $7E, $04 db $39, $20, $7C, $04 db $39, $18, $7A, $04 db $39, $10, $3E, $04 db $21, $30, $32, $24 db $31, $30, $3A, $04 db $11, $30, $38, $04 db $31, $08, $34, $04 db $21, $08, $32, $04 db $11, $08, $30, $04 db $29, $28, $A6, $04 db $29, $20, $A4, $04 db $29, $18, $A2, $04 db $29, $10, $A0, $04 db $19, $28, $9E, $04 db $19, $20, $9C, $04 db $19, $18, $9A, $04 db $19, $10, $98, $04 db $09, $28, $96, $04 db $09, $20, $94, $04 db $09, $18, $92, $04 db $09, $10, $90, $04 db $80 ; terminator OAMData2_d: ; 0x db $3A, $28, $B0, $04 db $3A, $20, $AE, $04 db $3A, $18, $AC, $04 db $3A, $10, $AA, $04 db $22, $30, $32, $24 db $32, $30, $3A, $04 db $12, $30, $38, $04 db $32, $08, $34, $04 db $22, $08, $32, $04 db $12, $08, $30, $04 db $2A, $28, $A6, $04 db $2A, $20, $A4, $04 db $2A, $18, $A2, $04 db $2A, $10, $A0, $04 db $1A, $28, $9E, $04 db $1A, $20, $9C, $04 db $1A, $18, $9A, $04 db $1A, $10, $98, $04 db $0A, $28, $96, $04 db $0A, $20, $94, $04 db $0A, $18, $92, $04 db $0A, $10, $90, $04 db $80 ; terminator OAMData2_e: ; 0x db $23, $04, $B2, $04 db $27, $2C, $D2, $04 db $27, $24, $D0, $04 db $27, $1C, $CE, $04 db $27, $14, $CC, $04 db $27, $0C, $CA, $04 db $17, $2C, $C8, $04 db $17, $24, $C6, $04 db $17, $1C, $C4, $04 db $17, $14, $C2, $04 db $17, $0C, $C0, $04 db $07, $2C, $BE, $04 db $07, $24, $BC, $04 db $07, $1C, $BA, $04 db $07, $14, $B8, $04 db $07, $0C, $B6, $04 db $23, $34, $B4, $04 db $37, $28, $1E, $04 db $37, $20, $1C, $04 db $37, $18, $1A, $04 db $37, $10, $A8, $04 db $80 ; terminator OAMData2_f: ; 0x db $20, $20, $9E, $04 db $20, $18, $9C, $04 db $20, $10, $9A, $04 db $20, $08, $98, $04 db $10, $20, $96, $04 db $10, $18, $94, $04 db $10, $10, $92, $04 db $10, $08, $90, $04 db $80 ; terminator OAMData2_10: ; 0x db $20, $08, $22, $04 db $10, $08, $20, $04 db $20, $20, $9E, $04 db $20, $18, $9C, $04 db $20, $10, $9A, $04 db $10, $20, $96, $04 db $10, $18, $94, $04 db $10, $10, $92, $04 db $80 ; terminator OAMData2_11: ; 0x db $20, $20, $1E, $04 db $20, $18, $1C, $04 db $20, $10, $1A, $04 db $20, $08, $A8, $04 db $10, $20, $A6, $04 db $10, $18, $A4, $04 db $10, $10, $A2, $04 db $10, $08, $A0, $04 db $80 ; terminator OAMData2_12: ; 0x db $20, $20, $2A, $04 db $10, $20, $28, $04 db $20, $08, $26, $04 db $10, $08, $24, $04 db $20, $18, $9C, $04 db $20, $10, $9A, $04 db $10, $18, $94, $04 db $10, $10, $92, $04 db $80 ; terminator OAMData2_13: ; 0x db $10, $10, $32, $11 db $10, $08, $30, $11 db $80 ; terminator OAMData2_14: ; 0x db $10, $10, $36, $11 db $10, $08, $34, $11 db $80 ; terminator OAMData2_15: ; 0x db $10, $10, $3A, $11 db $10, $08, $38, $11 db $80 ; terminator OAMData2_16: ; 0x db $10, $10, $3E, $11 db $10, $08, $3C, $11 db $80 ; terminator OAMData2_17: ; 0x db $20, $10, $7E, $04 db $10, $18, $2E, $04 db $10, $10, $92, $04 db $20, $20, $AC, $04 db $20, $18, $AA, $04 db $20, $08, $7C, $04 db $10, $20, $7A, $04 db $10, $08, $2C, $04 db $80 ; terminator OAMData2_18: ; 0x db $20, $10, $7E, $04 db $10, $18, $94, $04 db $10, $10, $92, $04 db $20, $20, $C4, $04 db $20, $08, $C2, $04 db $10, $20, $C0, $04 db $10, $08, $BE, $04 db $20, $18, $AA, $04 db $80 ; terminator OAMData2_19: ; 0x db $1F, $20, $BC, $04 db $1F, $18, $BA, $04 db $1F, $10, $B8, $04 db $1F, $08, $B6, $04 db $0F, $20, $B4, $04 db $0F, $18, $B2, $04 db $0F, $10, $B0, $04 db $0F, $08, $AE, $04 db $80 ; terminator OAMData2_1a: ; 0x db $10, $10, $C6, $31 db $10, $08, $C6, $11 db $80 ; terminator OAMData2_1b: ; 0x db $10, $10, $C8, $31 db $10, $08, $C8, $11 db $80 ; terminator OAMData2_1c: ; 0x db $10, $10, $CA, $31 db $10, $08, $CA, $11 db $80 ; terminator OAMData2_1d: ; 0x db $10, $10, $CC, $31 db $10, $08, $CC, $11 db $80 ; terminator OAMData2_1e: ; 0x db $10, $10, $CE, $31 db $10, $08, $CE, $11 db $80 ; terminator OAMData2_1f: ; 0x db $10, $10, $D0, $31 db $10, $08, $D0, $11 db $80 ; terminator OAMData2_20: ; 0x db $10, $10, $D2, $31 db $10, $08, $D2, $11 db $80 ; terminator OAMData2_21: ; 0x db $1E, $1F, $9E, $11 db $1E, $17, $9C, $11 db $1E, $0F, $9A, $11 db $1E, $07, $98, $11 db $0E, $1F, $96, $11 db $0E, $17, $94, $11 db $0E, $0F, $92, $11 db $0E, $07, $90, $11 db $80 ; terminator OAMData2_22: ; 0x db $20, $20, $1E, $11 db $20, $18, $1C, $11 db $20, $10, $1A, $11 db $20, $08, $A8, $11 db $10, $20, $A6, $11 db $10, $18, $A4, $11 db $10, $10, $A2, $11 db $10, $08, $A0, $11 db $80 ; terminator OAMData2_23: ; 0x db $0E, $1F, $96, $11 db $0E, $17, $94, $11 db $0E, $0F, $92, $11 db $0E, $07, $90, $11 db $1E, $1F, $26, $11 db $1E, $17, $24, $11 db $1E, $0F, $22, $11 db $1E, $07, $20, $11 db $80 ; terminator OAMData2_24: ; 0x db $1A, $24, $34, $11 db $1A, $1C, $32, $11 db $1A, $14, $30, $11 db $1A, $0C, $2E, $11 db $0A, $1C, $2C, $11 db $0A, $14, $2A, $11 db $0A, $0C, $28, $11 db $80 ; terminator OAMData2_25: ; 0x db $1E, $07, $9E, $31 db $1E, $0F, $9C, $31 db $1E, $17, $9A, $31 db $1E, $1F, $98, $31 db $0E, $07, $96, $31 db $0E, $0F, $94, $31 db $0E, $17, $92, $31 db $0E, $1F, $90, $31 db $80 ; terminator OAMData2_26: ; 0x db $20, $08, $1E, $31 db $20, $10, $1C, $31 db $20, $18, $1A, $31 db $20, $20, $A8, $31 db $10, $08, $A6, $31 db $10, $10, $A4, $31 db $10, $18, $A2, $31 db $10, $20, $A0, $31 db $80 ; terminator OAMData2_27: ; 0x db $0E, $07, $96, $31 db $0E, $0F, $94, $31 db $0E, $17, $92, $31 db $0E, $1F, $90, $31 db $1E, $07, $26, $31 db $1E, $0F, $24, $31 db $1E, $17, $22, $31 db $1E, $1F, $20, $31 db $80 ; terminator OAMData2_28: ; 0x db $1A, $0C, $34, $31 db $1A, $14, $32, $31 db $1A, $1C, $30, $31 db $1A, $24, $2E, $31 db $0A, $14, $2C, $31 db $0A, $1C, $2A, $31 db $0A, $24, $28, $31 db $80 ; terminator OAMData2_29: ; 0x db $10, $0C, $36, $13 db $80 ; terminator OAMData2_2a: ; 0x db $10, $10, $3A, $13 db $10, $08, $38, $13 db $80 ; terminator OAMData2_2b: ; 0x db $10, $10, $3E, $13 db $10, $08, $3C, $13 db $80 ; terminator OAMData2_2c: ; 0x db $10, $10, $7C, $13 db $10, $08, $7A, $13 db $80 ; terminator OAMData2_2d: ; 0x db $10, $10, $AA, $13 db $10, $08, $7E, $13 db $80 ; terminator OAMData2_2e: ; 0x db $10, $0F, $AC, $33 db $10, $08, $AC, $13 db $80 ; terminator OAMData2_2f: ; 0x db $10, $0F, $AE, $33 db $10, $08, $AE, $13 db $80 ; terminator OAMData2_30: ; 0x db $10, $0F, $B0, $33 db $10, $08, $B0, $13 db $80 ; terminator OAMData2_31: ; 0x db $10, $0C, $B2, $13 db $80 ; terminator OAMData2_32: ; 0x db $10, $0C, $B4, $13 db $80 ; terminator OAMData2_33: ; 0x db $20, $20, $C4, $11 db $20, $18, $C2, $11 db $20, $10, $C0, $11 db $20, $08, $BE, $11 db $10, $20, $BC, $11 db $10, $18, $BA, $11 db $10, $10, $B8, $11 db $10, $08, $B6, $11 db $80 ; terminator OAMData2_34: ; 0x db $20, $20, $CE, $11 db $20, $18, $CC, $11 db $20, $10, $CA, $11 db $20, $08, $C8, $11 db $10, $10, $C6, $11 db $10, $20, $BC, $11 db $10, $18, $BA, $11 db $10, $08, $B6, $11 db $80 ; terminator OAMData2_35: ; 0x db $0A, $10, $D2, $00 db $0A, $08, $D0, $00 db $80 ; terminator OAMData2_36: ; 0x db $08, $10, $D2, $00 db $08, $08, $D0, $00 db $80 ; terminator OAMData2_37: ; 0x db $06, $10, $D2, $00 db $06, $08, $D0, $00 db $80 ; terminator OAMData2_38: ; 0x db $0A, $10, $D4, $00 db $0A, $08, $D0, $00 db $80 ; terminator OAMData2_39: ; 0x db $08, $10, $D4, $00 db $08, $08, $D0, $00 db $80 ; terminator OAMData2_3a: ; 0x db $06, $10, $D4, $00 db $06, $08, $D0, $00 db $80 ; terminator OAMData2_3b: ; 0x db $0A, $10, $D6, $00 db $0A, $08, $D0, $00 db $80 ; terminator OAMData2_3c: ; 0x db $08, $10, $D6, $00 db $08, $08, $D0, $00 db $80 ; terminator OAMData2_3d: ; 0x db $05, $10, $D6, $00 db $05, $08, $D0, $00 db $80 ; terminator OAMData2_3e: ; 0x db $0A, $10, $D8, $00 db $0A, $08, $D0, $00 db $80 ; terminator OAMData2_3f: ; 0x db $08, $10, $D8, $00 db $08, $08, $D0, $00 db $80 ; terminator OAMData2_40: ; 0x db $05, $10, $D8, $00 db $05, $08, $D0, $00 db $80 ; terminator OAMData2_41: ; 0x db $0A, $10, $DA, $00 db $0A, $08, $D0, $00 db $80 ; terminator OAMData2_42: ; 0x db $08, $10, $DA, $00 db $08, $08, $D0, $00 db $80 ; terminator OAMData2_43: ; 0x db $05, $10, $DA, $00 db $05, $08, $D0, $00 db $80 ; terminator OAMData2_44: ; 0x db $10, $08, $DC, $00 db $80 ; terminator OAMData2_45: ; 0x db $10, $08, $DE, $00 db $80 ; terminator OAMData2_46: ; 0x db $20, $20, $9E, $11 db $20, $18, $9C, $11 db $20, $10, $9A, $11 db $20, $08, $98, $11 db $10, $20, $96, $11 db $10, $18, $94, $11 db $10, $10, $92, $11 db $10, $08, $90, $11 db $80 ; terminator OAMData2_47: ; 0x db $20, $20, $1E, $11 db $20, $18, $1C, $11 db $20, $10, $1A, $11 db $20, $08, $A8, $11 db $10, $20, $A6, $11 db $10, $18, $A4, $11 db $10, $10, $A2, $11 db $10, $08, $A0, $11 db $80 ; terminator OAMData2_48: ; 0x db $20, $20, $9E, $11 db $10, $20, $96, $11 db $20, $10, $1A, $11 db $20, $08, $A8, $11 db $10, $08, $A0, $11 db $20, $18, $24, $11 db $10, $18, $22, $11 db $10, $10, $20, $11 db $80 ; terminator OAMData2_49: ; 0x db $10, $08, $A0, $11 db $20, $20, $32, $11 db $20, $18, $30, $11 db $20, $10, $2E, $11 db $20, $08, $2C, $11 db $10, $20, $2A, $11 db $10, $18, $28, $11 db $10, $10, $26, $11 db $80 ; terminator OAMData2_4a: ; 0x db $20, $18, $AA, $11 db $20, $10, $7E, $11 db $10, $18, $7C, $11 db $10, $10, $7A, $11 db $20, $20, $9E, $11 db $20, $08, $98, $11 db $10, $20, $96, $11 db $10, $08, $90, $11 db $80 ; terminator OAMData2_4b: ; 0x db $20, $18, $B2, $11 db $20, $10, $B0, $11 db $10, $18, $AE, $11 db $10, $10, $AC, $11 db $20, $20, $1E, $11 db $20, $08, $A8, $11 db $10, $20, $A6, $11 db $10, $08, $A0, $11 db $80 ; terminator OAMData2_4c: ; 0x db $20, $10, $B0, $11 db $10, $10, $AC, $11 db $20, $18, $AA, $11 db $10, $18, $7C, $11 db $20, $20, $9E, $11 db $10, $20, $96, $11 db $20, $08, $A8, $11 db $10, $08, $A0, $11 db $80 ; terminator OAMData2_4d: ; 0x db $20, $18, $BA, $11 db $20, $10, $B8, $11 db $10, $18, $B6, $11 db $10, $10, $B4, $11 db $10, $08, $A0, $11 db $20, $20, $32, $11 db $20, $08, $2C, $11 db $10, $20, $2A, $11 db $80 ; terminator OAMData2_4e: ; 0x db $20, $20, $C2, $11 db $20, $18, $C0, $11 db $10, $20, $BE, $11 db $10, $18, $BC, $11 db $20, $10, $7E, $11 db $10, $10, $7A, $11 db $20, $08, $98, $11 db $10, $08, $90, $11 db $80 ; terminator OAMData2_4f: ; 0x db $20, $10, $B0, $11 db $10, $10, $AC, $11 db $20, $08, $A8, $11 db $10, $08, $A0, $11 db $20, $20, $C2, $11 db $20, $18, $C0, $11 db $10, $20, $BE, $11 db $10, $18, $BC, $11 db $80 ; terminator OAMData2_50: ; 0x db $20, $10, $B0, $11 db $10, $10, $AC, $11 db $20, $08, $A8, $11 db $10, $08, $A0, $11 db $20, $20, $C2, $11 db $20, $18, $C0, $11 db $10, $20, $BE, $11 db $10, $18, $BC, $11 db $80 ; terminator OAMData2_51: ; 0x db $20, $20, $CA, $11 db $20, $18, $C8, $11 db $10, $20, $C6, $11 db $10, $18, $C4, $11 db $20, $10, $B8, $11 db $10, $10, $B4, $11 db $10, $08, $A0, $11 db $20, $08, $2C, $11 db $80 ; terminator OAMData2_52: ; 0x db $20, $08, $38, $11 db $10, $18, $36, $11 db $10, $10, $34, $11 db $20, $20, $3E, $11 db $20, $18, $3C, $11 db $20, $10, $3A, $11 db $80 ; terminator OAMData2_53: ; 0x db $20, $10, $CE, $11 db $20, $08, $CC, $11 db $20, $20, $C2, $11 db $20, $18, $C0, $11 db $10, $20, $BE, $11 db $10, $18, $BC, $11 db $10, $10, $7A, $11 db $10, $08, $90, $11 db $80 ; terminator OAMData2_54: ; 0x db $20, $20, $9A, $11 db $20, $18, $98, $11 db $20, $10, $96, $11 db $20, $08, $94, $11 db $10, $18, $92, $11 db $10, $10, $90, $11 db $80 ; terminator OAMData2_55: ; 0x db $20, $20, $A6, $11 db $20, $18, $A4, $11 db $20, $10, $A2, $11 db $20, $08, $A0, $11 db $10, $18, $9E, $11 db $10, $10, $9C, $11 db $80 ; terminator OAMData2_56: ; 0x db $20, $20, $22, $11 db $20, $18, $20, $11 db $20, $10, $1E, $11 db $20, $08, $1C, $11 db $10, $18, $1A, $11 db $10, $10, $A8, $11 db $80 ; terminator OAMData2_57: ; 0x db $26, $1E, $2A, $13 db $26, $16, $28, $13 db $26, $0E, $26, $13 db $26, $06, $24, $13 db $80 ; terminator OAMData2_58: ; 0x db $26, $1E, $32, $13 db $26, $16, $30, $13 db $26, $0E, $2E, $13 db $26, $06, $2C, $13 db $80 ; terminator OAMData2_59: ; 0x db $26, $1E, $3A, $13 db $26, $16, $38, $13 db $26, $0E, $36, $13 db $26, $06, $34, $13 db $80 ; terminator OAMData2_5a: ; 0x db $25, $1E, $7C, $13 db $25, $16, $7A, $13 db $25, $0E, $3E, $13 db $25, $06, $3C, $13 db $80 ; terminator OAMData2_5b: ; 0x db $24, $1B, $AC, $13 db $24, $13, $AA, $13 db $24, $0B, $7E, $13 db $80 ; terminator OAMData2_5c: ; 0x db $24, $18, $B0, $13 db $24, $10, $AE, $13 db $80 ; terminator OAMData2_5d: ; 0x db $22, $18, $B4, $13 db $22, $10, $B2, $13 db $80 ; terminator OAMData2_5e: ; 0x db $20, $1E, $BA, $13 db $20, $16, $B8, $13 db $20, $0E, $B6, $13 db $80 ; terminator OAMData2_5f: ; 0x db $20, $20, $C6, $11 db $20, $18, $C4, $11 db $20, $10, $C2, $11 db $20, $08, $C0, $11 db $10, $18, $BE, $11 db $10, $10, $BC, $11 db $80 ; terminator OAMData2_60: ; 0x db $20, $20, $D2, $11 db $20, $18, $D0, $11 db $20, $10, $CE, $11 db $1F, $08, $CC, $11 db $10, $18, $CA, $11 db $10, $10, $C8, $11 db $80 ; terminator OAMData2_61: ; 0x db $20, $20, $DE, $11 db $20, $18, $DC, $11 db $20, $10, $DA, $11 db $20, $08, $D8, $11 db $10, $18, $D6, $11 db $10, $10, $D4, $11 db $80 ; terminator OAMData2_62: ; 0x db $25, $1B, $AD, $53 db $25, $13, $AB, $53 db $25, $0B, $7F, $53 db $80 ; terminator OAMData2_63: ; 0x db $25, $1E, $7D, $53 db $25, $16, $7B, $53 db $25, $0E, $3F, $53 db $25, $06, $3D, $53 db $80 ; terminator OAMData2_64: ; 0x db $26, $09, $2A, $33 db $26, $11, $28, $33 db $26, $19, $26, $33 db $26, $21, $24, $33 db $80 ; terminator OAMData2_65: ; 0x db $26, $09, $32, $33 db $26, $11, $30, $33 db $26, $19, $2E, $33 db $26, $21, $2C, $33 db $80 ; terminator OAMData2_66: ; 0x db $26, $09, $3A, $33 db $26, $11, $38, $33 db $26, $19, $36, $33 db $26, $21, $34, $33 db $80 ; terminator OAMData2_67: ; 0x db $25, $09, $7C, $33 db $25, $11, $7A, $33 db $25, $19, $3E, $33 db $25, $21, $3C, $33 db $80 ; terminator OAMData2_68: ; 0x db $24, $0E, $AC, $33 db $24, $16, $AA, $33 db $24, $1E, $7E, $33 db $80 ; terminator OAMData2_69: ; 0x db $25, $0E, $AD, $73 db $25, $16, $AB, $73 db $25, $1E, $7F, $73 db $80 ; terminator OAMData2_6a: ; 0x db $25, $09, $7D, $73 db $25, $11, $7B, $73 db $25, $19, $3F, $73 db $25, $21, $3D, $73 db $80 ; terminator OAMData2_6b: ; 0x db $02, $18, $E4, $00 db $02, $10, $E0, $00 db $80 ; terminator OAMData2_6c: ; 0x db $00, $18, $E4, $00 db $00, $10, $E0, $00 db $80 ; terminator OAMData2_6d: ; 0x db $FE, $18, $E4, $00 db $FE, $10, $E0, $00 db $80 ; terminator OAMData2_6e: ; 0x db $02, $18, $E8, $00 db $02, $10, $E0, $00 db $80 ; terminator OAMData2_6f: ; 0x db $00, $18, $E8, $00 db $00, $10, $E0, $00 db $80 ; terminator OAMData2_70: ; 0x db $FE, $18, $E8, $00 db $FE, $10, $E0, $00 db $80 ; terminator OAMData2_71: ; 0x db $02, $18, $EE, $00 db $02, $10, $E0, $00 db $80 ; terminator OAMData2_72: ; 0x db $00, $18, $EE, $00 db $00, $10, $E0, $00 db $80 ; terminator OAMData2_73: ; 0x db $FE, $18, $EE, $00 db $FE, $10, $E0, $00 db $80 ; terminator OAMData2_74: ; 0x db $02, $1C, $EC, $00 db $02, $14, $E2, $00 db $02, $0C, $E0, $00 db $80 ; terminator OAMData2_75: ; 0x db $00, $1C, $EC, $00 db $00, $14, $E2, $00 db $00, $0C, $E0, $00 db $80 ; terminator OAMData2_76: ; 0x db $FE, $1C, $EC, $00 db $FE, $14, $E2, $00 db $FE, $0C, $E0, $00 db $80 ; terminator OAMData2_77: ; 0x db $02, $1C, $E4, $00 db $02, $14, $E6, $00 db $02, $0C, $E0, $00 db $80 ; terminator OAMData2_78: ; 0x db $00, $1C, $E4, $00 db $00, $14, $E6, $00 db $00, $0C, $E0, $00 db $80 ; terminator OAMData2_79: ; 0x db $FE, $1C, $E4, $00 db $FE, $14, $E6, $00 db $FE, $0C, $E0, $00 db $80 ; terminator OAMData2_7a: ; 0x db $02, $1C, $E8, $00 db $02, $14, $EC, $00 db $02, $0C, $E0, $00 db $80 ; terminator OAMData2_7b: ; 0x db $00, $1C, $E8, $00 db $00, $14, $EC, $00 db $00, $0C, $E0, $00 db $80 ; terminator OAMData2_7c: ; 0x db $FE, $1C, $E8, $00 db $FE, $14, $EC, $00 db $FE, $0C, $E0, $00 db $80 ; terminator OAMData2_7d: ; 0x db $02, $20, $EE, $00 db $02, $18, $E4, $00 db $02, $10, $E2, $00 db $02, $08, $E0, $00 db $80 ; terminator OAMData2_7e: ; 0x db $00, $20, $EE, $00 db $00, $18, $E4, $00 db $00, $10, $E2, $00 db $00, $08, $E0, $00 db $80 ; terminator OAMData2_7f: ; 0x db $FE, $20, $EE, $00 db $FE, $18, $E4, $00 db $FE, $10, $E2, $00 db $FE, $08, $E0, $00 db $80 ; terminator OAMData2_80: ; 0x db $02, $20, $EC, $00 db $02, $18, $EA, $00 db $02, $10, $E4, $00 db $02, $08, $E0, $00 db $80 ; terminator OAMData2_81: ; 0x db $00, $20, $EC, $00 db $00, $18, $EA, $00 db $00, $10, $E4, $00 db $00, $08, $E0, $00 db $80 ; terminator OAMData2_82: ; 0x db $FE, $20, $EC, $00 db $FE, $18, $EA, $00 db $FE, $10, $E4, $00 db $FE, $08, $E0, $00 db $80 ; terminator OAMData2_83: ; 0x6258 db $10, $08, $F0, $00 db $80 ; terminator OAMData2_84: ; 0x625d db $10, $08, $F2, $00 db $80 ; terminator ; Free Space 0x6262 SECTION "bank2", ROMX, BANK[$2] Func_8000: ; 0x8000 ld a, [wScreenState] rst JumpTable ; calls JumpToFuncInTable CallTable_8004: ; 0x8004 dw Func_800a dw Func_8104 dw Func_814e Func_800a: ; 0x800a xor a ld [$ffc4], a ld a, [hJoypadState] cp D_UP jr nz, .asm_8018 ld a, [hGameBoyColorFlag] and a jr nz, .asm_8021 .asm_8018 ld hl, wCurrentScreen inc [hl] xor a ld [wScreenState], a ret .asm_8021 ld a, $45 ld [$ff9e], a ld a, $e4 ld [$d80c], a ld [$d80d], a ld [$d80e], a xor a ld [hBoardXShift], a ld [hBoardYShift], a call Func_8049 call ClearOAMBuffer call Func_b66 call Func_588 call Func_bbe ld hl, wScreenState inc [hl] ret Func_8049: ; 0x8049 ; This function is unused? ld a, $1 ld [rVBK], a ld c, $ff call FillTilesVRAM call FillBackgroundsVRAM xor a ld [rVBK], a ld c, $0 call FillTilesVRAM call FillBackgroundsVRAM ; This code makes no sense. ; It first fills 33 bytes at $ff68, then refills at rOBPI ld a, $80 ld de, rBGPI ld hl, Data_80e4 call Fill33Bytes ld a, $80 ld de, rOBPI ld hl, Data_80f4 call Fill33Bytes ld hl, PointerTable_8089 xor a call LoadVideoData ld a, Bank(UnusedTileListData_8094) ld bc, UnusedTileListData_8094 ld de, LoadTileLists call Func_10c5 ret PointerTable_8089: ; 0x8089 dw UnusedTextVideoData UnusedTextVideoData: ; 0x808b VIDEO_DATA_TILES UnusedTextGfx, vTiles1 + $200, $400 db $FF, $FF ; terminators UnusedTileListData_8094: ; 0x8094 db $13 dbw $06, $98A3 db $BC, $AF, $B6, $AF, $AD, $BD dbw $06, $98AA db $BD, $AB, $BB, $B1, $AF, $BD dbw $04, $98E3 db $D0, $AD, $B1, $AC dbw $03, $9924 db $AE, $B7, $B1 db $00 ; terminator FillBackgroundsVRAM: ; 0x80b5 ld hl, vBGMap0 .fillLoop xor a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld a, h cp $a0 ; end of VRAM jr nz, .fillLoop ret FillTilesVRAM: ; 0x80c3 ld hl, vTiles0 .fillLoop ld a, c ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld a, h cp (vBGMap0 >> 8) jr nz, .fillLoop ret Fill33Bytes: ; 0x80d1 ; First places a in [de]. ; Then, reads 32 bytes from hl and places them in order at de + 1 ld [de], a inc de ld b, $4 .outerLoop ld c, $8 push hl .innerLoop ld a, [hli] ld [de], a ld a, [hli] ld [de], a dec c jr nz, .innerLoop pop hl dec b jr nz, .outerLoop ret Data_80e4: ; 0x80e4 db $FF db $7F db $B5 db $56 db $6B db $2D db $00 db $00 db $FF db $7F db $B5 db $56 db $6B db $2D db $00 db $00 Data_80f4: ; 0x80f4 db $B5 db $56 db $FF db $7F db $6B db $2D db $00 db $00 db $FF db $7F db $B5 db $56 db $6B db $2D db $00 db $00 Func_8104: ; 0x8104 ld a, [hNewlyPressedButtons] ld b, a and (D_DOWN | D_UP) jr z, .asm_8115 ld a, [hGameBoyColorFlag] ld [$ffc4], a xor $1 ld [hGameBoyColorFlag], a jr .asm_811d .asm_8115 bit BIT_A_BUTTON, b ret z ld hl, wScreenState inc [hl] ret .asm_811d ld a, [hGameBoyColorFlag] and a jr nz, .asm_812e ld a, Bank(Data_813a) ld bc, Data_813a ld de, LoadTileLists ; todo call Func_10c5 ret .asm_812e ld a, Bank(Data_8144) ld bc, Data_8144 ld de, LoadTileLists ; todo call Func_10c5 ret Data_813a: ; 0x813a db $02 dbw $01, $98E3 db $D1 dbw $01, $9923 db $D0 db $00 ; terminator Data_8144: ; 0x8144 db $02 dbw $01, $98E3 db $D0 dbw $01, $9923 db $D1 db $00 ; terminator Func_814e: ; 0x414e call Func_cb5 call Func_576 ld hl, wCurrentScreen inc [hl] xor a ld [wScreenState], a ret HandleEraseAllDataMenu: ; 0x815d ld a, [wScreenState] rst JumpTable ; calls JumpToFuncInTable EraseAllDataMenuFunctions: ; 0x8161 dw CheckForResetButtonCombo dw HandleEraseAllDataInput dw ExitEraseAllDataMenu CheckForResetButtonCombo: ; 0x8167 ld a, [hJoypadState] cp (D_UP | D_RIGHT | START | SELECT) jr z, .heldCorrectButtons ld hl, wCurrentScreen inc [hl] ret .heldCorrectButtons ld a, $41 ld [$ff9e], a ld a, $e4 ld [$d80c], a xor a ld [$d80d], a ld [$d80e], a ld [hBoardXShift], a ld [hBoardYShift], a ld a, [hGameBoyColorFlag] ld hl, EraseAllDataGfxPointers call LoadVideoData call ClearOAMBuffer call Func_b66 call Func_588 call Func_14a4 call Func_bbe ld hl, wScreenState inc [hl] ret EraseAllDataGfxPointers: ; 0x81a2 dw EraseAllDataGfx_GameBoy dw EraseAllDataGfx_GameBoyColor EraseAllDataGfx_GameBoy: ; 0x81a6 VIDEO_DATA_TILES EraseAllDataGfx, vTiles2, $300 VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap0, $400 db $FF, $FF ; terminators EraseAllDataGfx_GameBoyColor: ; 0x81b6 VIDEO_DATA_TILES EraseAllDataGfx, vTiles2, $300 VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap0, $400 VIDEO_DATA_BGATTR EraseAllDataBGAttributes, vBGMap0, $400 VIDEO_DATA_PALETTES HighScoresRedStagePalettes, $80 db $FF, $FF ; terminators HandleEraseAllDataInput: ; 0x81d4 ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .checkForBButton ld hl, $a000 xor a ld b, a .eraseSavedDataLoop ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a dec b jr nz, .eraseSavedDataLoop ld hl, wScreenState inc [hl] ret .checkForBButton bit BIT_B_BUTTON, a ret z ld hl, wScreenState inc [hl] ret ExitEraseAllDataMenu: ; 0x820f call Func_cb5 call Func_576 ld hl, wCurrentScreen inc [hl] xor a ld [wScreenState], a ret HandleCopyrightScreen: ; 0x821e ld a, [wScreenState] rst JumpTable ; calls JumpToFuncInTable CopyrightScreenFunctions: ; 0x8222 dw FadeInCopyrightScreen dw DisplayCopyrightScreen dw FadeOutCopyrightScreenAndLoadData FadeInCopyrightScreen: ; 0x8228 ld a, $41 ld [$ff9e], a ld a, $e4 ld [$d80c], a xor a ld [$d80d], a ld [$d80e], a ld [hBoardXShift], a ld [hBoardYShift], a ld a, [hGameBoyColorFlag] ld hl, CopyrightTextGfxPointers call LoadVideoData call ClearOAMBuffer call Func_b66 call Func_588 call Func_14a4 ld bc, $0050 call Func_93f call Func_bbe ld hl, wScreenState inc [hl] ret CopyrightTextGfxPointers: ; 0x825e dw CopyrightTextGfx_GameBoy dw CopyrightTextGfx_GameBoyColor CopyrightTextGfx_GameBoy: ; 0x8262 VIDEO_DATA_TILES CopyrightTextGfx, vTiles1, $400 VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap0, $400 db $FF, $FF ; terminators CopyrightTextGfx_GameBoyColor: ; 0x8272 VIDEO_DATA_TILES CopyrightTextGfx, vTiles1, $400 VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap0, $400 VIDEO_DATA_BGATTR CopyrightScreenBGAttributes, vBGMap0, $400 VIDEO_DATA_PALETTES CopyrightScreenPalettes, $80 db $FF, $FF ; terminators DisplayCopyrightScreen: ; 0x8290 ld b, $5a ; number of frames to show the copyright screen .delayLoop push bc rst AdvanceFrame ; wait for next frame pop bc ld a, b cp $2d ; player can press A button to skip copyright screen once counter is below $2d jr nc, .decrementCounter ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr nz, .done .decrementCounter dec b jr nz, .delayLoop .done ld hl, wScreenState inc [hl] ret FadeOutCopyrightScreenAndLoadData: ; 0x82a8 call Func_cb5 call Func_576 ld hl, $a000 ld de, wRedHighScore1Points ld bc, $0082 call Func_f0c jr c, .loadedHighScores ld [$ff8a], a callba CopyInitialHighScores .loadedHighScores ld hl, $a10c ld de, wPokedexFlags ld bc, $0098 call Func_f0c jr c, .asm_82de ld [$ff8a], a callba ClearPokedexData .asm_82de ld hl, $a244 ld de, wKeyConfigs ld bc, $000e call Func_f0c jr c, .asm_82f6 ld [$ff8a], a callba SaveDefaultKeyConfigs .asm_82f6 ld hl, $a268 ld de, wPartyMons ld bc, $04c3 ; This is saved game data from when the player saves in the middle of a game. call Func_f0c jr c, .asm_8308 xor a ld [$d7c2], a ; if this is non-zero, the main menu will prompt for "continue or new game?". .asm_8308 ld hl, wCurrentScreen inc [hl] xor a ld [wScreenState], a ret InitializeStage: ; 0x8311 ld hl, wc000 ld bc, $0a00 call ClearData ld a, $1 ld [rVBK], a ld a, [$d805] and a jr nz, .asm_8331 ld hl, vBGMap1 ld bc, $0400 ld a, $0 call Func_63e jr .asm_833c .asm_8331 ld hl, vBGMap1 ld bc, $0400 ld a, $8 call Func_63e .asm_833c xor a ld [rVBK], a call Func_8388 ld a, [wCurrentStage] call CallInFollowingTable CallTable_8348: ; 0x8348 ; STAGE_RED_FIELD_TOP dw InitRedField db Bank(InitRedField), $00 ; STAGE_RED_FIELD_BOTTOM dw InitRedField db Bank(InitRedField), $00 dw Func_18000 db Bank(Func_18000), $00 dw Func_18000 db Bank(Func_18000), $00 ; STAGE_BLUE_FIELD_TOP dw InitBlueField db Bank(InitBlueField), $00 ; STAGE_BLUE_FIELD_BOTTOM dw InitBlueField db Bank(InitBlueField), $00 ; STAGE_GENGAR_BONUS dw InitGengarBonusStage db Bank(InitGengarBonusStage), $00 ; STAGE_GENGAR_BONUS dw InitGengarBonusStage db Bank(InitGengarBonusStage), $00 ; STAGE_MEWTWO_BONUS dw InitMewtwoBonusStage db Bank(InitMewtwoBonusStage), $00 ; STAGE_MEWTWO_BONUS dw InitMewtwoBonusStage db Bank(InitMewtwoBonusStage), $00 ; STAGE_MEOWTH_BONUS dw InitMeowthBonusStage db Bank(InitMeowthBonusStage), $00 ; STAGE_MEOWTH_BONUS dw InitMeowthBonusStage db Bank(InitMeowthBonusStage), $00 ; STAGE_DIGLETT_BONUS dw InitDiglettBonusStage db Bank(InitDiglettBonusStage), $00 ; STAGE_DIGLETT_BONUS dw InitDiglettBonusStage db Bank(InitDiglettBonusStage), $00 ; STAGE_SEEL_BONUS dw InitSeelBonusStage db Bank(InitSeelBonusStage), $00 ; STAGE_SEEL_BONUS dw InitSeelBonusStage db Bank(InitSeelBonusStage), $00 Func_8388: ; 0x8388 ld a, [$d7c1] and a jr z, .asm_8398 ld hl, wSubTileBallXPos ld bc, $0037 call ClearData ret .asm_8398 ld a, [wCurrentStage] cp $6 ret nc ld hl, wPartyMons ld bc, $0170 call ClearData ld hl, $d473 ; todo ld bc, $0039 call ClearData ld hl, $d4ad ld bc, $034d call ClearData ret StartBallForStage: ; 0x83ba ld a, [$d7c1] and a jr z, .asm_83c7 call Func_8444 call Func_8461 ret .asm_83c7 xor a ld [wBallXVelocity], a ld [wBallXVelocity + 1], a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld [$d7ae], a ld [$d7af], a ld [$d7b2], a ld [$d7b3], a ld [$d7b0], a ld [$d7b1], a ld [$d7b4], a ld [$d7b5], a ld [wBallSpin], a ld [wBallRotation], a inc a ld [$d548], a ld [$d549], a ld a, $20 ld [$d7ab], a ld a, [wCurrentStage] call CallInFollowingTable CallTable_8404: ; 0x8404 ; STAGE_RED_FIELD_TOP dw StartBallRedField db Bank(StartBallRedField), $00 ; STAGE_RED_FIELD_BOTTOM dw StartBallRedField db Bank(StartBallRedField), $00 dw Func_1804a db Bank(Func_1804a), $00 dw Func_1804a db Bank(Func_1804a), $00 ; STAGE_BLUE_FIELD_TOP dw StartBallBlueField db Bank(StartBallBlueField), $00 ; STAGE_BLUE_FIELD_BOTTOM dw StartBallBlueField db Bank(StartBallBlueField), $00 ; STAGE_GENGAR_BONUS dw StartBallGengarBonusStage db Bank(StartBallGengarBonusStage), $00 ; STAGE_GENGAR_BONUS dw StartBallGengarBonusStage db Bank(StartBallGengarBonusStage), $00 ; STAGE_MEWTWO_BONUS dw StartBallMewtwoBonusStage db Bank(StartBallMewtwoBonusStage), $00 ; STAGE_MEWTWO_BONUS dw StartBallMewtwoBonusStage db Bank(StartBallMewtwoBonusStage), $00 ; STAGE_MEOWTH_BONUS dw StartBallMeowthBonusStage db Bank(StartBallMeowthBonusStage), $00 ; STAGE_MEOWTH_BONUS dw StartBallMeowthBonusStage db Bank(StartBallMeowthBonusStage), $00 ; STAGE_DIGLETT_BONUS dw StartBallDiglettBonusStage db Bank(StartBallDiglettBonusStage), $00 ; STAGE_DIGLETT_BONUS dw StartBallDiglettBonusStage db Bank(StartBallDiglettBonusStage), $00 ; STAGE_SEEL_BONUS dw StartBallSeelBonusStage db Bank(StartBallSeelBonusStage), $00 ; STAGE_SEEL_BONUS dw StartBallSeelBonusStage db Bank(StartBallSeelBonusStage), $00 Func_8444: ; 0x8444 ld a, [wInSpecialMode] and a jr z, .asm_8460 ld a, [wSpecialMode] and a jr nz, .asm_8460 ld a, [$d5bb] and a jr z, .asm_8460 ld [$ff8a], a callba Func_10464 .asm_8460 ret Func_8461: ; 0x8461 ld a, [$d7c0] call SetSongBank ld a, [$d7bf] ld e, a ld d, $0 call PlaySong ret Func_8471: ; 0x8471 ld a, [wCurrentStage] call CallInFollowingTable CallTable_8477: ; 0x8477 ; STAGE_RED_FIELD_TOP dw Func_14000 db Bank(Func_14000), $00 ; STAGE_RED_FIELD_BOTTOM dw Func_1401c db Bank(Func_1401c), $00 dw Func_1805f db Bank(Func_1805f), $00 dw Func_18060 db Bank(Func_18060), $00 ; STAGE_BLUE_FIELD_TOP dw Func_1c165 db Bank(Func_1c165), $00 ; STAGE_BLUE_FIELD_BOTTOM dw Func_1c191 db Bank(Func_1c191), $00 ; STAGE_GENGAR_BONUS dw Func_1818b db Bank(Func_1818b), $00 ; STAGE_GENGAR_BONUS dw Func_1818b db Bank(Func_1818b), $00 ; STAGE_MEWTWO_BONUS dw Func_19310 db Bank(Func_19310), $00 ; STAGE_MEWTWO_BONUS dw Func_19310 db Bank(Func_19310), $00 ; STAGE_MEOWTH_BONUS dw Func_24128 db Bank(Func_24128), $00 ; STAGE_MEOWTH_BONUS dw Func_24128 db Bank(Func_24128), $00 ; STAGE_DIGLETT_BONUS dw Func_19a76 db Bank(Func_19a76), $00 ; STAGE_DIGLETT_BONUS dw Func_19a76 db Bank(Func_19a76), $00 ; STAGE_SEEL_BONUS dw Func_25b97 db Bank(Func_25b97), $00 ; STAGE_SEEL_BONUS dw Func_25b97 db Bank(Func_25b97), $00 Func_84b7: ; 0x84b7 ld a, [wCurrentStage] call CallInFollowingTable PointerTable_84bd: ; 0x84bd ; STAGE_RED_FIELD_TOP dw Func_1755c db Bank(Func_1755c), $00 ; STAGE_RED_FIELD_BOTTOM dw Func_1757e db Bank(Func_1757e), $00 dw Func_18079 db Bank(Func_18079), $00 dw Func_18084 db Bank(Func_18084), $00 ; STAGE_BLUE_FIELD_TOP dw Func_1f330 db Bank(Func_1f330), $00 ; STAGE_BLUE_FIELD_BOTTOM dw Func_1f35a db Bank(Func_1f35a), $00 ; STAGE_GENGAR_BONUS dw Func_18faf db Bank(Func_18faf), $00 ; STAGE_GENGAR_BONUS dw Func_18faf db Bank(Func_18faf), $00 ; STAGE_MEWTWO_BONUS dw Func_1994e db Bank(Func_1994e), $00 ; STAGE_MEWTWO_BONUS dw Func_1994e db Bank(Func_1994e), $00 ; STAGE_MEOWTH_BONUS dw Func_2583b db Bank(Func_2583b), $00 ; STAGE_MEOWTH_BONUS dw Func_2583b db Bank(Func_2583b), $00 ; STAGE_DIGLETT_BONUS dw Func_1ac98 db Bank(Func_1ac98), $00 ; STAGE_DIGLETT_BONUS dw Func_1ac98 db Bank(Func_1ac98), $00 ; STAGE_SEEL_BONUS dw Func_26b7e db Bank(Func_26b7e), $00 ; STAGE_SEEL_BONUS dw Func_26b7e db Bank(Func_26b7e), $00 dr $84fd, $8524 Func_8524: ; 0x8524 ld hl, $d46f ld bc, $0c01 .asm_852a ld a, [hl] swap a and $f call Func_8543 inc de dec b ld a, [hld] and $f call Func_8543 inc de dec b jr nz, .asm_852a ld a, $86 ld [de], a inc de ret Func_8543: ; 0x8543 jr nz, .asm_854c ld a, b dec a jr z, .asm_854c ld a, c and a ret nz .asm_854c add $86 ld [de], a ld c, $0 ld a, b cp $c jr z, .asm_8561 cp $9 jr z, .asm_8561 cp $6 jr z, .asm_8561 cp $3 ret nz .asm_8561 set 7, e ld a, $82 ld [de], a res 7, e ret dr $8569, $8576 AddBCDScore: ; 0x8576 ld h, b ld l, c ld a, [$d477] ld e, a ld d, $d4 ld a, [wBallType] and a jr nz, .asm_8585 inc a .asm_8585 ld b, a jr asm_8592 Func_8588: ; 0x8588 ld h, b ld l, c ld a, [$d477] ld e, a ld d, $d4 ld b, $1 asm_8592: push hl ld a, [de] add [hl] daa ld [de], a inc de inc hl ld a, [de] adc [hl] daa ld [de], a inc de inc hl ld a, [de] adc [hl] daa ld [de], a inc de inc hl ld a, [de] adc [hl] daa ld [de], a inc de inc hl ld a, [de] adc [hl] daa ld [de], a inc de inc hl ld a, [de] adc [hl] daa ld [de], a inc de inc hl ld a, e cp $60 jr nz, .asm_85be ld e, $0 .asm_85be pop hl dec b jr nz, asm_8592 ld a, e ld [$d477], a ret Func_85c7: ; 0x85c7 ld a, [$ffb3] and $3 ret nz ld a, [$d478] ld l, a ld h, $d4 ld de, wScore ld a, [$d477] cp l jr nz, .asm_85de ld [$d479], a .asm_85de push hl ld a, [hli] or [hl] inc hl or [hl] inc hl or [hl] inc hl or [hl] inc hl or [hl] pop hl jr nz, .asm_85f3 ld a, [$d479] ld [$d478], a ret .asm_85f3 ld a, [de] add [hl] daa ld [de], a ld [hl], $0 inc de inc hl ld a, [de] adc [hl] daa ld [de], a ld [hl], $0 inc de inc hl ld a, [de] adc [hl] daa ld [de], a ld [hl], $0 inc de inc hl ld a, [de] adc [hl] daa ld [de], a ld [hl], $0 inc de inc hl ld a, [de] adc [hl] daa ld [de], a ld [hl], $0 inc de inc hl ld a, [de] adc [hl] daa ld [de], a ld [hl], $0 call c, SetMaxScore inc de inc hl ld a, l cp $60 jr nz, .asm_862d ld l, $0 .asm_862d ld a, l ld [$d478], a ld a, $1 ld [$d49f], a ret SetMaxScore: ; 0x8637 push hl ld hl, wScore ld a, $99 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a pop hl ret Func_8645: ; 0x8645 xor a ld [$d49f], a ld de, wcBottomMessageText + $147 call Func_8524 ret Func_8650: ; 0x8650 ld a, [wCurrentStage] bit 0, a jr nz, .bottomStage ld a, $86 ld [$ffa6], a ret .bottomStage ld a, [wBallYPos + 1] cp $84 jr nc, .asm_8670 ld a, [$ffa6] sub $3 cp $86 jr nc, .asm_866d ld a, $86 .asm_866d ld [$ffa6], a ret .asm_8670 ld a, [$ffa6] add $3 cp $90 jr c, .asm_867a ld a, $90 .asm_867a ld [$ffa6], a ret StartTimer: ; 0x867d ; Starts the timer that counts down with the specified starting time when things ; like CatchEm Mode starts. ; input: b = minutes ; c = seconds ld a, c ld [wTimerSeconds], a ld a, b ld [wTimerMinutes], a xor a ld [wTimerFrames], a ld [$d57e], a ld [$d57f], a ld a, $1 ld [$d57d], a ld a, $1 ld [$d580], a ld [$ff8a], a callba Func_1404a ret Func_86a4: ; 0x86a4 ld a, [$d57f] and a ret nz ld a, [wTimerFrames] inc a cp $3c jr c, .asm_86b2 xor a .asm_86b2 ld [wTimerFrames], a ret c ld hl, wTimerMinutes ld a, [hld] or [hl] jr nz, .asm_86c3 ld a, $1 ld [$d57e], a ret .asm_86c3 ld a, [hl] sub $1 daa jr nc, .asm_86cb ld a, $59 .asm_86cb ld [hli], a ld a, [hl] sbc $0 daa ld [hl], a ret Func_86d2: ; 0x86d2 xor a ld [$d57d], a ret HandleInGameMenu: ; 0x86d7 ; Routine responsible for the "SAVE"/"CANCEL" menu. ld a, [$d917] push af ld a, $1 ld [$d917], a call Func_30e8 xor a ld [$d4aa], a ld hl, wcBottomMessageText ld a, $81 ld b, $30 .clearLoop ld [hli], a ld [hli], a ld [hli], a ld [hli], a dec b jr nz, .clearLoop ld de, wcBottomMessageText + $24 ld hl, SaveText call Func_8797 ld de, wcBottomMessageText + $64 ld hl, CancelText call Func_8797 ld a, Bank(InGameMenuSymbolsGfx) ld hl, InGameMenuSymbolsGfx ld de, vTiles1 + $60 ld bc, $0010 call LoadVRAMData ld a, $0 ld hl, wcBottomMessageText ld de, vBGMap1 ld bc, $00c0 call LoadVRAMData ld a, $60 ld [$ffa6], a dec a ld [$ffa2], a ld a, $fd ld [$ffaf], a call HandleInGameMenuSelection ld a, [wInGameMenuIndex] and a jr nz, .pickedCancel ld a, $1 ld [$d7c2], a ld hl, wPartyMons ld de, $a268 ld bc, $04c3 call SaveData xor a ld [$d803], a ld [$d804], a .pickedCancel ld bc, $003c call Func_93f ld a, $86 ld [$ffa6], a ld a, $83 ld [$ffa2], a ld [$ffa8], a ld a, $ff ld [$ffaf], a ld a, [hGameBoyColorFlag] and a jr nz, .asm_8778 ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy) ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoy + $60 ld de, vTiles1 + $60 ld bc, $0010 call LoadVRAMData jr .asm_8786 .asm_8778 ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor) ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + $60 ld de, vTiles1 + $60 ld bc, $0010 call LoadVRAMData .asm_8786 call Func_30e8 pop af ld [$d917], a ld a, $1 ld [$d4aa], a ld a, [wInGameMenuIndex] and a ret Func_8797: ; 0x8797 ld a, [hli] and a ret z add $bf ld [de], a inc de jr Func_8797 SaveText: ; 0x87a0 db "SAVE@" CancelText: ; 0x87a5 db "CANCEL@" HandleInGameMenuSelection: ; 0x87ac ld a, $1 ld [wInGameMenuIndex], a .waitForAButton call MoveInGameMenuCursor call DrawInGameMenu rst AdvanceFrame ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .waitForAButton ld de, $0001 call PlaySoundEffect ret MoveInGameMenuCursor: ; 0x87c5 ; Moves the cursor up or down in the "SAVE"/"CANCEL" in-game menu ld a, [hNewlyPressedButtons] ld b, a ld a, [wInGameMenuIndex] bit BIT_D_UP, b jr z, .didntPressUp and a ; is the cursor already on "SAVE"? ret z dec a ld [wInGameMenuIndex], a ld de, $0003 call PlaySoundEffect ret .didntPressUp bit BIT_D_DOWN, b ret z cp $1 ; is the cursor already on "CANCEL"? ret z inc a ld [wInGameMenuIndex], a ld de, $0003 call PlaySoundEffect ret DrawInGameMenu: ; 0x87ed ld a, $81 ld [wcBottomMessageText + $23], a ld [wcBottomMessageText + $63], a ld a, [wInGameMenuIndex] ld c, a swap c sla c sla c ld b, $0 ld hl, wcBottomMessageText + $23 add hl, bc ld a, $86 ld [hl], a ld a, $0 ld hl, wcBottomMessageText ld de, vBGMap1 ld bc, $00c0 call LoadVRAMData ret Data_8817: ; 0x8817 ; This data has something to do with collisions. db $C0 db $C5 db $D0 db $DB db $E0 db $E5 db $F0 db $FB db $00 db $05 db $10 db $1B db $20 db $25 db $30 db $3B db $45 db $CA db $D5 db $E0 db $E5 db $EA db $F5 db $00 db $05 db $0A db $15 db $20 db $25 db $2A db $35 db $40 db $50 db $55 db $E0 db $EB db $F0 db $F5 db $00 db $0B db $10 db $15 db $20 db $2B db $30 db $35 db $40 db $4B db $5B db $60 db $6B db $F6 db $FB db $00 db $0B db $16 db $1B db $20 db $2B db $36 db $3B db $40 db $4B db $56 db $60 db $65 db $70 db $7B db $00 db $05 db $10 db $1B db $20 db $25 db $30 db $3B db $40 db $45 db $50 db $5B db $65 db $6A db $75 db $80 db $85 db $0A db $15 db $20 db $25 db $2A db $35 db $40 db $45 db $4A db $55 db $60 db $70 db $75 db $80 db $8B db $90 db $95 db $20 db $2B db $30 db $35 db $40 db $4B db $50 db $55 db $60 db $6B db $7B db $80 db $8B db $96 db $9B db $A0 db $AB db $36 db $3B db $40 db $4B db $56 db $5B db $60 db $6B db $76 db $80 db $85 db $90 db $9B db $A0 db $A5 db $B0 db $BB db $40 db $45 db $50 db $5B db $60 db $65 db $70 db $7B db $85 db $8A db $95 db $A0 db $A5 db $AA db $B5 db $C0 db $C5 db $4A db $55 db $60 db $65 db $6A db $75 db $80 db $90 db $95 db $A0 db $AB db $B0 db $B5 db $C0 db $CB db $D0 db $D5 db $60 db $6B db $70 db $75 db $80 db $8B db $9B db $A0 db $AB db $B6 db $BB db $C0 db $CB db $D6 db $DB db $E0 db $EB db $76 db $7B db $80 db $8B db $96 db $A0 db $A5 db $B0 db $BB db $C0 db $C5 db $D0 db $DB db $E0 db $E5 db $F0 db $FB db $80 db $85 db $90 db $9B db $A5 db $AA db $B5 db $C0 db $C5 db $CA db $D5 db $E0 db $E5 db $EA db $F5 db $00 db $05 db $8A db $95 db $A0 db $B0 db $B5 db $C0 db $CB db $D0 db $D5 db $E0 db $EB db $F0 db $F5 db $00 db $0B db $10 db $15 db $A0 db $AB db $BB db $C0 db $CB db $D6 db $DB db $E0 db $EB db $F6 db $FB db $00 db $0B db $16 db $1B db $20 db $2B db $B6 Data_8917: ; 0x8917 ; This has to do with y-collision data dw $0000 dw $FFE0 dw $FF81 dw $FEDE dw $FE77 dw $FE00 dw $FCCC dw $FB87 dw $FB01 dw $FA8E dw $F9F8 dw $FA1F dw $FA77 dw $FAFC dw $FCAD dw $FEE7 dw $0119 dw $FFC2 dw $FF70 dw $FEE4 dw $FE8C dw $FE24 dw $FD15 dw $FBF9 dw $FB87 dw $FB27 dw $FAB9 dw $FB03 dw $FB69 dw $FBFA dw $FDBD dw $0000 dw $0353 dw $045D dw $FF4B dw $FF01 dw $FECC dw $FE8A dw $FDD5 dw $FD15 dw $FCCC dw $FC94 dw $FC77 dw $FD03 dw $FD81 dw $FE24 dw $0000 dw $0243 dw $0504 dw $05F6 dw $07B4 dw $FF08 dw $FEFB dw $FEE2 dw $FE8A dw $FE24 dw $FE00 dw $FDEC dw $FE10 dw $FEC9 dw $FF54 dw $0000 dw $01DC dw $0406 dw $0589 dw $066D dw $0808 dw $08E7 dw $FF00 dw $FEFB dw $FECC dw $FE8C dw $FE77 dw $FE71 dw $FEAD dw $FF73 dw $0000 dw $00AC dw $027F dw $0497 dw $05E1 dw $06B6 dw $082C dw $08E1 dw $08E7 dw $FF08 dw $FF01 dw $FEE4 dw $FEDE dw $FEE3 dw $FF32 dw $0000 dw $008D dw $0137 dw $02FD dw $04FD dw $0608 dw $06B8 dw $07D4 dw $082C dw $0808 dw $07B4 dw $FF4B dw $FF70 dw $FF81 dw $FF99 dw $0000 dw $00CE dw $0153 dw $01F0 dw $0389 dw $0547 dw $0572 dw $05F8 dw $06B8 dw $06B6 dw $066D dw $05F6 dw $045D dw $FFC2 dw $FFE0 dw $0000 dw $0067 dw $011D dw $018F dw $0214 dw $036C dw $04D9 dw $04FF dw $0572 dw $0608 dw $05E1 dw $0589 dw $0504 dw $0353 dw $0119 dw $0000 dw $0020 dw $007F dw $0122 dw $0189 dw $0200 dw $0334 dw $0479 dw $0479 dw $04D9 dw $0547 dw $04FD dw $0497 dw $0406 dw $0243 dw $0000 dw $FEE7 dw $003E dw $0090 dw $011C dw $0174 dw $01DC dw $02EB dw $0407 dw $0334 dw $036C dw $0389 dw $02FD dw $027F dw $01DC dw $0000 dw $FDBD dw $FCAD dw $FBA3 dw $00B5 dw $00FF dw $0134 dw $0176 dw $022B dw $02EB dw $0200 dw $0214 dw $01F0 dw $0137 dw $00AC dw $0000 dw $FE24 dw $FBFA dw $FAFC dw $FA0A dw $F84C dw $00F8 dw $0105 dw $011E dw $0176 dw $01DC dw $0189 dw $018F dw $0153 dw $008D dw $0000 dw $FF54 dw $FD81 dw $FB69 dw $FA77 dw $F993 dw $F7F8 dw $F719 dw $0100 dw $0105 dw $0134 dw $0174 dw $0122 dw $011D dw $00CE dw $0000 dw $FF73 dw $FEC9 dw $FD03 dw $FB03 dw $FA1F dw $F94A dw $F7D4 dw $F71F dw $F719 dw $00F8 dw $00FF dw $011C dw $007F dw $0067 dw $0000 dw $FF32 dw $FEAD dw $FE10 dw $FC77 dw $FAB9 dw $F9F8 dw $F948 dw $F82C dw $F7D4 dw $F7F8 dw $F84C dw $00B5 dw $0090 dw $0020 dw $0000 dw $FF99 dw $FEE3 dw $FE71 dw $FDEC dw $FC94 dw $FB27 dw $FA8E dw $FA08 dw $F948 dw $F94A dw $F993 dw $FA0A dw $FBA3 dw $003E Data_8b17: ; 0x8b17 ; This data has to do with x-collision data dw $FF00 dw $FEFB dw $FECC dw $FE8C dw $FE77 dw $FE71 dw $FEAD dw $FF73 dw $0000 dw $00AC dw $027F dw $0497 dw $0589 dw $066D dw $0808 dw $08E7 dw $08E7 dw $FF08 dw $FF01 dw $FEE4 dw $FEDE dw $FEE3 dw $FF32 dw $0000 dw $008D dw $0137 dw $02FD dw $04FD dw $05E1 dw $06B6 dw $082C dw $08E1 dw $0808 dw $07B4 dw $FF4B dw $FF70 dw $FF81 dw $FF99 dw $0000 dw $00CE dw $0153 dw $01F0 dw $0389 dw $0547 dw $0608 dw $06B8 dw $07D4 dw $082C dw $066D dw $05F6 dw $045D dw $FFC2 dw $FFE0 dw $0000 dw $0067 dw $011D dw $018F dw $0214 dw $036C dw $04D9 dw $0572 dw $05F8 dw $06B8 dw $06B6 dw $0589 dw $0504 dw $0353 dw $0119 dw $0000 dw $0020 dw $007F dw $0122 dw $0189 dw $0200 dw $0334 dw $0479 dw $04FF dw $0572 dw $0608 dw $05E1 dw $0497 dw $0406 dw $0243 dw $0000 dw $FEE7 dw $003E dw $0090 dw $011C dw $0174 dw $01DC dw $02EB dw $0407 dw $0479 dw $04D9 dw $0547 dw $04FD dw $027F dw $01DC dw $0000 dw $FDBD dw $FCAD dw $FBA3 dw $00B5 dw $00FF dw $0134 dw $0176 dw $022B dw $02EB dw $0334 dw $036C dw $0389 dw $02FD dw $00AC dw $0000 dw $FE24 dw $FBFA dw $FAFC dw $FA0A dw $F84C dw $00F8 dw $0105 dw $011E dw $0176 dw $01DC dw $0200 dw $0214 dw $01F0 dw $0137 dw $0000 dw $FF54 dw $FD81 dw $FB69 dw $FA77 dw $F993 dw $F7F8 dw $F719 dw $0100 dw $0105 dw $0134 dw $0174 dw $0189 dw $018F dw $0153 dw $008D dw $FF73 dw $FEC9 dw $FD03 dw $FB03 dw $FA1F dw $F94A dw $F7D4 dw $F71F dw $F719 dw $00F8 dw $00FF dw $011C dw $0122 dw $011D dw $00CE dw $0000 dw $FEAD dw $FE10 dw $FC77 dw $FAB9 dw $F9F8 dw $F948 dw $F82C dw $F7D4 dw $F7F8 dw $F84C dw $00B5 dw $0090 dw $007F dw $0067 dw $0000 dw $FF32 dw $FE71 dw $FDEC dw $FC94 dw $FB27 dw $FA8E dw $FA08 dw $F948 dw $F94A dw $F993 dw $FA0A dw $FBA3 dw $003E dw $0020 dw $0000 dw $FF99 dw $FEE3 dw $FE77 dw $FE00 dw $FCCC dw $FB87 dw $FB01 dw $FA8E dw $F9F8 dw $FA1F dw $FA77 dw $FAFC dw $FCAD dw $FEE7 dw $0000 dw $FFE0 dw $FF81 dw $FEDE dw $FE8C dw $FE24 dw $FD15 dw $FBF9 dw $FB87 dw $FB27 dw $FAB9 dw $FB03 dw $FB69 dw $FBFA dw $FDBD dw $0000 dw $0119 dw $FFC2 dw $FF70 dw $FEE4 dw $FECC dw $FE8A dw $FDD5 dw $FD15 dw $FCCC dw $FC94 dw $FC77 dw $FD03 dw $FD81 dw $FE24 dw $0000 dw $0243 dw $0353 dw $045D dw $FF4B dw $FF01 dw $FEFB dw $FEE2 dw $FE8A dw $FE24 dw $FE00 dw $FDEC dw $FE10 dw $FEC9 dw $FF54 dw $0000 dw $01DC dw $0406 dw $0504 dw $05F6 dw $07B4 dw $FF08 Func_8d17: ; 0x8d17 ld a, [$ff92] cp $80 jp c, Func_8e01 ld a, [$ff90] ld c, a ld a, [$ff91] ld b, a ld a, [$ff93] ld l, a ld h, $0 add hl, bc ld a, [$ff8e] cp h jr nz, .asm_8d32 ld a, [$ff8d] cp l .asm_8d32 jr nc, .asm_8d5c ld a, [$ff8d] ld [$ff90], a ld a, [$ff8e] ld [$ff91], a ld a, [$ff8d] ld c, a ld a, [$ff8e] ld b, a ld a, [$ff8c] ld l, a ld h, $0 add hl, bc ld a, l ld [$ff8d], a ld a, h ld [$ff8e], a srl h rr l srl h rr l ld a, [$ff8f] cp l jp c, Func_8df7 .asm_8d5c ld a, [$ff90] and $f8 ld c, a ld a, [$ff91] ld b, a sla c rl b sla c rl b ld hl, $c010 add hl, bc ld d, h ld e, l ld a, [$ff92] swap a ld c, a and $f ld b, a ld a, c and $f0 ld c, a sla c rl b ld hl, PokedexCharactersGfx add hl, bc push hl ld a, [$ff90] and $7 ld c, a ld b, $0 ld hl, Data_8df9 add hl, bc ld a, [hl] ld [$d85e], a cpl ld [$d85f], a ld a, c add $58 ld b, a pop hl push hl ld c, $10 .asm_8da2 push bc ld a, [hli] ld c, a ld a, [bc] ld c, a ld a, [$d85e] and c ld c, a ld a, [$d860] ld b, a ld a, [de] xor b or c xor b ld [de], a inc de ld a, [de] xor b or c xor b ld [de], a inc de inc hl pop bc dec c jr nz, .asm_8da2 pop hl ld c, $10 .asm_8dc4 push bc ld a, [hli] ld c, a ld a, [bc] ld c, a ld a, [$d85f] and c ld c, a ld a, [$d860] ld b, a ld a, [de] xor b or c xor b ld [de], a inc de ld a, [de] xor b or c xor b ld [de], a inc de inc hl pop bc dec c jr nz, .asm_8dc4 ld a, [$ff90] ld c, a ld a, [$ff91] ld b, a ld a, [$ff93] ld l, a ld h, $0 add hl, bc ld a, l ld [$ff90], a ld a, h ld [$ff91], a and a ret Func_8df7: ; 0x8df7 scf ret Data_8df9: ; 0x8df9 db $FF, $7F, $3F, $1F, $0F, $07, $03, $01 Func_8e01: ; 0x8e01 ld a, [$ff90] ld c, a ld a, [$ff91] ld b, a ld a, [$ff93] ld l, a ld h, $0 add hl, bc ld a, [$ff8e] cp h jr nz, .asm_8e15 ld a, [$ff8d] cp l .asm_8e15 jr nc, .asm_8e3f ld a, [$ff8d] ld [$ff90], a ld a, [$ff8e] ld [$ff91], a ld a, [$ff8d] ld c, a ld a, [$ff8e] ld b, a ld a, [$ff8c] ld l, a ld h, $0 add hl, bc ld a, l ld [$ff8d], a ld a, h ld [$ff8e], a srl h rr l srl h rr l ld a, [$ff8f] cp l jp c, Func_8ed6 .asm_8e3f ld a, [$ff90] and $f8 ld c, a ld a, [$ff91] ld b, a sla c rl b ld hl, $c010 add hl, bc ld d, h ld e, l ld a, [$ff92] swap a ld c, a and $f ld b, a ld a, c and $f0 ld c, a sla c rl b ld hl, PokedexCharactersGfx + $8 add hl, bc push hl ld a, [$ff90] and $7 ld c, a ld b, $0 ld hl, Data_8ed8 add hl, bc ld a, [hl] ld [$d85e], a cpl ld [$d85f], a ld a, c add $58 ld b, a pop hl push hl ld c, $8 .asm_8e81 push bc ld a, [hli] ld c, a ld a, [bc] ld c, a ld a, [$d85e] and c ld c, a ld a, [$d860] ld b, a ld a, [de] xor b or c xor b ld [de], a inc de ld a, [de] xor b or c xor b ld [de], a inc de inc hl pop bc dec c jr nz, .asm_8e81 pop hl ld c, $8 .asm_8ea3 push bc ld a, [hli] ld c, a ld a, [bc] ld c, a ld a, [$d85f] and c ld c, a ld a, [$d860] ld b, a ld a, [de] xor b or c xor b ld [de], a inc de ld a, [de] xor b or c xor b ld [de], a inc de inc hl pop bc dec c jr nz, .asm_8ea3 ld a, [$ff90] ld c, a ld a, [$ff91] ld b, a ld a, [$ff93] ld l, a ld h, $0 add hl, bc ld a, l ld [$ff90], a ld a, h ld [$ff91], a and a ret Func_8ed6: ; 0x8ed6 scf ret Data_8ed8: ; 0x8ed8 db $FF, $7F, $3F, $1F, $0F, $07, $03, $01 Func_8ee0: ; 0x8ee0 ld a, [$ff8d] ld [$ff90], a ld a, [$ff8e] ld [$ff91], a ld a, [$ff8d] ld c, a ld a, [$ff8e] ld b, a ld a, [$ff8c] ld l, a ld h, $0 add hl, bc ld a, l ld [$ff8d], a ld a, h ld [$ff8e], a srl h rr l srl h rr l ld a, [$ff8f] cp l ret dr $8f06, $a000 PokedexCharactersGfx: ; 0xa000 INCBIN "gfx/pokedex/characters.interleave.2bpp" SECTION "bank3", ROMX, BANK[$3] HandleTitlescreen: ; 0xc000 ld a, [wScreenState] rst JumpTable ; calls JumpToFuncInTable TitlescreenFunctions: ; 0xc004 dw FadeInTitlescreen dw TitlescreenLoop ; titlescreen loop dw Func_c10e ; previously saved game menu dw Func_c1cb ; game start, pokedex, option dw GoToHighScoresFromTitlescreen ; go to high scores FadeInTitlescreen: ; 0xc00e ld a, $43 ld [$ff9e], a ld a, $e4 ld [$d80c], a ld a, $d2 ld [$d80d], a ld a, $e1 ld [$d80e], a xor a ld [hBoardXShift], a ld [hBoardYShift], a ld hl, TitlescreenFadeInGfxPointers ld a, [hGameBoyColorFlag] call LoadVideoData ld a, $1 ld [wTitleScreenGameStartCursorSelection], a call ClearOAMBuffer ld a, $2 ld [wTitleScreenPokeballAnimationCounter], a call HandleTitlescreenAnimations call Func_b66 ld a, $11 call SetSongBank ld de, $0004 call PlaySong call Func_588 call Func_bbe ; this does the fading ld hl, wScreenState inc [hl] ret TitlescreenFadeInGfxPointers: ; 0xc057 dw TitlescreenFadeInGfx_GameBoy dw TitlescreenFadeInGfx_GameBoyColor TitlescreenFadeInGfx_GameBoy: ; 0xc05b VIDEO_DATA_TILES TitlescreenGfx, vTiles0, $1800 VIDEO_DATA_TILEMAP TitlescreenTilemap, vBGMap0, $240 db $FF, $FF ; terminators TitlescreenFadeInGfx_GameBoyColor: ; 0xc06b VIDEO_DATA_TILES TitlescreenFadeInGfx, vTiles0, $1800 VIDEO_DATA_TILEMAP TitlescreenTilemap, vBGMap0, $240 VIDEO_DATA_BGATTR TitlescreenBGAttributes, vBGMap0, $240 VIDEO_DATA_PALETTES TitlescreenPalettes, $80 db $FF, $FF ; terminators TitlescreenLoop: ; 0xc089 call Func_c0ee call HandleTitlescreenAnimations ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a ; was A button pressed? jr z, .AButtonNotPressed ld a, [wTitleScreenCursorSelection] and a jr nz, .asm_c0d3 ; player chose "Game Start" ld a, [$d7c2] ; if this is non-zero, the main menu will prompt for "continue or new game?". and a jr z, .noPreviouslySavedGame ld de, $0001 call PlaySoundEffect xor a ld [$d910], a ld a, $2 ld [$d911], a ld a, $1 ld [wTitleScreenGameStartCursorSelection], a ld hl, wScreenState inc [hl] ret .noPreviouslySavedGame ld de, $0000 call PlaySong rst AdvanceFrame ld de, $0027 call PlaySoundEffect ld bc, $0037 call Func_93f ld a, $3 ld [wScreenState], a ret .asm_c0d3 ld de, $0001 call PlaySoundEffect ld a, $3 ld [wScreenState], a ret .AButtonNotPressed bit BIT_B_BUTTON, a ; was B button pressed? ret z ld de, $0001 call PlaySoundEffect ld a, $4 ld [wScreenState], a ret Func_c0ee: ; 0xc0ee ld hl, wTitleScreenCursorSelection ld c, $2 call Func_c1fc ret HandleTitlescreenAnimations: ; 0xc0f7 ld a, [hGameBoyColorFlag] and a jr z, .asm_c104 ld bc, $2040 ld a, $62 ; seemingly-unused OAM data for titlescreen. It's just blank tiles. call LoadOAMData .asm_c104 call Func_c21d ; does nothing... call HandleTitlescreenPikachuBlinkingAnimation call HandleTitlescreenPokeballAnimation ret Func_c10e: ; 0xc10e call Func_c1a2 call Func_c1b1 ld a, [$d910] cp $6 ret nz ld a, [hNewlyPressedButtons] bit 0, a jr z, .asm_c17c ld de, $0000 call PlaySong rst AdvanceFrame ld de, $0027 call PlaySoundEffect ld bc, $0041 call Func_93f ld a, [wTitleScreenGameStartCursorSelection] and a jr z, .asm_c177 call Func_cb5 call Func_576 ld a, [$d7c2] and a jr z, .asm_c173 ld hl, $a268 ld de, wPartyMons ld bc, $04c3 call Func_f0c jr nc, .asm_c173 xor a ld [$d7c2], a ld hl, wPartyMons ld de, $a268 ld bc, $04c3 call SaveData ld a, $1 ld [$d7c1], a ld a, $4 ld [wCurrentScreen], a ld a, $0 ld [wScreenState], a ret .asm_c173 xor a ld [$d7c1], a .asm_c177 ld hl, wScreenState inc [hl] ret .asm_c17c bit 1, a ret z ld de, $0001 call PlaySoundEffect ld a, $8 ld [$d910], a ld a, $2 ld [$d911], a .asm_c18f call Func_926 rst AdvanceFrame call Func_c1b1 ld a, [$d910] cp $e jr nz, .asm_c18f ld hl, wScreenState dec [hl] ret Func_c1a2: ; 0xc1a2 ld a, [$d910] cp $6 ret nz ld hl, wTitleScreenGameStartCursorSelection ld c, $1 call Func_c1fc ret Func_c1b1: ; 0xc1b1 call Func_c2df ld a, [hGameBoyColorFlag] and a jr z, .asm_c1c1 ld bc, $2040 ld a, $62 call LoadOAMData .asm_c1c1 call Func_c21d call HandleTitlescreenPikachuBlinkingAnimation call HandleTitlescreenPokeballAnimation ret Func_c1cb: ; 0c1cb call Func_cb5 call Func_576 ld a, [wTitleScreenCursorSelection] ld c, a ld b, $0 ld hl, Data_c1e4 add hl, bc ld a, [hl] ld [wCurrentScreen], a xor a ld [wScreenState], a ret Data_c1e4: ; 0xc1e4 db SCREEN_FIELD_SELECT, SCREEN_POKEDEX, SCREEN_OPTIONS GoToHighScoresFromTitlescreen: ; 0xc1e7 call Func_cb5 call Func_576 ld a, SCREEN_HIGH_SCORES ld [wCurrentScreen], a ld a, $1 ld [wScreenState], a xor a ld [$da7f], a ret Func_c1fc: ; 0xc1fc ld a, [hPressedButtons] ld b, a ld a, [hl] bit 6, b jr z, .asm_c20f and a ret z dec a ld [hl], a ld de, $0003 call PlaySoundEffect ret .asm_c20f bit 7, b ret z cp c ret z inc a ld [hl], a ld de, $0003 call PlaySoundEffect ret Func_c21d: ; 0xc21d ; World's greatest function. ret HandleTitlescreenPikachuBlinkingAnimation: ; 0xc21e ld a, [wTitleScreenBlinkAnimationFrame] sla a ld c, a ld b, $0 ld hl, TitleScreenBlinkAnimation add hl, bc ld bc, $3810 ld a, [hl] cp $5a ; blink animation frame 1 OAM id call nz, LoadOAMData ld a, [wTitleScreenBlinkAnimationCounter] dec a jr nz, .done inc hl inc hl ; hl points to next frame in TitleScreenBlinkAnimation array ld a, [hl] and a ; reached the end of the animation frames? jr z, .saveAnimationFrame ld a, [wTitleScreenBlinkAnimationFrame] inc a .saveAnimationFrame ld [wTitleScreenBlinkAnimationFrame], a sla a ld c, a ld b, $0 ld hl, (TitleScreenBlinkAnimation + 1) add hl, bc ld a, [hl] ; a contains second byte in the current animation frame data cp $3c ; is this a long-duration animation frame? jr c, .done ld c, a call GenRandom and $1f add c .done ld [wTitleScreenBlinkAnimationCounter], a ret TitleScreenBlinkAnimation: ; 0xc25f ; Array of animation frames. The animation is looped when it finishes. ; first byte = OAM data id to load ; second byte = number of frames to show this animation. db $5a, $c8 db $5b, $04 db $5c, $04 db $5b, $04 db $5a, $3c db $5b, $03 db $5c, $03 db $5b, $03 db $5a, $03 db $5b, $03 db $5c, $03 db $5b, $03 db $00 ; terminator HandleTitlescreenPokeballAnimation: ; 0xc278 ld a, [wTitleScreenCursorSelection] sla a ld c, a ld b, $0 ld hl, TitleScreenPokeballCoordOffsets add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld e, $0 ld a, [wScreenState] ; TODO: I think this is the "titlescreen state" byte. cp $1 jr nz, .loadOAM ; skip getting the correct animation frame ld a, [wTitleScreenBouncingBallAnimationFrame] sla a ld e, a .loadOAM ld d, $0 ld hl, TitleScreenPokeballAnimation add hl, de ld a, [hl] ; a contains OAM id call LoadOAMData ld a, [wTitleScreenPokeballAnimationCounter] dec a jr nz, .done ld a, [wTitleScreenBouncingBallAnimationFrame] sla a ld c, a ld b, $0 ld hl, (TitleScreenPokeballAnimation + 2) ; first frame of actual animation add hl, bc ld a, [hl] and a jr z, .saveAnimationFrame ; end of list? ld a, [wTitleScreenBouncingBallAnimationFrame] inc a .saveAnimationFrame ld [wTitleScreenBouncingBallAnimationFrame], a sla a ld c, a ld b, $0 ld hl, (TitleScreenPokeballAnimation + 1) ; first duration add hl, bc ld a, [hl] .done ld [wTitleScreenPokeballAnimationCounter], a ret TitleScreenPokeballAnimation: ; 0xc2cc ; first byte = OAM id ; second byte = animation frame duration db $5D, $02 db $5E, $06 db $5F, $02 db $60, $04 db $61, $06 db $5F, $04 db $00 ; terminator TitleScreenPokeballCoordOffsets: ; 0xc2d9 db $67, $15 db $73, $15 db $7F, $15 Func_c2df: ; 0xc2df ld bc, $4446 ; pixel offsets, not data ld a, [$d910] cp $6 jr nz, .asm_c2f0 ld a, [wTitleScreenGameStartCursorSelection] add $58 jr .asm_c2fd .asm_c2f0 ld a, [$d910] sla a ld e, a ld d, $0 ld hl, Data_c32b add hl, de ld a, [hl] .asm_c2fd call LoadOAMData ld a, [$d911] dec a jr nz, .asm_c327 ld a, [$d910] sla a ld c, a ld b, $0 ld hl, Data_c32b + 2 add hl, bc ld a, [hl] and a ld a, [$d910] jr z, .asm_c31d inc a ld [$d910], a .asm_c31d sla a ld c, a ld b, $0 ld hl, Data_c32b + 1 add hl, bc ld a, [hl] .asm_c327 ld [$d911], a ret Data_c32b: ; 0xc32b db $52, $02 db $53, $02 db $54, $02 db $55, $02 db $56, $02 db $57, $02 db $57, $02 db $00, $00 db $57, $02 db $56, $02 db $55, $02 db $54, $02 db $53, $02 db $52, $02 db $52, $02 db $00 HandleOptionsScreen: ; 0xc34a ld a, [wScreenState] rst JumpTable ; calls JumpToFuncInTable OptionsScreenFunctions: ; 0xc34e dw Func_c35a dw Func_c400 dw Func_c483 dw Func_c493 dw Func_c506 dw Func_c691 Func_c35a: ; 0xc35a ld a, $47 ld [$ff9e], a ld a, $e4 ld [$d80c], a ld [$d80d], a ld a, $d2 ld [$d80e], a xor a ld [hBoardXShift], a ld [hBoardYShift], a ld hl, OptionsScreenVideoDataPointers ld a, [hGameBoyColorFlag] call LoadVideoData call ClearOAMBuffer ld a, $2 ld [$d921], a ld [$d91d], a ld a, $9 ld [$d91f], a call Func_c43a call Func_c948 call Func_b66 ld a, $12 call SetSongBank ld de, $0002 call PlaySong call Func_588 ld a, [wSoundTestCurrentBackgroundMusic] ld hl, $9967 call RedrawSoundTestID ld a, [wSoundTextCurrentSoundEffect] ld hl, $99a7 call RedrawSoundTestID call Func_bbe ld hl, wScreenState inc [hl] ret OptionsScreenVideoDataPointers: ; 0xc3b9 dw OptionsScreenVideoData_GameBoy dw OptionsScreenVideoData_GameBoyColor OptionsScreenVideoData_GameBoy: ; 0xc3bd VIDEO_DATA_TILES OptionMenuAndKeyConfigGfx, vTiles0, $1400 VIDEO_DATA_TILEMAP OptionMenuTilemap, vBGMap0, $240 VIDEO_DATA_TILEMAP OptionMenuTilemap2, vBGMap1, $240 db $FF, $FF ; terminators OptionsScreenVideoData_GameBoyColor: ; 0xc3d4 VIDEO_DATA_TILES OptionMenuAndKeyConfigGfx, vTiles0, $1400 VIDEO_DATA_TILEMAP OptionMenuTilemap, vBGMap0, $240 VIDEO_DATA_TILEMAP_BANK2 OptionMenuTilemap3, vBGMap0, $240 VIDEO_DATA_TILEMAP OptionMenuTilemap2, vBGMap1, $240 VIDEO_DATA_TILEMAP_BANK2 OptionMenuTilemap4, vBGMap1, $240 VIDEO_DATA_PALETTES OptionMenuPalettes, $80 db $FF, $FF ; terminators Func_c400: ; 0xc400 call Func_c41a call Func_c43a call Func_c447 ld a, [hNewlyPressedButtons] bit 1, a ret z ld de, $0001 call PlaySoundEffect ld a, $2 ld [wScreenState], a ret Func_c41a: ; 0xc41a ld a, [hPressedButtons] ld b, a ld a, [$d916] bit 6, b jr z, .asm_c429 and a ret z dec a jr .asm_c430 .asm_c429 bit 7, b ret z cp $2 ret z inc a .asm_c430 ld [$d916], a ld de, $0003 call PlaySoundEffect ret Func_c43a: ; 0xc43a call Func_c7ac call Func_c80b call Func_c88a call Func_c92e ret Func_c447: ; 0xc447 ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a ret z ld de, $0001 call PlaySoundEffect ld a, [$d916] and a jr nz, .asm_c465 ld a, [$fffb] and a ret nz call Func_c4f4 ld a, $3 ld [wScreenState], a ret .asm_c465 cp $1 jr nz, .asm_c477 call ClearOAMBuffer ld hl, $ff9e set 3, [hl] ld a, $4 ld [wScreenState], a ret .asm_c477 ld de, $0000 call PlaySong ld a, $5 ld [wScreenState], a ret Func_c483: ; 0xc483 call Func_cb5 call Func_576 ld a, SCREEN_TITLESCREEN ld [wCurrentScreen], a xor a ld [wScreenState], a ret Func_c493: ; 0xc493 call Func_c4b4 call Func_c4e6 call Func_c869 ld a, [hNewlyPressedButtons] bit BIT_B_BUTTON, a ret z ld de, $0001 call PlaySoundEffect xor a ld [$d803], a ld [$d804], a ld a, $1 ld [wScreenState], a ret Func_c4b4: ; 0xc4b4 ld a, [hNewlyPressedButtons] ld b, a ld a, [$d917] bit BIT_D_LEFT, b jr z, .asm_c4ce and a ret z dec a ld [$d917], a call Func_c4f4 ld de, $0003 call PlaySoundEffect ret .asm_c4ce bit BIT_D_RIGHT, b ret z cp $1 ret z inc a ld [$d917], a xor a ld [$d803], a ld [$d804], a ld de, $0003 call PlaySoundEffect ret Func_c4e6: ; 0xc4e6 call Func_c7ac call Func_c80b call Func_c88a xor a call Func_c8f1 ret Func_c4f4: ; 0xc4f4 xor a ld [$d91c], a ld [$d91e], a ld a, $2 ld [$d91d], a ld a, $9 ld [$d91f], a ret Func_c506: ; 0xc506 call Func_c534 call Func_c554 call Func_c55a ld a, [hNewlyPressedButtons] bit BIT_B_BUTTON, a ret z ld de, $0001 call PlaySoundEffect call ClearOAMBuffer ld hl, $ff9e res 3, [hl] ld hl, wKeyConfigBallStart ld de, $a244 ld bc, $000e call SaveData ld a, $1 ld [wScreenState], a ret Func_c534: ; 0xc534 ld a, [hNewlyPressedButtons] ld b, a ld a, [$d918] bit BIT_D_UP, b jr z, .asm_c543 and a ret z dec a jr .asm_c54a .asm_c543 bit BIT_D_DOWN, b ret z cp $7 ret z inc a .asm_c54a ld [$d918], a ld de, $0003 call PlaySoundEffect ret Func_c554: ; 0xc554 ld a, $1 call Func_c8f1 ret Func_c55a: ; 0xc55a ld a, [$d918] and a jr nz, .asm_c572 ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a ret z ld de, $0001 call PlaySoundEffect call SaveDefaultKeyConfigs call Func_c948 ret .asm_c572 ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a ret z ld de, $0001 call PlaySoundEffect ld bc, $001e call Func_93f ld a, [$d918] dec a sla a ld c, a ld b, $0 ld hl, PointerTable_c65f add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, [$d918] dec a sla a call Func_c644 ld bc, $00ff .asm_c59f push bc push hl ld a, [$d918] dec a sla a call Func_c621 call Func_c554 call Func_926 rst AdvanceFrame pop hl pop bc ld a, [hJoypadState] and a jr z, .asm_c5c2 ld c, $0 call Func_c9be call Func_c95f jr .asm_c59f .asm_c5c2 or c jr nz, .asm_c59f ld a, [$d918] dec a sla a call Func_c639 push hl ld bc, $001e call Func_93f pop hl ld bc, $0020 add hl, bc ld a, [$d918] dec a sla a inc a call Func_c644 ld bc, $00ff ld d, $5a .asm_c5e9 push bc push de push hl ld a, [$d918] dec a sla a inc a call Func_c621 call Func_c554 call Func_926 rst AdvanceFrame pop hl pop de pop bc dec d ret z ld a, [hJoypadState] and a jr z, .asm_c613 ld d, $ff ld c, $0 call Func_c9be call Func_c95f jr .asm_c5e9 .asm_c613 or c jr nz, .asm_c5e9 ld a, [$d918] dec a sla a inc a call Func_c639 ret Func_c621: ; 0xc621 sla a ld c, a ld b, $0 ld hl, OAMPixelOffsetData_c66d add hl, bc ld a, [hli] ld c, a ld a, [hl] ld b, a ld a, [$ffb3] bit 2, a ret z ld a, $84 call LoadOAMData ret Func_c639: ; 0xc639 push hl ld e, a ld d, $0 ld hl, wKeyConfigBallStart add hl, de ld [hl], b pop hl ret Func_c644: ; 0xc644 push hl ld c, a ld b, $0 ld hl, wKeyConfigBallStart add hl, bc ld [hl], $0 pop hl push hl ld d, h ld e, l ld hl, Data_c689 ld a, Bank(Data_c689) ld bc, $0008 call LoadVRAMData pop hl ret PointerTable_c65f: ; 0xc65f dw $9C6D dw $9CAD dw $9CED dw $9D2D dw $9D6D dw $9DAD dw $9DED OAMPixelOffsetData_c66d: ; 0xc66d dw $6018 dw $6020 dw $6028 dw $6030 dw $6038 dw $6040 dw $6048 dw $6050 dw $6058 dw $6060 dw $6068 dw $6070 dw $6078 dw $6080 Data_c689: ; 0xc689 db $81, $81, $81, $81, $81, $81, $81, $81 Func_c691: ; 0xc91 call Func_c6bf call Func_c6d9 call Func_c6e8 ld a, [hNewlyPressedButtons] bit BIT_B_BUTTON, a ret z ld de, $0000 call PlaySong rst AdvanceFrame rst AdvanceFrame rst AdvanceFrame ld a, $12 call SetSongBank ld de, $0002 call PlaySong ld de, $0001 call PlaySoundEffect ld a, $1 ld [wScreenState], a ret Func_c6bf: ; 0xc6bf ld a, [hNewlyPressedButtons] ld b, a ld a, [$d919] bit BIT_D_UP, b jr z, .asm_c6ce and a ret z dec a jr .asm_c6d5 .asm_c6ce bit BIT_D_DOWN, b ret z cp $1 ret z inc a .asm_c6d5 ld [$d919], a ret Func_c6d9: ; 0xc6d9 call Func_c7ac call Func_c80b call Func_c88a ld a, $2 call Func_c8f1 ret Func_c6e8: ; 0xc6e8 ld a, [$d919] and a jr nz, UpdateSoundTestSoundEffectSelection ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, UpdateSoundTestBackgroundMusicSelection ld de, $0000 call PlaySong rst AdvanceFrame rst AdvanceFrame rst AdvanceFrame ld a, [wSoundTestCurrentBackgroundMusic] sla a ld c, a ld b, $0 ld hl, SongBanks add hl, bc ld a, [hli] ld e, a ld d, $0 ld a, [hl] call SetSongBank call PlaySong ret UpdateSoundTestBackgroundMusicSelection: ; 0xc715 ld a, [hPressedButtons] ; joypad state ld b, a ld a, [wSoundTestCurrentBackgroundMusic] bit BIT_D_LEFT, b ; was the left dpad button pressed? jr z, .checkIfRightPressed dec a ; decrement background music id bit 7, a ; did it wrap around to $ff? jr z, .saveBackgroundMusicID ld a, NUM_SONGS - 1 jr .saveBackgroundMusicID .checkIfRightPressed bit BIT_D_RIGHT, b ; was the right dpad button pressed? ret z inc a ; increment background music id cp NUM_SONGS ; should it wrap around to 0? jr nz, .saveBackgroundMusicID xor a .saveBackgroundMusicID ld [wSoundTestCurrentBackgroundMusic], a hlCoord 7, 11, vBGMap0 jp RedrawSoundTestID UpdateSoundTestSoundEffectSelection: ; 0xc73a ld a, [hNewlyPressedButtons] ; joypad state bit BIT_A_BUTTON, a jr z, .didntPressAButton ld a, [wSoundTextCurrentSoundEffect] ld e, a ld d, $0 call PlaySoundEffect ret .didntPressAButton ld a, [hPressedButtons] ; joypad state ld b, a ld a, [wSoundTextCurrentSoundEffect] bit BIT_D_LEFT, b ; was the left dpad button pressed? jr z, .checkIfRightPressed dec a ; decrement sound effect id bit 7, a ; did it wrap around to $ff? jr z, .saveSoundEffectID ld a, NUM_SOUND_EFFECTS - 1 jr .saveSoundEffectID .checkIfRightPressed bit BIT_D_RIGHT, b ; was the right dpad button pressed? ret z inc a ; increment background music id cp NUM_SOUND_EFFECTS ; should it wrap around to 0? jr nz, .saveSoundEffectID xor a .saveSoundEffectID ld [wSoundTextCurrentSoundEffect], a hlCoord 7, 13, vBGMap0 ; fall through RedrawSoundTestID: ; 0xc76c ; Redraws the 2-digit id number for the sound test's current background music or sound effect id. ; input: a = id number ; hl = pointer to bg map location where the new 2-digit id should be drawn push af ; save music or sound effect id number swap a and $f ; a contains high nybble of music id call .drawDigit pop af and $f ; a contains low nybble of music id .drawDigit add $b7 ; hexadecimal digit tiles start at tile number $b7 call PutTileInVRAM inc hl ret SongBanks: ; 0xc77e db MUSIC_NOTHING_0F,BANK(Music_Nothing0F) db MUSIC_BLUE_FIELD,BANK(Music_BlueField) db MUSIC_CATCH_EM_RED,BANK(Music_CatchEmRed) db MUSIC_HURRY_UP_RED,BANK(Music_HurryUpRed) db MUSIC_POKEDEX,BANK(Music_Pokedex) db MUSIC_GASTLY_GRAVEYARD,BANK(Music_GastlyInTheGraveyard) db MUSIC_HAUNTER_GRAVEYARD,BANK(Music_HaunterInTheGraveyard) db MUSIC_GENGAR_GRAVEYARD,BANK(Music_GengarInTheGraveyard) db MUSIC_RED_FIELD,BANK(Music_RedField) db MUSIC_CATCH_EM_BLUE,BANK(Music_CatchEmBlue) db MUSIC_HURRY_UP_BLUE,BANK(Music_HurryUpBlue) db MUSIC_HI_SCORE,BANK(Music_HiScore) db MUSIC_GAME_OVER,BANK(Music_GameOver) db MUSIC_WHACK_DIGLETT,BANK(Music_WhackTheDiglett) db MUSIC_WHACK_DUGTRIO,BANK(Music_WhackTheDugtrio) db MUSIC_SEEL_STAGE,BANK(Music_SeelStage) db MUSIC_TITLE_SCREEN,BANK(Music_Title) db MUSIC_MEWTWO_STAGE,BANK(Music_MewtwoStage) db MUSIC_OPTIONS,BANK(Music_Options) db MUSIC_FIELD_SELECT,BANK(Music_FieldSelect) db MUSIC_MEOWTH_STAGE,BANK(Music_MeowthStage) db MUSIC_END_CREDITS,BANK(Music_EndCredits) db MUSIC_NAME_ENTRY,BANK(Music_NameEntry) Func_c7ac: ; 0xc7ac ld c, $0 ld a, [wScreenState] cp $1 jr z, .asm_c7cc ld a, [$d916] and a jr nz, .asm_c7cc ld a, [$d917] and a jr nz, .asm_c7cc ld a, [$d91e] cp $4 jr nz, .asm_c7cc ld a, [$d91c] ld c, a .asm_c7cc sla c ld b, $0 ld hl, Data_c806 add hl, bc ld a, [hl] ld bc, $5050 call LoadOAMData ld a, [$d91d] dec a jr nz, .asm_c802 ld a, [$d91c] sla a ld c, a ld b, $0 ld hl, Data_c806 + 2 add hl, bc ld a, [hl] and a jr z, .asm_c7f5 ld a, [$d91c] inc a .asm_c7f5 ld [$d91c], a sla a ld c, a ld b, $0 ld hl, Data_c806 + 1 add hl, bc ld a, [hl] .asm_c802 ld [$d91d], a ret Data_c806: ; 0xc806 db $7B, $02, $7C, $02, $00 Func_c80b: ; 0xc80b ld c, $0 ld a, [wScreenState] cp $1 jr z, .asm_c824 ld a, [$d916] and a jr nz, .asm_c824 ld a, [$d917] and a jr nz, .asm_c824 ld a, [$d91e] ld c, a .asm_c824 sla c ld b, $0 ld hl, Data_c85e add hl, bc ld bc, $7870 ld a, [hl] call LoadOAMData ld a, [$d91f] dec a jr nz, .asm_c85a ld a, [$d91e] sla a ld c, a ld b, $0 ld hl, Data_c85e + 2 add hl, bc ld a, [hl] and a ld a, [$d91e] jr z, .asm_c850 inc a ld [$d91e], a .asm_c850 sla a ld c, a ld b, $0 ld hl, Data_c85e + 1 add hl, bc ld a, [hl] .asm_c85a ld [$d91f], a ret Data_c85e: ; 0xc85e db $77, $09, $78, $09, $79, $09, $7A, $0D, $7A, $01, $00 Func_c869: ; 0xc869 ld a, [$d916] and a ret nz ld a, [$d917] and a ret nz ld a, [$d91e] cp $3 ret nz ld a, [$d91f] cp $1 ret nz ld a, $55 ld [$d803], a ld a, $40 ld [$d804], a ret Func_c88a: ; 0xc88a ld a, [$d916] sla a ld c, a ld b, $0 ld hl, Data_c8eb add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld e, $0 ld a, [wScreenState] cp $1 jr nz, .asm_c8a9 ld a, [$d920] sla a ld e, a .asm_c8a9 ld d, $0 ld hl, Data_c8de add hl, de ld a, [hl] call LoadOAMData ld a, [$d921] dec a jr nz, .asm_c8da ld a, [$d920] sla a ld c, a ld b, $0 ld hl, Data_c8de + 2 add hl, bc ld a, [hl] and a jr z, .asm_c8cd ld a, [$d920] inc a .asm_c8cd ld [$d920], a sla a ld c, a ld b, $0 ld hl, Data_c8de + 1 add hl, bc ld a, [hl] .asm_c8da ld [$d921], a ret Data_c8de: ; 0xc8de db $7D, $02, $7E, $06, $7F, $02, $80, $04, $81, $06, $7F, $04, $00 Data_c8eb: ; 0xc8eb db $18, $08, $30, $08, $48, $08 Func_c8f1: ; 0xc8f1 ld c, a ld b, $0 ld hl, $d917 add hl, bc ld e, [hl] sla c ld hl, PointerTable_c910 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld c, e sla c add hl, bc ld a, [hli] ld c, a ld a, [hl] ld b, a ld a, $82 call LoadOAMData ret PointerTable_c910: ; 0xc910 dw OAMPixelOffsetData_c916 dw OAMPixelOffsetData_c91a dw OAMPixelOffsetData_c92a OAMPixelOffsetData_c916: ; 0xc916 dw $5018 dw $7018 OAMPixelOffsetData_c91a: ; 0xc91a dw $0808 dw $0818 dw $0828 dw $0838 dw $0848 dw $0858 dw $0868 dw $0878 OAMPixelOffsetData_c92a: ; 0xc92a dw $1058 dw $1068 Func_c92e: ; 0xc92e ld a, [$d917] sla a ld c, a ld b, $0 ld hl, OAMPixelOffsetData_c944 add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, $85 call LoadOAMData ret OAMPixelOffsetData_c944: ; 0xc944 dw $5018 dw $7018 Func_c948: ; 0xc948 ld hl, $9c6d ld de, wKeyConfigBallStart ld b, $e .asm_c950 push bc ld a, [de] call Func_c95f inc de ld bc, $0020 add hl, bc pop bc dec b jr nz, .asm_c950 ret Func_c95f: ; 0xc95f push bc push de push hl push hl push af ld hl, $d922 ld a, $81 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hl], a pop af ld hl, $d922 ld de, Data_c9ae ld b, $8 .asm_c979 srl a push af jr nc, .asm_c994 ld a, [de] inc de call Func_c9aa ld a, [de] inc de call Func_c9aa pop af push af and a jr z, .asm_c996 ld a, $1a call Func_c9aa jr .asm_c996 .asm_c994 inc de inc de .asm_c996 pop af dec b jr nz, .asm_c979 pop de ld hl, $d922 ld a, $0 ld bc, $0008 call Func_735 pop hl pop de pop bc ret Func_c9aa: ; 0xc9aa and a ret z ld [hli], a ret Data_c9ae: ; 0xc9ae db $14, $00, $15, $00, $18, $19, $16, $17, $13, $00, $12, $00, $10, $00, $11, $00 Func_c9be: ; 0xc9be push af push bc push hl ld c, a xor b and c ld hl, $d936 call Func_c9ff ld a, b ld hl, $d93f call Func_c9ff ld a, [$d947] cp $3 jr nc, .asm_c9f3 ld hl, $d93e add [hl] sub $4 ld hl, $d936 call nc, Func_ca15 ld de, $d936 ld hl, $d93f ld b, $8 .asm_c9ec ld a, [de] or [hl] ld [hli], a inc de dec b jr nz, .asm_c9ec .asm_c9f3 ld hl, $d93f call Func_ca29 pop hl pop bc ld b, a pop af ld a, b ret Func_c9ff: ; 0xc9ff push bc ld bc, $0800 .asm_ca03 sla a jr nc, .asm_ca0c ld [hl], $ff inc c jr .asm_ca0e .asm_ca0c ld [hl], $0 .asm_ca0e inc hl dec b jr nz, .asm_ca03 ld [hl], c pop bc ret Func_ca15: ; 0xca15 push bc inc a ld c, a ld b, $8 .asm_ca1a ld a, [hl] and a jr z, .asm_ca23 ld [hl], $0 dec c jr z, .asm_ca27 .asm_ca23 inc hl dec b jr nz, .asm_ca1a .asm_ca27 pop bc ret Func_ca29: ; 0ca29 push bc ld bc, $0800 .asm_ca2d ld a, [hli] and a jr z, .asm_ca32 scf .asm_ca32 rl c dec b jr nz, .asm_ca2d ld a, c pop bc ret SaveDefaultKeyConfigs: ; 0ca3a ld hl, DefaultKeyConfigs ld de, wKeyConfigs ld b, $e .loop ld a, [hli] ld [de], a inc de dec b jr nz, .loop ld hl, wKeyConfigs ld de, $a244 ld bc, $000e call SaveData ret DefaultKeyConfigs: ; 0xca55 db A_BUTTON, $00 ; wKeyConfigBallStart db D_LEFT, $00 ; wKeyConfigLeftFlipper db A_BUTTON, $00 ; wKeyConfigRightFlipper db D_DOWN, $00 ; wKeyConfigLeftTilt db B_BUTTON, $00 ; wKeyConfigRightTilt db SELECT, $00 ; wKeyConfigUpperTilt db START, $00 ; wKeyConfigMenu dr $ca63, $ca7f HandleHighScoresScreen: ; 0xca7f ld a, [wScreenState] rst JumpTable ; calls JumpToFuncInTable HighScoresScreenFunctions: ; 0xca83 dw Func_ca8f dw Func_cb14 dw Func_ccac dw Func_ccb6 dw Func_cd6c dw ExitHighScoresScreen Func_ca8f: ; 0xca8f ld hl, $d473 call GenRandom ld [hli], a call GenRandom ld [hli], a call GenRandom ld [hli], a call GenRandom ld [hli], a ld hl, $da36 ld a, [wHighScoresStage] and a jr z, .asm_caae ld hl, $da77 .asm_caae ld b, $5 .asm_cab0 ld de, $d46f ld c, $6 .asm_cab5 ld a, [de] cp [hl] jr c, .asm_cad0 jr nz, .asm_cac2 dec de dec hl dec c jr nz, .asm_cab5 jr .asm_cad0 .asm_cac2 dec hl dec c jr nz, .asm_cac2 ld a, l sub $7 ld l, a jr nc, .asm_cacd dec h .asm_cacd dec b jr nz, .asm_cab0 .asm_cad0 ld a, b ld [$da81], a xor a ld [$da80], a inc b ld hl, $da30 ld de, $da3d ld a, [wHighScoresStage] and a jr z, .asm_caeb ld hl, $da71 ld de, $da7e .asm_caeb ld a, $5 .asm_caed cp b jr c, .asm_cb02 push af jr nz, .asm_caf6 ld hl, $d476 .asm_caf6 ld c, $d .asm_caf8 ld a, [hld] ld [de], a dec de dec c jr nz, .asm_caf8 pop af dec a jr nz, .asm_caed .asm_cb02 ld a, [$da81] cp $5 ld a, $1 jr nz, .asm_cb0c xor a .asm_cb0c ld [$da7f], a ld hl, wScreenState inc [hl] ret Func_cb14: ; 0xcb14 ld a, $43 ld [$ff9e], a ld a, $e0 ld [$d80c], a ld a, $e1 ld [$d80d], a ld [$d80e], a xor a ld [hBoardXShift], a ld [$ffab], a ld [hBoardYShift], a ld [$ffad], a ld a, $e ld [$ffa2], a ld [$ffa8], a ld a, $82 ld [$ffa9], a ld [$ffaa], a ld hl, $ff9f set 6, [hl] ld hl, rIE set 1, [hl] ld a, $3 ld [$ffb0], a ld a, [hGameBoyColorFlag] and a jr z, .asm_cb51 ld a, [wHighScoresStage] inc a .asm_cb51 ld hl, HighScoresVideoDataPointers call LoadVideoData call ClearOAMBuffer ld a, $20 ld [$da82], a call Func_d211 ld hl, $99c0 ld de, $da3d call Func_d2cb ld hl, $9dc0 ld de, $da7e call Func_d2cb ld a, [wHighScoresStage] and a jr z, .asm_cb7f ld hl, $ff9e set 3, [hl] .asm_cb7f call Func_b66 ld a, [$da7f] and a jr z, .asm_cbbd ld a, [$da81] and a jr nz, .asm_cb9b ld a, $13 call SetSongBank ld de, $0001 call PlaySong jr .asm_cba6 .asm_cb9b ld a, $13 call SetSongBank ld de, $0002 call PlaySong .asm_cba6 call Func_588 ld bc, $0009 call Func_d68a ld bc, $03c9 call Func_d68a call Func_bbe ld hl, wScreenState inc [hl] ret .asm_cbbd ld a, $10 call SetSongBank ld de, $0004 call PlaySong call Func_588 ld bc, $0009 call Func_d68a ld bc, $03c9 call Func_d68a call Func_bbe ld hl, wScreenState inc [hl] ld hl, wScreenState inc [hl] ret HighScoresVideoDataPointers: ; 0xcbe3 dw HighScoresVideoData_GameBoy dw HighScoresRedStageVideoData_GameBoyColor dw HighScoresBlueStageVideoData_GameBoyColor HighScoresVideoData_GameBoy: ; 0xcbe9 VIDEO_DATA_TILES HighScoresBaseGameBoyGfx, vTiles0, $1800 VIDEO_DATA_TILEMAP HighScoresTilemap, vBGMap0, $400 VIDEO_DATA_TILEMAP HighScoresTilemap2, vBGMap1, $400 dw HighScoresTilemap + $3c0 db Bank(HighScoresTilemap) dw vBGMap0 dw ($40 << 2) dw HighScoresTilemap + $280 db Bank(HighScoresTilemap) dw vBGMap0 + $200 dw ($40 << 2) dw HighScoresTilemap2 + $3c0 db Bank(HighScoresTilemap2) dw vBGMap1 dw ($40 << 2) dw HighScoresTilemap2 + $280 db Bank(HighScoresTilemap2) dw vBGMap1 + $200 dw ($40 << 2) db $FF, $FF ; terminators HighScoresRedStageVideoData_GameBoyColor: ; 0xcc1c VIDEO_DATA_TILES HighScoresBaseGameBoyGfx, vTiles0, $1800 VIDEO_DATA_TILEMAP HighScoresTilemap, vBGMap0, $400 VIDEO_DATA_TILEMAP HighScoresTilemap2, vBGMap1, $400 VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap4, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap5, vBGMap1, $400 dw HighScoresTilemap + $3c0 db Bank(HighScoresTilemap) dw vBGMap0 dw ($40 << 2) dw HighScoresTilemap + $280 db Bank(HighScoresTilemap) dw vBGMap0 + $200 dw ($40 << 2) dw HighScoresTilemap2 + $3c0 db Bank(HighScoresTilemap2) dw vBGMap1 dw ($40 << 2) dw HighScoresTilemap2 + $280 db Bank(HighScoresTilemap2) dw vBGMap1 + $200 dw ($40 << 2) VIDEO_DATA_PALETTES HighScoresRedStagePalettes, $80 db $FF, $FF HighScoresBlueStageVideoData_GameBoyColor: ; 0xcc64 VIDEO_DATA_TILES HighScoresBaseGameBoyGfx, vTiles0, $1800 VIDEO_DATA_TILEMAP HighScoresTilemap, vBGMap0, $400 VIDEO_DATA_TILEMAP HighScoresTilemap2, vBGMap1, $400 VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap4, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap5, vBGMap1, $400 dw HighScoresTilemap + $3c0 db Bank(HighScoresTilemap) dw vBGMap0 dw ($40 << 2) dw HighScoresTilemap + $280 db Bank(HighScoresTilemap) dw vBGMap0 + $200 dw ($40 << 2) dw HighScoresTilemap2 + $3c0 db Bank(HighScoresTilemap2) dw vBGMap1 dw ($40 << 2) dw HighScoresTilemap2 + $280 db Bank(HighScoresTilemap2) dw vBGMap1 + $200 dw ($40 << 2) VIDEO_DATA_PALETTES HighScoresBlueStagePalettes, $80 db $FF, $FF ; terminators Func_ccac: ; 0xccac call Func_d18b call Func_d1d2 call Func_d211 ret Func_ccb6: ; 0xccb6 call Func_d4cf call AnimateHighScoresArrow ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_ccd1 ld de, $0001 call PlaySoundEffect ld hl, wScreenState inc [hl] ld hl, wScreenState inc [hl] ret .asm_ccd1 bit 1, a jr z, .asm_cce4 ld de, $0001 call PlaySoundEffect ld hl, wScreenState inc [hl] ld hl, wScreenState inc [hl] ret .asm_cce4 bit 3, a jr z, .asm_ccfb call Func_1a43 ld a, [hGameBoyColorFlag] ld [$d8f0], a ld de, $0001 call PlaySoundEffect ld hl, wScreenState inc [hl] ret .asm_ccfb ld a, [hJoypadState] cp (SELECT | D_UP) ret nz ld a, [hNewlyPressedButtons] and (SELECT | D_UP) ret z ld de, $0001 call PlaySoundEffect call ClearOAMBuffer ld bc, $473b ld a, $94 call LoadOAMData .asm_cd16 rst AdvanceFrame ld a, [hNewlyPressedButtons] bit BIT_B_BUTTON, a jr z, .asm_cd24 ld de, $0001 call PlaySoundEffect ret .asm_cd24 bit 0, a jr z, .asm_cd16 ld de, $0001 call PlaySoundEffect call CopyInitialHighScores ld a, BANK(HighScoresTilemap) ld hl, HighScoresTilemap + $40 ; todo ld de, $9840 ld bc, $01c0 call LoadVRAMData ld a, BANK(HighScoresTilemap2) ld hl, HighScoresTilemap2 + $40 ; todo ld de, $9c40 ld bc, $01c0 call LoadVRAMData ld hl, $99c0 ld de, $da3d call Func_d361 ld hl, $9dc0 ld de, $da7e call Func_d361 ld hl, wRedHighScore1Points ld de, $a000 ld bc, $0082 call SaveData ret Func_cd6c: ; 0xcd6c ld a, [$ffb3] and $1f call z, Func_1a43 call Func_cf7d call Func_cfa6 ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_cdbb ld de, $0001 call PlaySoundEffect ld a, [$da85] and a jr nz, .asm_cda1 ld a, [$d86e] and a jr z, .asm_cdbb call ClearOAMBuffer ld bc, $473b ld a, $8e call LoadOAMData call Func_d042 jr .asm_cdc6 .asm_cda1 ld a, [$d8f0] and a jr z, .asm_cdbb ld de, $0000 call PlaySong rst AdvanceFrame call Func_cdce push af ld de, $0004 call PlaySong pop af jr nc, .asm_cdc6 .asm_cdbb ld a, [hNewlyPressedButtons] bit BIT_B_BUTTON, a ret z ld de, $0001 call PlaySoundEffect .asm_cdc6 xor a ld [rRP], a ld hl, wScreenState dec [hl] ret Func_cdce: ; 0xcdce push af ld a, $0 ld [$abf6], a pop af call ClearOAMBuffer call Func_1be3 call SendHighScores push af ld a, $1 ld [$abf6], a pop af di ld a, [$d8ea] cp $0 jp nz, .asm_ceb6 ld a, [$d8e9] cp $1 jr z, .asm_ce23 push af ld a, $2 ld [$abf6], a pop af ld b, $82 ld hl, wRedHighScore1Points call Func_1cf8 ld a, [$d8ea] cp $0 jp nz, .asm_ceb6 push af ld a, $3 ld [$abf6], a pop af ld hl, $c4c0 call Func_1dda ld a, [$d8ea] cp $0 jp nz, .asm_ceb6 jr .asm_ce4d .asm_ce23 push af ld a, $4 ld [$abf6], a pop af ld hl, $c4c0 call Func_1dda ld a, [$d8ea] cp $0 jr nz, .asm_ceb6 push af ld a, $5 ld [$abf6], a pop af ld b, $82 ld hl, wRedHighScore1Points call Func_1cf8 ld a, [$d8ea] cp $0 jr nz, .asm_ceb6 .asm_ce4d push af ld a, $6 ld [$abf6], a pop af call Func_ceca rst AdvanceFrame ld hl, $c4cc ld b, $5 .asm_ce5d push bc push hl ld d, h ld e, l ld hl, $da3d call Func_cfcb pop hl pop bc ld de, $000d add hl, de dec b jr nz, .asm_ce5d push af ld a, $7 ld [$abf6], a pop af ld hl, wcBottomMessageText + $0d ld b, $5 .asm_ce7c push bc push hl ld d, h ld e, l ld hl, $da7e call Func_cfcb pop hl pop bc ld de, $000d add hl, de dec b jr nz, .asm_ce7c push af ld a, $8 ld [$abf6], a pop af ld hl, $99c0 ld de, $da3d call Func_d361 ld hl, $9dc0 ld de, $da7e call Func_d361 ld hl, wRedHighScore1Points ld de, $a000 ld bc, $0082 call SaveData and a ret .asm_ceb6 push af ld a, $9 ld [$abf6], a pop af call Func_ceca rst AdvanceFrame push af ld a, $a ld [$abf6], a pop af scf ret Func_ceca: ; 0xceca ld a, [rLY] and a jr nz, Func_ceca ei ret SendHighScores: ; 0xced1 ; Sends high scores, and plays the animation for sending the high scores. ld hl, SendHighScoresAnimationData ld de, wSendHighScoresAnimationFrameCounter call CopyHLToDE ld bc, $4800 ld a, [wSendHighScoresAnimationFrame] call LoadOAMData ld bc, $473b ld a, $8f call LoadOAMData call Func_926 rst AdvanceFrame ld a, $1 ld [$d8e9], a ld b, $b4 ; maximum attempts to send high scores .attemptToSendHighScoresLoop push bc xor a ld [$ffb2], a .asm_cefa ld b, $2 ld c, $56 ld a, [$ff00+c] and b jr z, .asm_cf09 ld a, [$ffb2] and a jr z, .asm_cefa jr .asm_cf0e .asm_cf09 call Func_1c50 jr .continueAttempts .asm_cf0e ld hl, SendHighScoresAnimationData ld de, wSendHighScoresAnimationFrameCounter call UpdateAnimation jr nc, .continueAttempts ld bc, $4800 ld a, [wSendHighScoresAnimationFrame] call LoadOAMData ld bc, $473b ld a, $8f call LoadOAMData call Func_926 call Func_1ca1 ld a, [wSendHighScoresAnimationFrameIndex] cp $6 jr nz, .continueAttempts ld hl, SendHighScoresAnimationData ld de, wSendHighScoresAnimationFrameCounter call CopyHLToDE .continueAttempts pop bc ld a, [$d8ea] cp $0 ret z dec b jr nz, .attemptToSendHighScoresLoop ret SendHighScoresAnimationData: ; 0xcf4b ; Each entry is [OAM id][duration] db $0C, $98 db $06, $99 db $0A, $9A db $0C, $9B db $0A, $9C db $06, $9D db $00 ; terminator Func_cf58: ; 0xcf58 cp $5 ret z push af ld de, $0002 call PlaySoundEffect call ClearOAMBuffer rst AdvanceFrame pop af ld bc, $473b ; todo add $8f call LoadOAMData .asm_cf6f rst AdvanceFrame ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_cf6f ld de, $0001 call PlaySoundEffect ret Func_cf7d: ; 0xcf7d ld a, [$d809] ld b, a ld a, [$da85] bit 6, b jr z, .asm_cf95 and a ret z dec a ld [$da85], a ld de, $0003 call PlaySoundEffect ret .asm_cf95 bit 7, b ret z cp $1 ret z inc a ld [$da85], a ld de, $0003 call PlaySoundEffect ret Func_cfa6: ; 0xcfa6 ld bc, $473b ld a, $87 call LoadOAMData ld a, [$d8f0] and a jr z, .asm_cfb6 ld a, $2 .asm_cfb6 ld e, a ld a, [$d86e] add e xor $3 add $8a call LoadOAMData ld a, [$da85] add $88 call LoadOAMData ret Func_cfcb: ; 0xcfcb ld a, e ld [$ff8c], a ld a, d ld [$ff8d], a push hl ld b, $5 .asm_cfd4 ld a, [$ff8c] ld e, a ld a, [$ff8d] ld d, a call Func_d005 call Func_d017 jr c, .asm_cfe5 dec b jr nz, .asm_cfd4 .asm_cfe5 inc b pop de ld hl, $fff3 add hl, de ld a, $5 .asm_cfed cp b ret c push af jr nz, .asm_cff8 ld a, [$ff8c] ld l, a ld a, [$ff8d] ld h, a .asm_cff8 ld c, $d .asm_cffa ld a, [hld] ld [de], a dec de dec c jr nz, .asm_cffa pop af dec a jr nz, .asm_cfed ret Func_d005: ; 0xd005 ld c, $7 .asm_d007 ld a, [de] cp [hl] jr nz, .asm_d010 dec de dec hl dec c jr nz, .asm_d007 .asm_d010 ld a, c ld [$ff8e], a call Func_d035 ret Func_d017: ; 0xd017 ld c, $6 .asm_d019 ld a, [de] cp [hl] jr c, .asm_d02b jr nz, .asm_d030 dec de dec hl dec c jr nz, .asm_d019 ld a, [$ff8e] and a jr nz, .asm_d02b ld b, $5 .asm_d02b call Func_d035 scf ret .asm_d030 call Func_d035 and a ret Func_d035: ; 0xd035 ld a, e sub c ld e, a jr nc, .asm_d03b dec d .asm_d03b ld a, l sub c ld l, a jr nc, .asm_d041 dec h .asm_d041 ret Func_d042: ; 0xd042 ld a, [hJoypadState] ld [$da86], a ld b, a ld a, $80 bit BIT_D_LEFT, b jr z, .asm_d052 ld a, $7f jr .asm_d058 .asm_d052 bit BIT_D_RIGHT, b jr z, .asm_d058 ld a, $10 .asm_d058 ld [$d8a7], a ld a, $e0 ld [$d8aa], a ld a, BANK(HighScoresTilemap) ld hl, HighScoresTilemap + $3c0 ld de, $c280 ld bc, $0040 call FarCopyData ld a, $0 ld hl, $9840 ld de, $c2c0 ld bc, $01c0 call LoadVRAMData ld a, BANK(HighScoresTilemap) ld hl, HighScoresTilemap + $280 ld de, $c480 ld bc, $0040 call FarCopyData call Func_d6b6 call Func_d0e3 ret c ld a, [$da86] bit 2, a jr z, .asm_d0a2 ld de, $da06 call Func_d107 call Func_d0f5 ret c .asm_d0a2 ld a, BANK(HighScoresTilemap2) ld hl, HighScoresTilemap2 + $3c0 ; todo ld de, $c280 ld bc, $0040 call FarCopyData ld a, $0 ld hl, $9c40 ld de, $c2c0 ld bc, $01c0 call LoadVRAMData ld a, BANK(HighScoresTilemap2) ld hl, HighScoresTilemap2 + $280 ; todo ld de, $c480 ld bc, $0040 call FarCopyData call Func_d6b6 call Func_d0e3 ret c ld a, [$da86] bit 2, a ret z ld de, $da47 call Func_d107 call Func_d0f5 ret Func_d0e3: ; 0xd0e3 ld a, BANK(HighScoresBaseGameBoyGfx) ld hl, HighScoresBaseGameBoyGfx + $800 call Func_1a21 ld a, [$d86d] and a ret z call Func_cf58 scf ret Func_d0f5: ; 0xd0f5 ld a, BANK(GFX_a7b00) ld hl, GFX_a7b00 call Func_1a21 ld a, [$d86d] and a ret z call Func_cf58 scf ret Func_d107: ; 0xd107 ld hl, $c280 ld a, $c0 ld b, $20 .asm_d10e rept 32 ld [hli], a endr dec b jr nz, .asm_d10e ld hl, $c280 ld b, $5 .asm_d136 ld c, $4 .asm_d138 ld a, [de] swap a call Func_d159 ld a, [de] call Func_d159 inc de inc hl dec c jr nz, .asm_d138 ld a, l add $4c ld l, a jr nc, .asm_d14e inc h .asm_d14e ld a, e add $9 ld e, a jr nc, .asm_d155 inc d .asm_d155 dec b jr nz, .asm_d136 ret Func_d159: ; 0xd159 and $f sla a sla a xor $80 ld [hli], a inc a ld [hli], a inc a push bc push hl ld bc, $001e add hl, bc ld [hli], a inc a ld [hli], a pop hl pop bc ret ExitHighScoresScreen: ; 0xd171 call Func_cb5 call Func_576 ld hl, $ff9f res 6, [hl] ld hl, rIE res 1, [hl] ld a, SCREEN_TITLESCREEN ld [wCurrentScreen], a xor a ld [wScreenState], a ret Func_d18b: ; 0xd18b ld a, [hPressedButtons] ld b, a ld a, [$da81] ld e, a sla e sla e add e sla e add e ld e, a ld a, [$da80] add e ld e, a ld d, $0 ld hl, wRedHighScore1Name ld a, [wHighScoresStage] and a jr z, .asm_d1ae ld hl, wBlueHighScore1Name .asm_d1ae add hl, de ld a, [hl] bit 4, b jr z, .asm_d1bd inc a cp $38 jr nz, .asm_d1c7 ld a, $a jr .asm_d1c7 .asm_d1bd bit 5, b ret z dec a cp $9 jr nz, .asm_d1c7 ld a, $37 .asm_d1c7 ld [hl], a call Func_d46f ld de, $0003 call PlaySoundEffect ret Func_d1d2: ; 0xd1d2 ld a, [hNewlyPressedButtons] ld b, a ld a, [$da80] bit BIT_A_BUTTON, b jr z, .asm_d1fc inc a cp $3 jr nz, .asm_d202 ld de, $0745 call PlaySoundEffect xor a ld [$da7f], a ld hl, wScreenState inc [hl] ld hl, wRedHighScore1Points ld de, $a000 ld bc, $0082 call SaveData ret .asm_d1fc bit 1, b ret z and a ret z dec a .asm_d202 ld [$da80], a ld a, $20 ld [$da82], a ld de, $0001 call PlaySoundEffect ret Func_d211: ; 0xd211 ; related to high scores name entry? ld a, [$da7f] and a ret z ld a, [hJoypadState] and (D_RIGHT | D_LEFT) jr z, .asm_d221 xor a ld [$da82], a ret .asm_d221 ld a, [$da82] inc a ld [$da82], a bit 5, a ret z ld a, [$da81] ld e, a ld d, $0 ld hl, OAMPixelYOffsets_d247 add hl, de ld c, [hl] ld a, [$da80] ld e, a ld d, $0 ld hl, OAMPixelXOffsets_d24c add hl, de ld b, [hl] ld a, $86 call LoadOAMData ret OAMPixelYOffsets_d247: ; 0xd247 db $10, $28, $40, $58, $70 OAMPixelXOffsets_d24c: ; 0xd24c db $18, $20, $28 AnimateHighScoresArrow: ; 0xd24f ; Handles the animation of the arrow in the bottom ; corner of the high scores screens. ld a, [wHighScoresArrowAnimationCounter] inc a cp $28 jr c, .noOverflow xor a .noOverflow ld [wHighScoresArrowAnimationCounter], a ld a, [wHighScoresStage] and a ld c, $77 ld a, $95 ld hl, HighScoresRightArrowOAMPixelXOffsets jr z, .asm_d26d ld a, $96 ld hl, HighScoresLeftArrowOAMPixelXOffsets .asm_d26d push af ld a, [wHighScoresArrowAnimationCounter] ld e, a ld d, $0 add hl, de ld b, [hl] pop af call LoadOAMData ret HighScoresRightArrowOAMPixelXOffsets: ; 0xd27b ; Controls the animation of the right-arrow in the bottom corner of the ; high scores screen. db $87, $87, $8A, $8A, $8A, $8A, $8A, $8A db $89, $89, $88, $88, $88, $88, $88, $88 db $88, $88, $88, $88, $88, $88, $88, $88 db $88, $88, $88, $88, $88, $88, $88, $88 db $88, $88, $88, $88, $88, $88, $88, $88 HighScoresLeftArrowOAMPixelXOffsets: ; 0xd2a3 db $02, $02, $FF, $FF, $FF, $FF, $FF, $FF db $00, $00, $01, $01, $01, $01, $01, $01 db $01, $01, $01, $01, $01, $01, $01, $01 db $01, $01, $01, $01, $01, $01, $01, $01 db $01, $01, $01, $01, $01, $01, $01, $01 Func_d2cb: ; 0xd2cb ld b, $5 .asm_d2cd push bc push hl dec de dec de dec de dec de ld a, l add $5 ld l, a ld b, $3 .asm_d2d9 ld a, [de] call Func_d348 dec de dec hl dec b jr nz, .asm_d2d9 pop hl push hl ld a, l add $6 ld l, a ld bc, $0c01 .asm_d2eb ld a, [de] swap a and $f call Func_d30e inc hl dec b ld a, [de] and $f call Func_d30e dec de inc hl dec b jr nz, .asm_d2eb xor a call Func_d317 pop hl ld bc, hBoardYShift add hl, bc pop bc dec b jr nz, .asm_d2cd ret Func_d30e: ; 0xd30e jr nz, Func_d317 ld a, b dec a jr z, Func_d317 ld a, c and a ret nz ; fall through Func_d317: ; 0xd317 push de push af call Func_d336 pop af ld c, $0 sla a add e ld [hl], a cp $fe jr z, .asm_d328 inc a .asm_d328 push hl push af ld a, l add $20 ld l, a jr nc, .asm_d331 inc h .asm_d331 pop af ld [hl], a pop hl pop de ret Func_d336: ; 0xd336 ld e, $6c ld a, b cp $3 ret z cp $6 ret z cp $9 ret z cp $c ret z ld e, $58 ret Func_d348: ; 0xd348 ld c, $0 sla a add $90 ld [hl], a cp $fe jr z, .asm_d354 inc a .asm_d354 push hl push af ld a, l add $20 ld l, a jr nc, .asm_d35d inc h .asm_d35d pop af ld [hl], a pop hl ret Func_d361: ; 0xd361 ld b, $5 .asm_d363 push bc push hl dec de dec de dec de dec de ld a, l add $5 ld l, a ld b, $3 .asm_d36f ld a, [de] call Func_d3e2 dec de dec hl dec b jr nz, .asm_d36f pop hl push hl ld a, l add $6 ld l, a ld bc, $0c01 .asm_d381 ld a, [de] swap a and $f call Func_d3a4 inc hl dec b ld a, [de] and $f call Func_d3a4 dec de inc hl dec b jr nz, .asm_d381 xor a call Func_d3ad pop hl ld bc, hBoardYShift add hl, bc pop bc dec b jr nz, .asm_d363 ret Func_d3a4: ; 0xd3a4 jr nz, Func_d3ad ld a, b dec a jr z, Func_d3ad ld a, c and a ret nz ; fall through Func_d3ad: ; 0xd3ad push de push af call Func_d3d0 pop af ld c, $0 sla a add e call PutTileInVRAM cp $fe jr z, .asm_d3c0 inc a .asm_d3c0 push hl push af ld a, l add $20 ld l, a jr nc, .asm_d3c9 inc h .asm_d3c9 pop af call PutTileInVRAM pop hl pop de ret Func_d3d0: ; 0xd3d0 ld e, $6c ld a, b cp $3 ret z cp $6 ret z cp $9 ret z cp $c ret z ld e, $58 ret Func_d3e2: ; 0xd3e2 ld c, $0 sla a add $90 call PutTileInVRAM cp $fe jr z, .asm_d3f0 inc a .asm_d3f0 push hl push af ld a, l add $20 ld l, a jr nc, .asm_d3f9 inc h .asm_d3f9 pop af call PutTileInVRAM pop hl ret CopyInitialHighScores: ; 0xd3ff ld hl, InitialHighScores ld de, wRedHighScore1Points call CopyInitialHighScoresForStage ld hl, InitialHighScores ld de, wBlueHighScore1Points CopyInitialHighScoresForStage: ; 0xd40e ; input: hl = address of high score entries ; de = destination address for high score entries to be copied ld b, $5 ; 5 high score entries to copy .copyHighScoreEntry ld c, $6 ; high score points are 6 bytes long .copyPoints ld a, [hli] ld [de], a inc de dec c jr nz, .copyPoints ld c, $3 ; name is 3 bytes .copyName ld a, [hli] sub $37 ld [de], a inc de dec c jr nz, .copyName ld c, $4 .asm_d424 ; TODO: what are these 4 bytes used for? ld a, [hli] ld [de], a inc de dec c jr nz, .asm_d424 dec b jr nz, .copyHighScoreEntry ret INCLUDE "data/initial_high_scores.asm" ; 0xd42e Func_d46f: ; 0xd46f ld a, [$da81] ld d, a sla a add d ld d, a ld e, $0 srl d rr e srl d rr e srl d rr e ld a, [$da80] add e ld e, a ld hl, $9843 ld a, [wHighScoresStage] and a jr z, .asm_d496 ld hl, $9c43 .asm_d496 add hl, de push hl ld a, [$da81] ld e, a sla e sla e add e sla e add e ld e, a ld a, [$da80] add e ld e, a ld d, $0 ld hl, wRedHighScore1Name ld a, [wHighScoresStage] and a jr z, .asm_d4b8 ld hl, wBlueHighScore1Name .asm_d4b8 add hl, de ld a, [hl] sla a add $90 pop hl call PutTileInVRAM ld de, $0020 add hl, de cp $fe jr z, .asm_d4cb inc a .asm_d4cb call PutTileInVRAM ret Func_d4cf: ; 0xd4cf ld a, [hNewlyPressedButtons] ld b, a ld a, [wHighScoresStage] bit 4, b jr z, .asm_d4e3 and a ret nz ld de, $0003 call PlaySoundEffect jr .asm_d4f0 .asm_d4e3 bit 5, b ret z and a ret z ld de, $0003 call PlaySoundEffect jr .asm_d537 .asm_d4f0 call ClearOAMBuffer call Func_d57b ld a, $a5 ld [$ffa7], a xor a ld [$ffa6], a ld a, $2 ld [hBoardXShift], a ld hl, $ff9e set 5, [hl] ld b, $27 .asm_d508 push bc ld a, $27 sub b bit 0, b call nz, Func_d626 ld hl, $ffa7 dec [hl] dec [hl] dec [hl] dec [hl] ld hl, hBoardXShift inc [hl] inc [hl] inc [hl] inc [hl] rst AdvanceFrame pop bc dec b jr nz, .asm_d508 xor a ld [hBoardXShift], a ld hl, $ff9e res 5, [hl] set 3, [hl] ld a, $1 ld [wHighScoresStage], a call Func_d5d0 ret .asm_d537 call ClearOAMBuffer call Func_d57b ld a, $7 ld [$ffa7], a xor a ld [$ffa6], a ld a, $a0 ld [hBoardXShift], a ld hl, $ff9e set 5, [hl] res 3, [hl] ld b, $27 .asm_d551 push bc ld a, b bit 0, b call nz, Func_d626 ld hl, $ffa7 inc [hl] inc [hl] inc [hl] inc [hl] ld hl, hBoardXShift dec [hl] dec [hl] dec [hl] dec [hl] rst AdvanceFrame pop bc dec b jr nz, .asm_d551 xor a ld [hBoardXShift], a ld hl, $ff9e res 5, [hl] xor a ld [wHighScoresStage], a call Func_d5d0 ret Func_d57b: ; 0xd57b ld a, $f0 ld [hBoardYShift], a xor a ld [$ffab], a ld a, $10 ld [$ffad], a rst AdvanceFrame ld a, BANK(HighScoresTilemap) ld hl, HighScoresTilemap ld de, $9800 ld bc, $0040 call LoadVRAMData ld a, BANK(HighScoresTilemap) ld hl, HighScoresTilemap + $200 ld de, $9a00 ld bc, $0040 call LoadVRAMData ld a, BANK(HighScoresTilemap2) ld hl, HighScoresTilemap2 ld de, $9c00 ld bc, $0040 call LoadVRAMData ld a, BANK(HighScoresTilemap2) ld hl, HighScoresTilemap2 + $200 ld de, $9e00 ld bc, $0040 call LoadVRAMData ld b, $10 .asm_d5c1 push bc ld hl, hBoardYShift inc [hl] ld hl, $ffad dec [hl] rst AdvanceFrame pop bc dec b jr nz, .asm_d5c1 ret Func_d5d0: ; 0xd5d0 ld b, $10 .asm_d5d2 push bc ld hl, hBoardYShift dec [hl] ld hl, $ffad inc [hl] rst AdvanceFrame pop bc dec b jr nz, .asm_d5d2 ld a, BANK(HighScoresTilemap) ld hl, HighScoresTilemap + $3c0 ld de, $9800 ld bc, $0040 call LoadVRAMData ld a, BANK(HighScoresTilemap) ld hl, HighScoresTilemap + $280 ld de, $9a00 ld bc, $0040 call LoadVRAMData ld a, BANK(HighScoresTilemap2) ld hl, HighScoresTilemap2 + $3c0 ld de, $9c00 ld bc, $0040 call LoadVRAMData ld a, BANK(HighScoresTilemap2) ld hl, HighScoresTilemap2 + $280 ld de, $9e00 ld bc, $0040 call LoadVRAMData ld bc, $0009 call Func_d68a xor a ld [hBoardYShift], a ld [$ffab], a ld [$ffad], a ret Func_d626: ; 0xd626 ld c, a ld a, [hGameBoyColorFlag] and a ret z ld a, c srl a sub $2 cp $10 ret nc ld c, a ld b, $0 sla c add c ld c, a ld hl, PointerTable_d65a add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hl] ld h, b ld l, c ld de, $0008 ld bc, $0038 push af call Func_7dc pop af ld de, $0040 ld bc, $0008 call Func_7dc ret PointerTable_d65a: ; 0xd65a dwb $7D00, $23 dwb $7D40, $23 dwb $7D80, $23 dwb $7DC0, $23 dwb $7E00, $23 dwb $7E40, $23 dwb $7E80, $23 dwb $7EC0, $23 dwb $7E00, $35 dwb $7E40, $35 dwb $7E80, $35 dwb $7EC0, $35 dwb $7F00, $35 dwb $7F40, $35 dwb $7F80, $35 dwb $7FC0, $35 Func_d68a: ; 0xd68a push bc ld hl, wPokedexFlags ld bc, (NUM_POKEMON << 8) .asm_d691 bit 1, [hl] jr z, .asm_d696 inc c .asm_d696 inc hl dec b jr nz, .asm_d691 ld a, c pop bc cp NUM_POKEMON ret nz ld hl, vBGMap0 add hl, bc call Func_d6aa ld hl, vBGMap1 add hl, bc ; fall through Func_d6aa: ; 0xd6aa ld a, $56 call PutTileInVRAM inc hl ld a, $57 call PutTileInVRAM ret Func_d6b6: ; 0xd6b6 ld hl, wPokedexFlags ld bc, (NUM_POKEMON << 8) .asm_d6bc bit 1, [hl] jr z, .asm_d6c1 inc c .asm_d6c1 inc hl dec b jr nz, .asm_d6bc ld a, c cp NUM_POKEMON ret nz ld hl, $c289 ld a, $56 ld [hli], a ld a, $57 ld [hli], a ret HandleFieldSelectScreen: ; 0xd6d3 ld a, [wScreenState] rst JumpTable ; calls JumpToFuncInTable FieldSelectScreenFunctions: ; 0xd6d7 dw LoadFieldSelectScreen dw ChooseFieldToPlay dw ExitFieldSelectScreen LoadFieldSelectScreen: ; 0xd6dd ld a, $43 ld [$ff9e], a ld a, $e4 ld [$d80c], a ld a, $d2 ld [$d80d], a ld [$d80e], a xor a ld [hBoardXShift], a ld [hBoardYShift], a ld hl, FieldSelectGfxPointers ld a, [hGameBoyColorFlag] call LoadVideoData call ClearOAMBuffer ld a, $8 ld [wFieldSelectBlinkingBorderFrame], a call Func_b66 ld a, $12 call SetSongBank ld de, $0003 call PlaySong call Func_588 call Func_bbe ld hl, wScreenState inc [hl] ret FieldSelectGfxPointers: ; 0xd71c dw FieldSelectGfx_GameBoy dw FieldSelectGfx_GameBoyColor FieldSelectGfx_GameBoy: ; 0xd720 VIDEO_DATA_TILES FieldSelectScreenGfx, vTiles1 - $100, $d00 VIDEO_DATA_TILEMAP FieldSelectTilemap, vBGMap0, $240 db $FF, $FF ; terminators FieldSelectGfx_GameBoyColor: ; 0xd730 VIDEO_DATA_TILES FieldSelectScreenGfx, vTiles1 - $100, $d00 VIDEO_DATA_TILEMAP FieldSelectTilemap, vBGMap0, $240 VIDEO_DATA_BGATTR FieldSelectBGAttributes, vBGMap0, $240 VIDEO_DATA_PALETTES FieldSelectScreenPalettes, $48 db $FF, $FF ; terminators ChooseFieldToPlay: ; 0xd74e call MoveFieldSelectCursor ld hl, Data_d83d ; todo call AnimateBlinkingFieldSelectBorder ld a, [hNewlyPressedButtons] and (A_BUTTON | B_BUTTON) ret z ld [$d8f6], a ld a, $18 ; number of frames to blink the border after selecting the Field ld [wFieldSelectBlinkingBorderTimer], a ld a, $1 ld [wFieldSelectBlinkingBorderFrame], a ld de, $0001 call PlaySoundEffect ld hl, wScreenState inc [hl] ret ExitFieldSelectScreen: ; 0xd774 ld a, [$d8f6] ; this holds the button that was pressed (A or B) bit BIT_A_BUTTON, a jr z, .didntPressA ld hl, Data_d846 call AnimateBlinkingFieldSelectBorder ld a, [wFieldSelectBlinkingBorderTimer] dec a ld [wFieldSelectBlinkingBorderTimer], a ret nz .didntPressA ld a, [hJoypadState] push af call Func_cb5 call Func_576 ld a, [$d8f6] bit BIT_A_BUTTON, a jr z, .pressedB ld a, [wSelectedFieldIndex] ld c, a ld b, $0 ld hl, StartingStages add hl, bc ld a, [hl] ld [wCurrentStage], a pop af xor a ld [$d7c2], a ld hl, wPartyMons ld de, $a268 ld bc, $04c3 call SaveData xor a ld [$d7c1], a ; Start a round of Pinball! Yayy ld a, SCREEN_PINBALL_GAME ld [wCurrentScreen], a xor a ld [wScreenState], a ret .pressedB pop af ld a, SCREEN_TITLESCREEN ld [wCurrentScreen], a xor a ld [wScreenState], a ret StartingStages: ; 0xd7d1 ; wSelectedFieldIndex is used to index this array db STAGE_RED_FIELD_BOTTOM, STAGE_BLUE_FIELD_BOTTOM MoveFieldSelectCursor: ; 0xd7d3 ; When the player presses Right or Left, the stage is ; illuminated with a blinking border. This function keeps tracks ; of which field is currently selected. ld a, [hPressedButtons] ld b, a ld a, [wSelectedFieldIndex] bit BIT_D_LEFT, b jr z, .didntPressLeft and a ret z ; if cursor is already hovering over Red stage, don't do anything dec a ; move cursor over Red stage ld [wSelectedFieldIndex], a ld de, $003c call PlaySoundEffect ret .didntPressLeft bit BIT_D_RIGHT, b ret z cp $1 ret z ; if cursor is already hovering over Blue stage, don't do anything inc a ; move cursor over Red stage ld [wSelectedFieldIndex], a ld de, $003d call PlaySoundEffect ret AnimateBlinkingFieldSelectBorder: ; 0xd7fb ; This makes the border of the currently-selected Field blink in the Field Select screen. push hl ld a, [wSelectedFieldIndex] sla a ld c, a ld b, $0 ld hl, Data_d84f ; todo add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [$d915] sla a ld e, a ld d, $0 pop hl push hl add hl, de ld a, [hl] call LoadOAMData ld a, [wFieldSelectBlinkingBorderFrame] dec a jr nz, .asm_d838 inc hl inc hl ld a, [hl] and a jr z, .asm_d82b ld a, [$d915] inc a .asm_d82b ld [$d915], a sla a ld c, a ld b, $0 pop hl push hl inc hl add hl, bc ld a, [hl] .asm_d838 ld [wFieldSelectBlinkingBorderFrame], a pop hl ret Data_d83d: dr $d83d, $d846 Data_d846: dr $d846, $d84f Data_d84f: dr $d84f, $d853 HandlePinballGame: ; 0xd853 ld a, [wScreenState] rst JumpTable ; calls JumpToFuncInTable PinballGameScreenFunctions: ; 0xd857 dw Func_d861 dw Func_d87f dw Func_d909 dw Func_da36 dw Func_dab2 Func_d861: ; 0xd861 xor a ld [$d908], a ld [$ff8a], a callba InitializeStage call Func_30e8 ld a, $1 ld [$d85d], a ld [$d4aa], a ld hl, wScreenState inc [hl] ret Func_d87f: ; 0xd87f ld a, $67 ld [$ff9e], a ld a, $e4 ld [$d80c], a ld a, $e1 ld [$d80d], a ld a, $e4 ld [$d80e], a ld a, [$d7ab] ld [hBoardXShift], a xor a ld [hBoardYShift], a ld a, $7 ld [$ffa7], a ld a, $83 ld [$ffa2], a ld [$ffa8], a ld a, $ff ld [$ffaf], a ld hl, $ff9f set 6, [hl] ld hl, rIE set 1, [hl] ld a, $1 ld [$ffb0], a ld [$ff8a], a callba StartBallForStage ld [$ff8a], a callba LoadStageCollisionAttributes ld [$ff8a], a callba Func_e6c2 ld [$ff8a], a callba Func_ed5e call ClearOAMBuffer ld [$ff8a], a callba Func_84b7 ld a, [$d849] and a call nz, Func_e5d ld a, $1 ld [$d4aa], a xor a ld [$d7c1], a call Func_b66 call Func_588 call Func_bbe ld hl, wScreenState inc [hl] ret Func_d909: ; 0xd909 ; main loop for stage logic xor a ld [wFlipperCollision], a ld [$d7eb], a call ApplyGravityToBall call LimitBallVelocity xor a ld [$d7e9], a call HandleTilts ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(HandleFlippers) ld hl, HandleFlippers call nz, BankSwitch ; only perform flipper routines on the lower-half of stages ld a, [wFlipperCollision] and a ld a, [$d7ea] push af call Func_22b5 ; collision stuff pop af jr z, .noFlipperCollision ld [$d7ea], a .noFlipperCollision call Func_2720 ; not collision-related call Func_281c ; not collision-related ld hl, wKeyConfigMenu call IsKeyPressed jr z, .didntPressMenuKey ld de, $034c call PlaySoundEffect ld [$ff8a], a callba HandleInGameMenu jp z, SaveGame .didntPressMenuKey ld a, [$d7e9] ; check for collision flag and a jr z, .asm_d9a2 call ApplyTiltForces call LoadBallVelocity ld a, [$d7ea] call Func_21e7 call Func_222b ld a, [wFlipperCollision] and a jr z, .asm_d993 ld hl, $d7bc ld a, [hli] ld h, [hl] ld l, a ld a, e sub l ld e, a ld a, d sbc h ld d, a ld hl, $d7ba ld a, [hli] ld h, [hl] ld l, a ld a, c add l ld c, a ld a, b adc h ld b, a jr .asm_d999 .asm_d993 ld a, [$d7f8] and a jr nz, .asm_d9a2 .asm_d999 ld a, [$d7ea] call Func_21e5 call SetBallVelocity .asm_d9a2 call MoveBallPosition ld [$ff8a], a callba Func_ece9 ld [$ff8a], a callba Func_84b7 call Func_33e3 ld a, [$d5cb] and a jr nz, .asm_d9e9 ld [$ff8a], a callba Func_85c7 ld [$ff8a], a callba Func_8650 ld [$ff8a], a callba Func_8645 call Func_dba9 call Func_dc7c call Func_dcb4 .asm_d9e9 ld a, [$d57d] and a ld [$ff8a], a ld a, Bank(Func_86a4) ld hl, Func_86a4 call nz, BankSwitch ld a, [$d4ae] and a ret z xor a ld [$d4ae], a ld hl, wScreenState inc [hl] ret SaveGame: ; 0xda05 ld de, $0000 call PlaySong ld bc, $0004 call Func_93f call Func_cb5 ld a, [$d849] and a call nz, Func_e5d call Func_576 ld hl, $ff9f res 6, [hl] ld hl, rIE res 1, [hl] xor a ld [$d4aa], a ld a, SCREEN_TITLESCREEN ld [wCurrentScreen], a xor a ld [wScreenState], a ret Func_da36: ; 0xda36 xor a ld [hJoypadState], a ld [hNewlyPressedButtons], a ld [hPressedButtons], a ld [wFlipperCollision], a ld [$d7eb], a xor a ld [$d7e9], a ld [$d548], a ld [$d549], a call HandleTilts ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(HandleFlippers) ld hl, HandleFlippers call nz, BankSwitch ld [$ff8a], a callba Func_84b7 call Func_33e3 ld [$ff8a], a callba Func_85c7 ld a, [$d5ca] and a ret nz ld a, [$d4c9] and a jr z, .asm_daa9 ld a, [$d49c] cp $2 jr z, .asm_daa9 call Func_f533 ld a, [$d49c] and a jr z, .asm_daa9 ld a, $2 ld [$d49c], a ld [$d4aa], a call Func_30e8 call Func_30db ld hl, $d5dc ld de, ShootAgainText call LoadTextHeader ret .asm_daa9 xor a ld [$d49c], a ld hl, wScreenState inc [hl] ret Func_dab2: ; 0xdab2 xor a ld [$d803], a ld a, [wGameOver] and a jp nz, TransitionToHighScoresScreen ld a, [$d495] and a jr nz, .asm_dae6 ld a, [$d496] and a jr nz, .asm_db28 call Func_cb5 ld a, [$d849] and a call z, Func_e5d call Func_576 ld hl, $ff9f res 6, [hl] ld hl, rIE res 1, [hl] ld a, $1 ld [wScreenState], a ret .asm_dae6 ld de, $0000 call PlaySong ld bc, $0004 call Func_93f call Func_cb5 ld a, [$d849] and a call nz, Func_e5d call Func_576 ld hl, $ff9f res 6, [hl] ld hl, rIE res 1, [hl] ld a, [wCurrentStage] ld [$d4ad], a ld a, [wStageCollisionState] ld [$d4b0], a ld a, [$d497] ld [wCurrentStage], a xor a ld [$d496], a ld [$d495], a ld a, $0 ld [wScreenState], a ret .asm_db28 ld de, $0000 call PlaySong ld bc, $0004 call Func_93f call Func_cb5 ld a, [$d849] and a call nz, Func_e5d call Func_576 ld hl, $ff9f res 6, [hl] ld hl, rIE res 1, [hl] ld a, [$d4ad] ld [wCurrentStage], a ld a, [$d4b0] ld [wStageCollisionState], a ld a, $1 ld [wScreenState], a ret TransitionToHighScoresScreen: ; 0xdb5d xor a ld [wGameOver], a ld de, $0000 call PlaySong ld bc, $0004 call Func_93f call Func_cb5 call Func_576 ld hl, $ff9f res 6, [hl] ld hl, rIE res 1, [hl] xor a ld [$d4aa], a ld a, [wCurrentStage] ld c, a ld b, $0 ld hl, HighScoresStageMapping add hl, bc ld a, [hl] ld [wHighScoresStage], a ld a, SCREEN_HIGH_SCORES ld [wCurrentScreen], a xor a ld [wScreenState], a ret HighScoresStageMapping: ; 0xdb99 ; Determines which stage the high scores screen will start in, ; based on the map the player ended in. ; See wHighScoresStage for more info. db $00 ; STAGE_RED_FIELD_TOP db $00 ; STAGE_RED_FIELD_BOTTOM db $00 db $00 db $01 ; STAGE_BLUE_FIELD_TOP db $01 ; STAGE_BLUE_FIELD_BOTTOM db $00 ; STAGE_GENGAR_BONUS db $00 ; STAGE_GENGAR_BONUS db $00 ; STAGE_MEWTWO_BONUS db $00 ; STAGE_MEWTWO_BONUS db $00 ; STAGE_MEOWTH_BONUS db $00 ; STAGE_MEOWTH_BONUS db $00 ; STAGE_DIGLETT_BONUS db $00 ; STAGE_DIGLETT_BONUS db $00 ; STAGE_SEEL_BONUS db $00 ; STAGE_SEEL_BONUS Func_dba9: ; 0xdba9 ld a, $85 ld [wcBottomMessageText + $144], a ld a, [$d49d] xor $3 inc a add $86 ld [wcBottomMessageText + $145], a ret Func_dbba: ; 0xdbba ld a, $1 ld [wBallSaverIconOn], a ld a, $ff ld [$d4a2], a ld a, $3b ld [wBallSaverTimerFrames], a ld a, $14 ld [wBallSaverTimerSeconds], a ld a, $2 ld [$d4a5], a ret InitBallSaverForCatchEmMode: ; 0xdbd4 ld a, [wBallSaverTimerFrames] ld [wBallSaverTimerFramesBackup], a ld a, [wBallSaverTimerSeconds] ld [wBallSaverTimerSecondsBackup], a ld a, [$d4a5] ld [$d4a8], a ld a, $0 ld [wBallSaverIconOn], a ld a, $ff ld [$d4a2], a ld a, 59 ld [wBallSaverTimerFrames], a ld a, 60 ld [wBallSaverTimerSeconds], a ld a, $ff ld [$d4a5], a ret Func_dc00: ; 0xdc00 ld a, [wBallSaverTimerFramesBackup] ld [wBallSaverTimerFrames], a ld a, [wBallSaverTimerSecondsBackup] ld [wBallSaverTimerSeconds], a ld a, [$d4a8] ld [$d4a5], a ld a, [wBallSaverTimerSeconds] and a jr z, .asm_dc1a ld a, $1 .asm_dc1a ld [wBallSaverIconOn], a ld a, [wBallSaverTimerSeconds] ld c, $0 cp $2 jr c, .asm_dc34 ld c, $4 cp $6 jr c, .asm_dc34 ld c, $10 cp $b jr c, .asm_dc34 ld c, $ff .asm_dc34 ld a, c ld [$d4a2], a ld a, [wCurrentStage] bit 0, a ret z ld [$ff8a], a callba Func_14707 ret Func_dc49: ; 0xdc49 ld a, [wCurrentStage] rst JumpTable ; calls JumpToFuncInTable CallTable_dc4d: ; 0xdc4d ; STAGE_RED_FIELD_TOP dw Func_dd76 ; STAGE_RED_FIELD_BOTTOM dw Func_dd76 dw Func_de4e dw Func_de4e ; STAGE_BLUE_FIELD_TOP dw Func_de4f ; STAGE_BLUE_FIELD_TOP dw Func_de4f ; STAGE_GENGAR_BONUS dw Func_df1a ; STAGE_GENGAR_BONUS dw Func_df1a ; STAGE_MEWTWO_BONUS dw Func_df7e ; STAGE_MEWTWO_BONUS dw Func_df7e ; STAGE_MEOWTH_BONUS dw Func_dfe2 ; STAGE_MEOWTH_BONUS dw Func_dfe2 ; STAGE_DIGLETT_BONUS dw Func_e056 ; STAGE_DIGLETT_BONUS dw Func_e056 ; STAGE_SEEL_BONUS dw Func_e08b ; STAGE_SEEL_BONUS dw Func_e08b Func_dc6d: ; 0xdc6d push de call Func_30e8 call Func_30db ld hl, $d5dc pop de call LoadTextHeader ret Func_dc7c: ; 0xdc7c ld hl, wcBottomMessageText + $140 ld a, $83 ld [hli], a ld a, $81 ld [hli], a ld a, $81 ld [hl], a ld a, [wNumPartyMons] call ConvertHexByteToDecWord ld hl, wcBottomMessageText + $141 ld c, $1 ld a, d call .asm_dca0 ld a, e swap a call .asm_dca0 ld a, e ld c, $0 .asm_dca0 and $f jr nz, .asm_dca7 ld a, c and a ret nz .asm_dca7 ld c, $0 add $86 ld [hli], a ret dr $dcad, $dcb4 Func_dcb4: ; 0xdcb4 ld a, [$d517] cp $f ld a, $81 jr nz, .asm_dcbf ld a, $84 .asm_dcbf ld [wcBottomMessageText + $146], a ret LoadBallGfx: ; 0xdcc3 xor a ld [$d4c8], a ld a, [wBallType] cp GREAT_BALL jr nc, .notPokeBall ld a, Bank(PinballPokeballGfx) ld hl, PinballPokeballGfx ld de, $8400 ld bc, $0200 call Func_735 ret .notPokeBall cp ULTRA_BALL jr nc, .notGreatBall ld a, Bank(PinballGreatballGfx) ld hl, PinballGreatballGfx ld de, $8400 ld bc, $0200 call Func_735 ret .notGreatBall cp MASTER_BALL jr nc, .notUltraBall ld a, Bank(PinballUltraballGfx) ld hl, PinballUltraballGfx ld de, $8400 ld bc, $0200 call Func_735 ret .notUltraBall ld a, Bank(PinballMasterballGfx) ld hl, PinballMasterballGfx ld de, $8400 ld bc, $0200 call Func_735 ret LoadMiniBallGfx: ; 0xdd12 ld a, $1 ld [$d4c8], a ld a, [wBallType] cp GREAT_BALL jr nc, .notPokeBall ld a, Bank(PinballPokeballMiniGfx) ld hl, PinballPokeballMiniGfx ld de, $8400 ld bc, $0200 call Func_735 ret .notPokeBall cp ULTRA_BALL jr nc, .notGreatBall ld a, Bank(PinballGreatballMiniGfx) ld hl, PinballGreatballMiniGfx ld de, $8400 ld bc, $0200 call Func_735 ret .notGreatBall cp MASTER_BALL jr nc, .notUltraBall ld a, Bank(PinballUltraballMiniGfx) ld hl, PinballUltraballMiniGfx ld de, $8400 ld bc, $0200 call Func_735 ret .notUltraBall ld a, Bank(PinballMasterballMiniGfx) ld hl, PinballMasterballMiniGfx ld de, $8400 ld bc, $0200 call Func_735 ret Func_dd62: ; 0xdd62 ld a, $2 ld [$d4c8], a ld a, $2a ld hl, PinballBallMiniGfx ld de, $8400 ld bc, $0200 call Func_735 ret Func_dd76: ; 0xdd76 ld a, [wBallSaverTimerFrames] ld hl, wBallSaverTimerSeconds or [hl] jr z, .asm_dda3 ld a, [$d4a5] bit 7, a jr nz, .asm_dd9c dec a ld [$d4a5], a push af ld de, $28c9 call Func_dc6d pop af jr nz, .asm_dd9c ld a, $1 ld [wBallSaverTimerFrames], a ld [wBallSaverTimerSeconds], a .asm_dd9c ld de, $1502 call PlaySoundEffect ret .asm_dda3 ld de, $0000 call PlaySong ld bc, $001e call Func_93f ld de, $2524 call PlaySoundEffect call Func_dbba ld a, $1 ld [$d4c9], a xor a ld [$d4de], a ld [$d4df], a call Func_ddfd ld a, [$d49b] and a jr z, .asm_dddd dec a ld [$d49b], a ld a, $1 ld [$d49c], a ld de, $28ee call Func_dc6d ret .asm_dddd ld a, [$d49d] ld hl, $d49e cp [hl] jr z, .asm_ddf1 inc a ld [$d49d], a ld de, $28ee call Func_dc6d ret .asm_ddf1 ld de, $28ee call Func_dc6d ld a, $1 ld [wGameOver], a ret Func_ddfd: ; 0xddfd ld a, [wInSpecialMode] and a ret z ld a, [wSpecialMode] and a jr nz, .asm_de14 ld [$ff8a], a callba Func_10157 jr .asm_de40 .asm_de14 cp $1 jr nz, .asm_de2d xor a ld [$d604], a ld a, $1e ld [$d607], a ld [$ff8a], a callba Func_10ac8 jr .asm_de40 .asm_de2d xor a ld [$d604], a ld a, $1e ld [$d607], a ld [$ff8a], a callba Func_3022b .asm_de40 ld a, [$d7ad] ld c, a ld a, [wStageCollisionState] and $1 or c ld [wStageCollisionState], a ret Func_de4e: ; 0xde4e ret Func_de4f: ; 0xde4f ld a, [wBallSaverTimerFrames] ld hl, wBallSaverTimerSeconds or [hl] jr z, .asm_de7c ld a, [$d4a5] bit 7, a jr nz, .asm_de75 dec a ld [$d4a5], a push af ld de, $28c9 call Func_dc6d pop af jr nz, .asm_de75 ld a, $1 ld [wBallSaverTimerFrames], a ld [wBallSaverTimerSeconds], a .asm_de75 ld de, $1502 call PlaySoundEffect ret .asm_de7c ld de, $0000 call PlaySong ld bc, $001e call Func_93f ld de, $2524 call PlaySoundEffect call Func_dbba ld a, $1 ld [$d4c9], a xor a ld [$d4de], a ld [$d4df], a call Func_ded6 ld a, [$d49b] and a jr z, .asm_deb6 dec a ld [$d49b], a ld a, $1 ld [$d49c], a ld de, $28ee call Func_dc6d ret .asm_deb6 ld a, [$d49d] ld hl, $d49e cp [hl] jr z, .asm_deca inc a ld [$d49d], a ld de, $28ee call Func_dc6d ret .asm_deca ld de, $28ee call Func_dc6d ld a, $1 ld [wGameOver], a ret Func_ded6: ; 0xded6 ld a, [wInSpecialMode] and a ret z ld a, [wSpecialMode] and a jr nz, .asm_deec ld [$ff8a], a callba Func_10157 ret .asm_deec cp $1 jr nz, .asm_df05 ld a, $0 ld [$d604], a ld a, $1e ld [$d607], a ld [$ff8a], a callba Func_10ac8 ret .asm_df05 ld a, $0 ld [$d604], a ld a, $1e ld [$d607], a ld [$ff8a], a callba Func_3022b ret Func_df1a: ; 0xdf1a ld a, [$d4ad] ld hl, wCurrentStage cp [hl] ret z ld a, [$d6a8] and a jr nz, .asm_df57 ld a, [$d6a2] cp $5 jr c, .asm_df50 xor a ld [$d4ae], a ld a, [$d6a7] and a ret nz ld [$d548], a ld [$d549], a ld [wBallSpin], a ld [wBallRotation], a ld hl, wBallXVelocity ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld a, $1 ld [$d6a7], a .asm_df50 ld de, $0002 call PlaySoundEffect ret .asm_df57 xor a ld [$d495], a ld a, $1 ld [$d496], a ld a, $2 ld [$d4c8], a xor a ld [$d7ac], a ld a, [$d49a] and a ret nz call Func_30e8 call Func_30db ld hl, $d5dc ld de, Data_2f04 call LoadTextHeader ret Func_df7e: ; 0xdf7e ld a, [$d4ad] ld hl, wCurrentStage cp [hl] ret z ld a, [$d6b3] and a jr nz, .asm_dfbb ld a, [$d6b1] cp $8 jr c, .asm_dfb4 xor a ld [$d4ae], a ld a, [$d6b2] and a ret nz ld [$d548], a ld [$d549], a ld [wBallSpin], a ld [wBallRotation], a ld hl, wBallXVelocity ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld a, $1 ld [$d6b2], a .asm_dfb4 ld de, $000b call PlaySoundEffect ret .asm_dfbb xor a ld [$d495], a ld a, $1 ld [$d496], a ld a, $2 ld [$d4c8], a xor a ld [$d7ac], a ld a, [$d49a] and a ret nz call Func_30e8 call Func_30db ld hl, $d5dc ld de, Data_2f1c call LoadTextHeader ret Func_dfe2: ; 0xdfe2 xor a ld [$d64e], a ld a, [$d7be] and a jr z, .asm_dff2 ld a, [$d49a] and a jr z, .asm_e00f .asm_dff2 ld a, [wMeowthStageScore] cp $14 jr nc, .asm_e00f cp $5 jr c, .asm_e001 sub $4 jr .asm_e002 .asm_e001 xor a .asm_e002 ld [wMeowthStageScore], a ld [$ff8a], a callba Func_24fa3 .asm_e00f ld a, [$d4ad] ld hl, wCurrentStage cp [hl] ret z ld a, [$d712] cp $0 jr nz, .asm_e025 ld de, $0002 call PlaySoundEffect ret .asm_e025 xor a ld [$d57e], a ld [$d57d], a xor a ld [$d495], a ld a, $1 ld [$d496], a ld a, $2 ld [$d4c8], a xor a ld [$d7ac], a ld [$d712], a ld a, [$d49a] and a ret nz call Func_30e8 call Func_30db ld hl, $d5dc ld de, Data_2f4d call LoadTextHeader ret Func_e056: ; 0xe056 ld a, [$d4ad] ld hl, wCurrentStage cp [hl] ret z ld de, $000b call PlaySoundEffect xor a ld [$d495], a ld a, $1 ld [$d496], a ld a, $2 ld [$d4c8], a xor a ld [$d7ac], a ld a, [$d49a] and a ret nz call Func_30e8 call Func_30db ld hl, $d5dc ld de, Data_2f34 call LoadTextHeader ret Func_e08b: ; 0xe08b xor a ld [$d64e], a ld a, [$d7be] and a jr z, .asm_e09b ld a, [$d49a] and a jr z, .asm_e0b8 .asm_e09b ld a, [$d793] cp $14 jr nc, .asm_e0b8 cp $5 jr c, .asm_e0aa sub $4 jr .asm_e0ab .asm_e0aa xor a .asm_e0ab ld [$d793], a ld [$ff8a], a callba Func_262f4 .asm_e0b8 ld a, [$d4ad] ld hl, wCurrentStage cp [hl] ret z ld a, [$d794] cp $0 jr nz, .asm_e0c8 ret .asm_e0c8 ld de, $0002 call PlaySoundEffect xor a ld [$d57d], a ld [$d57d], a ld [$d495], a ld a, $1 ld [$d496], a ld a, $2 ld [$d4c8], a xor a ld [$d7ac], a ld [$d794], a ld a, [$d49a] and a ret nz call Func_30e8 call Func_30db ld hl, $d5dc ld de, Data_2f65 call LoadTextHeader ret HandleFlippers: ; 0xe0fe xor a ld [wFlipperCollision], a ld [hFlipperYCollisionAttribute], a ld [$d7ba], a ld [$d7bb], a call Func_e118 call CheckFlipperCollision ld a, [wFlipperCollision] and a call nz, HandleFlipperCollision ret Func_e118: ; 0xe118 call PlayFlipperSoundIfPressed ld a, [$d7af] ld [wLeftFlipperAnimationState], a ld a, [$d7b3] ld [wRightFlipperAnimationState], a ld hl, wKeyConfigLeftFlipper call IsKeyPressed2 ld hl, -$0333 jr z, .asm_e13b ld a, [$d7be] and a jr nz, .asm_e13b ld hl, $0333 .asm_e13b ld a, [$d7af] and a jr nz, .asm_e145 bit 7, h jr nz, .asm_e14d .asm_e145 cp $f jr nz, .asm_e150 bit 7, h jr nz, .asm_e150 .asm_e14d ld hl, $0000 .asm_e150 ld a, l ld [$d7b0], a ld a, h ld [$d7b1], a ld a, [$d7ae] ld c, a ld a, [$d7af] ld b, a add hl, bc bit 7, h jr nz, .asm_e16f ld a, h cp $10 jr c, .asm_e172 ld hl, $0f00 jr .asm_e172 .asm_e16f ld hl, $0000 .asm_e172 ld a, l ld [$d7ae], a ld a, h ld [$d7af], a ld hl, wKeyConfigRightFlipper call IsKeyPressed2 ld hl, -$0333 jr z, .asm_e18e ld a, [$d7be] and a jr nz, .asm_e18e ld hl, $0333 .asm_e18e ld a, [$d7b3] and a jr nz, .asm_e198 bit 7, h jr nz, .asm_e1a0 .asm_e198 cp $f jr nz, .asm_e1a3 bit 7, h jr nz, .asm_e1a3 .asm_e1a0 ld hl, $0000 .asm_e1a3 ld a, l ld [$d7b4], a ld a, h ld [$d7b5], a ld a, [$d7b2] ld c, a ld a, [$d7b3] ld b, a add hl, bc bit 7, h jr nz, .asm_e1c2 ld a, h cp $10 jr c, .asm_e1c5 ld hl, $0f00 jr .asm_e1c5 .asm_e1c2 ld hl, $0000 .asm_e1c5 ld a, l ld [$d7b2], a ld a, h ld [$d7b3], a ret PlayFlipperSoundIfPressed: ; 0xe1ce ld a, [$d7be] and a ret nz ld hl, wKeyConfigLeftFlipper call IsKeyPressed jr z, .asm_e1e2 ld de, $000c call PlaySoundEffect ret .asm_e1e2 ld hl, wKeyConfigRightFlipper call IsKeyPressed ret z ld de, $000c call PlaySoundEffect ret CheckFlipperCollision: ; 0xe1f0 ld a, [wBallXPos + 1] cp $50 ; which half of the screen is the ball in? jp nc, CheckRightFlipperCollision ; right half of screen ; fall through CheckLeftFlipperCollision: ld hl, wBallXPos ld c, $ba ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [wLeftFlipperAnimationState] ld [$ffc2], a ld a, [$d7af] ld [$ffc3], a call ReadFlipperCollisionAttributes ld a, [wFlipperCollision] and a ret z ld a, [$d7b0] ld [$ffc0], a ld a, [$d7b1] ld [$ffc1], a ret CheckRightFlipperCollision: ; 0xe226 ; ball is in right half of screen ld hl, wBallXPos ld c, $ba ld a, [hli] sub $1 cpl ld [$ff00+c], a inc c ld a, [hli] sbc $a0 cpl ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [hli] ld [$ff00+c], a inc c ld a, [wRightFlipperAnimationState] ld [$ffc2], a ld a, [$d7b3] ld [$ffc3], a call ReadFlipperCollisionAttributes ld a, [wFlipperCollision] and a ret z ; collision with flipper occurred ld a, [$d7b4] ld [$ffc0], a ld a, [$d7b5] ld [$ffc1], a ret ReadFlipperCollisionAttributes: ; 0xe25a ld a, [$ffbb] ; ball x-position high byte sub $2b ; check if ball is in x-position range of flippers ret c cp $30 ret nc ; ball is in x-position range of flippers ld [$ffbb], a ; x offset of flipper horizontal range ld a, [$ffbd] ; ball y-position high byte sub $7b ; check if ball is in y-position range of flippers ret c cp $20 ret nc ; ball is in potential collision with flippers ld [$ffbd], a ; y offset of flipper vertical range ld a, [$ffc2] ; flipper animation state .asm_e270 push af ld l, $0 ld h, a ; multiply a by 0x600 sla a sla h sla h add h ld h, a ; hl = a * 0x600 (this is the length of the flipper collision attributes) ld a, [$ffbb] ; x offset of flipper horizontal range ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b sla c rl b sla c rl b ; bc = (x offset of flipper horizontal range) * 32 ; Each row of the flipper collision attributes is 32 bytes long. add hl, bc ; hl points to the start of the row in the flipper collisoin attributes ld a, [$ffbd] ; y offset of flipper vertical range ld c, a ld b, $0 add hl, bc ; hl points to the attribute byte in the flipper collision attributes ld d, h ld e, l ; de points to the attribute byte in the flipper collision attributes ld a, h cp $40 jr nc, .secondBank add $40 ld h, a ld a, Bank(FlipperHorizontalCollisionAttributes) jr .readAttributeByte .secondBank ld a, Bank(FlipperHorizontalCollisionAttributes2) .readAttributeByte call ReadByteFromBank ld b, a and a jr nz, .collision ; no collision pop af ; a = flipper animation state(?) ld hl, $ffc3 cp [hl] ret z jr c, .asm_e2be dec a jr .asm_e270 .asm_e2be inc a jr .asm_e270 .collision pop af ; a = flipper animation state(?) ld a, b ; a = collision attribute ld [hFlipperYCollisionAttribute], a ld h, d ld l, e ld a, h cp $20 jr nc, .asm_e2d3 add $60 ld h, a ld a, Bank(FlipperVerticalCollisionAttributes) jr .asm_e2d8 .asm_e2d3 add $20 ld h, a ld a, Bank(FlipperVerticalCollisionAttributes2) .asm_e2d8 call ReadByteFromBank ld [wFlipperXCollisionAttribute], a ld a, $1 ld [wFlipperCollision], a ret dr $e2e4, $e379 Func_e379: ; 0xe379 ld a, b xor d ld [$ffbe], a bit 7, b jr z, .asm_e388 ld a, c cpl ld c, a ld a, b cpl ld b, a inc bc .asm_e388 bit 7, d jr z, .asm_e393 ld a, e cpl ld e, a ld a, d cpl ld d, a inc de .asm_e393 push bc push de ld c, d call Func_e410 pop de pop bc push hl push bc push de ld c, e call Func_e410 pop de pop bc push hl push bc push de ld b, d call Func_e410 pop de pop bc push hl ld b, e call Func_e410 ld c, l ld l, h xor a ld h, a pop de add hl, de rl a pop de add hl, de jr nc, .asm_e3bf inc a .asm_e3bf ld b, l Data_e3c0: ld l, h ld h, a pop de add hl, de ld a, [$ffbe] bit 7, a ret z ld a, c sub $1 cpl ld c, a ld a, b sbc $0 cpl ld b, a ld a, l sbc $0 cpl ld l, a ld a, h sbc $0 cpl ld h, a ret dr $e3de, $e410 Func_e410: ; 0xe410 ld a, b cp c jr nc, .asm_e416 ld b, c ld c, a .asm_e416 ld h, $3e ld l, c ld e, [hl] inc h ld d, [hl] ld l, b ld a, [hl] dec h ld l, [hl] ld h, a add hl, de push af ld d, $3e ld a, b sub c ld e, a ld a, [de] ld c, a inc d ld a, [de] ld b, a ld a, l sub c ld l, a ld a, h sbc b ld h, a jr nc, .asm_e43c pop af ccf rr h rr l ret .asm_e43c pop af rr h rr l ret HandleFlipperCollision: ; 0xe442 ; This is called when the ball is colliding with either the ; right or left flipper. ld a, $1 ld [$d7e9], a xor a ld [$d7f3], a ld [$d7f4], a ld [$d7f5], a ld [$d7f6], a ld [$d7f7], a ld a, [hFlipperYCollisionAttribute] sla a ld c, a ld b, $0 ld hl, Data_e538 add hl, bc ld a, [hli] ld c, a ld a, [hl] ld b, a ld a, [$ffc0] ld e, a ld a, [$ffc1] ld d, a sla e rl d sla e rl d ; multiplied de by 4 call Func_e379 ld a, b ld [$d7bc], a ld a, l ld [$d7bd], a ld a, [wBallXPos + 1] cp $50 ; which flipper did the ball hit? ld a, [wFlipperXCollisionAttribute] jr c, .asm_e48b cpl ; invert the x collision attribute inc a .asm_e48b ld [$d7ea], a ld a, $1 ld [$d7eb], a ld a, [$d7bd] bit 7, a ret z xor a ld [$d7bc], a ld [$d7bd], a ret Func_e4a1: ; 0xe4a1 ld a, [wCurrentStage] and a ret z ld hl, Data_e50a ld a, [hBoardXShift] ld d, a ld a, [hBoardYShift] ld e, a ld a, [hli] sub d ld b, a ld a, [hli] sub e ld c, a push hl ld hl, Data_e50e ld a, [$d7af] ld e, a ld d, $0 add hl, de ld a, [hl] cp $b jr nz, .asm_e4d6 ld a, [hGameBoyColorFlag] and a jr nz, .asm_e4d4 ld a, [$d7be] and a jr z, .asm_e4d4 ld a, $18 jr .asm_e4d6 .asm_e4d4 ld a, $b .asm_e4d6 call LoadOAMData pop hl ld a, [hBoardXShift] ld d, a ld a, [hBoardYShift] ld e, a ld a, [hli] sub d ld b, a ld a, [hli] sub e ld c, a ld hl, Data_e523 ld a, [$d7b3] ld e, a ld d, $0 add hl, de ld a, [hl] cp $8 jr nz, .asm_e506 ld a, [hGameBoyColorFlag] and a jr nz, .asm_e504 ld a, [$d7be] and a jr z, .asm_e504 ld a, $17 jr .asm_e506 .asm_e504 ld a, $8 .asm_e506 call LoadOAMData ret Data_e50a: dr $e50a, $e50e Data_e50e: dr $e50e, $e523 Data_e523: dr $e523, $e538 Data_e538: ; 0xe538 dw $0000 dw $000C dw $001C dw $0030 dw $0038 dw $0048 dw $005C dw $006C dw $0070 dw $0080 dw $0094 dw $00A4 dw $00B4 dw $00C4 dw $00D4 dw $00E4 dw $00F8 dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC dw $00FC LoadStageCollisionAttributes: ; 0xe578 ld a, [wCurrentStage] sla a ld c, a ld b, $0 ld hl, StageCollisionAttributesPointers add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, [hli] and a jr z, .asm_e598 ld a, [wStageCollisionState] sla a ld c, a sla a add c ld c, a ld b, $0 ; bc = 6 * [wStageCollisionState] add hl, bc .asm_e598 ld de, wStageCollisionMapPointer ld b, $6 .asm_e59d ld a, [hli] ld [de], a inc de dec b jr nz, .asm_e59d call LoadCollisionAttributes ret StageCollisionAttributesPointers: ; 0xe5a7 dw StageRedFieldTopCollisionAttributesPointers dw StageRedFieldBottomCollisionAttributesPointers dw StageUnusedCollisionAttributesPointers dw StageUnused2CollisionAttributesPointers dw StageBlueFieldTopCollisionAttributesPointers dw StageBlueFieldBottomCollisionAttributesPointers dw StageGengarBonusCollisionAttributesPointers dw StageGengarBonusCollisionAttributesPointers dw StageMewtwoBonusCollisionAttributesPointers dw StageMewtwoBonusCollisionAttributesPointers dw StageMeowthBonusCollisionAttributesPointers dw StageMeowthBonusCollisionAttributesPointers dw StageDiglettBonusCollisionAttributesPointers dw StageDiglettBonusCollisionAttributesPointers dw StageSeelBonusCollisionAttributesPointers dw StageSeelBonusCollisionAttributesPointers StageRedFieldTopCollisionAttributesPointers: ; 0xe5c7 db $01 ; multiple pair entries dwb StageRedFieldTopCollisionAttributes0, Bank(StageRedFieldTopCollisionAttributes0) dwb StageRedFieldTopCollisionMasks0, Bank(StageRedFieldTopCollisionMasks0) dwb StageRedFieldTopCollisionAttributes1, Bank(StageRedFieldTopCollisionAttributes1) dwb StageRedFieldTopCollisionMasks0, Bank(StageRedFieldTopCollisionMasks0) dwb StageRedFieldTopCollisionAttributes2, Bank(StageRedFieldTopCollisionAttributes2) dwb StageRedFieldTopCollisionMasks1, Bank(StageRedFieldTopCollisionMasks1) dwb StageRedFieldTopCollisionAttributes3, Bank(StageRedFieldTopCollisionAttributes3) dwb StageRedFieldTopCollisionMasks1, Bank(StageRedFieldTopCollisionMasks1) dwb StageRedFieldTopCollisionAttributes4, Bank(StageRedFieldTopCollisionAttributes4) dwb StageRedFieldTopCollisionMasks2, Bank(StageRedFieldTopCollisionMasks2) dwb StageRedFieldTopCollisionAttributes5, Bank(StageRedFieldTopCollisionAttributes5) dwb StageRedFieldTopCollisionMasks2, Bank(StageRedFieldTopCollisionMasks2) dwb StageRedFieldTopCollisionAttributes6, Bank(StageRedFieldTopCollisionAttributes6) dwb StageRedFieldTopCollisionMasks3, Bank(StageRedFieldTopCollisionMasks3) dwb StageRedFieldTopCollisionAttributes7, Bank(StageRedFieldTopCollisionAttributes7) dwb StageRedFieldTopCollisionMasks3, Bank(StageRedFieldTopCollisionMasks3) StageRedFieldBottomCollisionAttributesPointers: ; 0xe5f8 db $00 ; single pair entry dwb StageRedFieldBottomCollisionAttributes, Bank(StageRedFieldBottomCollisionAttributes) dwb StageRedFieldBottomCollisionMasks, Bank(StageRedFieldBottomCollisionMasks) StageUnusedCollisionAttributesPointers: ; 0xe5ff ; This entry is never used db $00 StageUnused2CollisionAttributesPointers: ; 0xe600 ; This entry is never used db $00 StageBlueFieldTopCollisionAttributesPointers: ; 0xe601 db $01 ; multiple pair entries dwb StageBlueFieldTopCollisionAttributesBallEntrance, Bank(StageBlueFieldTopCollisionAttributesBallEntrance) dwb StageBlueFieldTopCollisionMasks, Bank(StageBlueFieldTopCollisionMasks) dwb StageBlueFieldTopCollisionAttributes, Bank(StageBlueFieldTopCollisionAttributes) dwb StageBlueFieldTopCollisionMasks, Bank(StageBlueFieldTopCollisionMasks) StageBlueFieldBottomCollisionAttributesPointers: ; 0xe60e db $00 ; single pair entry dwb StageBlueFieldBottomCollisionAttributes, Bank(StageBlueFieldBottomCollisionAttributes) dwb StageBlueFieldBottomCollisionMasks, Bank(StageBlueFieldBottomCollisionMasks) StageGengarBonusCollisionAttributesPointers: ; 0xe615 db $01 ; multiple pair entries dwb StageGengarBonusCollisionAttributesBallEntrance, Bank(StageGengarBonusCollisionAttributesBallEntrance) dwb StageGengarBonusCollisionMasks, Bank(StageGengarBonusCollisionMasks) dwb StageGengarBonusCollisionAttributes, Bank(StageGengarBonusCollisionAttributes) dwb StageGengarBonusCollisionMasks, Bank(StageGengarBonusCollisionMasks) StageMewtwoBonusCollisionAttributesPointers: ; 0xe622 db $01 ; multiple pair entries dwb StageMewtwoBonusCollisionAttributesBallEntrance, Bank(StageMewtwoBonusCollisionAttributesBallEntrance) dwb StageMewtwoBonusCollisionMasks, Bank(StageMewtwoBonusCollisionMasks) dwb StageMewtwoBonusCollisionAttributes, Bank(StageMewtwoBonusCollisionAttributes) dwb StageMewtwoBonusCollisionMasks, Bank(StageMewtwoBonusCollisionMasks) StageMeowthBonusCollisionAttributesPointers: ; 0xe62f db $01 ; multiple pair entries dwb StageMeowthBonusCollisionAttributesBallEntrance, Bank(StageMeowthBonusCollisionAttributesBallEntrance) dwb StageMeowthBonusCollisionMasks, Bank(StageMeowthBonusCollisionMasks) dwb StageMeowthBonusCollisionAttributes, Bank(StageMeowthBonusCollisionAttributes) dwb StageMeowthBonusCollisionMasks, Bank(StageMeowthBonusCollisionMasks) StageDiglettBonusCollisionAttributesPointers: ; 0xe63c db $01 ; multiple pair entries dwb StageDiglettBonusCollisionAttributesBallEntrance, Bank(StageDiglettBonusCollisionAttributesBallEntrance) dwb StageDiglettBonusCollisionMasks, Bank(StageDiglettBonusCollisionMasks) dwb StageDiglettBonusCollisionAttributes, Bank(StageDiglettBonusCollisionAttributes) dwb StageDiglettBonusCollisionMasks, Bank(StageDiglettBonusCollisionMasks) StageSeelBonusCollisionAttributesPointers: ; 0xe649 db $01 ; multiple pair entries dwb StageSeelBonusCollisionAttributesBallEntrance, Bank(StageSeelBonusCollisionAttributesBallEntrance) dwb StageSeelBonusCollisionMasks, Bank(StageSeelBonusCollisionMasks) dwb StageSeelBonusCollisionAttributes, Bank(StageSeelBonusCollisionAttributes) dwb StageSeelBonusCollisionMasks, Bank(StageSeelBonusCollisionMasks) LoadCollisionAttributes: ; 0xe656 ; Loads the stage's collision attributes into RAM ; Input: [wStageCollisionMapPointer] = pointer to collision attributes map ; [wStageCollisionMapBank] = ROM bank of collision attributes map ld hl, wStageCollisionMapPointer ld a, [hli] ld h, [hl] ld l, a ld a, [wStageCollisionMapBank] ld de, wStageCollisionMap ld bc, $0300 call FarCopyData ld hl, wStageCollisionMapPointer ld [hl], (wStageCollisionMap & $ff) inc hl ld [hl], (wStageCollisionMap >> 8) inc hl ld [hl], $0 ; Bank 0, because the data is in WRAM, so it doesn't matter which bank is saved ret Func_e674: ; 0xe674 push af ld a, [$d548] push af xor a ld [$d548], a ld [$d803], a ld [$ff8a], a callba Func_84b7 call Func_926 pop af ld [$d548], a pop af ld [wCurrentStage], a xor a ld [$ffa3], a ld [$ffa4], a ld [$ffa5], a rst AdvanceFrame call Func_e5d call Func_576 call ClearOAMBuffer call Func_1129 call LoadStageCollisionAttributes call Func_e6c2 call Func_e5d call Func_588 ld a, $e4 ld [$ffa3], a ld a, $e1 ld [$ffa4], a ld a, $e4 ld [$ffa5], a ret Func_e6c2: ; 0xe6c2 ld a, [wCurrentStage] bit 0, a ld a, $86 jr z, .asm_e6d5 ld a, [$d5ca] and a ld a, $86 jr nz, .asm_e6d5 ld a, $90 .asm_e6d5 ld [$ffa6], a ld hl, StageGfxPointers_GameBoy ld a, [hGameBoyColorFlag] and a jr z, .loadData ld hl, StageGfxPointers_GameBoyColor .loadData ld a, [wCurrentStage] call LoadVideoData xor a ld [$d7f2], a ld [$ff8a], a callba Func_8471 ret StageGfxPointers_GameBoy: ; 0xe6f7 dw StageRedFieldTopGfx_GameBoy dw StageRedFieldBottomGfx_GameBoy dw VideoData_e896 dw VideoData_e8bd dw StageBlueFieldTopGfx_GameBoy dw StageBlueFieldBottomGfx_GameBoy dw StageGengarBonusGfx_GameBoy dw StageGengarBonusGfx_GameBoy dw StageMewtwoBonusGfx_GameBoy dw StageMewtwoBonusGfx_GameBoy dw StageMeowthBonusGfx_GameBoy dw StageMeowthBonusGfx_GameBoy dw StageDiglettBonusGfx_GameBoy dw StageDiglettBonusGfx_GameBoy dw StageSeelBonusGfx_GameBoy dw StageSeelBonusGfx_GameBoy StageGfxPointers_GameBoyColor: ; 0xe717 dw StageRedFieldTopGfx_GameBoyColor dw StageRedFieldBottomGfx_GameBoyColor dw VideoData_e8a6 dw VideoData_e8d4 dw StageBlueFieldTopGfx_GameBoyColor dw StageBlueFieldBottomGfx_GameBoyColor dw StageGengarBonusGfx_GameBoyColor dw StageGengarBonusGfx_GameBoyColor dw StageMewtwoBonusGfx_GameBoyColor dw StageMewtwoBonusGfx_GameBoyColor dw StageMeowthBonusGfx_GameBoyColor dw StageMeowthBonusGfx_GameBoyColor dw StageDiglettBonusGfx_GameBoyColor dw StageDiglettBonusGfx_GameBoyColor dw StageSeelBonusGfx_GameBoyColor dw StageSeelBonusGfx_GameBoyColor StageRedFieldTopGfx_GameBoy: ; 0xe737 VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES StageRedFieldTopGfx1, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 VIDEO_DATA_TILES StageRedFieldTopGfx2, vTiles0 + $600, $200 VIDEO_DATA_TILES StageRedFieldTopStatusBarSymbolsGfx_GameBoy, vTiles1, $100 VIDEO_DATA_TILES StageRedFieldTopGfx3, vTiles1 + $100, $1a0 VIDEO_DATA_TILES StageRedFieldTopBaseGameBoyGfx, vTiles1 + $2a0, $d60 VIDEO_DATA_TILEMAP StageRedFieldTopTilemap_GameBoy, vBGMap0, $400 db $FF, $FF ; terminators StageRedFieldTopGfx_GameBoyColor: ; 0xe771 VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES StageRedFieldTopGfx1, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 VIDEO_DATA_TILES StageRedFieldTopGfx2, vTiles0 + $600, $200 VIDEO_DATA_TILES StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor, vTiles1, $100 VIDEO_DATA_TILES StageRedFieldTopGfx3, vTiles1 + $100, $1a0 VIDEO_DATA_TILES StageRedFieldTopBaseGameBoyColorGfx, vTiles1 + $2a0, $d60 VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx4, vTiles1, $1000 VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx5, vTiles0, $200 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx, vTiles0 + $200, $400 VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx2, vTiles1 + $100, $200 VIDEO_DATA_TILES_BANK2 StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor, vTiles1, $100 VIDEO_DATA_TILEMAP StageRedFieldTopTilemap_GameBoyColor, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 StageRedFieldTopTilemap2_GameBoyColor, vBGMap0, $400 VIDEO_DATA_PALETTES StageRedFieldTopPalettes, $80 VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx6, vTiles0 + $7c0, $40 db $FF, $FF ; terminators StageRedFieldBottomGfx_GameBoy: ; 0xe7ea VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160 VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80 VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20 VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 VIDEO_DATA_TILES StageRedFieldBottomBaseGameBoyGfx, vTiles1, $1000 VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 VIDEO_DATA_TILEMAP StageRedFieldBottomTilemap_GameBoy, vBGMap0, $400 db $FF, $FF ; terminators StageRedFieldBottomGfx_GameBoyColor: ; 0xe824 VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160 VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80 VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20 VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 VIDEO_DATA_TILES StageRedFieldBottomBaseGameBoyColorGfx, vTiles1, $1000 VIDEO_DATA_TILES_BANK2 StageRedFieldBottomGfx5, vTiles1, $1000 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx, vTiles0 + $200, $400 VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx2, vTiles1 + $100, $200 VIDEO_DATA_TILES_BANK2 StageRedFieldBottomBaseGameBoyColorGfx, vTiles1, $100 VIDEO_DATA_TILEMAP StageRedFieldBottomTilemap_GameBoyColor, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 StageRedFieldBottomTilemap2_GameBoyColor, vBGMap0, $400 VIDEO_DATA_PALETTES StageRedFieldBottomPalettes, $80 VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx6, vTiles0 + $7c0, $40 db $FF, $FF ; terminators VideoData_e896: ; 0xe896 VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 db $FF, $FF ; terminators VideoData_e8a6: ; 0xe8a6 VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 db $FF, $FF ; terminators VideoData_e8bd: ; 0xe8bd VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES PinballPokeballShakeGfx, vTiles0 + $380, $480 VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 db $FF, $FF ; terminators VideoData_e8d4: ; 0xe8d4 VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES PinballPokeballShakeGfx, vTiles0 + $380, $480 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 db $FF, $FF ; terminators StageBlueFieldTopGfx_GameBoy: ; 0xe8f2 VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES StageBlueFieldTopGfx1, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 VIDEO_DATA_TILES StageBlueFieldTopGfx2, vTiles0 + $600, $200 VIDEO_DATA_TILES StageBlueFieldTopStatusBarSymbolsGfx_GameBoy, vTiles1, $100 VIDEO_DATA_TILES StageBlueFieldTopGfx3, vTiles1 + $100, $1a0 VIDEO_DATA_TILES StageBlueFieldTopBaseGameBoyGfx, vTiles1 + $2a0, $d60 VIDEO_DATA_TILEMAP StageBlueFieldTopTilemap_GameBoy, vBGMap0, $400 db $FF, $FF ; terminators StageBlueFieldTopGfx_GameBoyColor: ; 0xe92c VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES StageBlueFieldTopGfx1, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 VIDEO_DATA_TILES StageBlueFieldTopGfx2, vTiles0 + $600, $200 VIDEO_DATA_TILES StageBlueFieldTopStatusBarSymbolsGfx_GameBoyColor, vTiles1, $100 VIDEO_DATA_TILES StageBlueFieldTopGfx3, vTiles1 + $100, $1a0 VIDEO_DATA_TILES StageBlueFieldTopBaseGameBoyColorGfx, vTiles1 + $2a0, $d60 VIDEO_DATA_TILES_BANK2 StageBlueFieldTopGfx4, vTiles1, $1000 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILEMAP StageBlueFieldTopTilemap_GameBoyColor, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 StageBlueFieldTopTilemap2_GameBoyColor, vBGMap0, $400 VIDEO_DATA_PALETTES StageBlueFieldTopPalettes, $80 db $FF, $FF ; terminators StageBlueFieldBottomGfx_GameBoy: ; 0xe982 VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160 VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80 VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20 VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 VIDEO_DATA_TILES StageBlueFieldBottomBaseGameBoyGfx, vTiles1, $1000 VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 VIDEO_DATA_TILEMAP StageBlueFieldBottomTilemap_GameBoy, vBGMap0, $400 db $FF, $FF ; terminators StageBlueFieldBottomGfx_GameBoyColor: ; 0xe9bc VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160 VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80 VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20 VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 VIDEO_DATA_TILES StageBlueFieldBottomBaseGameBoyColorGfx, vTiles1, $1000 VIDEO_DATA_TILES_BANK2 StageBlueFieldBottomGfx1, vTiles1, $1000 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 VIDEO_DATA_TILEMAP StageBlueFieldBottomTilemap_GameBoyColor, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 StageBlueFieldBottomTilemap2_GameBoyColor, vBGMap0, $400 VIDEO_DATA_PALETTES StageBlueFieldBottomPalettes, $80 db $FF, $FF ; terminators StageGengarBonusGfx_GameBoy: ; 0xea12 VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 VIDEO_DATA_TILES GengarBonusBaseGameBoyGfx, vTiles1, $1000 VIDEO_DATA_TILES GengarBonusGastlyGfx, vTiles1 + $100, $180 VIDEO_DATA_TILES GengarBonusHaunter1Gfx, vTiles1 + $280, $20 VIDEO_DATA_TILES GengarBonusHaunter2Gfx, vTiles0 + $1a0, $100 VIDEO_DATA_TILES GengarBonusGengar1Gfx, vTiles0 + $2a0, $160 VIDEO_DATA_TILES GengarBonusGengar2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES GengarBonusGengar3Gfx, vTiles1 + $2a0, $2a0 VIDEO_DATA_TILEMAP GengarBonusTilemap_GameBoy, vBGMap0, $400 db $FF, $FF ; terminators StageGengarBonusGfx_GameBoyColor: ; 0xea5a VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 VIDEO_DATA_TILES GengarBonusBaseGameBoyColorGfx, vTiles1, $1000 VIDEO_DATA_TILES GengarBonusGastlyGfx, vTiles1 + $100, $180 VIDEO_DATA_TILES GengarBonusHaunter1Gfx, vTiles1 + $280, $20 VIDEO_DATA_TILES GengarBonusHaunter2Gfx, vTiles0 + $1a0, $100 VIDEO_DATA_TILES GengarBonusGengar1Gfx, vTiles0 + $2a0, $160 VIDEO_DATA_TILES GengarBonusGengar2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES GengarBonusGengar3Gfx, vTiles1 + $2a0, $2a0 VIDEO_DATA_TILES_BANK2 GengarBonus1Gfx, vTiles1, $1000 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILEMAP GengarBonusBottomTilemap_GameBoyColor, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 GengarBonusBottomTilemap2_GameBoyColor, vBGMap0, $400 VIDEO_DATA_PALETTES GengarBonusPalettes, $80 db $FF, $FF ; terminators StageMewtwoBonusGfx_GameBoy: ; 0xeabe VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES MewtwoBonus1Gfx, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 VIDEO_DATA_TILES MewtwoBonus2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES MewtwoBonusBaseGameBoyGfx, vTiles1, $1000 VIDEO_DATA_TILES MewtwoBonus3Gfx, vTiles1 + $100, $1a0 VIDEO_DATA_TILES MewtwoBonus4Gfx, vTiles1 + $2a0, $2a0 VIDEO_DATA_TILEMAP MewtwoBonusTilemap_GameBoy, vBGMap0, $400 db $FF, $FF ; terminators StageMewtwoBonusGfx_GameBoyColor: ; 0xeaf8 VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES MewtwoBonus1Gfx, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 VIDEO_DATA_TILES MewtwoBonus2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES MewtwoBonusBaseGameBoyColorGfx, vTiles1, $1000 VIDEO_DATA_TILES MewtwoBonus3Gfx, vTiles1 + $100, $1a0 VIDEO_DATA_TILES MewtwoBonus4Gfx, vTiles1 + $2a0, $2a0 ; Can't use a macro here because it's copying the tiles from VRAM, not ROM. dw vTiles0 db $20 ; This is an arbitrary bank, since the data is in VRAM, not ROM. dw vTiles1 dw $4002 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILEMAP MewtoBonusBottomTilemap_GameBoyColor, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 MewtoBonusBottomTilemap2_GameBoyColor, vBGMap0, $400 VIDEO_DATA_PALETTES MewtwoBonusPalettes, $80 db $FF, $FF ; terminators StageMeowthBonusGfx_GameBoy: ; 0xeb4e VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES MeowthBonusMeowth1Gfx, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 VIDEO_DATA_TILES MeowthBonusMeowth2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES MeowthBonusBaseGameBoyGfx, vTiles1, $a00 VIDEO_DATA_TILES MeowthBonusMeowth3Gfx, vTiles1 + $100, $1a0 VIDEO_DATA_TILES MeowthBonusMeowth4Gfx, vTiles1 + $2a0, $360 VIDEO_DATA_TILEMAP MeowthBonusTilemap_GameBoy, vBGMap0, $400 db $FF, $FF ; terminators StageMeowthBonusGfx_GameBoyColor: ; 0xeb88 VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES MeowthBonusMeowth1Gfx, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 VIDEO_DATA_TILES MeowthBonusMeowth2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES MeowthBonusBaseGameBoyColorGfx, vTiles1, $900 VIDEO_DATA_TILES MeowthBonusMeowth3Gfx, vTiles1 + $100, $1a0 VIDEO_DATA_TILES MeowthBonusMeowth4Gfx, vTiles1 + $2a0, $360 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILEMAP MeowthBonusTilemap_GameBoyColor, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 MeowthBonusTilemap2_GameBoyColor, vBGMap0, $400 VIDEO_DATA_PALETTES MeowthBonusPalettes, $80 db $FF, $FF ; terminators StageDiglettBonusGfx_GameBoy: ; 0xebd7 VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES DiglettBonusDugtrio1Gfx, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 VIDEO_DATA_TILES DiglettBonusDugtrio2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES DiglettBonusBaseGameBoyGfx, vTiles1, $e00 ; $e00 is actually $100 too many bytes. Should only be $d00. This accidentally loads palette data after the tile graphics. VIDEO_DATA_TILES DiglettBonusDugtrio3Gfx, vTiles1 + $100, $1a0 VIDEO_DATA_TILES DiglettBonusDugtrio4Gfx, vTiles1 + $2a0, $280 VIDEO_DATA_TILEMAP DiglettBonusTilemap_GameBoy, vBGMap0, $400 db $FF, $FF ; terminators StageDiglettBonusGfx_GameBoyColor: ; 0xec11 VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES DiglettBonusDugtrio1Gfx, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 VIDEO_DATA_TILES DiglettBonusDugtrio2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES DiglettBonusBaseGameBoyColorGfx, vTiles1, $e00 VIDEO_DATA_TILES DiglettBonusDugtrio3Gfx, vTiles1 + $100, $1a0 VIDEO_DATA_TILES DiglettBonusDugtrio4Gfx, vTiles1 + $2a0, $280 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILEMAP DiglettBonusTilemap_GameBoyColor, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 DiglettBonusTilemap2_GameBoyColor, vBGMap0, $400 VIDEO_DATA_PALETTES DiglettBonusPalettes, $80 db $FF, $FF ; terminators StageSeelBonusGfx_GameBoy: ; 0xec60 VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 VIDEO_DATA_TILES SeelBonusSeel1Gfx, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 VIDEO_DATA_TILES SeelBonusSeel2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES SeelBonusBaseGameBoyGfx, vTiles1, $d00 ; $d00 is actually $100 too many bytes. Should only be $c00. This accidentally loads palette data after the tile graphics. VIDEO_DATA_TILES SeelBonusSeel3Gfx, vTiles1 + $100, $1a0 VIDEO_DATA_TILES SeelBonusSeel4Gfx, vTiles1 + $2a0, $4a0 VIDEO_DATA_TILEMAP SeelBonusTilemap_GameBoy, vBGMap0, $400 db $FF, $FF ; terminators StageSeelBonusGfx_GameBoyColor: ; 0xec9a VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 VIDEO_DATA_TILES SeelBonusSeel1Gfx, vTiles0 + $1a0, $260 VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 VIDEO_DATA_TILES SeelBonusSeel2Gfx, vTiles0 + $7a0, $60 VIDEO_DATA_TILES SeelBonusBaseGameBoyColorGfx, vTiles1, $b00 ; Should actually be $a00 bytes, not $b00 VIDEO_DATA_TILES SeelBonusSeel3Gfx, vTiles1 + $100, $1a0 VIDEO_DATA_TILES SeelBonusSeel4Gfx, vTiles1 + $2a0, $4a0 VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 VIDEO_DATA_TILEMAP SeelBonusTilemap_GameBoyColor, vBGMap0, $400 VIDEO_DATA_TILEMAP_BANK2 SeelBonusTilemap2_GameBoyColor, vBGMap0, $400 VIDEO_DATA_PALETTES SeelBonusPalettes, $80 db $FF, $FF ; terminators Func_ece9: ; 0xece9 call Func_ed5e ld a, [wBallYPos + 1] add $10 cp $18 jr c, .asm_ed13 cp $b8 ret c ld a, [wCurrentStage] ld c, a ld b, $0 ld hl, BallMovingDownStageTransitions add hl, bc ld a, [hl] cp $ff jr z, .asm_ed2e call Func_e674 ld a, [wBallYPos + 1] sub $88 ld [wBallYPos + 1], a ret .asm_ed13 ld a, [wCurrentStage] ld c, a ld b, $0 ld hl, BallMovingUpStageTransitions add hl, bc ld a, [hl] cp $ff jr z, .asm_ed2e call Func_e674 ld a, [wBallYPos + 1] add $88 ld [wBallYPos + 1], a ret .asm_ed2e ld a, $1 ld [$d4ae], a ld [$ff8a], a callba Func_dc49 ret BallMovingUpStageTransitions: ; 0xed3e ; Maps the relationship between stages when ; the ball moves out of the screen upward. db $FF ; STAGE_RED_FIELD_TOP db STAGE_RED_FIELD_TOP ; STAGE_RED_FIELD_BOTTOM db $FF db $02 db $FF ; STAGE_BLUE_FIELD_TOP db STAGE_BLUE_FIELD_TOP ; STAGE_BLUE_FIELD_BOTTOM db $FF ; STAGE_GENGAR_BONUS db $FF ; STAGE_GENGAR_BONUS db $FF ; STAGE_MEWTWO_BONUS db $FF ; STAGE_MEWTWO_BONUS db $FF ; STAGE_MEOWTH_BONUS db $FF ; STAGE_MEOWTH_BONUS db $FF ; STAGE_DIGLETT_BONUS db $FF ; STAGE_DIGLETT_BONUS db $FF ; STAGE_SEEL_BONUS db $FF ; STAGE_SEEL_BONUS BallMovingDownStageTransitions: ; 0xed4e ; Maps the relationship between stages when ; the ball moves out of the screen downward. db STAGE_RED_FIELD_BOTTOM ; STAGE_RED_FIELD_TOP db $FF ; STAGE_RED_FIELD_BOTTOM db $03 db $FF db STAGE_BLUE_FIELD_BOTTOM ; STAGE_BLUE_FIELD_TOP db $FF ; STAGE_BLUE_FIELD_BOTTOM db $FF ; STAGE_GENGAR_BONUS db $FF ; STAGE_GENGAR_BONUS db $FF ; STAGE_MEWTWO_BONUS db $FF ; STAGE_MEWTWO_BONUS db $FF ; STAGE_MEOWTH_BONUS db $FF ; STAGE_MEOWTH_BONUS db $FF ; STAGE_DIGLETT_BONUS db $FF ; STAGE_DIGLETT_BONUS db $FF ; STAGE_SEEL_BONUS db $FF ; STAGE_SEEL_BONUS Func_ed5e: ; 0xed5e ld hl, $d7ab ld a, [$d7ac] and a jr nz, .asm_ed7f ld a, [wBallXPos + 1] cp $9a ld a, $2 jr nc, .asm_ed72 ld a, $fe .asm_ed72 ld [$d7aa], a add [hl] cp $22 jr z, .asm_ed7f bit 7, a jr nz, .asm_ed7f ld [hl], a .asm_ed7f ld a, [hl] ld hl, $d79f sub [hl] ld [hBoardXShift], a xor a ld hl, $d7a0 sub [hl] ld [hBoardYShift], a ret Func_ed8e: ; 0xed8e xor a ld [$d803], a ld [$d804], a ld [$d622], a ld a, [wNumPartyMons] ld [$d620], a ld a, [wBallType] ld c, a ld b, $0 ld hl, BallTypeMultipliers add hl, bc ld a, [hl] ld [$d621], a .asm_edac xor a ld [hJoypadState], a ld [hNewlyPressedButtons], a ld [hPressedButtons], a call HandleTilts ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, $3 ld hl, HandleFlippers call nz, BankSwitch ld [$ff8a], a callba Func_84b7 call Func_33e3 call Func_926 rst AdvanceFrame ld a, [$d7af] and a jr nz, .asm_edac ld a, [$d7b3] and a jr nz, .asm_edac ld a, [hGameBoyColorFlag] and a call nz, Func_f269 call GenRandom and $f0 ld [$d61a], a xor a ld [$d61b], a ld [$d61e], a .asm_6df7 ld a, [$d61a] ld c, a ld b, $0 ld hl, Data_f339 add hl, bc ld a, [$d619] add [hl] ld c, a ld hl, Data_f439 add hl, bc ld a, [hli] bit 7, a jr nz, .asm_ee56 call Func_eef9 ld [$d61d], a push af ld de, $0009 call PlaySoundEffect pop af call LoadBillboardOffPicture ld a, [$d61b] cp $a jr nc, .asm_ee29 ld a, $a .asm_ee29 ld b, a .asm_ee2a push bc call Func_eeee ld a, [$d61e] and a jr nz, .asm_ee47 call Func_ef1e jr z, .asm_ee47 ld [$d61e], a ld a, $32 ld [$d61b], a ld de, $0728 call PlaySoundEffect .asm_ee47 pop bc dec b jr nz, .asm_ee2a ld a, [$d61b] inc a ld [$d61b], a cp $3c jr z, .asm_ee69 .asm_ee56 ld a, [$d61a] and $f0 ld b, a ld a, [$d61a] inc a and $f or b ld [$d61a], a jp .asm_6df7 .asm_ee69 ld a, [$d61d] cp $5 jr nz, .asm_ee78 ld de, $0c42 call PlaySoundEffect jr .asm_ee7e .asm_ee78 ld de, $0c43 call PlaySoundEffect .asm_ee7e ld b, $28 .asm_ee80 push bc rst AdvanceFrame pop bc call Func_ef1e jr nz, .asm_ee8b dec b jr nz, .asm_ee80 .asm_ee8b ld a, [hGameBoyColorFlag] and a ld a, [$d61d] call nz, Func_f2a0 ld b, $80 .asm_ee96 push bc ld a, b and $f jr nz, .asm_eeae bit 4, b jr z, .asm_eea8 ld a, [$d61d] call LoadBillboardPicture jr .asm_eeae .asm_eea8 ld a, [$d61d] call LoadBillboardOffPicture .asm_eeae rst AdvanceFrame pop bc call Func_ef1e jr nz, .asm_eeb8 dec b jr nz, .asm_ee96 .asm_eeb8 ld a, [$d619] add $a cp $fa jr nz, .asm_eec3 ld a, $64 .asm_eec3 ld [$d619], a ld a, [$d61d] rst JumpTable ; calls JumpToFuncInTable CallTable_eeca: ; 0xeeca dw Func_ef35 dw Func_ef4f dw Func_ef69 dw Func_ef83 dw Func_efa7 dw Func_efb2 dw Func_eff3 dw Func_f034 dw Func_f03a dw UpgradeBallBlueField dw UpgradeBallBlueField dw UpgradeBallBlueField dw Func_f0c1 dw Func_f172 dw Func_f172 dw Func_f172 dw Func_f172 dw Func_f172 Func_eeee: ; 0xeeee push bc ld bc, $0200 .asm_eef2 dec bc ld a, b or c jr nz, .asm_eef2 pop bc ret Func_eef9: ; 0xeef9 cp $8 jr nz, .asm_ef09 ld a, [$d620] and a jr nz, .asm_ef06 ld a, $7 ret .asm_ef06 ld a, $8 ret .asm_ef09 cp $9 jr nz, .asm_ef14 push hl ld hl, $d621 add [hl] pop hl ret .asm_ef14 cp $d ret nz push hl ld hl, $d498 add [hl] pop hl ret Func_ef1e: ; 0xef1e push bc ld hl, wKeyConfigRightFlipper call IsKeyPressed jr nz, .asm_ef2d ld hl, wKeyConfigLeftFlipper call IsKeyPressed .asm_ef2d pop bc ret BallTypeMultipliers: ; 0xef2f ; Score multiplier for each ball type. db $00 ; POKE_BALL db $00 db $01 ; GREAT_BALL db $02 ; ULTRA_BALL db $02 db $02 ; MASTER_BALL Func_ef35: ; 0xef35 ld a, $0 ld [wBallSaverIconOn], a ld a, $ff ld [$d4a2], a ld a, $3b ld [wBallSaverTimerFrames], a ld a, $1e ld [wBallSaverTimerSeconds], a ld a, $2 ld [$d4a5], a ret Func_ef4f: ; 0xef4f ld a, $0 ld [wBallSaverIconOn], a ld a, $ff ld [$d4a2], a ld a, $3b ld [wBallSaverTimerFrames], a ld a, $3c ld [wBallSaverTimerSeconds], a ld a, $2 ld [$d4a5], a ret Func_ef69: ; 0xef69 ld a, $0 ld [wBallSaverIconOn], a ld a, $ff ld [$d4a2], a ld a, $3b ld [wBallSaverTimerFrames], a ld a, $5a ld [wBallSaverTimerSeconds], a ld a, $2 ld [$d4a5], a ret Func_ef83: ; 0xef83 ld a, $1 ld [$d51d], a ld a, $f ld [$d517], a xor a ld [$d85d], a call Func_310a rst AdvanceFrame ld a, $0 ld [$ff8a], a callba PlayPikachuSoundClip ld a, $1 ld [$d85d], a ret Func_efa7: ; 0xefa7 ld [$ff8a], a callba Func_30164 ret Func_efb2: ; 0xefb2 ld a, $8 call Func_a21 ld [$d61f], a ld b, $80 .asm_efbc push bc ld a, b and $f jr nz, .asm_efd8 bit 4, b jr z, .asm_efd0 ld a, [$d61f] add $12 call LoadBillboardPicture jr .asm_efd8 .asm_efd0 ld a, [$d61f] add $12 call LoadBillboardOffPicture .asm_efd8 rst AdvanceFrame pop bc ld a, [hNewlyPressedButtons] and $21 jr nz, .asm_efe3 dec b jr nz, .asm_efbc .asm_efe3 ld a, [$d61f] inc a swap a ld e, a ld d, $0 ld bc, $0000 call Func_351c ret Func_eff3: ; 0xeff3 ld a, $8 call Func_a21 ld [$d61f], a ld b, $80 .asm_effd push bc ld a, b and $f jr nz, .asm_f019 bit 4, b jr z, .asm_f011 ld a, [$d61f] add $1b call LoadBillboardPicture jr .asm_f019 .asm_f011 ld a, [$d61f] add $1b call LoadBillboardOffPicture .asm_f019 rst AdvanceFrame pop bc ld a, [hNewlyPressedButtons] and $21 jr nz, .asm_f024 dec b jr nz, .asm_effd .asm_f024 ld a, [$d61f] inc a swap a ld c, a ld b, $0 ld de, $0000 call Func_351c ret Func_f034: ; 0xf034 ld a, $1 ld [$d622], a ret Func_f03a: ; 0xf03a ld a, $2 ld [$d622], a ret UpgradeBallBlueField: ; 0xf040 ; load approximately 1 minute of frames into wBallTypeCounter ld a, $10 ld [wBallTypeCounter], a ld a, $e ld [wBallTypeCounter + 1], a ld a, [wBallType] cp MASTER_BALL jr z, .masterBall ld de, $063a call PlaySoundEffect call Func_30e8 call Func_30db ld de, $2907 ld hl, $d5cc call LoadTextHeader ; upgrade ball type ld a, [wBallType] ld c, a ld b, $0 ld hl, BallTypeProgressionBlueField add hl, bc ld a, [hl] ld [wBallType], a add $30 ld [wcBottomMessageText + $12], a jr .asm_f0b0 .masterBall ld de, $0f4d call PlaySoundEffect ld bc, TenThousandPoints ld [$ff8a], a callba Func_8588 ld bc, $100 ld de, $0000 push bc push de call Func_30e8 call Func_30db ld hl, $d5d4 ld de, $2948 call Func_32cc pop de pop bc ld hl, $d5cc ld de, FieldMultiplierSpecialBonusText call LoadTextHeader .asm_f0b0 ld [$ff8a], a callba Func_155bb ret BallTypeProgressionBlueField: ; 0xf0bb ; Determines the next upgrade for the Ball. db GREAT_BALL ; POKE_BALL -> GREAT_BALL db GREAT_BALL ; unused db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL db MASTER_BALL ; unused db MASTER_BALL ; MASTER_BALL -> MASTER_BALL Func_f0c1: ; 0xf0c1 ld a, $4 call Func_a21 ld [$d61f], a ld b, $80 .asm_f0cb push bc ld a, b and $f jr nz, .asm_f0e7 bit 4, b jr z, .asm_f0df ld a, [$d61f] add $24 call LoadBillboardPicture jr .asm_f0e7 .asm_f0df ld a, [$d61f] add $24 call LoadBillboardOffPicture .asm_f0e7 rst AdvanceFrame pop bc ld a, [hNewlyPressedButtons] and $21 jr nz, .asm_f0f2 dec b jr nz, .asm_f0cb .asm_f0f2 ld a, $3 ld [$d610], a xor a ld [$d611], a ld [$d612], a ld a, [$d482] call Func_f14a ld b, c ld a, [$d61f] inc a ld hl, $d482 add [hl] cp $64 jr c, .asm_f113 ld a, $63 .asm_f113 ld [hl], a call Func_f14a ld a, c cp b ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call nz, BankSwitch ld [$ff8a], a callba Func_16f95 ld a, [$d60c] ld [$ff8a], a callba Func_f154 ; no need for BankSwitch here... ld a, [$d60d] add $14 ld [$ff8a], a callba Func_f154 ; no need for BankSwitch here... ret Func_f14a: ; 0xf14a ld c, $0 .asm_f14c cp $19 ret c sub $19 inc c jr .asm_f14c Func_f154: ; 0xf154 ld a, [wCurrentStage] call CallInFollowingTable CallTable_f15a: ; 0xf15a dw Func_16f28 db Bank(Func_16f28), $00 dw Func_16f28 db Bank(Func_16f28), $00 dw Func_16f28 db Bank(Func_16f28), $00 dw Func_16f28 db Bank(Func_16f28), $00 dw Func_1d5f2 db Bank(Func_1d5f2), $00 dw Func_1d5f2 db Bank(Func_1d5f2), $00 Func_f172: ; 0xf172 ld a, $1 ld [$d623], a ret LoadBillboardPicture: ; 0xf178 ; Loads a billboard picture's tiles into VRAM ; input: a = billboard picture id push hl ld c, a ld b, $0 sla c add c ; a has been multplied by 3 becuase entires in BillboardPicturePointers are 3 bytes long ld c, a ld hl, BillboardPicturePointers add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hl] ld h, b ld l, c ld de, $8900 ; destination address to copy the tiles ld bc, $180 ; billboard pictures are $180 bytes call LoadVRAMData ; loads the tiles into VRAM pop hl ret LoadBillboardOffPicture: ; 0xf196 ; Loads the dimly-lit "off" version of a billboard picture into VRAM ; Input: a = billboard picture id push hl ld c, a ld b, $0 sla c add c ld c, a ld hl, BillboardPicturePointers add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hl] ld h, b ld l, c ld bc, $0180 ; get the address of the "off" version of the picture add hl, bc ld de, $8900 ld bc, $0180 call LoadVRAMData pop hl ret BillboardPicturePointers: ; 0xf1b8 dw BallSaver30SecondsOnPic db Bank(BallSaver30SecondsOnPic) dw BallSaver60SecondsOnPic db Bank(BallSaver60SecondsOnPic) dw BallSaver90SecondsOnPic db Bank(BallSaver90SecondsOnPic) dw PikachuSaverOnPic db Bank(PikachuSaverOnPic) dw ExtraBallOnPic db Bank(ExtraBallOnPic) dw SmallRewardOnPic db Bank(SmallRewardOnPic) dw BigRewardOnPic db Bank(BigRewardOnPic) dw CatchEmModeOnPic db Bank(CatchEmModeOnPic) dw EvolutionModeOnPic db Bank(EvolutionModeOnPic) dw GreatBallOnPic db Bank(GreatBallOnPic) dw UltraBallOnPic db Bank(UltraBallOnPic) dw MasterBallOnPic db Bank(MasterBallOnPic) dw BonusMultiplierOnPic db Bank(BonusMultiplierOnPic) dw GoToGengarBonusOnPic db Bank(GoToGengarBonusOnPic) dw GoToMewtwoBonusOnPic db Bank(GoToMewtwoBonusOnPic) dw GoToMeowthBonusOnPic db Bank(GoToMeowthBonusOnPic) dw GoToDiglettBonusOnPic db Bank(GoToDiglettBonusOnPic) dw GoToSeelBonusOnPic db Bank(GoToSeelBonusOnPic) dw SmallReward100PointsOnPic db Bank(SmallReward100PointsOnPic) dw SmallReward200PointsOnPic db Bank(SmallReward200PointsOnPic) dw SmallReward300PointsOnPic db Bank(SmallReward300PointsOnPic) dw SmallReward400PointsOnPic db Bank(SmallReward400PointsOnPic) dw SmallReward500PointsOnPic db Bank(SmallReward500PointsOnPic) dw SmallReward600PointsOnPic db Bank(SmallReward600PointsOnPic) dw SmallReward700PointsOnPic db Bank(SmallReward700PointsOnPic) dw SmallReward800PointsOnPic db Bank(SmallReward800PointsOnPic) dw SmallReward900PointsOnPic db Bank(SmallReward900PointsOnPic) dw BigReward1000000PointsOnPic db Bank(BigReward1000000PointsOnPic) dw BigReward2000000PointsOnPic db Bank(BigReward2000000PointsOnPic) dw BigReward3000000PointsOnPic db Bank(BigReward3000000PointsOnPic) dw BigReward4000000PointsOnPic db Bank(BigReward4000000PointsOnPic) dw BigReward5000000PointsOnPic db Bank(BigReward5000000PointsOnPic) dw BigReward6000000PointsOnPic db Bank(BigReward6000000PointsOnPic) dw BigReward7000000PointsOnPic db Bank(BigReward7000000PointsOnPic) dw BigReward8000000PointsOnPic db Bank(BigReward8000000PointsOnPic) dw BigReward9000000PointsOnPic db Bank(BigReward9000000PointsOnPic) dw BonusMultiplierX1OnPic db Bank(BonusMultiplierX1OnPic) dw BonusMultiplierX2OnPic db Bank(BonusMultiplierX2OnPic) dw BonusMultiplierX3OnPic db Bank(BonusMultiplierX3OnPic) dw BonusMultiplierX4OnPic db Bank(BonusMultiplierX4OnPic) dw BonusMultiplierX5OnPic db Bank(BonusMultiplierX5OnPic) dw PalletTownPic db Bank(PalletTownPic) dw ViridianCityPic db Bank(ViridianCityPic) dw ViridianForestPic db Bank(ViridianForestPic) dw PewterCityPic db Bank(PewterCityPic) dw MtMoonPic db Bank(MtMoonPic) dw CeruleanCityPic db Bank(CeruleanCityPic) dw VermilionCitySeasidePic db Bank(VermilionCitySeasidePic) dw VermilionCityStreetsPic db Bank(VermilionCityStreetsPic) dw RockMountainPic db Bank(RockMountainPic) dw LavenderTownPic db Bank(LavenderTownPic) dw CeladonCityPic db Bank(CeladonCityPic) dw CyclingRoadPic db Bank(CyclingRoadPic) dw FuchsiaCityPic db Bank(FuchsiaCityPic) dw SafariZonePic db Bank(SafariZonePic) dw SaffronCityPic db Bank(SaffronCityPic) dw SeafoamIslandsPic db Bank(SeafoamIslandsPic) dw CinnabarIslandPic db Bank(CinnabarIslandPic) dw IndigoPlateauPic db Bank(IndigoPlateauPic) Func_f269: ; 0xf269 ld a, [hGameBoyColorFlag] and a jr z, .asm_f27c ld a, BANK(StageRedFieldBottomBGPalette5) ld hl, StageRedFieldBottomBGPalette5 ld de, $0030 ld bc, $0008 call Func_7dc .asm_f27c ld a, BANK(Data_f288) ld de, Data_f288 ld hl, $9887 call Func_86f ret Data_f288: dr $f288, $f2a0 Func_f2a0: ; 0xf2a0 push hl ld c, a ld b, $0 sla c add c ld c, a ld hl, PaletteDataPointerTable_f2be add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hl] ld h, b ld l, c ld de, $0030 ld bc, $0010 call Func_7dc pop hl ret PaletteDataPointerTable_f2be: ; 0xf2be dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc08, Bank(PaletteData_dcc08) dwb PaletteData_dcc08, Bank(PaletteData_dcc08) dwb PaletteData_dcc10, Bank(PaletteData_dcc10) dwb PaletteData_dcc18, Bank(PaletteData_dcc18) dwb PaletteData_dcc20, Bank(PaletteData_dcc20) dwb PaletteData_dcc08, Bank(PaletteData_dcc08) dwb PaletteData_dcc28, Bank(PaletteData_dcc28) dwb PaletteData_dcc08, Bank(PaletteData_dcc08) dwb PaletteData_dcc30, Bank(PaletteData_dcc30) dwb PaletteData_dcc38, Bank(PaletteData_dcc38) dwb PaletteData_dcc40, Bank(PaletteData_dcc40) dwb PaletteData_dcc48, Bank(PaletteData_dcc48) dwb PaletteData_dcc50, Bank(PaletteData_dcc50) dwb PaletteData_dcc58, Bank(PaletteData_dcc58) dwb PaletteData_dcc60, Bank(PaletteData_dcc60) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) dwb PaletteData_dcc00, Bank(PaletteData_dcc00) Data_f339: ; 0xf339 db $02, $06, $00, $08, $04, $02, $06, $08, $04, $00, $06, $02, $04, $08, $00, $02 db $06, $02, $04, $08, $00, $06, $04, $08, $02, $00, $06, $08, $02, $00, $06, $08 db $02, $04, $00, $08, $06, $04, $00, $02, $06, $04, $00, $08, $06, $04, $02, $08 db $00, $08, $02, $04, $00, $08, $06, $02, $04, $00, $06, $08, $04, $00, $06, $02 db $00, $08, $02, $04, $00, $08, $06, $04, $02, $08, $00, $06, $02, $08, $00, $06 db $02, $00, $06, $04, $02, $00, $06, $08, $02, $04, $00, $06, $08, $04, $02, $06 db $00, $02, $08, $04, $00, $02, $06, $04, $08, $02, $06, $00, $04, $08, $06, $02 db $04, $08, $06, $02, $00, $08, $04, $06, $00, $02, $04, $06, $00, $02, $04, $08 db $02, $00, $04, $06, $02, $00, $08, $04, $02, $00, $06, $04, $08, $00, $06, $04 db $04, $00, $02, $08, $04, $06, $00, $08, $02, $04, $06, $08, $00, $04, $06, $02 db $06, $08, $04, $02, $06, $00, $08, $02, $04, $00, $06, $02, $08, $04, $06, $02 db $04, $06, $02, $00, $08, $04, $06, $00, $08, $02, $06, $00, $08, $02, $04, $00 db $02, $00, $06, $04, $02, $08, $06, $00, $04, $08, $02, $00, $04, $06, $08, $00 db $08, $06, $04, $00, $08, $06, $02, $00, $08, $06, $04, $00, $08, $06, $04, $02 db $02, $00, $06, $04, $08, $02, $00, $04, $08, $02, $00, $04, $06, $02, $08, $00 db $04, $06, $08, $02, $00, $06, $04, $08, $02, $06, $00, $08, $04, $06, $02, $08 Data_f439: ; 0xf439 db $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C, $00, $4C db $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16, $05, $19 db $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $4C, $06, $66, $0D, $4C, $FF, $00 db $FF, $00, $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C db $00, $4C, $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16 db $05, $19, $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $3F, $06, $3F, $0D, $3F db $09, $3F, $FF, $00, $05, $11, $0C, $4F, $00, $4F, $03, $4F, $FF, $00, $05, $11 db $0C, $4F, $01, $4F, $07, $4F, $FF, $00, $05, $11, $0C, $44, $00, $44, $03, $44 db $06, $1E, $05, $11, $0C, $4F, $01, $4F, $08, $4F, $FF, $00, $02, $66, $06, $4C db $0D, $4C, $FF, $00, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51, $FF, $00 db $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44, $00, $44 db $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00, $01, $3F db $06, $3F, $0D, $3F, $09, $3F, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51 db $FF, $00, $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44 db $00, $44, $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00 db $01, $26, $06, $26, $0D, $26, $04, $8C, $FF, $00 Func_f533: ; 0xf533 call Func_30e8 call Func_f55c call Func_f57f ld a, $60 ld [$ffa6], a dec a ld [$ffa2], a ld a, $fd ld [$ffaf], a call Func_f5a0 ld a, $90 ld [$ffa6], a ld a, $83 ld [$ffa2], a ld [$ffa8], a ld a, $ff ld [$ffaf], a call Func_30e8 ret Func_f55c: ; 0xf55c ld a, [hGameBoyColorFlag] and a jr nz, .gameboyColor ld a, BANK(GFX_d61c0) ld hl, GFX_d61c0 ld de, $8830 ld bc, $0010 call LoadVRAMData ret .gameboyColor ld a, BANK(GFX_d63c0) ld hl, GFX_d63c0 ld de, $8830 ld bc, $0010 call LoadVRAMData ret Func_f57f: ; 0xf57f xor a ld [$d4aa], a ld hl, wcBottomMessageText ld a, $81 ld b, $40 .clearLoop ld [hli], a ld [hli], a ld [hli], a ld [hli], a dec b jr nz, .clearLoop ld a, $0 ld hl, wcBottomMessageText ld de, vBGMap1 ld bc, $00c0 call LoadVRAMData ret Func_f5a0: ; 0xf5a0 ld de, wcBottomMessageText + $40 ld hl, Data_3069 ; todo call PrintTextNoHeader ld de, wcBottomMessageText + $80 ld hl, Data_3070 call PrintTextNoHeader ld hl, $d489 call Func_f8b5 ld hl, $d48f call Func_f8b5 ld a, $1 ld [$d4ab], a call Func_f626 call Func_f64e call Func_f60a call Func_f676 ld a, $1 ld [$d4ab], a call Func_f70d ld a, [wGameOver] and a ret z ld a, $10 call SetSongBank ld de, $0005 call PlaySong ld hl, wcBottomMessageText ld bc, $0040 call Func_f81b ld de, wcBottomMessageText + $20 ld hl, Data_3094 call PrintTextNoHeader ld bc, $0040 ld de, $0000 call Func_f80d .asm_f602 rst AdvanceFrame ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_f602 ret Func_f60a: ; 0xf60a ld a, [wCurrentStage] rst JumpTable ; calls JumpToFuncInTable CallTable_f60d: ; 0xf60d ; STAGE_RED_FIELD_TOP dw Func_f945 ; STAGE_RED_FIELD_BOTTOM dw Func_f945 dw Func_f9f2 dw Func_f9f2 ; STAGE_BLUE_FIELD_TOP dw Func_f9f3 ; STAGE_BLUE_FIELD_BOTTOM dw Func_f9f3 ; STAGE_GENGAR_BONUS dw Func_faf6 ; STAGE_GENGAR_BONUS dw Func_faf6 ; STAGE_MEWTWO_BONUS dw Func_faf7 ; STAGE_MEWTWO_BONUS dw Func_faf7 ; STAGE_MEOWTH_BONUS dw Func_faf8 ; STAGE_MEOWTH_BONUS dw Func_faf8 Func_f626: ; 0xf626 ld de, wcBottomMessageText + $01 ld hl, Data_3006 ; todo call PrintTextNoHeader ld hl, wcBottomMessageText + $01 ld a, [$d628] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d628 ld de, PointsData_f921 call Func_f853 call Func_f824 ret Func_f64e: ; 0xf64e ld de, wcBottomMessageText ld hl, Data_3019 ; todo call PrintTextNoHeader ld hl, wcBottomMessageText ld a, [$d629] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d629 ld de, PointsData_f927 call Func_f853 call Func_f824 ret Func_f676: ; 0xf676 ld b, $4 .asm_f678 push bc ld hl, wcBottomMessageText + $20 ld de, wcBottomMessageText ld bc, $00e0 call LocalCopyData ld bc, $00c0 ld de, $0000 call Func_f80d ld a, [$d4ab] and a jr z, .asm_f69f rst AdvanceFrame ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_f69f xor a ld [$d4ab], a .asm_f69f pop bc dec b jr nz, .asm_f678 ld de, wcBottomMessageText + $40 ld hl, Data_307a ; todo call PrintTextNoHeader ld de, wcBottomMessageText + $80 ld hl, Data_3086 ; todo call PrintTextNoHeader ld hl, wcBottomMessageText + $50 ld a, [$d482] call Func_f78e ld bc, $0040 ld de, $0040 call Func_f80d .asm_f6c7 push de push hl ld hl, $d494 ld de, wcBottomMessageText + $86 call Func_f8bd ld bc, $0040 ld de, $0080 call Func_f80d ld de, $003e call PlaySoundEffect ld a, [$d4ab] and a jr z, .asm_f6f2 rst AdvanceFrame ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_f6f2 xor a ld [$d4ab], a .asm_f6f2 pop hl pop de ld a, [$d482] and a jr z, .asm_f709 dec a ld [$d482], a ld hl, $d48f ld de, $d489 call Func_f902 jr .asm_f6c7 .asm_f709 call Func_f83a ret Func_f70d: ; 0xf70d ld b, $4 .asm_f70f push bc ld hl, wcBottomMessageText + $20 ld de, wcBottomMessageText ld bc, $00e0 call LocalCopyData ld bc, $00c0 ld de, $0000 call Func_f80d ld a, [$d4ab] and a jr z, .asm_f736 rst AdvanceFrame ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_f736 xor a ld [$d4ab], a .asm_f736 pop bc dec b jr nz, .asm_f70f ld de, wcBottomMessageText + $60 ld hl, Data_308d call PrintTextNoHeader ld hl, $d46f ld de, wcBottomMessageText + $66 call Func_f8bd ld bc, $0040 ld de, $0060 call Func_f80d ld de, $003e call PlaySoundEffect ld a, [$d4ab] and a jr z, .asm_f76c rst AdvanceFrame ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_f76c xor a ld [$d4ab], a .asm_f76c ld hl, wScore ld de, $d48f call Func_f902 ld hl, $d46f ld de, wcBottomMessageText + $66 call Func_f8bd ld bc, $0040 ld de, $0060 call Func_f80d call Func_f83a call Func_f83a ret Func_f78e: ; 0xf78e push hl call ConvertHexByteToDecWord pop hl ld c, $1 ld a, d call .asm_f7a4 inc hl ld a, e swap a call .asm_f7a4 inc hl ld c, $0 ld a, e ; fall through .asm_f7a4 and $f jr nz, .asm_f7ab ld a, c and a ret nz .asm_f7ab add $86 ld [hl], a ld c, $0 ret PrintTextNoHeader: ; 0xf7b1 ld a, [$d805] and a jr nz, .asm_f7e0 .loop ld a, [hli] and a ret z cp "0" jr c, .asm_f7c6 cp "9" + 1 jr nc, .asm_f7c6 add $56 jr .asm_f7dc .asm_f7c6 cp "A" jr c, .asm_f7d2 cp "Z" + 1 jr nc, .asm_f7d2 add $bf jr .asm_f7dc .asm_f7d2 cp "e" jr nz, .asm_f7da ld a, $83 jr .asm_f7dc .asm_f7da ld a, $81 .asm_f7dc ld [de], a inc de jr .loop .asm_f7e0 ld a, [hli] and a ret z cp "0" jr c, .asm_f7ef cp "9" + 1 jr nc, .asm_f7ef add $56 jr .asm_f809 .asm_f7ef cp $a0 jr c, .asm_f7fb cp $e0 jr nc, .asm_f7fb sub $80 jr .asm_f809 .asm_f7fb cp $e0 jr c, .asm_f807 cp $f4 jr nc, .asm_f807 sub $50 jr .asm_f809 .asm_f807 ld a, $81 .asm_f809 ld [de], a inc de jr .asm_f7e0 Func_f80d: ; 0xf80d ld hl, $9c00 add hl, de push hl ld hl, wcBottomMessageText add hl, de pop de call LoadVRAMData ret Func_f81b: ; 0xf81b ld a, $81 ld [hli], a dec bc ld a, b or c jr nz, Func_f81b ret Func_f824: ; 0xf824 call Func_f83a ld hl, wcBottomMessageText ld bc, $0040 call Func_f81b ld hl, wcBottomMessageText + $48 ld bc, $0038 call Func_f81b ret Func_f83a: ; 0xf83a ld a, [$d4ab] and a ret z ld b, $46 .asm_f841 push bc rst AdvanceFrame pop bc ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr nz, .asm_f84e dec b jr nz, .asm_f841 ret .asm_f84e xor a ld [$d4ab], a ret Func_f853: ; 0xf853 push hl ld hl, $d483 call Func_f8b5 pop hl .asm_f85b push de push hl ld hl, $d488 ld de, wcBottomMessageText + $46 call Func_f8bd ld bc, $0040 ld de, $0040 call Func_f80d ld de, $003e call PlaySoundEffect ld a, [$d4ab] and a jr z, .asm_f886 rst AdvanceFrame ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_f886 xor a ld [$d4ab], a .asm_f886 pop hl pop de ld a, [hl] and a jr z, .asm_f899 dec [hl] push de push hl ld hl, $d483 call Func_f902 pop hl pop de jr .asm_f85b .asm_f899 ld hl, $d489 ld de, $d483 call Func_f902 ld hl, $d48e ld de, wcBottomMessageText + $86 call Func_f8bd ld bc, $0040 ld de, $0080 call Func_f80d ret Func_f8b5: ; 0xf8b5 xor a ld b, $6 .asm_f8b8 ld [hli], a dec b jr nz, .asm_f8b8 ret Func_f8bd: ; 0xf8bd ld bc, $0c01 .asm_f8c0 ld a, [hl] swap a call Func_f8d5 inc de dec b ld a, [hld] call Func_f8d5 inc de dec b jr nz, .asm_f8c0 ld a, $86 ld [de], a inc de ret Func_f8d5: ; 0xf8d5 and $f jr nz, .asm_f8e0 ld a, b dec a jr z, .asm_f8e0 ld a, c and a ret nz .asm_f8e0 add $86 ld [de], a ld c, $0 ld a, b cp $c jr z, .asm_f8f5 cp $9 jr z, .asm_f8f5 cp $6 jr z, .asm_f8f5 cp $3 ret nz .asm_f8f5 push de ld a, e add $20 ld e, a jr nc, .asm_f8fd inc d .asm_f8fd ld a, $82 ld [de], a pop de ret Func_f902: ; 0xf902 ld a, [de] add [hl] daa ld [hli], a inc de ld a, [de] adc [hl] daa ld [hli], a inc de ld a, [de] adc [hl] daa ld [hli], a inc de ld a, [de] adc [hl] daa ld [hli], a inc de ld a, [de] adc [hl] daa ld [hli], a inc de ld a, [de] adc [hl] daa ld [hli], a inc de ret PointsData_f921: ; 0xf921 bigBCD6 50000 PointsData_f927: ; 0xf927 bigBCD6 75000 PointsData_f92d: ; 0xf92d bigBCD6 7500 PointsData_f933: ; 0xf933 bigBCD6 5000 PointsData_f939: ; 0xf939 bigBCD6 2500 PointsData_f93f: ; 0xf93f bigBCD6 1000 Func_f945: ; 0xf945 call Func_f952 call Func_f97a call Func_f9a2 call Func_f9ca ret Func_f952: ; 0xf952 ld de, wcBottomMessageText + $03 ld hl, BellsproutCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $03 ld a, [$d62a] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d62a ld de, PointsData_f92d call Func_f853 call Func_f824 ret Func_f97a: ; 0xf97a ld de, wcBottomMessageText + $04 ld hl, DugtrioCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $04 ld a, [$d62b] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d62b ld de, PointsData_f933 call Func_f853 call Func_f824 ret Func_f9a2: ; 0xf9a2 ld de, wcBottomMessageText + $03 ld hl, CaveShotCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $03 ld a, [$d62c] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d62c ld de, PointsData_f939 call Func_f853 call Func_f824 ret Func_f9ca: ; 0xf9ca ld de, wcBottomMessageText + $01 ld hl, SpinnerTurnsCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $01 ld a, [$d62d] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d62d ld de, PointsData_f93f call Func_f853 call Func_f824 ret Func_f9f2: ; 0xf9f2 ret Func_f9f3: ; 0xf9f3 call Func_fa06 call Func_fa2e call Func_fa56 call Func_fa7e call Func_faa6 call Func_face ret Func_fa06: ; 0xfa06 ld de, wcBottomMessageText + $04 ld hl, CloysterCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $04 ld a, [$d63b] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d63b ld de, PointsData_f92d call Func_f853 call Func_f824 ret Func_fa2e: ; 0xfa2e ld de, wcBottomMessageText + $04 ld hl, SlowpokeCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $04 ld a, [$d63a] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d63a ld de, PointsData_f92d call Func_f853 call Func_f824 ret Func_fa56: ; 0xfa56 ld de, wcBottomMessageText + $04 ld hl, PoliwagCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $04 ld a, [$d63d] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d63d ld de, PointsData_f933 call Func_f853 call Func_f824 ret Func_fa7e: ; 0xfa7e ld de, wcBottomMessageText + $04 ld hl, PsyduckCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $04 ld a, [$d63c] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d63c ld de, PointsData_f933 call Func_f853 call Func_f824 ret Func_faa6: ; 0xfaa6 ld de, wcBottomMessageText + $03 ld hl, CaveShotCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $03 ld a, [$d62c] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d62c ld de, PointsData_f939 call Func_f853 call Func_f824 ret Func_face: ; 0xface :) ld de, wcBottomMessageText + $01 ld hl, SpinnerTurnsCounterText call PrintTextNoHeader ld hl, wcBottomMessageText + $01 ld a, [$d62d] call Func_f78e ld bc, $0040 ld de, $0000 call Func_f80d ld hl, $d62d ld de, PointsData_f93f call Func_f853 call Func_f824 ret Func_faf6: ; 0xfaf6 ret Func_faf7: ; 0xfaf7 ret Func_faf8: ; 0xfaf8 ret ; XXX ret ; XXX ret SECTION "bank4", ROMX, BANK[$4] Func_10000: ; 0x10000 ld c, a ld a, [wInSpecialMode] and a ret z ld a, c ld [$d54c], a ld a, [wSpecialMode] cp $1 jp z, Func_10a95 cp $2 jr nz, .asm_10021 ld [$ff8a], a callba Func_301ce ret .asm_10021 ld a, [wCurrentStage] call CallInFollowingTable CallTable_10027: ; 0x10027 ; STAGE_RED_FIELD_TOP dw Func_20000 db Bank(Func_20000), $00 ; STAGE_RED_FIELD_BOTTOM dw Func_20000 db Bank(Func_20000), $00 dw Func_20000 db Bank(Func_20000), $00 dw Func_20000 db Bank(Func_20000), $00 ; STAGE_BLUE_FIELD_TOP dw Func_202bc db Bank(Func_202bc), $00 ; STAGE_BLUE_FIELD_BOTTOM dw Func_202bc db Bank(Func_202bc), $00 StartCatchEmMode: ; 0x1003f ld a, [wInSpecialMode] ; current game mode? and a ret nz ; don't start catch 'em mode if we're already doing something like Map Move mode ld a, $1 ld [wInSpecialMode], a ; set special mode flag xor a ld [wSpecialMode], a ld [$d54d], a ld a, [wCurrentStage] sla a ld c, a ld b, $0 push bc ld hl, WildMonOffsetsPointers add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, [wCurrentMap] sla a ld c, a add hl, bc ld a, [hli] ld c, a ld a, [hl] ld b, a pop de ld hl, WildMonPointers add hl, de ld a, [hli] ld h, [hl] ld l, a add hl, bc call GenRandom and $f call CheckForMew ld c, a ld b, $0 add hl, bc ld a, [wRareMonsFlag] ; this gets set to $08 when the rare mons should be used. sla a ld c, a add hl, bc ld a, [hl] ; a contains mon id dec a ld [wCurrentCatchEmMon], a ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 ld hl, EvolutionLineIds add hl, bc ld c, [hl] ld h, b ld l, c add hl, bc add hl, bc ; multiply the evolution line id by 3 ld bc, Data_13685 add hl, bc ld a, [hli] ld [$d5c1], a ld [$d5be], a ld a, [hli] ld [$d5c2], a ld a, [hli] ld [$d5c3], a ld hl, $d586 ld a, [$d5b6] ld c, a and a ld b, $18 jr z, .asm_100c7 .asm_100ba ld a, $1 ld [hli], a xor a ld [hli], a dec b dec c jr nz, .asm_100ba ld a, b and a jr z, .asm_100ce .asm_100c7 xor a ld [hli], a inc a ld [hli], a dec b jr nz, .asm_100c7 .asm_100ce ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 sla c rl b ld hl, CatchEmTimerData add hl, bc ld a, [hli] ld c, a ld a, [hl] ld b, a ld [$ff8a], a callba StartTimer ld [$ff8a], a callba InitBallSaverForCatchEmMode call Func_10696 call Func_3579 ld a, [wCurrentStage] bit 0, a jr z, .asm_1011d ld a, BANK(StageRedFieldBottomBaseGameBoyColorGfx) ld hl, StageRedFieldBottomBaseGameBoyColorGfx + $300 ld de, $8ae0 ld bc, $0020 call Func_735 ld a, $0 ld hl, Data_2898 ld de, $9906 ld bc, $0008 call Func_735 .asm_1011d call SetPokemonSeenFlag ld a, [wCurrentStage] rst JumpTable ; calls JumpToFuncInTable CallTable_10124: ; 0x10124 ; STAGE_RED_FIELD_TOP dw Func_10871 ; STAGE_RED_FIELD_BOTTOM dw Func_10871 dw Func_1098a dw Func_1098a ; STAGE_BLUE_FIELD_TOP dw Func_1098c ; STAGE_BLUE_FIELD_BOTTOM dw Func_1098c CheckForMew: ; Sets the encountered mon to Mew if the following conditions are met: ; 1. Random number in register a equals $f ; 2. The current map is Indigo Plateau (it does a roundabout way of checking this) ; 3. The right alley has been hit three times ; 4. The Mewtwo Bonus Stage completion counter equals 2. push af cp $f ; random number equals $f jr nz, .asm_10155 ld a, c cp $60 ; check if low-byte of map mons offset is Indigo Plateau jr nz, .asm_10155 ld a, b cp $1 ; check if high-byte of map mons offset is Indigo Plateau jr nz, .asm_10155 ld a, [wRareMonsFlag] cp $8 jr nz, .asm_10155 ld a, [wNumMewtwoBonusCompletions] cp $2 jr nz, .asm_10155 pop af xor a ld [wNumMewtwoBonusCompletions], a ld a, $10 ret .asm_10155 pop af ret Func_10157: ; 0x10157 xor a ld [wInSpecialMode], a ld [$d5bb], a ld [$d5c6], a ld [$d5b6], a ld [wNumMonHits], a call Func_10488 ld [$ff8a], a callba Func_86d2 ld a, [wCurrentStage] rst JumpTable ; calls JumpToFuncInTable CallTable_10178: ; 0x10178 ; STAGE_RED_FIELD_TOP dw Func_108f5 ; STAGE_RED_FIELD_BOTTOM dw Func_108f5 dw Func_1098b dw Func_1098b ; STAGE_BLUE_FIELD_TOP dw Func_109fc ; STAGE_BLUE_FIELD_BOTTOM dw Func_109fc Func_10184: ; 0x10184 ld a, [wCurrentStage] bit 0, a ret z ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_10199 inc b .asm_10199 ld hl, MonBillboardPicPointers add hl, bc ld a, [hli] ld [$ff8c], a ld a, [hli] ld [$ff8d], a ld a, [hl] ld [$ff8e], a ld hl, MonBillboardPaletteMapPointers add hl, bc ld a, [hli] ld [$ff8f], a ld a, [hli] ld [$ff90], a ld a, [hli] ld [$ff91], a ld de, wc000 ld hl, $d586 ld c, $0 .asm_101bb ld a, [hli] cp [hl] ld [hli], a jr z, .asm_101d2 ld b, a call nz, Func_101d9 ld a, [hGameBoyColorFlag] and a jr z, .asm_101d2 ld a, [wCurrentStage] bit 0, a ld a, b call nz, Func_10230 .asm_101d2 inc c ld a, c cp $18 jr nz, .asm_101bb ret Func_101d9: ; 0x101d9 push bc push hl push de push af ld a, $10 ld [de], a inc de ld a, $1 ld [de], a inc de ld b, $0 ld hl, Data_102a4 add hl, bc ld c, [hl] sla c rl b sla c rl b sla c rl b sla c rl b ld hl, $8900 add hl, bc ld a, l ld [de], a inc de ld a, h ld [de], a inc de ld a, [$ff8c] ld l, a ld a, [$ff8d] ld h, a add hl, bc pop af and a jr nz, .asm_10215 ld bc, $0180 add hl, bc .asm_10215 ld a, l ld [de], a inc de ld a, h ld [de], a inc de ld a, [$ff8e] ld [de], a inc de ld a, $0 ld [de], a inc de pop bc push de xor a ld de, $11d2 call Func_10c5 pop de pop hl pop bc ret Func_10230: ; 0x10230 push bc push hl push de push af ld a, $1 ld [de], a inc de ld [de], a inc de ld b, $0 ld hl, Data_102a4 add hl, bc ld c, [hl] sla c ld hl, PointerTable_10274 add hl, bc ld a, [hli] ld [de], a inc de ld a, [hl] ld [de], a inc de srl c ld a, [$ff8f] ld l, a ld a, [$ff90] ld h, a add hl, bc pop af and a ld a, [$ff91] call ReadByteFromBank jr nz, .asm_10261 ld a, $5 .asm_10261 ld [de], a inc de ld a, $0 ld [de], a inc de pop bc push de xor a ld de, $118d call Func_10c5 pop de pop hl pop bc ret PointerTable_10274: ; 0x10274 dw $9887 dw $9888 dw $9889 dw $988A dw $988B dw $988C dw $98A7 dw $98A8 dw $98A9 dw $98AA dw $98AB dw $98AC dw $98C7 dw $98C8 dw $98C9 dw $98CA dw $98CB dw $98CC dw $98E7 dw $98E8 dw $98E9 dw $98EA dw $98EB dw $98EC Data_102a4: ; 0x102a4 db $00, $07, $06, $01, $0E, $15, $14, $0F, $04, $0B, $0A, $05, $0C, $13, $12, $0D, $02, $09, $08, $03, $10, $17, $16, $11 Func_102bc: ; 0x102bc ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_102cb inc b .asm_102cb ld hl, MonBillboardPalettePointers add hl, bc ld a, [hli] ld [$ff8c], a ld a, [hli] ld [$ff8d], a ld a, [hl] ld [$ff8e], a ld de, $c1b8 ld a, $10 ld [de], a inc de ld a, $8 ld [de], a inc de ld a, $30 ld [de], a inc de ld a, [$ff8c] ld [de], a inc de ld a, [$ff8d] ld [de], a inc de ld a, [$ff8e] ld [de], a inc de ld a, $0 ld [de], a xor a ld bc, $c1b8 ld de, $1266 call Func_10c5 ret Func_10301: ; 0x10301 ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_10310 inc b .asm_10310 ld hl, MonAnimatedPalettePointers add hl, bc ld a, [hli] ld [$ff8c], a ld a, [hli] ld [$ff8d], a ld a, [hl] ld [$ff8e], a ld de, $c1b8 ld a, $10 ld [de], a inc de ld a, $4 ld [de], a inc de ld a, $58 ld [de], a inc de ld a, [$ff8c] ld [de], a inc de ld a, [$ff8d] ld [de], a inc de ld a, [$ff8e] ld [de], a inc de ld a, $4 ld [de], a inc de ld a, $68 ld [de], a inc de ld a, [$ff8c] ld l, a ld a, [$ff8d] ld h, a ld bc, $0008 add hl, bc ld a, l ld [de], a inc de ld a, h ld [de], a inc de ld a, [$ff8e] ld [de], a inc de ld a, $0 ld [de], a xor a ld bc, $c1b8 ld de, $1266 call Func_10c5 ret Func_10362: ; 0x10362 ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_10371 inc b .asm_10371 ld hl, MonAnimatedPicPointers add hl, bc ld a, [hli] ld [$ff8c], a ld a, [hli] ld [$ff8d], a ld a, [hl] ld [$ff8e], a ld de, $c150 ld bc, $0000 .asm_10384 call Func_1038e inc c ld a, c cp $d jr nz, .asm_10384 ret Func_1038e: ; 0x1038e push bc push de ld a, c sla a add c ld c, a sla c ld hl, Data_103c6 add hl, bc ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [$ff8c] add [hl] ld [de], a inc hl inc de ld a, [$ff8d] adc [hl] ld [de], a inc de ld a, [$ff8e] ld [de], a inc de ld a, $0 ld [de], a inc de pop bc push de xor a ld de, $11d2 call Func_10c5 pop de pop bc ret Data_103c6: ; 0x103c6 ; TODO: this might have pointers in it db $40, $04, $00, $89, $00, $00 db $40, $04, $40, $89, $40, $00 db $40, $04, $80, $89, $80, $00 db $40, $04, $C0, $89, $C0, $00 db $40, $04, $00, $8A, $00, $01 db $40, $04, $40, $8A, $40, $01 db $20, $02, $80, $8A, $80, $01 db $20, $02, $A0, $81, $A0, $01 db $40, $04, $C0, $81, $C0, $01 db $40, $04, $00, $82, $00, $02 db $40, $04, $40, $82, $40, $02 db $40, $04, $80, $82, $80, $02 db $40, $04, $C0, $82, $C0, $02 Func_10414: ; 0x10414 ld a, $4 ld bc, $4420 ld de, $11b5 call Func_10c5 ret dr $10420, $10432 Func_10432: ; 0x10432 ld a, $4 ld bc, $443e ld de, LoadTileLists call Func_10c5 ret dr $1043e, $10464 Func_10464: ; 0x10464 ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .noCarry inc b .noCarry ld hl, MonAnimatedCollisionMaskPointers add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hl] ld h, b ld l, c ld de, wMonAnimatedCollisionMask ld bc, $0080 call FarCopyData ret Func_10488: ; 0x10488 xor a ld hl, wMonAnimatedCollisionMask ld b, $20 .asm_1048e ld [hli], a ld [hli], a ld [hli], a ld [hli], a dec b jr nz, .asm_1048e ret Func_10496: ; 0x10496 xor a ld [$d5c6], a ld a, BANK(PikachuSaverGfx) ld hl, PikachuSaverGfx + $c0 ld de, $87e0 ld bc, $0020 call LoadVRAMData ld a, BANK(GFX_a8800) ld hl, GFX_a8800 ld de, $8900 ld bc, $0180 call LoadVRAMData call LoadShakeBallGfx ld hl, BallCaptureAnimationData ld de, wBallCaptureAnimationFrameCounter call CopyHLToDE ld a, $1 ld [$d5f3], a xor a ld [wBallXVelocity], a ld [wBallXVelocity + 1], a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a xor a ld [$d548], a ld [$d549], a ld de, $000b call PlaySoundEffect ret LoadShakeBallGfx: ; 0x104e2 ; Loads the graphics for the ball shaking after a pokemon is caught. ld a, [wBallType] cp GREAT_BALL jr nc, .notPokeball ld a, Bank(PinballPokeballShakeGfx) ld hl, PinballPokeballShakeGfx ld de, $8380 ld bc, $0040 call LoadVRAMData ret .notPokeball cp ULTRA_BALL jr nc, .notGreatball ld a, Bank(PinballGreatballShakeGfx) ld hl, PinballGreatballShakeGfx ld de, $8380 ld bc, $0040 call LoadVRAMData ret .notGreatball cp MASTER_BALL jr nc, .notUltraBall ld a, Bank(PinballUltraballShakeGfx) ld hl, PinballUltraballShakeGfx ld de, $8380 ld bc, $0040 call LoadVRAMData ret .notUltraBall ld a, Bank(PinballMasterballShakeGfx) ld hl, PinballMasterballShakeGfx ld de, $8380 ld bc, $0040 call LoadVRAMData ret CapturePokemon: ; 0x1052d ld a, [wBallCaptureAnimationFrame] cp $c jr nz, .asm_10541 ld a, [wBallCaptureAnimationFrameCounter] cp $1 jr nz, .asm_10541 ld de, $0041 call PlaySoundEffect .asm_10541 ld hl, BallCaptureAnimationData ld de, wBallCaptureAnimationFrameCounter call UpdateAnimation ld a, [wBallCaptureAnimationFrameIndex] cp $1 jr nz, .asm_1055d ld a, [wBallCaptureAnimationFrameCounter] cp $1 jr nz, .asm_1055d xor a ld [$d5bb], a ret .asm_1055d ld a, [wBallCaptureAnimationFrameIndex] cp $15 ret nz ld a, [wBallCaptureAnimationFrameCounter] cp $1 ret nz call Func_3475 ld de, $0000 call PlaySong rst AdvanceFrame ld de, $2329 call PlaySoundEffect call Func_10825 call Func_3475 ld a, [wNumPartyMons] and a call z, Func_10848 ld a, $50 ld [$d4b4], a ld a, $40 ld [$d4b6], a ld a, $80 ld [wBallXVelocity], a xor a ld [wBallXPos], a ld [wBallYPos], a ld [$d5f3], a ld a, $1 ld [$d548], a ld [$d549], a ld [$ff8a], a callba Func_dc00 call Func_10157 ld de, $0001 call PlaySong ld hl, $d628 call Func_e4a jr nc, .asm_105d1 ld c, $a call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch .asm_105d1 call SetPokemonOwnedFlag ld a, [$d624] cp $3 ret z inc a ld [$d625], a ld a, $80 ld [$d626], a ret BallCaptureAnimationData: ; 0x105e4 ; Each entry is [OAM id][duration] db $05, $00 db $05, $01 db $05, $02 db $04, $03 db $06, $04 db $08, $05 db $07, $06 db $05, $07 db $04, $08 db $04, $09 db $04, $0A db $04, $0B db $24, $0A db $09, $0C db $09, $0A db $09, $0C db $27, $0A db $09, $0C db $09, $0A db $09, $0C db $24, $0A db $01, $0A db $00 ; terminator Func_10611: ; 0x10611 and a ret z dec a sla a ld c, a ld b, $0 ld hl, Data_1062a add hl, bc ld a, [hli] ld c, a ld a, [hl] ld b, a ld a, $4 ld de, $11d2 call Func_10c5 ret Data_1062a: dr $1062a, $10648 Func_10648: ; 0x10648 call Func_10184 ld a, [$d54e] dec a ld [$d54e], a jr nz, .asm_10677 ld a, $14 ld [$d54e], a ld hl, $d586 ld b, $18 .asm_1065e ld a, [$d54f] and $1 ld [hli], a xor $1 ld [hli], a dec b jr nz, .asm_1065e ld a, [$d54f] dec a ld [$d54f], a jr nz, .asm_10677 ld hl, $d54d inc [hl] .asm_10677 ret Func_10678: ; 0x10678 ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 ld hl, MonAnimatedSpriteTypes add hl, bc ld a, [hl] ld [$d5bc], a ld [$d5bd], a ld a, $1 ld [$d5bb], a xor a ld [$d5bf], a ld [wNumMonHits], a ret Func_10696: ; 0x10696 call Func_30e8 call Func_30db ld hl, $d5cc ld de, LetsGetPokemonText call LoadTextHeader ret Func_106a6: ; 0x106a6 call Func_30e8 call Func_30db ld hl, $d5cc ld de, PokemonRanAwayText call LoadTextHeader ret Func_106b6: ; 0x106b6 ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b sla c rl b ; bc was just multiplied by 16 ld hl, PokemonNames + 1 add hl, bc ld de, YouGotAnText ; todo "You got an" ld bc, Data_2a91 ; todo ld a, [hl] ; check if mon's name starts with a vowel, so it can print "an", instead of "a" cp "A" jr z, .asm_106f1 cp "I" jr z, .asm_106f1 cp "U" jr z, .asm_106f1 cp "E" jr z, .asm_106f1 cp "O" jr z, .asm_106f1 ld de, YouGotAText ; todo "You got a" ld bc, Data_2a79 .asm_106f1 push hl push bc push de call Func_30e8 call Func_30db ld hl, $d5cc pop de call LoadTextHeader ld hl, $d5d4 pop de call LoadTextHeader pop hl ld de, wcBottomMessageText + $20 ld b, $0 ; count the number of letters in mon's name in register b .readLetter ld a, [hli] and a jr z, .endOfName ld [de], a inc de inc b jr .readLetter .endOfName ld a, $20 ld [de], a inc de xor a ld [de], a ld a, [$d5db] add b ld [$d5db], a ld a, $14 sub b srl a ld b, a ld a, [$d5d8] add b ld [$d5d8], a ret Func_10732: ; 0x10732 ld a, [wCurrentCatchEmMon] inc a ld e, a ld d, $0 call PlayCry ret AddCaughtPokemonToParty: ; 0x1073d ld a, [wNumPartyMons] ld c, a ld b, $0 ld hl, wPartyMons add hl, bc ld a, [wCurrentCatchEmMon] ld [hl], a ld a, [wNumPartyMons] inc a ld [wNumPartyMons], a ret SetPokemonSeenFlag: ; 0x10753 ld a, [wSpecialMode] and a ld a, [wCurrentCatchEmMon] jr z, .asm_10766 ld a, [wCurrentEvolutionMon] cp $ff jr nz, .asm_10766 ld a, [wCurrentCatchEmMon] .asm_10766 ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc set 0, [hl] ld hl, wPokedexFlags ld de, $a10c ld bc, $0098 call SaveData ret SetPokemonOwnedFlag: ; 0x1077c ld a, [wSpecialMode] and a ld a, [wCurrentCatchEmMon] jr z, .asm_1078f ld a, [wCurrentEvolutionMon] cp $ff jr nz, .asm_1078f ld a, [wCurrentCatchEmMon] .asm_1078f ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc set 1, [hl] ld hl, wPokedexFlags ld de, $a10c ld bc, $0098 call SaveData ret Func_107a5: ; 0x107a5 xor a ld hl, wIndicatorStates ld b, $13 .asm_107ab ld [hli], a dec b jr nz, .asm_107ab ret Func_107b0: ; 0x107b0 xor a ld [$d604], a ld [wIndicatorStates + 4], a ld [$ff8a], a callba Func_16425 ret Func_107c2: ; 0x107c2 ld a, $1e ld [$d607], a ret Func_107c8: ; 0x107c8 ld a, [wRightAlleyCount] cp $3 jr z, .asm_107d1 set 7, a .asm_107d1 ld [wIndicatorStates + 1], a ld a, [wRightAlleyCount] cp $2 jr c, .asm_107e0 ld a, $80 ld [wIndicatorStates + 3], a .asm_107e0 ld a, [wLeftAlleyCount] set 7, a ld [wIndicatorStates], a ret Func_107e9: ; 0x107e9 ld a, [wLeftAlleyCount] cp $3 ld a, $4 jr nz, .asm_107f4 ld a, $6 .asm_107f4 ld [$d7ad], a ret Func_107f8: ; 0x107f8 ld a, [wTimerFrames] and a ret nz ld a, [wTimerMinutes] and a ret nz ld a, [wTimerSeconds] cp $20 jr nz, .asm_10810 ld de, $0749 call PlaySoundEffect ret .asm_10810 cp $10 jr nz, .asm_1081b ld de, $0a4a call PlaySoundEffect ret .asm_1081b cp $5 ret nz ld de, $0d4b call PlaySoundEffect ret Func_10825: ; 0x10825 call Func_3556 push bc push de call Func_351c call Func_30e8 call Func_30db ld hl, $d5e9 ld de, $2a50 call Func_3372 pop de pop bc ld hl, $d5e4 ld de, $2a43 call Func_3357 ret Func_10848: ; 0x10848 ld bc, OneHundredPoints ld [$ff8a], a callba Func_8588 call Func_30e8 call Func_30db ld hl, $d5d4 ld de, OneBillionText call LoadTextHeader ld hl, $d5cc ld de, PokemonCaughtSpecialBonusText call LoadTextHeader call Func_3475 ret Func_10871: ; 0x10871 ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 ld hl, EvolutionLineIds add hl, bc ld a, [hl] ; a contains evolution line id ld c, a ld b, $0 ld l, c ld h, b sla l rl h sla l rl h sla l rl h sla l rl h add hl, bc add hl, bc add hl, bc ld c, l ld b, h ld hl, CatchEmModeInitialIndicatorStates add hl, bc ld de, wIndicatorStates ld b, $13 ; number of indicators .loop ld a, [hli] ld [de], a inc de dec b jr nz, .loop xor a ld [wRightAlleyCount], a call Func_107b0 ld a, $4 ld [$d7ad], a ld de, $0002 call PlaySong ld a, [wCurrentStage] bit 0, a jr nz, .asm_108d3 ld [$ff8a], a callba LoadStageCollisionAttributes ld [$ff8a], a callba Func_159f4 ret .asm_108d3 ld [$ff8a], a callba Func_14135 ld [$ff8a], a callba Func_10184 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_102bc) ld hl, Func_102bc call nz, BankSwitch ret Func_108f5: ; 0x108f5 call Func_107a5 call Func_107c2 call Func_107c8 call Func_107e9 ld a, [wCurrentStage] bit 0, a ret z ld [$ff8a], a callba Func_14135 call Func_10432 ld [$ff8a], a callba Func_30253 ld a, Bank(StageSharedBonusSlotGlowGfx) ld hl, StageSharedBonusSlotGlowGfx ld de, $81a0 ld bc, $0160 call LoadVRAMData ld a, BANK(StageSharedBonusSlotGlow2Gfx) ld hl, StageSharedBonusSlotGlow2Gfx ld de, $8380 ld bc, $0020 call LoadVRAMData ld hl, Data_10958 ld a, $4 call Func_10aa ld a, [$d624] ld [$ff8a], a callba Func_174d4 ld hl, Data_1097d ld a, $4 call Func_10aa ret Data_10958: dr $10958, $1097d Data_1097d: dr $1097d, $1098a Func_1098a: ; 0x1098a ret Func_1098b: ; 0x1098b ret Func_1098c: ; 0x1098c ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 ld hl, EvolutionLineIds add hl, bc ld a, [hl] ld c, a ld b, $0 ld l, c ld h, b sla l rl h sla l rl h sla l rl h sla l rl h add hl, bc add hl, bc add hl, bc ld c, l ld b, h ld hl, CatchEmModeInitialIndicatorStates add hl, bc ld de, wIndicatorStates ld b, $13 ; number of indicators .loop ld a, [hli] ld [de], a inc de dec b jr nz, .loop xor a ld [wRightAlleyCount], a ld [$ff8a], a callba Func_1f2ed ld de, $0002 call PlaySong ld a, [wCurrentStage] bit 0, a ret z ld [$ff8a], a callba Func_1c2cb ld [$ff8a], a ld a, $4 ld hl, Func_10184 call BankSwitch ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_102bc) ld hl, Func_102bc call nz, BankSwitch ret Func_109fc: ; 0x109fc call Func_107a5 call Func_107c2 ld [$ff8a], a callba Func_1f2ff ld a, [wCurrentStage] bit 0, a ret z ld [$ff8a], a callba Func_1c2cb call Func_10432 ld [$ff8a], a callba Func_30253 ld a, BANK(StageSharedBonusSlotGlowGfx) ld hl, StageSharedBonusSlotGlowGfx ld de, $81a0 ld bc, $0160 call LoadVRAMData ld a, BANK(StageSharedBonusSlotGlow2Gfx) ld hl, StageSharedBonusSlotGlow2Gfx ld de, $8380 ld bc, $0020 call LoadVRAMData ld hl, Data_10a63 ld a, $4 call Func_10aa ld a, [$d624] ld [$ff8a], a callba Func_174d4 ld hl, Data_10a88 ld a, $4 call Func_10aa ret Data_10a63: dr $10a63, $10a88 Data_10a88: dr $10a88, $10a95 Func_10a95: ; 0x19a95 ld a, [wCurrentStage] call CallInFollowingTable PointerTable_10a9b: ; 0x10a9b ; STAGE_RED_FIELD_TOP dw Func_20581 db Bank(Func_20581), $00 ; STAGE_RED_FIELD_BOTTOM dw Func_20581 db Bank(Func_20581), $00 dw Func_20581 db Bank(Func_20581), $00 dw Func_20581 db Bank(Func_20581), $00 ; STAGE_BLUE_FIELD_TOP dw Func_20bae db Bank(Func_20bae), $00 ; STAGE_BLUE_FIELD_BOTTOM dw Func_20bae db Bank(Func_20bae), $00 Func_10ab3: ; 0x10ab3 ld a, [wInSpecialMode] and a ret nz ld a, [wCurrentStage] rst JumpTable ; calls JumpToFuncInTable CallTable_10abc: ; 0x10abc ; STAGE_RED_FIELD_TOP dw Func_10ebb ; STAGE_RED_FIELD_BOTTOM dw Func_10ebb dw Func_11054 dw Func_11054 ; STAGE_BLUE_FIELD_TOP dw Func_11061 ; STAGE_BLUE_FIELD_BOTTOM dw Func_11061 Func_10ac8: ; 0x10ac8 xor a ld [$d5ca], a call Func_30e8 xor a ld [wInSpecialMode], a ld [$d5bb], a ld [$d5b6], a ld [wNumMonHits], a ld [$d551], a ld [$d554], a call Func_10488 ld [$ff8a], a callba Func_86d2 ld a, [wCurrentStage] rst JumpTable ; calls JumpToFuncInTable CallTable_10af3: ; 0x10af3 ; STAGE_RED_FIELD_TOP dw Func_10fe3 ; STAGE_RED_FIELD_BOTTOM dw Func_10fe3 dw Func_11060 dw Func_11060 ; STAGE_BLUE_FIELD_TOP dw Func_11195 ; STAGE_BLUE_FIELD_TOP dw Func_11195 Func_10aff: ; 0x10aff ld a, [wCurrentStage] res 0, a ld c, a ld b, $0 srl c sla a sla a sla a sub c ld c, a ld hl, VideoData_10b2a add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] push af push bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld c, a ld a, [hli] ld b, a pop hl pop af call LoadVRAMData ret VideoData_10b2a: ; 0x10b2a dwb $7A00, $25 dw $8900 dw $E0 dwb $7A00, $25 dw $8900 dw $E0 dwb $7A00, $25 dw $8900 dw $E0 Func_10b3f: ; 0x10b3f call Func_30e8 call Func_30db ld hl, $d5cc ld a, [wCurrentEvolutionType] cp EVO_EXPERIENCE ld de, StartTrainingText jr z, .asm_10b55 ld de, FindItemsText .asm_10b55 call LoadTextHeader ret Func_10b59: ; 0x10b59 xor a ld [$d4aa], a ld hl, wcBottomMessageText ld a, $81 ld b, $30 .asm_10b64 ld [hli], a ld [hli], a ld [hli], a ld [hli], a dec b jr nz, .asm_10b64 ld hl, wPartyMons call Func_10b8e ld a, BANK(InGameMenuSymbolsGfx) ld hl, InGameMenuSymbolsGfx ld de, $8880 ld bc, $0030 call LoadVRAMData ld a, $0 ld hl, wcBottomMessageText ld de, $9c00 ld bc, $00c0 call LoadVRAMData ret Func_10b8e: ; 0x10b8e ld a, [wNumPartyMons] ld c, $0 ld b, a .asm_10b94 ld a, [hli] call Func_10ba2 inc c ld a, c cp $6 jr z, .asm_10ba1 dec b jr nz, .asm_10b94 .asm_10ba1 ret Func_10ba2: ; 0x10ba2 push bc push hl swap c sla c ld b, $0 ld hl, wcBottomMessageText add hl, bc ld d, h ld e, l ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b sla c rl b ld hl, PokemonNames add hl, bc ld a, $81 ld [de], a inc de ld a, $81 ld [de], a inc de ld a, $81 ld [de], a inc de ld a, $81 ld [de], a inc de call Func_3125 .asm_10bda ld a, e and $1f cp $14 jr nc, .asm_10be7 ld a, $81 ld [de], a inc de jr .asm_10bda .asm_10be7 pop hl pop bc ret Func_10bea: ; 0x10bea xor a ld [$d461], a ld [$d462], a ld [$d463], a .asm_10bf4 call Func_10c0c call Func_b2e call Func_10c38 rst AdvanceFrame ld a, [$d809] bit 0, a jr z, .asm_10bf4 ld de, $0001 call PlaySoundEffect ret Func_10c0c: ; 0x10c0c ld a, [$d80a] ld b, a ld a, [wNumPartyMons] ld c, a ld a, [$d461] bit 6, b jr z, .asm_10c28 and a ret z dec a ld [$d461], a ld de, $0003 call PlaySoundEffect ret .asm_10c28 bit 7, b ret z inc a cp c ret z ld [$d461], a ld de, $0003 call PlaySoundEffect ret Func_10c38: ; 0x10c38 ld a, [$d461] ld hl, $d462 sub [hl] jr nc, .asm_10c45 dec [hl] xor a jr .asm_10c4c .asm_10c45 cp $6 jr c, .asm_10c4c inc [hl] ld a, $5 .asm_10c4c ld c, a push bc ld a, [hl] ld c, a ld b, $0 ld hl, wPartyMons add hl, bc call Func_10b8e ld a, [hJoypadState] and a ld a, [$d463] jr z, .asm_10c62 xor a .asm_10c62 inc a ld [$d463], a bit 3, a pop bc jr nz, .asm_10c78 swap c sla c ld b, $0 ld hl, wcBottomMessageText + $03 add hl, bc ld a, $88 ld [hl], a .asm_10c78 ld a, [$d462] and a jr z, .asm_10c83 ld a, $8a ld [wcBottomMessageText + $11], a .asm_10c83 ld a, [$d462] add $7 jr z, .asm_10c96 ld c, a ld a, [wNumPartyMons] cp c jr c, .asm_10c96 ld a, $89 ld [wcBottomMessageText + $b1], a .asm_10c96 ld a, $0 ld hl, wcBottomMessageText ld de, $9c00 ld bc, $00c0 call LoadVRAMData ret Func_10ca5: ; 0x10ca5 ld a, [$d461] ld c, a ld b, $0 ld hl, wPartyMons add hl, bc ld a, [wCurrentEvolutionMon] cp $ff ret z ld [hl], a ret Func_10cb7: ; 0x10cb7 call Func_30e8 call Func_10b59 ld a, $60 ld [$ffa6], a dec a ld [$ffa2], a ld a, $fd ld [$ffaf], a call Func_10bea ld a, $86 ld [$ffa6], a ld a, $83 ld [$ffa2], a ld [$ffa8], a ld a, $ff ld [$ffaf], a ld a, [hGameBoyColorFlag] and a jr nz, .asm_10cee ld a, BANK(StageRedFieldTopStatusBarSymbolsGfx_GameBoy) ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoy + $80 ld de, $8880 ld bc, $0030 call LoadVRAMData jr .asm_10cfc .asm_10cee ld a, BANK(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor) ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + $80 ld de, $8880 ld bc, $0030 call LoadVRAMData .asm_10cfc call Func_30e8 ld a, $1 ld [$d4aa], a ld [wInSpecialMode], a ld [wSpecialMode], a xor a ld [$d54d], a ld a, [$d461] ld c, a ld b, $0 ld hl, wPartyMons add hl, bc ld a, [hl] ld [wCurrentCatchEmMon], a ret Func_10d1d: ; 0x10d1d ld hl, $d586 ld b, $18 .asm_10d22 ld a, $1 ld [hli], a xor a ld [hli], a dec b jr nz, .asm_10d22 ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 ld hl, Data_1298b add hl, bc ld a, [hl] add $2 ld [$d555], a xor a ld hl, $d566 ld b, $13 .asm_10d40 ld [hli], a dec b jr nz, .asm_10d40 ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 sla c rl b ld hl, CatchEmTimerData add hl, bc ld a, [hli] ld c, a ld a, [hl] ld b, a ld [$ff8a], a callba StartTimer ld a, [wCurrentCatchEmMon] ld c, a ld b, $0 sla c ; multiply mon id by 6 rl b add c ld c, a jr nc, .noCarry inc b .noCarry sla c rl b ld hl, MonEvolutions add hl, bc push hl ld bc, $03ff .countMonEvolutionsLoop ld a, [hli] and a jr z, .noEvolution inc c .noEvolution inc hl dec b jr nz, .countMonEvolutionsLoop ld a, c cp $ff jr nz, .asm_10d8a xor a .asm_10d8a call Func_a21 sla a ld c, a pop hl add hl, bc ; hl points to one of three entries in mon's evolution data ld a, [hli] ; a = mon id of evolution dec a ld [wCurrentEvolutionMon], a ld a, [hl] ; a = evoluion type id ld [wCurrentEvolutionType], a xor a ld [$d554], a ld [$d556], a ld [$d557], a ld hl, $d55c ld a, $1 ld b, $3 .asm_10dac ld [hli], a dec b jr nz, .asm_10dac xor a ld b, $7 .asm_10db3 ld [hli], a dec b jr nz, .asm_10db3 ld de, $d55c ld a, [$d555] ld c, a inc a ld b, a .asm_10dc0 push bc ld a, c call Func_a21 ld c, a ld b, $0 ld hl, $d55c add hl, bc ld c, [hl] ld a, [de] ld [hl], a ld a, c ld [de], a pop bc inc de dec b jr nz, .asm_10dc0 ld [$ff8a], a callba InitBallSaverForCatchEmMode call Func_10b3f call Func_3579 ld a, [wCurrentStage] bit 0, a jr z, .asm_10e09 ld a, BANK(StageRedFieldBottomBaseGameBoyColorGfx) ld hl, StageRedFieldBottomBaseGameBoyColorGfx + $300 ld de, $8ae0 ld bc, $0020 call Func_735 ld a, $0 ld hl, Data_2898 ld de, $9906 ld bc, $0008 call Func_735 .asm_10e09 ret Func_10e0a: ; 0x10e0a ld a, [wCurrentEvolutionMon] cp $ff jp z, Func_10e8b ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b sla c rl b ld hl, PokemonNames + 1 add hl, bc ld de, ItEvolvedIntoAnText ; "It evolved into an" ld bc, Data_2b34 ld a, [hl] ; check if mon's name starts with a vowel, so it can print "an", instead of "a" cp "A" jr z, .nameStartsWithVowel cp "I" jr z, .nameStartsWithVowel cp "U" jr z, .nameStartsWithVowel cp "E" jr z, .nameStartsWithVowel cp "O" jr z, .nameStartsWithVowel ld de, ItEvolvedIntoAText ; "It evolved into a" ld bc, Data_2b1c .nameStartsWithVowel push hl push bc push de call Func_30e8 call Func_30db ld hl, $d5cc pop de call LoadTextHeader ld hl, $d5d4 pop de call LoadTextHeader pop hl ld de, wcBottomMessageText + $20 ld b, $0 .asm_10e67 ld a, [hli] and a jr z, .asm_10e70 ld [de], a inc de inc b jr .asm_10e67 .asm_10e70 ld a, $20 ld [de], a inc de xor a ld [de], a ld a, [$d5db] add b ld [$d5db], a ld a, $14 sub b srl a ld b, a ld a, [$d5d8] add b ld [$d5d8], a ret Func_10e8b: ; 0x10e8b ld bc, TenThousandPoints ld [$ff8a], a callba Func_8588 ld bc, $0100 ld de, $0000 push bc push de call Func_30e8 call Func_30db ld hl, $d5d4 ld de, Data_2b6b call Func_32cc pop de pop bc ld hl, $d5cc ld de, EvolutionSpecialBonusText call LoadTextHeader ret Func_10ebb: ; 0x10ebb ld a, [wNumPartyMons] and a ret z call Func_10cb7 call Func_10d1d ld a, [$d555] sub $2 ld c, a sla c ld hl, IndicatorStatesPointerTable_10f3b add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, wIndicatorStates ld b, $13 .asm_10eda ld a, [hli] ld [de], a inc de dec b jr nz, .asm_10eda xor a ld [wLeftAlleyCount], a call Func_107b0 ld a, $2 ld [$d7ad], a ld de, $0002 call PlaySong call SetPokemonSeenFlag ld a, [wCurrentStage] bit 0, a jr nz, .asm_10f0b ld a, BANK(Data_dbe80) ld hl, Data_dbe80 ld de, $8900 ld bc, $00e0 call Func_735 ret .asm_10f0b ld a, BANK(Data_dbe80) ld hl, Data_dbe80 ld de, $8200 ld bc, $00e0 call Func_735 ld [$ff8a], a callba Func_14135 ld [$ff8a], a callba Func_10184 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_102bc) ld hl, Func_102bc call nz, BankSwitch ret IndicatorStatesPointerTable_10f3b: ; 0x10f3b dw IndicatorStates_10f4b dw IndicatorStates_10f5e dw IndicatorStates_10f71 dw IndicatorStates_10f84 dw IndicatorStates_10f97 dw IndicatorStates_10faa dw IndicatorStates_10fbd dw IndicatorStates_10fd0 IndicatorStates_10f4b: ; 0x10f4b db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00 IndicatorStates_10f5e: ; 0x10f5e db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00 IndicatorStates_10f71: ; 0x10f71 db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10f84: ; 0x10f84 db $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10f97: ; 0x10f97 db $00, $00, $00, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10faa: ; 0x10faa db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10fbd: ; 0x10fbd db $00, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10fd0: ; 0x10fd0 db $00, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 Func_10fe3: ; 0x10fe3 call Func_107a5 call Func_107c2 call Func_107c8 call Func_107e9 ld a, [wCurrentStage] bit 0, a jp z, Func_10aff ld [$ff8a], a callba Func_14135 ld [$ff8a], a callba Func_16425 ld [$ff8a], a callba Func_30253 ld a, BANK(StageSharedBonusSlotGlowGfx) ld hl, StageSharedBonusSlotGlowGfx + $60 ld de, $8200 ld bc, $00e0 call LoadVRAMData ld a, [hGameBoyColorFlag] and a jr z, .asm_11036 ld a, BANK(StageRedFieldBottomOBJPalette7) ld hl, StageRedFieldBottomOBJPalette7 ld de, $0078 ld bc, $0008 call Func_7dc .asm_11036 ld hl, Data_10958 ld a, BANK(Data_10958) call Func_10aa ld a, [$d624] ld [$ff8a], a callba Func_174d4 ld hl, Data_1097d ld a, BANK(Data_1097d) call Func_10aa ret Func_11054: ; 0x11054 ld a, [wNumPartyMons] and a ret z call Func_10cb7 call Func_10d1d ret Func_11060: ; 0x11060 ret Func_11061: ; 0x11061 ld a, [wNumPartyMons] and a ret z call Func_10cb7 call Func_10d1d ld a, $1 ld [$d643], a ld a, [$d555] sub $2 ld c, a sla c ld hl, IndicatorStatesPointerTable_110ed add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, wIndicatorStates ld b, $13 .asm_11085 ld a, [hli] ld [de], a inc de dec b jr nz, .asm_11085 xor a ld [wLeftAlleyCount], a ld [$ff8a], a callba Func_1f2ed ld a, $2 ld [$d7ad], a ld de, $0002 call PlaySong call SetPokemonSeenFlag ld a, [wCurrentStage] bit 0, a jr nz, .asm_110bd ld a, BANK(Data_dbe80) ld hl, Data_dbe80 ld de, $8600 ld bc, $00e0 call Func_735 ret .asm_110bd ld a, BANK(Data_dbe80) ld hl, Data_dbe80 ld de, $8200 ld bc, $00e0 call Func_735 ld [$ff8a], a callba Func_1c2cb ld [$ff8a], a callba Func_10184 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_102bc) ld hl, Func_102bc call nz, BankSwitch ret IndicatorStatesPointerTable_110ed: ; 0x110ed dw IndicatorStates_110fd dw IndicatorStates_11110 dw IndicatorStates_11123 dw IndicatorStates_11136 dw IndicatorStates_11149 dw IndicatorStates_1115c dw IndicatorStates_1116f dw IndicatorStates_11182 IndicatorStates_110fd: ; 0x110fd db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00 IndicatorStates_11110: ; 0x11110 db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00 IndicatorStates_11123: ; 0x11123 db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_11136: ; 0x11136 db $00, $00, $80, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_11149: ; 0x11149 db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_1115c: ; 0x1115c db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_1116f: ; 0x1116f db $80, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_11182: ; 0x11182 db $80, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 Func_11195: ; 0x11195 xor a ld [$d643], a call Func_107a5 call Func_107c2 ld [$ff8a], a callba Func_1f2ff ld a, [wCurrentStage] bit 0, a jp z, Func_1120e ld [$ff8a], a callba Func_1c2cb ld [$ff8a], a callba Func_1e8f6 ld [$ff8a], a callba Func_30253 ld a, Bank(StageSharedBonusSlotGlowGfx) ld hl, StageSharedBonusSlotGlowGfx + $60 ld de, $8200 ld bc, $00e0 call LoadVRAMData ld a, [hGameBoyColorFlag] and a jr z, .asm_111f0 ld a, BANK(StageBlueFieldBottomOBJPalette7) ld hl, StageBlueFieldBottomOBJPalette7 ld de, $0078 ld bc, $0008 call Func_7dc .asm_111f0 ld hl, Data_10a63 ld a, BANK(Data_10a63) call Func_10aa ld a, [$d624] ld [$ff8a], a callba Func_174d4 ld hl, Data_10a88 ld a, BANK(Data_10a88) call Func_10aa ret Func_1120e: ; 0x1120e ld a, [wCurrentStage] sub $4 res 0, a ld c, a ld b, $0 srl c sla a sla a sla a sub c ld c, a ld hl, VRAMData_1123b add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] push af push bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld c, a ld a, [hli] ld b, a pop hl pop af call LoadVRAMData ret VRAMData_1123b: ; 0x1123b dwb $6600, $35 dw $8600, $E0 dwb $6600, $35 dw $8600, $E0 dwb $6600, $35 dw $8600, $E0 dwb $6600, $35 dw $8600, $E0 dwb $6600, $35 dw $8600, $E0 dwb $6600, $35 dw $8600, $E0 dwb $6600, $35 dw $8600, $E0 WildMonOffsetsPointers: ; 0x1126c dw RedStageWildMonDataOffsets dw RedStageWildMonDataOffsets dw RedStageWildMonDataOffsets dw RedStageWildMonDataOffsets dw BlueStageWildMonDataOffsets dw BlueStageWildMonDataOffsets RedStageWildMonDataOffsets: ; 0x11278 dw (RedStagePalletTownWildMons - RedStageWildMons) ; PALLET_TOWN dw $0000 ; VIRIDIAN_CITY (unused in Red Stage) dw (RedStageViridianForestWildMons - RedStageWildMons) ; VIRIDIAN_FOREST dw (RedStagePewterCityWildMons - RedStageWildMons) ; PEWTER_CITY dw $0000 ; MT_MOON (unused in Red Stage) dw (RedStageCeruleanCityWildMons - RedStageWildMons) ; CERULEAN_CITY dw (RedStageVermilionSeasideWildMons - RedStageWildMons) ; VERMILION_SEASIDE dw $0000 ; VERMILION_STREETS (unused in Red Stage) dw (RedStageRockMountainWildMons - RedStageWildMons) ; ROCK_MOUNTAIN dw (RedStageLavenderTownWildMons - RedStageWildMons) ; LAVENDER_TOWN dw $0000 ; CELADON_CITY (unused in Red Stage) dw (RedStageCyclingRoadWildMons - RedStageWildMons) ; CYCLING_ROAD dw $0000 ; FUCHSIA_CITY (unused in Red Stage) dw (RedStageSafariZoneWildMons - RedStageWildMons) ; SAFARI_ZONE dw $0000 ; SAFFRON_CITY (unused in Red Stage) dw (RedStageSeafoamIslandsWildMons - RedStageWildMons) ; SEAFOAM_ISLANDS dw (RedStageCinnabarIslandWildMons - RedStageWildMons) ; CINNABAR_ISLAND dw (RedStageIndigoPlateauWildMons - RedStageWildMons) ; INDIGO_PLATEAU BlueStageWildMonDataOffsets: ; 0x1129c dw $0000 ; PALLET_TOWN (unused in Blue Stage) dw (BlueStageViridianCityWildMons - BlueStageWildMons) ; VIRIDIAN_CITY dw (BlueStageViridianForestWildMons - BlueStageWildMons) ; VIRIDIAN_FOREST dw $0000 ; PEWTER_CITY (unused in Blue Stage) dw (BlueStageMtMoonWildMons - BlueStageWildMons) ; MT_MOON dw (BlueStageCeruleanCityWildMons - BlueStageWildMons) ; CERULEAN_CITY dw $0000 ; VERMILION_SEASIDE (unused in Blue Stage) dw (BlueStageVermilionStreetsWildMons - BlueStageWildMons) ; VERMILION_STREETS dw (BlueStageRockMountainWildMons - BlueStageWildMons) ; ROCK_MOUNTAIN dw $0000 ; LAVENDER_TOWN (unused in Blue Stage) dw (BlueStageCeladonCityWildMons - BlueStageWildMons) ; CELADON_CITY dw $0000 ; CYCLING_ROAD (unused in Blue Stage) dw (BlueStageFuchsiaCityWildMons - BlueStageWildMons) ; FUCHSIA_CITY dw (BlueStageSafariZoneWildMons - BlueStageWildMons) ; SAFARI_ZONE dw (BlueStageSaffronCityWildMons - BlueStageWildMons) ; SAFFRON_CITY dw $0000 ; SEAFOAM_ISLANDS (unused in Blue Stage) dw (BlueStageCinnabarIslandWildMons - BlueStageWildMons) ; CINNABAR_ISLAND dw (BlueStageIndigoPlateauWildMons - BlueStageWildMons) ; INDIGO_PLATEAU WildMonPointers: ; 0x112c0 dw RedStageWildMons dw RedStageWildMons dw RedStageWildMons dw RedStageWildMons dw BlueStageWildMons dw BlueStageWildMons INCLUDE "data/red_wild_mons.asm" INCLUDE "data/blue_wild_mons.asm" dr $115ce, $1161d INCLUDE "data/evolution_lines.asm" MonEvolutions: ; 0x116b3 ; Lists the possible evolution types for each pokemon ; Each pokemon has three entries becuase Eevee has three ; evolution possibilities. ; BULBASAUR db IVYSAUR, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; IVYSAUR db VENUSAUR, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; VENUSAUR db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; CHARMANDER db CHARMELEON, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; CHARMELEON db CHARIZARD, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; CHARIZARD db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SQUIRTLE db WARTORTLE, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; WARTORTLE db BLASTOISE, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; BLASTOISE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; CATERPIE db METAPOD, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; METAPOD db BUTTERFREE, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; BUTTERFREE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; WEEDLE db KAKUNA, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; KAKUNA db BEEDRILL, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; BEEDRILL db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PIDGEY db PIDGEOTTO, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PIDGEOTTO db PIDGEOT, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PIDGEOT db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; RATTATA db RATICATE, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; RATICATE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SPEAROW db FEAROW, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; FEAROW db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; EKANS db ARBOK, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ARBOK db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PIKACHU db RAICHU, EVO_THUNDER_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; RAICHU db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SANDSHREW db SANDSLASH, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SANDSLASH db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; NIDORAN_F db NIDORINA, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; NIDORINA db NIDOQUEEN, EVO_MOON_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; NIDOQUEEN db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; NIDORAN_M db NIDORINO, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; NIDORINO db NIDOKING, EVO_MOON_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; NIDOKING db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; CLEFAIRY db CLEFABLE, EVO_MOON_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; CLEFABLE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; VULPIX db NINETALES, EVO_FIRE_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; NINETALES db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; JIGGLYPUFF db WIGGLYTUFF, EVO_MOON_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; WIGGLYTUFF db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ZUBAT db GOLBAT, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GOLBAT db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ODDISH db GLOOM, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GLOOM db VILEPLUME, EVO_LEAF_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; VILEPLUME db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PARAS db PARASECT, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PARASECT db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; VENONAT db VENOMOTH, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; VENOMOTH db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DIGLETT db DUGTRIO, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DUGTRIO db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MEOWTH db PERSIAN, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PERSIAN db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PSYDUCK db GOLDUCK, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GOLDUCK db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MANKEY db PRIMEAPE, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PRIMEAPE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GROWLITHE db ARCANINE, EVO_FIRE_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ARCANINE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; POLIWAG db POLIWHIRL, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; POLIWHIRL db POLIWRATH, EVO_WATER_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; POLIWRATH db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ABRA db KADABRA, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; KADABRA db ALAKAZAM, EVO_LINK_CABLE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ALAKAZAM db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MACHOP db MACHOKE, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MACHOKE db MACHAMP, EVO_LINK_CABLE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MACHAMP db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; BELLSPROUT db WEEPINBELL, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; WEEPINBELL db VICTREEBEL, EVO_LEAF_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; VICTREEBEL db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; TENTACOOL db TENTACRUEL, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; TENTACRUEL db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GEODUDE db GRAVELER, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GRAVELER db GOLEM, EVO_LINK_CABLE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GOLEM db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PONYTA db RAPIDASH, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; RAPIDASH db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SLOWPOKE db SLOWBRO, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SLOWBRO db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MAGNEMITE db MAGNETON, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MAGNETON db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; FARFETCH_D db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DODUO db DODRIO, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DODRIO db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SEEL db DEWGONG, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DEWGONG db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GRIMER db MUK, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MUK db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SHELLDER db CLOYSTER, EVO_WATER_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; CLOYSTER db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GASTLY db HAUNTER, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; HAUNTER db GENGAR, EVO_LINK_CABLE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GENGAR db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ONIX db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DROWZEE db HYPNO, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; HYPNO db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; KRABBY db KINGLER, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; KINGLER db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; VOLTORB db ELECTRODE, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ELECTRODE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; EXEGGCUTE db EXEGGUTOR, EVO_LEAF_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; EXEGGUTOR db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; CUBONE db MAROWAK, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MAROWAK db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; HITMONLEE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; HITMONCHAN db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; LICKITUNG db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; KOFFING db WEEZING, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; WEEZING db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; RHYHORN db RHYDON, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; RHYDON db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; CHANSEY db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; TANGELA db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; KANGASKHAN db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; HORSEA db SEADRA, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SEADRA db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GOLDEEN db SEAKING, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SEAKING db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; STARYU db STARMIE, EVO_WATER_STONE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; STARMIE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MR_MIME db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SCYTHER db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; JYNX db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ELECTABUZZ db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MAGMAR db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PINSIR db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; TAUROS db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MAGIKARP db GYARADOS, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; GYARADOS db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; LAPRAS db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DITTO db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; EEVEE db VAPOREON, EVO_WATER_STONE db JOLTEON, EVO_THUNDER_STONE db FLAREON, EVO_FIRE_STONE ; VAPOREON db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; JOLTEON db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; FLAREON db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; PORYGON db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; OMANYTE db OMASTAR, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; OMASTAR db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; KABUTO db KABUTOPS, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; KABUTOPS db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; AERODACTYL db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; SNORLAX db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ARTICUNO db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; ZAPDOS db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MOLTRES db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DRATINI db DRAGONAIR, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DRAGONAIR db DRAGONITE, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; DRAGONITE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MEWTWO db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE ; MEW db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE db $00, EVO_EXPERIENCE INCLUDE "data/mon_names.asm" CatchEmModeInitialIndicatorStates: ; 0x123ae ; Initial states for the indicators when starting Catch Em mode. ; For some reason, each pokemon evolution line has its own entry, but ; they're all exactly the same. ; See wIndicatorStates, for a description of indicators. db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_BULBASAUR db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CHARMANDER db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SQUIRTLE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CATERPIE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_WEEDLE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PIDGEY db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_RATTATA db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SPEAROW db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EKANS db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PIKACHU db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SANDSHREW db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_NIDORAN_F db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_NIDORAN_M db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CLEFAIRY db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VULPIX db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_JIGGLYPUFF db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ZUBAT db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ODDISH db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PARAS db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VENONAT db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DIGLETT db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEOWTH db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PSYDUCK db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MANKEY db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GROWLITHE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_POLIWAG db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ABRA db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MACHOP db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_BELLSPROUT db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TENTACOOL db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GEODUDE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PONYTA db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SLOWPOKE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGNEMITE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_FARFETCH_D db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DODUO db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SEEL db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GRIMER db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SHELLDER db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GASTLY db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ONIX db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DROWZEE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KRABBY db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VOLTORB db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EXEGGCUTE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CUBONE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HITMONLEE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HITMONCHAN db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_LICKITUNG db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KOFFING db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_RHYHORN db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CHANSEY db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TANGELA db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KANGASKHAN db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HORSEA db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GOLDEEN db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_STARYU db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MR_MIME db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SCYTHER db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_JYNX db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ELECTABUZZ db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGMAR db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PINSIR db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TAUROS db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGIKARP db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_LAPRAS db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DITTO db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EEVEE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PORYGON db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_OMANYTE db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KABUTO db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_AERODACTYL db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SNORLAX db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ARTICUNO db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ZAPDOS db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MOLTRES db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DRATINI db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEWTWO db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEW Data_1298b: ; 0x1298b db $01 ; BULBASAUR db $02 ; IVYSAUR db $03 ; VENUSAUR db $01 ; CHARMANDER db $02 ; CHARMELEON db $03 ; CHARIZARD db $01 ; SQUIRTLE db $02 ; WARTORTLE db $03 ; BLASTOISE db $01 ; CATERPIE db $02 ; METAPOD db $03 ; BUTTERFREE db $01 ; WEEDLE db $02 ; KAKUNA db $03 ; BEEDRILL db $01 ; PIDGEY db $02 ; PIDGEOTTO db $03 ; PIDGEOT db $01 ; RATTATA db $03 ; RATICATE db $01 ; SPEAROW db $03 ; FEAROW db $01 ; EKANS db $03 ; ARBOK db $01 ; PIKACHU db $03 ; RAICHU db $01 ; SANDSHREW db $03 ; SANDSLASH db $01 ; NIDORAN_F db $02 ; NIDORINA db $04 ; NIDOQUEEN db $01 ; NIDORAN_M db $02 ; NIDORINO db $04 ; NIDOKING db $02 ; CLEFAIRY db $03 ; CLEFABLE db $02 ; VULPIX db $03 ; NINETALES db $02 ; JIGGLYPUFF db $03 ; WIGGLYTUFF db $02 ; ZUBAT db $03 ; GOLBAT db $01 ; ODDISH db $02 ; GLOOM db $04 ; VILEPLUME db $02 ; PARAS db $03 ; PARASECT db $02 ; VENONAT db $03 ; VENOMOTH db $02 ; DIGLETT db $03 ; DUGTRIO db $02 ; MEOWTH db $03 ; PERSIAN db $02 ; PSYDUCK db $03 ; GOLDUCK db $02 ; MANKEY db $03 ; PRIMEAPE db $02 ; GROWLITHE db $03 ; ARCANINE db $01 ; POLIWAG db $02 ; POLIWHIRL db $04 ; POLIWRATH db $01 ; ABRA db $02 ; KADABRA db $04 ; ALAKAZAM db $01 ; MACHOP db $02 ; MACHOKE db $04 ; MACHAMP db $01 ; BELLSPROUT db $02 ; WEEPINBELL db $04 ; VICTREEBEL db $02 ; TENTACOOL db $03 ; TENTACRUEL db $01 ; GEODUDE db $02 ; GRAVELER db $04 ; GOLEM db $02 ; PONYTA db $03 ; RAPIDASH db $02 ; SLOWPOKE db $03 ; SLOWBRO db $02 ; MAGNEMITE db $03 ; MAGNETON db $04 ; FARFETCH_D db $02 ; DODUO db $03 ; DODRIO db $02 ; SEEL db $03 ; DEWGONG db $02 ; GRIMER db $03 ; MUK db $02 ; SHELLDER db $03 ; CLOYSTER db $01 ; GASTLY db $02 ; HAUNTER db $04 ; GENGAR db $04 ; ONIX db $02 ; DROWZEE db $03 ; HYPNO db $02 ; KRABBY db $03 ; KINGLER db $02 ; VOLTORB db $03 ; ELECTRODE db $02 ; EXEGGCUTE db $03 ; EXEGGUTOR db $02 ; CUBONE db $03 ; MAROWAK db $04 ; HITMONLEE db $04 ; HITMONCHAN db $04 ; LICKITUNG db $02 ; KOFFING db $03 ; WEEZING db $02 ; RHYHORN db $03 ; RHYDON db $04 ; CHANSEY db $04 ; TANGELA db $04 ; KANGASKHAN db $04 ; HORSEA db $04 ; SEADRA db $02 ; GOLDEEN db $03 ; SEAKING db $02 ; STARYU db $03 ; STARMIE db $04 ; MR_MIME db $04 ; SCYTHER db $04 ; JYNX db $04 ; ELECTABUZZ db $04 ; MAGMAR db $04 ; PINSIR db $04 ; TAUROS db $02 ; MAGIKARP db $03 ; GYARADOS db $04 ; LAPRAS db $04 ; DITTO db $02 ; EEVEE db $03 ; VAPOREON db $03 ; JOLTEON db $03 ; FLAREON db $04 ; PORYGON db $02 ; OMANYTE db $03 ; OMASTAR db $02 ; KABUTO db $03 ; KABUTOPS db $04 ; AERODACTYL db $04 ; SNORLAX db $04 ; ARTICUNO db $04 ; ZAPDOS db $04 ; MOLTRES db $01 ; DRATINI db $02 ; DRAGONAIR db $04 ; DRAGONITE db $04 ; MEWTWO db $06 ; MEW INCLUDE "data/catchem_timer_values.asm" MonBillboardPicPointers: ; 0x12b50 dwb BulbasaurPic, Bank(BulbasaurPic) dwb IvysaurPic, Bank(IvysaurPic) dwb VenusaurPic, Bank(VenusaurPic) dwb CharmanderPic, Bank(CharmanderPic) dwb CharmeleonPic, Bank(CharmeleonPic) dwb CharizardPic, Bank(CharizardPic) dwb SquirtlePic, Bank(SquirtlePic) dwb WartortlePic, Bank(WartortlePic) dwb BlastoisePic, Bank(BlastoisePic) dwb CaterpiePic, Bank(CaterpiePic) dwb MetapodPic, Bank(MetapodPic) dwb ButterfreePic, Bank(ButterfreePic) dwb WeedlePic, Bank(WeedlePic) dwb KakunaPic, Bank(KakunaPic) dwb BeedrillPic, Bank(BeedrillPic) dwb PidgeyPic, Bank(PidgeyPic) dwb PidgeottoPic, Bank(PidgeottoPic) dwb PidgeotPic, Bank(PidgeotPic) dwb RattataPic, Bank(RattataPic) dwb RaticatePic, Bank(RaticatePic) dwb SpearowPic, Bank(SpearowPic) dwb FearowPic, Bank(FearowPic) dwb EkansPic, Bank(EkansPic) dwb ArbokPic, Bank(ArbokPic) dwb PikachuPic, Bank(PikachuPic) dwb RaichuPic, Bank(RaichuPic) dwb SandshrewPic, Bank(SandshrewPic) dwb SandslashPic, Bank(SandslashPic) dwb Nidoran_FPic, Bank(Nidoran_FPic) dwb NidorinaPic, Bank(NidorinaPic) dwb NidoqueenPic, Bank(NidoqueenPic) dwb Nidoran_MPic, Bank(Nidoran_MPic) dwb NidorinoPic, Bank(NidorinoPic) dwb NidokingPic, Bank(NidokingPic) dwb ClefairyPic, Bank(ClefairyPic) dwb ClefablePic, Bank(ClefablePic) dwb VulpixPic, Bank(VulpixPic) dwb NinetalesPic, Bank(NinetalesPic) dwb JigglypuffPic, Bank(JigglypuffPic) dwb WigglytuffPic, Bank(WigglytuffPic) dwb ZubatPic, Bank(ZubatPic) dwb GolbatPic, Bank(GolbatPic) dwb OddishPic, Bank(OddishPic) dwb GloomPic, Bank(GloomPic) dwb VileplumePic, Bank(VileplumePic) dwb ParasPic, Bank(ParasPic) dwb ParasectPic, Bank(ParasectPic) dwb VenonatPic, Bank(VenonatPic) dwb VenomothPic, Bank(VenomothPic) dwb DiglettPic, Bank(DiglettPic) dwb DugtrioPic, Bank(DugtrioPic) dwb MeowthPic, Bank(MeowthPic) dwb PersianPic, Bank(PersianPic) dwb PsyduckPic, Bank(PsyduckPic) dwb GolduckPic, Bank(GolduckPic) dwb MankeyPic, Bank(MankeyPic) dwb PrimeapePic, Bank(PrimeapePic) dwb GrowlithePic, Bank(GrowlithePic) dwb ArcaninePic, Bank(ArcaninePic) dwb PoliwagPic, Bank(PoliwagPic) dwb PoliwhirlPic, Bank(PoliwhirlPic) dwb PoliwrathPic, Bank(PoliwrathPic) dwb AbraPic, Bank(AbraPic) dwb KadabraPic, Bank(KadabraPic) dwb AlakazamPic, Bank(AlakazamPic) dwb MachopPic, Bank(MachopPic) dwb MachokePic, Bank(MachokePic) dwb MachampPic, Bank(MachampPic) dwb BellsproutPic, Bank(BellsproutPic) dwb WeepinbellPic, Bank(WeepinbellPic) dwb VictreebellPic, Bank(VictreebellPic) dwb TentacoolPic, Bank(TentacoolPic) dwb TentacruelPic, Bank(TentacruelPic) dwb GeodudePic, Bank(GeodudePic) dwb GravelerPic, Bank(GravelerPic) dwb GolemPic, Bank(GolemPic) dwb PonytaPic, Bank(PonytaPic) dwb RapidashPic, Bank(RapidashPic) dwb SlowpokePic, Bank(SlowpokePic) dwb SlowbroPic, Bank(SlowbroPic) dwb MagnemitePic, Bank(MagnemitePic) dwb MagnetonPic, Bank(MagnetonPic) dwb Farfetch_dPic, Bank(Farfetch_dPic) dwb DoduoPic, Bank(DoduoPic) dwb DodrioPic, Bank(DodrioPic) dwb SeelPic, Bank(SeelPic) dwb DewgongPic, Bank(DewgongPic) dwb GrimerPic, Bank(GrimerPic) dwb MukPic, Bank(MukPic) dwb ShellderPic, Bank(ShellderPic) dwb CloysterPic, Bank(CloysterPic) dwb GastlyPic, Bank(GastlyPic) dwb HaunterPic, Bank(HaunterPic) dwb GengarPic, Bank(GengarPic) dwb OnixPic, Bank(OnixPic) dwb DrowzeePic, Bank(DrowzeePic) dwb HypnoPic, Bank(HypnoPic) dwb KrabbyPic, Bank(KrabbyPic) dwb KinglerPic, Bank(KinglerPic) dwb VoltorbPic, Bank(VoltorbPic) dwb ElectrodePic, Bank(ElectrodePic) dwb ExeggcutePic, Bank(ExeggcutePic) dwb ExeggutorPic, Bank(ExeggutorPic) dwb CubonePic, Bank(CubonePic) dwb MarowakPic, Bank(MarowakPic) dwb HitmonleePic, Bank(HitmonleePic) dwb HitmonchanPic, Bank(HitmonchanPic) dwb LickitungPic, Bank(LickitungPic) dwb KoffingPic, Bank(KoffingPic) dwb WeezingPic, Bank(WeezingPic) dwb RhyhornPic, Bank(RhyhornPic) dwb RhydonPic, Bank(RhydonPic) dwb ChanseyPic, Bank(ChanseyPic) dwb TangelaPic, Bank(TangelaPic) dwb KangaskhanPic, Bank(KangaskhanPic) dwb HorseaPic, Bank(HorseaPic) dwb SeadraPic, Bank(SeadraPic) dwb GoldeenPic, Bank(GoldeenPic) dwb SeakingPic, Bank(SeakingPic) dwb StaryuPic, Bank(StaryuPic) dwb StarmiePic, Bank(StarmiePic) dwb Mr_MimePic, Bank(Mr_MimePic) dwb ScytherPic, Bank(ScytherPic) dwb JynxPic, Bank(JynxPic) dwb ElectabuzzPic, Bank(ElectabuzzPic) dwb MagmarPic, Bank(MagmarPic) dwb PinsirPic, Bank(PinsirPic) dwb TaurosPic, Bank(TaurosPic) dwb MagikarpPic, Bank(MagikarpPic) dwb GyaradosPic, Bank(GyaradosPic) dwb LaprasPic, Bank(LaprasPic) dwb DittoPic, Bank(DittoPic) dwb EeveePic, Bank(EeveePic) dwb VaporeonPic, Bank(VaporeonPic) dwb JolteonPic, Bank(JolteonPic) dwb FlareonPic, Bank(FlareonPic) dwb PorygonPic, Bank(PorygonPic) dwb OmanytePic, Bank(OmanytePic) dwb OmastarPic, Bank(OmastarPic) dwb KabutoPic, Bank(KabutoPic) dwb KabutopsPic, Bank(KabutopsPic) dwb AerodactylPic, Bank(AerodactylPic) dwb SnorlaxPic, Bank(SnorlaxPic) dwb ArticunoPic, Bank(ArticunoPic) dwb ZapdosPic, Bank(ZapdosPic) dwb MoltresPic, Bank(MoltresPic) dwb DratiniPic, Bank(DratiniPic) dwb DragonairPic, Bank(DragonairPic) dwb DragonitePic, Bank(DragonitePic) dwb MewtwoPic, Bank(MewtwoPic) dwb MewPic, Bank(MewPic) MonBillboardPaletteMapPointers: ; 0x12d15 dwb BulbasaurBillboardBGPaletteMap, Bank(BulbasaurBillboardBGPaletteMap) dwb IvysaurBillboardBGPaletteMap, Bank(IvysaurBillboardBGPaletteMap) dwb VenusaurBillboardBGPaletteMap, Bank(VenusaurBillboardBGPaletteMap) dwb CharmanderBillboardBGPaletteMap, Bank(CharmanderBillboardBGPaletteMap) dwb CharmeleonBillboardBGPaletteMap, Bank(CharmeleonBillboardBGPaletteMap) dwb CharizardBillboardBGPaletteMap, Bank(CharizardBillboardBGPaletteMap) dwb SquirtleBillboardBGPaletteMap, Bank(SquirtleBillboardBGPaletteMap) dwb WartortleBillboardBGPaletteMap, Bank(WartortleBillboardBGPaletteMap) dwb BlastoiseBillboardBGPaletteMap, Bank(BlastoiseBillboardBGPaletteMap) dwb CaterpieBillboardBGPaletteMap, Bank(CaterpieBillboardBGPaletteMap) dwb MetapodBillboardBGPaletteMap, Bank(MetapodBillboardBGPaletteMap) dwb ButterfreeBillboardBGPaletteMap, Bank(ButterfreeBillboardBGPaletteMap) dwb WeedleBillboardBGPaletteMap, Bank(WeedleBillboardBGPaletteMap) dwb KakunaBillboardBGPaletteMap, Bank(KakunaBillboardBGPaletteMap) dwb BeedrillBillboardBGPaletteMap, Bank(BeedrillBillboardBGPaletteMap) dwb PidgeyBillboardBGPaletteMap, Bank(PidgeyBillboardBGPaletteMap) dwb PidgeottoBillboardBGPaletteMap, Bank(PidgeottoBillboardBGPaletteMap) dwb PidgeotBillboardBGPaletteMap, Bank(PidgeotBillboardBGPaletteMap) dwb RattataBillboardBGPaletteMap, Bank(RattataBillboardBGPaletteMap) dwb RaticateBillboardBGPaletteMap, Bank(RaticateBillboardBGPaletteMap) dwb SpearowBillboardBGPaletteMap, Bank(SpearowBillboardBGPaletteMap) dwb FearowBillboardBGPaletteMap, Bank(FearowBillboardBGPaletteMap) dwb EkansBillboardBGPaletteMap, Bank(EkansBillboardBGPaletteMap) dwb ArbokBillboardBGPaletteMap, Bank(ArbokBillboardBGPaletteMap) dwb PikachuBillboardBGPaletteMap, Bank(PikachuBillboardBGPaletteMap) dwb RaichuBillboardBGPaletteMap, Bank(RaichuBillboardBGPaletteMap) dwb SandshrewBillboardBGPaletteMap, Bank(SandshrewBillboardBGPaletteMap) dwb SandslashBillboardBGPaletteMap, Bank(SandslashBillboardBGPaletteMap) dwb NidoranFBillboardBGPaletteMap, Bank(NidoranFBillboardBGPaletteMap) dwb NidorinaBillboardBGPaletteMap, Bank(NidorinaBillboardBGPaletteMap) dwb NidoqueenBillboardBGPaletteMap, Bank(NidoqueenBillboardBGPaletteMap) dwb NidoranMBillboardBGPaletteMap, Bank(NidoranMBillboardBGPaletteMap) dwb NidorinoBillboardBGPaletteMap, Bank(NidorinoBillboardBGPaletteMap) dwb NidokingBillboardBGPaletteMap, Bank(NidokingBillboardBGPaletteMap) dwb ClefairyBillboardBGPaletteMap, Bank(ClefairyBillboardBGPaletteMap) dwb ClefableBillboardBGPaletteMap, Bank(ClefableBillboardBGPaletteMap) dwb VulpixBillboardBGPaletteMap, Bank(VulpixBillboardBGPaletteMap) dwb NinetalesBillboardBGPaletteMap, Bank(NinetalesBillboardBGPaletteMap) dwb JigglypuffBillboardBGPaletteMap, Bank(JigglypuffBillboardBGPaletteMap) dwb WigglytuffBillboardBGPaletteMap, Bank(WigglytuffBillboardBGPaletteMap) dwb ZubatBillboardBGPaletteMap, Bank(ZubatBillboardBGPaletteMap) dwb GolbatBillboardBGPaletteMap, Bank(GolbatBillboardBGPaletteMap) dwb OddishBillboardBGPaletteMap, Bank(OddishBillboardBGPaletteMap) dwb GloomBillboardBGPaletteMap, Bank(GloomBillboardBGPaletteMap) dwb VileplumeBillboardBGPaletteMap, Bank(VileplumeBillboardBGPaletteMap) dwb ParasBillboardBGPaletteMap, Bank(ParasBillboardBGPaletteMap) dwb ParasectBillboardBGPaletteMap, Bank(ParasectBillboardBGPaletteMap) dwb VenonatBillboardBGPaletteMap, Bank(VenonatBillboardBGPaletteMap) dwb VenomothBillboardBGPaletteMap, Bank(VenomothBillboardBGPaletteMap) dwb DiglettBillboardBGPaletteMap, Bank(DiglettBillboardBGPaletteMap) dwb DugtrioBillboardBGPaletteMap, Bank(DugtrioBillboardBGPaletteMap) dwb MeowthBillboardBGPaletteMap, Bank(MeowthBillboardBGPaletteMap) dwb PersianBillboardBGPaletteMap, Bank(PersianBillboardBGPaletteMap) dwb PsyduckBillboardBGPaletteMap, Bank(PsyduckBillboardBGPaletteMap) dwb GolduckBillboardBGPaletteMap, Bank(GolduckBillboardBGPaletteMap) dwb MankeyBillboardBGPaletteMap, Bank(MankeyBillboardBGPaletteMap) dwb PrimeapeBillboardBGPaletteMap, Bank(PrimeapeBillboardBGPaletteMap) dwb GrowlitheBillboardBGPaletteMap, Bank(GrowlitheBillboardBGPaletteMap) dwb ArcanineBillboardBGPaletteMap, Bank(ArcanineBillboardBGPaletteMap) dwb PoliwagBillboardBGPaletteMap, Bank(PoliwagBillboardBGPaletteMap) dwb PoliwhirlBillboardBGPaletteMap, Bank(PoliwhirlBillboardBGPaletteMap) dwb PoliwrathBillboardBGPaletteMap, Bank(PoliwrathBillboardBGPaletteMap) dwb AbraBillboardBGPaletteMap, Bank(AbraBillboardBGPaletteMap) dwb KadabraBillboardBGPaletteMap, Bank(KadabraBillboardBGPaletteMap) dwb AlakazamBillboardBGPaletteMap, Bank(AlakazamBillboardBGPaletteMap) dwb MachopBillboardBGPaletteMap, Bank(MachopBillboardBGPaletteMap) dwb MachokeBillboardBGPaletteMap, Bank(MachokeBillboardBGPaletteMap) dwb MachampBillboardBGPaletteMap, Bank(MachampBillboardBGPaletteMap) dwb BellsproutBillboardBGPaletteMap, Bank(BellsproutBillboardBGPaletteMap) dwb WeepinbellBillboardBGPaletteMap, Bank(WeepinbellBillboardBGPaletteMap) dwb VictreebellBillboardBGPaletteMap, Bank(VictreebellBillboardBGPaletteMap) dwb TentacoolBillboardBGPaletteMap, Bank(TentacoolBillboardBGPaletteMap) dwb TentacruelBillboardBGPaletteMap, Bank(TentacruelBillboardBGPaletteMap) dwb GeodudeBillboardBGPaletteMap, Bank(GeodudeBillboardBGPaletteMap) dwb GravelerBillboardBGPaletteMap, Bank(GravelerBillboardBGPaletteMap) dwb GolemBillboardBGPaletteMap, Bank(GolemBillboardBGPaletteMap) dwb PonytaBillboardBGPaletteMap, Bank(PonytaBillboardBGPaletteMap) dwb RapidashBillboardBGPaletteMap, Bank(RapidashBillboardBGPaletteMap) dwb SlowpokeBillboardBGPaletteMap, Bank(SlowpokeBillboardBGPaletteMap) dwb SlowbroBillboardBGPaletteMap, Bank(SlowbroBillboardBGPaletteMap) dwb MagnemiteBillboardBGPaletteMap, Bank(MagnemiteBillboardBGPaletteMap) dwb MagnetonBillboardBGPaletteMap, Bank(MagnetonBillboardBGPaletteMap) dwb FarfetchdBillboardBGPaletteMap, Bank(FarfetchdBillboardBGPaletteMap) dwb DoduoBillboardBGPaletteMap, Bank(DoduoBillboardBGPaletteMap) dwb DodrioBillboardBGPaletteMap, Bank(DodrioBillboardBGPaletteMap) dwb SeelBillboardBGPaletteMap, Bank(SeelBillboardBGPaletteMap) dwb DewgongBillboardBGPaletteMap, Bank(DewgongBillboardBGPaletteMap) dwb GrimerBillboardBGPaletteMap, Bank(GrimerBillboardBGPaletteMap) dwb MukBillboardBGPaletteMap, Bank(MukBillboardBGPaletteMap) dwb ShellderBillboardBGPaletteMap, Bank(ShellderBillboardBGPaletteMap) dwb CloysterBillboardBGPaletteMap, Bank(CloysterBillboardBGPaletteMap) dwb GastlyBillboardBGPaletteMap, Bank(GastlyBillboardBGPaletteMap) dwb HaunterBillboardBGPaletteMap, Bank(HaunterBillboardBGPaletteMap) dwb GengarBillboardBGPaletteMap, Bank(GengarBillboardBGPaletteMap) dwb OnixBillboardBGPaletteMap, Bank(OnixBillboardBGPaletteMap) dwb DrowzeeBillboardBGPaletteMap, Bank(DrowzeeBillboardBGPaletteMap) dwb HypnoBillboardBGPaletteMap, Bank(HypnoBillboardBGPaletteMap) dwb KrabbyBillboardBGPaletteMap, Bank(KrabbyBillboardBGPaletteMap) dwb KinglerBillboardBGPaletteMap, Bank(KinglerBillboardBGPaletteMap) dwb VoltorbBillboardBGPaletteMap, Bank(VoltorbBillboardBGPaletteMap) dwb ElectrodeBillboardBGPaletteMap, Bank(ElectrodeBillboardBGPaletteMap) dwb ExeggcuteBillboardBGPaletteMap, Bank(ExeggcuteBillboardBGPaletteMap) dwb ExeggutorBillboardBGPaletteMap, Bank(ExeggutorBillboardBGPaletteMap) dwb CuboneBillboardBGPaletteMap, Bank(CuboneBillboardBGPaletteMap) dwb MarowakBillboardBGPaletteMap, Bank(MarowakBillboardBGPaletteMap) dwb HitmonleeBillboardBGPaletteMap, Bank(HitmonleeBillboardBGPaletteMap) dwb HitmonchanBillboardBGPaletteMap, Bank(HitmonchanBillboardBGPaletteMap) dwb LickitungBillboardBGPaletteMap, Bank(LickitungBillboardBGPaletteMap) dwb KoffingBillboardBGPaletteMap, Bank(KoffingBillboardBGPaletteMap) dwb WeezingBillboardBGPaletteMap, Bank(WeezingBillboardBGPaletteMap) dwb RhyhornBillboardBGPaletteMap, Bank(RhyhornBillboardBGPaletteMap) dwb RhydonBillboardBGPaletteMap, Bank(RhydonBillboardBGPaletteMap) dwb ChanseyBillboardBGPaletteMap, Bank(ChanseyBillboardBGPaletteMap) dwb TangelaBillboardBGPaletteMap, Bank(TangelaBillboardBGPaletteMap) dwb KangaskhanBillboardBGPaletteMap, Bank(KangaskhanBillboardBGPaletteMap) dwb HorseaBillboardBGPaletteMap, Bank(HorseaBillboardBGPaletteMap) dwb SeadraBillboardBGPaletteMap, Bank(SeadraBillboardBGPaletteMap) dwb GoldeenBillboardBGPaletteMap, Bank(GoldeenBillboardBGPaletteMap) dwb SeakingBillboardBGPaletteMap, Bank(SeakingBillboardBGPaletteMap) dwb StaryuBillboardBGPaletteMap, Bank(StaryuBillboardBGPaletteMap) dwb StarmieBillboardBGPaletteMap, Bank(StarmieBillboardBGPaletteMap) dwb MrMimeBillboardBGPaletteMap, Bank(MrMimeBillboardBGPaletteMap) dwb ScytherBillboardBGPaletteMap, Bank(ScytherBillboardBGPaletteMap) dwb JynxBillboardBGPaletteMap, Bank(JynxBillboardBGPaletteMap) dwb ElectabuzzBillboardBGPaletteMap, Bank(ElectabuzzBillboardBGPaletteMap) dwb MagmarBillboardBGPaletteMap, Bank(MagmarBillboardBGPaletteMap) dwb PinsirBillboardBGPaletteMap, Bank(PinsirBillboardBGPaletteMap) dwb TaurosBillboardBGPaletteMap, Bank(TaurosBillboardBGPaletteMap) dwb MagikarpBillboardBGPaletteMap, Bank(MagikarpBillboardBGPaletteMap) dwb GyaradosBillboardBGPaletteMap, Bank(GyaradosBillboardBGPaletteMap) dwb LaprasBillboardBGPaletteMap, Bank(LaprasBillboardBGPaletteMap) dwb DittoBillboardBGPaletteMap, Bank(DittoBillboardBGPaletteMap) dwb EeveeBillboardBGPaletteMap, Bank(EeveeBillboardBGPaletteMap) dwb VaporeonBillboardBGPaletteMap, Bank(VaporeonBillboardBGPaletteMap) dwb JolteonBillboardBGPaletteMap, Bank(JolteonBillboardBGPaletteMap) dwb FlareonBillboardBGPaletteMap, Bank(FlareonBillboardBGPaletteMap) dwb PorygonBillboardBGPaletteMap, Bank(PorygonBillboardBGPaletteMap) dwb OmanyteBillboardBGPaletteMap, Bank(OmanyteBillboardBGPaletteMap) dwb OmastarBillboardBGPaletteMap, Bank(OmastarBillboardBGPaletteMap) dwb KabutoBillboardBGPaletteMap, Bank(KabutoBillboardBGPaletteMap) dwb KabutopsBillboardBGPaletteMap, Bank(KabutopsBillboardBGPaletteMap) dwb AerodactylBillboardBGPaletteMap, Bank(AerodactylBillboardBGPaletteMap) dwb SnorlaxBillboardBGPaletteMap, Bank(SnorlaxBillboardBGPaletteMap) dwb ArticunoBillboardBGPaletteMap, Bank(ArticunoBillboardBGPaletteMap) dwb ZapdosBillboardBGPaletteMap, Bank(ZapdosBillboardBGPaletteMap) dwb MoltresBillboardBGPaletteMap, Bank(MoltresBillboardBGPaletteMap) dwb DratiniBillboardBGPaletteMap, Bank(DratiniBillboardBGPaletteMap) dwb DragonairBillboardBGPaletteMap, Bank(DragonairBillboardBGPaletteMap) dwb DragoniteBillboardBGPaletteMap, Bank(DragoniteBillboardBGPaletteMap) dwb MewtwoBillboardBGPaletteMap, Bank(MewtwoBillboardBGPaletteMap) dwb MewBillboardBGPaletteMap, Bank(MewBillboardBGPaletteMap) MonBillboardPalettePointers: ; 0x12eda dwb BulbasaurBillboardBGPalette1, Bank(BulbasaurBillboardBGPalette1) dwb IvysaurBillboardBGPalette1, Bank(IvysaurBillboardBGPalette1) dwb VenusaurBillboardBGPalette1, Bank(VenusaurBillboardBGPalette1) dwb CharmanderBillboardBGPalette1, Bank(CharmanderBillboardBGPalette1) dwb CharmeleonBillboardBGPalette1, Bank(CharmeleonBillboardBGPalette1) dwb CharizardBillboardBGPalette1, Bank(CharizardBillboardBGPalette1) dwb SquirtleBillboardBGPalette1, Bank(SquirtleBillboardBGPalette1) dwb WartortleBillboardBGPalette1, Bank(WartortleBillboardBGPalette1) dwb BlastoiseBillboardBGPalette1, Bank(BlastoiseBillboardBGPalette1) dwb CaterpieBillboardBGPalette1, Bank(CaterpieBillboardBGPalette1) dwb MetapodBillboardBGPalette1, Bank(MetapodBillboardBGPalette1) dwb ButterfreeBillboardBGPalette1, Bank(ButterfreeBillboardBGPalette1) dwb WeedleBillboardBGPalette1, Bank(WeedleBillboardBGPalette1) dwb KakunaBillboardBGPalette1, Bank(KakunaBillboardBGPalette1) dwb BeedrillBillboardBGPalette1, Bank(BeedrillBillboardBGPalette1) dwb PidgeyBillboardBGPalette1, Bank(PidgeyBillboardBGPalette1) dwb PidgeottoBillboardBGPalette1, Bank(PidgeottoBillboardBGPalette1) dwb PidgeotBillboardBGPalette1, Bank(PidgeotBillboardBGPalette1) dwb RattataBillboardBGPalette1, Bank(RattataBillboardBGPalette1) dwb RaticateBillboardBGPalette1, Bank(RaticateBillboardBGPalette1) dwb SpearowBillboardBGPalette1, Bank(SpearowBillboardBGPalette1) dwb FearowBillboardBGPalette1, Bank(FearowBillboardBGPalette1) dwb EkansBillboardBGPalette1, Bank(EkansBillboardBGPalette1) dwb ArbokBillboardBGPalette1, Bank(ArbokBillboardBGPalette1) dwb PikachuBillboardBGPalette1, Bank(PikachuBillboardBGPalette1) dwb RaichuBillboardBGPalette1, Bank(RaichuBillboardBGPalette1) dwb SandshrewBillboardBGPalette1, Bank(SandshrewBillboardBGPalette1) dwb SandslashBillboardBGPalette1, Bank(SandslashBillboardBGPalette1) dwb NidoranFBillboardBGPalette1, Bank(NidoranFBillboardBGPalette1) dwb NidorinaBillboardBGPalette1, Bank(NidorinaBillboardBGPalette1) dwb NidoqueenBillboardBGPalette1, Bank(NidoqueenBillboardBGPalette1) dwb NidoranMBillboardBGPalette1, Bank(NidoranMBillboardBGPalette1) dwb NidorinoBillboardBGPalette1, Bank(NidorinoBillboardBGPalette1) dwb NidokingBillboardBGPalette1, Bank(NidokingBillboardBGPalette1) dwb ClefairyBillboardBGPalette1, Bank(ClefairyBillboardBGPalette1) dwb ClefableBillboardBGPalette1, Bank(ClefableBillboardBGPalette1) dwb VulpixBillboardBGPalette1, Bank(VulpixBillboardBGPalette1) dwb NinetalesBillboardBGPalette1, Bank(NinetalesBillboardBGPalette1) dwb JigglypuffBillboardBGPalette1, Bank(JigglypuffBillboardBGPalette1) dwb WigglytuffBillboardBGPalette1, Bank(WigglytuffBillboardBGPalette1) dwb ZubatBillboardBGPalette1, Bank(ZubatBillboardBGPalette1) dwb GolbatBillboardBGPalette1, Bank(GolbatBillboardBGPalette1) dwb OddishBillboardBGPalette1, Bank(OddishBillboardBGPalette1) dwb GloomBillboardBGPalette1, Bank(GloomBillboardBGPalette1) dwb VileplumeBillboardBGPalette1, Bank(VileplumeBillboardBGPalette1) dwb ParasBillboardBGPalette1, Bank(ParasBillboardBGPalette1) dwb ParasectBillboardBGPalette1, Bank(ParasectBillboardBGPalette1) dwb VenonatBillboardBGPalette1, Bank(VenonatBillboardBGPalette1) dwb VenomothBillboardBGPalette1, Bank(VenomothBillboardBGPalette1) dwb DiglettBillboardBGPalette1, Bank(DiglettBillboardBGPalette1) dwb DugtrioBillboardBGPalette1, Bank(DugtrioBillboardBGPalette1) dwb MeowthBillboardBGPalette1, Bank(MeowthBillboardBGPalette1) dwb PersianBillboardBGPalette1, Bank(PersianBillboardBGPalette1) dwb PsyduckBillboardBGPalette1, Bank(PsyduckBillboardBGPalette1) dwb GolduckBillboardBGPalette1, Bank(GolduckBillboardBGPalette1) dwb MankeyBillboardBGPalette1, Bank(MankeyBillboardBGPalette1) dwb PrimeapeBillboardBGPalette1, Bank(PrimeapeBillboardBGPalette1) dwb GrowlitheBillboardBGPalette1, Bank(GrowlitheBillboardBGPalette1) dwb ArcanineBillboardBGPalette1, Bank(ArcanineBillboardBGPalette1) dwb PoliwagBillboardBGPalette1, Bank(PoliwagBillboardBGPalette1) dwb PoliwhirlBillboardBGPalette1, Bank(PoliwhirlBillboardBGPalette1) dwb PoliwrathBillboardBGPalette1, Bank(PoliwrathBillboardBGPalette1) dwb AbraBillboardBGPalette1, Bank(AbraBillboardBGPalette1) dwb KadabraBillboardBGPalette1, Bank(KadabraBillboardBGPalette1) dwb AlakazamBillboardBGPalette1, Bank(AlakazamBillboardBGPalette1) dwb MachopBillboardBGPalette1, Bank(MachopBillboardBGPalette1) dwb MachokeBillboardBGPalette1, Bank(MachokeBillboardBGPalette1) dwb MachampBillboardBGPalette1, Bank(MachampBillboardBGPalette1) dwb BellsproutBillboardBGPalette1, Bank(BellsproutBillboardBGPalette1) dwb WeepinbellBillboardBGPalette1, Bank(WeepinbellBillboardBGPalette1) dwb VictreebellBillboardBGPalette1, Bank(VictreebellBillboardBGPalette1) dwb TentacoolBillboardBGPalette1, Bank(TentacoolBillboardBGPalette1) dwb TentacruelBillboardBGPalette1, Bank(TentacruelBillboardBGPalette1) dwb GeodudeBillboardBGPalette1, Bank(GeodudeBillboardBGPalette1) dwb GravelerBillboardBGPalette1, Bank(GravelerBillboardBGPalette1) dwb GolemBillboardBGPalette1, Bank(GolemBillboardBGPalette1) dwb PonytaBillboardBGPalette1, Bank(PonytaBillboardBGPalette1) dwb RapidashBillboardBGPalette1, Bank(RapidashBillboardBGPalette1) dwb SlowpokeBillboardBGPalette1, Bank(SlowpokeBillboardBGPalette1) dwb SlowbroBillboardBGPalette1, Bank(SlowbroBillboardBGPalette1) dwb MagnemiteBillboardBGPalette1, Bank(MagnemiteBillboardBGPalette1) dwb MagnetonBillboardBGPalette1, Bank(MagnetonBillboardBGPalette1) dwb FarfetchdBillboardBGPalette1, Bank(FarfetchdBillboardBGPalette1) dwb DoduoBillboardBGPalette1, Bank(DoduoBillboardBGPalette1) dwb DodrioBillboardBGPalette1, Bank(DodrioBillboardBGPalette1) dwb SeelBillboardBGPalette1, Bank(SeelBillboardBGPalette1) dwb DewgongBillboardBGPalette1, Bank(DewgongBillboardBGPalette1) dwb GrimerBillboardBGPalette1, Bank(GrimerBillboardBGPalette1) dwb MukBillboardBGPalette1, Bank(MukBillboardBGPalette1) dwb ShellderBillboardBGPalette1, Bank(ShellderBillboardBGPalette1) dwb CloysterBillboardBGPalette1, Bank(CloysterBillboardBGPalette1) dwb GastlyBillboardBGPalette1, Bank(GastlyBillboardBGPalette1) dwb HaunterBillboardBGPalette1, Bank(HaunterBillboardBGPalette1) dwb GengarBillboardBGPalette1, Bank(GengarBillboardBGPalette1) dwb OnixBillboardBGPalette1, Bank(OnixBillboardBGPalette1) dwb DrowzeeBillboardBGPalette1, Bank(DrowzeeBillboardBGPalette1) dwb HypnoBillboardBGPalette1, Bank(HypnoBillboardBGPalette1) dwb KrabbyBillboardBGPalette1, Bank(KrabbyBillboardBGPalette1) dwb KinglerBillboardBGPalette1, Bank(KinglerBillboardBGPalette1) dwb VoltorbBillboardBGPalette1, Bank(VoltorbBillboardBGPalette1) dwb ElectrodeBillboardBGPalette1, Bank(ElectrodeBillboardBGPalette1) dwb ExeggcuteBillboardBGPalette1, Bank(ExeggcuteBillboardBGPalette1) dwb ExeggutorBillboardBGPalette1, Bank(ExeggutorBillboardBGPalette1) dwb CuboneBillboardBGPalette1, Bank(CuboneBillboardBGPalette1) dwb MarowakBillboardBGPalette1, Bank(MarowakBillboardBGPalette1) dwb HitmonleeBillboardBGPalette1, Bank(HitmonleeBillboardBGPalette1) dwb HitmonchanBillboardBGPalette1, Bank(HitmonchanBillboardBGPalette1) dwb LickitungBillboardBGPalette1, Bank(LickitungBillboardBGPalette1) dwb KoffingBillboardBGPalette1, Bank(KoffingBillboardBGPalette1) dwb WeezingBillboardBGPalette1, Bank(WeezingBillboardBGPalette1) dwb RhyhornBillboardBGPalette1, Bank(RhyhornBillboardBGPalette1) dwb RhydonBillboardBGPalette1, Bank(RhydonBillboardBGPalette1) dwb ChanseyBillboardBGPalette1, Bank(ChanseyBillboardBGPalette1) dwb TangelaBillboardBGPalette1, Bank(TangelaBillboardBGPalette1) dwb KangaskhanBillboardBGPalette1, Bank(KangaskhanBillboardBGPalette1) dwb HorseaBillboardBGPalette1, Bank(HorseaBillboardBGPalette1) dwb SeadraBillboardBGPalette1, Bank(SeadraBillboardBGPalette1) dwb GoldeenBillboardBGPalette1, Bank(GoldeenBillboardBGPalette1) dwb SeakingBillboardBGPalette1, Bank(SeakingBillboardBGPalette1) dwb StaryuBillboardBGPalette1, Bank(StaryuBillboardBGPalette1) dwb StarmieBillboardBGPalette1, Bank(StarmieBillboardBGPalette1) dwb MrMimeBillboardBGPalette1, Bank(MrMimeBillboardBGPalette1) dwb ScytherBillboardBGPalette1, Bank(ScytherBillboardBGPalette1) dwb JynxBillboardBGPalette1, Bank(JynxBillboardBGPalette1) dwb ElectabuzzBillboardBGPalette1, Bank(ElectabuzzBillboardBGPalette1) dwb MagmarBillboardBGPalette1, Bank(MagmarBillboardBGPalette1) dwb PinsirBillboardBGPalette1, Bank(PinsirBillboardBGPalette1) dwb TaurosBillboardBGPalette1, Bank(TaurosBillboardBGPalette1) dwb MagikarpBillboardBGPalette1, Bank(MagikarpBillboardBGPalette1) dwb GyaradosBillboardBGPalette1, Bank(GyaradosBillboardBGPalette1) dwb LaprasBillboardBGPalette1, Bank(LaprasBillboardBGPalette1) dwb DittoBillboardBGPalette1, Bank(DittoBillboardBGPalette1) dwb EeveeBillboardBGPalette1, Bank(EeveeBillboardBGPalette1) dwb VaporeonBillboardBGPalette1, Bank(VaporeonBillboardBGPalette1) dwb JolteonBillboardBGPalette1, Bank(JolteonBillboardBGPalette1) dwb FlareonBillboardBGPalette1, Bank(FlareonBillboardBGPalette1) dwb PorygonBillboardBGPalette1, Bank(PorygonBillboardBGPalette1) dwb OmanyteBillboardBGPalette1, Bank(OmanyteBillboardBGPalette1) dwb OmastarBillboardBGPalette1, Bank(OmastarBillboardBGPalette1) dwb KabutoBillboardBGPalette1, Bank(KabutoBillboardBGPalette1) dwb KabutopsBillboardBGPalette1, Bank(KabutopsBillboardBGPalette1) dwb AerodactylBillboardBGPalette1, Bank(AerodactylBillboardBGPalette1) dwb SnorlaxBillboardBGPalette1, Bank(SnorlaxBillboardBGPalette1) dwb ArticunoBillboardBGPalette1, Bank(ArticunoBillboardBGPalette1) dwb ZapdosBillboardBGPalette1, Bank(ZapdosBillboardBGPalette1) dwb MoltresBillboardBGPalette1, Bank(MoltresBillboardBGPalette1) dwb DratiniBillboardBGPalette1, Bank(DratiniBillboardBGPalette1) dwb DragonairBillboardBGPalette1, Bank(DragonairBillboardBGPalette1) dwb DragoniteBillboardBGPalette1, Bank(DragoniteBillboardBGPalette1) dwb MewtwoBillboardBGPalette1, Bank(MewtwoBillboardBGPalette1) dwb MewBillboardBGPalette1, Bank(MewBillboardBGPalette1) MonAnimatedPalettePointers: ; 0x1309f dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1) dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1) dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1) dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1) dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1) dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1) dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1) dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1) dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1) dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1) dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1) dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1) dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1) dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1) dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1) dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1) dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1) dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1) dwb RattataAnimatedObjPalette1, Bank(RattataAnimatedObjPalette1) dwb RattataAnimatedObjPalette1, Bank(RattataAnimatedObjPalette1) dwb SpearowAnimatedObjPalette1, Bank(SpearowAnimatedObjPalette1) dwb SpearowAnimatedObjPalette1, Bank(SpearowAnimatedObjPalette1) dwb EkansAnimatedObjPalette1, Bank(EkansAnimatedObjPalette1) dwb EkansAnimatedObjPalette1, Bank(EkansAnimatedObjPalette1) dwb PikachuAnimatedObjPalette1, Bank(PikachuAnimatedObjPalette1) dwb PikachuAnimatedObjPalette1, Bank(PikachuAnimatedObjPalette1) dwb SandshrewAnimatedObjPalette1, Bank(SandshrewAnimatedObjPalette1) dwb SandshrewAnimatedObjPalette1, Bank(SandshrewAnimatedObjPalette1) dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1) dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1) dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1) dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1) dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1) dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1) dwb ClefairyAnimatedObjPalette1, Bank(ClefairyAnimatedObjPalette1) dwb ClefairyAnimatedObjPalette1, Bank(ClefairyAnimatedObjPalette1) dwb VulpixAnimatedObjPalette1, Bank(VulpixAnimatedObjPalette1) dwb VulpixAnimatedObjPalette1, Bank(VulpixAnimatedObjPalette1) dwb JigglypuffAnimatedObjPalette1, Bank(JigglypuffAnimatedObjPalette1) dwb JigglypuffAnimatedObjPalette1, Bank(JigglypuffAnimatedObjPalette1) dwb ZubatAnimatedObjPalette1, Bank(ZubatAnimatedObjPalette1) dwb ZubatAnimatedObjPalette1, Bank(ZubatAnimatedObjPalette1) dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1) dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1) dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1) dwb ParasAnimatedObjPalette1, Bank(ParasAnimatedObjPalette1) dwb ParasAnimatedObjPalette1, Bank(ParasAnimatedObjPalette1) dwb VenonatAnimatedObjPalette1, Bank(VenonatAnimatedObjPalette1) dwb VenonatAnimatedObjPalette1, Bank(VenonatAnimatedObjPalette1) dwb DiglettAnimatedObjPalette1, Bank(DiglettAnimatedObjPalette1) dwb DiglettAnimatedObjPalette1, Bank(DiglettAnimatedObjPalette1) dwb MeowthAnimatedObjPalette1, Bank(MeowthAnimatedObjPalette1) dwb MeowthAnimatedObjPalette1, Bank(MeowthAnimatedObjPalette1) dwb PsyduckAnimatedObjPalette1, Bank(PsyduckAnimatedObjPalette1) dwb PsyduckAnimatedObjPalette1, Bank(PsyduckAnimatedObjPalette1) dwb MankeyAnimatedObjPalette1, Bank(MankeyAnimatedObjPalette1) dwb MankeyAnimatedObjPalette1, Bank(MankeyAnimatedObjPalette1) dwb GrowlitheAnimatedObjPalette1, Bank(GrowlitheAnimatedObjPalette1) dwb GrowlitheAnimatedObjPalette1, Bank(GrowlitheAnimatedObjPalette1) dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1) dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1) dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1) dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1) dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1) dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1) dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1) dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1) dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1) dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1) dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1) dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1) dwb TentacoolAnimatedObjPalette1, Bank(TentacoolAnimatedObjPalette1) dwb TentacoolAnimatedObjPalette1, Bank(TentacoolAnimatedObjPalette1) dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1) dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1) dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1) dwb PonytaAnimatedObjPalette1, Bank(PonytaAnimatedObjPalette1) dwb PonytaAnimatedObjPalette1, Bank(PonytaAnimatedObjPalette1) dwb SlowpokeAnimatedObjPalette1, Bank(SlowpokeAnimatedObjPalette1) dwb SlowpokeAnimatedObjPalette1, Bank(SlowpokeAnimatedObjPalette1) dwb MagnemiteAnimatedObjPalette1, Bank(MagnemiteAnimatedObjPalette1) dwb MagnemiteAnimatedObjPalette1, Bank(MagnemiteAnimatedObjPalette1) dwb FarfetchdAnimatedObjPalette1, Bank(FarfetchdAnimatedObjPalette1) dwb DoduoAnimatedObjPalette1, Bank(DoduoAnimatedObjPalette1) dwb DoduoAnimatedObjPalette1, Bank(DoduoAnimatedObjPalette1) dwb SeelAnimatedObjPalette1, Bank(SeelAnimatedObjPalette1) dwb SeelAnimatedObjPalette1, Bank(SeelAnimatedObjPalette1) dwb GrimerAnimatedObjPalette1, Bank(GrimerAnimatedObjPalette1) dwb GrimerAnimatedObjPalette1, Bank(GrimerAnimatedObjPalette1) dwb ShellderAnimatedObjPalette1, Bank(ShellderAnimatedObjPalette1) dwb ShellderAnimatedObjPalette1, Bank(ShellderAnimatedObjPalette1) dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1) dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1) dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1) dwb OnixAnimatedObjPalette1, Bank(OnixAnimatedObjPalette1) dwb DrowzeeAnimatedObjPalette1, Bank(DrowzeeAnimatedObjPalette1) dwb DrowzeeAnimatedObjPalette1, Bank(DrowzeeAnimatedObjPalette1) dwb KrabbyAnimatedObjPalette1, Bank(KrabbyAnimatedObjPalette1) dwb KrabbyAnimatedObjPalette1, Bank(KrabbyAnimatedObjPalette1) dwb VoltorbAnimatedObjPalette1, Bank(VoltorbAnimatedObjPalette1) dwb VoltorbAnimatedObjPalette1, Bank(VoltorbAnimatedObjPalette1) dwb ExeggcuteAnimatedObjPalette1, Bank(ExeggcuteAnimatedObjPalette1) dwb ExeggcuteAnimatedObjPalette1, Bank(ExeggcuteAnimatedObjPalette1) dwb CuboneAnimatedObjPalette1, Bank(CuboneAnimatedObjPalette1) dwb CuboneAnimatedObjPalette1, Bank(CuboneAnimatedObjPalette1) dwb HitmonleeAnimatedObjPalette1, Bank(HitmonleeAnimatedObjPalette1) dwb HitmonchanAnimatedObjPalette1, Bank(HitmonchanAnimatedObjPalette1) dwb LickitungAnimatedObjPalette1, Bank(LickitungAnimatedObjPalette1) dwb KoffingAnimatedObjPalette1, Bank(KoffingAnimatedObjPalette1) dwb KoffingAnimatedObjPalette1, Bank(KoffingAnimatedObjPalette1) dwb RhyhornAnimatedObjPalette1, Bank(RhyhornAnimatedObjPalette1) dwb RhyhornAnimatedObjPalette1, Bank(RhyhornAnimatedObjPalette1) dwb ChanseyAnimatedObjPalette1, Bank(ChanseyAnimatedObjPalette1) dwb TangelaAnimatedObjPalette1, Bank(TangelaAnimatedObjPalette1) dwb KangaskhanAnimatedObjPalette1, Bank(KangaskhanAnimatedObjPalette1) dwb HorseaAnimatedObjPalette1, Bank(HorseaAnimatedObjPalette1) dwb HorseaAnimatedObjPalette1, Bank(HorseaAnimatedObjPalette1) dwb GoldeenAnimatedObjPalette1, Bank(GoldeenAnimatedObjPalette1) dwb GoldeenAnimatedObjPalette1, Bank(GoldeenAnimatedObjPalette1) dwb StaryuAnimatedObjPalette1, Bank(StaryuAnimatedObjPalette1) dwb StaryuAnimatedObjPalette1, Bank(StaryuAnimatedObjPalette1) dwb MrMimeAnimatedObjPalette1, Bank(MrMimeAnimatedObjPalette1) dwb ScytherAnimatedObjPalette1, Bank(ScytherAnimatedObjPalette1) dwb JynxAnimatedObjPalette1, Bank(JynxAnimatedObjPalette1) dwb ElectabuzzAnimatedObjPalette1, Bank(ElectabuzzAnimatedObjPalette1) dwb MagmarAnimatedObjPalette1, Bank(MagmarAnimatedObjPalette1) dwb PinsirAnimatedObjPalette1, Bank(PinsirAnimatedObjPalette1) dwb TaurosAnimatedObjPalette1, Bank(TaurosAnimatedObjPalette1) dwb MagikarpAnimatedObjPalette1, Bank(MagikarpAnimatedObjPalette1) dwb MagikarpAnimatedObjPalette1, Bank(MagikarpAnimatedObjPalette1) dwb LaprasAnimatedObjPalette1, Bank(LaprasAnimatedObjPalette1) dwb DittoAnimatedObjPalette1, Bank(DittoAnimatedObjPalette1) dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) dwb PorygonAnimatedObjPalette1, Bank(PorygonAnimatedObjPalette1) dwb OmanyteAnimatedObjPalette1, Bank(OmanyteAnimatedObjPalette1) dwb OmanyteAnimatedObjPalette1, Bank(OmanyteAnimatedObjPalette1) dwb KabutoAnimatedObjPalette1, Bank(KabutoAnimatedObjPalette1) dwb KabutoAnimatedObjPalette1, Bank(KabutoAnimatedObjPalette1) dwb AerodactylAnimatedObjPalette1, Bank(AerodactylAnimatedObjPalette1) dwb SnorlaxAnimatedObjPalette1, Bank(SnorlaxAnimatedObjPalette1) dwb ArticunoAnimatedObjPalette1, Bank(ArticunoAnimatedObjPalette1) dwb ZapdosAnimatedObjPalette1, Bank(ZapdosAnimatedObjPalette1) dwb MoltresAnimatedObjPalette1, Bank(MoltresAnimatedObjPalette1) dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1) dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1) dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1) dwb MewtwoAnimatedObjPalette1, Bank(MewtwoAnimatedObjPalette1) dwb MewAnimatedObjPalette1, Bank(MewAnimatedObjPalette1) MonAnimatedPicPointers: ; 0x13264 dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic) dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic) dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic) dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic) dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic) dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic) dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic) dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic) dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic) dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic) dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic) dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic) dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic) dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic) dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic) dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic) dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic) dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic) dwb RattataAnimatedPic, Bank(RattataAnimatedPic) dwb RattataAnimatedPic, Bank(RattataAnimatedPic) dwb SpearowAnimatedPic, Bank(SpearowAnimatedPic) dwb SpearowAnimatedPic, Bank(SpearowAnimatedPic) dwb EkansAnimatedPic, Bank(EkansAnimatedPic) dwb EkansAnimatedPic, Bank(EkansAnimatedPic) dwb PikachuAnimatedPic, Bank(PikachuAnimatedPic) dwb PikachuAnimatedPic, Bank(PikachuAnimatedPic) dwb SandshrewAnimatedPic, Bank(SandshrewAnimatedPic) dwb SandshrewAnimatedPic, Bank(SandshrewAnimatedPic) dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic) dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic) dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic) dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic) dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic) dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic) dwb ClefairyAnimatedPic, Bank(ClefairyAnimatedPic) dwb ClefairyAnimatedPic, Bank(ClefairyAnimatedPic) dwb VulpixAnimatedPic, Bank(VulpixAnimatedPic) dwb VulpixAnimatedPic, Bank(VulpixAnimatedPic) dwb JigglypuffAnimatedPic, Bank(JigglypuffAnimatedPic) dwb JigglypuffAnimatedPic, Bank(JigglypuffAnimatedPic) dwb ZubatAnimatedPic, Bank(ZubatAnimatedPic) dwb ZubatAnimatedPic, Bank(ZubatAnimatedPic) dwb OddishAnimatedPic, Bank(OddishAnimatedPic) dwb OddishAnimatedPic, Bank(OddishAnimatedPic) dwb OddishAnimatedPic, Bank(OddishAnimatedPic) dwb ParasAnimatedPic, Bank(ParasAnimatedPic) dwb ParasAnimatedPic, Bank(ParasAnimatedPic) dwb VenonatAnimatedPic, Bank(VenonatAnimatedPic) dwb VenonatAnimatedPic, Bank(VenonatAnimatedPic) dwb DiglettAnimatedPic, Bank(DiglettAnimatedPic) dwb DiglettAnimatedPic, Bank(DiglettAnimatedPic) dwb MeowthAnimatedPic, Bank(MeowthAnimatedPic) dwb MeowthAnimatedPic, Bank(MeowthAnimatedPic) dwb PsyduckAnimatedPic, Bank(PsyduckAnimatedPic) dwb PsyduckAnimatedPic, Bank(PsyduckAnimatedPic) dwb MankeyAnimatedPic, Bank(MankeyAnimatedPic) dwb MankeyAnimatedPic, Bank(MankeyAnimatedPic) dwb GrowlitheAnimatedPic, Bank(GrowlitheAnimatedPic) dwb GrowlitheAnimatedPic, Bank(GrowlitheAnimatedPic) dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic) dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic) dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic) dwb AbraAnimatedPic, Bank(AbraAnimatedPic) dwb AbraAnimatedPic, Bank(AbraAnimatedPic) dwb AbraAnimatedPic, Bank(AbraAnimatedPic) dwb MachopAnimatedPic, Bank(MachopAnimatedPic) dwb MachopAnimatedPic, Bank(MachopAnimatedPic) dwb MachopAnimatedPic, Bank(MachopAnimatedPic) dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic) dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic) dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic) dwb TentacoolAnimatedPic, Bank(TentacoolAnimatedPic) dwb TentacoolAnimatedPic, Bank(TentacoolAnimatedPic) dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic) dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic) dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic) dwb PonytaAnimatedPic, Bank(PonytaAnimatedPic) dwb PonytaAnimatedPic, Bank(PonytaAnimatedPic) dwb SlowpokeAnimatedPic, Bank(SlowpokeAnimatedPic) dwb SlowpokeAnimatedPic, Bank(SlowpokeAnimatedPic) dwb MagnemiteAnimatedPic, Bank(MagnemiteAnimatedPic) dwb MagnemiteAnimatedPic, Bank(MagnemiteAnimatedPic) dwb FarfetchdAnimatedPic, Bank(FarfetchdAnimatedPic) dwb DoduoAnimatedPic, Bank(DoduoAnimatedPic) dwb DoduoAnimatedPic, Bank(DoduoAnimatedPic) dwb SeelAnimatedPic, Bank(SeelAnimatedPic) dwb SeelAnimatedPic, Bank(SeelAnimatedPic) dwb GrimerAnimatedPic, Bank(GrimerAnimatedPic) dwb GrimerAnimatedPic, Bank(GrimerAnimatedPic) dwb ShellderAnimatedPic, Bank(ShellderAnimatedPic) dwb ShellderAnimatedPic, Bank(ShellderAnimatedPic) dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic) dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic) dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic) dwb OnixAnimatedPic, Bank(OnixAnimatedPic) dwb DrowzeeAnimatedPic, Bank(DrowzeeAnimatedPic) dwb DrowzeeAnimatedPic, Bank(DrowzeeAnimatedPic) dwb KrabbyAnimatedPic, Bank(KrabbyAnimatedPic) dwb KrabbyAnimatedPic, Bank(KrabbyAnimatedPic) dwb VoltorbAnimatedPic, Bank(VoltorbAnimatedPic) dwb VoltorbAnimatedPic, Bank(VoltorbAnimatedPic) dwb ExeggcuteAnimatedPic, Bank(ExeggcuteAnimatedPic) dwb ExeggcuteAnimatedPic, Bank(ExeggcuteAnimatedPic) dwb CuboneAnimatedPic, Bank(CuboneAnimatedPic) dwb CuboneAnimatedPic, Bank(CuboneAnimatedPic) dwb HitmonleeAnimatedPic, Bank(HitmonleeAnimatedPic) dwb HitmonchanAnimatedPic, Bank(HitmonchanAnimatedPic) dwb LickitungAnimatedPic, Bank(LickitungAnimatedPic) dwb KoffingAnimatedPic, Bank(KoffingAnimatedPic) dwb KoffingAnimatedPic, Bank(KoffingAnimatedPic) dwb RhyhornAnimatedPic, Bank(RhyhornAnimatedPic) dwb RhyhornAnimatedPic, Bank(RhyhornAnimatedPic) dwb ChanseyAnimatedPic, Bank(ChanseyAnimatedPic) dwb TangelaAnimatedPic, Bank(TangelaAnimatedPic) dwb KangaskhanAnimatedPic, Bank(KangaskhanAnimatedPic) dwb HorseaAnimatedPic, Bank(HorseaAnimatedPic) dwb HorseaAnimatedPic, Bank(HorseaAnimatedPic) dwb GoldeenAnimatedPic, Bank(GoldeenAnimatedPic) dwb GoldeenAnimatedPic, Bank(GoldeenAnimatedPic) dwb StaryuAnimatedPic, Bank(StaryuAnimatedPic) dwb StaryuAnimatedPic, Bank(StaryuAnimatedPic) dwb MrMimeAnimatedPic, Bank(MrMimeAnimatedPic) dwb ScytherAnimatedPic, Bank(ScytherAnimatedPic) dwb JynxAnimatedPic, Bank(JynxAnimatedPic) dwb ElectabuzzAnimatedPic, Bank(ElectabuzzAnimatedPic) dwb MagmarAnimatedPic, Bank(MagmarAnimatedPic) dwb PinsirAnimatedPic, Bank(PinsirAnimatedPic) dwb TaurosAnimatedPic, Bank(TaurosAnimatedPic) dwb MagikarpAnimatedPic, Bank(MagikarpAnimatedPic) dwb MagikarpAnimatedPic, Bank(MagikarpAnimatedPic) dwb LaprasAnimatedPic, Bank(LaprasAnimatedPic) dwb DittoAnimatedPic, Bank(DittoAnimatedPic) dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) dwb PorygonAnimatedPic, Bank(PorygonAnimatedPic) dwb OmanyteAnimatedPic, Bank(OmanyteAnimatedPic) dwb OmanyteAnimatedPic, Bank(OmanyteAnimatedPic) dwb KabutoAnimatedPic, Bank(KabutoAnimatedPic) dwb KabutoAnimatedPic, Bank(KabutoAnimatedPic) dwb AerodactylAnimatedPic, Bank(AerodactylAnimatedPic) dwb SnorlaxAnimatedPic, Bank(SnorlaxAnimatedPic) dwb ArticunoAnimatedPic, Bank(ArticunoAnimatedPic) dwb ZapdosAnimatedPic, Bank(ZapdosAnimatedPic) dwb MoltresAnimatedPic, Bank(MoltresAnimatedPic) dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic) dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic) dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic) dwb MewtwoAnimatedPic, Bank(MewtwoAnimatedPic) dwb MewAnimatedPic, Bank(MewAnimatedPic) MonAnimatedSpriteTypes: ; 0x13429 ; Each mon has an animated sprite tilemap type. ; $03 is bulbasaur's ; $00 is squirtle's ; All other mon's use $06 db $03 ; BULBASAUR db $FF ; IVYSAUR db $FF ; VENUSAUR db $06 ; CHARMANDER db $FF ; CHARMELEON db $FF ; CHARIZARD db $00 ; SQUIRTLE db $FF ; WARTORTLE db $FF ; BLASTOISE db $06 ; CATERPIE db $FF ; METAPOD db $FF ; BUTTERFREE db $06 ; WEEDLE db $FF ; KAKUNA db $FF ; BEEDRILL db $06 ; PIDGEY db $FF ; PIDGEOTTO db $FF ; PIDGEOT db $06 ; RATTATA db $FF ; RATICATE db $06 ; SPEAROW db $FF ; FEAROW db $06 ; EKANS db $FF ; ARBOK db $06 ; PIKACHU db $FF ; RAICHU db $06 ; SANDSHREW db $FF ; SANDSLASH db $06 ; NIDORAN_F db $FF ; NIDORINA db $FF ; NIDOQUEEN db $06 ; NIDORAN_M db $FF ; NIDORINO db $FF ; NIDOKING db $06 ; CLEFAIRY db $FF ; CLEFABLE db $06 ; VULPIX db $FF ; NINETALES db $06 ; JIGGLYPUFF db $FF ; WIGGLYTUFF db $06 ; ZUBAT db $FF ; GOLBAT db $06 ; ODDISH db $FF ; GLOOM db $FF ; VILEPLUME db $06 ; PARAS db $FF ; PARASECT db $06 ; VENONAT db $FF ; VENOMOTH db $06 ; DIGLETT db $FF ; DUGTRIO db $06 ; MEOWTH db $FF ; PERSIAN db $06 ; PSYDUCK db $FF ; GOLDUCK db $06 ; MANKEY db $FF ; PRIMEAPE db $06 ; GROWLITHE db $FF ; ARCANINE db $06 ; POLIWAG db $FF ; POLIWHIRL db $FF ; POLIWRATH db $06 ; ABRA db $FF ; KADABRA db $FF ; ALAKAZAM db $06 ; MACHOP db $FF ; MACHOKE db $FF ; MACHAMP db $06 ; BELLSPROUT db $FF ; WEEPINBELL db $FF ; VICTREEBEL db $06 ; TENTACOOL db $FF ; TENTACRUEL db $06 ; GEODUDE db $FF ; GRAVELER db $FF ; GOLEM db $06 ; PONYTA db $FF ; RAPIDASH db $06 ; SLOWPOKE db $FF ; SLOWBRO db $06 ; MAGNEMITE db $FF ; MAGNETON db $06 ; FARFETCH_D db $06 ; DODUO db $FF ; DODRIO db $06 ; SEEL db $FF ; DEWGONG db $06 ; GRIMER db $FF ; MUK db $06 ; SHELLDER db $FF ; CLOYSTER db $06 ; GASTLY db $FF ; HAUNTER db $FF ; GENGAR db $06 ; ONIX db $06 ; DROWZEE db $FF ; HYPNO db $06 ; KRABBY db $FF ; KINGLER db $06 ; VOLTORB db $FF ; ELECTRODE db $06 ; EXEGGCUTE db $FF ; EXEGGUTOR db $06 ; CUBONE db $FF ; MAROWAK db $06 ; HITMONLEE db $06 ; HITMONCHAN db $06 ; LICKITUNG db $06 ; KOFFING db $FF ; WEEZING db $06 ; RHYHORN db $FF ; RHYDON db $06 ; CHANSEY db $06 ; TANGELA db $06 ; KANGASKHAN db $06 ; HORSEA db $FF ; SEADRA db $06 ; GOLDEEN db $FF ; SEAKING db $06 ; STARYU db $FF ; STARMIE db $06 ; MR_MIME db $06 ; SCYTHER db $06 ; JYNX db $06 ; ELECTABUZZ db $06 ; MAGMAR db $06 ; PINSIR db $06 ; TAUROS db $06 ; MAGIKARP db $FF ; GYARADOS db $06 ; LAPRAS db $06 ; DITTO db $06 ; EEVEE db $FF ; VAPOREON db $FF ; JOLTEON db $FF ; FLAREON db $06 ; PORYGON db $09 ; OMANYTE db $FF ; OMASTAR db $06 ; KABUTO db $FF ; KABUTOPS db $06 ; AERODACTYL db $06 ; SNORLAX db $06 ; ARTICUNO db $06 ; ZAPDOS db $06 ; MOLTRES db $06 ; DRATINI db $FF ; DRAGONAIR db $FF ; DRAGONITE db $06 ; MEWTWO db $06 ; MEW MonAnimatedCollisionMaskPointers: ; 0x134c0 ; Pointers to the collision masks of the animated sprites of mons. ; Note only, evolution mons use an arbitrary non-evolved mon entry, since it will never be used. dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb CharmanderAnimatedCollisionMask, Bank(CharmanderAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb SquirtleAnimatedCollisionMask, Bank(SquirtleAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb CaterpieAnimatedCollisionMask, Bank(CaterpieAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb WeedleAnimatedCollisionMask, Bank(WeedleAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb PidgeyAnimatedCollisionMask, Bank(PidgeyAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb RattataAnimatedCollisionMask, Bank(RattataAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb SpearowAnimatedCollisionMask, Bank(SpearowAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb EkansAnimatedCollisionMask, Bank(EkansAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb PikachuAnimatedCollisionMask, Bank(PikachuAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb SandshrewAnimatedCollisionMask, Bank(SandshrewAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb NidoranfAnimatedCollisionMask, Bank(NidoranfAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb NidoranmAnimatedCollisionMask, Bank(NidoranmAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb ClefairyAnimatedCollisionMask, Bank(ClefairyAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb VulpixAnimatedCollisionMask, Bank(VulpixAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb JigglypuffAnimatedCollisionMask, Bank(JigglypuffAnimatedCollisionMask) dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb OddishAnimatedCollisionMask, Bank(OddishAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb ParasAnimatedCollisionMask, Bank(ParasAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb VenonatAnimatedCollisionMask, Bank(VenonatAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb DiglettAnimatedCollisionMask, Bank(DiglettAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb MeowthAnimatedCollisionMask, Bank(MeowthAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb PsyduckAnimatedCollisionMask, Bank(PsyduckAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb MankeyAnimatedCollisionMask, Bank(MankeyAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb GrowlitheAnimatedCollisionMask, Bank(GrowlitheAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb PoliwagAnimatedCollisionMask, Bank(PoliwagAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb AbraAnimatedCollisionMask, Bank(AbraAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb MachopAnimatedCollisionMask, Bank(MachopAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb BellsproutAnimatedCollisionMask, Bank(BellsproutAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb TentacoolAnimatedCollisionMask, Bank(TentacoolAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb GeodudeAnimatedCollisionMask, Bank(GeodudeAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb PonytaAnimatedCollisionMask, Bank(PonytaAnimatedCollisionMask) dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb MagnemiteAnimatedCollisionMask, Bank(MagnemiteAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb FarfetchdAnimatedCollisionMask, Bank(FarfetchdAnimatedCollisionMask) dwb DoduoAnimatedCollisionMask, Bank(DoduoAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb SeelAnimatedCollisionMask, Bank(SeelAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb GrimerAnimatedCollisionMask, Bank(GrimerAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb ShellderAnimatedCollisionMask, Bank(ShellderAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb GastlyAnimatedCollisionMask, Bank(GastlyAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb OnixAnimatedCollisionMask, Bank(OnixAnimatedCollisionMask) dwb DrowzeeAnimatedCollisionMask, Bank(DrowzeeAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb KrabbyAnimatedCollisionMask, Bank(KrabbyAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb VoltorbAnimatedCollisionMask, Bank(VoltorbAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb ExeggcuteAnimatedCollisionMask, Bank(ExeggcuteAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb CuboneAnimatedCollisionMask, Bank(CuboneAnimatedCollisionMask) dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) dwb HitmonleeAnimatedCollisionMask, Bank(HitmonleeAnimatedCollisionMask) dwb HitmonchanAnimatedCollisionMask, Bank(HitmonchanAnimatedCollisionMask) dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) dwb KoffingAnimatedCollisionMask, Bank(KoffingAnimatedCollisionMask) dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) dwb RhyhornAnimatedCollisionMask, Bank(RhyhornAnimatedCollisionMask) dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) dwb ChanseyAnimatedCollisionMask, Bank(ChanseyAnimatedCollisionMask) dwb TangelaAnimatedCollisionMask, Bank(TangelaAnimatedCollisionMask) dwb KangaskhanAnimatedCollisionMask, Bank(KangaskhanAnimatedCollisionMask) dwb HorseaAnimatedCollisionMask, Bank(HorseaAnimatedCollisionMask) dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) dwb GoldeenAnimatedCollisionMask, Bank(GoldeenAnimatedCollisionMask) dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) dwb StaryuAnimatedCollisionMask, Bank(StaryuAnimatedCollisionMask) dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) dwb MrMimeAnimatedCollisionMask, Bank(MrMimeAnimatedCollisionMask) dwb ScytherAnimatedCollisionMask, Bank(ScytherAnimatedCollisionMask) dwb JynxAnimatedCollisionMask, Bank(JynxAnimatedCollisionMask) dwb ElectabuzzAnimatedCollisionMask, Bank(ElectabuzzAnimatedCollisionMask) dwb MagmarAnimatedCollisionMask, Bank(MagmarAnimatedCollisionMask) dwb PinsirAnimatedCollisionMask, Bank(PinsirAnimatedCollisionMask) dwb TaurosAnimatedCollisionMask, Bank(TaurosAnimatedCollisionMask) dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) dwb LaprasAnimatedCollisionMask, Bank(LaprasAnimatedCollisionMask) dwb DittoAnimatedCollisionMask, Bank(DittoAnimatedCollisionMask) dwb EeveeAnimatedCollisionMask, Bank(EeveeAnimatedCollisionMask) dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) dwb PorygonAnimatedCollisionMask, Bank(PorygonAnimatedCollisionMask) dwb OmanyteAnimatedCollisionMask, Bank(OmanyteAnimatedCollisionMask) dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) dwb KabutoAnimatedCollisionMask, Bank(KabutoAnimatedCollisionMask) dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) dwb AerodactylAnimatedCollisionMask, Bank(AerodactylAnimatedCollisionMask) dwb SnorlaxAnimatedCollisionMask, Bank(SnorlaxAnimatedCollisionMask) dwb ArticunoAnimatedCollisionMask, Bank(ArticunoAnimatedCollisionMask) dwb ZapdosAnimatedCollisionMask, Bank(ZapdosAnimatedCollisionMask) dwb MoltresAnimatedCollisionMask, Bank(MoltresAnimatedCollisionMask) dwb DratiniAnimatedCollisionMask, Bank(DratiniAnimatedCollisionMask) dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) dwb MewtwoAnimatedCollisionMask, Bank(MewtwoAnimatedCollisionMask) dwb MewAnimatedCollisionMask, Bank(MewAnimatedCollisionMask) Data_13685: ; 0x13685 ; Each 3-byte entry is related to an evolution line. Don't know what this is for, yet. db $12, $12, $10 ; EVOLINE_BULBASAUR db $10, $10, $10 ; EVOLINE_CHARMANDER db $12, $12, $0E ; EVOLINE_SQUIRTLE db $14, $14, $12 ; EVOLINE_CATERPIE db $14, $14, $10 ; EVOLINE_WEEDLE db $0A, $0A, $0E ; EVOLINE_PIDGEY db $11, $13, $10 ; EVOLINE_RATTATA db $0B, $0B, $10 ; EVOLINE_SPEAROW db $12, $12, $0E ; EVOLINE_EKANS db $12, $14, $0E ; EVOLINE_PIKACHU db $10, $12, $10 ; EVOLINE_SANDSHREW db $11, $12, $0E ; EVOLINE_NIDORAN_F db $11, $12, $0E ; EVOLINE_NIDORAN_M db $12, $13, $10 ; EVOLINE_CLEFAIRY db $11, $11, $10 ; EVOLINE_VULPIX db $12, $12, $10 ; EVOLINE_JIGGLYPUFF db $08, $08, $10 ; EVOLINE_ZUBAT db $10, $10, $10 ; EVOLINE_ODDISH db $10, $10, $10 ; EVOLINE_PARAS db $11, $11, $0E ; EVOLINE_VENONAT db $10, $10, $0E ; EVOLINE_DIGLETT db $14, $14, $0E ; EVOLINE_MEOWTH db $30, $30, $10 ; EVOLINE_PSYDUCK db $12, $12, $10 ; EVOLINE_MANKEY db $12, $12, $10 ; EVOLINE_GROWLITHE db $10, $10, $10 ; EVOLINE_POLIWAG db $10, $10, $10 ; EVOLINE_ABRA db $12, $14, $10 ; EVOLINE_MACHOP db $10, $12, $10 ; EVOLINE_BELLSPROUT db $0C, $0C, $12 ; EVOLINE_TENTACOOL db $12, $14, $0C ; EVOLINE_GEODUDE db $12, $14, $0E ; EVOLINE_PONYTA db $30, $30, $10 ; EVOLINE_SLOWPOKE db $14, $14, $10 ; EVOLINE_MAGNEMITE db $12, $12, $0E ; EVOLINE_FARFETCH_D db $12, $12, $0E ; EVOLINE_DODUO db $14, $14, $0E ; EVOLINE_SEEL db $12, $12, $10 ; EVOLINE_GRIMER db $14, $14, $0E ; EVOLINE_SHELLDER db $10, $10, $0E ; EVOLINE_GASTLY db $12, $12, $10 ; EVOLINE_ONIX db $14, $14, $10 ; EVOLINE_DROWZEE db $14, $12, $10 ; EVOLINE_KRABBY db $02, $02, $10 ; EVOLINE_VOLTORB db $12, $12, $10 ; EVOLINE_EXEGGCUTE db $12, $12, $10 ; EVOLINE_CUBONE db $14, $10, $10 ; EVOLINE_HITMONLEE db $14, $10, $10 ; EVOLINE_HITMONCHAN db $14, $12, $10 ; EVOLINE_LICKITUNG db $11, $11, $10 ; EVOLINE_KOFFING db $14, $14, $10 ; EVOLINE_RHYHORN db $12, $12, $10 ; EVOLINE_CHANSEY db $10, $10, $10 ; EVOLINE_TANGELA db $12, $12, $10 ; EVOLINE_KANGASKHAN db $0F, $0F, $0E ; EVOLINE_HORSEA db $12, $12, $0E ; EVOLINE_GOLDEEN db $23, $23, $10 ; EVOLINE_STARYU db $13, $13, $10 ; EVOLINE_MR_MIME db $13, $13, $10 ; EVOLINE_SCYTHER db $12, $12, $10 ; EVOLINE_JYNX db $12, $14, $10 ; EVOLINE_ELECTABUZZ db $14, $14, $0E ; EVOLINE_MAGMAR db $12, $12, $0E ; EVOLINE_PINSIR db $12, $14, $10 ; EVOLINE_TAUROS db $18, $18, $0C ; EVOLINE_MAGIKARP db $16, $16, $0C ; EVOLINE_LAPRAS db $14, $14, $10 ; EVOLINE_DITTO db $12, $12, $10 ; EVOLINE_EEVEE db $10, $10, $0E ; EVOLINE_PORYGON db $12, $12, $0E ; EVOLINE_OMANYTE db $12, $12, $0E ; EVOLINE_KABUTO db $0C, $0C, $12 ; EVOLINE_AERODACTYL db $26, $36, $12 ; EVOLINE_SNORLAX db $13, $13, $10 ; EVOLINE_ARTICUNO db $13, $13, $10 ; EVOLINE_ZAPDOS db $13, $13, $10 ; EVOLINE_MOLTRES db $12, $12, $0E ; EVOLINE_DRATINI db $14, $14, $0E ; EVOLINE_MEWTWO db $14, $14, $0E ; EVOLINE_MEW SECTION "bank5", ROMX, BANK[$5] Func_14000: ; 0x14000 call Func_14091 call Func_159f4 call Func_15450 call Func_16859 call Func_14ece call Func_14234 call Func_16425 call Func_142fc call Func_1404a ret Func_1401c: ; 0x1401c call Func_14091 call Func_14377 call Func_14135 call Func_asm_1522d call Func_14282 call Func_1414b call Func_14234 call Func_14746 call Func_14707 call Func_140f9 call Func_16878 call Func_140e2 call Func_16425 call Func_142fc call Func_1404a ret Func_1404a: ; 0x1404a ld a, [$d57d] and a ret z ld a, [hGameBoyColorFlag] and a ret nz ld a, [$d580] and a ret z ld a, $f ld [$d581], a call Func_1762f ld hl, $d582 ld a, $ff ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld hl, $d582 ld a, [wTimerMinutes] and $f call Func_1764f ld a, [wTimerSeconds] swap a and $f call Func_1764f ld a, [wTimerSeconds] and $f call Func_1764f ld a, e srl a srl a ld d, $90 call Func_1764f ret Func_14091: ; 0x14091 ld a, $ff ld [$d4d7], a ld [$d4db], a ld a, [$d4b4] ld [$d4c5], a ld a, [$d4b6] ld [$d4c6], a ld a, [wBallRotation] ld [$d4c7], a ld a, [$d503] and a ret z xor a ld [$d503], a ld a, [$d502] res 1, a ld [$d502], a and $1 ld c, a ld a, [wStageCollisionState] and $fe or c ld [wStageCollisionState], a ld de, $0007 call PlaySoundEffect ld a, [wCurrentStage] bit 0, a ret nz ld [$ff8a], a callba LoadStageCollisionAttributes call Func_159f4 ret Func_140e2: ; 0x140e2 ld a, $ff ld [$d60e], a ld [$d60f], a ld a, [$d60c] call Func_16f28 ld a, [$d60d] add $14 call Func_16f28 ret Func_140f9: ; 0x140f9 ld a, [$d4ef] and a jr z, .asm_1410c xor a ld a, $66 ld [$c7e3], a ld a, $67 ld [$c803], a ld a, $2 .asm_1410c call Func_149d9 ld a, [wLeftMapMoveCounter] call Func_149f5 ld a, [$d4f1] and a jr z, .asm_14127 ld a, $6a ld [$c7f0], a ld a, $6b ld [$c810], a ld a, $2 .asm_14127 add $3 call Func_149d9 ld a, [wRightMapMoveCounter] add $4 call Func_149f5 ret Func_14135: ; 0x14135 ld bc, $0000 .asm_14138 push bc ld hl, wIndicatorStates add hl, bc ld a, [hl] res 7, a call Func_169cd pop bc inc c ld a, c cp $5 jr nz, .asm_14138 ret Func_1414b: ; 0x1414b ld a, [wInSpecialMode] and a ret z ld a, [wSpecialMode] cp $2 ret z ld a, [$d5c6] and a jr nz, .asm_14165 ld a, [$d5f3] and a jr nz, .asm_14165 jp Func_14210 .asm_14165 ld [$ff8a], a callba Func_141f2 ld [$ff8a], a callba Func_10362 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_10301) ld hl, Func_10301 call nz, BankSwitch ld a, [$d5f3] and a ret z ld a, BANK(PikachuSaverGfx) ld hl, PikachuSaverGfx + $c0 ld de, $87e0 ld bc, $0020 call FarCopyData ld a, BANK(GFX_a8800) ld hl, GFX_a8800 ld de, $8900 ld bc, $0180 call FarCopyData ld a, [wBallType] cp GREAT_BALL jr nc, .notPokeball ld a, Bank(PinballPokeballShakeGfx) ld hl, PinballPokeballShakeGfx ld de, $8380 ld bc, $0040 call FarCopyData ret .notPokeball cp ULTRA_BALL jr nc, .notGreatball ld a, Bank(PinballGreatballShakeGfx) ld hl, PinballGreatballShakeGfx ld de, $8380 ld bc, $0040 call FarCopyData ret .notGreatball cp MASTER_BALL jr nc, .notUltraball ld a, Bank(PinballUltraballShakeGfx) ld hl, PinballUltraballShakeGfx ld de, $8380 ld bc, $0040 call FarCopyData ret .notUltraball ld a, Bank(PinballMasterballShakeGfx) ld hl, PinballMasterballShakeGfx ld de, $8380 ld bc, $0040 call FarCopyData ret Func_141f2: ; 0x141f2 ld a, $80 ld hl, $9887 call Func_14209 ld hl, $98a7 call Func_14209 ld hl, $98c7 call Func_14209 ld hl, $98e7 ; fall through Func_14209: ; 0x14209 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ret Func_14210: ; 0x14210 ld hl, $d586 ld b, $18 .asm_14215 ld a, [hli] xor $1 ld [hli], a dec b jr nz, .asm_14215 ld [$ff8a], a callba Func_10184 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_102bc) ld hl, Func_102bc call nz, BankSwitch ret Func_14234: ; 0x14234 ld a, [wInSpecialMode] and a ret z ld a, [wSpecialMode] cp $1 ret nz ld a, [$d554] cp $3 ret z ld a, [wCurrentStage] bit 0, a jr nz, .asm_1425c ld a, BANK(Data_dbe80) ld hl, Data_dbe80 ld de, $8900 ld bc, $00e0 call FarCopyData jr .asm_1426a .asm_1425c ld a, BANK(Data_dbe80) ld hl, Data_dbe80 ld de, $8200 ld bc, $00e0 call FarCopyData .asm_1426a ld a, [$d551] and a ret z ld a, [hGameBoyColorFlag] and a ret z ld a, BANK(Data_dd188) ld hl, Data_dd188 ld de, $0070 ld bc, $0010 call Func_6fd ret Func_14282: ; 0x14282 ld a, [wInSpecialMode] and a jr z, .asm_1429e ld a, [wSpecialMode] and a jr nz, .asm_14296 ld a, [wNumMonHits] and a call nz, Func_142b3 ret .asm_14296 cp $1 jr nz, .asm_1429e call Func_142c3 ret .asm_1429e ld a, [$d624] call Func_174d4 ld a, BANK(Data_d8f60) ld hl, Data_d8f60 ld de, $8ae0 ld bc, $0020 call FarCopyData ret Func_142b3: ; 0x142b3 push af ld [$ff8a], a callba Func_10611 pop af dec a jr nz, Func_142b3 ret Func_142c3: ; 0x142c3 ld de, $0000 ld a, [$d554] and a ret z ld b, a .asm_142cc ld a, [wCurrentEvolutionType] call Func_142d7 inc de dec b jr nz, .asm_142cc ret Func_142d7: ; 0x142d7 push bc push de dec a ld c, a ld b, $0 swap c sla c ld hl, Data_d8e80 add hl, bc swap e sla e push hl ld hl, $8ae0 add hl, de ld d, h ld e, l pop hl ld bc, $0020 ld a, BANK(Data_d8e80) call FarCopyData pop de pop bc ret Func_142fc: ; 0x142fc ld a, [$d4c8] and a jr nz, .asm_1430e ld [$ff8a], a callba LoadBallGfx jr .asm_14328 .asm_1430e cp $1 jr nz, .asm_1431e ld [$ff8a], a callba LoadMiniBallGfx jr .asm_14328 .asm_1431e ld [$ff8a], a callba Func_dd62 .asm_14328 ld a, [hGameBoyColorFlag] and a ret z ld a, [wBallType] cp GREAT_BALL jr nc, .notPokeball ld a, BANK(PokeBallObjPalette) ld hl, PokeBallObjPalette ld de, $0040 ld bc, $0008 call Func_6fd ret .notPokeball cp ULTRA_BALL jr nc, .notGreatball ld a, BANK(GreatBallObjPalette) ld hl, GreatBallObjPalette ld de, $0040 ld bc, $0008 call Func_6fd ret .notGreatball cp MASTER_BALL jr nc, .notUltraball ld a, BANK(UltraBallObjPalette) ld hl, UltraBallObjPalette ld de, $0040 ld bc, $0008 call Func_6fd ret .notUltraball ld a, BANK(MasterBallObjPalette) ld hl, MasterBallObjPalette ld de, $0040 ld bc, $0008 call Func_6fd ret Func_14377: ; 0x14377 ld a, [wInSpecialMode] and a jr nz, .asm_143b1 ld a, [$d609] and a jr z, .asm_14393 ld a, [$d498] add $15 ld [$ff8a], a callba Func_30256 ret .asm_14393 ld a, [$d608] and a jr z, .asm_143a6 ld a, $1a ld [$ff8a], a callba Func_30256 ret .asm_143a6 ld [$ff8a], a callba Func_30253 ret .asm_143b1 ld a, [wSpecialMode] cp $2 ret nz ld a, [$d54d] cp $3 jr nz, .asm_143c9 ld [$ff8a], a callba Func_30253 ret .asm_143c9 ld a, [$d604] and a ld a, $14 jr nz, .asm_143d6 ld a, [$d55a] add $12 .asm_143d6 ld [$ff8a], a callba Func_30256 ret Func_143e1: ; 0x143e1 ; not collisions. call Func_14474 ; voltorbs call Func_14498 call Func_144b6 call Func_144c0 call Func_144da call Func_14439 call Func_144ac jp Func_1441e Func_143f9: ; 0x143f9 ld a, [wBallYPos + 1] cp $56 jr nc, .asm_14412 call Func_1444d call Func_144cd call Func_14467 call Func_1445a call Func_14443 jp Func_1441e .asm_14412 call Func_14481 call Func_144e4 call Func_144a2 jp Func_1448e Func_1441e: ; 0x1441e xor a ld [$d578], a ld a, [$d551] and a ret z ld a, [wCurrentStage] ld hl, RedStageEvolutionTrinketCoordinatePointers ld c, a ld b, $0 sla c add hl, bc ld a, [hli] ld h, [hl] ld l, a jp PinballCollideWithPoints Func_14439: ; 0x14439 ld de, Data_145b5 ld bc, $d5fe scf jp Func_2775 Func_14443: ; 0x14443 ld de, Data_145bb ld bc, $d601 scf jp Func_2775 Func_1444d: ; 0x1444d ld de, Data_145af ld hl, Data_1459d ld bc, $d5c7 and a jp Func_2775 Func_1445a: ; 0x1445a ld de, Data_145c9 ld hl, Data_145c1 ld bc, $d60a and a jp Func_2775 Func_14467: ; 0x14467 ld de, Data_144f4 ld hl, Data_144ee ld bc, $d4ed and a jp Func_2775 Func_14474: ; 0x14474 ld de, Data_14515 ; todo ld hl, Data_144fd ; todo ld bc, $d4cb and a jp Func_2775 Func_14481: ; 0x14481 ld de, Data_1452d ld hl, Data_14521 ld bc, $d4d8 and a jp Func_2775 Func_1448e: ; 0x1448e ld de, Data_14536 ld bc, $d4dc scf jp Func_2775 Func_14498: ; 0x14498 ld de, Data_1453c ; todo ld bc, $d507 scf jp Func_2775 Func_144a2: ; 0x144a2 ld de, Data_14542 ld bc, $d50d scf jp Func_2775 Func_144ac: ; 0x144ac ld de, Data_14551 ld bc, $d5f7 scf jp Func_2775 Func_144b6: ; 0x144b6 ld de, Data_1455d ; todo ld bc, $d51f scf jp Func_2775 Func_144c0: ; 0x144c0 ld de, Data_1457d ; todo ld hl, Data_14578 ; todo ld bc, $d500 and a jp Func_2775 Func_144cd: ; 0x144cd ld de, Data_14588 ld hl, Data_14583 ld bc, $d500 and a jp Func_2775 Func_144da: ; 0x144da ld de, Data_1458e ld bc, $d4fb scf jp Func_2775 Func_144e4: ; 0x144e4 ld de, Data_14594 ld bc, $d515 scf jp Func_2775 Data_144ee: dr $144ee, $144f4 Data_144f4: dr $144f4, $144fd Data_144fd: dr $144fd, $14515 Data_14515: dr $14515, $14521 Data_14521: dr $14521, $1452d Data_1452d: dr $1452d, $14536 Data_14536: dr $14536, $1453c Data_1453c: dr $1453c, $14542 Data_14542: dr $14542, $14551 Data_14551: dr $14551, $1455d Data_1455d: dr $1455d, $14578 Data_14578: dr $14578, $1457d Data_1457d: dr $1457d, $14583 Data_14583: dr $14583, $14588 Data_14588: dr $14588, $1458e Data_1458e: dr $1458e, $14594 Data_14594: dr $14594, $1459d Data_1459d: dr $1459d, $145af Data_145af: dr $145af, $145b5 Data_145b5: dr $145b5, $145bb Data_145bb: dr $145bb, $145c1 Data_145c1: dr $145c1, $145c9 Data_145c9: dr $145c9, $145d2 RedStageEvolutionTrinketCoordinatePointers: ; 0x145d2 dw RedStageTopEvolutionTrinketCoords dw RedStageBottomEvolutionTrinketCoords RedStageTopEvolutionTrinketCoords: ; 0x156d6 ; First byte is just non-zero to signify that the array hasn't ended. ; Second byte is x coordinate. ; Third byte is y coordinate. db $01, $44, $14 db $01, $2A, $1A db $01, $5E, $1A db $01, $11, $2D db $01, $77, $2D db $01, $16, $3E db $01, $77, $3E db $01, $06, $6D db $01, $83, $6D db $01, $41, $82 db $01, $51, $82 db $01, $69, $82 db $00 ; terminator RedStageBottomEvolutionTrinketCoords: ; 0x145fb ; First byte is just non-zero to signify that the array hasn't ended. ; Second byte is x coordinate. ; Third byte is y coordinate. db $01, $35, $1B db $01, $53, $1B db $01, $29, $1F db $01, $5F, $1F db $01, $26, $34 db $01, $62, $34 db $00 ; terminator Func_1460e: ; 0x1460e ; not collisions call Func_14d85 call Func_14dea call Func_1535d call HandleBallTypeUpgradeCounterRedField call Func_15270 call Func_1581f call Func_1660c call Func_16781 call Func_15e93 call Func_160f0 call Func_161e0 call Func_164e3 call Func_146a9 call Func_174ea call Func_148cf ld [$ff8a], a callba Func_30188 ld a, $0 ld [$ff8a], a callba Func_10000 ret Func_14652: ; 0x14652 call Func_14795 call Func_15f86 call Func_147aa call Func_14880 call Func_14e10 call Func_154a9 call HandleBallTypeUpgradeCounterRedField call Func_151cb call Func_1652d call Func_1660c call Func_167ff call Func_169a6 call Func_16d9d call Func_16279 call Func_161af call Func_164e3 call Func_14733 call Func_146a2 call Func_174d0 ld [$ff8a], a callba Func_30188 ld a, $0 ld [$ff8a], a callba Func_10000 ret Func_146a2: ; 0x146a2 call Func_146a9 call nz, Func_14707 ret Func_146a9: ; 0x146a9 ld a, [wBallSaverTimerFrames] ld hl, wBallSaverTimerSeconds or [hl] ret z ld a, [wBallXPos + 1] cp $9a jr nc, .asm_146e8 ld a, [wBallSaverTimerFrames] dec a ld [wBallSaverTimerFrames], a bit 7, a jr z, .asm_146e8 ld a, $3b ld [wBallSaverTimerFrames], a ld a, [hl] dec a bit 7, a jr nz, .asm_146cf ld [hl], a .asm_146cf inc a ld c, $0 cp $2 jr c, .asm_146e4 ld c, $4 cp $6 jr c, .asm_146e4 ld c, $10 cp $b jr c, .asm_146e4 ld c, $ff .asm_146e4 ld a, c ld [$d4a2], a .asm_146e8 ld a, [$d4a2] ld c, $0 and a jr z, .asm_146fe ld c, $1 cp $ff jr z, .asm_146fe ld hl, $ffb3 and [hl] jr z, .asm_146fe ld c, $0 .asm_146fe ld a, [wBallSaverIconOn] cp c ld a, c ld [wBallSaverIconOn], a ret Func_14707: ; 0x14707 ld a, [wBallSaverIconOn] and a jr nz, .asm_1471c ld a, BANK(Data_1172b) ld hl, Data_1172b ld de, $99a8 ld bc, $0004 call Func_735 ret .asm_1471c ld a, BANK(Data_1472f) ld hl, Data_1472f ld de, $99a8 ld bc, $0004 call Func_735 ret Data_1172b: dr $1472b, $1472f Data_1472f: dr $1472f, $14733 Func_14733: ; 0x14733 ld c, $0 ld a, [$d49b] and a jr z, .asm_1473d ld c, $1 .asm_1473d ld a, [$d4a9] cp c ld a, c ld [$d4a9], a ret z ; fall through Func_14746: ; 0x14746 ld c, $0 ld a, [$d49b] and a jr z, .asm_14750 ld c, $2 .asm_14750 ld b, $0 ld hl, Data_1475f add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, BANK(Data_1475f) call Func_10aa ret Data_1475f: dr $1475f, $14795 Func_14795: ; 0x14795 ld a, [$d5c7] and a ret z xor a ld [$d5c7], a ld a, $1 ld [$d5bf], a ld de, $0006 call PlaySoundEffect ret Func_147aa: ; 0x147aa ld a, [$d4ed] and a jp z, .asm_14834 xor a ld [$d4ed], a ld a, [$d4ee] sub $1 sla a ld c, a ld b, $0 ld hl, wLeftMapMoveCounter add hl, bc ld a, [hl] cp $3 jr z, .asm_14834 inc a ld [hld], a ld [hl], $50 ld hl, $d4f7 add hl, bc ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, c and a jr z, .asm_14807 ld a, $6a ld [$c7f0], a ld a, $6b ld [$c810], a ld a, $5 call Func_149d9 ld a, [wRightMapMoveCounter] add $4 call Func_149f5 ld a, $8 ld [$ff8a], a callba Func_10000 ld a, [wRightMapMoveCounter] cp $3 call z, Func_14920 jr .asm_14830 .asm_14807 ld a, $66 ld [$c7e3], a ld a, $67 ld [$c803], a ld a, $2 call Func_149d9 ld a, [wLeftMapMoveCounter] call Func_149f5 ld a, $7 ld [$ff8a], a callba Func_10000 ld a, [wLeftMapMoveCounter] cp $3 call z, Func_14947 .asm_14830 call Func_1496d ret .asm_14834 ld a, [$d4ef] and a jr z, .asm_14857 dec a ld [$d4ef], a jr nz, .asm_14857 ld a, [wLeftMapMoveCounter] sub $3 jr nz, .asm_1484d ld [wLeftMapMoveCounter], a call Func_149f5 .asm_1484d ld a, $64 ld [$c7e3], a ld a, $65 ld [$c803], a .asm_14857 ld a, [$d4f1] and a jr z, .asm_1487c dec a ld [$d4f1], a jr nz, .asm_1487c ld a, [wRightMapMoveCounter] sub $3 jr nz, .asm_14872 ld [wRightMapMoveCounter], a add $4 call Func_149f5 .asm_14872 ld a, $68 ld [$c7f0], a ld a, $69 ld [$c810], a .asm_1487c call Func_14990 ret Func_14880: ; 0x14880 ld hl, $d4f7 dec [hl] ld a, [hli] cp $ff jr nz, .asm_148a6 dec [hl] ld a, [hld] cp $ff jr nz, .asm_148a6 ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wLeftMapMoveCounter] and a jr z, .asm_148a6 cp $3 jr z, .asm_148a6 dec a ld [wLeftMapMoveCounter], a call Func_149f5 .asm_148a6 ld hl, $d4f9 dec [hl] ld a, [hli] cp $ff jr nz, .asm_148ce dec [hl] ld a, [hld] cp $ff jr nz, .asm_148ce ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wRightMapMoveCounter] and a jr z, .asm_148ce cp $3 jr z, .asm_148ce dec a ld [wRightMapMoveCounter], a add $4 call Func_149f5 .asm_148ce ret Func_148cf: ; 0x148cf ld b, $0 ld hl, $d4f8 ld a, [hld] or [hl] jr z, .asm_148f8 dec [hl] ld a, [hli] cp $ff jr nz, .asm_148f8 dec [hl] ld a, [hld] cp $ff jr nz, .asm_148f8 ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wLeftMapMoveCounter] and a jr z, .asm_148f8 cp $3 jr z, .asm_148f8 dec a ld [wLeftMapMoveCounter], a .asm_148f8 ld hl, $d4fa ld a, [hld] or [hl] jr z, .asm_1491f dec [hl] ld a, [hli] cp $ff jr nz, .asm_1491f dec [hl] ld a, [hld] cp $ff jr nz, .asm_1491f ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wRightMapMoveCounter] and a jr z, .asm_1491f cp $3 jr z, .asm_1491f dec a ld [wRightMapMoveCounter], a .asm_1491f ret Func_14920: ; 0x14920 ld hl, $d62b call Func_e4a jr nc, .asm_14937 ld c, $a call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch .asm_14937 ld a, $1 ld [$d55a], a ld [$ff8a], a callba StartMapMoveMode ret Func_14947: ; 0x14947 ld hl, $d62b call Func_e4a jr nc, .asm_1495e ld c, $a call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch .asm_1495e xor a ld [$d55a], a ld [$ff8a], a callba StartMapMoveMode ret Func_1496d: ; 0x1496d ld a, $55 ld [$d803], a ld a, $4 ld [$d804], a ld a, $2 ld [$d7eb], a ld bc, FiveHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld de, $000f call PlaySoundEffect ret Func_14990: ; 0x14990 ld a, [$d4ef] and a jr nz, .asm_149b6 ld a, [wLeftMapMoveDiglettAnimationCounter] and a jr z, .asm_149a2 dec a ld [wLeftMapMoveDiglettAnimationCounter], a jr .asm_149b6 .asm_149a2 call Func_1130 ret nz ld a, $14 ld [wLeftMapMoveDiglettAnimationCounter], a ld a, [wLeftMapMoveDiglettFrame] xor $1 ld [wLeftMapMoveDiglettFrame], a call Func_149d9 .asm_149b6 ld a, [$d4f1] and a ret nz ld a, [wRightMapMoveDiglettAnimationCounter] and a jr z, .asm_149c6 dec a ld [wRightMapMoveDiglettAnimationCounter], a ret .asm_149c6 call Func_1130 ret nz ld a, $14 ld [wRightMapMoveDiglettAnimationCounter], a ld a, [wRightMapMoveDiglettFrame] xor $1 ld [wRightMapMoveDiglettFrame], a add $3 ; fall through Func_149d9: ; 0x149d9 sla a ld c, a ld b, $0 ld hl, Data_14a11 ld a, [hGameBoyColorFlag] and a jr z, .asm_149e9 ld hl, Data_14a83 .asm_149e9 add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, BANK(Data_14a11) call Func_10aa ret Func_149f5: ; 0x149f5 sla a ld c, a ld b, $0 ld hl, Data_14af5 ld a, [hGameBoyColorFlag] and a jr z, .asm_14a05 ld hl, Data_14c8d .asm_14a05 add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, BANK(Data_14af5) call Func_10aa ret Data_14a11: dr $14a11, $14a83 Data_14a83: dr $14a83, $14af5 Data_14af5: dr $14af5, $14c8d Data_14c8d: dr $14c8d, $14d85 Func_14d85: ; 0x14d85 ld a, [$d4cb] and a jr z, .asm_14db9 xor a ld [$d4cb], a call Func_14dc9 ld a, $10 ld [$d4d6], a ld a, [$d4cc] sub $3 ld [$d4d7], a ld a, $4 ld [$ff8a], a callba Func_10000 ld bc, FiveHundredMillionPoints ld [$ff8a], a callba AddBCDScore ret .asm_14db9 ld a, [$d4d6] and a ret z dec a ld [$d4d6], a ret nz ld a, $ff ld [$d4d7], a ret Func_14dc9: ; 0x14dc9 ld a, $ff ld [$d803], a ld a, $3 ld [$d804], a ld hl, $0200 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a ld de, $000e call PlaySoundEffect ret Func_14dea: ; 0x14dea ld a, [$d507] and a jr z, Func_14e10 xor a ld [$d507], a ld a, [wBallYVelocity] ld c, a ld a, [wBallYVelocity + 1] ld b, a ld a, c ld [$d50b], a ld a, b ld [$d50c], a ld a, $c ld [$ff8a], a callba Func_10000 ; fall through Func_14e10: ; 0x14e10 ld hl, $d50b ld a, [hli] or [hl] ret z ld a, [$d50b] ld c, a ld a, [$d50c] ld b, a bit 7, b jr nz, .asm_14e2e ld a, c sub $7 ld c, a ld a, b sbc $0 ld b, a jr nc, .asm_14e3b jr .asm_14e38 .asm_14e2e ld a, c add $7 ld c, a ld a, b adc $0 ld b, a jr nc, .asm_14e3b .asm_14e38 ld bc, $0000 .asm_14e3b ld a, c ld [$d50b], a ld a, b ld [$d50c], a ld hl, $d50b ld a, [$d509] add [hl] ld [$d509], a inc hl ld a, [$d50a] adc [hl] bit 7, a ld c, $0 jr z, .asm_14e5e add $18 ld c, $1 jr .asm_14e66 .asm_14e5e cp $18 jr c, .asm_14e66 sub $18 ld c, $1 .asm_14e66 ld [$d50a], a ld a, c and a ret z ld bc, OneHundredBillionPoints ld [$ff8a], a callba AddBCDScore ld hl, $d62d call Func_e4a ld a, [$d517] cp $f jr nz, .asm_14e8a call Func_14ea7 ret .asm_14e8a inc a ld [$d517], a call Func_14ea7 ld a, [$d517] cp $f jr nz, .asm_14e9d ld a, $64 ld [$d51e], a .asm_14e9d ld a, [wCurrentStage] bit 0, a ret nz call Func_14ece ret Func_14ea7: ; 0x14ea7 ld a, [$d51e] and a ret nz ld a, [$d517] ld c, a ld b, $0 ld hl, Data_14ebe add hl, bc ld a, [hl] ld e, a ld d, $0 call PlaySoundEffect ret Data_14ebe: dr $14ebe, $14ece Func_14ece: ; 0x14ece ld a, [$d517] ld c, a sla c ld b, $0 ld hl, Data_14eeb ld a, [hGameBoyColorFlag] and a jr z, .asm_14ee1 ld hl, Data_1509b .asm_14ee1 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, BANK(Data_14eeb) call Func_10aa ret Data_14eeb: dr $14eeb, $1509b Data_1509b: dr $1509b, $151cb Func_151cb: ; 0x151cb ld a, [$d50d] and a jr z, .asm_15229 xor a ld [$d50d], a ld a, [$d513] and a jr nz, .asm_15229 ld a, [$d50e] sub $a ld c, a ld b, $0 ld hl, $d50f add hl, bc ld a, [hl] ld [hl], $1 and a ret nz ld bc, OneHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld hl, $d50f ld a, [hli] and [hl] inc hl and [hl] inc hl and [hl] jr z, Func_asm_1522d ld a, $1 ld [$d513], a ld a, $80 ld [$d514], a ld bc, FourHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld de, $0009 call PlaySoundEffect ld hl, $d62c call Func_e4a jr Func_asm_1522d .asm_15229 call Func_15270 ret z ; fall through Func_asm_1522d: ; 0x1522d ld hl, $d512 ld b, $4 .asm_15232 ld a, [hld] push hl call Func_1523c pop hl dec b jr nz, .asm_15232 ret Func_1523c: ; 0x1523c and a jr z, .asm_1524e ld a, [hGameBoyColorFlag] and a jr nz, .asm_15249 ld hl, Data_152dd jr .asm_1525b .asm_15249 ld hl, Data_1531d jr .asm_1525b .asm_1524e ld a, [hGameBoyColorFlag] and a jr nz, .asm_15258 ld hl, Data_152e5 jr .asm_1525b .asm_15258 ld hl, Data_15325 .asm_1525b push bc dec b sla b ld e, b ld d, $0 add hl, de ld c, [hl] inc hl ld b, [hl] ld a, $5 ld de, LoadTileLists call Func_10c5 pop bc ret Func_15270: ; 0x15270 ld a, [$d513] and a jr z, .asm_152a6 ld a, [$d514] dec a ld [$d514], a jr nz, .asm_1528d ld [$d513], a ld a, $1 ld [$d608], a ld a, $3 ld [$d607], a xor a .asm_1528d and $7 ret nz ld a, [$d514] srl a srl a srl a and $1 ld hl, $d50f ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld a, $1 and a ret .asm_152a6 ld hl, wKeyConfigLeftFlipper call IsKeyPressed jr z, .asm_152c2 ld hl, $d50f ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld e, a ld a, [hl] ld d, a ld a, c ld [hld], a ld a, d ld [hld], a ld a, e ld [hld], a ld a, b ld [hl], a ret .asm_152c2 ld hl, wKeyConfigRightFlipper call IsKeyPressed ret z ld hl, $d50f ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld e, a ld a, [hl] ld d, a ld a, e ld [hld], a ld a, b ld [hld], a ld a, c ld [hld], a ld a, d ld [hl], a ret Data_152dd: dr $152dd, $152e5 Data_152e5: dr $152e5, $1531d Data_1531d: dr $1531d, $15325 Data_15325: dr $15325, $1535d Func_1535d: ; 0x1535d ld a, [$d5f7] and a jp z, .asm_1544c xor a ld [$d5f7], a ld a, [wStageCollisionState] bit 0, a jp z, .asm_1544c ld a, [$d5fc] and a jp nz, .asm_1544c xor a ld [wRightAlleyTrigger], a ld [wLeftAlleyTrigger], a ld [wSecondaryLeftAlleyTrigger], a call Func_159c9 ld a, $b ld [$ff8a], a callba Func_10000 ld a, [$d5f8] sub $e ld c, a ld b, $0 ld hl, $d5f9 add hl, bc ld a, [hl] ld [hl], $1 and a ret nz ld bc, OneHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld hl, $d5f9 ld a, [hli] and [hl] inc hl and [hl] jr nz, .asm_153c0 ld de, $0009 call PlaySoundEffect jp Func_15450 .asm_153c0 ld a, $1 ld [$d5fc], a ld a, $80 ld [$d5fd], a ; load approximately 1 minute of frames into wBallTypeCounter ld a, $10 ld [wBallTypeCounter], a ld a, $e ld [wBallTypeCounter + 1], a ld bc, FourHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld a, [wBallType] cp MASTER_BALL jr z, .masterBall ld de, $063a call PlaySoundEffect call Func_30e8 call Func_30db ld de, $2907 ld hl, $d5cc call LoadTextHeader ld a, [wBallType] ld c, a ld b, $0 ld hl, BallTypeProgressionRedField add hl, bc ld a, [hl] ld [wBallType], a add $30 ld [wcBottomMessageText + $12], a jr .asm_15447 .masterBall ld de, $0f4d call PlaySoundEffect ld bc, TenThousandPoints ld [$ff8a], a callba Func_8588 ld bc, $0100 ld de, $0000 push bc push de call Func_30e8 call Func_30db ld hl, $d5d4 ld de, $2948 call Func_32cc pop de pop bc ld hl, $d5cc ld de, FieldMultiplierSpecialBonusText call LoadTextHeader .asm_15447 call Func_155a7 jr Func_15450 .asm_1544c call Func_154a9 ret z Func_15450 ld a, [wStageCollisionState] bit 0, a ret z ld hl, $d5fb ld b, $3 .asm_1545b ld a, [hld] push hl call Func_15465 pop hl dec b jr nz, .asm_1545b ret Func_15465: ; 0x15465 and a jr z, .asm_15477 ld a, [hGameBoyColorFlag] and a jr nz, .asm_15472 ld hl, Data_15511 jr .asm_15484 .asm_15472 ld hl, Data_15543 jr .asm_15484 .asm_15477 ld a, [hGameBoyColorFlag] and a jr nz, .asm_15481 ld hl, Data_15517 jr .asm_15484 .asm_15481 ld hl, Data_15549 .asm_15484 push bc dec b sla b ld e, b ld d, $0 add hl, de ld c, [hl] inc hl ld b, [hl] ld a, $5 ld de, LoadTileLists call Func_10c5 pop bc ret Func_15499: ; 0x15499 ld a, [hGameBoyColorFlag] and a ret nz ld b, $3 .asm_1549f push hl xor a call Func_15465 pop hl dec b jr nz, .asm_1549f ret Func_154a9: ; 0x154a9 ld a, [$d5fc] and a jr z, .asm_154d6 ld a, [$d5fd] dec a ld [$d5fd], a jr nz, .asm_154bb ld [$d5fc], a .asm_154bb and $7 jr nz, .asm_154d4 ld a, [$d5fd] srl a srl a srl a and $1 ld hl, $d5f9 ld [hli], a ld [hli], a ld [hl], a ld a, $1 and a ret .asm_154d4 xor a ret .asm_154d6 ld hl, wKeyConfigLeftFlipper call IsKeyPressed jr z, .asm_154ee ld hl, $d5f9 ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hl] ld e, a ld a, c ld [hld], a ld a, e ld [hld], a ld a, b ld [hl], a ret .asm_154ee ld hl, wKeyConfigRightFlipper call IsKeyPressed ret z ld hl, $d5f9 ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hl] ld e, a ld a, b ld [hld], a ld a, c ld [hld], a ld a, e ld [hl], a ret BallTypeProgressionRedField: ; 0x15505 ; Determines the next upgrade for the Ball. db GREAT_BALL ; POKE_BALL -> GREAT_BALL db GREAT_BALL ; unused db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL db MASTER_BALL ; unused db MASTER_BALL ; MASTER_BALL -> MASTER_BALL BallTypeDegradationRedField: ; 0x1550b ; Determines the previous upgrade for the Ball. db POKE_BALL ; POKE_BALL -> POKE_BALL db POKE_BALL ; unused db POKE_BALL ; GREAT_BALL -> POKE_BALL db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL db ULTRA_BALL ; unused db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL Data_15511: dr $15511, $15517 Data_15517: dr $15517, $15543 Data_15543: dr $15543, $15549 Data_15549: dr $15549, $15575 HandleBallTypeUpgradeCounterRedField: ; 0x15575 ld a, [$d5f3] and a ret nz ld hl, wBallTypeCounter ld a, [hli] ld c, a ld b, [hl] or b ret z dec bc ld a, b ld [hld], a ld [hl], c or c ret nz ; counter is now 0! Degrade the ball upgrade. ld a, [wBallType] ld c, a ld b, $0 ld hl, BallTypeDegradationRedField add hl, bc ld a, [hl] ld [wBallType], a and a jr z, .pokeball ; load approximately 1 minute of frames into wBallTypeCounter ld a, $10 ld [wBallTypeCounter], a ld a, $e ld [wBallTypeCounter + 1], a .pokeball call Func_155a7 ret Func_155a7: ; 0x155a7 ld a, [wBallType] ld c, a sla c ld b, $0 ld hl, Data_155d7 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $5 call Func_10aa ; fall through Func_155bb: ; 0x155bb ld a, [hGameBoyColorFlag] and a ret z ; gameboy color ld a, [wBallType] sla a ld c, a ld b, $0 ld hl, Data_157f7 add hl, bc ld c, [hl] inc hl ld b, [hl] ld a, $5 ld de, $1266 call Func_10c5 ret Data_155d7: dr $155d7, $157f7 Data_157f7: dr $157f7, $1581f Func_1581f: ; 0x1581f ld a, [$d51f] and a ret z xor a ld [$d51f], a ld bc, FiftyBillionPoints ld [$ff8a], a callba AddBCDScore ld a, [$d520] sub $11 ld c, a ld b, $0 ld hl, $d521 add hl, bc ld [hl], $1 ld a, [$d521] and a call nz, Func_1587c ld a, [$d522] and a call nz, Func_158c0 ld a, [$d523] and a call nz, Func_15904 ld a, [$d524] and a call nz, HandleLeftAlleyTriggerRedField ld a, [$d525] and a call nz, Func_15931 ld a, [$d526] and a call nz, Func_15944 ld a, [$d527] and a call nz, HandleRightAlleyTriggerRedField ld a, [$d528] and a call nz, Func_15990 ret Func_1587c: ; 0x1587c xor a ld [$d521], a ld a, [wLeftAlleyTrigger] and a ret z xor a ld [wLeftAlleyTrigger], a ld a, $1 ld [$ff8a], a callba Func_10000 ret c ld a, [wLeftAlleyCount] cp $3 ret z inc a ld [wLeftAlleyCount], a set 7, a ld [wIndicatorStates], a cp $83 ret nz ld a, [wStageCollisionState] and $1 or $6 ld [wStageCollisionState], a ld [$ff8a], a callba LoadStageCollisionAttributes call Func_159f4 ret Func_158c0: ; 0x158c0 xor a ld [$d522], a ld a, [wLeftAlleyTrigger] and a ret z xor a ld [wLeftAlleyTrigger], a ld a, $1 ld [$ff8a], a callba Func_10000 ret c ld a, [wLeftAlleyCount] cp $3 ret z inc a ld [wLeftAlleyCount], a set 7, a ld [wIndicatorStates], a cp $83 ret nz ld a, [wStageCollisionState] and $1 or $6 ld [wStageCollisionState], a ld [$ff8a], a callba LoadStageCollisionAttributes call Func_159f4 ret Func_15904: ; 0x15904 xor a ld [$d523], a ld a, [wSecondaryLeftAlleyTrigger] and a ret z xor a ld [wSecondaryLeftAlleyTrigger], a ld a, $3 ld [$ff8a], a callba Func_10000 ret HandleLeftAlleyTriggerRedField: ; 0x1591e ; Ball passed over the left alley trigger point in the Red Field. xor a ld [$d524], a ld [wRightAlleyTrigger], a ld [wSecondaryLeftAlleyTrigger], a ld a, $1 ld [wLeftAlleyTrigger], a call Func_159c9 ret Func_15931: ; 0x15931 xor a ld [$d525], a ld [wRightAlleyTrigger], a ld [wLeftAlleyTrigger], a ld a, $1 ld [wSecondaryLeftAlleyTrigger], a call Func_159c9 ret Func_15944: ; 0x15944 xor a ld [$d526], a ld a, [wRightAlleyTrigger] and a ret z xor a ld [wRightAlleyTrigger], a ld a, $2 ld [$ff8a], a callba Func_10000 ret c ld a, [wRightAlleyCount] cp $3 ret z inc a ld [wRightAlleyCount], a cp $3 jr z, .asm_1596e set 7, a .asm_1596e ld [wIndicatorStates + 1], a ld a, [wRightAlleyCount] cp $2 ret c ld a, $80 ld [wIndicatorStates + 3], a ret HandleRightAlleyTriggerRedField: ; 0x1597d ; Ball passed over the right alley trigger point in the Red Field. xor a ld [$d527], a ld [wLeftAlleyTrigger], a ld [wSecondaryLeftAlleyTrigger], a ld a, $1 ld [wRightAlleyTrigger], a call Func_159c9 ret Func_15990: ; 0x15990 xor a ld [$d528], a ld a, [wRightAlleyTrigger] and a ret z xor a ld [wRightAlleyTrigger], a ld a, $2 ld [$ff8a], a callba Func_10000 ret c ld a, [wRightAlleyCount] cp $3 ret z inc a ld [wRightAlleyCount], a cp $3 jr z, .asm_159ba set 7, a .asm_159ba ld [wIndicatorStates + 1], a ld a, [wRightAlleyCount] cp $2 ret c ld a, $80 ld [wIndicatorStates + 3], a ret Func_159c9: ; 0x159c9 ld a, [$d7ad] bit 7, a ret nz ld c, a ld a, [wStageCollisionState] and $1 or c ld [wStageCollisionState], a ld a, $ff ld [$d7ad], a ld [$ff8a], a callba LoadStageCollisionAttributes call Func_159f4 ld a, $1 ld [$d580], a call Func_1404a ret Func_159f4: ; 0x159f4 ld a, [$ff9e] bit 7, a jr z, .asm_15a13 ld a, [$d7f2] and $fe ld c, a ld a, [wStageCollisionState] and $fe cp c jr z, .asm_15a13 add c cp $2 jr z, .asm_15a13 ld de, $0000 call PlaySoundEffect .asm_15a13 ld a, [$d7f2] swap a ld c, a ld a, [wStageCollisionState] sla a or c ld c, a ld b, $0 ld hl, Data_15a3f ld a, [hGameBoyColorFlag] and a jr z, .asm_15a2d ld hl, Data_15d05 .asm_15a2d add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, $5 call Func_10aa ld a, [wStageCollisionState] ld [$d7f2], a ret Data_15a3f: dr $15a3f, $15d05 Data_15d05: dr $15d05, $15e93 Func_15e93: ; 0x15e93 ld a, [$d4fb] and a jr z, .asm_15eda xor a ld [$d4fb], a ld bc, OneMillionPoints ld [$ff8a], a callba AddBCDScore ld de, $0005 call PlaySoundEffect ld hl, BellsproutAnimationData ld de, wBellsproutAnimationFrameCounter call CopyHLToDE xor a ld [wBallXVelocity], a ld [wBallXVelocity + 1], a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld [wBallXPos], a ld [wBallYPos], a ld a, $7c ld [wBallXPos + 1], a ld a, $78 ld [wBallYPos + 1], a xor a ld [$d549], a .asm_15eda ld hl, BellsproutAnimationData ld de, wBellsproutAnimationFrameCounter call UpdateAnimation push af ld a, [wBellsproutAnimationFrameCounter] and a jr nz, .asm_15ef8 ld a, $19 ld [wBellsproutAnimationFrameCounter], a xor a ld [wBellsproutAnimationFrame], a ld a, $6 ld [wBellsproutAnimationFrameIndex], a .asm_15ef8 pop af ret nc ld a, [wBellsproutAnimationFrameIndex] cp $1 jr nz, .asm_15f35 xor a ld [$d548], a ld a, [wRightAlleyCount] cp $2 jr c, .noCatchEmMode ld a, $8 jr nz, .asm_15f11 xor a .asm_15f11 ld [wRareMonsFlag], a ld [$ff8a], a callba StartCatchEmMode .noCatchEmMode ld hl, $d62a call Func_e4a ret nc ld c, $19 call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch ret .asm_15f35 ld a, [wBellsproutAnimationFrameIndex] cp $4 jr nz, .asm_15f42 ld a, $1 ld [$d548], a ret .asm_15f42 ld a, [wBellsproutAnimationFrameIndex] cp $5 ret nz ld a, $1 ld [$d549], a xor a ld [wBallXVelocity + 1], a ld a, $2 ld [wBallYVelocity + 1], a ld de, $0006 call PlaySoundEffect ld a, $5 ld [$ff8a], a callba Func_10000 ret BellsproutAnimationData: ; 0x15f69 ; Each entry is [duration][OAM id] db $08, $01 db $06, $02 db $20, $03 db $06, $02 db $08, $01 db $01, $00 db $29, $00 db $28, $01 db $2A, $00 db $27, $01 db $29, $00 db $28, $01 db $2B, $00 db $28, $01 db $00 ; terminator Func_15f86: ; 0x15f86 ld a, [$d4d8] and a jr z, .asm_15f99 call Func_5fb8 call Func_15fa6 xor a ld [$d4d8], a call Func_15fda .asm_15f99 ld a, [$d4da] and a ret z dec a ld [$d4da], a call z, Func_5fb8 ret Func_15fa6: ; 0x15fa6 ld a, $10 ld [$d4da], a ld a, [$d4d9] sub $6 ld [$d4db], a sla a inc a jr asm_15fc0 Func_5fb8: ; 0x5fb8 ld a, [$d4db] cp $ff ret z sla a asm_15fc0 sla a ld c, a ld b, $0 ld hl, Data_16010 ld a, [hGameBoyColorFlag] and a jr z, .asm_15fd0 ld hl, Data_16080 .asm_15fd0 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $5 call Func_10aa ret Func_15fda: ; 0x15fda ld a, $ff ld [$d803], a ld a, $3 ld [$d804], a ld hl, $0200 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a ld a, [$d4d9] sub $6 ld c, a ld b, $0 ld hl, Data_1600e add hl, bc ld a, [$d7ea] add [hl] ld [$d7ea], a ld de, $000b call PlaySoundEffect ret Data_1600e: dr $1600e, $16010 Data_16010: dr $16010, $16080 Data_16080: dr $16080, $160f0 Func_160f0: ; 0x160f0 ld a, [$d5fe] and a jr z, .asm_16137 xor a ld [$d5fe], a ld bc, OneMillionPoints ld [$ff8a], a callba AddBCDScore ld de, $0021 call PlaySoundEffect xor a ld hl, wBallXVelocity ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [$d549], a ld [wBallXPos], a ld [wBallYPos], a ld a, $11 ld [wBallXPos + 1], a ld a, $23 ld [wBallYPos + 1], a ld a, $10 ld [$d600], a ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a .asm_16137 ld a, [$d600] and a ret z dec a ld [$d600], a cp $f jr nz, .asm_1614f ld [$ff8a], a callba LoadMiniBallGfx ret .asm_1614f cp $c jr nz, .asm_1615e ld [$ff8a], a callba Func_dd62 ret .asm_1615e cp $9 jr nz, .asm_1616d xor a ld [$d548], a ld [wBallSpin], a ld [wBallRotation], a ret .asm_1616d cp $6 jr nz, .asm_1618e ld [$ff8a], a callba Func_10ab3 ld a, $1 ld [$d548], a ld [$d549], a ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a ret .asm_1618e cp $3 jr nz, .asm_1619d ld [$ff8a], a callba LoadMiniBallGfx ret .asm_1619d and a ret nz ld [$ff8a], a callba LoadBallGfx ld a, $2 ld [wBallYVelocity + 1], a ret Func_161af: ; 0x161af ld a, [$d604] and a ret z ld a, [wBallYPos + 1] sub $fe cp $30 ret nc ld c, $0 ld b, a ld h, b ld l, c srl b rr c srl b rr c srl h rr l add hl, bc ld a, [wBallXPos + 1] sub $38 cp $30 ret nc ld c, a ld b, $0 sla c sla c add hl, bc jr asm_1620f Func_161e0: ; 0x161e0 ld a, [$d604] and a ret z ld a, [wBallYPos + 1] sub $86 cp $30 ret nc ld c, $0 ld b, a ld h, b ld l, c srl b rr c srl b rr c srl h rr l add hl, bc ld a, [wBallXPos + 1] sub $38 cp $30 ret nc ld c, a ld b, $0 sla c sla c add hl, bc asm_1620f: ; 0x1620f ld bc, $4000 add hl, bc ld de, wBallXVelocity ld a, $3c call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, $3c call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl push bc ld a, $3c call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, $3c call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl bit 7, b jr z, .asm_1624e ld a, c cpl ld c, a ld a, b cpl ld b, a inc bc .asm_1624e pop hl bit 7, h jr z, .asm_1625a ld a, l cpl ld l, a ld a, h cpl ld h, a inc hl .asm_1625a add hl, bc sla l rl h ld a, h cp $2 ret c ld a, [$d804] and a ret nz ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a ld de, $0004 call PlaySoundEffect ret Func_16279: ; 0x16279 ld a, [$d601] and a jr z, .asm_162ae xor a ld [$d601], a ld a, [$d604] and a ret z ld a, [$d603] and a jr nz, .asm_162ae xor a ld hl, wBallXVelocity ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [$d549], a ld [wBallXPos], a ld [wBallYPos], a ld a, $50 ld [wBallXPos + 1], a ld a, $16 ld [wBallYPos + 1], a ld a, $13 ld [$d603], a .asm_162ae ld a, [$d603] and a ret z dec a ld [$d603], a ld a, $18 ld [$d606], a ld a, [$d603] cp $12 jr nz, .asm_162d4 ld de, $0021 call PlaySoundEffect ld [$ff8a], a callba LoadMiniBallGfx ret .asm_162d4 cp $f jr nz, .asm_162e3 ld [$ff8a], a callba Func_dd62 ret .asm_162e3 cp $c jr nz, .asm_162f2 xor a ld [$d548], a ld [wBallSpin], a ld [wBallRotation], a ret .asm_162f2 cp $9 jr nz, .asm_162fa call Func_16352 ret .asm_162fa cp $6 jr nz, .asm_16317 xor a ld [$d604], a ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a ld [$ff8a], a callba LoadMiniBallGfx ret .asm_16317 cp $3 jr nz, .asm_16330 ld [$ff8a], a callba LoadBallGfx ld a, $2 ld [wBallYVelocity + 1], a ld a, $80 ld [wBallXVelocity], a ret .asm_16330 and a ret nz call Func_16425 ld a, [$d622] cp $1 ret nz call GenRandom and $8 ld [wRareMonsFlag], a ld [$ff8a], a callba StartCatchEmMode xor a ld [$d622], a ret Func_16352: ; 0x16352 xor a ld [wIndicatorStates + 4], a ld a, $d ld [$ff8a], a callba Func_10000 jr nc, .asm_1636d ld a, $1 ld [$d548], a ld [$d549], a ret .asm_1636d ld a, [$d624] cp $3 jr nz, .asm_163b3 ld a, [$d607] and a jr nz, .asm_163b3 .asm_1637a ld a, [$d623] and a jr nz, .asm_16389 xor a ld [$d625], a ld a, $40 ld [$d626], a .asm_16389 xor a ld [$d623], a ld a, $1 ld [$d495], a ld [$d4ae], a ld a, [$d498] ld c, a ld b, $0 ld hl, Data_16420 add hl, bc ld a, [hl] ld [$d497], a call Func_163f2 xor a ld [$d609], a ld [$d622], a ld a, $1e ld [$d607], a ret .asm_163b3 ld [$ff8a], a callba Func_ed8e xor a ld [$d608], a ld a, [$d61d] cp $d jr nc, .asm_1637a ld a, $1 ld [$d548], a ld [$d549], a ld a, [$d622] cp $2 ret nz ld [$ff8a], a callba Func_10ab3 ld a, [$d7ad] ld c, a ld a, [wStageCollisionState] and $1 or c ld [wStageCollisionState], a xor a ld [$d622], a ret Func_163f2: ; 0x163f2 call Func_30e8 call Func_30db ld hl, $d5dc ld a, [$d497] ld de, Data_2e83 cp $d jr z, .asm_1640f ld de, Data_2e9e cp $7 jr z, .asm_1640f ld de, Data_2eb8 .asm_1640f call LoadTextHeader ld de, $0000 call PlaySong rst AdvanceFrame ld de, $3c23 call PlaySoundEffect ret Data_16420: dr $16420, $16425 Func_16425: ; 0x16425 ld a, [wCurrentStage] and $1 sla a ld c, a ld a, [$d604] add c sla a ld c, a ld b, $0 ld hl, Data_1644d ld a, [hGameBoyColorFlag] and a jr z, .asm_16441 ld hl, Data_164a1 .asm_16441 add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, $5 call Func_10aa ret Data_1644d: dr $1644d, $164a1 Data_164a1: dr $164a1, $164e3 Func_164e3: ; 0x164e3 ld a, [$d607] and a ret z dec a ld [$d607], a ret nz ld a, [wInSpecialMode] and a ret nz ld a, [$d609] and a jr z, .asm_164ff ld a, [$d498] add $15 jr .asm_16506 .asm_164ff ld a, [$d608] and a ret z ld a, $1a .asm_16506 ld hl, wCurrentStage bit 0, [hl] ld [$ff8a], a ld a, Bank(Func_30256) ld hl, Func_30256 call nz, BankSwitch ld a, [$d604] and a ret nz ld a, $1 ld [$d604], a ld a, $80 ld [wIndicatorStates + 4], a ld a, [wCurrentStage] bit 0, a call nz, Func_16425 ret Func_1652d: ; 0x1652d ld a, [$d4dc] and a ret z xor a ld [$d4dc], a ld a, [$d4de] and a jr z, .asm_16566 xor a ld [wRightAlleyTrigger], a ld [wLeftAlleyTrigger], a ld [wSecondaryLeftAlleyTrigger], a ld hl, wBallXVelocity ld [hli], a ld [hl], a ld [wBallSpin], a ld [wBallRotation], a ld a, $80 ld [wBallYVelocity], a ld a, $fa ld [wBallYVelocity + 1], a ld a, $1 ld [$d549], a ld de, $000a call PlaySoundEffect .asm_16566 ld a, $ff ld [$d4ec], a ld a, [$d4de] and a ret nz ld a, [$d4e0] and a jr nz, .asm_16582 call Func_1658f ld a, $1 ld [$d4e0], a ld [$d4de], a ret .asm_16582 ld hl, wKeyConfigBallStart call IsKeyPressed ret z ld a, $1 ld [$d4de], a ret Func_1658f: ; 0x1658f ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_f269) ld hl, Func_f269 call nz, BankSwitch .showNextMap ld a, [wInitialMapSelectionIndex] inc a cp $7 ; number of maps to choose from at the start of play jr c, .gotMapId xor a ; wrap around to 0 .gotMapId ld [wInitialMapSelectionIndex], a ld c, a ld b, $0 ld hl, RedStageInitialMaps add hl, bc ld a, [hl] ld [wCurrentMap], a push af ld de, $0048 call PlaySoundEffect pop af add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers ld [$ff8a], a callba LoadBillboardPicture ld b, $20 ; number of frames to delay before the next map is shown .waitOnCurrentMap push bc ld [$ff8a], a callba Func_eeee ld hl, wKeyConfigBallStart call IsKeyPressed jr nz, .ballStartKeyPressed pop bc dec b jr nz, .waitOnCurrentMap jr .showNextMap .ballStartKeyPressed pop bc ld [$ff8a], a callba Func_30253 ld bc, Data_2cd1 ld [$ff8a], a callba Func_3118f ld a, [wCurrentMap] ld [$d4e3], a xor a ld [$d4e2], a ret RedStageInitialMaps: ; 0x16605 db PALLET_TOWN db VIRIDIAN_FOREST db PEWTER_CITY db CERULEAN_CITY db VERMILION_SEASIDE db ROCK_MOUNTAIN db LAVENDER_TOWN Func_1660c: ; 0x1660c ld a, [$d515] and a jr z, .asm_1667b xor a ld [$d515], a ld a, [$d51c] and a jr nz, .asm_1667b ld a, [$d51d] and a jr nz, .asm_16634 ld a, [$d516] sub $1c ld hl, $d518 cp [hl] jr nz, .asm_1667b ld a, [$d517] cp $f jr nz, .asm_16667 .asm_16634 ld hl, PikachuSaverAnimationDataBlueStage ld de, wPikachuSaverAnimationFrameCounter call CopyHLToDE ld a, [$d51d] and a jr nz, .asm_16647 xor a ld [$d517], a .asm_16647 ld a, $1 ld [$d51c], a xor a ld [wBallXVelocity], a ld [wBallXVelocity + 1], a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld [wBallSpin], a ld [wBallRotation], a ld [$d549], a call Func_30e8 jr .asm_1667b .asm_16667 ld hl, PikachuSaverAnimation2DataBlueStage ld de, wPikachuSaverAnimationFrameCounter call CopyHLToDE ld a, $2 ld [$d51c], a ld de, $003b call PlaySoundEffect .asm_1667b ld a, [$d51c] and a call z, Func_16766 call Func_1669e ld a, [$d517] cp $f ret nz ld a, [$d51e] and a ret z dec a ld [$d51e], a cp $5a ret nz ld de, $0f22 call PlaySoundEffect ret Func_1669e: ; 0x1669e ld a, [$d51c] cp $1 jr nz, .asm_16719 ld hl, PikachuSaverAnimationDataBlueStage ld de, wPikachuSaverAnimationFrameCounter call UpdateAnimation ret nc ld a, [wPikachuSaverAnimationFrameIndex] cp $1 jr nz, .asm_166f7 xor a ld [$d85d], a call Func_310a rst AdvanceFrame ld a, $1 ld [$ff8a], a callba PlayPikachuSoundClip ld a, $1 ld [$d85d], a ld a, $ff ld [$d803], a ld a, $60 ld [$d804], a ld hl, $d62e call Func_e4a jr nc, .asm_166f0 ld c, $a call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch .asm_166f0 ld de, $1610 call PlaySoundEffect ret .asm_166f7 ld a, [wPikachuSaverAnimationFrameIndex] cp $11 ret nz ld a, $fc ld [wBallYVelocity + 1], a ld a, $1 ld [$d549], a ld bc, FiveBillionPoints ld [$ff8a], a callba AddBCDScore xor a ld [$d51c], a ret .asm_16719 cp $2 jr nz, .asm_16732 ld hl, PikachuSaverAnimation2DataBlueStage ld de, wPikachuSaverAnimationFrameCounter call UpdateAnimation ret nc ld a, [wPikachuSaverAnimationFrameIndex] cp $1 ret nz xor a ld [$d51c], a ret .asm_16732 ld a, [$ffb3] swap a and $1 ld [wPikachuSaverAnimationFrame], a ret PikachuSaverAnimationDataBlueStage: ; 0x1673c ; Each entry is [duration][OAM id] db $0C, $02 db $05, $03 db $05, $02 db $05, $04 db $05, $05 db $05, $02 db $06, $06 db $06, $07 db $06, $08 db $06, $02 db $06, $05 db $06, $08 db $06, $07 db $06, $02 db $06, $08 db $06, $07 db $06, $02 db $01, $00 db $00 PikachuSaverAnimation2DataBlueStage: ; 0x16761 ; Each entry is [duration][OAM id] db $0C, $02 db $01, $00 db $00 Func_16766: ; 0x16766 ld hl, wKeyConfigLeftFlipper call IsKeyPressed2 jr z, .asm_16774 ld hl, $d518 ld [hl], $0 ret .asm_16774 ld hl, wKeyConfigRightFlipper call IsKeyPressed2 ret z ld hl, $d518 ld [hl], $1 ret Func_16781: ; 0x16781 ld a, [$d500] and a jr z, .asm_167bd xor a ld [$d500], a ld a, [$d503] and a jr nz, .asm_167c2 ld bc, FiveBillionPoints ld [$ff8a], a callba AddBCDScore ld a, [$d502] xor $1 set 1, a ld [$d502], a ld a, $14 ld [$d503], a call Func_16859 ld a, $6 ld [$ff8a], a callba Func_10000 ret .asm_167bd ld a, [$d503] and a ret z .asm_167c2 dec a ld [$d503], a ret nz ld a, [$d502] res 1, a ld [$d502], a call Func_16859 ld a, [$d502] and $1 ld c, a ld a, [wStageCollisionState] and $fe or c ld [wStageCollisionState], a ld [$ff8a], a callba LoadStageCollisionAttributes call Func_159f4 ld de, $0007 call PlaySoundEffect ld a, [wStageCollisionState] bit 0, a jp nz, Func_15450 jp Func_15499 Func_167ff: ; 0x167ff ld a, [$d500] and a jr z, .asm_16839 xor a ld [$d500], a ld a, [$d503] and a jr nz, .asm_1683e ld bc, FiveBillionPoints ld [$ff8a], a callba AddBCDScore ld a, [$d502] xor $1 ld [$d502], a ld a, $14 ld [$d503], a call Func_16878 ld a, $6 ld [$ff8a], a callba Func_10000 ret .asm_16839 ld a, [$d503] and a ret z .asm_1683e dec a ld [$d503], a ret nz ld a, [$d502] and $1 ld c, a ld a, [wStageCollisionState] and $fe or c ld [wStageCollisionState], a ld de, $0007 call PlaySoundEffect ret Func_16859: ; 0x16859 ld a, [$d502] sla a ld c, a ld b, $0 ld hl, Data_16899 ld a, [hGameBoyColorFlag] and a jr z, .asm_1686c ld hl, Data_16910 .asm_1686c add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, $5 call Func_10aa ret Func_16878: ; 0x16878 ld a, [$d502] and $1 sla a ld c, a ld b, $0 ld hl, Data_1695a ld a, [hGameBoyColorFlag] and a jr z, .asm_1688d ld hl, Data_16980 .asm_1688d add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, $5 call Func_10aa ret Data_16899: dr $16899, $16910 Data_16910: dr $16910, $1695a Data_1695a: dr $1695a, $16980 Data_16980: dr $16980, $169a6 Func_169a6: ; 0x169a6 ld a, [$ffb3] and $1f ret nz ld bc, $0000 .asm_169ae push bc ld hl, wIndicatorStates add hl, bc bit 7, [hl] jr z, .asm_169c5 ld a, [hl] res 7, a ld hl, $ffb3 bit 5, [hl] jr z, .asm_169c2 inc a .asm_169c2 call Func_169cd .asm_169c5 pop bc inc c ld a, c cp $5 jr nz, .asm_169ae ret Func_169cd: ; 0x169cd push af sla c ld hl, Data_169ed ld a, [hGameBoyColorFlag] and a jr z, .asm_169db ld hl, Data_16bef .asm_169db add hl, bc ld a, [hli] ld h, [hl] ld l, a pop af sla a ld c, a add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $5 call Func_10aa ret Data_169ed: dr $169ed, $16bef Data_16bef: dr $16bef, $16d9d Func_16d9d: ; 016d9d ld a, [$d60a] and a jp z, Func_16e51 xor a ld [$d60a], a ld de, $000d call PlaySoundEffect ld a, [$d60b] sub $21 jr nz, .asm_16ddc ld a, $9 ld [$ff8a], a callba Func_10000 ld a, [$d610] cp $3 jr nz, .asm_16e35 ld a, $1 ld [$d610], a ld a, $3 ld [$d611], a ld a, [$d60c] set 7, a ld [$d60c], a jr .asm_16e35 .asm_16ddc ld a, $a ld [$ff8a], a callba Func_10000 ld a, [$d611] cp $3 jr nz, .asm_16e35 ld a, $1 ld [$d610], a ld a, $1 ld [$d611], a ld a, $80 ld [$d612], a ld a, [$d60d] set 7, a ld [$d60d], a ld a, [$d482] inc a cp $64 jr c, .asm_16e10 ld a, $63 .asm_16e10 ld [$d482], a jr nc, .asm_16e24 ld c, $19 call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch .asm_16e24 ld a, [$d60c] ld [$d614], a ld a, [$d60d] ld [$d615], a ld a, $1 ld [$d613], a .asm_16e35 ld bc, OneHundredBillionPoints ld [$ff8a], a callba AddBCDScore ld a, [$d60c] call Func_16f28 ld a, [$d60d] add $14 call Func_16f28 ret Func_16e51: ; 0x16e51 call Func_16ef5 ld a, [$d612] and a jr z, .asm_16e8f dec a ld [$d612], a cp $70 jr nz, .asm_16e6e ld a, $2 ld [$d610], a ld a, $2 ld [$d611], a jr .asm_16e8f .asm_16e6e and a jr nz, .asm_16e8f ld a, $3 ld [$d610], a xor a ld [$d611], a ld a, [$d482] call Func_16f95 ld a, [$d60c] call Func_16f28 ld a, [$d60d] add $14 call Func_16f28 ret .asm_16e8f ld a, [$d610] cp $2 jr c, .asm_16ec1 cp $3 ld a, [$ffb3] jr c, .asm_16ea0 srl a srl a .asm_16ea0 ld b, a and $3 jr nz, .asm_16ec1 bit 3, b jr nz, .asm_16eb6 ld a, [$d60c] res 7, a ld [$d60c], a call Func_16f28 jr .asm_16ec1 .asm_16eb6 ld a, [$d60c] set 7, a ld [$d60c], a call Func_16f28 .asm_16ec1 ld a, [$d611] cp $2 ret c cp $3 ld a, [$ffb3] jr c, .asm_16ed1 srl a srl a .asm_16ed1 ld b, a and $3 ret nz bit 3, b jr nz, .asm_16ee7 ld a, [$d60d] res 7, a ld [$d60d], a add $14 call Func_16f28 ret .asm_16ee7 ld a, [$d60d] set 7, a ld [$d60d], a add $14 call Func_16f28 ret Func_16ef5: ; 0x16ef5 ld a, [$d5ca] and a ret nz ld a, [$d613] and a ret z xor a ld [$d613], a call Func_30e8 call Func_30db ld hl, $d5cc ld de, BonusMultiplierText call LoadTextHeader ld hl, wcBottomMessageText + $12 ld a, [$d614] and $7f jr z, .asm_16f1f add $30 ld [hli], a .asm_16f1f ld a, [$d615] res 7, a add $30 ld [hl], a ret Func_16f28: ; 0x16f28 push af ld a, [hGameBoyColorFlag] and a jr nz, .asm_16f33 pop af call Func_16f38 ret .asm_16f33 pop af call Func_16f7b ret Func_16f38: ; 0x16f38 push af res 7, a ld hl, $d60e cp $14 jr c, .asm_16f47 ld hl, $d60f sub $a .asm_16f47 cp [hl] jr z, .asm_16f5c ld [hl], a ld c, a ld b, $0 sla c ld hl, Data_16fc8 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $5 call Func_10aa .asm_16f5c pop af ld bc, $0000 bit 7, a jr z, .asm_16f68 res 7, a set 1, c .asm_16f68 cp $14 jr c, .asm_16f6e set 2, c .asm_16f6e ld hl, Data_171e4 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $5 call Func_10aa ret Func_16f7b: ; 0x16f7b bit 7, a jr z, .asm_16f83 res 7, a add $a .asm_16f83 ld c, a ld b, $0 sla c ld hl, Data_17228 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $5 call Func_10aa ret Func_16f95: ; 0x16f95 ld a, [$d482] inc a cp $64 jr c, .asm_16f9f ld a, $63 .asm_16f9f ld b, a xor a ld hl, Data_16fc1 ld c, $7 .asm_16fa6 bit 0, b jr z, .asm_16fac add [hl] daa .asm_16fac srl b inc hl dec c jr nz, .asm_16fa6 push af swap a and $f ld [$d60c], a pop af and $f ld [$d60d], a ret Data_16fc1: dr $16fc1, $16fc8 Data_16fc8: dr $16fc8, $171e4 Data_171e4: dr $171e4, $17228 Data_17228: dr $17228, $174d0 Func_174d0: ; 0x174d0 call Func_174ea ret nc ; fall through Func_174d4: ; 0x174d4 sla a ld c, a ld b, $0 ld hl, Data_17528 add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, $5 ld de, LoadTileLists call Func_10c5 ret Func_174ea: ; 0x174ea ld a, [$d624] ld hl, $d625 cp [hl] ret z ld a, [$d626] dec a ld [$d626], a jr nz, .asm_17514 ld a, [$d625] ld [$d624], a cp $3 jr c, .asm_1750f ld a, $1 ld [$d609], a ld a, $3 ld [$d607], a .asm_1750f ld a, [$d624] scf ret .asm_17514 and $7 ret nz ld a, [$d626] bit 3, a jr nz, .asm_17523 ld a, [$d624] scf ret .asm_17523 ld a, [$d625] scf ret Data_17528: dr $17528, $1755c Func_1755c: ; 0x1755c ld bc, $7f00 call Func_175a4 call Func_17cc4 call Func_17d34 call Func_17d59 call Func_17d7a call Func_17d92 call Func_17de1 call Func_17e81 call Func_17efb call Func_17f64 ret Func_1757e: ; 0x1757e ld bc, $7f00 call Func_175a4 call Func_17c67 call Func_17c96 call Func_17e08 ld [$ff8a], a callba Func_e4a1 call Func_17e81 call Func_17f0f call Func_17f75 call Func_17fca ret Func_175a4: ; 0x175a4 ld a, [$d57d] and a ret z ld a, [hGameBoyColorFlag] and a jr nz, DrawTimer ld a, [$d580] and a ret z ld a, [$d581] and a jr z, .asm_175be dec a ld [$d581], a ret .asm_175be call Func_1762f ld hl, $d582 ld a, [wTimerMinutes] and $f call Func_1764f ld a, [wTimerSeconds] swap a and $f call Func_1764f ld a, [wTimerSeconds] and $f call Func_1764f ld d, $0 ld hl, Data_17615 add hl, de ld a, [hli] call Func_17627 ld a, [hli] call Func_17627 ld a, [hli] call Func_17627 ld a, [hli] call Func_17627 ret DrawTimer: ; 0x175f5 ; Loads the OAM data for the timer in the top-right corner of the screen. ld a, [wTimerMinutes] and $f call DrawTimerDigit ld a, $a ; colon call DrawTimerDigit ld a, [wTimerSeconds] swap a and $f call DrawTimerDigit ; tens digit of the minutes ld a, [wTimerSeconds] and $f call DrawTimerDigit ; ones digit of the minutes ret Data_17615: dr $17615, $17625 DrawTimerDigit: ; 0x17625 add $b1 ; the timer digits' OAM ids start at $b1 ; fall through Func_17627: ; 0x17627 call LoadOAMData ld a, b add $8 ld b, a ret Func_1762f: ; 0x1762f ld de, $600c ld a, [wCurrentStage] cp $6 ret nc ld de, $0000 bit 0, a ret z ld de, $3004 ld a, [wInSpecialMode] and a ret z ld a, [wSpecialMode] and a ret nz ld de, $3008 ret Func_1764f: ; 0x1764f push bc push de cp [hl] jr z, .asm_1765d push af push hl add d call Func_17665 pop hl pop af ld [hl], a .asm_1765d inc hl pop de ld a, d add $10 ld d, a pop bc ret Func_17665: ; 0x17665 ld c, a ld b, $0 sla c rl b ld hl, Data_17679 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $5 call Func_10aa ret Data_17679: dr $17679, $17c67 Func_17c67: ; 0x17c67 ld a, [$d5f3] and a ret z ld a, $50 ld hl, hBoardXShift sub [hl] ld b, a ld a, $38 ld hl, hBoardYShift sub [hl] ld c, a ld a, [wBallCaptureAnimationFrame] ld e, a ld d, $0 ld hl, Data_17c89 add hl, de ld a, [hl] call LoadOAMData ret Data_17c89: dr $17c89, $17c96 Func_17c96: ; 0x17c96 ld a, [$d5bb] and a ret z ld a, $50 ld hl, hBoardXShift sub [hl] ld b, a ld a, $3e ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d5bd] ld e, a ld d, $0 ld hl, Data_17cb8 add hl, de ld a, [hl] call LoadOAMData ret Data_17cb8: dr $17cb8, $17cc4 Func_17cc4: ; 0x17cc4 ld de, $d4cd ld hl, Data_17d15 call Func_17cdc ld de, $d4d0 ld hl, Data_17d1b call Func_17cdc ld de, $d4d3 ld hl, Data_17d21 ; fall through Func_17cdc: ; 0x17cdc push hl ld hl, Data_17d27 call UpdateAnimation ld h, d ld l, e ld a, [hl] and a jr nz, .asm_17cf6 call GenRandom and $7 add $1e ld [hli], a ld a, $1 ld [hli], a xor a ld [hl], a .asm_17cf6 pop hl inc de ld a, [hBoardXShift] ld b, a ld a, [hli] sub b ld b, a ld a, [hBoardYShift] ld c, a ld a, [hli] sub c ld c, a ld a, [$d4d7] sub [hl] inc hl jr z, .asm_17d0c ld a, [de] .asm_17d0c ld e, a ld d, $0 add hl, de ld a, [hl] call LoadOAMData ret Data_17d15: dr $17d15, $17d1b Data_17d1b: dr $17d1b, $17d21 Data_17d21: dr $17d21, $17d27 Data_17d27: dr $17d27, $17d34 Func_17d34: ; 0x17d34 ld a, $0 ld hl, hBoardXShift sub [hl] ld b, a ld a, $10 ld hl, hBoardYShift sub [hl] ld c, a ld a, [wStageCollisionState] ld e, a ld d, $0 ld hl, Data_17d51 add hl, de ld a, [hl] call LoadOAMData ret Data_17d51: dr $17d51, $17d59 Func_17d59: ; 0x17d59 ld a, $74 ld hl, hBoardXShift sub [hl] ld b, a ld a, $52 ld hl, hBoardYShift sub [hl] ld c, a ld a, [wBellsproutAnimationFrame] ld e, a ld d, $0 ld hl, Data_17d76 add hl, de ld a, [hl] call LoadOAMData ret Data_17d76: dr $17d76, $17d7a Func_17d7a: ; 0x17d7a ld a, [hGameBoyColorFlag] and a ret z ld a, $67 ld hl, hBoardXShift sub [hl] ld b, a ld a, $54 ld hl, hBoardYShift sub [hl] ld c, a ld a, $cc call LoadOAMData ret Func_17d92: ; 0x17d92 ld a, [hGameBoyColorFlag] and a ret z ld hl, Data_17dd0 ld de, $d504 call UpdateAnimation ld a, [$d504] and a jr nz, .asm_17db1 ld a, $13 ld [$d504], a xor a ld [$d505], a ld [$d506], a .asm_17db1 ld a, $2b ld hl, hBoardXShift sub [hl] ld b, a ld a, $69 ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d505] ld e, a ld d, $0 ld hl, Data_17dce add hl, de ld a, [hl] call LoadOAMData ret Data_17dce: dr $17dce, $17dd0 Data_17dd0: dr $17dd0, $17de1 Func_17de1: ; 0x17de1 ld a, $88 ld hl, hBoardXShift sub [hl] ld b, a ld a, $5a ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d50a] srl a srl a ld e, a ld d, $0 ld hl, Data_17e02 add hl, de ld a, [hl] call LoadOAMData ret Data_17e02: dr $17e02, $17e08 Func_17e08: ; 0x17e08 ld a, [hBoardXShift] ld d, a ld a, [hBoardYShift] ld e, a ld a, [$d51d] and a ld a, [$d518] jr z, .asm_17e33 ld a, [$d51c] and a jr nz, .asm_17e29 ld a, [$ffb3] srl a srl a srl a and $1 jr .asm_17e33 .asm_17e29 ld a, [$d4b4] cp $50 ld a, $1 jr nc, .asm_17e33 xor a .asm_17e33 sla a ld c, a ld b, $0 ld hl, Data_17e4b add hl, bc ld a, [hli] sub d ld b, a ld a, [hli] sub e ld c, a ld a, [wPikachuSaverAnimationFrame] add $e call LoadOAMData ret Data_17e4b: dr $17e4b, $17e81 Func_17e81: ; 0x17e81 ld a, [$d548] and a ret z ld hl, wBallSpin ld a, [wBallRotation] add [hl] ld [wBallRotation], a ld a, [wBallXPos + 1] inc a ld hl, hBoardXShift sub [hl] ld b, a ld a, [wBallYPos + 1] inc a sub $10 ld hl, hBoardYShift sub [hl] ld c, a ld a, [wBallRotation] srl a srl a srl a ; divide wBallRotation by 8 because srl a ; there are 8 frames of the ball spinning and $7 add $0 call LoadOAMData ld a, [hGameBoyColorFlag] and a ret nz ld a, [hGameBoyColorFlag] and a ret nz ld a, [$fffb] and a ret nz ld a, [$d4c5] inc a ld hl, hBoardXShift sub [hl] ld b, a ld a, [$d4c6] inc a sub $10 ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d4c7] srl a srl a srl a srl a and $7 add $0 call LoadOAMData ld a, [wBallXPos + 1] ld [$d4c5], a ld a, [wBallYPos + 1] ld [$d4c6], a ld a, [wBallRotation] ld [$d4c7], a ret Func_17efb: ; 0x17efb ld a, [$d551] and a ret nz ld a, [$ffb3] bit 4, a ret z ld de, wIndicatorStates + 5 ld hl, Data_17f3a ld b, $6 jr asm_17f21 Func_17f0f: ; 0x17f0f ld a, [$d551] and a ret nz ld a, [$ffb3] bit 4, a ret z ld de, wIndicatorStates + 11 ld hl, Data_17f4c ld b, $8 asm_17f21: ; 0x17f21 push bc ld a, [hBoardXShift] ld b, a ld a, [hli] sub b ld b, a ld a, [hBoardYShift] ld c, a ld a, [hli] sub c ld c, a ld a, [de] and a ld a, [hli] call nz, LoadOAMData pop bc inc de dec b jr nz, asm_17f21 ret Data_17f3a: dr $17f3a, $17f4c Data_17f4c: dr $17f4c, $17f64 Func_17f64: ; 0x17f64 ld a, [$d551] and a ret z ld de, $d566 ld hl, Data_17fa6 ld b, $c ld c, $39 jr asm_17f84 Func_17f75: ; 0x17f75 ld a, [$d551] and a ret z ld de, $d572 ld hl, Data_17fbe ld b, $6 ld c, $40 asm_17f84: ; 0x17f84 push bc ld a, [de] add c cp c push af ld a, [hBoardXShift] ld b, a ld a, [hli] sub b ld b, a ld a, [hBoardYShift] ld c, a ld a, [hli] sub c ld c, a ld a, [$ffb3] and $e jr nz, .asm_17f9c dec c .asm_17f9c pop af call nz, LoadOAMData pop bc inc de dec b jr nz, asm_17f84 ret Data_17fa6: dr $17fa6, $17fbe Data_17fbe: dr $17fbe, $17fca Func_17fca: ; 0x17fca ld a, [$d604] and a ret z ld a, [$d606] inc a ld [$d606], a ld a, $40 ld hl, hBoardXShift sub [hl] ld b, a ld a, $1 ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d606] srl a srl a srl a and $3 add $4f cp $52 call nz, LoadOAMData ret SECTION "bank6", ROMX, BANK[$6] Func_18000: ; 0x18000 ld hl, wc000 ld bc, $0a00 call ClearData ld a, $1 ld [rVBK], a ld hl, $9c00 ld bc, $0400 call ClearData xor a ld [rVBK], a ld hl, $d4cb ld bc, $032e call ClearData xor a ld hl, $d46f ld [hld], a ld [hld], a ld [hld], a ld [hld], a ld [hld], a ld [hl], a ld [wNumPartyMons], a ld [$d49b], a ld [$d4c9], a ld a, $1 ld [$d49d], a ld a, $3 ld [$d49e], a ld [$ff8a], a callba Func_dbba ret Func_1804a: ; 0x1804a ld a, $0 ld [wBallXPos], a ld a, $b0 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $98 ld [wBallYPos + 1], a ret Func_1805f: ; 0x1805f ret Func_18060: ; 0x18060 ret Func_18061: ; 0x18061 ret Func_18062: ; 0x18062 ld [$ff8a], a callba Func_1448e ret Func_1806d: ; 0x1806d ret Func_1806e: ; 0x1806e ld [$ff8a], a callba Func_1652d ret Func_18079: ; 0x18079 ld [$ff8a], a callba Func_17e81 ret Func_18084: ; 0x18084 ld [$ff8a], a callba Func_e4a1 ld [$ff8a], a callba Func_17e81 ret InitGengarBonusStage: ; 0x18099 ld a, [$d7c1] and a jr z, .asm_180ac xor a ld [$d674], a ld a, $8 ld [$d690], a ld [$d6a1], a ret .asm_180ac ld a, $1 ld [$d7ac], a ld a, [wBallType] ld [wBallTypeBackup], a xor a ld [$d4c8], a ld [wBallType], a ld [$d49a], a ld hl, Data_18121 ; todo ld de, $d659 call Func_18112 call Func_18112 call Func_18112 ld hl, Data_1813c ; todo ld de, $d67e call Func_18112 call Func_18112 ld hl, Data_1814e ; todo ld de, $d698 call Func_18112 xor a ld [$d67b], a ld [$d695], a ld hl, $d6a2 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [$d656], a ld bc, $0130 ; 1 minute 30 seconds ld [$ff8a], a callba StartTimer ld a, $f call SetSongBank ld de, $0005 call PlaySong ret Func_18112: ; 0x18112 ld b, $3 .asm_18114 ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de dec b jr nz, .asm_18114 ret Data_18121: dr $18121, $1813c Data_1813c: dr $1813c, $1814e Data_1814e: dr $1814e, $18157 StartBallGengarBonusStage: ; 0x18157 ld a, $0 ld [wBallXPos], a ld a, $a6 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $56 ld [wBallYPos + 1], a xor a ld [$d7ab], a ld [wStageCollisionState], a ld [$d653], a xor a ld [$d674], a ld a, $8 ld [$d690], a ld [$d6a1], a ld a, [$d4c9] and a ret z xor a ld [$d4c9], a ret Func_1818b: ; 0x1818b ld [$ff8a], a callba Func_142fc call Func_2862 call Func_18d72 ld a, [$d7c1] ld [$ff8a], a callba Func_1404a and a ret z call Func_183db call Func_18d91 ret Func_181b1: ; 0x181b1 call Func_181be call Func_18259 call Func_182e4 call Func_18350 ret Func_181be: ; 0x181be ld a, [$d659] and a ret z ld a, [$d65f] ld b, a ld a, [$d661] add $10 ld c, a ld a, [$d65b] call Func_1820d ld a, $1 jr c, .asm_181fe ld a, [$d668] ld b, a ld a, [$d66a] add $10 ld c, a ld a, [$d664] call Func_1820d ld a, $2 jr c, .asm_181fe ld a, [$d671] ld b, a ld a, [$d673] add $10 ld c, a ld a, [$d66d] call Func_1820d ld a, $3 ret nc .asm_181fe ld [$d4eb], a ld [$d657], a add $4 ld [$d4ea], a ld [$d658], a ret Func_1820d: ; 0x1820d cp $4 jr z, .asm_18257 ld a, [wBallXPos + 1] sub b cp $20 jr nc, .asm_18257 ld b, a ld a, [wBallYPos + 1] sub c cp $20 jr nc, .asm_18257 ld c, a ld e, c ld d, $0 sla e rl d sla e rl d sla e rl d sla e rl d sla e rl d ld l, b ld h, $0 add hl, de ld de, Data_e9100 add hl, de ld a, BANK(Data_e9100) call ReadByteFromBank bit 7, a jr nz, .asm_18257 sla a ld [$d7ea], a ld a, $1 ld [$d7e9], a scf ret .asm_18257 and a ret Func_18259: ; 0x18259 ld a, [$d67e] and a ret z ld a, [$d684] add $fe ld b, a ld a, [$d686] add $c ld c, a ld a, [$d680] call Func_18298 ld a, $1 jr c, .asm_18289 ld a, [$d68d] add $fe ld b, a ld a, [$d68f] add $c ld c, a ld a, [$d689] call Func_18298 ld a, $2 ret nc .asm_18289 ld [$d4eb], a ld [$d67c], a add $7 ld [$d4ea], a ld [$d67d], a ret Func_18298: ; 0x18298 cp $5 jr z, .asm_182e2 ld a, [wBallXPos + 1] sub b cp $20 jr nc, .asm_182e2 ld b, a ld a, [wBallYPos + 1] sub c cp $28 jr nc, .asm_182e2 ld c, a ld e, c ld d, $0 sla e rl d sla e rl d sla e rl d sla e rl d sla e rl d ld l, b ld h, $0 add hl, de ld de, Data_e8c00 add hl, de ld a, BANK(Data_e8c00) call ReadByteFromBank bit 7, a jr nz, .asm_182e2 sla a ld [$d7ea], a ld a, $1 ld [$d7e9], a scf ret .asm_182e2 and a ret Func_182e4: ; 0x182e4 ld a, [$d698] and a ret z ld a, [$d69e] ld b, a ld a, [$d6a0] add $c ld c, a call Func_18308 ld a, $1 ret nc ld [$d4eb], a ld [$d696], a add $9 ld [$d4ea], a ld [$d697], a ret Func_18308: ; 0x18308 ld a, [wBallXPos + 1] sub b cp $30 jr nc, .asm_1834e ld b, a ld a, [wBallYPos + 1] sub c cp $40 jr nc, .asm_1834e ld c, a ld a, c sla a add c ld e, a ld d, $0 sla e rl d sla e rl d sla e rl d sla e rl d ld l, b ld h, $0 add hl, de ld de, Data_e8000 add hl, de ld a, BANK(Data_e8000) call ReadByteFromBank bit 7, a jr nz, .asm_1834e sla a ld [$d7ea], a ld a, $1 ld [$d7e9], a scf ret .asm_1834e and a ret Func_18350: ; 0x18350 ld de, Data_18368 ld hl, Data_1835d ld bc, $d654 and a jp Func_2775 Data_1835d: dr $1835d, $18368 Data_18368: dr $18368, $18377 Func_18377: ; 0x18377 call Func_18464 call Func_1860b call Func_187b1 call Func_18d34 call Func_183b7 ld [$ff8a], a callba Func_107f8 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $1 ld [$d7be], a call Func_2862 ld [$ff8a], a callba Func_86d2 ld a, [$d6a2] cp $5 ret nc ld a, $1 ld [$d6a8], a ret Func_183b7: ; 0x183b7 ld a, [$d653] and a ret nz ld a, [$d4b4] cp $8a ret nc ld a, $1 ld [wStageCollisionState], a ld [$d653], a ld [$ff8a], a callba LoadStageCollisionAttributes call Func_183db call Func_18d91 ret Func_183db: ; 0x183db ld a, [wStageCollisionState] sla a ld c, a ld b, $0 ld hl, Data_183f8 ld a, [hGameBoyColorFlag] and a jr z, .asm_183ee ld hl, Data_1842e .asm_183ee add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, BANK(Data_183f8) call Func_10aa ret Data_183f8: dr $183f8, $1842e Data_1842e: dr $1842e, $18464 Func_18464: ; 0x18464 ld a, [$d659] and a ret z ld a, [$d657] and a jr z, .asm_184d5 xor a ld [$d657], a ld a, [$d7be] and a jr nz, .asm_184d5 ld a, [$d658] sub $5 ld c, a sla a sla a sla a add c ld c, a ld b, $0 ld hl, $d65d add hl, bc ld d, h ld e, l ld a, [de] and a jr nz, .asm_184d5 push de dec de dec de dec de ld hl, Data_185e6 call CopyHLToDE pop de ld a, $1 ld [de], a ld a, [$d67b] inc a ld [$d67b], a ld bc, TenMillionPoints ld [$ff8a], a callba Func_8588 ld a, $33 ld [$d803], a ld a, $8 ld [$d804], a ld hl, $0100 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a ld de, $002c call PlaySoundEffect .asm_184d5 ld bc, $0830 ld de, $d65d ld hl, $d675 call Func_1850c ld bc, $5078 ld de, $d666 ld hl, $d677 call Func_1850c ld bc, $3050 ld de, $d66f ld hl, $d679 call Func_1850c ld de, $d65d call Func_18562 ld de, $d666 call Func_18562 ld de, $d66f call Func_18562 ret Func_1850c: ; 0x1850c ld a, [de] and a ret nz inc de push hl ld a, [hli] push af push bc ld a, [hl] inc a and $1f ld [hl], a ld c, a ld b, $0 ld hl, Data_18542 add hl, bc pop bc pop af and a jr nz, .asm_18534 ld a, [de] add [hl] ld [de], a inc de ld a, [de] adc $0 ld [de], a pop hl cp c ret c ld a, $1 ld [hl], a ret .asm_18534 ld a, [de] sub [hl] ld [de], a inc de ld a, [de] sbc $0 ld [de], a pop hl cp b ret nc xor a ld [hl], a ret Data_18542: dr $18542, $18562 Func_18562: ; 0x18562 ld a, [de] sla a ld c, a ld b, $0 ld hl, Data_185d9 add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de dec de call UpdateAnimation pop de ret nc ld a, [de] dec de and a jr nz, .asm_1858a ld a, [de] cp $4 ret nz ld hl, Data_185dd dec de dec de call CopyHLToDE ret .asm_1858a cp $1 ret nz ld a, [de] cp $12 ret nz ld a, [$d67b] cp $a jr nz, .asm_185b1 ld a, $1 ld [$d67e], a ld [$d687], a xor a ld [$d659], a ld [$d662], a ld [$d66b], a ld de, $0006 call PlaySong ret .asm_185b1 ld c, a ld a, [$d65d] and a jr nz, .asm_185b9 inc c .asm_185b9 ld a, [$d666] and a jr nz, .asm_185c0 inc c .asm_185c0 ld a, [$d66f] and a jr nz, .asm_185c7 inc c .asm_185c7 ld a, c cp $a ret nc ld hl, Data_185dd push de dec de dec de call CopyHLToDE pop de inc de xor a ld [de], a ret Data_185d9: dr $185d9, $185dd Data_185dd: dr $185dd, $185e6 Data_185e6: dr $185e6, $1860b Func_1860b: ; 0x1860b ld a, [$d67e] and a ret z ld a, [$d67c] and a jr z, .asm_1867c xor a ld [$d67c], a ld a, [$d7be] and a jr nz, .asm_1867c ld a, [$d67d] sub $8 ld c, a sla a sla a sla a add c ld c, a ld b, $0 ld hl, $d682 add hl, bc ld d, h ld e, l ld a, [de] and a jr nz, .asm_1867c push de dec de dec de dec de ld hl, Data_1878a call CopyHLToDE pop de ld a, $1 ld [de], a ld a, [$d695] inc a ld [$d695], a ld bc, FiftyMillionPoints ld [$ff8a], a callba Func_8588 ld a, $33 ld [$d803], a ld a, $8 ld [$d804], a ld hl, $0100 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a ld de, $002d call PlaySoundEffect .asm_1867c ld bc, $5078 ld de, $d682 ld hl, $d691 call Func_186a1 ld bc, $1038 ld de, $d68b ld hl, $d693 call Func_186a1 ld de, $d682 call Func_186f7 ld de, $d68b call Func_186f7 ret Func_186a1: ; 0x186a1 ld a, [de] and a ret nz inc de push hl ld a, [hli] push af push bc ld a, [hl] inc a and $1f ld [hl], a ld c, a ld b, $0 ld hl, Data_186d7 add hl, bc pop bc pop af and a jr nz, .asm_186c9 ld a, [de] add [hl] ld [de], a inc de ld a, [de] adc $0 ld [de], a pop hl cp c ret c ld a, $1 ld [hl], a ret .asm_186c9 ld a, [de] sub [hl] ld [de], a inc de ld a, [de] sbc $0 ld [de], a pop hl cp b ret nc xor a ld [hl], a ret Data_186d7: dr $186d7, $186f7 Func_186f7: ; 0x186f7 ld a, [de] sla a ld c, a ld b, $0 ld hl, Data_1877d add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de dec de call UpdateAnimation pop de ret nc ld a, [de] dec de and a jr nz, .asm_1871f ld a, [de] cp $4 ret nz ld hl, Data_18781 dec de dec de call CopyHLToDE ret .asm_1871f cp $1 ret nz ld a, [de] cp $12 jr nz, .asm_18761 ld a, [$d695] cp $a jr nz, .asm_18740 ld a, $1 ld [$d656], a call Func_18d72 call Func_18d91 ld de, $0000 call PlaySong ret .asm_18740 ld c, a ld a, [$d682] and a jr nz, .asm_18748 inc c .asm_18748 ld a, [$d68b] and a jr nz, .asm_1874f inc c .asm_1874f ld a, c cp $a ret nc ld hl, Data_18781 push de dec de dec de call CopyHLToDE pop de inc de xor a ld [de], a ret .asm_18761 cp $13 ret nz ld a, [$d695] cp $a ret nz ld a, $1 ld [$d698], a xor a ld [$d67e], a ld [$d687], a ld de, GENGAR call PlayCry ret Data_1877d: dr $1877d, $18781 Data_18781: dr $18781, $1878a Data_1878a: dr $1878a, $187b1 Func_187b1: ; 0x187b1 ld a, [$d698] and a ret z ld a, [$d696] and a jp z, .asm_1885d xor a ld [$d696], a ld a, [$d7be] and a jp nz, .asm_1885d ld a, [$d697] sub $a ld c, a sla a sla a sla a add c ld c, a ld b, $0 ld hl, $d69c add hl, bc ld d, h ld e, l ld a, [de] and a jp nz, .asm_1885d push de dec de dec de dec de ld a, [$d6a2] inc a ld [$d6a2], a cp $5 jr nc, .asm_18804 ld hl, Data_18b2b call CopyHLToDE pop de ld a, $2 ld [de], a ld de, $0037 call PlaySoundEffect jr .asm_18826 .asm_18804 ld hl, Data_18b32 call CopyHLToDE pop de ld a, $3 ld [de], a ld a, $1 ld [$d7be], a call Func_2862 ld [$ff8a], a callba Func_86d2 ld de, $0000 call PlaySong .asm_18826 ld bc, FiftyThousandPoints ld [$ff8a], a callba Func_8588 ld a, $33 ld [$d803], a ld a, $8 ld [$d804], a ld hl, $0200 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a ld a, [$d69f] add $0 ld [$d69f], a ld a, [$d6a0] adc $ff ld [$d6a0], a .asm_1885d ld a, [$d69c] cp $2 jr nc, .asm_18869 call Func_18876 jr .asm_1886c .asm_18869 call Func_188e1 .asm_1886c ld de, $d69c call Func_189af call Func_1894c ret Func_18876: ; 0x18876 ld a, [$d6a3] cp $1 jr z, .asm_1889b cp $2 jr z, .asm_1889b ld a, [$d69a] cp $1 jr z, .asm_1888c cp $2 jr nz, .asm_1889b .asm_1888c ld a, $1 ld [$d6a4], a ld a, $11 ld [$d803], a ld a, $8 ld [$d804], a .asm_1889b ld a, [$d69a] ld hl, $d6a3 cp [hl] ret z ld a, [$d69c] and a jr nz, .asm_188da ld a, [$d6a0] add $80 cp $a0 jr nc, .asm_188da ld a, [$d69a] and a jr z, .asm_188ca ld a, [$d69f] add $0 ld [$d69f], a ld a, [$d6a0] adc $3 ld [$d6a0], a jr .asm_188da .asm_188ca ld a, [$d69f] add $0 ld [$d69f], a ld a, [$d6a0] adc $1 ld [$d6a0], a .asm_188da ld a, [$d69a] ld [$d6a3], a ret Func_188e1: ; 0x188e1 ld a, [$d6a3] cp $1 jr z, .asm_18901 cp $2 jr z, .asm_18901 ld a, [$d69a] cp $1 jr z, .asm_188f7 cp $2 jr nz, .asm_18901 .asm_188f7 ld a, $1 ld [$d803], a ld a, $8 ld [$d804], a .asm_18901 ld a, [$d69a] cp $6 ret z ld a, [$d69a] ld hl, $d6a3 cp [hl] ret z ld a, [$d69c] cp $3 jr nz, .asm_1891d ld a, [$d69b] cp $9 jr c, .asm_18945 .asm_1891d ld a, [$d69a] and a jr z, .asm_18935 ld a, [$d69f] add $0 ld [$d69f], a ld a, [$d6a0] adc $fd ld [$d6a0], a jr .asm_18945 .asm_18935 ld a, [$d69f] add $0 ld [$d69f], a ld a, [$d6a0] adc $ff ld [$d6a0], a .asm_18945 ld a, [$d69a] ld [$d6a3], a ret Func_1894c: ; 0x1894c ld a, [$d6a6] and a jr nz, .asm_1898f ld a, [$d6a4] and a jr z, .asm_1898f ld a, [$d6a5] cp $3 jr z, .asm_18980 inc a ld [$d6a5], a ld a, [$d548] ld hl, $d549 and [hl] jr z, .asm_18973 ld a, [$d4b6] inc a ld [$d4b6], a .asm_18973 ld a, [$d7a0] dec a ld [$d7a0], a ld a, $1 ld [wUpperTiltPushing], a ret .asm_18980 ld de, $002b call PlaySoundEffect ld a, $1 ld [$d6a6], a xor a ld [$d6a4], a .asm_1898f xor a ld [wUpperTiltPushing], a ld a, [$d6a5] and a jr z, .asm_189a5 dec a ld [$d6a5], a ld a, [$d7a0] inc a ld [$d7a0], a ret .asm_189a5 ld a, [$d6a4] and a ret nz xor a ld [$d6a6], a ret Func_189af: ; 0x189af ld a, [de] sla a ld c, a ld b, $0 ld hl, Data_18a57 add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de dec de call UpdateAnimation pop de ret nc ld a, [de] dec de and a jr nz, .asm_189d7 ld a, [de] cp $4 ret nz ld hl, Data_18a61 dec de dec de call CopyHLToDE ret .asm_189d7 cp $1 jr nz, .asm_189ed ld a, [de] cp $60 ret nz ld hl, Data_18a61 push de dec de dec de call CopyHLToDE pop de inc de xor a ld [de], a ret .asm_189ed cp $2 jr nz, .asm_18a04 ld a, [de] cp $3 ret nz ld hl, Data_18a6a push de dec de dec de call CopyHLToDE pop de inc de ld a, $1 ld [de], a ret .asm_18a04 cp $3 jr nz, .asm_18a3c ld a, [de] cp $1 jr nz, .asm_18a14 ld de, $002e call PlaySoundEffect ret .asm_18a14 cp $fe ret nz ld a, $1 ld [$d6a8], a ld a, $1 ld [$d498], a ld a, $1 ld [$d49a], a call Func_30e8 call Func_30db ld hl, $d5dc ld de, Data_2f7b call LoadTextHeader ld de, $4b2a call PlaySoundEffect ret .asm_18a3c cp $4 ret nz ld a, [de] cp $2 ret nz ld hl, Data_18a61 push de dec de dec de call CopyHLToDE pop de inc de xor a ld [de], a ld de, $0007 call PlaySong ret Data_18a57: dr $18a57, $18a61 Data_18a61: dr $18a61, $18a6a Data_18a6a: dr $18a6a, $18b2b Data_18b2b: dr $18b2b, $18b32 Data_18b32: dr $18b32, $18d34 Func_18d34: ; 0x18d34 ld a, [$d654] and a jr z, .asm_18d71 xor a ld [$d654], a ld a, [$d7be] and a jr nz, .asm_18d71 ld bc, OneHundredMillionPoints ld [$ff8a], a callba Func_8588 ld a, $ff ld [$d803], a ld a, $3 ld [$d804], a ld hl, $0100 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a ld de, $002f call Func_4d8 .asm_18d71 ret Func_18d72: ; 0x18d72 ld a, [$d656] sla a ld c, a ld b, $0 ld hl, Data_18ddb ld a, [hGameBoyColorFlag] and a jr z, .asm_18d85 ld hl, Data_18ed1 .asm_18d85 add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, $6 call Func_10aa ret Func_18d91: ; 0x18d91 ld a, [$d656] and a ld hl, Data_18dc9 jr z, .asm_18d9d ld hl, Data_18dd2 .asm_18d9d ld de, $c7c7 call Func_18db2 ld de, $c7ae call Func_18db2 ld de, $c823 call Func_18db2 ld de, $c84d ; fall through Func_18db2: ; 0x18db2 push hl ld b, $3 .asm_18db5 ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a ld a, e add $1e ld e, a jr nc, .asm_18dc4 inc d .asm_18dc4 dec b jr nz, .asm_18db5 pop hl ret Data_18dc9: dr $18dc9, $18dd2 Data_18dd2: dr $18dd2, $18ddb Data_18ddb: dr $18ddb, $18ed1 Data_18ed1: dr $18ed1, $18faf Func_18faf: ; 0x18faf ld bc, $7f00 ld [$ff8a], a callba Func_175a4 call Func_19020 call Func_190b9 call Func_19185 ld [$ff8a], a callba Func_e4a1 ld [$ff8a], a callba Func_17e81 ret Func_18fda: ld a, [hNewlyPressedButtons] bit 6, a ret z ld a, [$d659] and a jr z, .asm_18ff8 ld a, $1 ld [$d67e], a ld [$d687], a xor a ld [$d659], a ld [$d662], a ld [$d66b], a ret .asm_18ff8 ld a, [$d67e] and a jr z, .asm_1900b ld a, $1 ld [$d698], a xor a ld [$d67e], a ld [$d687], a ret .asm_1900b ld a, [$d698] and a ret z ld a, $1 ld [$d659], a ld [$d662], a ld [$d66b], a xor a ld [$d698], a ret Func_19020: ; 0x19020 ld de, $d659 call Func_19033 ld de, $d662 call Func_19033 ld de, $d66b call Func_19033 ret Func_19033: ; 0x19033 ld a, [de] and a ret z .asm_19036 call Func_19070 jr nc, .asm_19042 ld a, [rLCDC] bit 7, a jr z, .asm_19036 ret .asm_19042 inc de inc de inc de inc de inc de inc de ld a, [de] ld hl, hBoardXShift sub [hl] ld b, a inc de inc de ld a, [de] ld hl, hBoardYShift sub [hl] ld c, a dec de dec de dec de dec de dec de dec de ld a, [de] ld e, a ld d, $0 ld hl, Data_1906b add hl, de ld a, [hl] cp $ff call nz, LoadOAMData2 ret Data_1906b: dr $1906b, $19070 Func_19070: ; 0x19070 ld a, [$d674] and a ret z push de dec a ld [$d674], a sla a sla a ld c, a ld b, $0 ld hl, Data_190a9 add hl, bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld h, [hl] ld l, a ld a, $22 ld bc, $0060 call Func_735 ld a, $8 ld [$d690], a ld [$d6a1], a xor a ld [$d67e], a ld [$d687], a ld [$d698], a pop de scf ret Data_190a9: dr $190a9, $190b9 Func_190b9: ; 0x190b9 ld de, $d67e call Func_190c6 ld de, $d687 call Func_190c6 ret Func_190c6: ; 0x190c6 ld a, [de] and a ret z .asm_190c9 call Func_19104 jr nc, .asm_190d5 ld a, [rLCDC] bit 7, a jr z, .asm_190c9 ret .asm_190d5 inc de inc de inc de inc de inc de inc de ld a, [de] ld hl, hBoardXShift sub [hl] ld b, a inc de inc de ld a, [de] ld hl, hBoardYShift sub [hl] ld c, a dec de dec de dec de dec de dec de dec de ld a, [de] ld e, a ld d, $0 ld hl, Data_190fe add hl, de ld a, [hl] cp $ff call nz, LoadOAMData2 ret Data_190fe: dr $190fe, $19104 Func_19104: ; 0x19104 ld a, [$d690] and a ret z push de dec a ld [$d690], a sla a sla a sla a ld c, a ld b, $0 ld hl, Data_19145 add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld h, [hl] ld l, a ld a, $21 call Func_735 ld a, $4 ld [$d674], a ld a, $8 ld [$d6a1], a xor a ld [$d659], a ld [$d662], a ld [$d66b], a ld [$d698], a pop de scf ret Data_19145: dr $19145, $19185 Func_19185: ; 0x19185 ld de, $d698 call Func_1918c ret Func_1918c: ; 0x1918c ld a, [de] and a ret z .asm_1918f call Func_191cb jr nc, .asm_1919b ld a, [rLCDC] bit 7, a jr z, .asm_1918f ret .asm_1919b inc de inc de inc de inc de inc de inc de ld a, [de] ld hl, hBoardXShift sub [hl] ld b, a inc de inc de ld a, [de] ld hl, hBoardYShift sub [hl] ld c, a dec de dec de dec de dec de dec de dec de ld a, [de] ld e, a ld d, $0 ld hl, Data_191c4 add hl, de ld a, [hl] cp $ff call nz, LoadOAMData2 ret Data_191c4: dr $191c4, $191cb Func_191cb: ; 0x191cb ld a, [$d6a1] and a ret z push de dec a ld [$d6a1], a sla a sla a sla a ld c, a ld b, $0 ld hl, Data_1920f add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld h, [hl] ld l, a ld a, $26 call Func_735 ld a, $4 ld [$d674], a ld a, $8 ld [$d690], a xor a ld [$d659], a ld [$d662], a ld [$d66b], a ld [$d67e], a ld [$d687], a pop de scf ret Data_1920f: dr $1920f, $1924f InitMewtwoBonusStage: ; 0x1924f ld a, [$d7c1] and a ret nz xor a ld [wStageCollisionState], a ld a, $1 ld [$d7ac], a ld a, [wBallType] ld [wBallTypeBackup], a xor a ld [$d4c8], a ld [wBallType], a ld [$d49a], a ld hl, Data_192ab ld de, $d6b6 ld b, $c .asm_19275 ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de dec b jr nz, .asm_19275 ld hl, Data_192db ld de, $d6ac ld b, $8 .asm_1928c ld a, [hli] ld [de], a inc de dec b jr nz, .asm_1928c ld bc, $0200 ; 2 minutes 0 seconds ld [$ff8a], a callba StartTimer ld a, $12 call SetSongBank ld de, $0001 call PlaySong ret Data_192ab: dr $192ab, $192db Data_192db: dr $192db, $192e3 StartBallMewtwoBonusStage: ; 0x192e3 ld a, $0 ld [wBallXPos], a ld a, $a6 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $56 ld [wBallYPos + 1], a ld a, $80 ld [wBallXVelocity], a xor a ld [$d7ab], a ld [wStageCollisionState], a ld [$d6a9], a ld a, [$d4c9] and a ret z xor a ld [$d4c9], a ret Func_19310: ; 0x19310 ld [$ff8a], a callba Func_142fc call Func_2862 ld [$ff8a], a callba Func_1404a ld a, [$d7c1] and a ret z call Func_194ac ret Func_19330: ; 0x19330 call Func_19414 call Func_19337 ret Func_19337: ; 0x19337 ld hl, $d6bb ld bc, $0601 .asm_1933d push bc push hl ld a, [hli] add $f8 ld b, a ld a, [hld] add $8 ld c, a dec hl dec hl dec hl ld a, [hl] dec hl dec hl bit 0, [hl] call nz, Func_1936f pop hl pop bc ld a, c jr c, .asm_19360 ld de, $0008 add hl, de inc c dec b jr nz, .asm_1933d ret .asm_19360 ld [$d4eb], a ld [$d6b4], a add $0 ld [$d4ea], a ld [$d6b5], a ret Func_1936f: ; 0x1936f cp $b jp z, Func_19412 ld a, [wBallXPos + 1] sub b cp $20 jp nc, Func_19412 ld b, a ld a, [wBallYPos + 1] sub c cp $20 jp nc, Func_19412 ld c, a ld e, a ld d, $0 sla e rl d sla e rl d sla e rl d sla e rl d sla e rl d ld l, b ld h, $0 add hl, de sla l rl h sla l rl h ld de, Data_e4000 add hl, de ld de, wBallXVelocity ld a, BANK(Data_e4000) call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, BANK(Data_e4000) call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl push bc ld a, BANK(Data_e4000) call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, BANK(Data_e4000) call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl bit 7, b jr z, .asm_193ea ld a, c cpl ld c, a ld a, b cpl ld b, a inc bc .asm_193ea pop hl bit 7, h jr z, .asm_193f6 ld a, l cpl ld l, a ld a, h cpl ld h, a inc hl .asm_193f6 add hl, bc sla l rl h ld a, h cp $2 jr c, .asm_19410 ld a, [$d804] and a jr nz, .asm_19410 ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a .asm_19410 scf ret Func_19412: ; 0x19312 and a ret Func_19414: ; 0x19414 ld a, [$d4ea] inc a jr nz, .asm_1944f ld a, [$d6aa] bit 7, a jr nz, .asm_1944f ld a, [$d7e9] and a ret z ld a, [$d7f5] sub $10 ret c cp $c ret nc ld a, $1 ld [$d4eb], a add $6 ld [$d4ea], a ld b, a ld hl, $d6aa ld [hl], $0 ld a, [$d4ec] cp b jr z, .asm_1944f ld a, [$d4eb] ld [hli], a ld a, [$d4ea] ld [hl], a scf ret .asm_1944f and a ret Func_19451: ; 0x19451 call Func_19531 call Func_19701 call Func_1948b ld [$ff8a], a callba Func_107f8 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $1 ld [$d7be], a call Func_2862 ld [$ff8a], a callba Func_86d2 ld a, [$d6b1] cp $8 ret nc ld a, $1 ld [$d6b3], a ret Func_1948b: ; 0x1948b ld a, [$d6a9] and a ret nz ld a, [$d4b4] cp $8a ret nc ld a, $1 ld [wStageCollisionState], a ld [$d6a9], a ld [$ff8a], a callba LoadStageCollisionAttributes call Func_194ac ret Func_194ac: ; 0x194ac ld a, [wStageCollisionState] sla a ld c, a ld b, $0 ld hl, Data_194c9 ld a, [hGameBoyColorFlag] and a jr z, .asm_194bf ld hl, Data_194fd .asm_194bf add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $6 call Func_10aa ret Data_194c9: dr $194c9, $194fd Data_194fd: dr $194fd, $19531 Func_19531: ; 0x19531 ld a, [$d6aa] and a jr z, .asm_195a2 xor a ld [$d6aa], a ld a, [$d7be] and a jr nz, .asm_195a2 ld a, [$d6af] cp $2 jr nc, .asm_195a2 ld bc, FiftyThousandPoints ld [$ff8a], a callba Func_8588 ld a, [$d6b0] inc a cp $3 jr nz, .asm_19565 ld a, [$d6b1] inc a ld [$d6b1], a xor a .asm_19565 ld [$d6b0], a call Func_1988e ld a, [$d6b1] cp $8 jr z, .asm_19582 ld a, $2 ld de, $d6ae call Func_19679 ld de, $0039 call PlaySoundEffect jr .asm_195a2 .asm_19582 ld a, $3 ld de, $d6ae call Func_19679 ld a, $1 ld [$d7be], a call Func_2862 ld [$ff8a], a callba Func_86d2 ld de, $0000 call PlaySong .asm_195a2 call Func_195ac ld de, $d6af call Func_195f5 ret Func_195ac: ; 0x195ac ld a, [$d6af] and a ret nz ld hl, $d6bd ld de, $0008 ld b, $6 .asm_195b9 ld a, [hl] cp $2b jr nz, .asm_195ce dec hl dec hl dec hl ld a, [hl] cp $2 ret nz ld a, $1 ld de, $d6ae call Func_19679 ret .asm_195ce add hl, de dec b jr nz, .asm_195b9 ret Func_195d3: ; 0x195d3 ld hl, $d6bd ld de, $0008 ld b, $6 .asm_195db ld a, [hl] cp $18 jr nz, .asm_195f0 dec hl dec hl dec hl ld a, [hl] cp $2 ret nz ld d, h ld e, l dec de ld a, $1 call Func_19876 ret .asm_195f0 add hl, de dec b jr nz, .asm_195db ret Func_195f5: ; 0x195f5 ld a, [de] sla a ld c, a ld b, $0 ld hl, Data_19691 add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de dec de call UpdateAnimation pop de ret nc ld a, [de] rst JumpTable ; calls JumpToFuncInTable CallTable_1960d: ; 0x1960d dw Func_19615 dw Func_1961e dw Func_1962f dw Func_19638 Func_19615: ; 0x19615 dec de ld a, [de] cp $4 ret nz xor a jp Func_19679 Func_1961e: ; 0x1961e dec de ld a, [de] cp $c jr nz, .asm_19628 call Func_195d3 ret .asm_19628 cp $d ret nz xor a jp Func_19679 Func_1962f: ; 0x1962f dec de ld a, [de] cp $1 ret nz xor a jp Func_19679 Func_19638: ; 0x19638 dec de ld a, [de] cp $1 jr nz, .asm_19645 ld de, $0040 call PlaySoundEffect ret .asm_19645 cp $20 ret nz ld a, $1 ld [$d6b3], a ld a, [$d499] ld [$d498], a ld a, [wNumMewtwoBonusCompletions] cp $2 ; only counts up to 2. Gets reset to 0 when Mew is encountered in Catch 'Em Mode. jr z, .asm_1965e inc a ld [wNumMewtwoBonusCompletions], a .asm_1965e ld a, $1 ld [$d49a], a call Func_30e8 call Func_30db ld hl, $d5dc .asm_1966b ld de, Data_2f97 call LoadTextHeader ld de, $4b2a call PlaySoundEffect ret Func_19679: ; 0x19679 push af sla a ld c, a ld b, $0 ld hl, Data_19691 add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de call CopyHLToDE pop de inc de pop af ld [de], a ret Data_19691: dr $19691, $19701 Func_19701: ; 0x19701 ld a, [$d6b4] and a jr z, .asm_19742 xor a ld [$d6b4], a ld a, [$d7be] and a jr nz, .asm_19742 ld a, [$d6b5] sub $1 sla a sla a sla a ld c, a ld b, $0 ld hl, $d6ba add hl, bc ld d, h ld e, l ld a, [de] and a jr nz, .asm_19742 dec de ld a, $2 call Func_19876 ld bc, TenMillionPoints ld [$ff8a], a callba Func_8588 ld de, $0038 call PlaySoundEffect .asm_19742 ld de, $d6bd call Func_1978b ld de, $d6c5 call Func_1978b ld de, $d6cd call Func_1978b ld de, $d6d5 call Func_1978b ld de, $d6dd call Func_1978b ld de, $d6e5 call Func_1978b ld de, $d6b6 call Func_19833 ld de, $d6be call Func_19833 ld de, $d6c6 call Func_19833 ld de, $d6ce call Func_19833 ld de, $d6d6 call Func_19833 ld de, $d6de call Func_19833 ret Func_1978b: ; 0x1978b ld a, [de] ld c, a ld b, $0 sla c inc a cp $48 jr c, .asm_19797 xor a .asm_19797 ld [de], a ld hl, Data_197a3 + 1 add hl, bc dec de ld a, [hld] ld [de], a dec de ld a, [hl] ld [de], a ret Data_197a3: dr $197a3, $19833 Func_19833: ; 0x19833 ld a, [de] and a ret z inc de inc de inc de inc de ld a, [de] sla a ld c, a ld b, $0 ld hl, Data_19916 add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de dec de call UpdateAnimation pop de ret nc ld a, [de] rst JumpTable ; calls JumpToFuncInTable CallTable_19852: ; 0x19852 dw Func_1985a dw Func_19863 dw Func_1986c dw Func_1986d Func_1985a: ; 0x1985a dec de ld a, [de] cp $6 ret nz xor a jp Func_19876 Func_19863: ; 0x19863 dec de ld a, [de] cp $7 ret nz xor a jp Func_19876 Func_1986c: ; 0x1986c ret Func_1986d: ; 0x1986d dec de ld a, [de] cp $1 ret nz xor a jp Func_19876 Func_19876: ; 0x19876 push af sla a ld c, a ld b, $0 ld hl, Data_19916 add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de call CopyHLToDE pop de inc de pop af ld [de], a ret Func_1988e: ; 0x1988e ld a, [$d6b1] sla a sla a sla a ld c, a ld b, $0 ld hl, Data_198ce add hl, bc ld de, $d6bd ld b, $6 .asm_198a3 ld a, [hli] push bc push de push hl bit 7, a jr nz, .asm_198b7 ld [de], a dec de dec de dec de dec de ld a, $3 call Func_19876 jr .asm_198c0 .asm_198b7 dec de dec de dec de dec de dec de dec de dec de xor a ld [de], a .asm_198c0 pop hl pop de pop bc ld a, e add $8 ld e, a jr nc, .asm_198ca inc d .asm_198ca dec b jr nz, .asm_198a3 ret Data_198ce: dr $198ce, $19916 Data_19916: dr $19916, $1994e Func_1994e: ; 0x1994e ld bc, $7f65 ld [$ff8a], a callba Func_175a4 call Func_1999d ld [$ff8a], a callba Func_e4a1 ld [$ff8a], a callba Func_17e81 call Func_19976 ret Func_19976: ; 0x19976 ld a, $40 ld hl, hBoardXShift sub [hl] ld b, a ld a, $0 ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d6ad] ld e, a ld d, $0 ld hl, Data_19995 add hl, de ld a, [hl] cp $ff call nz, LoadOAMData2 ret Data_19995: dr $19995, $1999d Func_1999d: ; 0x1999d ld de, $d6b6 call Func_199be ld de, $d6be call Func_199be ld de, $d6c6 call Func_199be ld de, $d6ce call Func_199be ld de, $d6d6 call Func_199be ld de, $d6de ; fall through Func_199be: ; 0x199be ld a, [de] and a ret z inc de inc de inc de inc de inc de ld a, [de] ld hl, hBoardXShift sub [hl] ld b, a inc de ld a, [de] ld hl, hBoardYShift sub [hl] ld c, a dec de dec de dec de dec de ld a, [de] ld e, a ld d, $0 ld hl, Data_199e6 add hl, de ld a, [hl] cp $ff call nz, LoadOAMData2 ret Data_199e6: dr $199e6, $199f2 InitDiglettBonusStage: ; 0x199f2 ld a, [$d7c1] and a ret nz xor a ld [wStageCollisionState], a ld a, $1 ld [$d7ac], a ld a, [wBallType] ld [wBallTypeBackup], a xor a ld [$d4c8], a ld [wBallType], a ld [$d49a], a ; initialize all digletts to hiding ld a, $1 ; hiding diglett state ld hl, wDiglettStates ld b, NUM_DIGLETTS .initDiglettsLoop ld [hli], a dec b jr nz, .initDiglettsLoop ld a, $1 ld [wDugtrioAnimationFrameCounter], a ld a, $c ld [wDugtrioAnimationFrame], a xor a ld [wDugtrioAnimationFrameIndex], a ld [wDugrioState], a ld a, $11 call SetSongBank ld de, $0001 call PlaySong ret StartBallDiglettBonusStage: ; 0x19a38 ld a, $0 ld [wBallXPos], a ld a, $a6 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $56 ld [wBallYPos + 1], a ld a, $40 ld [wBallXVelocity], a xor a ld [$d7ab], a ld [wStageCollisionState], a ld [$d73a], a ld hl, wDiglettStates ld b, NUM_DIGLETTS .asm_19a60 ld a, [hl] and a jr z, .asm_19a67 ld a, $1 ; hiding diglett state ld [hl], a .asm_19a67 inc hl dec b jr nz, .asm_19a60 xor a ld [wCurrentDiglett], a ld [wDiglettsInitializedFlag], a ld [$d765], a ret Func_19a76: ; 0x19a76 ld [$ff8a], a callba Func_142fc call Func_2862 ld a, [$d7c1] and a ret z call Func_19bbd call Func_19a96 ld a, [wDugrioState] and a call nz, Func_1ac2c ret Func_19a96: ; 0x19a96 ld hl, wDiglettStates ld bc, NUM_DIGLETTS << 8 .asm_19a9c ld a, [hli] and a jr z, .asm_19aae push bc push hl push af call Func_19da8 pop af cp $6 call c, Func_19dcd pop hl pop bc .asm_19aae inc c dec b jr nz, .asm_19a9c ret Func_19ab3: ; 0x19ab3 call Func_19aba call Func_19b4b ret Func_19aba: ; 0x19aba ld a, [$d4ea] inc a jr nz, .asm_19b16 ld a, [$d73b] bit 7, a jr nz, .asm_19b16 ld a, [$d7e9] and a ret z ld a, [$d7f5] sub $19 ret c cp $33 ret nc ld c, a ld b, $0 ld hl, Data_19b18 ; todo add hl, bc ld a, [hl] cp $a jr nc, .asm_19aed ld a, [wBallXPos + 1] cp $48 ld a, $11 jr nc, .asm_19af7 xor a jr .asm_19af7 .asm_19aed ld a, [wBallXPos + 1] cp $68 ld a, $11 jr nc, .asm_19af7 xor a .asm_19af7 add [hl] ld [$d4eb], a add $0 ld [$d4ea], a ld b, a ld hl, $d73b ld [hl], $0 ld a, [$d4ec] cp b jr z, .asm_19b16 ld a, [$d4eb] ld [hli], a ld a, [$d4ea] ld [hl], a scf ret .asm_19b16 and a ret Data_19b18: dr $19b18, $19b4b Func_19b4b: ; 0x19b4b ld a, [$d4ea] inc a jr nz, .asm_19b86 ld a, [$d75f] bit 7, a jr nz, .asm_19b86 ld a, [$d7e9] and a ret z ld a, [$d7f5] sub $14 ret c cp $5 ret nc ld a, $1 ld [$d4eb], a add $1f ld [$d4ea], a ld b, a ld hl, $d75f ld [hl], $0 ld a, [$d4ec] cp b jr z, .asm_19b86 ld a, [$d4eb] ld [hli], a ld a, [$d4ea] ld [hl], a scf ret .asm_19b86 and a ret Func_19b88: ; 0x19b88 call Func_19c52 call Func_1aad4 call Func_19b92 ret Func_19b92: ; 0x19b92 ld a, [$d73a] and a ret nz ld a, [$d4b4] cp $8a ret nc ld a, $1 ld [wStageCollisionState], a ld [$d73a], a xor a ld [$c853], a ld [$c873], a ld [$c893], a ld a, $5 ld [$c872], a ld a, $7 ld [$c892], a call Func_19bbd ret Func_19bbd: ; 0x19bbd ld a, [wStageCollisionState] sla a ld c, a ld b, $0 ld hl, Data_19bda ld a, [hGameBoyColorFlag] and a jr z, .asm_19bd0 ld hl, Data_19c16 .asm_19bd0 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $6 call Func_10aa ret Data_19bda: dr $19bda, $19c16 Data_19c16: dr $19c16, $19c52 Func_19c52: ; 0x19c52 ld a, [$d73b] and a jr z, .asm_19cc8 xor a ld [$d73b], a ld bc, TenMillionPoints ld [$ff8a], a callba Func_8588 ld de, $0035 call PlaySoundEffect ld hl, $0100 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a ld a, [$d73c] sub $1 ld c, a ld b, $0 ld hl, wDiglettStates add hl, bc ld a, [hl] cp $6 jr nc, .asm_19cc8 ld a, $8 ld [hl], a call Func_19da8 call Func_19df0 ld hl, wDiglettStates ld bc, NUM_DIGLETTS << 8 xor a .asm_19ca0 ld a, [hli] and a jr z, .asm_19ca8 cp $6 jr c, .asm_19ca9 .asm_19ca8 inc c .asm_19ca9 dec b jr nz, .asm_19ca0 ld a, c cp NUM_DIGLETTS jr nz, .asm_19cc8 ld hl, Data_1ac75 ld de, wDugtrioAnimationFrameCounter call CopyHLToDE ld a, $1 ld [wDugrioState], a call Func_1ac2c ld de, $0002 call PlaySong .asm_19cc8 call Func_19cdd ld a, [$d765] and a ret nz ld a, $1 ld [$d765], a ld a, [wDugrioState] and a call nz, Func_1ac2c ret Func_19cdd: ; 0x19cdd ld a, [wDiglettsInitializedFlag] and a jr nz, .alreadyInitializedDigletts ld a, [wDiglettInitDelayCounter] add DIGLETT_INITIALIZE_DELAY ld [wDiglettInitDelayCounter], a ret nc ld hl, DiglettInitializeOrder ld a, [wCurrentDiglett] ld c, a ld b, $0 add hl, bc ld b, $1 .asm_19cf8 push bc ld a, [hli] bit 7, a jr z, .asm_19d02 ld a, [hli] ld h, [hl] ld l, a ld a, [hli] .asm_19d02 push hl ld c, a ld b, $0 ld hl, wDiglettStates add hl, bc ld a, [hl] and a jr z, .asm_19d29 dec a jr nz, .asm_19d21 ; pick a random starting state for the diglett that isn't the "hiding" state call GenRandom and $3 add $2 ld [hl], a call Func_19da8 call Func_19dcd jr .asm_19d29 .asm_19d21 and $3 add $2 ld [hl], a call Func_19da8 .asm_19d29 pop hl pop bc dec b jr nz, .asm_19cf8 ld hl, wDiglettsInitializedFlag ld a, [wCurrentDiglett] add $1 cp NUM_DIGLETTS jr c, .notDoneInitializingDigletts set 0, [hl] sub NUM_DIGLETTS .notDoneInitializingDigletts ld [wCurrentDiglett], a ret .alreadyInitializedDigletts ld hl, DiglettUpdateOrder ld a, [wCurrentDiglett] ld c, a ld b, $0 add hl, bc ld b, $4 ; update 4 digletts .updateDiglettLoop push bc ld a, [hli] bit 7, a jr z, .asm_19d58 ld a, [hli] ld h, [hl] ld l, a ld a, [hli] .asm_19d58 push hl ld c, a ld b, $0 ld hl, wDiglettStates add hl, bc ld a, [hl] and a jr z, .asm_19d8f dec a jr nz, .asm_19d77 call GenRandom and $3 add $2 ld [hl], a call Func_19da8 call Func_19dcd jr .asm_19d8f .asm_19d77 cp $5 jr c, .incrementDiglettState ld [hl], a jr nz, .asm_19d8f xor a ld [hl], a ld a, $1 call Func_19da8 jr .asm_19d8f .incrementDiglettState and $3 add $2 ld [hl], a call Func_19da8 .asm_19d8f pop hl pop bc dec b jr nz, .updateDiglettLoop ld hl, wDiglettsInitializedFlag ld a, [wCurrentDiglett] add $4 cp NUM_DIGLETTS jr c, .asm_19da4 set 0, [hl] sub NUM_DIGLETTS .asm_19da4 ld [wCurrentDiglett], a ret Func_19da8: ; 0x19da8 ; input: a = diglett state ; c = diglett index cp $6 jr c, .asm_19dae ld a, $6 ; "getting hit" state .asm_19dae push bc ld b, a sla c ld a, c sla c add c add b ; a = (index * 6) + state dec a ld c, a ld b, $0 ; bc = (index * 6) + state - 1 sla c rl b ; bc = 2 * ((index * 6) + state - 1) ld hl, DiglettTileDataPointers add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, Bank(DiglettTileDataPointers) call Func_10aa pop bc ret Func_19dcd: ; 0x19dcd sla c ld a, c sla c add c ld c, a ld b, $0 ld hl, Data_19e13 add hl, bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a ld a, e add $1f ld e, a jr nc, .asm_19dea inc d .asm_19dea ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a ret Func_19df0: ; 0x19df0 sla c ld a, c sla c add c ld c, a ld b, $0 ld hl, Data_19e13 add hl, bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, $2 ld [de], a inc de ld [de], a ld a, e add $1f ld e, a jr nc, .asm_19e0d inc d .asm_19e0d ld a, $2 ld [de], a inc de ld [de], a ret Data_19e13: dr $19e13, $19ed1 INCLUDE "data/diglett_stage/diglett_stage_animation_data.asm" Func_1aad4: ; 0x1aad4 ld a, [$d75f] and a jr z, .asm_1ab2c xor a ld [$d75f], a ld a, [wDugrioState] bit 0, a jr z, .asm_1ab2c cp $7 jr z, .asm_1ab2c inc a ld [wDugrioState], a sla a ld c, a ld b, $0 ld hl, Data_1ac62 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, wDugtrioAnimationFrameCounter call CopyHLToDE ld bc, FiftyThousandPoints ld [$ff8a], a callba Func_8588 ld de, $0036 call PlaySoundEffect ld a, $33 ld [$d803], a ld a, $8 ld [$d804], a ld hl, $0200 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a .asm_1ab2c call Func_1ab30 ret Func_1ab30: ; 0x1ab30 ld a, [wDugrioState] sla a ld c, a ld b, $0 ld hl, Data_1ac62 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, wDugtrioAnimationFrameCounter call UpdateAnimation ret nc ld a, [wDugrioState] and a ret z cp $1 jr nz, .asm_1ab64 ld a, [wDugtrioAnimationFrameIndex] cp $3 ret nz ld hl, Data_1ac75 ld de, wDugtrioAnimationFrameCounter call CopyHLToDE ld a, $1 ld [wDugrioState], a ret .asm_1ab64 cp $2 jr nz, .asm_1ab7d ld a, [wDugtrioAnimationFrameIndex] cp $1 ret nz ld hl, Data_1ac7f ld de, wDugtrioAnimationFrameCounter call CopyHLToDE ld a, $3 ld [wDugrioState], a ret .asm_1ab7d cp $3 jr nz, .asm_1ab96 ld a, [wDugtrioAnimationFrameIndex] cp $3 ret nz ld hl, Data_1ac7f ld de, wDugtrioAnimationFrameCounter call CopyHLToDE ld a, $3 ld [wDugrioState], a ret .asm_1ab96 cp $4 jr nz, .asm_1abaf ld a, [wDugtrioAnimationFrameIndex] cp $1 ret nz ld hl, Data_1ac89 ld de, wDugtrioAnimationFrameCounter call CopyHLToDE ld a, $5 ld [wDugrioState], a ret .asm_1abaf cp $5 jr nz, .asm_1abc8 ld a, [wDugtrioAnimationFrameIndex] cp $3 ret nz ld hl, Data_1ac89 ld de, wDugtrioAnimationFrameCounter call CopyHLToDE ld a, $5 ld [wDugrioState], a ret .asm_1abc8 cp $6 jr nz, .asm_1abe1 ld a, [wDugtrioAnimationFrameIndex] cp $1 ret nz ld hl, Data_1ac93 ld de, wDugtrioAnimationFrameCounter call CopyHLToDE ld a, $7 ld [wDugrioState], a ret .asm_1abe1 cp $7 ret nz ld a, [wDugtrioAnimationFrameIndex] cp $1 jr nz, .asm_1abf2 ld de, $0000 call PlaySong ret .asm_1abf2 cp $2 ret nz ld hl, Data_1ac72 ld de, wDugtrioAnimationFrameCounter call CopyHLToDE xor a ld [wDugrioState], a ld [$d498], a ld a, $1 ld [$d49a], a call Func_30e8 call Func_30db ld hl, $d5dc ld de, Data_2fb3 call LoadTextHeader ld de, $4b2a call PlaySoundEffect ld a, $1 ld [$d7be], a call Func_2862 ld hl, Data_1ac56 jr asm_1ac2f Func_1ac2c: ; 0x1ac2c ld hl, Data_1ac4a asm_1ac2f: ld de, $c768 ld b, $3 .asm_1ac34 ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a ld a, e add $1d ld e, a jr nc, .asm_1ac46 inc d .asm_1ac46 dec b jr nz, .asm_1ac34 ret Data_1ac4a: dr $1ac4a, $1ac56 Data_1ac56: dr $1ac56, $1ac62 Data_1ac62: dr $1ac62, $1ac72 Data_1ac72: dr $1ac72, $1ac75 Data_1ac75: dr $1ac75, $1ac7f Data_1ac7f: dr $1ac7f, $1ac89 Data_1ac89: dr $1ac89, $1ac93 Data_1ac93: dr $1ac93, $1ac98 Func_1ac98: ; 0x1ac98 ld [$ff8a], a callba Func_e4a1 ld [$ff8a], a callba Func_17e81 call Func_1acb0 ret Func_1acb0: ; 0x1acb0 ld a, $40 ld hl, hBoardXShift sub [hl] ld b, a ld a, $0 ld hl, hBoardYShift sub [hl] ld c, a ld a, [wDugtrioAnimationFrame] ld e, a ld d, $0 ld hl, Data_1accf add hl, de ld a, [hl] bit 7, a call z, LoadOAMData2 ret Data_1accf: dr $1accf, $1acde SECTION "bank7", ROMX, BANK[$7] InitBlueField: ; 0x1c000 ld a, [$d7c1] and a ret nz xor a ld hl, $d46f ld [hld], a ld [hld], a ld [hld], a ld [hld], a ld [hld], a ld [hl], a ld [wNumPartyMons], a ld [$d49b], a ld [$d4c9], a ld [wBallType], a ld [$d4c8], a ld hl, $d624 ld [hli], a ld [hli], a ld [hli], a ld [$d7ac], a ld [$d7be], a ld [wCurrentMap], a ; PALLET_TOWN ld a, $1 ld [$d49d], a ld [$d482], a ld a, $2 ld [wRightAlleyCount], a ld a, $3 ld [$d49e], a ld [$d610], a ld a, $2 ld [$d498], a ld [$d499], a ld a, $80 ld [wIndicatorStates], a ld [wIndicatorStates + 3], a ld a, $82 ld [wIndicatorStates + 1], a xor a ld [$d648], a ld [$d649], a ld [$d64a], a ld [$d643], a ld [$d644], a ld [$d645], a ld [$d646], a ld [$ff8a], a callba Func_dbba ld [$ff8a], a callba Func_1d65f ld a, $10 call SetSongBank ld de, $0001 call PlaySong ret StartBallBlueField: ; 0x1c08d ld a, [$d496] and a jp nz, StartBallAfterBonusStageBlueField ld a, $0 ld [wBallXPos], a ld a, $a7 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $98 ld [wBallYPos + 1], a xor a ld [$d549], a ld [$d580], a call Func_1c7c7 ld a, [$d4c9] and a ret z xor a ld [$d4c9], a xor a ld [$d50b], a ld [$d50c], a ld [$d51d], a ld [$d51e], a ld [$d517], a ld hl, $d50f ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [wLeftMapMoveCounter], a ld [wRightMapMoveCounter], a ld hl, $d5f9 ld [hli], a ld [hli], a ld [hli], a ld [wBallType], a ld [$d611], a ld [$d612], a ld [$d628], a ld [$d629], a ld [$d62a], a ld [$d62b], a ld [$d62c], a ld [$d63a], a ld [$d63b], a ld [$d63d], a ld [$d63c], a ld [$d62d], a ld [$d62e], a ld [$d613], a inc a ld [$d482], a ld [$d4ef], a ld [$d4f1], a ld a, $3 ld [$d610], a call Func_1d65f ld a, $10 call SetSongBank ld de, $0001 call PlaySong ret StartBallAfterBonusStageBlueField: ; 0x1c129 ld a, $0 ld [wBallXPos], a ld a, $50 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $16 ld [wBallYPos + 1], a xor a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld [wBallXVelocity], a ld [wBallXVelocity + 1], a ld [$d496], a ld [$d7ab], a ld [$d7be], a ld a, [wBallTypeBackup] ld [wBallType], a ld a, $10 call SetSongBank ld de, $0001 call PlaySong ret Func_1c165: ; 0x1c165 call asm_1e475 call Func_1cb43 call Func_1c3ee call Func_1e8f6 ld [$ff8a], a callba Func_142fc ld a, $1 ld [$d640], a call Func_1f18a ld [$ff8a], a callba Func_1404a call Func_1c203 ret Func_1c191: ; 0x1c191 call Func_1c1db call Func_1c4b6 call Func_1c2cb call Func_1e627 call Func_1c43c call Func_1c305 call Func_1c3ee ld [$ff8a], a callba Func_14746 ld [$ff8a], a callba Func_14707 call Func_1c235 call Func_1c21e call Func_1e8f6 ld [$ff8a], a callba Func_142fc ld [$ff8a], a callba Func_1404a call Func_1c203 ret Func_1c1db: ; 0x1c1db ld a, [$d641] cp $0 ret z ld a, $1 ld [$d640], a ld a, $0 ld [$d641], a ld a, [wBlueStageForceFieldDirection] cp $2 ; down direction ret nz ld a, $0 ld [wBlueStageForceFieldDirection], a ld a, $1 ; right direction ld [$d64a], a xor a ld [$d649], a ld [$d648], a ret Func_1c203: ; 0x1c203 ld a, $ff ld [$d4d7], a ld [$d4db], a ld a, [$d4b4] ld [$d4c5], a ld a, [$d4b6] ld [$d4c6], a ld a, [wBallRotation] ld [$d4c7], a ret Func_1c21e: ; 0x1c21e ld a, $ff ld [$d60e], a ld [$d60f], a ld a, [$d60c] call Func_1d5f2 ld a, [$d60d] add $14 call Func_1d5f2 ret Func_1c235: ; 0x1c235 ld a, [wLeftMapMoveDiglettAnimationCounter] and a jr z, .asm_1c249 ld a, $54 ld [$c7e3], a ld a, $55 ld [$c803], a ld a, $1 jr .asm_1c24a .asm_1c249 xor a .asm_1c24a call Func_1de4b ld a, [wLeftMapMoveCounter] call Func_1de6f ld a, [hGameBoyColorFlag] and a jr z, .asm_1c267 ld a, [wLeftMapMoveCounter] cp $0 jr z, .asm_1c264 ld b, $7 add b jr .asm_1c269 .asm_1c264 xor a jr .asm_1c269 .asm_1c267 ld a, $8 .asm_1c269 call Func_1de6f ld a, [wRightMapMoveDiglettFrame] and a jr z, .asm_1c295 ld a, $52 ld [$c7f0], a ld a, $53 ld [$c810], a ld a, [$d644] and a jr z, .asm_1c28a ld a, [$d55a] and a jr nz, .asm_1c2bd jr .asm_1c291 .asm_1c28a ld a, [wRightMapMoveCounter] add $3 jr .asm_1c297 .asm_1c291 ld a, $3 jr .asm_1c297 .asm_1c295 ld a, $2 .asm_1c297 call Func_1de4b ld a, [wRightMapMoveCounter] add $4 call Func_1de6f ld a, [hGameBoyColorFlag] and a jr z, .asm_1c2b7 ld a, [wRightMapMoveCounter] cp $0 jr z, .asm_1c2b3 ld b, $a add b jr .asm_1c2b9 .asm_1c2b3 ld a, $4 jr .asm_1c2b9 .asm_1c2b7 ld a, $9 .asm_1c2b9 call Func_1de6f ret .asm_1c2bd ld a, $6 call Func_1de4b ld a, [wRightMapMoveCounter] add $4 call Func_1de6f ret Func_1c2cb: ; 0x1c2cb ld a, [wCurrentStage] bit 0, a ret z ld bc, $0000 .asm_1c2d4 push bc ld hl, wIndicatorStates add hl, bc ld a, [hl] res 7, a call Func_1eb41 pop bc inc c ld a, c cp $2 jr nz, .asm_1c2d4 ld bc, $0002 .asm_1c2e9 push bc ld hl, wIndicatorStates add hl, bc ld a, [hl] push af ld hl, $d648 add hl, bc dec hl dec hl ld a, [hl] ld d, a pop af add d call Func_1eb41 pop bc inc c ld a, c cp $5 jr nz, .asm_1c2e9 ret Func_1c305: ; 0x1c305 ld a, [wInSpecialMode] and a ret z ld a, [wSpecialMode] cp $2 ret z ld a, [$d5c6] and a jr nz, .asm_1c31f ld a, [$d5f3] and a jr nz, .asm_1c31f jp Func_1c3ca .asm_1c31f ld [$ff8a], a callba Func_1c3ac ld [$ff8a], a callba Func_10362 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_10301) ld hl, Func_10301 call nz, BankSwitch ld a, [$d5f3] and a ret z ld a, BANK(PikachuSaverGfx) ld hl, PikachuSaverGfx + $c0 ld de, $87e0 ld bc, $0020 call FarCopyData ld a, BANK(StageSharedPikaBoltGfx) ld hl, GFX_a8800 ld de, $8900 ld bc, $0180 call FarCopyData ld a, [wBallType] cp GREAT_BALL jr nc, .notPokeball ld a, Bank(PinballPokeballShakeGfx) ld hl, PinballPokeballShakeGfx ld de, $8380 ld bc, $0040 call FarCopyData ret .notPokeball cp ULTRA_BALL jr nc, .notGreatball ld a, Bank(PinballGreatballShakeGfx) ld hl, PinballGreatballShakeGfx ld de, $8380 ld bc, $0040 call FarCopyData ret .notGreatball cp MASTER_BALL jr nc, .notUltraBall ld a, Bank(PinballUltraballShakeGfx) ld hl, PinballUltraballShakeGfx ld de, $8380 ld bc, $0040 call FarCopyData ret .notUltraBall ld a, Bank(PinballMasterballShakeGfx) ld hl, PinballMasterballShakeGfx ld de, $8380 ld bc, $0040 call FarCopyData ret Func_1c3ac: ; 0x1c3ac ld a, $80 ld hl, $9887 call Func_1c3c3 ld hl, $98a7 call Func_1c3c3 ld hl, $98c7 call Func_1c3c3 ld hl, $98e7 ; fall through Func_1c3c3: ; 0x1c3c3 ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a ret Func_1c3ca: ; 0x1c3ca ld hl, $d586 ld b, $18 .asm_1c3cf ld a, [hli] xor $1 ld [hli], a dec b jr nz, .asm_1c3cf ld [$ff8a], a callba Func_10184 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_102bc) ld hl, Func_102bc call nz, BankSwitch ret Func_1c3ee: ; 0x1c3ee ld a, [wInSpecialMode] and a ret z ld a, [wSpecialMode] cp $1 ret nz ld a, [$d554] cp $3 ret z ld a, [wCurrentStage] bit 0, a jr nz, .asm_1c416 ld a, BANK(Data_dbe80) ld hl, Data_dbe80 ld de, $8600 ld bc, $00e0 call FarCopyData jr .asm_1c424 .asm_1c416 ld a, BANK(Data_dbe80) ld hl, Data_dbe80 ld de, $8200 ld bc, $00e0 call FarCopyData .asm_1c424 ld a, [$d551] and a ret z ld a, [hGameBoyColorFlag] and a ret z ld a, BANK(Data_dd188) ld hl, Data_dd188 ld de, $0070 ld bc, $0010 call Func_6fd ret Func_1c43c: ; 0x1c43c ld a, [wInSpecialMode] and a jr z, .asm_1c458 ld a, [wSpecialMode] and a jr nz, .asm_1c450 ld a, [wNumMonHits] and a call nz, Func_1c46d ret .asm_1c450 cp $1 jr nz, .asm_1c458 call Func_1c47d ret .asm_1c458 ld a, [$d624] call Func_1f265 ld a, BANK(Data_d8f60) ld hl, Data_d8f60 ld de, $8ae0 ld bc, $0020 call FarCopyData ret Func_1c46d: ; 0x1c46d push af ld [$ff8a], a callba Func_10611 pop af dec a jr nz, Func_1c46d ret Func_1c47d: ; 0x1c47d ld de, $0000 ld a, [$d554] and a ret z ld b, a .asm_1c486 ld a, [wCurrentEvolutionType] call Func_1c491 inc de dec b jr nz, .asm_1c486 ret Func_1c491: ; 0x1c491 push bc push de dec a ld c, a ld b, $0 swap c sla c ld hl, Data_d8e80 add hl, bc swap e sla e push hl ld hl, $8ae0 add hl, de ld d, h ld e, l pop hl ld bc, $0020 ld a, BANK(Data_d8e80) call FarCopyData pop de pop bc ret Func_1c4b6: ; 0x1c4b6 ld a, [wInSpecialMode] and a jr nz, .asm_1c4f0 ld a, [$d609] and a jr z, .asm_1c4d2 ld a, [$d498] add $15 ld [$ff8a], a callba Func_30256 ret .asm_1c4d2 ld a, [$d608] and a jr z, .asm_1c4e5 ld a, $1a ld [$ff8a], a callba Func_30256 ret .asm_1c4e5 ld [$ff8a], a callba Func_30253 ret .asm_1c4f0 ld a, [wSpecialMode] cp $2 ret nz ld a, [$d54d] cp $3 jr nz, .asm_1c508 ld [$ff8a], a callba Func_30253 ret .asm_1c508 ld a, [$d604] and a ld a, $14 jr nz, .asm_1c515 ld a, [$d55a] add $12 .asm_1c515 ld [$ff8a], a callba Func_30256 ret Func_1c520: ; 0x1c520 call Func_1c55a ; shellders call Func_1c567 ; spinner call Func_1c57e call Func_1c592 call Func_1c588 call Func_1c5c0 call Func_1c5eb ret Func_1c536: ; 0x1c536 ld a, [wBallYPos + 1] cp $56 jr nc, .asm_1c54d call Func_1c5de call Func_1c5b3 call Func_1c5a6 call Func_1c5d4 call Func_1c5eb ret .asm_1c54d call Func_1c571 call Func_1c59c call Func_1c5ca call Func_1c607 ret Func_1c55a: ; 0x1c55a ld de, Data_1c644 ld hl, Data_1c62e ld bc, $d4cb and a jp Func_2775 Func_1c567: ; 0x1c567 ld de, Data_1c650 ld bc, $d507 scf jp Func_2775 Func_1c571: ; 0x1c571 ld de, Data_1c625 ld hl, Data_1c611 ld bc, $d4d8 and a jp Func_2775 Func_1c57e: ; 0x1c57e ld de, Data_1c656 ld bc, $d51f scf jp Func_2775 Func_1c588: ; 0x1c588 ld de, Data_1c665 ld bc, $d635 scf jp Func_2775 Func_1c592: ; 0x1c592 ld de, Data_1c66b ld bc, $d630 scf jp Func_2775 Func_1c59c: ; 0x1c59c ld de, Data_1c671 ld bc, $d515 scf jp Func_2775 Func_1c5a6: ; 0x1c5a6 ld de, Data_1c686 ld hl, Data_1c67a ld bc, $d60a and a jp Func_2775 Func_1c5b3: ; 0x1c5b3 ld de, Data_1c695 ld hl, Data_1c68f ld bc, $d4ed and a jp Func_2775 Func_1c5c0: ; 0x1c5c0 ld de, Data_1c69e ld bc, $d5f7 scf jp Func_2775 Func_1c5ca: ; 0x1c5ca ld de, Data_1c6aa ld bc, $d50d scf jp Func_2775 Func_1c5d4: ; 0x1c5d4 ld de, Data_1c6b9 ld bc, $d601 scf jp Func_2775 Func_1c5de: ; 0x1c5de ld de, Data_1c6d1 ld hl, Data_1c6bf ld bc, $d5c7 and a jp Func_2775 Func_1c5eb: ; 0x1c5eb xor a ld [$d578], a ld a, [$d551] and a ret z ld a, [wCurrentStage] bit 0, a jr nz, .asm_1c601 ld hl, BlueTopEvolutionTrinketCoords jp PinballCollideWithPoints .asm_1c601 ld hl, BlueBottomEvolutionTrinketCoords jp PinballCollideWithPoints Func_1c607: ; 0x1c607 ld de, Data_1c70f ld bc, $d4dc scf jp Func_2775 Data_1c611: dr $1c611, $1c625 Data_1c625: dr $1c625, $1c62e Data_1c62e: dr $1c62e, $1c644 Data_1c644: dr $1c644, $1c650 Data_1c650: dr $1c650, $1c656 Data_1c656: dr $1c656, $1c665 Data_1c665: dr $1c665, $1c66b Data_1c66b: dr $1c66b, $1c671 Data_1c671: dr $1c671, $1c67a Data_1c67a: dr $1c67a, $1c686 Data_1c686: dr $1c686, $1c68f Data_1c68f: dr $1c68f, $1c695 Data_1c695: dr $1c695, $1c69e Data_1c69e: dr $1c69e, $1c6aa Data_1c6aa: dr $1c6aa, $1c6b9 Data_1c6b9: dr $1c6b9, $1c6bf Data_1c6bf: dr $1c6bf, $1c6d1 Data_1c6d1: dr $1c6d1, $1c6d7 BlueTopEvolutionTrinketCoords: ; 0x1c6d7 ; First byte is just non-zero to signify that the array hasn't ended. ; Second byte is x coordinate. ; Third byte is y coordinate. db $01, $44, $11 db $01, $23, $1B db $01, $65, $1B db $01, $0D, $2E db $01, $7A, $2E db $01, $05, $48 db $01, $44, $88 db $01, $83, $48 db $01, $02, $6E db $01, $2E, $88 db $01, $59, $88 db $01, $85, $6E db $00 BlueBottomEvolutionTrinketCoords: ; 0x1c6fc ; First byte is just non-zero to signify that the array hasn't ended. ; Second byte is x coordinate. ; Third byte is y coordinate. db $01, $33, $1B db $01, $55, $1B db $01, $29, $1F db $01, $5F, $1F db $01, $1D, $35 db $01, $6B, $35 db $00 Data_1c70f: dr $1c70f, $1c715 Func_1c715: ; 0x1c715 call Func_1c9c1 call Func_1ca5f call Func_1e356 call HandleBallTypeUpgradeCounterBlueField call Func_1e66a call Func_1cfaa call Func_1d0a1 call Func_1d216 call HandleEnteringCloyster call Func_1ea3b call Func_1dbd2 call Func_1ef09 call Func_1e9c0 call Func_1c8b6 call Func_1f18a ld [$ff8a], a callba Func_146a9 call Func_1f27b call Func_1df15 ld [$ff8a], a callba Func_30188 ld a, $0 ld [$ff8a], a callba Func_10000 ret Func_1c769: ; 0x1c769 call Func_1ca4a call Func_1ce40 call Func_1dbd2 call Func_1ca85 call Func_1e4b8 call HandleBallTypeUpgradeCounterBlueField call Func_1e5c5 call Func_1c7d7 call Func_1d0a1 call Func_1ead4 call Func_1d438 call Func_1e757 call Func_1e9c0 call Func_1ea0a call Func_1c8b6 ld [$ff8a], a callba Func_14733 ld [$ff8a], a callba Func_146a2 call Func_1f261 call Func_1de93 ld [$ff8a], a callba Func_30188 ld a, $0 ld [$ff8a], a callba Func_10000 ret Func_1c7c7: ; 0x1c7c7 ld a, $0 ld [wStageCollisionState], a ld [$ff8a], a callba LoadStageCollisionAttributes ret Func_1c7d7: ; 0x1c7d7 ld a, [$d4dc] and a ret z xor a ld [$d4dc], a ld a, [$d4de] and a jr z, .asm_1c810 xor a ld [wRightAlleyTrigger], a ld [wLeftAlleyTrigger], a ld [wSecondaryLeftAlleyTrigger], a ld hl, wBallXVelocity ld [hli], a ld [hl], a ld [wBallSpin], a ld [wBallRotation], a ld a, $71 ld [wBallYVelocity], a ld a, $fa ld [wBallYVelocity + 1], a ld a, $1 ld [$d549], a ld de, $000a call PlaySoundEffect .asm_1c810 ld a, $ff ld [$d4ec], a ld a, [$d4de] and a ret nz ld a, [$d4e0] and a jr nz, .asm_1c82c call Func_1c839 ld a, $1 ld [$d4e0], a ld [$d4de], a ret .asm_1c82c ld hl, wKeyConfigBallStart call IsKeyPressed ret z ld a, $1 ld [$d4de], a ret Func_1c839: ; 0x1c839 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_f269) ld hl, Func_f269 call nz, BankSwitch .showNextMap ld a, [wInitialMapSelectionIndex] inc a cp $7 ; number of maps to choose from at the start of play jr c, .gotMapId xor a ; wrap around to 0 .gotMapId ld [wInitialMapSelectionIndex], a ld c, a ld b, $0 ld hl, BlueStageInitialMaps add hl, bc ld a, [hl] ld [wCurrentMap], a push af ld de, $0048 call PlaySoundEffect pop af add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers ld [$ff8a], a callba LoadBillboardPicture ld b, $20 ; number of frames to delay before the next map is shown .waitOnCurrentMap push bc ld [$ff8a], a callba Func_eeee ld hl, wKeyConfigBallStart call IsKeyPressed jr nz, .ballStartKeyPressed pop bc dec b jr nz, .waitOnCurrentMap jr .showNextMap .ballStartKeyPressed pop bc ld [$ff8a], a callba Func_30253 ld bc, Data_2cd1 ld [$ff8a], a callba Func_3118f ld a, [wCurrentMap] ld [$d4e3], a xor a ld [$d4e2], a ret BlueStageInitialMaps: ; 0x1c8af db VIRIDIAN_CITY db VIRIDIAN_FOREST db MT_MOON db CERULEAN_CITY db VERMILION_STREETS db ROCK_MOUNTAIN db CELADON_CITY Func_1c8b6: ; 0x1c8b6 ld a, [$d64c] inc a cp $3c jr z, .asm_1c8c2 ld [$d64c], a ret .asm_1c8c2 xor a ld [$d64c], a ld hl, $d64d inc [hl] ld a, [hl] cp $5 ret nz ld a, [$d644] and a jr nz, .asm_1c8e1 ld a, [$d643] and a jr nz, .asm_1c8e5 ld a, [wRightAlleyCount] cp $2 jr nc, .asm_1c8e5 .asm_1c8e1 xor a ld [$d64b], a .asm_1c8e5 ld a, [$d644] and a jr nz, .asm_1c8f8 ld a, [$d643] and a jr nz, .asm_1c8fc ld a, [wLeftAlleyCount] cp $3 jr z, .asm_1c8fc .asm_1c8f8 xor a ld [$d64b], a .asm_1c8fc xor a ld [$d64d], a xor a ld [$d64a], a ld [$d649], a ld [$d648], a ld a, [wBlueStageForceFieldDirection] cp $1 ; right direction jr z, .asm_1c97f cp $3 ; left direction jr z, .asm_1c97f .asm_1c915 ld a, [$d644] cp $0 jr z, .asm_1c925 ld a, [$d55a] cp $0 jr nz, .asm_1c933 jr .asm_1c947 .asm_1c925 ld a, [$d643] cp $0 jr nz, .asm_1c933 ld a, [wRightAlleyCount] cp $2 jr c, .asm_1c947 .asm_1c933 ld a, [$d64b] cp $1 jr z, .asm_1c947 ld a, $1 ; right direction ld [wBlueStageForceFieldDirection], a ld [$d64b], a ld [$d640], a jr .asm_1c99e .asm_1c947 ld a, [$d644] cp $0 jr z, .asm_1c955 ld a, [$d55a] cp $0 jr z, .asm_1c969 .asm_1c955 ld a, [$d643] cp $0 jr nz, .asm_1c969 ld a, [wLeftAlleyCount] cp $3 jr nz, .asm_1c97f ld a, [wInSpecialMode] and a jr nz, .asm_1c97f .asm_1c969 ld a, [$d64b] cp $3 jr z, .asm_1c915 ld a, $3 ; left direction ld [wBlueStageForceFieldDirection], a ld [$d64b], a ld a, $1 ld [$d640], a jr .asm_1c99e .asm_1c97f ld a, [$d641] and a jr nz, .asm_1c993 xor a ld [wBlueStageForceFieldDirection], a ld a, $1 ld [$d640], a ld [$d64a], a jr .asm_1c99e .asm_1c993 ld a, $2 ; down direction ld [wBlueStageForceFieldDirection], a ld a, $1 ld [$d640], a ret .asm_1c99e ld a, [wBlueStageForceFieldDirection] cp $0 ; up direction jr nz, .asm_1c9ac ld a, $1 ld [$d64a], a jr .asm_1c9c0 .asm_1c9ac cp $1 jr nz, .asm_1c9b7 ld a, $1 ld [$d649], a jr .asm_1c9c0 .asm_1c9b7 cp $3 jr nz, .asm_1c9c0 ld a, $1 ld [$d648], a .asm_1c9c0 ret Func_1c9c1: ; 0x1c9c1 ld a, [$d4cb] and a jr z, .asm_1ca19 xor a ld [$d4cb], a call Func_1ca29 ld a, [$d641] and a jr nz, .asm_1c9f2 ld a, $1 ld [$d641], a ld a, [wBlueStageForceFieldDirection] cp $0 ; up direction jr nz, .asm_1c9f2 ld a, $2 ; down direction ld [wBlueStageForceFieldDirection], a ld a, $1 ld [$d640], a ld a, $3 ld [$d64c], a ld [$d64d], a .asm_1c9f2 ld a, $10 ld [$d4d6], a ld a, [$d4cc] sub $3 ld [$d4d7], a ld a, $4 ld [$ff8a], a callba Func_10000 ld bc, FiveHundredMillionPoints ld [$ff8a], a callba AddBCDScore ret .asm_1ca19 ld a, [$d4d6] and a ret z dec a ld [$d4d6], a ret nz ld a, $ff ld [$d4d7], a ret Func_1ca29: ; 0x1ca29 ld a, $ff ld [$d803], a ld a, $3 ld [$d804], a ld hl, $0200 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a ld de, $000e call PlaySoundEffect ret Func_1ca4a: ; 1ca4a ld a, [$d5c7] and a ret z xor a ld [$d5c7], a ld a, $1 ld [$d5bf], a ld de, $0006 call PlaySoundEffect ret Func_1ca5f: ; 0x1ca5f ld a, [$d507] and a jr z, Func_1ca85 xor a ld [$d507], a ld a, [wBallYVelocity] ld c, a ld a, [wBallYVelocity + 1] ld b, a ld a, c ld [$d50b], a ld a, b ld [$d50c], a ld a, $c ld [$ff8a], a callba Func_10000 ; fall through Func_1ca85: ; 0x1ca85 ld hl, $d50b ld a, [hli] or [hl] ret z ld a, [$d50b] ld c, a ld a, [$d50c] ld b, a bit 7, b jr nz, .asm_1caa3 ld a, c sub $7 ld c, a ld a, b sbc $0 ld b, a jr nc, .asm_1cab0 jr .asm_1caad .asm_1caa3 ld a, c add $7 ld c, a ld a, b adc $0 ld b, a jr nc, .asm_1cab0 .asm_1caad ld bc, $0000 .asm_1cab0 ld a, c ld [$d50b], a ld a, b ld [$d50c], a ld hl, $d50b ld a, [$d509] add [hl] ld [$d509], a inc hl ld a, [$d50a] adc [hl] bit 7, a ld c, $0 jr z, .asm_1cad3 add $18 ld c, $1 jr .asm_1cadb .asm_1cad3 cp $18 jr c, .asm_1cadb sub $18 ld c, $1 .asm_1cadb ld [$d50a], a ld a, c and a ret z ld bc, OneHundredBillionPoints ld [$ff8a], a callba AddBCDScore ld hl, $d62d call Func_e4a ld a, [$d517] cp $f jr nz, .asm_1caff call Func_1cb1c ret .asm_1caff inc a ld [$d517], a call Func_1cb1c ld a, [$d517] cp $f jr nz, .asm_1cb12 ld a, $64 ld [$d51e], a .asm_1cb12 ld a, [wCurrentStage] bit 0, a ret nz call Func_1cb43 ret Func_1cb1c: ; 0x1cb1c ld a, [$d51e] and a ret nz ld a, [$d517] ld c, a ld b, $0 ld hl, Data_1cb33 ; todo add hl, bc ld a, [hl] ld e, a ld d, $0 call PlaySoundEffect ret Data_1cb33: dr $1cb33, $1cb43 Func_1cb43: ; 0x1cb43 ld a, [$d517] ld c, a sla c ld b, $0 ld hl, Data_1cb60 ; todo ld a, [hGameBoyColorFlag] and a jr z, .asm_1cb56 ld hl, Data_1cd10 ; todo .asm_1cb56 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $7 call Func_10aa ret Data_1cb60: dr $1cb60, $1cd10 Data_1cd10: dr $1cd10, $1ce40 Func_1ce40: ; 1ce40 ld a, [$d4d8] and a jr z, .asm_1ce53 call Func_1ce72 call Func_1ce60 xor a ld [$d4d8], a call Func_1ce94 .asm_1ce53 ld a, [$d4da] and a ret z dec a ld [$d4da], a call z, Func_1ce72 ret Func_1ce60: ; 0x1ce60 ld a, $10 ld [$d4da], a ld a, [$d4d9] sub $1 ld [$d4db], a sla a inc a jr asm_1ce7a Func_1ce72: ; 1ce72 ld a, [$d4db] cp $ff ret z sla a asm_1ce7a: ; 0x1ce7a sla a ld c, a ld b, $0 ld hl, Data_1ceca ld a, [hGameBoyColorFlag] and a jr z, .asm_1ce8a ld hl, Data_1cf3a .asm_1ce8a add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $7 call Func_10aa ret Func_1ce94: ; 0x1ce94 ld a, $ff ld [$d803], a ld a, $3 ld [$d804], a ld hl, $0200 ld a, l ld [$d7bc], a ld a, h ld [$d7bd], a ld a, $80 ld [wFlipperCollision], a ld a, [$d4d9] sub $1 ld c, a ld b, $0 ld hl, Data_1cec8 add hl, bc ld a, [$d7ea] add [hl] ld [$d7ea], a ld de, $000b call PlaySoundEffect ret Data_1cec8: dr $1cec8, $1ceca Data_1ceca: dr $1ceca, $1cf3a Data_1cf3a: dr $1cf3a, $1cfaa Func_1cfaa: ; 0x1cfaa ld a, [$d51f] and a ret z xor a ld [$d51f], a ld bc, FiftyBillionPoints ld [$ff8a], a callba AddBCDScore ld a, [wStageCollisionState] cp $0 jr nz, .asm_1cfe5 ld a, $1 ld [wStageCollisionState], a ld [$ff8a], a callba LoadStageCollisionAttributes ld a, $1 ld [$d580], a ld [$ff8a], a callba Func_1404a .asm_1cfe5 ld a, [$d520] sub $7 ld c, a ld b, $0 ld hl, $d521 add hl, bc ld [hl], $1 ld a, [$d521] and a call nz, Func_1d010 ld a, [$d522] and a call nz, Func_1d047 ld a, [$d523] and a call nz, HandleLeftAlleyTriggerBlueField ld a, [$d524] and a call nz, HandleRightAlleyTriggerBlueField ret Func_1d010: ; 0x1d010 xor a ld [$d521], a ld a, [wLeftAlleyTrigger] and a ret z xor a ld [wLeftAlleyTrigger], a ld a, $1 ld [$ff8a], a callba Func_10000 ret c ld a, [wLeftAlleyCount] cp $3 ret z inc a ld [wLeftAlleyCount], a cp $3 jr z, .asm_1d03e set 7, a ld [wIndicatorStates], a ret .asm_1d03e ld [wIndicatorStates], a ld a, $80 ld [wIndicatorStates + 2], a ret Func_1d047: ; 0x1d047 xor a ld [$d522], a ld a, [wRightAlleyTrigger] and a ret z xor a ld [wRightAlleyTrigger], a ld a, $2 ld [$ff8a], a callba Func_10000 ret c ld a, [wRightAlleyCount] cp $3 ret z inc a ld [wRightAlleyCount], a cp $3 jr z, .asm_1d071 set 7, a .asm_1d071 ld [wIndicatorStates + 1], a ld a, [wRightAlleyCount] cp $2 ret c ld a, $80 ld [wIndicatorStates + 3], a ret HandleLeftAlleyTriggerBlueField: ; 0x1d080 ; Ball passed over the left alley trigger point in the Blue Field. xor a ld [$d523], a ld [wRightAlleyTrigger], a ld [wSecondaryLeftAlleyTrigger], a ld a, $1 ld [wLeftAlleyTrigger], a ret c ret HandleRightAlleyTriggerBlueField: ; 0x1d091 ; Ball passed over the right alley trigger point in the Blue Field. xor a ld [$d524], a ld [wLeftAlleyTrigger], a ld [wSecondaryLeftAlleyTrigger], a ld a, $1 ld [wRightAlleyTrigger], a ret Func_1d0a1: ; 0x1d0a1 ld a, [$d515] and a jr z, .asm_1d110 xor a ld [$d515], a ld a, [$d51c] and a jr nz, .asm_1d110 ld a, [$d51d] and a jr nz, .asm_1d0c9 ld a, [$d516] sub $d ld hl, $d518 cp [hl] jr nz, .asm_1d110 ld a, [$d517] cp $f jr nz, .asm_1d0fc .asm_1d0c9 ld hl, PikachuSaverAnimationDataRedStage ld de, wPikachuSaverAnimationFrameCounter call CopyHLToDE ld a, [$d51d] and a jr nz, .asm_1d0dc xor a ld [$d517], a .asm_1d0dc ld a, $1 ld [$d51c], a xor a ld [wBallXVelocity], a ld [wBallXVelocity + 1], a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld [wBallSpin], a ld [wBallRotation], a ld [$d549], a call Func_30e8 jr .asm_1d110 .asm_1d0fc ld hl, PikachuSaverAnimation2DataRedStage ld de, wPikachuSaverAnimationFrameCounter call CopyHLToDE ld a, $2 ld [$d51c], a ld de, $003b call PlaySoundEffect .asm_1d110 ld a, [$d51c] and a call z, Func_1d1fb call Func_1d133 ld a, [$d517] cp $f ret nz ld a, [$d51e] and a ret z dec a ld [$d51e], a cp $5a ret nz ld de, $0f22 call PlaySoundEffect ret Func_1d133: ; 0x1d133 ld a, [$d51c] cp $1 jr nz, .asm_1d1ae ld hl, PikachuSaverAnimationDataRedStage ld de, wPikachuSaverAnimationFrameCounter call UpdateAnimation ret nc ld a, [wPikachuSaverAnimationFrameIndex] cp $1 jr nz, .asm_1d18c xor a ld [$d85d], a call Func_310a rst AdvanceFrame ld a, $1 ld [$ff8a], a callba PlayPikachuSoundClip ld a, $1 ld [$d85d], a ld a, $ff ld [$d803], a ld a, $60 ld [$d804], a ld hl, $d62e call Func_e4a jr nc, .asm_1d185 ld c, $a call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch .asm_1d185 ld de, $1610 call PlaySoundEffect ret .asm_1d18c ld a, [wPikachuSaverAnimationFrameIndex] cp $11 ret nz ld a, $fc ld [wBallYVelocity + 1], a ld a, $1 ld [$d549], a ld bc, FiveBillionPoints ld [$ff8a], a callba AddBCDScore xor a ld [$d51c], a ret .asm_1d1ae cp $2 jr nz, .asm_1d1c7 ld hl, PikachuSaverAnimation2DataRedStage ld de, wPikachuSaverAnimationFrameCounter call UpdateAnimation ret nc ld a, [wPikachuSaverAnimationFrameIndex] cp $1 ret nz xor a ld [$d51c], a ret .asm_1d1c7 ld a, [$ffb3] swap a and $1 ld [wPikachuSaverAnimationFrame], a ret PikachuSaverAnimationDataRedStage: ; 0x1d1d1 ; Each entry is [duration][OAM id] db $0C, $02 db $05, $03 db $05, $02 db $05, $04 db $05, $05 db $05, $02 db $06, $06 db $06, $07 db $06, $08 db $06, $02 db $06, $05 db $06, $08 db $06, $07 db $06, $02 db $06, $08 db $06, $07 db $06, $02 db $01, $00 db $00 PikachuSaverAnimation2DataRedStage: ; 0x1d1f6 ; Each entry is [duration][OAM id] db $0C, $02 db $01, $00 db $00 Func_1d1fb: ; 0x1d1fb ld hl, wKeyConfigLeftFlipper call IsKeyPressed2 jr z, .asm_1d209 ld hl, $d518 ld [hl], $0 ret .asm_1d209 ld hl, wKeyConfigRightFlipper call IsKeyPressed2 ret z ld hl, $d518 ld [hl], $1 ret Func_1d216: ; 0x1d216 ld a, [$d630] and a jr z, .asm_1d253 xor a ld [$d630], a ld bc, OneMillionPoints ld [$ff8a], a callba AddBCDScore ld de, $0005 call PlaySoundEffect ld hl, Data_1d312 ld de, $d632 call CopyHLToDE xor a ld [wBallXVelocity], a ld [wBallXVelocity + 1], a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld [wBallXPos], a ld [wBallYPos], a xor a ld [$d549], a .asm_1d253 ld hl, Data_1d312 ld de, $d632 call UpdateAnimation push af ld a, [$d632] and a jr nz, .asm_1d271 ld a, $19 ld [$d632], a xor a ld [$d633], a ld a, $6 ld [$d634], a .asm_1d271 pop af ret nc ld a, [$d634] cp $1 jr nz, .asm_1d2b6 xor a ld [$d548], a ld a, [wLeftAlleyCount] cp $3 jr nz, .asm_1d299 ld [$ff8a], a callba Func_10ab3 ld a, [$d643] and a ret z ld a, $1 ld [$d642], a .asm_1d299 ld hl, $d63a call Func_e4a ld hl, $d62a call Func_e4a ret nc ld c, $19 call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch ret .asm_1d2b6 ld a, [$d634] cp $4 jr nz, .asm_1d2c3 ld a, $1 ld [$d548], a ret .asm_1d2c3 ld a, [$d634] cp $5 ret nz ld a, $1 ld [$d549], a ld a, $b0 ld [wBallXVelocity], a ld a, $0 ld [wBallXVelocity + 1], a xor a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld de, $0006 call PlaySoundEffect ld a, [$d642] cp $0 jr nz, .asm_1d2f8 ld a, $f ld [$ff8a], a callba Func_10000 .asm_1d2f8 xor a ld [$d642], a ld [$d64c], a ld [$d64d], a ld a, $1 ld [$d641], a ld a, $2 ; down direction ld [wBlueStageForceFieldDirection], a ld a, $1 ld [$d640], a ret Data_1d312: dr $1d312, $1d32d HandleEnteringCloyster: ; 0x1d32d ld a, [$d635] and a jr z, .asm_1d36a xor a ld [$d635], a ld bc, OneMillionPoints ld [$ff8a], a callba AddBCDScore ld de, $0005 call PlaySoundEffect ld hl, Data_1d41d ld de, $d637 call CopyHLToDE xor a ld [wBallXVelocity], a ld [wBallXVelocity + 1], a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld [wBallXPos], a ld [wBallYPos], a xor a ld [$d549], a .asm_1d36a ld hl, Data_1d41d ld de, $d637 call UpdateAnimation push af ld a, [$d637] and a jr nz, .asm_1d388 ld a, $19 ld [$d637], a xor a ld [$d638], a ld a, $6 ld [$d639], a .asm_1d388 pop af ret nc ld a, [$d639] cp $1 jr nz, .asm_1d3cb xor a ld [$d548], a ld a, [wRightAlleyCount] cp $2 jr c, .noCatchEmMode ld a, $8 jr nz, .asm_1d3a1 xor a .asm_1d3a1 ld [wRareMonsFlag], a ld [$ff8a], a callba StartCatchEmMode .noCatchEmMode ld hl, $d63b call Func_e4a ld hl, $d62a call Func_e4a ret nc ld c, $19 call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch ret .asm_1d3cb ld a, [$d639] cp $4 jr nz, .asm_1d3d8 ld a, $1 ld [$d548], a ret .asm_1d3d8 ld a, [$d639] cp $5 ret nz ld a, $1 ld [$d549], a ld a, $4f ld [wBallXVelocity], a ld a, $ff ld [wBallXVelocity + 1], a xor a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld de, $0006 call PlaySoundEffect ld a, $e ld [$ff8a], a callba Func_10000 xor a ld [$d64c], a ld [$d64d], a ld a, $1 ld [$d641], a ld a, $2 ; down direction ld [wBlueStageForceFieldDirection], a ld a, $1 ld [$d640], a ret Data_1d41d: dr $1d41d, $1d438 Func_1d438: ; 0x1d438 call Func_1d692 ld a, [$d60a] and a jp z, Func_1d51b xor a ld [$d60a], a ld de, $000d call PlaySoundEffect ld a, [$d60b] sub $f jr nz, .asm_1d48e ld a, [hGameBoyColorFlag] and a jr nz, .asm_1d45c ld a, $1f jr .asm_1d45e .asm_1d45c ld a, $29 .asm_1d45e call Func_1d5f2 ld a, $3c ld [$d647], a ld a, $9 ld [$ff8a], a callba Func_10000 ld a, [$d610] cp $3 jp nz, asm_1d4fa ld a, $1 ld [$d610], a ld a, $3 ld [$d611], a ld a, [$d60c] set 7, a ld [$d60c], a jr asm_1d4fa .asm_1d48e ld a, [hGameBoyColorFlag] and a jr nz, .asm_1d497 ld a, $21 jr .asm_1d499 .asm_1d497 ld a, $2b .asm_1d499 call Func_1d5f2 ld a, $1e ld [$d647], a ld a, $a ld [$ff8a], a callba Func_10000 ld a, [$d611] cp $3 jr nz, asm_1d4fa ld a, $1 ld [$d610], a ld a, $1 ld [$d611], a ld a, $80 ld [$d612], a ld a, [$d60d] set 7, a ld [$d60d], a ld a, [$d482] inc a cp $64 jr c, .asm_1d4d5 ld a, $63 .asm_1d4d5 ld [$d482], a jr nc, .asm_1d4e9 ld c, $19 call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch .asm_1d4e9 ld a, [$d60c] ld [$d614], a ld a, [$d60d] ld [$d615], a ld a, $1 ld [$d613], a asm_1d4fa: ; 0x1d4fa ld bc, OneHundredBillionPoints ld [$ff8a], a callba AddBCDScore ld a, [$d60c] call Func_1d5f2 ld a, [$d60d] add $14 call Func_1d5f2 ld a, $3c ld [$d647], a ret Func_1d51b: ; 0x1d51b call Func_1d5bf ld a, [$d612] and a jr z, .asm_1d559 dec a ld [$d612], a cp $70 jr nz, .asm_1d538 ld a, $2 ld [$d610], a ld a, $2 ld [$d611], a jr .asm_1d559 .asm_1d538 and a jr nz, .asm_1d559 ld a, $3 ld [$d610], a xor a ld [$d611], a ld a, [$d482] call Func_1d65f ld a, [$d60c] call Func_1d5f2 ld a, [$d60d] add $14 call Func_1d5f2 ret .asm_1d559 ld a, [$d610] cp $2 jr c, .asm_1d58b cp $3 ld a, [$ffb3] jr c, .asm_1d56a srl a srl a .asm_1d56a ld b, a and $3 jr nz, .asm_1d58b bit 3, b jr nz, .asm_1d580 ld a, [$d60c] res 7, a ld [$d60c], a call Func_1d5f2 jr .asm_1d58b .asm_1d580 ld a, [$d60c] set 7, a ld [$d60c], a call Func_1d5f2 .asm_1d58b ld a, [$d611] cp $2 ret c cp $3 ld a, [$ffb3] jr c, .asm_1d59b srl a srl a .asm_1d59b ld b, a and $3 ret nz bit 3, b jr nz, .asm_1d5b1 ld a, [$d60d] res 7, a ld [$d60d], a add $14 call Func_1d5f2 ret .asm_1d5b1 ld a, [$d60d] set 7, a ld [$d60d], a add $14 call Func_1d5f2 ret Func_1d5bf: ; 0x1d5bf ld a, [$d5ca] and a ret nz ld a, [$d613] and a ret z xor a ld [$d613], a call Func_30e8 call Func_30db ld hl, $d5cc ld de, BonusMultiplierText call LoadTextHeader ld hl, wcBottomMessageText + $12 ld a, [$d614] and $7f jr z, .asm_1d5e9 add $30 ld [hli], a .asm_1d5e9 ld a, [$d615] res 7, a add $30 ld [hl], a ret Func_1d5f2: ; 0x1d5f2 push af ld a, [hGameBoyColorFlag] and a jr nz, .asm_1d5fd pop af call Func_1d602 ret .asm_1d5fd pop af call Func_1d645 ret Func_1d602: ; 0x1d602 push af res 7, a ld hl, $d60e cp $14 jr c, .asm_1d611 ld hl, $d60f sub $a .asm_1d611 cp [hl] jr z, .asm_1d626 ld [hl], a ld c, a ld b, $0 sla c ld hl, Data_1d6be add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $7 call Func_10aa .asm_1d626 pop af ld bc, $0000 bit 7, a jr z, .asm_1d632 res 7, a set 1, c .asm_1d632 cp $14 jr c, .asm_1d638 set 2, c .asm_1d638 ld hl, Data_1d946 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $7 call Func_10aa ret Func_1d645: ; 0x1d645 bit 7, a jr z, .asm_1d64d res 7, a add $a .asm_1d64d ld c, a ld b, $0 sla c ld hl, Data_1d97a add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $7 call Func_10aa ret Func_1d65f: ; 0x1d65f ld a, [$d482] inc a cp $64 jr c, .asm_1d669 ld a, $63 .asm_1d669 ld b, a xor a ld hl, Data_1d68b ld c, $7 .asm_1d670 bit 0, b jr z, .asm_1d676 add [hl] daa .asm_1d676 srl b inc hl dec c jr nz, .asm_1d670 push af swap a and $f ld [$d60c], a pop af and $f ld [$d60d], a ret Data_1d68b: dr $1d68b, $1d692 Func_1d692: ; 0x1d692 ld a, [$d647] cp $1 jr z, .asm_1d69e dec a ld [$d647], a ret .asm_1d69e ld a, $0 ld [$d647], a ld a, [hGameBoyColorFlag] and a jr nz, .asm_1d6b3 ld a, $1e call Func_1d5f2 ld a, $20 call Func_1d5f2 ret .asm_1d6b3 ld a, $2a call Func_1d5f2 ld a, $28 call Func_1d5f2 ret Data_1d6be: dr $1d6be, $1d946 Data_1d946: dr $1d946, $1d97a Data_1d97a: dr $1d97a, $1dbd2 Func_1dbd2: ; 0x1dbd2 ld a, [$d4ed] and a jp z, Func_1dc8e cp $2 jr z, .asm_1dc33 xor a ld [$d4ed], a ld hl, wLeftMapMoveCounter ld a, [hl] cp $3 jp z, Func_1dc8e inc a ld [hl], a ld hl, $d4f7 ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wCurrentStage] bit 0, a jr z, .asm_1dc06 ld a, $54 ld [$c7e3], a ld a, $55 ld [$c803], a .asm_1dc06 ld a, $1 call Func_1de4b ld a, [wLeftMapMoveCounter] call Func_1de6f ld a, [wLeftMapMoveCounter] cp $3 ld a, $7 ld [$ff8a], a callba Func_10000 ld a, $2 ld [$d646], a ld a, $78 ld [wLeftMapMoveDiglettAnimationCounter], a ld a, $14 ld [wLeftMapMoveDiglettFrame], a jr .asm_1dc8a .asm_1dc33 xor a ld [$d4ed], a ld hl, wRightMapMoveCounter ld a, [hl] cp $3 jp z, Func_1dc8e inc a ld [hl], a ld hl, $d4f9 ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wCurrentStage] bit 0, a jr z, .asm_1dc5c ld a, $52 ld [$c7f0], a ld a, $53 ld [$c810], a .asm_1dc5c ld a, $3 call Func_1de4b ld a, [wRightMapMoveCounter] cp $3 ld a, $8 ld [$ff8a], a callba Func_10000 ld a, [wRightMapMoveCounter] cp $3 ccf call z, Func_1ddf4 ld a, $2 ld [$d645], a ld a, $28 ld [wRightMapMoveDiglettAnimationCounter], a ld a, $78 ld [wRightMapMoveDiglettFrame], a .asm_1dc8a call Func_1de22 ret Func_1dc8e: ; 0x1dc8e call Func_1dc95 call Func_1dd2e ret Func_1dc95: ; 0x1dc95 ld a, [$d646] cp $0 ret z ld a, [wLeftMapMoveDiglettAnimationCounter] and a jr z, .asm_1dceb dec a ld [wLeftMapMoveDiglettAnimationCounter], a ld a, [$d644] and a ret nz ld a, [wLeftMapMoveDiglettFrame] cp $1 jr z, .asm_1dcb9 cp $0 ret z dec a ld [wLeftMapMoveDiglettFrame], a ret .asm_1dcb9 ld a, [$d646] cp $2 ret nz call Func_1130 ret nz ld a, [hGameBoyColorFlag] and a jr z, .asm_1dcd7 ld a, [wLeftMapMoveCounter] cp $0 jr z, .asm_1dcd4 ld b, $7 add b jr .asm_1dcd9 .asm_1dcd4 xor a jr .asm_1dcd9 .asm_1dcd7 ld a, $8 .asm_1dcd9 call Func_1de6f ld a, [wLeftMapMoveCounter] cp $3 ccf call z, Func_1ddc7 ld a, $1 ld [$d646], a ret .asm_1dceb ld a, [$d646] cp $1 ret nz ld a, [wLeftMapMoveDiglettAnimationCounter] and a ret nz ld a, $0 call Func_1de4b ld a, [wCurrentStage] bit 0, a jr z, .asm_1dd0c ld a, $5e ld [$c7e3], a ld a, $5f ld [$c803], a .asm_1dd0c ld a, $0 ld [$d646], a ld a, [wLeftMapMoveCounter] sub $3 ret nz ld a, [wLeftMapMoveCounter] sub $3 ld [wLeftMapMoveCounter], a call Func_1de6f ld a, $0 call Func_1de4b ld a, $0 ld [$d646], a ret ; XXX ret Func_1dd2e: ; 0x1dd2e ld a, [$d645] cp $0 ret z cp $1 jr z, .asm_1dd53 cp $3 jr z, .asm_1dd69 ld a, [wRightMapMoveDiglettAnimationCounter] cp $0 jr z, .asm_1dd48 dec a ld [wRightMapMoveDiglettAnimationCounter], a ret .asm_1dd48 ld a, $2 call Func_1de4b ld a, $1 ld [$d645], a ret .asm_1dd53 ld a, [wRightMapMoveCounter] add $4 call Func_1de6f ld a, [wRightMapMoveCounter] add $3 call Func_1de4b ld a, $3 ld [$d645], a ret .asm_1dd69 ld a, [wRightMapMoveDiglettFrame] and a jr z, .asm_1dd74 dec a ld [wRightMapMoveDiglettFrame], a ret .asm_1dd74 ld a, [hGameBoyColorFlag] and a jr z, .asm_1dd89 ld a, [wRightMapMoveCounter] cp $0 jr z, .asm_1dd85 ld b, $a add b jr .asm_1dd8b .asm_1dd85 ld a, $4 jr .asm_1dd8b .asm_1dd89 ld a, $9 .asm_1dd8b call Func_1de6f ld a, $2 call Func_1de4b ld a, [wCurrentStage] bit 0, a jr z, .asm_1dda9 ld a, $24 ld [$c7f0], a ld a, $25 ld [$c810], a ld a, $0 ld [$d645], a .asm_1dda9 ld a, [wRightMapMoveCounter] sub $3 ret nz ld a, [wRightMapMoveCounter] sub $3 ld [wRightMapMoveCounter], a ld a, $4 call Func_1de6f ld a, $2 call Func_1de4b ld a, $0 ld [$d645], a ret Func_1ddc7: ; 0x1ddc7 ld hl, $d63d call Func_e4a ld hl, $d62b call Func_e4a jr nc, .asm_1dde4 ld c, $a call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch .asm_1dde4 xor a ld [$d55a], a ld [$ff8a], a callba StartMapMoveMode scf ret Func_1ddf4: ; 0x1ddf4 ld hl, $d63c call Func_e4a ld hl, $d62b call Func_e4a jr nc, .asm_1de11 ld c, $a call Func_e55 ld [$ff8a], a ld a, Bank(Func_30164) ld hl, Func_30164 call z, BankSwitch .asm_1de11 ld a, $1 ld [$d55a], a ld [$ff8a], a callba StartMapMoveMode scf ret Func_1de22: ; 0x1de22 ld a, [wCurrentStage] bit 0, a ret z ld a, $55 ld [$d803], a ld a, $4 ld [$d804], a ld a, $2 ld [$d7eb], a ld bc, FiveHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld de, $000f call PlaySoundEffect ret Func_1de4b: ; 0x1de4b ld b, a ld a, [wCurrentStage] bit 0, a ret z ld a, b sla a ld c, a ld b, $0 ld hl, Data_1df66 ld a, [hGameBoyColorFlag] and a jr z, .asm_1de63 ld hl, Data_1e00f .asm_1de63 add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, $7 call Func_10aa ret Func_1de6f: ; 0x1de6f ld b, a ld a, [wCurrentStage] bit 0, a ret z ld a, b sla a ld c, a ld b, $0 ld hl, Data_1e0a4 ld a, [hGameBoyColorFlag] and a jr z, .asm_1de87 ld hl, Data_1e1d6 .asm_1de87 add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, $7 call Func_10aa ret Func_1de93: ; 0x1de93 ld hl, $d4f7 dec [hl] ld a, [hli] cp $ff jr nz, .asm_1ded2 dec [hl] ld a, [hld] cp $ff jr nz, .asm_1ded2 ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wLeftMapMoveCounter] and a jr z, .asm_1ded2 cp $3 jr z, .asm_1ded2 dec a ld [wLeftMapMoveCounter], a call Func_1de6f ld a, [hGameBoyColorFlag] and a jr z, .asm_1decd ld a, [wLeftMapMoveCounter] cp $0 jr z, .asm_1deca ld b, $7 add b jr .asm_1decf .asm_1deca xor a jr .asm_1decf .asm_1decd ld a, $8 .asm_1decf call Func_1de6f .asm_1ded2 ld hl, $d4f9 dec [hl] ld a, [hli] cp $ff jr nz, .asm_1df14 dec [hl] ld a, [hld] cp $ff jr nz, .asm_1df14 ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wRightMapMoveCounter] and a jr z, .asm_1df14 cp $3 jr z, .asm_1df14 dec a ld [wRightMapMoveCounter], a add $4 call Func_1de6f ld a, [hGameBoyColorFlag] and a jr z, .asm_1df0f ld a, [wRightMapMoveCounter] cp $0 jr z, .asm_1df0b ld b, $a add b jr .asm_1df11 .asm_1df0b ld a, $4 jr .asm_1df11 .asm_1df0f ld a, $9 .asm_1df11 call Func_1de6f .asm_1df14 ret Func_1df15: ; 0x1df15 ld b, $0 ld hl, $d4f8 ld a, [hld] or [hl] jr z, .asm_1df3e dec [hl] ld a, [hli] cp $ff jr nz, .asm_1df3e dec [hl] ld a, [hld] cp $ff jr nz, .asm_1df3e ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wLeftMapMoveCounter] and a jr z, .asm_1df3e cp $3 jr z, .asm_1df3e dec a ld [wLeftMapMoveCounter], a .asm_1df3e ld hl, $d4fa ld a, [hld] or [hl] jr z, .asm_1df65 dec [hl] ld a, [hli] cp $ff jr nz, .asm_1df65 dec [hl] ld a, [hld] cp $ff jr nz, .asm_1df65 ld a, $e0 ld [hli], a ld a, $1 ld [hl], a ld a, [wRightMapMoveCounter] and a jr z, .asm_1df65 cp $3 jr z, .asm_1df65 dec a ld [wRightMapMoveCounter], a .asm_1df65 ret Data_1df66: dr $1df66, $1e00f Data_1e00f: dr $1e00f, $1e0a4 Data_1e0a4: dr $1e0a4, $1e1d6 Data_1e1d6: dr $1e1d6, $1e356 Func_1e356: ; 0x1e356 ld a, [$d5f7] and a jp z, Func_1e471 xor a ld [$d5f7], a ld a, [wStageCollisionState] cp $0 jr nz, .asm_1e386 ld a, $1 ld [wStageCollisionState], a ld [$ff8a], a callba LoadStageCollisionAttributes ld a, $1 ld [$d580], a ld [$ff8a], a callba Func_1404a .asm_1e386 ld a, [wStageCollisionState] bit 0, a jp z, Func_1e471 ld a, [$d5fc] and a jp nz, Func_1e471 xor a ld [wRightAlleyTrigger], a ld [wLeftAlleyTrigger], a ld [wSecondaryLeftAlleyTrigger], a ld a, $b ld [$ff8a], a callba Func_10000 ld a, [$d5f8] sub $13 ld c, a ld b, $0 ld hl, $d5f9 add hl, bc ld a, [hl] ld [hl], $1 and a jr z, .asm_1e3bf ld [hl], $0 .asm_1e3bf ld bc, OneHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld hl, $d5f9 ld a, [hli] and [hl] inc hl and [hl] jr nz, .asm_1e3de ld de, $0009 call PlaySoundEffect jp asm_1e475 .asm_1e3de ld a, $1 ld [$d5fc], a ld a, $80 ld [$d5fd], a ; load approximately 1 minute of frames into wBallTypeCounter ld a, $10 ld [wBallTypeCounter], a ld a, $e ld [wBallTypeCounter + 1], a ld bc, FourHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld a, [wBallType] cp MASTER_BALL jr z, .masterBall ld de, $063a call PlaySoundEffect call Func_30e8 call Func_30db ld hl, $d5cc ld de, FieldMultiplierText call LoadTextHeader ld a, [wBallType] ld c, a ld b, $0 ld hl, BallTypeProgression2BlueField add hl, bc ld a, [hl] ld [wBallType], a add $30 ld [wcBottomMessageText + $12], a jr .asm_1e465 .masterBall ld de, $0f4d call PlaySoundEffect ld bc, TenThousandPoints ld [$ff8a], a callba Func_8588 ld bc, $0100 ld de, $0000 push bc push de call Func_30e8 call Func_30db ld hl, $d5d4 ld de, DigitsText1to8 call Func_32cc pop de pop bc ld hl, $d5cc ld de, FieldMultiplierSpecialBonusText call LoadTextHeader .asm_1e465 ld [$ff8a], a callba Func_155a7 jr asm_1e475 Func_1e471: ; 0x1e471 call Func_1e4b8 ret z asm_1e475: ; 0x1e475 ld hl, $d5fb ld b, $3 .asm_1e47a ld a, [hld] push hl call Func_1e484 pop hl dec b jr nz, .asm_1e47a ret Func_1e484: ; 0x1e484 and a jr z, .asm_1e496 ld a, [hGameBoyColorFlag] and a jr nz, .asm_1e491 ld hl, Data_1e520 jr .asm_1e4a3 .asm_1e491 ld hl, Data_1e556 jr .asm_1e4a3 .asm_1e496 ld a, [hGameBoyColorFlag] and a jr nz, .asm_1e4a0 ld hl, Data_1e526 jr .asm_1e4a3 .asm_1e4a0 ld hl, Data_1e55c .asm_1e4a3 push bc dec b sla b ld e, b ld d, $0 add hl, de ld c, [hl] inc hl ld b, [hl] ld a, $7 ld de, LoadTileLists call Func_10c5 pop bc ret Func_1e4b8: ; 0x1e4b8 ld a, [$d5fc] and a jr z, .asm_1e4e5 ld a, [$d5fd] dec a ld [$d5fd], a jr nz, .asm_1e4ca ld [$d5fc], a .asm_1e4ca and $7 jr nz, .asm_1e4e3 ld a, [$d5fd] srl a srl a srl a and $1 ld hl, $d5f9 ld [hli], a ld [hli], a ld [hl], a ld a, $1 and a ret .asm_1e4e3 xor a ret .asm_1e4e5 ld hl, wKeyConfigLeftFlipper call IsKeyPressed jr z, .leftFlipperKeyIsPressed ; left flipper key is pressed ld hl, $d5f9 ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hl] ld e, a ld a, c ld [hld], a ld a, e ld [hld], a ld a, b ld [hl], a ret .leftFlipperKeyIsPressed ld hl, wKeyConfigRightFlipper call IsKeyPressed ret z ; right flipper key is pressed ld hl, $d5f9 ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hl] ld e, a ld a, b ld [hld], a ld a, c ld [hld], a ld a, e ld [hl], a ret BallTypeProgression2BlueField: ; 0x1e514 ; Determines the next upgrade for the Ball. db GREAT_BALL ; POKE_BALL -> GREAT_BALL db GREAT_BALL ; unused db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL db MASTER_BALL ; unused db MASTER_BALL ; MASTER_BALL -> MASTER_BALL BallTypeDegradation2BlueField: ; 0x1e51a ; Determines the previous upgrade for the Ball. db POKE_BALL ; POKE_BALL -> POKE_BALL db POKE_BALL ; unused db POKE_BALL ; GREAT_BALL -> POKE_BALL db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL db ULTRA_BALL ; unused db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL Data_1e520: dr $1e520, $1e526 Data_1e526: dr $1e526, $1e556 Data_1e556: dr $1e556, $1e55c Data_1e55c: dr $1e55c, $1e58c HandleBallTypeUpgradeCounterBlueField: ; 0x1e58c ld a, [$d5f3] and a ret nz ; check if counter is at 0 ld hl, wBallTypeCounter ld a, [hli] ld c, a ld b, [hl] or b ret z dec bc ld a, b ld [hld], a ld [hl], c or c ret nz ; counter is now 0! Degrade the ball upgrade. ld a, [wBallType] ld c, a ld b, $0 ld hl, BallTypeDegradation2BlueField add hl, bc ld a, [hl] ld [wBallType], a and a jr z, .pokeball ; load approximately 1 minute of frames into wBallTypeCounter ld a, $10 ld [wBallTypeCounter], a ld a, $e ld [wBallTypeCounter + 1], a .pokeball ld [$ff8a], a callba Func_155a7 ret Func_1e5c5: ; 0x1e5c5 ld a, [$d50d] and a jr z, .asm_1e623 xor a ld [$d50d], a ld a, [$d513] and a jr nz, .asm_1e623 ld a, [$d50e] sub $16 ld c, a ld b, $0 ld hl, $d50f add hl, bc ld a, [hl] ld [hl], $1 and a ret nz ld bc, OneHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld hl, $d50f ld a, [hli] and [hl] inc hl and [hl] inc hl and [hl] jr z, Func_1e627 ld a, $1 ld [$d513], a ld a, $80 ld [$d514], a ld bc, FourHundredMillionPoints ld [$ff8a], a callba AddBCDScore ld de, $0009 call PlaySoundEffect ld hl, $d62c call Func_e4a jr Func_1e627 .asm_1e623 call Func_1e66a ret z ; fall through Func_1e627: ; 0x1e627 ld hl, $d512 ld b, $4 .asm_1e62c ld a, [hld] push hl call Func_1e636 pop hl dec b jr nz, .asm_1e62c ret Func_1e636: ; 0x1e636 and a jr z, .asm_1e648 ld a, [hGameBoyColorFlag] and a jr nz, .asm_1e643 ld hl, Data_1e6d7 jr .asm_1e655 .asm_1e643 ld hl, Data_1e717 jr .asm_1e655 .asm_1e648 ld a, [hGameBoyColorFlag] and a jr nz, .asm_1e652 ld hl, Data_1e6df jr .asm_1e655 .asm_1e652 ld hl, Data_1e71f .asm_1e655 push bc dec b sla b ld e, b ld d, $0 add hl, de ld c, [hl] inc hl ld b, [hl] ld a, $7 ld de, LoadTileLists call Func_10c5 pop bc ret Func_1e66a: ; 0x1e66a ld a, [$d513] and a jr z, .asm_1e6a0 ld a, [$d514] dec a ld [$d514], a jr nz, .asm_1e687 ld [$d513], a ld a, $1 ld [$d608], a ld a, $3 ld [$d607], a xor a .asm_1e687 and $7 ret nz ld a, [$d514] srl a srl a srl a and $1 ld hl, $d50f ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld a, $1 and a ret .asm_1e6a0 ld hl, wKeyConfigLeftFlipper call IsKeyPressed jr z, .asm_1e6bc ld hl, $d50f ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld e, a ld a, [hl] ld d, a ld a, c ld [hld], a ld a, d ld [hld], a ld a, e ld [hld], a ld a, b ld [hl], a ret .asm_1e6bc ld hl, wKeyConfigRightFlipper call IsKeyPressed ret z ld hl, $d50f ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld e, a ld a, [hl] ld d, a ld a, e ld [hld], a ld a, b ld [hld], a ld a, c ld [hld], a ld a, d ld [hl], a ret Data_1e6d7: dr $1e6d7, $1e6df Data_1e6df: dr $1e6df, $1e717 Data_1e717: dr $1e717, $1e71f Data_1e71f: dr $1e71f, $1e757 Func_1e757: ; 0x1e757 ld a, [$d601] and a jr z, .asm_1e78c xor a ld [$d601], a ld a, [$d604] and a ret z ld a, [$d603] and a jr nz, .asm_1e78c xor a ld hl, wBallXVelocity ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [$d549], a ld [wBallXPos], a ld [wBallYPos], a ld a, $50 ld [wBallXPos + 1], a ld a, $16 ld [wBallYPos + 1], a ld a, $13 ld [$d603], a .asm_1e78c ld a, [$d603] and a ret z dec a ld [$d603], a ld a, $18 ld [$d606], a ld a, [$d603] cp $12 jr nz, .asm_1e7b2 ld de, $0021 call PlaySoundEffect ld [$ff8a], a callba LoadMiniBallGfx ret .asm_1e7b2 cp $f jr nz, .asm_1e7c1 ld [$ff8a], a callba Func_dd62 ret .asm_1e7c1 cp $c jr nz, .asm_1e7d0 xor a ld [$d548], a ld [wBallSpin], a ld [wBallRotation], a ret .asm_1e7d0 cp $9 jr nz, .asm_1e7d8 call Func_1e830 ret .asm_1e7d8 cp $6 jr nz, .asm_1e7f5 xor a ld [$d604], a ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a ld [$ff8a], a callba LoadMiniBallGfx ret .asm_1e7f5 cp $3 jr nz, .asm_1e80e ld [$ff8a], a callba LoadBallGfx ld a, $2 ld [wBallYVelocity + 1], a ld a, $80 ld [wBallXVelocity], a ret .asm_1e80e and a ret nz call Func_1e8f6 ld a, [$d622] cp $1 ret nz call GenRandom and $8 ld [wRareMonsFlag], a ld [$ff8a], a callba StartCatchEmMode xor a ld [$d622], a ret Func_1e830: ; 0x1e830 xor a ld [wIndicatorStates + 4], a ld a, $d ld [$ff8a], a callba Func_10000 jr nc, .asm_1e84b ld a, $1 ld [$d548], a ld [$d549], a ret .asm_1e84b ld a, [$d624] cp $3 jr nz, .asm_1e891 ld a, [$d607] and a jr nz, .asm_1e891 .asm_1e858 ld a, [$d623] and a jr nz, .asm_1e867 xor a ld [$d625], a ld a, $40 ld [$d626], a .asm_1e867 xor a ld [$d623], a ld a, $1 ld [$d495], a ld [$d4ae], a ld a, [$d498] ld c, a ld b, $0 ld hl, Data_1e8f1 add hl, bc ld a, [hl] ld [$d497], a call Func_1e8c3 xor a ld [$d609], a ld [$d622], a ld a, $1e ld [$d607], a ret .asm_1e891 ld [$ff8a], a callba Func_ed8e xor a ld [$d608], a ld a, [$d61d] cp $d jr nc, .asm_1e858 ld a, $1 ld [$d548], a ld [$d549], a ld a, [$d622] cp $2 ret nz ld [$ff8a], a callba Func_10ab3 xor a ld [$d622], a ret Func_1e8c3: ; 0x1e8c3 call Func_30e8 call Func_30db ld hl, $d5dc ld a, [$d497] ld de, Data_2ed2 cp $b jr z, .asm_1e8e0 ld de, Data_2eec cp $f jr z, .asm_1e8e0 ld de, Data_2eb8 .asm_1e8e0 call LoadTextHeader ld de, $0000 call PlaySong rst AdvanceFrame ld de, $3c23 call PlaySoundEffect ret Data_1e8f1: dr $1e8f1, $1e8f6 Func_1e8f6: ; 0x1e8f6 ld a, [wCurrentStage] and $1 sla a ld c, a ld a, [$d604] add c sla a ld c, a ld b, $0 ld hl, Data_1e91e ld a, [hGameBoyColorFlag] and a jr z, .asm_1e912 ld hl, Data_1e970 .asm_1e912 add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, $7 call Func_10aa ret Data_1e91e: dr $1e91e, $1e970 Data_1e970: dr $1e970, $1e9c0 Func_1e9c0: ; 0x1e9c0 ld a, [$d607] and a ret z dec a ld [$d607], a ret nz ld a, [wInSpecialMode] and a ret nz ld a, [$d609] and a jr z, .asm_1e9dc ld a, [$d498] add $15 jr .asm_1e9e3 .asm_1e9dc ld a, [$d608] and a ret z ld a, $1a .asm_1e9e3 ld hl, wCurrentStage bit 0, [hl] ld [$ff8a], a ld a, Bank(Func_30256) ld hl, Func_30256 call nz, BankSwitch ld a, [$d604] and a ret nz ld a, $1 ld [$d604], a ld a, $80 ld [wIndicatorStates + 4], a ld a, [wCurrentStage] bit 0, a call nz, Func_1e8f6 ret Func_1ea0a: ; 0x1ea0a ld a, [$d604] and a ret z ld a, [wBallYPos + 1] sub $fe cp $30 ret nc ld c, $0 ld b, a ld h, b ld l, c srl b rr c srl b rr c srl h rr l add hl, bc ld a, [wBallXPos + 1] sub $38 cp $30 ret nc ld c, a ld b, $0 sla c sla c add hl, bc jr asm_1ea6a Func_1ea3b: ; 0x1ea3b ld a, [$d604] and a ret z ld a, [wBallYPos + 1] sub $86 cp $30 ret nc ld c, $0 ld b, a ld h, b ld l, c srl b rr c srl b rr c srl h rr l add hl, bc ld a, [wBallXPos + 1] sub $38 cp $30 ret nc ld c, a ld b, $0 sla c sla c add hl, bc ; fall through asm_1ea6a: ; 0x1ea6a ld bc, Data_f0000 add hl, bc ld de, wBallXVelocity ld a, BANK(Data_f0000) call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, BANK(Data_f0000) call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl push bc ld a, BANK(Data_f0000) call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, BANK(Data_f0000) call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl bit 7, b jr z, .asm_1eaa9 ld a, c cpl ld c, a ld a, b cpl ld b, a inc bc .asm_1eaa9 pop hl bit 7, h jr z, .asm_1eab5 ld a, l cpl ld l, a ld a, h cpl ld h, a inc hl .asm_1eab5 add hl, bc sla l rl h ld a, h cp $2 ret c ld a, [$d804] and a ret nz ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a ld de, $0004 call PlaySoundEffect ret Func_1ead4: ; 0x1ead4 ld a, [$ffb3] and $f ret nz ld bc, $0000 .asm_1eadc push bc ld hl, wIndicatorStates add hl, bc ld a, [hl] cp $1 jr z, .asm_1eaf8 bit 7, [hl] jr z, .asm_1eaf8 ld a, [hl] res 7, a ld hl, $ffb3 bit 4, [hl] jr z, .asm_1eaf5 inc a .asm_1eaf5 call Func_1eb41 .asm_1eaf8 pop bc inc c ld a, c cp $2 jr nz, .asm_1eadc ld a, [$ffb3] and $f ret nz ld a, [wCurrentStage] bit 0, a ret z ld bc, $0002 .asm_1eb0d push bc ld hl, wIndicatorStates add hl, bc ld a, [hl] cp $1 jr z, .asm_1eb29 bit 7, [hl] jr z, .asm_1eb29 ld a, [hl] res 7, a ld hl, $ffb3 bit 4, [hl] jr z, .asm_1eb2b inc a inc a jr .asm_1eb2b .asm_1eb29 ld a, $0 .asm_1eb2b push af ld hl, $d648 add hl, bc dec hl dec hl ld a, [hl] ld d, a pop af add d call Func_1eb41 pop bc inc c ld a, c cp $5 jr nz, .asm_1eb0d ret Func_1eb41: ; 0x1eb41 push af sla c ld hl, Data_1eb61 ld a, [hGameBoyColorFlag] and a jr z, .asm_1eb4f ld hl, Data_1ed51 .asm_1eb4f add hl, bc ld a, [hli] ld h, [hl] ld l, a pop af sla a ld c, a add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $7 call Func_10aa ret Data_1eb61: dr $1eb61, $1ed51 Data_1ed51: dr $1ed51, $1ef09 Func_1ef09: ; 0x1ef09 ld a, [wBlueStageForceFieldDirection] cp $0 ; up direction jp z, Func_1ef20 cp $1 ; right direction jp z, Func_1ef4d cp $2 ; down direction jp z, Func_1ef7e cp $3 ; left direction jp z, Func_1efae ; fall through ; default to upward forcefield Func_1ef20: ; 0x1ef20 ld a, [wBallYPos + 1] sub $60 cp $30 ret nc ld c, $0 ld b, a ld h, b ld l, c srl b rr c srl b rr c srl h rr l add hl, bc ld a, [wBallXPos + 1] sub $38 cp $30 ret nc ld c, a ld b, $0 sla c sla c add hl, bc jp Func_1efdc Func_1ef4d: ; 0x1ef4d ld a, [wBallXPos + 1] sub $38 cp $30 ret nc ld c, a ld a, $30 sub c ld c, $0 ld b, a ld h, b ld l, c srl b rr c srl b rr c srl h rr l add hl, bc ld a, [wBallYPos + 1] sub $60 cp $30 ret nc ld c, a ld b, $0 sla c sla c add hl, bc jp Func_1efdc Func_1ef7e: ; 0x1ef7e ld a, [wBallYPos + 1] sub $60 cp $30 ret nc ld c, a ld a, $30 sub c ld c, $0 ld b, a ld h, b ld l, c srl b rr c srl b rr c srl h rr l add hl, bc ld a, [wBallXPos + 1] sub $38 cp $30 ret nc ld c, a ld b, $0 sla c sla c add hl, bc jr Func_1efdc Func_1efae: ; 0x1efae ld a, [wBallXPos + 1] sub $38 cp $30 ret nc ld c, $0 ld b, a ld h, b ld l, c srl b rr c srl b rr c srl h rr l add hl, bc ld a, [wBallYPos + 1] sub $60 cp $30 ret nc ld c, a ld a, $30 sub c ld c, a ld b, $0 sla c sla c add hl, bc ; fall through Func_1efdc: ; 0x1efdc ld a, [wBlueStageForceFieldDirection] cp $0 ; up direction jp z, Func_1eff3 cp $1 ; right direction jp z, LoadOAMData2e cp $2 ; down direction jp z, Func_1f057 cp $3 ; left direction jp z, Func_1f124 ; fall through ; default to upward forcefield Func_1eff3: ; 0x1eff3 ld bc, Data_ec000 add hl, bc ld de, wBallXVelocity ld a, BANK(Data_ec000) call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, BANK(Data_ec000) call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl push bc ld a, BANK(Data_ec000) call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, BANK(Data_ec000) call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl bit 7, b jr z, .asm_1f032 ld a, c cpl ld c, a ld a, b cpl ld b, a inc bc .asm_1f032 pop hl bit 7, h jr z, .asm_1f03e ld a, l cpl ld l, a ld a, h cpl ld h, a inc hl .asm_1f03e add hl, bc sla l rl h ld a, h cp $2 ret c ld a, [$d804] and a ret nz ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a ret Func_1f057: ; 0x1f057 ld bc, Data_ec000 add hl, bc ld de, wBallXVelocity bit 2, l ret nz ld a, BANK(Data_ec000) call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, BANK(Data_ec000) call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl push bc ld a, BANK(Data_ec000) call ReadByteFromBank ld c, a ld a, [de] sub c ld [de], a inc de inc hl ld a, BANK(Data_ec000) call ReadByteFromBank ld b, a ld a, [de] sbc b ld [de], a inc de inc hl bit 7, b jr z, .asm_1f099 ld a, c cpl ld c, a ld a, b cpl ld b, a inc bc .asm_1f099 pop hl bit 7, h jr z, .asm_1f0a5 ld a, l cpl ld l, a ld a, h cpl ld h, a inc hl .asm_1f0a5 add hl, bc sla l rl h ld a, h cp $2 ret c ld a, [$d804] and a ret nz ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a ret LoadOAMData2e: ; 0x1f0be ld bc, Data_ec000 add hl, bc ld de, wBallYVelocity ld a, BANK(Data_ec000) call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, BANK(Data_ec000) call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc hl push bc dec de dec de dec de ld a, BANK(Data_ec000) call ReadByteFromBank ld c, a ld a, [de] sub c ld [de], a inc de inc hl ld a, BANK(Data_ec000) call ReadByteFromBank ld b, a ld a, [de] sbc b ld [de], a inc de inc hl bit 7, b jr z, .asm_1f0ff ld a, c cpl ld c, a ld a, b cpl ld b, a inc bc .asm_1f0ff pop hl bit 7, h jr z, .asm_1f10b ld a, l cpl ld l, a ld a, h cpl ld h, a inc hl .asm_1f10b add hl, bc sla l rl h ld a, h cp $2 ret c ld a, [$d804] and a ret nz ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a ret Func_1f124: ; 0x1f124 ld bc, Data_ec000 add hl, bc ld de, wBallYVelocity ld a, BANK(Data_ec000) call ReadByteFromBank ld c, a ld a, [de] sub c ld [de], a inc de inc hl ld a, BANK(Data_ec000) call ReadByteFromBank ld b, a ld a, [de] sbc b ld [de], a inc hl push bc dec de dec de dec de ld a, BANK(Data_ec000) call ReadByteFromBank ld c, a ld a, [de] add c ld [de], a inc de inc hl ld a, BANK(Data_ec000) call ReadByteFromBank ld b, a ld a, [de] adc b ld [de], a inc de inc hl bit 7, b jr z, .asm_1f165 ld a, c cpl ld c, a ld a, b cpl ld b, a inc bc .asm_1f165 pop hl bit 7, h jr z, .asm_1f171 ld a, l cpl ld l, a ld a, h cpl ld h, a inc hl .asm_1f171 add hl, bc sla l rl h ld a, h cp $2 ret c ld a, [$d804] and a ret nz ld a, $5 ld [$d803], a ld a, $8 ld [$d804], a ret Func_1f18a: ; 0x1f18a ld a, [$d640] cp $0 jr z, .asm_1f1b4 ld a, [wBlueStageForceFieldDirection] sla a ld c, a ld b, $0 ld hl, Data_1f1b5 ld a, [hGameBoyColorFlag] and a jr z, .asm_1f1a4 ld hl, Data_1f201 .asm_1f1a4 add hl, bc ld a, [hli] ld h, [hl] ld l, a or h ret z ld a, $7 call Func_10aa ld a, $0 ld [$d640], a .asm_1f1b4 ret Data_1f1b5: dr $1f1b5, $1f201 Data_1f201: dr $1f201, $1f261 Func_1f261: ; 0x1f261 call Func_1f27b ret nc ; fall through Func_1f265: ; 0x1f265 sla a ld c, a ld b, $0 ld hl, Data_1f2b9 add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, $7 ld de, LoadTileLists call Func_10c5 ret Func_1f27b: ; 0x1f27b ld a, [$d624] ld hl, $d625 cp [hl] ret z ld a, [$d626] dec a ld [$d626], a jr nz, .asm_1f2a5 ld a, [$d625] ld [$d624], a cp $3 jr c, .asm_1f2a0 ld a, $1 ld [$d609], a ld a, $3 ld [$d607], a .asm_1f2a0 ld a, [$d624] scf ret .asm_1f2a5 and $7 ret nz ld a, [$d626] bit 3, a jr nz, .asm_1f2b4 ld a, [$d624] scf ret .asm_1f2b4 ld a, [$d625] scf ret Data_1f2b9: dr $1f2b9, $1f2ed Func_1f2ed: ; 0x1f2ed xor a ld [$d604], a ld [wIndicatorStates + 4], a ld [$ff8a], a ld a, Bank(Func_1e8f6) ; this is in the same bank... ld hl, Func_1e8f6 call BankSwitch ret Func_1f2ff: ; 0x1f2ff ld a, [wLeftAlleyCount] cp $3 jr c, .asm_1f30b ld a, $80 ld [wIndicatorStates + 2], a .asm_1f30b ld a, [wLeftAlleyCount] cp $3 jr z, .asm_1f314 set 7, a .asm_1f314 ld [wIndicatorStates], a ld a, [wRightAlleyCount] cp $2 jr c, .asm_1f323 ld a, $80 ld [wIndicatorStates + 3], a .asm_1f323 ld a, [wRightAlleyCount] cp $3 jr z, .asm_1f32c set 7, a .asm_1f32c ld [wIndicatorStates + 1], a ret Func_1f330: ; 0x1f330 ld bc, $7f00 ld [$ff8a], a callba Func_175a4 call Func_1f395 call Func_1f3e1 call Func_1f408 call Func_1f428 ld [$ff8a], a callba Func_17e81 call Func_1f48f call Func_1f4f8 ret Func_1f35a: ; 0x1f35a ld bc, $7f00 ld [$ff8a], a callba Func_175a4 ld [$ff8a], a callba Func_17c67 call Func_1f58b call Func_1f448 ld [$ff8a], a callba Func_e4a1 ld [$ff8a], a callba Func_17e81 call Func_1f4a3 call Func_1f509 call Func_1f55e ret Func_1f395: ; 0x1f395 ld de, $d4cd ld hl, Data_1f3cf call Func_1f3ad ld de, $d4d0 ld hl, Data_1f3d5 call Func_1f3ad ld de, $d4d3 ld hl, Data_1f3db ; fall through Func_1f3ad: ; 0x1f3ad ld a, [hBoardXShift] ld b, a ld a, [hli] sub b ld b, a ld a, [hBoardYShift] ld c, a ld a, [hli] sub c ld c, a ld a, [$d4d7] sub [hl] inc hl jr z, .asm_1f3c4 ld a, $0 jr .asm_1f3c6 .asm_1f3c4 ld a, $1 .asm_1f3c6 ld e, a ld d, $0 add hl, de ld a, [hl] call LoadOAMData ret Data_1f3cf: dr $1f3cf, $1f3d5 Data_1f3d5: dr $1f3d5, $1f3db Data_1f3db: dr $1f3db, $1f3e1 Func_1f3e1: ; 0x1f3e1 ld a, $8a ld hl, hBoardXShift sub [hl] ld b, a ld a, $53 ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d50a] srl a srl a ld e, a ld d, $0 ld hl, Data_1f402 add hl, de ld a, [hl] call LoadOAMData ret Data_1f402: dr $1f402, $1f408 Func_1f408: ; 0x1f408 ld a, $18 ld hl, hBoardXShift sub [hl] ld b, a ld a, $5f ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d633] ld e, a ld d, $0 ld hl, Data_1f425 add hl, de ld a, [hl] call LoadOAMData ret Data_1f425: dr $1f425, $1f428 Func_1f428: ; 0x1f428 ld a, $70 ld hl, hBoardXShift sub [hl] ld b, a ld a, $59 ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d638] ld e, a ld d, $0 ld hl, Data_1f445 add hl, de ld a, [hl] call LoadOAMData ret Data_1f445: dr $1f445, $1f448 Func_1f448: ; 0x1f448 ld a, [hBoardXShift] ld d, a ld a, [hBoardYShift] ld e, a ld a, [$d51d] and a ld a, [$d518] jr z, .asm_1f473 ld a, [$d51c] and a jr nz, .asm_1f469 ld a, [$ffb3] srl a srl a srl a and $1 jr .asm_1f473 .asm_1f469 ld a, [$d4b4] cp $50 ld a, $1 jr nc, .asm_1f473 xor a .asm_1f473 sla a ld c, a ld b, $0 ld hl, Data_1f48b add hl, bc ld a, [hli] sub d ld b, a ld a, [hli] sub e ld c, a ld a, [wPikachuSaverAnimationFrame] add $e call LoadOAMData ret Data_1f48b: dr $1f48b, $1f48f Func_1f48f: ; 0x1f48f ld a, [$d551] and a ret nz ld a, [$ffb3] bit 4, a ret z ld de, wIndicatorStates + 5 ld hl, Data_1f4ce ld b, $6 jr asm_1f4b5 Func_1f4a3: ; 0x1f4a3 ld a, [$d551] and a ret nz ld a, [$ffb3] bit 4, a ret z ld de, wIndicatorStates + 11 ld hl, Data_1f4e0 ld b, $8 asm_1f4b5: push bc ld a, [hBoardXShift] ld b, a ld a, [hli] sub b ld b, a ld a, [hBoardYShift] ld c, a ld a, [hli] sub c ld c, a ld a, [de] and a ld a, [hli] call nz, LoadOAMData pop bc inc de dec b jr nz, asm_1f4b5 ret Data_1f4ce: dr $1f4ce, $1f4e0 Data_1f4e0: dr $1f4e0, $1f4f8 Func_1f4f8: ; 0x1f4f8 ld a, [$d551] and a ret z ld de, $d566 ld hl, Data_1f53a ld b, $c ld c, $47 jr asm_1f518 Func_1f509: ; 0x1f509 ld a, [$d551] and a ret z ld de, $d572 ld hl, Data_1f552 ld b, $6 ld c, $40 asm_1f518: ; 0x1f518 push bc ld a, [de] add c cp c push af ld a, [hBoardXShift] ld b, a ld a, [hli] sub b ld b, a ld a, [hBoardYShift] ld c, a ld a, [hli] sub c ld c, a ld a, [$ffb3] and $e jr nz, .asm_1f530 dec c .asm_1f530 pop af call nz, LoadOAMData pop bc inc de dec b jr nz, asm_1f518 ret Data_1f53a: dr $1f53a, $1f552 Data_1f552: dr $1f552, $1f55e Func_1f55e: ; 0x1f55e ld a, [$d604] and a ret z ld a, [$d606] inc a ld [$d606], a ld a, $40 ld hl, hBoardXShift sub [hl] ld b, a ld a, $1 ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d606] srl a srl a srl a and $3 add $4f cp $52 call nz, LoadOAMData ret Func_1f58b: ; 0x1f58b ld a, [$d5bb] and a ret z ld a, $50 ld hl, hBoardXShift sub [hl] ld b, a ld a, $3e ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d5bd] ld e, a ld d, $0 ld hl, Data_1f5ad add hl, de ld a, [hl] call LoadOAMData ret Data_1f5ad: dr $1f5ad, $1f5b9 SECTION "bank8", ROMX, BANK[$8] Func_20000: ; 0x20000 ld a, [$d54c] cp $4 jp z, Func_20230 cp $c jp z, Func_202a8 cp $5 jp z, Func_202b2 cp $0 jr z, .asm_20018 scf ret .asm_20018 call Func_201f2 ld a, [$d54d] call CallInFollowingTable PointerTable_20021: ; 0x20021 dw Func_20041 db Bank(Func_20041), $00 dw Func_2005f db Bank(Func_2005f), $00 dw Func_2006b db Bank(Func_2006b), $00 dw Func_200a3 db Bank(Func_200a3), $00 dw Func_200d3 db Bank(Func_200d3), $00 dw Func_20193 db Bank(Func_20193), $00 dw CapturePokemonRedStage db Bank(CapturePokemonRedStage), $00 dw Func_201ce db Bank(Func_201ce), $00 Func_20041: ; 0x20041 ld a, [$d5b6] cp $18 jr nz, .asm_2005d ld a, [wCurrentStage] bit 0, a jr z, .asm_2005d ld hl, $d54d inc [hl] ld a, $14 ld [$d54e], a ld a, $5 ld [$d54f], a .asm_2005d scf ret Func_2005f: ; 0x2005f ld [$ff8a], a callba Func_10648 scf ret Func_2006b: ; 0x2006b ld a, [wCurrentStage] bit 0, a jr z, .asm_20098 call Func_1130 jr nz, .asm_200a1 ld [$ff8a], a callba Func_10414 ld [$ff8a], a callba Func_10362 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_10301) ld hl, Func_10301 call nz, BankSwitch .asm_20098 ld a, $1 ld [$d5c6], a ld hl, $d54d inc [hl] .asm_200a1 scf ret Func_200a3: ; 0x200a3 ld a, [wCurrentStage] bit 0, a jr z, .asm_200af call Func_1130 jr nz, .asm_200d1 .asm_200af ld [$ff8a], a callba Func_10678 ld [$ff8a], a callba Func_10732 ld [$ff8a], a callba Func_10464 ld hl, $d54d inc [hl] .asm_200d1 scf ret Func_200d3: ; 0x200d3 ld a, [$d5be] dec a ld [$d5be], a jr z, .asm_200e6 ld a, [$d5c4] inc a ld [$d5c4], a and $3 ret nz .asm_200e6 ld a, [$d5bf] and a jp z, .asm_20167 xor a ld [$d5bf], a ld a, [$d5c3] ld [$d5be], a xor a ld [$d5c4], a ld a, [wCurrentCatchEmMon] cp MEW - 1 jr nz, .notMew ld a, [$d5c5] inc a ld [$d5c5], a jr nz, .asm_20116 .notMew ld a, [wNumMonHits] cp $3 jr z, .hitMonThreeTimes inc a ld [wNumMonHits], a .asm_20116 ld bc, ThirtyMillionPoints ld [$ff8a], a callba Func_8588 ld bc, $0030 ld de, $0000 push bc push de call Func_30e8 call Func_30db ld hl, $d5e9 ld de, $2a2a call Func_3372 pop de pop bc ld hl, $d5e4 ld de, $2a21 call Func_3357 ld a, [wNumMonHits] ld [$ff8a], a callba Func_10611 ld c, $2 jr .asm_2018a .hitMonThreeTimes xor a ld [$d57e], a ld a, $1 ld [$d57f], a ld hl, $d54d inc [hl] ld c, $2 jr .asm_2018a .asm_20167 ld a, [$d5be] and a ret nz ld a, [$d5bc] ld c, a ld a, [$d5bd] sub c cp $1 ld c, $0 jr nc, .asm_2017c ld c, $1 .asm_2017c ld b, $0 ld hl, $d5c1 add hl, bc ld a, [hl] ld [$d5be], a xor a ld [$d5c4], a .asm_2018a ld a, [$d5bc] add c ld [$d5bd], a scf ret Func_20193: ; 0x20193 ld a, [$d580] and a jr z, .asm_2019e xor a ld [$d580], a ret .asm_2019e ld [$ff8a], a callba Func_10496 ld hl, $d54d inc [hl] ld [$ff8a], a callba Func_106b6 ld [$ff8a], a callba AddCaughtPokemonToParty scf ret CapturePokemonRedStage: ; 0x201c2 ld [$ff8a], a callba CapturePokemon scf ret Func_201ce: ; 0x201ce ld a, [$d5ca] and a ret nz call Func_30e8 ld [$ff8a], a callba Func_dc00 ld [$ff8a], a callba Func_10157 ld de, $0001 call PlaySong scf ret Func_201f2: ; 0x201f2 ld [$ff8a], a callba Func_107f8 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $7 ld [$d54d], a ld a, [wCurrentCatchEmMon] cp NUM_POKEMON - 1 jr nz, .asm_2021b ld [$ff8a], a callba SetPokemonOwnedFlag .asm_2021b ld [$ff8a], a callba Func_86d2 ld [$ff8a], a callba Func_106a6 ret Func_20230: ; 0x20230 ld a, [$d5b6] cp $18 jr z, .asm_2029d sla a ld c, a ld b, $0 ld hl, $d586 add hl, bc ld d, $4 .asm_20242 ld a, $1 ld [hli], a inc hl ld a, l cp $b6 jr z, .asm_2024e dec d jr nz, .asm_20242 .asm_2024e ld a, [$d5b6] add $4 cp $18 jr c, .asm_20259 ld a, $18 .asm_20259 ld [$d5b6], a cp $18 jr nz, .asm_20264 xor a ld [wIndicatorStates + 9], a .asm_20264 ld [$ff8a], a callba Func_10184 ld bc, TenMillionPoints ld [$ff8a], a callba Func_8588 ld bc, $0010 ld de, $0000 push bc push de call Func_30e8 call Func_30db ld hl, $d5e9 ld de, $2a3d call Func_3372 pop de pop bc ld hl, $d5e4 ld de, $2a30 call Func_3357 .asm_2029d ld bc, $0001 ld de, $0000 call Func_3538 scf ret Func_202a8: ; 0x202a8 ld bc, $0000 ld de, $1000 call Func_3538 ret Func_202b2: ; 0x202b2 ld bc, $0005 ld de, $0000 call Func_3538 ret Func_202bc: ; 0x202bc ld a, [$d54c] cp $4 jp z, Func_204f1 cp $c jp z, Func_20569 cp $f jp z, Func_20573 cp $e jp z, Func_2057a cp $0 jr z, .asm_202d9 scf ret .asm_202d9 call Func_204b3 ld a, [$d54d] call CallInFollowingTable PointerTable_202e2: ; 0x202e2 dw Func_20302 db Bank(Func_20302), $00 dw Func_20320 db Bank(Func_20320), $00 dw Func_2032c db Bank(Func_2032c), $00 dw Func_20364 db Bank(Func_20364), $00 dw Func_20394 db Bank(Func_20394), $00 dw Func_20454 db Bank(Func_20454), $00 dw CapturePokemonBlueStage db Bank(CapturePokemonBlueStage), $00 dw Func_2048f db Bank(Func_2048f), $00 Func_20302: ; 0x20302 ld a, [$d5b6] cp $18 jr nz, .asm_2031e ld a, [wCurrentStage] bit 0, a jr z, .asm_2031e ld hl, $d54d inc [hl] ld a, $14 ld [$d54e], a ld a, $5 ld [$d54f], a .asm_2031e scf ret Func_20320: ; 0x20320 ld [$ff8a], a callba Func_10648 scf ret Func_2032c: ; 0x2032c ld a, [wCurrentStage] bit 0, a jr z, .asm_20333 call Func_1130 jr nz, .asm_20362 ld [$ff8a], a callba Func_10414 ld [$ff8a], a callba Func_10362 ld a, [hGameBoyColorFlag] and a ld [$ff8a], a ld a, Bank(Func_10301) ld hl, Func_10301 call nz, BankSwitch .asm_20333 ld a, $1 ld [$d5c6], a ld hl, $d54d inc [hl] .asm_20362 scf ret Func_20364: ; 0x20364 ld a, [wCurrentStage] bit 0, a jr z, .asm_20370 call Func_1130 jr nz, .asm_20392 .asm_20370 ld [$ff8a], a callba Func_10678 ld [$ff8a], a callba Func_10732 ld [$ff8a], a callba Func_10464 ld hl, $d54d inc [hl] .asm_20392 scf ret Func_20394: ; 0x20394 ld a, [$d5be] dec a ld [$d5be], a jr z, .asm_203a7 ld a, [$d5c4] inc a ld [$d5c4], a and $3 ret nz .asm_203a7 ld a, [$d5bf] and a jp z, .asm_20428 xor a ld [$d5bf], a ld a, [$d5c3] ld [$d5be], a xor a ld [$d5c4], a ld a, [wCurrentCatchEmMon] cp MEW - 1 jr nz, .notMew ld a, [$d5c5] inc a ld [$d5c5], a jr nz, .asm_203d7 .notMew ld a, [wNumMonHits] cp $3 jr z, .asm_20417 inc a ld [wNumMonHits], a .asm_203d7 ld bc, ThirtyMillionPoints ld [$ff8a], a callba Func_8588 ld bc, $0030 ld de, $0000 push bc push de call Func_30e8 call Func_30db ld hl, $d5e9 ld de, $2a2a call Func_3372 pop de pop bc ld hl, $d5e4 ld de, $2a21 call Func_3357 ld a, [wNumMonHits] ld [$ff8a], a callba Func_10611 ld c, $2 jr .asm_2044b .asm_20417 xor a ld [$d57e], a ld a, $1 ld [$d57f], a ld hl, $d54d inc [hl] ld c, $2 jr .asm_2044b .asm_20428 ld a, [$d5be] and a ret nz ld a, [$d5bc] ld c, a ld a, [$d5bd] sub c cp $1 ld c, $0 jr nc, .asm_2043d ld c, $1 .asm_2043d ld b, $0 ld hl, $d5c1 add hl, bc ld a, [hl] ld [$d5be], a xor a ld [$d5c4], a .asm_2044b ld a, [$d5bc] add c ld [$d5bd], a scf ret Func_20454: ; 0x20454 ld a, [$d580] and a jr z, .asm_2045f xor a ld [$d580], a ret .asm_2045f ld [$ff8a], a callba Func_10496 ld hl, $d54d inc [hl] ld [$ff8a], a callba Func_106b6 ld [$ff8a], a callba AddCaughtPokemonToParty scf ret CapturePokemonBlueStage: ; 0x20483 ld [$ff8a], a callba CapturePokemon scf ret Func_2048f: ; 0x2048f ld a, [$d5ca] and a ret nz call Func_30e8 ld [$ff8a], a callba Func_dc00 ld [$ff8a], a callba Func_10157 ld de, $0001 call PlaySong scf ret Func_204b3: ; 0x204b3 ld [$ff8a], a callba Func_107f8 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $7 ld [$d54d], a ld a, [wCurrentCatchEmMon] cp MEW - 1 jr nz, .notMew ld [$ff8a], a callba SetPokemonOwnedFlag .notMew ld [$ff8a], a callba Func_86d2 ld [$ff8a], a callba Func_106a6 ret Func_204f1: ; 0x204f1 ld a, [$d5b6] cp $18 jr z, .asm_2055e sla a ld c, a ld b, $0 ld hl, $d586 add hl, bc ld d, $4 .asm_20503 ld a, $1 ld [hli], a inc hl ld a, l cp $b6 ; TODO: This is the low byte of a pointer jr z, .asm_2050f dec d jr nz, .asm_20503 .asm_2050f ld a, [$d5b6] add $4 cp $18 jr c, .asm_2051a ld a, $18 .asm_2051a ld [$d5b6], a cp $18 jr nz, .asm_20525 xor a ld [wIndicatorStates + 9], a .asm_20525 ld [$ff8a], a callba Func_10184 ld bc, TenMillionPoints ld [$ff8a], a callba Func_8588 ld bc, $0010 ld de, $0000 push bc push de call Func_30e8 call Func_30db ld hl, $d5e9 ld de, $2a3d call Func_3372 pop de pop bc ld hl, $d5e4 ld de, $2a30 call Func_3357 .asm_2055e ld bc, $0001 ld de, $0000 call Func_3538 scf ret Func_20569: ; 0x20569 ld bc, $0000 ld de, $1000 call Func_3538 ret Func_20573: ; 0x20573 ld bc, $0005 ld de, $0000 ret Func_2057a: ; 0x2057a ld bc, $0005 ld de, $0000 ret Func_20581: ; 0x20581 ld a, [$d54c] cp $4 jp z, Func_2080f cp $3 jp z, Func_20839 cp $5 jp z, Func_2085a cp $6 jp z, Func_20887 cp $7 jp z, Func_208a8 cp $8 jp z, Func_208c9 cp $9 jp z, Func_208ea cp $a jp z, Func_2090b cp $b jp z, Func_2092c cp $c jp z, Func_2094d cp $d jp z, Func_20b02 cp $2 jp z, Func_20a65 cp $1 jp z, Func_20a82 cp $0 jr z, .asm_205cb scf ret .asm_205cb call Func_2077b ld a, [$d54d] call CallInFollowingTable PointerTable_205d4: ; 0x205d4 dw Func_205e0 db Bank(Func_205e0), $00 dw Func_2070b db Bank(Func_2070b), $00 dw Func_20757 db Bank(Func_20757), $00 Func_205e0: ; 0x205e0 ld a, [wCurrentStage] ld b, a ld a, [$d578] and a ret z dec a bit 0, b jr z, .asm_205f0 add $c .asm_205f0 ld c, a ld b, $0 ld hl, $d566 add hl, bc ld a, [hl] and a ret z xor a ld [hl], a ld [$d551], a call Func_20651 ld a, [$d558] ld [wIndicatorStates + 2], a ld a, [$d559] ld [wIndicatorStates + 3], a ld [wIndicatorStates + 10], a ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(Func_14135) ld hl, Func_14135 call nz, BankSwitch ld bc, TenThousandPoints ld [$ff8a], a callba Func_8588 call Func_30e8 call Func_30db ld de, $2bd8 ld hl, $d5cc call LoadTextHeader ld a, [hGameBoyColorFlag] and a jr z, .asm_2064f ld a, $37 ld hl, $4af0 ld de, $0070 ld bc, $0008 call Func_7dc .asm_2064f scf ret Func_20651: ; 0x20651 ld a, [wCurrentStage] bit 0, a jr z, .asm_20681 ld a, [wCurrentEvolutionType] dec a ld c, a ld b, $0 swap c sla c ld hl, $4e80 add hl, bc ld a, [$d554] ld c, a ld b, $0 swap c sla c push hl ld hl, $8ae0 add hl, bc ld d, h ld e, l pop hl ld bc, $0020 ld a, $36 call LoadVRAMData .asm_20681 ld a, [$d554] inc a ld [$d554], a cp $1 jr nz, .asm_20693 ld de, $0728 call PlaySoundEffect ret .asm_20693 cp $2 jr nz, .asm_2069e ld de, $0744 call PlaySoundEffect ret .asm_2069e cp $3 ret nz ld de, $0745 call PlaySoundEffect ld a, $1 ld [$d604], a ld a, $80 ld [wIndicatorStates + 4], a xor a ld [wIndicatorStates + 9], a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 10], a ld [wIndicatorStates + 8], a ld [wIndicatorStates + 13], a ld [wIndicatorStates + 14], a ld [wIndicatorStates + 11], a ld [wIndicatorStates + 12], a ld [wIndicatorStates + 6], a ld [wIndicatorStates + 7], a ld [$d558], a ld [$d559], a ld a, [wCurrentStage] bit 0, a ret z ld a, $36 ld hl, $6c60 ld de, $8200 ld bc, $00e0 call LoadVRAMData ld a, [hGameBoyColorFlag] and a jr z, .asm_20700 ld a, $37 ld hl, $4af8 ld de, $0078 ld bc, $0008 call Func_7dc .asm_20700 ld [$ff8a], a callba Func_16425 ret Func_2070b: ; 0x2070b ld [$ff8a], a callba Func_dc00 ld [$ff8a], a callba Func_10ca5 ld [$ff8a], a callba Func_10ac8 ld de, $0001 call PlaySong ld hl, $d629 call Func_e4a ld [$ff8a], a callba SetPokemonOwnedFlag ld a, [$d624] cp $3 ret z add $2 cp $3 jr c, .asm_2074d ld a, $3 .asm_2074d ld [$d625], a ld a, $80 ld [$d626], a scf ret Func_20757: ; 0x20757 ld a, [$d5ca] and a ret nz call Func_30e8 ld [$ff8a], a callba Func_dc00 ld [$ff8a], a callba Func_10ac8 ld de, $0001 call PlaySong scf ret Func_2077b: ; 0x2077b ld hl, $d556 ld a, [hli] ld c, a ld b, [hl] or b jr z, .asm_2078e dec bc ld a, b ld [hld], a ld [hl], c or c jr nz, .asm_2078e call Func_20a55 .asm_2078e ld [$ff8a], a callba Func_107f8 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $2 ld [$d54d], a xor a ld [$d604], a ld hl, wIndicatorStates ld [wIndicatorStates + 4], a ld [wIndicatorStates + 9], a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 10], a ld [wIndicatorStates + 8], a ld [wIndicatorStates + 13], a ld [wIndicatorStates + 14], a ld [wIndicatorStates + 11], a ld [wIndicatorStates + 12], a ld [wIndicatorStates + 6], a ld [wIndicatorStates + 7], a ld [$d558], a ld [$d559], a ld [$d551], a ld a, [wCurrentStage] bit 0, a jr z, .asm_207f5 ld [$ff8a], a callba Func_14135 ld [$ff8a], a callba Func_16425 .asm_207f5 ld [$ff8a], a callba Func_86d2 call Func_30e8 call Func_30db ld hl, $d5cc ld de, EvolutionFailedText call LoadTextHeader ret Func_2080f: ; 0x2080f ld bc, $0001 ld de, $5000 call Func_3538 ld a, [$d551] and a jr nz, .asm_20837 ld a, [wIndicatorStates + 9] and a jr z, .asm_20837 xor a ld [wIndicatorStates + 9], a ld a, [$d55c] and a ld a, $0 ld [$d55c], a jp nz, Func_20977 jp Func_209eb .asm_20837 scf ret Func_20839: ; 0x20839 ld a, [$d551] and a jr nz, .asm_20858 ld a, [wIndicatorStates + 2] and a jr z, .asm_20858 xor a ld [wIndicatorStates + 2], a ld a, [$d563] and a ld a, $0 ld [$d563], a jp nz, Func_20977 jp Func_209eb .asm_20858 scf ret Func_2085a: ; 0x2085a ld bc, $0007 ld de, $5000 call Func_3538 ld a, [$d551] and a jr nz, .asm_20885 ld a, [wIndicatorStates + 3] and a jr z, .asm_20885 xor a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 10], a ld a, [$d562] and a ld a, $0 ld [$d562], a jp nz, Func_20977 jp Func_209eb .asm_20885 scf ret Func_20887: ; 0x20887 ld a, [$d551] and a jr nz, .asm_208a6 ld a, [wIndicatorStates + 8] and a jr z, .asm_208a6 xor a ld [wIndicatorStates + 8], a ld a, [$d561] and a ld a, $0 ld [$d561], a jp nz, Func_20977 jp Func_209eb .asm_208a6 scf ret Func_208a8: ; 0x208a8 ld a, [$d551] and a jr nz, .asm_208c7 ld a, [wIndicatorStates + 13] and a jr z, .asm_208c7 xor a ld [wIndicatorStates + 13], a ld a, [$d55d] and a ld a, $0 ld [$d55d], a jp nz, Func_20977 jp Func_209eb .asm_208c7 scf ret Func_208c9: ; 0x208c9 ld a, [$d551] and a jr nz, .asm_208e8 ld a, [wIndicatorStates + 14] and a jr z, .asm_208e8 xor a ld [wIndicatorStates + 14], a ld a, [$d55e] and a ld a, $0 ld [$d55e], a jp nz, Func_20977 jp Func_209eb .asm_208e8 scf ret Func_208ea: ; 0x208ea ld a, [$d551] and a jr nz, .asm_20909 ld a, [wIndicatorStates + 11] and a jr z, .asm_20909 xor a ld [wIndicatorStates + 11], a ld a, [$d55f] and a ld a, $0 ld [$d55f], a jp nz, Func_20977 jp Func_209eb .asm_20909 scf ret Func_2090b: ; 0x2090b ld a, [$d551] and a jr nz, .asm_2092a ld a, [wIndicatorStates + 12] and a jr z, .asm_2092a xor a ld [wIndicatorStates + 12], a ld a, [$d560] and a ld a, $0 ld [$d560], a jp nz, Func_20977 jp Func_209eb .asm_2092a scf ret Func_2092c: ; 0x2092c ld a, [$d551] and a jr nz, .asm_2094b ld a, [wIndicatorStates + 6] and a jr z, .asm_2094b xor a ld [wIndicatorStates + 6], a ld a, [$d565] and a ld a, $0 ld [$d565], a jp nz, Func_20977 jp Func_209eb .asm_2094b scf ret Func_2094d: ; 0x2094d ld bc, $0000 ld de, $1500 call Func_3538 ld a, [$d551] and a jr nz, .asm_20975 ld a, [wIndicatorStates + 7] and a jr z, .asm_20975 xor a ld [wIndicatorStates + 7], a ld a, [$d564] and a ld a, $0 ld [$d564], a jp nz, Func_20977 jp Func_209eb .asm_20975 scf ret Func_20977: ; 0x20977 ld de, $0746 call PlaySoundEffect call Func_20af5 ld a, [wCurrentEvolutionType] ld [hl], a ld [$d551], a ld a, [wIndicatorStates + 2] ld [$d558], a ld a, [wIndicatorStates + 3] ld [$d559], a xor a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 10], a ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(Func_14135) ld hl, Func_14135 call nz, BankSwitch ld a, [hGameBoyColorFlag] and a jr z, .asm_209bf ld a, $37 ld hl, $5188 ld de, $0070 ld bc, $0010 call Func_7dc .asm_209bf ld bc, ThirtyMillionPoints ld [$ff8a], a callba Func_8588 call Func_30e8 call Func_30db ld a, [wCurrentEvolutionType] dec a ld c, a ld b, $0 sla c ld hl, Data_2bf0 add hl, bc ld a, [hli] ld e, a ld a, [hl] ld d, a ld hl, $d5cc call LoadTextHeader scf ret Func_209eb: ; 0x209eb ld de, $0747 call PlaySoundEffect ld a, $1 ld [$d551], a ld a, $80 ld [wIndicatorStates], a ld [wIndicatorStates + 1], a ld a, [wIndicatorStates + 2] ld [$d558], a ld a, [wIndicatorStates + 3] ld [$d559], a xor a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 10], a ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(Func_14135) ld hl, Func_14135 call nz, BankSwitch ld a, $58 ld [$d556], a ld a, $2 ld [$d557], a ld bc, ThirtyMillionPoints ld [$ff8a], a callba Func_8588 call Func_30e8 call Func_30db ld hl, $d5cc ld a, [wCurrentEvolutionType] cp EVO_EXPERIENCE ld de, $2b7b jr z, .asm_20a50 ld de, $2b93 .asm_20a50 call LoadTextHeader scf ret Func_20a55: ; 0x20a55 ld a, [$d551] and a jr z, .asm_20a63 ld a, [wIndicatorStates + 1] and a jr z, .asm_20a63 jr asm_20a9f .asm_20a63 scf ret Func_20a65: ; 0x20a65 ld a, [$d551] and a jr z, .asm_20a80 ld a, [wIndicatorStates + 1] and a jr z, .asm_20a80 ld bc, OneMillionPoints ld [$ff8a], a callba Func_8588 jr asm_20a9f .asm_20a80 scf ret Func_20a82: ; 0x20a82 ld a, [$d551] and a jr z, .asm_20a9d ld a, [wIndicatorStates] and a jr z, .asm_20a9d ld bc, OneMillionPoints ld [$ff8a], a callba Func_8588 jr asm_20a9f .asm_20a9d scf ret asm_20a9f: xor a ld [wIndicatorStates], a ld [wIndicatorStates + 1], a ld [$d551], a ld a, [$d558] ld [wIndicatorStates + 2], a ld a, [$d559] ld [wIndicatorStates + 3], a ld [wIndicatorStates + 10], a ld a, [$d4ac] bit 0, a ld [$ff8a], a ld a, Bank(Func_14135) ld hl, Func_14135 call nz, BankSwitch ld a, [hGameBoyColorFlag] and a jr z, .asm_20ada ld a, $37 ld hl, $4af0 ld de, $0070 ld bc, $0008 call Func_7dc .asm_20ada call Func_30e8 call Func_30db ld a, [wCurrentEvolutionType] cp EVO_EXPERIENCE ld de, $2ba9 jr z, .asm_20aed ld de, $2bc2 .asm_20aed ld hl, $d5cc call LoadTextHeader scf ret Func_20af5: ; 0x20af5 ld a, $11 call Func_a21 ld c, a ld b, $0 ld hl, $d566 add hl, bc ret Func_20b02: ; 0x20b02 ld a, [wCurrentEvolutionMon] cp $ff jr nz, .asm_20b0c ld a, [wCurrentCatchEmMon] .asm_20b0c ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_20b18 inc b .asm_20b18 push bc ld hl, MonBillboardPicPointers add hl, bc ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank inc hl ld c, a ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank inc hl ld b, a ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank ld h, b ld l, c ld de, $8900 ld bc, $0180 call Func_735 pop bc ld a, [hGameBoyColorFlag] and a jr z, .asm_20b80 push bc ld hl, MonBillboardPaletteMapPointers add hl, bc ld a, Bank(MonBillboardPaletteMapPointers) call ReadByteFromBank inc hl ld e, a ld a, Bank(MonBillboardPaletteMapPointers) call ReadByteFromBank inc hl ld d, a ld a, Bank(MonBillboardPaletteMapPointers) call ReadByteFromBank ld hl, $9887 call Func_86f pop bc ld hl, MonBillboardPalettePointers add hl, bc ld a, Bank(MonBillboardPalettePointers) call ReadByteFromBank inc hl ld e, a ld a, Bank(MonBillboardPalettePointers) call ReadByteFromBank inc hl ld d, a ld a, Bank(MonBillboardPalettePointers) call ReadByteFromBank ld bc, $10b0 ld hl, rBGPI call Func_8e1 .asm_20b80 ld [$ff8a], a callba Func_10e0a call Func_3475 ld de, $0000 call PlaySong rst AdvanceFrame ld de, $2d26 call PlaySoundEffect ld [$ff8a], a callba Func_10825 call Func_3475 ld a, $1 ld [$d54d], a scf ret Func_20bae: ; 0x20bae ld a, [$d54c] cp $4 jp z, Func_20e34 cp $1 jp z, Func_21089 cp $e jp z, Func_20e5e cp $f jp z, Func_20e82 cp $7 jp z, Func_20ea6 cp $8 jp z, Func_20ec7 cp $9 jp z, Func_20ee8 cp $a jp z, Func_20f09 cp $b jp z, Func_20f2a cp $c jp z, Func_20f4b cp $d jp z, Func_2112a cp $2 jp z, Func_2105c cp $0 jr z, .asm_20bf3 scf ret .asm_20bf3 call Func_20da0 ld a, [$d54d] call CallInFollowingTable PointerTable_20bfc: ; 0x20bfc dw Func_20c08 db Bank(Func_20c08), $00 dw Func_20d30 db Bank(Func_20d30), $00 dw Func_20d7c db Bank(Func_20d7c), $00 Func_20c08: ; 0x20c08 ld a, [wCurrentStage] ld b, a ld a, [$d578] and a ret z dec a bit 0, b jr z, .asm_20c18 add $c .asm_20c18 ld c, a ld b, $0 ld hl, $d566 add hl, bc ld a, [hl] and a ret z xor a ld [hl], a ld [$d551], a call Func_20c76 ld a, [$d558] ld [wIndicatorStates], a ld a, [$d559] ld [wIndicatorStates + 3], a ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(Func_1c2cb) ld hl, Func_1c2cb call nz, BankSwitch ld bc, TenThousandPoints ld [$ff8a], a ld a, $2 ld hl, $4588 .asm_20c4f call BankSwitch call Func_30e8 call Func_30db ld de, $2bd8 ld hl, $d5cc call LoadTextHeader ld a, [hGameBoyColorFlag] and a jr z, .asm_20c74 ld a, $37 ld hl, $4bf0 ld de, $0070 ld bc, $0008 call Func_7dc .asm_20c74 scf ret Func_20c76: ; 0x20c76 ld a, [wCurrentStage] bit 0, a jr z, .asm_20ca6 ld a, [wCurrentEvolutionType] dec a ld c, a ld b, $0 swap c sla c ld hl, $4e80 add hl, bc ld a, [$d554] ld c, a ld b, $0 swap c sla c push hl ld hl, $8ae0 add hl, bc ld d, h ld e, l pop hl ld bc, $0020 ld a, $36 call LoadVRAMData .asm_20ca6 ld a, [$d554] inc a ld [$d554], a cp $1 jr nz, .asm_20cb8 ld de, $0728 call PlaySoundEffect ret .asm_20cb8 cp $2 jr nz, .asm_20cc3 ld de, $0744 call PlaySoundEffect ret .asm_20cc3 cp $3 ret nz ld de, $0745 call PlaySoundEffect ld a, $1 ld [$d604], a ld a, $80 ld [wIndicatorStates + 4], a xor a ld [wIndicatorStates + 9], a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 8], a ld [wIndicatorStates + 13], a ld [wIndicatorStates + 14], a ld [wIndicatorStates + 11], a ld [wIndicatorStates + 12], a ld [wIndicatorStates + 10], a ld [wIndicatorStates + 6], a ld [wIndicatorStates + 7], a ld [$d558], a ld [$d559], a ld a, [wCurrentStage] bit 0, a ret z ld a, $36 ld hl, $6c60 ld de, $8200 ld bc, $00e0 call LoadVRAMData ld a, [hGameBoyColorFlag] and a jr z, .asm_20d25 ld a, $37 ld hl, $4bf8 ld de, $0078 ld bc, $0008 call Func_7dc .asm_20d25 ld [$ff8a], a callba Func_1e8f6 ret Func_20d30: ; 0x20d30 ld [$ff8a], a callba Func_dc00 ld [$ff8a], a callba Func_10ca5 ld [$ff8a], a callba Func_10ac8 ld de, $0001 call PlaySong ld hl, $d629 call Func_e4a ld [$ff8a], a callba SetPokemonOwnedFlag ld a, [$d624] cp $3 ret z add $2 cp $3 jr c, .asm_20d72 ld a, $3 .asm_20d72 ld [$d625], a ld a, $80 ld [$d626], a scf ret Func_20d7c: ; 0x20d7c ld a, [$d5ca] and a ret nz call Func_30e8 ld [$ff8a], a callba Func_dc00 ld [$ff8a], a callba Func_10ac8 ld de, $0001 call PlaySong scf ret Func_20da0: ; 0x20da0 ld hl, $d556 ld a, [hli] ld c, a ld b, [hl] or b jr z, .asm_20db3 dec bc ld a, b ld [hld], a ld [hl], c or c jr nz, .asm_20db3 call Func_21079 .asm_20db3 ld [$ff8a], a callba Func_107f8 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $2 ld [$d54d], a xor a ld [$d604], a ld hl, wIndicatorStates ld [wIndicatorStates + 4], a ld [wIndicatorStates + 9], a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 8], a ld [wIndicatorStates + 13], a ld [wIndicatorStates + 14], a ld [wIndicatorStates + 11], a ld [wIndicatorStates + 12], a ld [wIndicatorStates + 10], a ld [wIndicatorStates + 6], a ld [wIndicatorStates + 7], a ld [$d558], a ld [$d559], a ld [$d551], a ld a, [wCurrentStage] bit 0, a jr z, .asm_20e1a ld [$ff8a], a callba Func_1c2cb ld [$ff8a], a callba Func_1e8f6 .asm_20e1a ld [$ff8a], a callba Func_86d2 call Func_30e8 call Func_30db ld hl, $d5cc ld de, EvolutionFailedText call LoadTextHeader ret Func_20e34: ; 0x20e34 ld bc, $0001 ld de, $5000 call Func_3538 ld a, [$d551] and a jr nz, .asm_20e5c ld a, [wIndicatorStates + 9] and a jr z, .asm_20e5c xor a ld [wIndicatorStates + 9], a ld a, [$d55c] and a ld a, $0 ld [$d55c], a jp nz, Func_20f75 jp Func_20fef .asm_20e5c scf ret Func_20e5e: ; 0x20e5e ld a, [$d551] and a jr nz, .asm_20e80 ld a, [wIndicatorStates + 3] and a jr z, .asm_20e80 xor a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 10], a ld a, [$d562] and a ld a, $0 ld [$d562], a jp nz, Func_20f75 jp Func_20fef .asm_20e80 scf ret Func_20e82: ; 0x20e82 ld a, [$d551] and a jr nz, .asm_20ea4 ld a, [wIndicatorStates + 8] and a jr z, .asm_20ea4 xor a ld [wIndicatorStates + 8], a ld [wIndicatorStates + 2], a ld a, [$d561] and a ld a, $0 ld [$d561], a jp nz, Func_20f75 jp Func_20fef .asm_20ea4 scf ret Func_20ea6: ; 0x20ea6 ld a, [$d551] and a jr nz, .asm_20ec5 ld a, [wIndicatorStates + 13] and a jr z, .asm_20ec5 xor a ld [wIndicatorStates + 13], a ld a, [$d55d] and a ld a, $0 ld [$d55d], a jp nz, Func_20f75 jp Func_20fef .asm_20ec5 scf ret Func_20ec7: ; 0x20ec7 ld a, [$d551] and a jr nz, .asm_20ee6 ld a, [wIndicatorStates + 14] and a jr z, .asm_20ee6 xor a ld [wIndicatorStates + 14], a ld a, [$d55e] and a ld a, $0 ld [$d55e], a jp nz, Func_20f75 jp Func_20fef .asm_20ee6 scf ret Func_20ee8: ; 0x20ee8 ld a, [$d551] and a jr nz, .asm_20f07 ld a, [wIndicatorStates + 11] and a jr z, .asm_20f07 xor a ld [wIndicatorStates + 11], a ld a, [$d55f] and a ld a, $0 ld [$d55f], a jp nz, Func_20f75 jp Func_20fef .asm_20f07 scf ret Func_20f09: ; 0x20f09 ld a, [$d551] and a jr nz, .asm_20f28 ld a, [wIndicatorStates + 12] and a jr z, .asm_20f28 xor a ld [wIndicatorStates + 12], a ld a, [$d560] and a ld a, $0 ld [$d560], a jp nz, Func_20f75 jp Func_20fef .asm_20f28 scf ret Func_20f2a: ; 0x20f2a ld a, [$d551] and a jr nz, .asm_20f49 ld a, [wIndicatorStates + 6] and a jr z, .asm_20f49 xor a ld [wIndicatorStates + 6], a ld a, [$d565] and a ld a, $0 ld [$d565], a jp nz, Func_20f75 jp Func_20fef .asm_20f49 scf ret Func_20f4b: ; 0x20f4b ld bc, $0000 ld de, $1500 call Func_3538 ld a, [$d551] and a jr nz, .asm_20f73 ld a, [wIndicatorStates + 7] and a jr z, .asm_20f73 xor a ld [wIndicatorStates + 7], a ld a, [$d564] and a ld a, $0 ld [$d564], a jp nz, Func_20f75 jp Func_20fef .asm_20f73 scf ret Func_20f75: ; 0x20f75 ld de, $0746 call PlaySoundEffect call Func_2111d ld a, [wCurrentEvolutionType] ld [hl], a ld [$d551], a ld a, [wIndicatorStates] ld [$d558], a ld a, [wIndicatorStates + 3] ld [$d559], a ld a, [wIndicatorStates + 2] ld [$d63f], a xor a ld [wIndicatorStates], a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(Func_1c2cb) ld hl, Func_1c2cb call nz, BankSwitch ld a, [hGameBoyColorFlag] and a jr z, .asm_20fc3 ld a, $37 ld hl, $5188 ld de, $0070 ld bc, $0010 call Func_7dc .asm_20fc3 ld bc, ThirtyMillionPoints ld [$ff8a], a callba Func_8588 call Func_30e8 call Func_30db ld a, [wCurrentEvolutionType] dec a ld c, a ld b, $0 sla c ld hl, Data_2bf0 add hl, bc ld a, [hli] ld e, a ld a, [hl] ld d, a ld hl, $d5cc call LoadTextHeader scf ret Func_20fef: ; 0x20fef ld de, $0747 call PlaySoundEffect ld a, $1 ld [$d551], a ld a, [wIndicatorStates] ld [$d558], a ld a, $80 ld [wIndicatorStates], a ld [wIndicatorStates + 1], a ld a, [wIndicatorStates + 3] ld [$d559], a ld a, [wIndicatorStates + 2] ld [$d63f], a xor a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(Func_1c2cb) ld hl, Func_1c2cb call nz, BankSwitch ld a, $58 ld [$d556], a ld a, $2 ld [$d557], a ld bc, ThirtyMillionPoints ld [$ff8a], a callba Func_8588 call Func_30e8 call Func_30db ld hl, $d5cc ld a, [wCurrentEvolutionType] cp EVO_EXPERIENCE ld de, $2b7b jr z, .asm_21057 ld de, $2b93 .asm_21057 call LoadTextHeader scf ret Func_2105c: ; 0x2105c ld a, [$d551] and a jr z, .asm_21077 ld a, [wIndicatorStates + 1] and a jr z, .asm_21077 ld bc, OneMillionPoints ld [$ff8a], a ld a, $2 ld hl, $4588 call BankSwitch jr asm_210c7 .asm_21077 scf ret Func_21079: ; 0x21079 ld a, [$d551] and a jr z, .asm_21087 ld a, [wIndicatorStates + 1] and a jr z, .asm_21087 jr asm_210c7 .asm_21087 scf ret Func_21089: ; 0x21089 ld a, [$d551] and a jr nz, .asm_210aa ld a, [wIndicatorStates] and a jr z, .asm_210a8 xor a ld [wIndicatorStates], a ld a, [$d563] and a ld a, $0 ld [$d563], a jp nz, Func_20f75 jp Func_20fef .asm_210a8 scf ret .asm_210aa ld a, [$d551] and a jr z, .asm_210c5 ld a, [wIndicatorStates] and a jr z, .asm_210c5 ld bc, OneMillionPoints ld [$ff8a], a callba Func_8588 jr asm_210c7 .asm_210c5 scf ret asm_210c7: xor a ld [wIndicatorStates + 1], a ld [$d551], a ld a, [$d558] ld [wIndicatorStates], a ld a, [$d559] ld [wIndicatorStates + 3], a ld a, [$d63f] ld [wIndicatorStates + 2], a ld a, [wCurrentStage] bit 0, a ld [$ff8a], a ld a, Bank(Func_1c2cb) ld hl, Func_1c2cb call nz, BankSwitch ld a, [hGameBoyColorFlag] and a jr z, .asm_21102 ld a, $37 ld hl, $4bf0 ld de, $0070 ld bc, $0008 call Func_7dc .asm_21102 call Func_30e8 call Func_30db ld a, [wCurrentEvolutionType] cp EVO_EXPERIENCE ld de, $2ba9 jr z, .asm_21115 ld de, $2bc2 .asm_21115 ld hl, $d5cc call LoadTextHeader scf ret Func_2111d: ; 0x2111d ld a, $11 call Func_a21 ld c, a ld b, $0 ld hl, $d566 add hl, bc ret Func_2112a: ; 0x2112a ld a, [wCurrentEvolutionMon] cp $ff jr nz, .asm_21134 ld a, [wCurrentCatchEmMon] .asm_21134 ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_21140 inc b .asm_21140 push bc ld hl, MonBillboardPicPointers add hl, bc ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank inc hl ld c, a ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank inc hl ld b, a ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank ld h, b ld l, c ld de, $8900 ld bc, $0180 call Func_735 pop bc ld a, [hGameBoyColorFlag] and a jr z, .asm_211a8 push bc ld hl, MonBillboardPaletteMapPointers add hl, bc ld a, Bank(MonBillboardPaletteMapPointers) call ReadByteFromBank inc hl ld e, a ld a, Bank(MonBillboardPaletteMapPointers) call ReadByteFromBank inc hl ld d, a ld a, Bank(MonBillboardPaletteMapPointers) call ReadByteFromBank ld hl, $9887 call Func_86f pop bc ld hl, MonBillboardPalettePointers add hl, bc ld a, Bank(MonBillboardPalettePointers) call ReadByteFromBank inc hl ld e, a ld a, Bank(MonBillboardPalettePointers) call ReadByteFromBank inc hl ld d, a ld a, Bank(MonBillboardPalettePointers) call ReadByteFromBank ld bc, $10b0 ld hl, rBGPI call Func_8e1 .asm_211a8 ld [$ff8a], a callba Func_10e0a call Func_3475 ld de, $0000 call PlaySong rst AdvanceFrame ld de, $2d26 call PlaySoundEffect ld [$ff8a], a callba Func_10825 call Func_3475 ld a, $1 ld [$d54d], a scf ret dr $211d6, $24000 SECTION "bank9", ROMX, BANK[$9] InitMeowthBonusStage: ; 0x24000 ld a, [$d7c1] and a ret nz xor a ld [$d4c8], a ld [wStageCollisionState], a ld a, [wBallType] ld [wBallTypeBackup], a xor a ld [$d4c8], a ld [wBallType], a ld [$d49a], a ld a, $1 ld [$d7ac], a ld a, $40 ld [wMeowthXPosition], a ld a, $20 ld [wMeowthYPosition], a ld a, $10 ld [wMeowthAnimationFrameCounter], a xor a ld [wMeowthStageScore], a ld [$d70b], a ld [wMeowthStageBonusCounter], a ld [$d713], a ld [$d739], a ld bc, $0100 ; 1 minute 0 seconds ld [$ff8a], a callba StartTimer ld a, $12 call SetSongBank ld de, $0004 call PlaySong ret StartBallMeowthBonusStage: ; 0x24059 ld a, $0 ld [wBallXPos], a ld a, $a6 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $56 ld [wBallYPos + 1], a ld a, $40 ld [wBallXVelocity], a xor a ld [$d7ab], a ld [wStageCollisionState], a ld [$d6e6], a ld hl, $d6f3 ld b, $16 .asm_24081 ld a, [hl] and a jr z, .asm_24088 ld a, $1 ld [hl], a .asm_24088 inc hl dec b jr nz, .asm_24081 ld a, $1 ld [$d7ac], a ld a, $40 ld [wMeowthXPosition], a ld a, $20 ld [wMeowthYPosition], a ld a, $10 ld [wMeowthAnimationFrameCounter], a ld a, $ff ; walk left ld [wMeowthXMovement], a xor a ld [wMeowthAnimationFrame], a ld [$d6ec], a ld [wMeowthAnimationFrameIndex], a ld [$d70b], a ld [$d70c], a ld a, $c8 ld [$d71a], a ld [$d727], a ld [$d71b], a ld [$d728], a ld [$d71c], a ld [$d729], a ld [$d724], a ld [$d731], a ld [$d725], a ld [$d732], a ld [$d726], a ld [$d733], a xor a ld [$d717], a ld [$d718], a ld [$d719], a ld [$d721], a ld [$d722], a ld [$d723], a ld [$d714], a ld [$d715], a ld [$d716], a ld [$d71e], a ld [$d71f], a ld [$d720], a ld [$d64e], a ld [$d64f], a ld [$d650], a ld [$d651], a ld [$d795], a ld [$d796], a ld [$d797], a ld [$d798], a ld [$d799], a ld [$d79a], a ld a, [$d4c9] and a ret z xor a ld [$d4c9], a ret Func_24128: ; 0x24128 ld [$ff8a], a callba Func_142fc call Func_2862 ld [$ff8a], a callba Func_24fa3 call Func_24516 ld [$ff8a], a callba Func_1404a ret Func_2414d: ; 0x2414d call Func_24157 call Func_24214 call Func_242bb ret Func_24157: ; 0x24157 ld a, [$d6e7] cp $0 ret nz ld a, [wMeowthXPosition] add $f7 ld b, a ld a, [wMeowthYPosition] add $6 ld c, a call Func_24170 ld a, $3 ret nc ret Func_24170: ; 0x24170 ld a, [wBallXPos + 1] sub b cp $30 jp nc, .asm_24212 ld b, a ld a, [wBallYPos + 1] sub c cp $28 jp nc, .asm_24212 ld c, a ld e, c ld d, $0 sla e rl d sla e rl d sla e rl d ld h, d ld l, e sla e rl d add hl, de ld d, h ld e, l sla e rl d ld l, b ld h, $0 add hl, de ld de, $5500 add hl, de ld a, $3a call ReadByteFromBank bit 7, a jr nz, .asm_24212 sla a ld [$d7ea], a ld a, $1 ld [$d7e9], a ld a, [$d6ec] cp $2 ret z cp $3 ret z ld a, [$d713] and a ret nz ld a, [wMeowthYMovement] and a jr z, .asm_241ed ld a, [wMeowthYMovement] cp $1 jr nz, .asm_241df ld a, [$d70b] cp $3 jr z, .asm_241eb jr .asm_241e6 .asm_241df ld a, [$d70c] cp $3 jr z, .asm_241eb .asm_241e6 ld a, $2 ld [$d6e7], a .asm_241eb scf ret .asm_241ed ld a, [wMeowthYPosition] cp $20 jr nz, .asm_241fd ld a, [$d70b] cp $3 jr z, .asm_24210 jr .asm_2420b .asm_241fd ld a, [wMeowthYPosition] cp $10 jr nz, .asm_24210 ld a, [$d70c] cp $3 jr z, .asm_24210 .asm_2420b ld a, $1 ld [$d6e7], a .asm_24210 scf ret .asm_24212 and a ret Func_24214: ; 0x24214 ld a, [$d717] cp $2 jr nz, .asm_2422e ld a, [$d71a] sub $4 ld b, a ld a, [$d727] add $c ld c, a call Func_24272 ld a, $0 jr c, .asm_24260 .asm_2422e ld a, [$d718] cp $2 jr nz, .asm_24248 ld a, [$d71b] sub $4 ld b, a ld a, [$d728] add $c ld c, a call Func_24272 ld a, $1 jr c, .asm_24260 .asm_24248 ld a, [$d719] cp $2 ret nz ld a, [$d71c] sub $4 ld b, a ld a, [$d729] add $c ld c, a call Func_24272 ld a, $2 ret nc .asm_24260 ld b, $0 ld c, a ld hl, $d717 add hl, bc ld a, $3 ld [hl], a ld hl, $d714 add hl, bc ld a, $0 ld [hl], a ret Func_24272: ; 0x24272 ld a, [wBallXPos + 1] sub b cp $18 jr nc, .asm_242b9 ld b, a ld a, [wBallYPos + 1] sub c cp $18 jr nc, .asm_242b9 ld c, a ld e, c ld d, $0 sla e rl d sla e rl d sla e rl d ld h, d ld l, e sla e rl d add hl, de ld d, h ld e, l ld l, b ld h, $0 add hl, de ld de, $5c80 ; todo add hl, de ld a, $3a call ReadByteFromBank bit 7, a jr nz, .asm_242b9 sla a ld [$d7ea], a ld a, $1 ld [$d7e9], a scf ret .asm_242b9 and a ret Func_242bb: ; 0x242bb ld a, [$d721] cp $2 jr nz, .asm_242d5 ld a, [$d724] sub $4 ld b, a ld a, [$d731] add $c ld c, a call Func_24272 ld a, $0 jr c, .asm_24307 .asm_242d5 ld a, [$d722] cp $2 jr nz, .asm_242ef ld a, [$d725] sub $4 ld b, a ld a, [$d732] add $c ld c, a call Func_24272 ld a, $1 jr c, .asm_24307 .asm_242ef ld a, [$d723] cp $2 ret nz ld a, [$d726] sub $4 ld b, a ld a, [$d733] add $c ld c, a call Func_24272 ld a, $2 ret nc .asm_24307 ld b, $0 ld c, a ld hl, $d721 add hl, bc ld a, $3 ld [hl], a ld hl, $d71e add hl, bc ld a, $0 ld [hl], a ret Func_24319: ; 0x2438f ld a, [$d6f4] cp $0 jr z, .asm_24333 ld a, [$d71a] sub $4 ld b, a ld a, [$d727] add $4 ld c, a call Func_24405 ld a, $0 jr c, .asm_24373 .asm_24333 ld a, [$d6f4] cp $1 jr z, .asm_2434d ld a, [$d71b] sub $4 ld b, a ld a, [$d728] add $4 ld c, a call Func_24405 ld a, $1 jr c, .asm_24373 .asm_2434d ld a, [$d6f4] cp $2 ret z ld a, [$d71c] sub $4 ld b, a ld a, [$d729] add $4 ld c, a call Func_24405 ld a, $2 jr c, .asm_24373 ld a, [$d6f4] ld b, $0 ld c, a ld hl, $d6f8 add hl, bc ld [hl], $0 ret .asm_24373 ld a, [$d6f4] ld b, $0 ld c, a ld hl, $d6f8 add hl, bc inc [hl] ld d, $4 ld a, [$d6f4] add d ld d, a ld a, [hl] cp d ret nc ld hl, $d6f5 add hl, bc ld [hl], $0 ret Func_2438f: ; 0x2438f ld a, [$d6f4] cp $a jr z, .asm_243a9 ld a, [$d724] sub $4 ld b, a ld a, [$d731] add $4 ld c, a call Func_24405 ld a, $a jr c, .asm_243e9 .asm_243a9 ld a, [$d6f4] cp $b jr z, .asm_243c3 ld a, [$d725] sub $4 ld b, a ld a, [$d732] add $4 ld c, a call Func_24405 ld a, $b jr c, .asm_243e9 .asm_243c3 ld a, [$d6f4] cp $c ret z ld a, [$d726] sub $4 ld b, a ld a, [$d733] add $4 ld c, a call Func_24405 ld a, $c jr c, .asm_243e9 ld a, [$d6f4] ld b, $0 ld c, a ld hl, $d6f8 add hl, bc ld [hl], $0 ret .asm_243e9 ld a, [$d6f4] ld b, $0 ld c, a ld hl, $d6f8 add hl, bc inc [hl] ld d, $4 ld a, [$d6f4] add d ld d, a ld a, [hl] cp d ret nc ld hl, $d6f5 add hl, bc ld [hl], $0 ret Func_24405: ; 0x24405 ld hl, $d71a ld a, [$d6f4] ld e, a ld d, $0 add hl, de ld a, [hl] add $8 sub b cp $18 jr nc, .asm_24428 ld b, a ld hl, $d727 add hl, de ld a, [hl] add $8 sub c cp $18 jr nc, .asm_24428 ld c, a ld d, b scf ret .asm_24428 and a ret Func_2442a: ; 0x2442a ld a, [$d710] jr nz, .asm_2443f ld a, [wMeowthStageBonusCounter] dec a dec a cp $fe jr z, .asm_24447 cp $ff jr z, .asm_24447 ld [$d79a], a .asm_2443f ld de, $d79a call Func_24f00 jr .asm_2444b .asm_24447 xor a ld [$d79a], a .asm_2444b call Func_244f5 call Func_245ab call Func_248ac call Func_24d07 ld a, [wMeowthStageScore] cp $14 jr c, .asm_24498 ld a, [$d712] cp $2 jr nc, .asm_24498 ld a, [$d498] cp $4 ret z ld a, $4 ld [$d712], a ld [$d498], a ld a, $96 ld [$d739], a ld de, $0000 call PlaySong ld a, $1 ld [$d49a], a call Func_30e8 call Func_30db ld hl, $d5dc ld de, Data_2fd0 call LoadTextHeader ld de, $4b2a call PlaySoundEffect .asm_24498 ld a, [$d712] cp $4 jr nz, .asm_244b0 ld a, [$d800] and a jr nz, .asm_244b0 ld de, $0004 call PlaySong ld a, $5 ld [$d712], a .asm_244b0 ld a, [$d712] cp $4 jr z, .asm_244c1 ld [$ff8a], a callba Func_107f8 .asm_244c1 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $1 ld [$d7be], a call Func_2862 ld [$ff8a], a callba Func_86d2 ld a, $1 ld [$d713], a ld a, $1 ld [$d712], a ld hl, $4704 ld de, wMeowthAnimationFrameCounter call CopyHLToDE ld a, $4 ld [$d6ec], a ret Func_244f5: ; 0x244f5 ld a, [$d6e6] and a ret nz ld a, [$d4b4] cp $8a ret nc ld a, $1 ld [wStageCollisionState], a ld [$d6e6], a ld [$ff8a], a callba LoadStageCollisionAttributes call Func_24516 ret Func_24516: ; 0x24516 ld a, [wStageCollisionState] sla a ld c, a ld b, $0 ld hl, $4533 ld a, [hGameBoyColorFlag] and a jr z, .asm_24529 ld hl, $456f .asm_24529 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $9 call Func_10aa ret dr $24533, $245ab Func_245ab: ; 0x245ab ld a, [$d6e7] and a jr z, .asm_24621 cp $2 jr z, .asm_24621 ld a, $1 ld [$d6f3], a ld a, [wMeowthYPosition] cp $20 jr z, .asm_245c7 cp $10 jr z, .asm_245cc jr .asm_245cf .asm_245c7 call Func_247d9 jr .asm_245cf .asm_245cc call Func_24c28 .asm_245cf xor a ld [$d6e7], a ld [$d6f3], a ld a, $ff ld [$d803], a ld a, $3 ld [$d804], a ld de, $0033 call PlaySoundEffect ld bc, OneBillionPoints ld [$ff8a], a callba AddBCDScore xor a ld [wMeowthStageBonusCounter], a ld a, [$d6ec] cp $2 jr nc, .asm_24621 and a jr nz, .asm_24611 ld hl, $46fe ld de, wMeowthAnimationFrameCounter call CopyHLToDE ld a, $2 ld [$d6ec], a jr .asm_24651 .asm_24611 ld hl, $4701 ld de, wMeowthAnimationFrameCounter call CopyHLToDE ld a, $3 ld [$d6ec], a jr .asm_24651 .asm_24621 ld a, [$d713] and a jr z, .asm_2462e ld a, $4 ld [$d6ec], a jr .asm_24651 .asm_2462e ld a, [$d6ec] cp $2 jr nc, .asm_24651 ld a, [$d70b] cp $3 jr nz, .asm_24651 ld a, [$d70c] cp $3 jr nz, .asm_24651 ld hl, $4704 ld de, wMeowthAnimationFrameCounter call CopyHLToDE ld a, $4 ld [$d6ec], a .asm_24651 ld a, [$d6ec] cp $2 call c, Func_24709 call Func_2465d ret Func_2465d: ; 0x2465d ld a, [$d6ec] sla a ld c, a ld b, $0 ld hl, $46e2 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld de, wMeowthAnimationFrameCounter call UpdateAnimation ret nc ld a, [$d6ec] and a jr nz, .asm_24689 ld a, [wMeowthAnimationFrameIndex] cp $4 ret nz ld hl, $46ec ld de, wMeowthAnimationFrameCounter call CopyHLToDE ret .asm_24689 cp $1 jr nz, .asm_2469d ld a, [wMeowthAnimationFrameIndex] cp $4 ret nz ld hl, $46f5 ld de, wMeowthAnimationFrameCounter call CopyHLToDE ret .asm_2469d cp $2 jr nz, .asm_246b5 ld a, [wMeowthAnimationFrameIndex] cp $1 ret nz ld hl, $46ec ld de, wMeowthAnimationFrameCounter call CopyHLToDE xor a ld [$d6ec], a ret .asm_246b5 cp $3 jr nz, .asm_246ce ld a, [wMeowthAnimationFrameIndex] cp $1 ret nz ld hl, $46f5 ld de, wMeowthAnimationFrameCounter call CopyHLToDE ld a, $1 ld [$d6ec], a ret .asm_246ce cp $4 jr nz, .asm_24689 ld a, [wMeowthAnimationFrameIndex] cp $2 ret nz ld hl, $4704 ld de, wMeowthAnimationFrameCounter call CopyHLToDE ret dr $246e2, $24709 Func_24709: ; 0x24709 ld a, [wMeowthXPosition] ld hl, wMeowthXMovement add [hl] ld [wMeowthXPosition], a ld hl, wMeowthYMovement ld a, [hl] and a jr z, .asm_24730 bit 7, [hl] ld a, [wMeowthYPosition] jr nz, .asm_24724 inc a jr .asm_24725 .asm_24724 dec a .asm_24725 cp $21 jr z, .asm_24730 cp $f jr z, .asm_24730 ld [wMeowthYPosition], a .asm_24730 call Func_24737 call Func_2476d ret Func_24737: ; 0x24737 ld a, [wMeowthXPosition] cp $8 jr nc, .asm_24742 ld a, $1 jr .asm_2475a .asm_24742 cp $78 jr c, .asm_2474a ld a, $ff jr .asm_2475a .asm_2474a ld a, [$ffb3] and $3f ret nz call GenRandom bit 7, a ld a, $1 jr z, .asm_2475a ld a, $ff .asm_2475a ld [wMeowthXMovement], a bit 7, a ld a, $1 jr z, .asm_24764 xor a .asm_24764 ld [$d6ec], a ld a, $2 ld [wMeowthAnimationFrameCounter], a ret Func_2476d: ; 0x2476d ld a, [wMeowthYMovement] and a jr z, .asm_247ab cp $1 jr z, .asm_24791 ld a, [wMeowthYPosition] cp $10 jr nz, .asm_2478d ld a, [$d6e7] cp $2 jr nz, .asm_2478a ld a, $1 ld [$d6e7], a .asm_2478a xor a jr .asm_247c9 .asm_2478d ld a, $ff jr .asm_247c9 .asm_24791 ld a, [wMeowthYPosition] cp $20 jr nz, .asm_247a7 ld a, [$d6e7] cp $2 jr nz, .asm_247a4 ld a, $1 ld [$d6e7], a .asm_247a4 xor a jr .asm_247c9 .asm_247a7 ld a, $1 jr .asm_247c9 .asm_247ab ld a, [$d70b] cp $3 jr z, .asm_247cd ld a, [$d70c] cp $3 jr z, .asm_247d3 ld a, [$ffb3] and $3f ret nz call GenRandom bit 0, a ld a, $1 jr z, .asm_247c9 ld a, $ff .asm_247c9 ld [wMeowthYMovement], a ret .asm_247cd ld a, $ff ld [wMeowthYMovement], a ret .asm_247d3 ld a, $1 ld [wMeowthYMovement], a ret Func_247d9: ; 0x247d9 ld a, [$d6f3] and a ret z ld a, [$d71a] cp $c8 jr nz, .asm_24823 ld a, [wMeowthXPosition] add $8 ld [$d71a], a ld a, [wMeowthYPosition] add $fb ld [$d727], a ld a, $1 ld [$d717], a xor a ld [$d6f3], a ld [$d714], a ld [$d6f5], a ld [$d6f8], a ld [$d6fb], a ld a, [wMeowthXPosition] add $14 ld b, a ld a, [$d4b4] cp b jr nc, .asm_2481d ld a, $0 ld [$d72a], a jr .asm_24822 .asm_2481d ld a, $1 ld [$d72a], a .asm_24822 ret .asm_24823 ld a, [$d71b] cp $c8 jr nz, .asm_24868 ld a, [wMeowthXPosition] add $8 ld [$d71b], a ld a, [wMeowthYPosition] add $fb ld [$d728], a ld a, $1 ld [$d718], a xor a ld [$d6f3], a ld [$d715], a ld [$d6f6], a ld [$d6f9], a ld [$d6fc], a ld a, [wMeowthXPosition] add $14 ld b, a ld a, [$d4b4] cp b jr nc, .asm_24862 ld a, $0 ld [$d72b], a jr .asm_24867 .asm_24862 ld a, $1 ld [$d72b], a .asm_24867 ret .asm_24868 ld a, [$d71c] cp $c8 ret nz ld a, [wMeowthXPosition] add $8 ld [$d71c], a ld a, [wMeowthYPosition] add $fb ld [$d729], a ld a, $1 ld [$d719], a xor a ld [$d6f3], a ld [$d716], a ld [$d6f7], a ld [$d6fa], a ld [$d6fd], a ld a, [wMeowthXPosition] add $14 ld b, a ld a, [$d4b4] cp b jr nc, .asm_248a6 ld a, $0 ld [$d72c], a jr .asm_248ab .asm_248a6 ld a, $1 ld [$d72c], a .asm_248ab ret Func_248ac: ; 0x248ac ld a, [$d717] cp $1 jr nz, .asm_248d3 ld a, [$d714] cp $a jr z, .asm_248c4 ld a, $0 ld [$d6f4], a call Func_24a30 jr .asm_248d3 .asm_248c4 ld hl, $d70b inc [hl] ld a, $2 ld [$d717], a ld de, $0034 call PlaySoundEffect .asm_248d3 ld a, [$d718] cp $1 jr nz, .asm_248fa ld a, [$d715] cp $a jr z, .asm_248eb ld a, $1 ld [$d6f4], a call Func_24a30 jr .asm_248fa .asm_248eb ld hl, $d70b inc [hl] ld a, $2 ld [$d718], a ld de, $0034 call PlaySoundEffect .asm_248fa ld a, [$d719] cp $1 jr nz, .asm_24921 ld a, [$d716] cp $a jr z, .asm_24912 ld a, $2 ld [$d6f4], a call Func_24a30 jr .asm_24921 .asm_24912 ld hl, $d70b inc [hl] ld a, $2 ld [$d719], a ld de, $0034 call PlaySoundEffect .asm_24921 ld a, [$d717] cp $2 jr nz, .asm_2492c ld hl, $d714 inc [hl] .asm_2492c ld a, [$d718] cp $2 jr nz, .asm_24937 ld hl, $d715 inc [hl] .asm_24937 ld a, [$d719] cp $2 jr nz, .asm_24942 ld hl, $d716 inc [hl] .asm_24942 ld a, [$d717] cp $3 jr nz, .asm_24968 ld a, [$d71a] ld b, a ld a, [$d727] ld c, a ld hl, $d714 inc [hl] ld a, [hl] cp $2 jr nz, .asm_2495f call Func_24e7f jr .asm_24968 .asm_2495f cp $a jr nz, .asm_24968 ld a, $4 ld [$d717], a .asm_24968 ld a, [$d718] cp $3 jr nz, .asm_2498e ld a, [$d71b] ld b, a ld a, [$d728] ld c, a ld hl, $d715 inc [hl] ld a, [hl] cp $2 jr nz, .asm_24985 call Func_24e7f jr .asm_2498e .asm_24985 cp $a jr nz, .asm_2498e ld a, $4 ld [$d718], a .asm_2498e ld a, [$d719] cp $3 jr nz, .asm_249b4 ld a, [$d71c] ld b, a ld a, [$d729] ld c, a ld hl, $d716 inc [hl] ld a, [hl] cp $2 jr nz, .asm_249ab call Func_24e7f jr .asm_249b4 .asm_249ab cp $a jr nz, .asm_249b4 ld a, $4 ld [$d719], a .asm_249b4 ld a, [$d717] cp $4 jr nz, .asm_249d0 ld a, $c8 ld [$d71a], a ld [$d727], a xor a ld [$d717], a ld hl, $d70b dec [hl] ld a, [hl] cp $2 jr z, .asm_24a06 .asm_249d0 ld a, [$d718] cp $4 jr nz, .asm_249ec ld a, $c8 ld [$d71b], a ld [$d728], a xor a ld [$d718], a ld hl, $d70b dec [hl] ld a, [hl] cp $2 jr z, .asm_24a06 .asm_249ec ld a, [$d719] cp $4 ret nz ld a, $c8 ld [$d71c], a ld [$d729], a xor a ld [$d719], a ld hl, $d70b dec [hl] ld a, [hl] cp $2 ret nz .asm_24a06 ld a, [$d713] and a ret nz ld a, [wMeowthXMovement] cp $ff jr z, .asm_24a21 ld hl, $46f5 ld de, wMeowthAnimationFrameCounter call CopyHLToDE ld a, $1 ld [$d6ec], a ret .asm_24a21 ld hl, $46ec ld de, wMeowthAnimationFrameCounter call CopyHLToDE ld a, $0 ld [$d6ec], a ret Func_24a30: ; 0x24a30 ld a, [$d6f4] ld c, a ld b, $0 ld hl, $d6f8 add hl, bc ld a, [hl] and a jr z, .asm_24a42 call Func_24b41 ret .asm_24a42 ld a, [$d6f4] ld c, a ld b, $0 ld hl, $d6f5 add hl, bc ld a, [hl] bit 2, a jr z, .asm_24a5e bit 1, a jr nz, .asm_24a5e bit 0, a jr nz, .asm_24a5e ld hl, $d714 add hl, bc inc [hl] .asm_24a5e ld hl, $d6f5 add hl, bc ld a, [hl] ld hl, $4af1 ld e, a ld d, $0 add hl, de ld hl, $d72a add hl, bc ld a, [hl] and a jr nz, .asm_24a97 .asm_24a72 ld hl, $d72a add hl, bc ld [hl], $0 ld hl, $d71a add hl, bc ld a, [hl] push af ld hl, $d6f5 add hl, bc ld a, [hl] ld e, a ld d, $0 ld hl, $4af1 add hl, de pop af add [hl] cp $8e jr nc, .asm_24a97 ld hl, $d71a add hl, bc ld [hl], a jr .asm_24abf .asm_24a97 ld hl, $d72a add hl, bc ld [hl], $1 ld hl, $d6f5 add hl, bc ld a, [hl] ld e, a ld d, $0 ld hl, $4af1 add hl, de ld a, [hl] ld d, a ld a, $ff sub d inc a ld d, a ld hl, $d71a add hl, bc ld a, [hl] add d cp $5 jr c, .asm_24a72 ld hl, $d71a add hl, bc ld [hl], a .asm_24abf ld hl, $d6f5 add hl, bc ld a, [hl] ld e, a ld d, $0 ld hl, $4af1 add hl, de inc hl ld a, [hl] ld d, a ld hl, $d727 add hl, bc ld a, [hl] add d ld hl, $d727 add hl, bc ld [hl], a ld hl, $d6f5 add hl, bc inc [hl] inc [hl] ld a, [hl] cp $46 jr nz, .asm_24af0 ld a, c cp $9 jr c, .asm_24aed call Func_2438f ret .asm_24aed call Func_24319 .asm_24af0 ret dr $24af1, $24b41 Func_24b41: ; 0x24b41 ld a, [$d6f4] ld b, $0 ld c, a ld hl, $d6f5 add hl, bc ld a, [hl] cp $14 jp nc, Func_24bf6 ld hl, $d6f5 add hl, bc ld a, [hl] ld hl, $4c0a ld e, a ld d, $0 add hl, de ld hl, $d72a add hl, bc ld a, [hl] and a jr nz, .asm_24b8a .asm_24b65 ld hl, $d72a add hl, bc ld [hl], $0 ld hl, $d71a add hl, bc ld a, [hl] push af ld hl, $d6f5 add hl, bc ld a, [hl] ld e, a ld d, $0 ld hl, $4c0a add hl, de pop af add [hl] cp $90 jr nc, .asm_24b8a ld hl, $d71a add hl, bc ld [hl], a jr .asm_24bb2 .asm_24b8a ld hl, $d72a add hl, bc ld [hl], $1 ld hl, $d6f5 add hl, bc ld a, [hl] ld e, a ld d, $0 ld hl, $4c0a add hl, de ld a, [hl] ld d, a ld a, $ff sub d inc a ld d, a ld hl, $d71a add hl, bc ld a, [hl] add d cp $6 jr c, .asm_24b65 ld hl, $d71a add hl, bc ld [hl], a .asm_24bb2 ld hl, $d6f5 add hl, bc ld a, [hl] ld e, a ld d, $0 ld hl, $4c0a add hl, de inc hl ld a, [hl] ld d, a ld hl, $d727 add hl, bc ld a, [hl] add d ld hl, $d727 add hl, bc ld [hl], a ld hl, $d6f5 add hl, bc inc [hl] inc [hl] ld a, [hl] cp $12 jr nz, .asm_24bf4 ld a, c cp $9 jr c, .asm_24be1 call Func_2438f jr .asm_24be4 .asm_24be1 call Func_24319 .asm_24be4 ld a, [$d6f4] ld b, $0 ld c, a ld hl, $d6f8 add hl, bc ld a, [hl] and a jr nz, .asm_24bf4 ld [hl], $1 .asm_24bf4 scf ret Func_24bf6: ; 0x24bf6 ld a, [$d6f4] ld b, $0 ld c, a ld hl, $d6f8 add hl, bc ld [hl], $0 ld hl, $d714 add hl, bc ld [hl], $a ccf ret dr $24c0a, $24c28 Func_24c28: ; 0x24c28 ld a, [$d6f3] and a ret z ld a, [$d724] cp $c8 jr nz, .asm_24c76 ld a, [wMeowthXPosition] add $8 ld [$d724], a ld a, [wMeowthYPosition] add $fb ld [$d731], a ld a, $1 ld [$d721], a ld hl, $d70c inc [hl] xor a ld [$d6f3], a ld [$d71e], a ld [$d6ff], a ld [$d702], a ld [$d705], a ld a, [wMeowthXPosition] add $14 ld b, a ld a, [$d4b4] cp b jr nc, .asm_24c70 ld a, $0 ld [$d734], a jr .asm_24c75 .asm_24c70 ld a, $1 ld [$d734], a .asm_24c75 ret .asm_24c76 ld a, [$d725] cp $c8 jr nz, .asm_24cbf ld a, [wMeowthXPosition] add $8 ld [$d725], a ld a, [wMeowthYPosition] add $fb ld [$d732], a ld a, $1 ld [$d722], a ld hl, $d70c inc [hl] xor a ld [$d6f3], a ld [$d71f], a ld [$d700], a ld [$d703], a ld [$d706], a ld a, [$d6f7] add $14 ld b, a ld a, [$d4b4] cp b jr nc, .asm_24cb9 ld a, $0 ld [$d735], a jr .asm_24cbe .asm_24cb9 ld a, $1 ld [$d735], a .asm_24cbe ret .asm_24cbf ld a, [$d726] cp $c8 ret nz ld a, [wMeowthXPosition] add $8 ld [$d726], a ld a, [wMeowthYPosition] add $fb ld [$d733], a ld a, $1 ld [$d723], a ld hl, $d70c inc [hl] xor a ld [$d6f3], a ld [$d720], a ld [$d701], a ld [$d704], a ld [$d707], a ld a, [wMeowthXPosition] add $14 ld b, a ld a, [$d4b4] cp b jr nc, .asm_24d01 ld a, $0 ld [$d736], a jr .asm_24d06 .asm_24d01 ld a, $1 ld [$d736], a .asm_24d06 ret Func_24d07: ; 0x24d07 ld a, [$d721] cp $1 jr nz, .asm_24d2a ld a, [$d71e] cp $a jr z, .asm_24d1f ld a, $a ld [$d6f4], a call Func_24a30 jr .asm_24d2a .asm_24d1f ld a, $2 ld [$d721], a ld de, $0034 call PlaySoundEffect .asm_24d2a ld a, [$d722] cp $1 jr nz, .asm_24d4d ld a, [$d71f] cp $a jr z, .asm_24d42 ld a, $b ld [$d6f4], a call Func_24a30 jr .asm_24d4d .asm_24d42 ld a, $2 ld [$d722], a ld de, $0034 call PlaySoundEffect .asm_24d4d ld a, [$d723] cp $1 jr nz, .asm_24d70 ld a, [$d720] cp $a jr z, .asm_24d65 ld a, $c ld [$d6f4], a call Func_24a30 jr .asm_24d70 .asm_24d65 ld a, $2 ld [$d723], a ld de, $0034 call PlaySoundEffect .asm_24d70 ld a, [$d721] cp $2 jr nz, .asm_24d7b ld hl, $d71e inc [hl] .asm_24d7b ld a, [$d722] cp $2 jr nz, .asm_24d86 ld hl, $d71f inc [hl] .asm_24d86 ld a, [$d723] cp $2 jr nz, .asm_24d91 ld hl, $d720 inc [hl] .asm_24d91 ld a, [$d721] cp $3 jr nz, .asm_24db7 ld a, [$d724] ld b, a ld a, [$d731] ld c, a ld hl, $d71e inc [hl] ld a, [hl] cp $2 jr nz, .asm_24dae call Func_24e7f jr .asm_24db7 .asm_24dae cp $a jr nz, .asm_24db7 ld a, $4 ld [$d721], a .asm_24db7 ld a, [$d722] cp $3 jr nz, .asm_24ddd ld a, [$d725] ld b, a ld a, [$d732] ld c, a ld hl, $d71f inc [hl] ld a, [hl] cp $2 jr nz, .asm_24dd4 call Func_24e7f jr .asm_24ddd .asm_24dd4 cp $a jr nz, .asm_24ddd ld a, $4 ld [$d722], a .asm_24ddd ld a, [$d723] cp $3 jr nz, .asm_24e03 ld a, [$d726] ld b, a ld a, [$d733] ld c, a ld hl, $d720 inc [hl] ld a, [hl] cp $2 jr nz, .asm_24dfa call Func_24e7f jr .asm_24e03 .asm_24dfa cp $a jr nz, .asm_24e03 ld a, $4 ld [$d723], a .asm_24e03 ld a, [$d721] cp $4 jr nz, .asm_24e1f ld a, $c8 ld [$d724], a ld [$d731], a xor a ld [$d721], a ld hl, $d70c dec [hl] ld a, [hl] cp $2 jr z, .asm_24e55 .asm_24e1f ld a, [$d722] cp $4 jr nz, .asm_24e3b ld a, $c8 ld [$d725], a ld [$d732], a xor a ld [$d722], a ld hl, $d70c dec [hl] ld a, [hl] cp $2 jr z, .asm_24e55 .asm_24e3b ld a, [$d723] cp $4 ret nz ld a, $c8 ld [$d726], a ld [$d733], a xor a ld [$d723], a ld hl, $d70c dec [hl] ld a, [hl] cp $2 ret nz .asm_24e55 ld a, [$d713] and a ret nz ld a, [wMeowthXMovement] cp $ff jr z, .asm_24e70 ld hl, $46f5 ld de, wMeowthAnimationFrameCounter call CopyHLToDE ld a, $1 ld [$d6ec], a ret .asm_24e70 ld hl, $46ec ld de, wMeowthAnimationFrameCounter call CopyHLToDE ld a, $0 ld [$d6ec], a ret Func_24e7f: ; 0x24e7f ld a, b ld [$d79c], a ld a, c ld [$d79e], a ld hl, wMeowthStageBonusCounter inc [hl] ld a, [hl] cp $7 ; maximum bonus jr nz, .asm_24e92 xor a ld [hl], a .asm_24e92 ld a, $ff ld [$d803], a ld a, $3 ld [$d804], a ld de, $0032 call PlaySoundEffect ld a, [wMeowthStageBonusCounter] dec a .asm_24ea6 push af ld bc, TenMillionPoints ld [$ff8a], a callba AddBCDScore ld hl, wMeowthStageScore inc [hl] pop af and a jr z, .asm_24ebf dec a jr .asm_24ea6 .asm_24ebf ld a, [wMeowthStageBonusCounter] dec a dec a cp $fe jr z, .asm_24ed7 cp $ff jr z, .asm_24ed7 ld [$d79a], a ld de, $d79a call Func_24ee7 jr .asm_24ede .asm_24ed7 xor a ld [$d79a], a ld [$d795], a .asm_24ede ld a, $1 ld [$d64e], a call Func_24fa3 ret Func_24ee7: ; 0x24ee7 ld a, $ff ld [$d795], a ld a, [de] sla a ld c, a ld b, $0 ld hl, $4f30 add hl, bc ld a, [hli] ld h, [hl] ld l, a dec de dec de dec de call CopyHLToDE ret Func_24f00: ; 0x24f00 ld a, [de] sla a ld c, a ld b, $0 ld hl, $4f30 add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de dec de call UpdateAnimation pop de ld a, $1 ld [$d710], a ret nc dec de ld a, [de] cp $a ret nz xor a ld [de], a ld [$d79c], a ld [$d79e], a ld [$d795], a xor a ld [$d710], a ret dr $24f30, $24fa3 Func_24fa3: ; 0x24fa3 ld a, [wMeowthStageScore] ld c, a ld b, $0 .asm_24fa9 ld a, c and a jr z, .asm_24fb5 ld a, b add $8 ld b, a dec c ld a, c jr .asm_24fa9 .asm_24fb5 ld a, b and a jr z, .asm_24fbb sub $8 .asm_24fbb ld [$d652], a ld a, [wMeowthStageBonusCounter] and a jr z, .asm_24fca ld b, a ld a, [wMeowthStageScore] inc a sub b .asm_24fca ld [$d651], a ld a, $0 ld [$d64e], a ld a, [wMeowthStageScore] and a ret z cp $15 jr c, .asm_24fe2 ld a, $14 ld [wMeowthStageScore], a jr .asm_24fed .asm_24fe2 push af xor a ld [$d650], a ld a, $1 ld [$d64e], a pop af .asm_24fed sla a ld c, a ld b, $0 ld hl, $5007 ld a, [hGameBoyColorFlag] and a jr z, .asm_24ffd ld hl, $5421 .asm_24ffd add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $9 call Func_10aa ret dr $25007, $2583b Func_2583b: ; 0x2583b ld bc, $7f65 ld [$ff8a], a callba Func_175a4 ld [$ff8a], a callba Func_e4a1 call Func_259fe call Func_25895 call Func_2595e call Func_2586c ld [$ff8a], a callba Func_17e81 call Func_25a39 ret Func_2586c: ; 0x2586c ld a, [wMeowthXPosition] ld hl, hBoardXShift sub [hl] ld b, a ld a, [wMeowthYPosition] ld hl, hBoardYShift sub [hl] ld c, a ld a, [wMeowthAnimationFrame] ld e, a ld d, $0 ld hl, $588b add hl, de ld a, [hl] call LoadOAMData2 ret dr $2588b, $25895 Func_25895: ; 0x25895 ld a, [$d714] cp $b jr nz, .asm_258a0 xor a ld [$d714], a .asm_258a0 ld a, [$d715] cp $b jr nz, .asm_258ab xor a ld [$d715], a .asm_258ab ld a, [$d716] cp $b jr nz, .asm_258b6 xor a ld [$d716], a .asm_258b6 ld a, [$d71a] ld hl, hBoardXShift sub [hl] ld b, a ld a, [$d727] ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d717] sla a ld e, a ld d, $0 ld hl, $5935 add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [$d714] ld e, a ld d, $0 add hl, de ld a, [hl] call LoadOAMData2 ld a, [$d71b] ld hl, hBoardXShift sub [hl] ld b, a ld a, [$d728] ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d718] sla a ld e, a ld d, $0 ld hl, $5935 add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [$d715] ld e, a ld d, $0 add hl, de ld a, [hl] call LoadOAMData2 ld a, [$d71c] ld hl, hBoardXShift sub [hl] ld b, a ld a, [$d729] ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d719] sla a ld e, a ld d, $0 ld hl, $5935 add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [$d716] ld e, a ld d, $0 add hl, de ld a, [hl] call LoadOAMData2 ret dr $25935, $2595e Func_2595e: ; 0x2595e ld a, [$d71e] cp $b jr nz, .asm_25969 xor a ld [$d71e], a .asm_25969 ld a, [$d71f] cp $b jr nz, .asm_25974 xor a ld [$d71f], a .asm_25974 ld a, [$d720] cp $b jr nz, .asm_2597f xor a ld [$d720], a .asm_2597f ld a, [$d724] ld hl, hBoardXShift sub [hl] ld b, a ld a, [$d731] ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d721] sla a ld e, a ld d, $0 ld hl, $5935 add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [$d71e] ld e, a ld d, $0 add hl, de ld a, [hl] call LoadOAMData2 ld a, [$d725] ld hl, hBoardXShift sub [hl] ld b, a ld a, [$d732] ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d722] sla a ld e, a ld d, $0 ld hl, $5935 add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [$d71f] ld e, a ld d, $0 add hl, de ld a, [hl] call LoadOAMData2 ld a, [$d726] ld hl, hBoardXShift sub [hl] ld b, a ld a, [$d733] ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d723] sla a ld e, a ld d, $0 ld hl, $5935 add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [$d720] ld e, a ld d, $0 add hl, de ld a, [hl] call LoadOAMData2 ret Func_259fe: ; 0x259fe ld a, [$d795] and a ret z ld de, $d79c ld a, [de] ld hl, hBoardXShift sub [hl] ld b, a inc de inc de ld a, [de] ld hl, hBoardYShift sub [hl] ld c, a dec de dec de dec de dec de dec de dec de ld a, [de] ld e, a ld d, $0 ld hl, $5a29 add hl, de ld a, [hl] cp $ff call nz, LoadOAMData2 ret dr $25a29, $25a39 Func_25a39: ; 0x25a39 ld a, [$d64e] and a ret z ld a, [$d652] ld hl, hBoardXShift sub [hl] ld b, a xor a ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d64f] cp $a jr c, .asm_25a58 ld de, $0000 jr .asm_25a5b .asm_25a58 ld de, $0001 .asm_25a5b ld hl, $5a7a add hl, de ld a, [hl] call LoadOAMData2 ld hl, $d64f inc [hl] ld a, [hl] cp $14 ret c ld [hl], $0 ld hl, $d650 inc [hl] ld a, [hl] cp $a ret nz xor a ld [$d64e], a ret dr $25a7a, $25a7c InitSeelBonusStage: ; 0x25a7c ld a, [$d7c1] and a ret nz xor a ld [$d4c8], a ld [wStageCollisionState], a ld a, $1 ld [$d7ac], a ld a, [wBallType] ld [wBallTypeBackup], a xor a ld [$d4c8], a ld [wBallType], a ld [$d49a], a ld hl, $5ae5 ; todo ld de, $d76d call Func_25ad8 ld de, $d777 call Func_25ad8 ld de, $d781 call Func_25ad8 xor a ld [$d793], a ld [$d791], a ld [$d792], a ld [$d739], a ld bc, $0130 ; 1 minute 30 seconds ld [$ff8a], a callba StartTimer ld a, $11 call SetSongBank ld de, $0003 call PlaySong ret Func_25ad8: ; 0x25ad8 ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de ret dr $25ae5, $25af1 StartBallSeelBonusStage: ; 0x25af1 ld a, $0 ld [wBallXPos], a ld a, $a6 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $56 ld [wBallYPos + 1], a ld a, $80 ld [wBallXVelocity], a xor a ld [$d7ab], a ld [wStageCollisionState], a ld [$d766], a ld a, $0 ld [$d772], a ld a, $1 ld [$d77c], a ld a, $0 ld [$d786], a ld a, $4 ld [$d775], a ld [$d77f], a ld [$d76b], a ld a, $1 ld [$d76c], a ld a, $4 ld [$d776], a ld a, $1 ld [$d780], a ld a, $5 ld [$d771], a ld [$d77b], a ld [$d785], a ld a, $ff ld [$d79a], a xor a ld [$d792], a ld [$d791], a ld [$d64e], a ld [$d64f], a ld [$d650], a ld [$d651], a ld [$d795], a ld [$d796], a ld [$d797], a ld [$d798], a ld [$d799], a ld [$d79a], a ld de, $d76b ld a, [$d76c] call Func_26137 ld de, $d775 ld a, [$d776] call Func_26137 ld de, $d77f ld a, [$d780] call Func_26137 ld a, [$d4c9] and a ret z xor a ld [$d4c9], a ret Func_25b97: ; 0x25b97 ld [$ff8a], a callba Func_142fc call Func_2862 ld [$ff8a], a callba Func_262f4 call Func_25d0e ld [$ff8a], a callba Func_1404a ret Func_25bbc: ; 0x25bbc call Func_25bc0 ret Func_25bc0: ; 0x25bc0 ld a, [$d76c] cp $0 jr nz, .asm_25bd8 ld a, [$d76e] ld b, a ld a, [$d770] add $14 ld c, a call Func_25c12 ld a, $0 jr c, .asm_25c09 .asm_25bd8 ld a, [$d776] cp $0 jr nz, .asm_25bf0 ld a, [$d778] ld b, a ld a, [$d77a] add $14 ld c, a call Func_25c12 ld a, $1 jr c, .asm_25c09 .asm_25bf0 ld a, [$d780] cp $0 jr nz, .asm_25c08 ld a, [$d782] ld b, a ld a, [$d784] add $14 ld c, a call Func_25c12 ld a, $2 jr c, .asm_25c09 .asm_25c08 ret .asm_25c09 ld [$d768], a ld a, $1 ld [$d767], a ret Func_25c12: ; 0x25c12 ld a, [wBallXPos + 1] sub b cp $20 jr nc, .asm_25c58 ld b, a ld a, [wBallYPos + 1] sub c cp $20 jr nc, .asm_25c58 ld c, a ld e, c ld d, $0 sla e rl d sla e rl d sla e rl d sla e rl d sla e rl d ld l, b ld h, $0 add hl, de ld de, $5100 ; todo add hl, de ld a, $3a ; TODO: hardcoded bank call ReadByteFromBank bit 7, a jr nz, .asm_25c58 sla a ld [$d7ea], a ld a, $1 ld [$d7e9], a scf ret .asm_25c58 and a ret Func_25c5a: ; 0x25c5a call Func_25da3 call Func_25ced ld a, [$d793] cp $14 jr c, .asm_25c98 ld a, [$d794] cp $2 jr nc, .asm_25c98 ld a, $1 ld [$d498], a ld de, $0000 call PlaySong ld a, $1 ld [$d49a], a call Func_30e8 call Func_30db ld hl, $d5dc ld de, Data_2fec call LoadTextHeader ld a, $2 ld [$d794], a ld de, $4b2a call PlaySoundEffect .asm_25c98 ld a, [$d794] cp $2 jr nz, .asm_25cb0 ld a, [$d800] and a jr nz, .asm_25cb0 ld de, $0003 call PlaySong ld a, $5 ld [$d794], a .asm_25cb0 ld a, [$d794] cp $2 jr z, .asm_25cc1 ld [$ff8a], a callba Func_107f8 .asm_25cc1 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $1 ld [$d7be], a call Func_2862 ld [$ff8a], a callba Func_86d2 ld a, $3 ld [$d791], a ld a, [$d794] cp $5 ret z ld a, $1 ld [$d794], a ret Func_25ced: ; 0x25ced ld a, [$d766] and a ret nz ld a, [$d4b4] cp $8a ret nc ld a, $1 ld [wStageCollisionState], a ld [$d766], a ld [$ff8a], a callba LoadStageCollisionAttributes call Func_25d0e ret Func_25d0e: ; 0x25d0e ld a, [wStageCollisionState] sla a ld c, a ld b, $0 ld hl, $5d2b ld a, [hGameBoyColorFlag] and a jr z, .asm_25d21 ld hl, $5d67 .asm_25d21 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $9 call Func_10aa ret dr $25d2b, $25da3 Func_25da3: ; 0x25da3 ld a, [$d767] and a jp z, .asm_25e38 xor a ld [$d767], a ld a, [$d768] sla a ld c, a sla a sla a add c ld c, a ld b, $0 ld hl, $d76c add hl, bc ld d, h ld e, l ld a, $9 ld [de], a dec de dec de dec de push bc ld hl, $61d8 call CopyHLToDE pop bc ld hl, $d76e add hl, bc ld a, [hl] ld [$d79c], a ld hl, $d770 add hl, bc ld a, [hl] add $8 ld [$d79e], a ld a, [$d792] cp $9 jr nz, .asm_25df1 ld a, $0 ld [$d792], a ld [$d79a], a .asm_25df1 ld a, [$d792] dec a cp $ff jr z, .asm_25e04 ld [$d79a], a ld de, $d79a call Func_261f9 jr .asm_25e07 .asm_25e04 ld [$d79a], a .asm_25e07 ld a, $33 ld [$d803], a ld a, $8 ld [$d804], a ld de, $0030 call PlaySoundEffect call Func_25e85 ld hl, $d792 inc [hl] ld a, [$d793] cp $14 ret nc ld hl, $d793 inc [hl] ld a, [$d792] dec a ld b, a ld a, [hl] add b ld [hl], a ld a, $1 ld [$d64e], a call Func_262f4 .asm_25e38 ld de, $d76c ; I think these three calls are one for each Seel swimming around call Func_25f47 ld de, $d776 call Func_25f47 ld de, $d780 call Func_25f47 ld a, [$d792] dec a cp $ff jr z, .asm_25e5d ld [$d79a], a ld de, $d79a call Func_26212 jr .asm_25e60 .asm_25e5d ld [$d79a], a .asm_25e60 ld bc, $087a ; again, probably one call for each Seel swimming around ld de, $d76d ld hl, $d772 call Func_25ec5 ld bc, $087a ld de, $d777 ld hl, $d77c call Func_25ec5 ld bc, $087a ld de, $d781 ld hl, $d786 call Func_25ec5 ret Func_25e85: ; 0x25e85 ld a, [$d792] inc a ld d, $1 ld e, a ld a, $1 .asm_25e8e cp e jr z, .asm_25e96 sla d inc a jr .asm_25e8e .asm_25e96 push de ld a, d cp $32 jr nc, .asm_25ead ld bc, TenMillionPoints ld [$ff8a], a callba AddBCDScore pop de dec d jr .asm_25ebf .asm_25ead ld bc, FiftyThousandPoints ld [$ff8a], a callba AddBCDScore pop de ld a, d sub $32 ld d, a .asm_25ebf ld a, d cp $0 jr nz, .asm_25e96 ret Func_25ec5: ; 0x25ec5 dec de ld a, [de] cp $1 jr z, .asm_25ece cp $4 ret nz .asm_25ece inc de push hl ld a, [hld] push af push bc ld a, [hl] and $f ld c, a ld b, $0 ld hl, $5f27 add hl, bc pop bc pop af and a jr nz, .asm_25f05 ld a, [de] add [hl] ld [de], a inc de ld a, [de] adc $0 ld [de], a pop hl cp c ret c ld a, $1 ld [hl], a dec hl dec hl dec hl dec hl dec hl dec hl ld a, $7 ld [hl], a dec hl dec hl dec hl ld d, h ld e, l ld hl, $61c2 call CopyHLToDE ret .asm_25f05 ld a, [de] sub [hl] ld [de], a inc de ld a, [de] sbc $0 ld [de], a pop hl cp b ret nc xor a ld [hl], a dec hl dec hl dec hl dec hl dec hl dec hl ld a, $8 ld [hl], a dec hl dec hl dec hl ld d, h ld e, l ld hl, $61cd call CopyHLToDE ret dr $25f27, $25f47 Func_25f47: ; 0x25f47 ld a, [de] sla a ld c, a ld b, $0 ld hl, $614f add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de dec de call UpdateAnimation pop de ret nc ld a, [de] rst JumpTable ; calls JumpToFuncInTable CallTable_25f5f: ; 0x25f5f dw Func_25f77 dw Func_25fbe dw Func_25ff3 dw Func_2602a dw Func_2604c dw Func_2607f dw Func_260b6 dw Func_260d8 dw Func_260e2 dw Func_260ec dw Func_26109 dw Func_26120 Func_25f77: ; 0x25f77 dec de ld a, [de] cp $2 ret nz push de inc de inc de inc de inc de inc de inc de ld a, [de] dec a ld [de], a ld a, $3 jr z, .asm_25f8f pop de xor a jp Func_26137 .asm_25f8f ld hl, $d792 ld [hl], $0 call GenRandom bit 7, a jr z, .asm_25fa2 inc de ld a, $1 ld [de], a dec de jr .asm_25fa7 .asm_25fa2 inc de ld a, $0 ld [de], a dec de .asm_25fa7 inc de ld a, [de] and a jr z, .asm_25fb0 ld a, $6 jr .asm_25fb2 .asm_25fb0 ld a, $3 .asm_25fb2 push af ld de, $0031 call PlaySoundEffect pop af pop de jp Func_26137 Func_25fbe: ; 0x25fbe dec de ld a, [de] cp $4 ret nz push de inc de inc de inc de inc de inc de inc de ld a, [de] dec a ld [de], a jr z, .asm_25fd5 pop de ld a, $1 jp Func_26137 .asm_25fd5 ld a, [$d791] cp $0 jr z, .asm_25fe9 ld a, $2 ld [de], a pop de ld a, $4 ld [de], a ld a, $1 jp Func_26137 ret ; unused instruction .asm_25fe9 ld hl, $d791 inc [hl] pop de ld a, $2 jp Func_26137 Func_25ff3: ; 0x25ff3 dec de ld a, [de] cp $7 ret nz xor a call Func_26137 inc de inc de inc de inc de inc de ld a, [$d792] cp $6 jr nc, .asm_26020 cp $2 jr nc, .asm_26016 ld a, $3 ld [de], a ld de, $0031 call PlaySoundEffect ret .asm_26016 ld a, $2 ld [de], a ld de, $0031 call PlaySoundEffect ret .asm_26020 ld a, $1 ld [de], a ld de, $0031 call PlaySoundEffect ret Func_2602a: ; 0x2602a dec de ld a, [de] cp $9 ret nz ld a, $1 call Func_26137 inc de inc de inc de inc de inc de call GenRandom bit 7, a jr z, .asm_26044 ld a, $3 jr .asm_26046 .asm_26044 ld a, $5 .asm_26046 ld [de], a ld hl, $d791 dec [hl] ret Func_2604c: ; 0x2604c dec de ld a, [de] cp $4 ret nz push de inc de inc de inc de inc de inc de inc de ld a, [de] dec a ld [de], a jr z, .asm_26063 pop de ld a, $4 jp Func_26137 .asm_26063 ld a, [$d791] cp $0 jr z, .asm_26075 ld a, $2 ld [de], a pop de ld a, $4 ld [de], a jp Func_26137 ret ; unused instruction .asm_26075 ld hl, $d791 inc [hl] pop de ld a, $5 jp Func_26137 Func_2607f: ; 0x2607f dec de ld a, [de] cp $7 ret nz xor a call Func_26137 inc de inc de inc de inc de inc de ld a, [$d792] cp $6 jr nc, .asm_260ac cp $2 jr nc, .asm_260a2 ld a, $3 ld [de], a ld de, $0031 call PlaySoundEffect ret .asm_260a2 ld a, $2 ld [de], a ld de, $0031 call PlaySoundEffect ret .asm_260ac ld a, $1 ld [de], a ld de, $0031 call PlaySoundEffect ret Func_260b6: ; 0x260b6 dec de ld a, [de] cp $9 ret nz ld a, $4 call Func_26137 inc de inc de inc de inc de inc de call GenRandom bit 7, a jr z, .asm_260d0 ld a, $3 jr .asm_260d2 .asm_260d0 ld a, $5 .asm_260d2 ld [de], a ld hl, $d791 dec [hl] ret Func_260d8: ; 0x260d8 dec de ld a, [de] cp $5 ret nz ld a, $4 jp Func_26137 Func_260e2: ; 0x260e2 dec de ld a, [de] cp $5 ret nz ld a, $1 jp Func_26137 Func_260ec: ; 0x260ec dec de ld a, [de] cp $1 ret nz push de inc de inc de inc de inc de inc de inc de inc de ld a, [de] and a jr z, .asm_26103 pop de ld a, $b jp Func_26137 .asm_26103 pop de ld a, $a jp Func_26137 Func_26109: ; 0x26109 dec de ld a, [de] cp $7 ret nz ld a, $1 call Func_26137 inc de inc de inc de inc de inc de ld a, $5 ld [de], a ld hl, $d791 dec [hl] ret Func_26120: ; 0x26120 dec de ld a, [de] cp $7 ret nz ld a, $4 call Func_26137 inc de inc de inc de inc de inc de ld a, $5 ld [de], a ld hl, $d791 dec [hl] ret Func_26137: ; 0x26137 push af sla a ld c, a ld b, $0 ld hl, $614f ; todo add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de call CopyHLToDE pop de inc de pop af ld [de], a ret dr $2614f, $261f9 Func_261f9: ; 0x261f9 ld a, $ff ld [$d795], a ld a, [de] sla a ld c, a ld b, $0 ld hl, $623a add hl, bc ld a, [hli] ld h, [hl] ld l, a dec de dec de dec de call CopyHLToDE ret Func_26212: ; 0x26212 ld a, [de] sla a ld c, a ld b, $0 ld hl, $623a add hl, bc ld a, [hli] ld h, [hl] ld l, a push de dec de dec de dec de call UpdateAnimation pop de ret nc dec de ld a, [de] cp $a ret nz xor a ld [de], a ld [$d79c], a ld [$d79e], a ld a, a ld [$d795], a ret dr $2623a, $262f4 Func_262f4: ; 0x262f4 ld a, [$d793] ld c, a ld b, $0 .asm_262fa ld a, c and a jr z, .asm_26306 ld a, b add $8 ld b, a dec c ld a, c jr .asm_262fa .asm_26306 ld a, b and a jr z, .asm_2630c sub $8 .asm_2630c ld [$d652], a ld a, [$d792] and a jr z, .asm_2631b ld b, a ld a, [$d793] inc a sub b .asm_2631b ld [$d651], a ld a, [$d793] cp $15 jr c, .asm_2632a ld a, $14 ld [$d793], a .asm_2632a push af xor a ld [$d650], a pop af sla a ld c, a ld b, $0 ld hl, $634a ld a, [hGameBoyColorFlag] and a jr z, .asm_26340 ld hl, $6764 .asm_26340 add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $9 call Func_10aa ret dr $2634a, $26b7e Func_26b7e: ; 0x26b7e ld bc, $7f65 ld [$ff8a], a callba Func_175a4 call Func_26bf7 ld [$ff8a], a callba Func_e4a1 ld [$ff8a], a callba Func_17e81 call Func_26ba9 call Func_26c3c ret Func_26ba9: ; 0x26ba9 ld de, $d76e call Func_26bbc ld de, $d778 call Func_26bbc ld de, $d782 call Func_26bbc ret Func_26bbc: ; 0x26bbc ld a, [de] ld hl, hBoardXShift sub [hl] ld b, a inc de inc de ld a, [de] ld hl, hBoardYShift sub [hl] ld c, a dec de dec de dec de dec de dec de dec de ld a, [de] ld e, a ld d, $0 ld hl, $6bdf add hl, de ld a, [hl] cp $ff call nz, LoadOAMData2 ret dr $26bdf, $26bf7 Func_26bf7: ; 0x26bf7: ; 0x26bf7 ld a, [$d795] cp $0 ret z ld de, $d79c ld a, [de] ld hl, hBoardXShift sub [hl] ld b, a inc de inc de ld a, [de] ld hl, hBoardYShift sub [hl] ld c, a dec de dec de dec de dec de dec de dec de ld a, [de] ld e, a ld d, $0 ld hl, $6c23 add hl, de ld a, [hl] cp $ff call nz, LoadOAMData2 ret dr $26c23, $26c3c Func_26c3c: ; 0x26c3c ld a, [$d64e] and a ret z ld a, [$d652] ld hl, hBoardXShift sub [hl] ld b, a xor a ld hl, hBoardYShift sub [hl] ld c, a ld a, [$d64f] cp $a jr c, .asm_26c5b ld de, $0000 jr .asm_26c5e .asm_26c5b ld de, $0001 .asm_26c5e ld hl, $6c7d add hl, de ld a, [hl] call LoadOAMData2 ld hl, $d64f inc [hl] ld a, [hl] cp $14 ret c ld [hl], $0 ld hl, $d650 inc [hl] ld a, [hl] cp $a ret nz xor a ld [$d64e], a ret dr $26c7d, $28000 SECTION "banka", ROMX, BANK[$a] HandlePokedexScreen: ; 0x28000 ld a, [wScreenState] rst JumpTable ; calls JumpToFuncInTable PointerTable_28004: ; 0x28004 dw LoadPokedexScreen dw MainPokedexScreen dw MonInfoPokedexScreen dw Func_282e9 ; not sure if this is used ever... dw ExitPokedexScreen LoadPokedexScreen: ; 0x2800e ld a, $23 ld [$ff9e], a ld a, $e4 ld [$d80c], a ld a, $93 ld [$d80d], a ld a, $e4 ld [$d80e], a xor a ld [hBoardXShift], a ld a, $8 ld [hBoardYShift], a ld a, $7 ld [$ffa7], a ld a, $8c ld [$ffa6], a ld a, $3b ld [$ffa2], a ld [$ffa8], a ld [$ffa9], a ld [$ffaa], a ld hl, $ff9f set 6, [hl] ld hl, rIE set 1, [hl] ld a, $2 ld [$ffb0], a ld hl, PointerTable_280a2 ld a, [hGameBoyColorFlag] call LoadVideoData xor a ld [wCurPokedexIndex], a ld [wPokedexOffset], a ld [$d95b], a ld [$d95c], a ld [$d960], a ld [$d961], a ld [$d95e], a ld a, $1 ld [$d862], a call ClearOAMBuffer call Func_285db call Func_28931 call Func_289c8 call Func_28a15 call Func_28972 call Func_28a8a call Func_28ad1 call Func_28add call CountNumSeenOwnedMons call Func_b66 ld a, $f call SetSongBank ld de, $0004 call PlaySong call Func_588 call Func_bbe ld hl, wScreenState inc [hl] ret PointerTable_280a2: ; 0x280a2 dw Data_280a6 dw Data_280c4 Data_280a6: ; 0x280a6 dw $5800 db $2B dw vTiles0 dw $6000 dw $5000 db $31 dw $9800 dw $1000 dw $4800 db $31 dw vBGMap1 dw $800 dw $4800 db $31 dw $9e00 dw $800 db $FF, $FF ; terminators Data_280c4: ; 0x280c4 dw $5800 db $2B dw vTiles0 dw $6000 dw $5000 db $31 dw $9800 dw $1000 dw $5400 db $31 dw $9800 dw $1002 dw $4800 db $31 dw vBGMap1 dw $800 dw $4800 db $31 dw $9e00 dw $800 dw $4c00 db $31 dw vBGMap1 dw $802 dw $4c00 db $31 dw $9e00 dw $802 dw $4e80 db $37 dw $0000 dw $101 db $FF, $FF ; terminators MainPokedexScreen: ; 0x280fe call Func_28513 ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_28142 ld a, [$d95f] and a jp nz, .asm_28174 ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc ld a, [hl] and a jp z, .asm_28174 push hl ld a, [wCurPokedexIndex] inc a ld e, a ld d, $0 call PlayCry pop hl bit 1, [hl] jp z, .asm_28174 call Func_288c6 call Func_2885c call Func_926 call Func_2887c call Func_2885c ld hl, wScreenState inc [hl] ret .asm_28142 bit BIT_B_BUTTON, a jr z, .asm_2814f call Func_285db ld a, $4 ld [wScreenState], a ret .asm_2814f ld a, [hGameBoyColorFlag] and a jr z, .asm_28174 ld a, [hJoypadState] bit BIT_START, a jr z, .asm_28168 ld a, [$d960] and a ld a, $ff ld [$d960], a call z, Func_28add jr .asm_28174 .asm_28168 ld a, [$d960] and a ld a, $0 ld [$d960], a call nz, Func_28add .asm_28174 call Func_285db ret MonInfoPokedexScreen: ; 0x28178 ld a, [$d956] bit 0, a jr z, .asm_28190 ld a, [hNewlyPressedButtons] bit BIT_A_BUTTON, a jr z, .asm_2818a call Func_28912 jr .asm_281a2 .asm_2818a bit 1, a jr z, .asm_281a2 jr .asm_28196 .asm_28190 ld a, [hNewlyPressedButtons] and $3 jr z, .asm_281a2 .asm_28196 call Func_288a2 call Func_285db ld a, $1 ld [wScreenState], a ret .asm_281a2 ld a, [hGameBoyColorFlag] and a jr z, .asm_281c7 ld a, [hJoypadState] bit BIT_START, a jr z, .asm_281bb ld a, [$d960] and a ld a, $ff ld [$d960], a call z, Func_28add jr .asm_281c7 .asm_281bb ld a, [$d960] and a ld a, $0 ld [$d960], a call nz, Func_28add .asm_281c7 call Func_2885c ret dr $281cb, $282e9 Func_282e9: ; 0x282e9 ld a, [$d960] and a jr z, .asm_28318 ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, MonAnimatedSpriteTypes add hl, bc ld a, Bank(MonAnimatedSpriteTypes) call ReadByteFromBank ld c, a ld a, [$ffb3] swap a and $7 cp $7 jr z, .asm_2830d and $1 jr .asm_2830f .asm_2830d ld a, $2 .asm_2830f add c add $a5 ld bc, $2030 call LoadOAMData .asm_28318 ld a, [$daa2] sla a ld c, a ld b, $0 ld hl, $42b9 ; todo add hl, bc ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, $63 call LoadOAMData call Func_28368 ld a, [hNewlyPressedButtons] and $6 jr z, .asm_28367 ld a, $31 ld hl, $4800 ; todo ld de, vBGMap1 ld bc, $0200 call LoadVRAMData ld a, $1 ld [rVBK], a ld a, $31 ld hl, $4c00 ; todo ld de, vBGMap1 ld bc, $0200 call LoadVRAMData xor a ld [rVBK], a call Func_28972 call Func_28a8a call Func_28ad1 ld a, $1 ld [wScreenState], a .asm_28367 ret Func_28368: ; 0x28368 ld a, [hJoypadState] bit BIT_A_BUTTON, a jr nz, .asm_28371 jp Func_284bc .asm_28371 ld a, [hPressedButtons] ld b, a ld a, [$daa2] ld e, a ld d, $0 ld hl, $da8a add hl, de ld a, [hl] bit 5, b jr z, .asm_28386 dec a jr .asm_2838a .asm_28386 bit 4, b ret z inc a .asm_2838a and $1f ld [hl], a push af sla e rl d ld hl, $4289 ; todo add hl, de ld a, [hli] ld h, [hl] ld l, a pop af push af swap a and $f call PutTileInVRAM inc hl pop af and $f call PutTileInVRAM ld hl, $442c ; todo add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [hld] ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b sla c rl b sla c rl b ld a, [hld] or c ld c, a sla c rl b sla c rl b sla c rl b sla c rl b sla c rl b ld a, [hl] or c ld c, a ld a, [$d960] and a jr nz, .asm_283ff ld hl, $445c ; todo add hl, de ld a, [hl] ld hl, rBGPI call PutTileInVRAM ld hl, rBGPD ld a, c call PutTileInVRAM ld a, b call PutTileInVRAM ret .asm_283ff ld hl, $445c ; todo add hl, de ld a, [hl] ld hl, rBGPI call PutTileInVRAM ld hl, rBGPD ld a, c call PutTileInVRAM ld a, b call PutTileInVRAM ld hl, $448c ; todo add hl, de ld a, [hl] ld hl, rOBPI call PutTileInVRAM ld hl, rOBPD ld a, c call PutTileInVRAM ld a, b call PutTileInVRAM ret dr $2842c, $284bc Func_284bc: ; 0x284bc ld a, [hPressedButtons] ld b, a ld a, [$daa2] bit 5, b jr z, .asm_284cd dec a bit 7, a jr nz, .asm_284ef jr .asm_284f5 .asm_284cd bit 4, b jr z, .asm_284d8 inc a cp $18 jr nc, .asm_284f3 jr .asm_284f5 .asm_284d8 bit 6, b jr z, .asm_284e4 sub $3 bit 7, a jr nz, .asm_284ef jr .asm_284f5 .asm_284e4 bit 7, b ret z add $3 cp $18 jr nc, .asm_284f3 jr .asm_284f5 .asm_284ef add $18 jr .asm_284f5 .asm_284f3 sub $18 .asm_284f5 ld [$daa2], a ret ExitPokedexScreen: ; 0x284f9 call Func_cb5 call Func_576 ld hl, $ff9f res 6, [hl] ld hl, rIE res 1, [hl] ld a, SCREEN_TITLESCREEN ld [wCurrentScreen], a xor a ld [wScreenState], a ret Func_28513: ; 0x28513 ld a, [hPressedButtons] ld hl, $d95e or [hl] ld [hl], a ld a, [$d95c] and a ret nz ld a, [$d95e] ld b, a ld a, [$d9f8] and a ld a, NUM_POKEMON - 1 jr z, .asm_2852d ld a, NUM_POKEMON .asm_2852d ld d, a ld a, [wCurPokedexIndex] bit 6, b jr z, .asm_28548 and a jr z, .asm_285a9 dec a ld [wCurPokedexIndex], a ld a, $4 ld [$d95c], a ld a, $1 ld [$d95f], a jr .asm_285a9 .asm_28548 bit 7, b jr z, .asm_2855f inc a cp d jr z, .asm_285a9 ld [wCurPokedexIndex], a ld a, $4 ld [$d95c], a ld a, $1 ld [$d95f], a jr .asm_285a9 .asm_2855f ld a, d sub $9 ld d, a ld a, [wPokedexOffset] ld c, $5 bit 5, b jr z, .asm_28586 cp $5 jr nc, .asm_28571 ld c, a .asm_28571 sub c ld [wPokedexOffset], a ld a, [wCurPokedexIndex] sub c ld [wCurPokedexIndex], a ld a, $1 ld [$d95f], a call Func_285ca jr .asm_285aa .asm_28586 bit 4, b jr z, .asm_285ae cp d jr c, .asm_28594 push af cpl add d add $5 ld c, a pop af .asm_28594 add c ld [wPokedexOffset], a ld a, [wCurPokedexIndex] add c ld [wCurPokedexIndex], a ld a, $1 ld [$d95f], a call Func_285ca jr .asm_285aa .asm_285a9 xor a .asm_285aa ld [$d95e], a ret .asm_285ae ld a, [$d95f] and a ret z ld de, $0003 call PlaySoundEffect call Func_28931 call Func_289c8 call Func_28a15 call Func_28add xor a ld [$d95f], a ret Func_285ca: ; 0x285ca xor a ld [$d80a], a call Func_28972 call Func_28a8a call Func_28ad1 ld a, [$d80a] ret Func_285db: ; 0x285db ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc bit 1, [hl] ; has pokemon been seen or captured? call nz, Func_287e7 ld bc, $8c38 ld a, $64 call LoadOAMData ld bc, $8840 ld a, $65 call LoadOAMData ld bc, $8888 ld a, $66 call LoadOAMData call DrawCornerInfoPokedexScreen ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, $7136 ; todo add hl, bc ld a, [hl] add $49 ld c, a ld b, $90 ld a, [$d95b] srl a srl a and $3 ld e, a ld d, $0 ld hl, $4687 ; todo add hl, de ld a, [hl] call LoadOAMData ld a, [wCurPokedexIndex] ld hl, wPokedexOffset sub [hl] jr nc, .asm_2863b dec [hl] ld a, $1 ld [$d95d], a xor a jr .asm_28647 .asm_2863b cp $5 jr c, .asm_28647 ld a, $1 ld [$d95d], a inc [hl] ld a, $4 .asm_28647 ld c, a push bc ld a, [hJoypadState] and a ld a, [$d95b] jr z, .asm_28652 xor a .asm_28652 inc a ld [$d95b], a bit 3, a jr nz, .asm_28667 swap c ld a, c add $40 ld c, a ld b, $10 ld a, $63 call LoadOAMData .asm_28667 pop bc ld a, [$d95c] and a ret z dec a ld [$d95c], a sla a ld e, a ld d, $0 push hl ld hl, PointerTable_2867f add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] PointerTable_2867f: ; 0x2867f dw Func_286dd dw Func_28721 dw Func_286dd dw Func_28765 dr $28687, $2868b DrawCornerInfoPokedexScreen: ; 0x2868b ; If player is holding SELECT button, it draws the seen/own count in the top-right corner. ; Otherwise, it draws the word "POKeDEX". ld a, [hJoypadState] bit BIT_SELECT, a jr z, .asm_286c8 ld bc, $6d03 ld a, [wNumPokemonSeen + 1] call LoadSeenOwnDigitOAM ld a, [wNumPokemonSeen] swap a call LoadSeenOwnDigitOAM ld a, [wNumPokemonSeen] call LoadSeenOwnDigitOAM ld bc, $8202 ld a, $76 call LoadOAMData ; draws the "/" between the seen/owned numbers ld bc, $8703 ld a, [wNumPokemonOwned + 1] call LoadSeenOwnDigitOAM ld a, [wNumPokemonOwned] swap a call LoadSeenOwnDigitOAM ld a, [wNumPokemonOwned] call LoadSeenOwnDigitOAM ret .asm_286c8 ld bc, $6800 ld a, $6a call LoadOAMData ret LoadSeenOwnDigitOAM: ; 0x286d1 and $f add $6c call LoadOAMData ld a, b add $7 ; adds 7 pixels to the next digit's x position on screen ld b, a ret Func_286dd: ; 0x286dd pop hl ld a, [$d862] and a jr nz, .asm_286ff push bc push hl ld a, [$d863] ld e, a ld a, [$d864] ld d, a ld hl, $c010 xor a ld bc, $00a0 call Func_735 ld a, $1 ld [$d862], a pop hl pop bc .asm_286ff ld a, [$d95d] and a ret z ld a, [$d95c] and a jr nz, .asm_2870d ld [$d95d], a .asm_2870d ld a, c and a jr nz, .asm_28719 ld hl, $ffab dec [hl] dec [hl] dec [hl] dec [hl] ret .asm_28719 ld hl, $ffab inc [hl] inc [hl] inc [hl] inc [hl] ret Func_28721: ; 0x28721 pop hl ld a, [$d95d] and a ret z ld a, c and a jr nz, .asm_28747 ld a, [hl] push af sla a and $1e ld c, a ld b, $0 ld hl, $47c7 add hl, bc ld a, [hli] ld h, [hl] ld l, a pop af call Func_28aaa ld hl, $ffab dec [hl] dec [hl] dec [hl] dec [hl] ret .asm_28747 ld a, [hl] add $5 push af sla a and $1e ld c, a ld b, $0 ld hl, $47c7 add hl, bc ld a, [hli] ld h, [hl] ld l, a pop af call Func_28aaa ld hl, $ffab inc [hl] inc [hl] inc [hl] inc [hl] ret Func_28765: ; 0x28765 pop hl ld a, [$d95d] and a ret z ld a, c and a jr nz, .asm_28791 push hl ld a, [hl] sla a and $e ld c, a ld b, $0 ld hl, $47b7 add hl, bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld hl, $ffab dec [hl] dec [hl] dec [hl] dec [hl] pop hl xor a ld [$d862], a ld a, [hl] call Func_28993 ret .asm_28791 push hl ld a, [hl] add $5 sla a and $e ld c, a ld b, $0 ld hl, $47b7 add hl, bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld hl, $ffab inc [hl] inc [hl] inc [hl] inc [hl] pop hl xor a ld [$d862], a ld a, [hl] add $5 call Func_28993 ret dr $287b7, $287e7 Func_287e7: ; 0x287e7 ld a, [$d960] and a ret z ld a, [$d95f] and a ret nz ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, MonAnimatedSpriteTypes add hl, bc ld a, Bank(MonAnimatedSpriteTypes) call ReadByteFromBank bit 7, a ret nz ld [$d5bc], a call Func_28815 ld a, [$d5bd] add $a5 ld bc, $2030 call LoadOAMData ret Func_28815: ; 0x28815 ld a, [$d5be] dec a ld [$d5be], a ret nz ld a, [$d5bf] inc a and $7 ld [$d5bf], a jr nz, .asm_28836 ld a, [$d5c3] ld [$d5be], a xor a ld [$d5c4], a ld c, $2 jr .asm_28854 .asm_28836 ld a, [$d5bc] ld c, a ld a, [$d5bd] sub c cp $1 ld c, $0 jr nc, .asm_28846 ld c, $1 .asm_28846 ld b, $0 ld hl, $d5c1 add hl, bc ld a, [hl] ld [$d5be], a xor a ld [$d5c4], a .asm_28854 ld a, [$d5bc] add c ld [$d5bd], a ret Func_2885c: ; 0x2885c ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc bit 1, [hl] call nz, Func_287e7 ld bc, $8888 ld a, $66 call LoadOAMData ld bc, $6800 ld a, $6a call LoadOAMData ret Func_2887c: ; 0x2887c ld a, $31 ld hl, $5120 ; todo ld de, $9900 ld bc, $0100 call LoadVRAMData ld a, $3f ld [$ffa2], a ld a, $47 ld [$ffa9], a ld b, $33 .asm_28894 push bc ld a, $7a sub b ld [$ffa9], a rst AdvanceFrame pop bc dec b dec b dec b jr nz, .asm_28894 ret Func_288a2: ; 0x288a2 ld b, $33 .asm_288a4 push bc ld a, $44 add b ld [$ffa9], a rst AdvanceFrame pop bc dec b dec b dec b jr nz, .asm_288a4 ld a, $3b ld [$ffa2], a ld [$ffa9], a ld a, $31 ld hl, $5100 ; todo ld de, $9900 ld bc, $0020 call LoadVRAMData ret Func_288c6: ; 0x288c6 ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc bit 1, [hl] ld hl, $4000 jr z, .asm_288f4 ld a, [wCurPokedexIndex] ld c, a ld b, $0 sla c rl b ld hl, $4002 ; todo add hl, bc ld a, $b call ReadByteFromBank inc hl ld c, a ld a, $b call ReadByteFromBank ld b, a ld h, b ld l, c .asm_288f4 xor a ld [$d860], a ld [$d861], a ld bc, $906c ld de, $8900 call Func_28d97 rl a ld [$d956], a ld a, l ld [$d957], a ld a, h ld [$d958], a ret Func_28912: ; 0x28912 ld bc, $906c ld de, $8900 ld a, [$d957] ld l, a ld a, [$d958] ld h, a call Func_28d97 rl a ld [$d956], a ld a, l ld [$d957], a ld a, h ld [$d958], a ret Func_28931: ; 0x28931 ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc ld a, [hl] and a ld hl, $4970 ; todo jr z, .asm_2895d ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld h, b ld l, c sla l rl h sla l rl h sla l rl h add hl, bc add hl, bc add hl, bc ld bc, $5892 add hl, bc .asm_2895d ld a, $ff ld [$d860], a xor a ld [$d861], a ld bc, $500a ld de, $9500 call Func_28e09 ret dr $28970, $28972 Func_28972: ; 0x28972 ld a, [wPokedexOffset] ld c, a ld b, $6 .asm_28978 push bc ld a, c sla a and $e ld e, a ld d, $0 ld hl, $47b7 ; todo add hl, de ld a, [hli] ld e, a ld a, [hl] ld d, a ld a, c call Func_28993 pop bc inc c dec b jr nz, .asm_28978 ret Func_28993: ; 0x28993 push hl ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc ld a, [hl] and a ld hl, $49c6 ; todo jr z, .asm_289b7 ld h, b ld l, c sla l rl h sla l rl h sla l rl h add hl, bc add hl, bc add hl, bc ld bc, $5892 ; todo add hl, bc .asm_289b7 xor a ld [$d860], a ld [$d861], a ld bc, $500a ; todo call Func_28e09 pop hl ret dr $289c6, $289c8 Func_289c8: ; 0x289c8 ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc bit 1, [hl] ld hl, $4a12 ; todo jr z, .asm_289fe ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, MonDexTypeIDs add hl, bc ld c, [hl] ld h, b ld l, c sla l rl h sla l rl h sla l rl h add hl, bc add hl, bc add hl, bc ; value * 11 sla l rl h add hl, bc ; value * 23 ld bc, $5fa6 ; todo add hl, bc .asm_289fe ld a, $ff ld [$d860], a ld a, $4 ld [$d861], a ld bc, $5816 ld de, $95a0 call Func_28e09 ret dr $28a12, $28a15 Func_28a15: ; 0x28a15 ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld h, b ld l, c sla l rl h add hl, bc sla l rl h add hl, bc sla l rl h add hl, bc ld bc, $685d ; todo add hl, bc ld d, h ld e, l ld a, $0 ld [$d865], a push de ld hl, $9844 call Func_28d71 pop de inc de inc de inc de inc de ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc bit 1, [hl] jr nz, .asm_28a54 ld de, $4a7f ; todo .asm_28a54 push de ld hl, $98c8 call Func_28d71 pop de inc de inc de inc de inc de inc de push de ld hl, $98ce call Func_28d71 pop de inc de inc de inc de inc de inc de ld hl, $98f0 ld a, [rLCDC] bit 7, a jr nz, .asm_28a7a ld a, [de] ld [hl], a ret .asm_28a7a ld a, [de] call PutTileInVRAM ret dr $28a7f, $28a8a Func_28a8a: ; 0x28a8a ld a, [wPokedexOffset] ld c, a ld b, $6 .asm_28a90 push bc ld a, c sla a and $1e ld e, a ld d, $0 ld hl, $47c7 ; todo add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, c call Func_28aaa pop bc inc c dec b jr nz, .asm_28a90 ret Func_28aaa: ; 0x28aaa push hl ld c, a ld b, $0 ld h, b ld l, c sla l rl h add hl, bc sla l rl h add hl, bc sla l rl h add hl, bc ld bc, $685d ; todo add hl, bc ld d, h ld e, l ld a, $23 ld [$d865], a pop hl push hl call Func_28d71 pop hl ret Func_28ad1: ; 0x28ad1 ld a, [wPokedexOffset] swap a and $f0 sub $3c ld [$ffab], a ret Func_28add: ; 0x28add ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, wPokedexFlags add hl, bc ld a, [hl] and a jp z, Func_28b76 dec a jp z, Func_28baf ld a, [$d960] and a jr z, .asm_28afc call Func_28cc2 jp z, Func_28bf5 .asm_28afc ld a, [wCurPokedexIndex] ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_28b0b inc b .asm_28b0b push bc ld hl, MonBillboardPicPointers add hl, bc ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank inc hl ld c, a ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank inc hl ld b, a ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank ld h, b ld l, c ld de, $9000 ld bc, $0180 call Func_735 call Func_28cd4 pop bc ld a, [hGameBoyColorFlag] and a ret z push bc ld hl, MonBillboardPaletteMapPointers ; todo add hl, bc ld a, Bank(MonBillboardPaletteMapPointers) call ReadByteFromBank inc hl ld e, a ld a, Bank(MonBillboardPaletteMapPointers) call ReadByteFromBank inc hl ld d, a ld a, Bank(MonBillboardPaletteMapPointers) call ReadByteFromBank ld hl, $9861 call Func_86f pop bc ld hl, MonBillboardPalettePointers add hl, bc ld a, Bank(MonBillboardPalettePointers) call ReadByteFromBank inc hl ld e, a ld a, Bank(MonBillboardPalettePointers) call ReadByteFromBank inc hl ld d, a ld a, Bank(MonBillboardPalettePointers) call ReadByteFromBank ld bc, $10b0 ld hl, rBGPI call Func_8e1 ret Func_28b76: ; 0x28b76 ld a, $1c ld hl, $5500 ld de, $9000 ld bc, $0180 call Func_735 call Func_28cd4 ld a, [hGameBoyColorFlag] and a ret z ld a, $a ld de, $4b97 ld hl, $9861 call Func_86f ret dr $28b97, $28baf Func_28baf: ; 0x28baf ld a, [wCurPokedexIndex] ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_28bbe inc b .asm_28bbe ld hl, MonBillboardPicPointers add hl, bc ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank inc hl ld c, a ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank inc hl ld b, a ld a, Bank(MonBillboardPicPointers) call ReadByteFromBank ld hl, $0180 add hl, bc ld de, $9000 ld bc, $0180 call Func_735 call Func_28cd4 ld a, [hGameBoyColorFlag] and a ret z ld a, $a ld de, $4b97 ; todo ld hl, $9861 call Func_86f ret Func_28bf5: ; 0x28bf5 ld a, [wCurPokedexIndex] ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_28c04 inc b .asm_28c04 push bc ld a, $1 ld [rVBK], a ld hl, MonAnimatedPicPointers add hl, bc ld a, Bank(MonAnimatedPicPointers) call ReadByteFromBank inc hl ld c, a ld a, Bank(MonAnimatedPicPointers) call ReadByteFromBank inc hl ld b, a ld a, Bank(MonAnimatedPicPointers) call ReadByteFromBank ld h, b ld l, c ld de, vTiles0 ld bc, $0300 call Func_735 xor a ld [rVBK], a pop bc push bc ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, $561d ; todo add hl, bc ld a, $4 call ReadByteFromBank ld c, a ld b, $0 sla c rl b add c ld c, a jr nc, .asm_28c4b inc b .asm_28c4b ld hl, Data_13685 add hl, bc ld a, Bank(Data_13685) call ReadByteFromBank ld [$d5c1], a ld [$d5be], a inc hl ld a, Bank(Data_13685) call ReadByteFromBank ld [$d5c2], a inc hl ld a, Bank(Data_13685) call ReadByteFromBank ld [$d5c3], a ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, MonAnimatedSpriteTypes add hl, bc ld a, Bank(MonAnimatedSpriteTypes) call ReadByteFromBank ld [$d5bc], a ld [$d5bd], a call Func_28cf8 pop bc ld a, [hGameBoyColorFlag] and a ret z ld hl, MonAnimatedPalettePointers add hl, bc ld a, Bank(MonAnimatedPalettePointers) call ReadByteFromBank inc hl ld e, a ld a, Bank(MonAnimatedPalettePointers) call ReadByteFromBank inc hl ld d, a ld a, Bank(MonAnimatedPalettePointers) call ReadByteFromBank push af push de ld bc, $10b0 ld hl, rBGPI call Func_8e1 pop de pop af push af ld bc, $08d8 ld hl, rOBPI call Func_8e1 pop af ld bc, $08e8 ld hl, rOBPI call Func_8e1 ret Func_28cc2: ; 0x28cc2 ld a, [wCurPokedexIndex] ld c, a ld b, $0 ld hl, MonAnimatedSpriteTypes add hl, bc ld a, Bank(MonAnimatedSpriteTypes) call ReadByteFromBank bit 7, a ret Func_28cd4: ; 0x28cd4 xor a ld hl, $d961 cp [hl] ret z ld [hl], a ld de, .Data_28ce0 jr asm_28d1d .Data_28ce0: ; 0x28ce0 db $0 db $1 db $2 db $3 db $4 db $5 db $6 db $7 db $8 db $9 db $a db $b db $c db $d db $e db $f db $10 db $11 db $12 db $13 db $14 db $15 db $16 db $17 Func_28cf8: ; 0x28cf8 ld a, $1 ld hl, $d961 cp [hl] ret z ld [hl], a ld de, .data_28d05 jr asm_28d1d .data_28d05 db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe db $fe asm_28d1d ld hl, $9861 ld b, $4 .asm_28d22 ld c, $6 .asm_28d24 ld a, [de] call PutTileInVRAM inc de inc hl dec c jr nz, .asm_28d24 ld a, l add $1a ld l, a dec b jr nz, .asm_28d22 ret CountNumSeenOwnedMons: ; 0x28d35 ld hl, wPokedexFlags ld de, $0000 ; keep a running count: d = owned, e = seen ld b, NUM_POKEMON .checkSeen bit 0, [hl] ; is mon seen? jr z, .checkOwned inc e .checkOwned bit 1, [hl] ; is mon owned? jr z, .nextMon inc d .nextMon inc hl dec b jr nz, .checkSeen push de ld a, d call ConvertHexByteToDecWord ld a, e ld [wNumPokemonSeen], a ld a, d ld [wNumPokemonSeen + 1], a pop de ld a, e call ConvertHexByteToDecWord ld a, e ld [wNumPokemonOwned], a ld a, d ld [wNumPokemonOwned + 1], a ret ClearPokedexData: ; 0x28d66 ld hl, wPokedexFlags xor a ld b, NUM_POKEMON .asm_28d6c ld [hli], a dec b jr nz, .asm_28d6c ret Func_28d71: ; 0x28d71 ld a, [$d865] ld c, a ld a, [de] inc de and a ret z cp $20 jr nz, .asm_28d81 ld a, $ff jr .asm_28d82 .asm_28d81 add c .asm_28d82 call Func_28d88 inc hl jr Func_28d71 Func_28d88: ; 0x28d88 push af ld a, [rLCDC] bit 7, a jr nz, .asm_28d92 pop af ld [hl], a ret .asm_28d92 pop af call PutTileInVRAM ret Func_28d97: ; 0x28d97 push de ld a, b ld [$ff8c], a ld [$ff8d], a ld a, c ld [$ff8f], a xor a ld [$ff8e], a ld [$ff90], a ld [$ff91], a call Func_28e73 .asm_28daa call Func_2957c jr nc, .asm_28dcb push hl ld [$ff92], a cp $ff jr nz, .asm_28dbb call Func_208c jr .asm_28dc8 .asm_28dbb ld c, a ld b, $0 ld hl, CharacterWidths add hl, bc ld a, [hl] ld [$ff93], a call Func_206d .asm_28dc8 pop hl jr nc, .asm_28daa .asm_28dcb pop de push af ld a, e ld [$d863], a ld a, d ld [$d864], a ld a, [$d862] and a jr nz, .asm_28ddd pop af ret .asm_28ddd push hl ld a, [$d861] ld c, a ld b, $0 bit 7, c jr z, .asm_28de9 dec b .asm_28de9 ld hl, $c010 add hl, bc ld a, [$ff8f] ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b sla c rl b xor a call Func_735 pop hl pop af ret Func_28e09: ; 0x28e09 push de ld a, b ld [$ff8c], a ld [$ff8d], a ld a, c ld [$ff8f], a xor a ld [$ff8e], a ld [$ff90], a ld [$ff91], a call Func_28e73 .asm_28e1c call Func_295e1 jr nc, .asm_28e35 push hl ld [$ff92], a ld c, a ld b, $0 ld hl, CharacterWidths add hl, bc ld a, [hl] ld [$ff93], a call Func_206d pop hl jr nc, .asm_28e1c nop .asm_28e35 pop de push af ld a, e ld [$d863], a ld a, d ld [$d864], a ld a, [$d862] and a jr nz, .asm_28e47 pop af ret .asm_28e47 push hl ld a, [$d861] ld c, a ld b, $0 bit 7, c jr z, .asm_28e53 dec b .asm_28e53 ld hl, $c010 add hl, bc ld a, [$ff8f] ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b sla c rl b xor a call Func_735 pop hl pop af ret Func_28e73: ; 0x28e73 push hl ld a, [$ff8f] ld c, a ld b, $0 sla c rl b sla c rl b sla c rl b sla c rl b ld hl, $5566 ; todo ld a, l sub c ld l, a ld a, h sbc b ld h, a push hl ld hl, wc000 ld a, [$d860] ret dr $28e9a, $2957c Func_2957c: ; 0x2957c ld a, $b call ReadByteFromBank inc hl and a ret z cp $d jr nz, .asm_2958c ld a, $ff scf ret .asm_2958c cp $30 jr c, .asm_29594 cp $3a jr c, .asm_295be .asm_29594 cp $41 jr c, .asm_2959c cp $5b jr c, .asm_295c2 .asm_2959c cp $61 jr c, .asm_295a4 cp $7b jr c, .asm_295c6 .asm_295a4 cp $20 jr z, .asm_295ca cp $2c jr z, .asm_295cd cp $2e jr z, .asm_295d1 cp $60 jr z, .asm_295d5 cp $2d jr z, .asm_295d9 cp $40 jr z, .asm_295dd and a ret .asm_295be sub $88 scf ret .asm_295c2 sub $8e scf ret .asm_295c6 sub $94 scf ret .asm_295ca xor a scf ret .asm_295cd ld a, $f3 scf ret .asm_295d1 ld a, $f4 scf ret .asm_295d5 ld a, $fa scf ret .asm_295d9 ld a, $b2 scf ret .asm_295dd ld a, $f9 scf ret Func_295e1: ; 0x295e1 ld a, [hli] and a ret z cp $80 jr nc, .asm_295ed ld c, a ld b, $0 jr .asm_295f0 .asm_295ed ld b, a ld a, [hli] ld c, a .asm_295f0 ld a, b and a jr nz, .asm_295f9 ld a, c sub $20 scf ret .asm_295f9 push hl call Func_29605 ld c, a ld b, $0 add hl, bc ld a, [hl] pop hl scf ret Func_29605: ; 0x29605 ld a, b cp $81 jr nz, .asm_29611 ld hl, $562f ; todo ld a, c sub $40 ret .asm_29611 cp $83 jr nz, .asm_2961c ld hl, $573b ; todo ld a, c sub $40 ret .asm_2961c ld a, c cp $9f jr nc, .asm_29628 ld hl, $569c ; todo ld a, c sub $4f ret .asm_29628 ld hl, $56e8 ; todo ld a, c sub $9f ret dr $2962f, $29792 CharacterWidths: ; 0x29792 ; The Pokedex shows variable-width font. This list specifies the width of every letter (tile?) db $05 db $07 db $07 db $07 db $07 db $07 db $07 db $05 db $07 db $07 db $07 db $07 db $07 db $07 db $06 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $08 ; "A" db $07 ; "B" db $07 ; "C" db $07 ; "D" db $07 ; "E" db $07 ; "F" db $07 ; "G" db $07 ; "H" db $05 ; "I" db $08 ; "J" db $07 ; "K" db $07 ; "L" db $08 ; "M" db $07 ; "N" db $07 ; "O" db $07 ; "P" db $08 ; "Q" db $07 ; "R" db $07 ; "S" db $08 ; "T" db $07 ; "U" db $08 ; "V" db $08 ; "W" db $08 ; "X" db $08 ; "Y" db $08 ; "Z" db $07 db $08 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $08 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $05 db $08 db $07 db $07 db $08 db $07 db $07 db $07 db $08 db $07 db $07 db $08 db $07 db $08 db $08 db $08 db $08 db $08 db $07 ; "a" db $07 ; "b" db $07 ; "c" db $07 ; "d" db $07 ; "e" db $07 ; "f" db $07 ; "g" db $07 ; "h" db $03 ; "i" db $07 ; "j" db $07 ; "k" db $03 ; "l" db $08 ; "m" db $07 ; "n" db $07 ; "o" db $07 ; "p" db $07 ; "q" db $07 ; "r" db $07 ; "s" db $07 ; "t" db $07 ; "u" db $07 ; "v" db $08 ; "w" db $07 ; "x" db $07 ; "y" db $07 ; "z" db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $07 db $03 db $07 db $05 db $05 db $05 db $05 db $05 db $07 db $07 db $07 db $07 db $05 db $07 db $07 db $07 db $07 db $07 dr $29892, $29f0f MonDexTypeIDs: ; 0x29f0f db $00 db $00 db $00 db $01 db $02 db $02 db $03 db $04 db $05 db $06 db $07 db $08 db $09 db $07 db $0A db $0B db $0C db $0C db $60 db $60 db $0B db $0E db $0F db $10 db $0D db $0D db $0D db $0D db $11 db $11 db $12 db $11 db $11 db $12 db $13 db $13 db $14 db $14 db $15 db $15 db $16 db $16 db $17 db $17 db $18 db $19 db $19 db $1A db $1B db $1C db $1C db $1D db $1E db $1F db $1F db $20 db $20 db $21 db $22 db $23 db $23 db $23 db $24 db $24 db $24 db $25 db $25 db $25 db $18 db $26 db $26 db $27 db $27 db $28 db $28 db $29 db $2A db $2A db $2B db $2C db $2D db $2D db $2E db $2F db $30 db $31 db $31 db $32 db $32 db $33 db $33 db $34 db $34 db $35 db $36 db $37 db $37 db $38 db $39 db $3A db $3A db $3B db $3C db $3D db $3E db $3F db $40 db $41 db $42 db $42 db $43 db $12 db $3B db $44 db $45 db $46 db $46 db $47 db $47 db $48 db $49 db $4A db $4B db $4C db $4D db $4E db $4F db $50 db $51 db $52 db $53 db $54 db $55 db $56 db $57 db $58 db $59 db $5A db $5A db $05 db $05 db $5B db $5C db $5D db $4D db $02 db $46 db $46 db $46 db $5E db $5F dr $29fa6, $2c000 SECTION "bankb", ROMX, BANK[$b] Unknown_2c000: ; 0x2c000 db $20, $00 PokedexDescriptionPointers: ; 0x2c002 dw BulbasaurPokedexDescription dw IvysaurPokedexDescription dw VenusaurPokedexDescription dw CharmanderPokedexDescription dw CharmeleonPokedexDescription dw CharizardPokedexDescription dw SquirtlePokedexDescription dw WartortlePokedexDescription dw BlastoisePokedexDescription dw CaterpiePokedexDescription dw MetapodPokedexDescription dw ButterfreePokedexDescription dw WeedlePokedexDescription dw KakunaPokedexDescription dw BeedrillPokedexDescription dw PidgeyPokedexDescription dw PidgeottoPokedexDescription dw PidgeotPokedexDescription dw RattataPokedexDescription dw RaticatePokedexDescription dw SpearowPokedexDescription dw FearowPokedexDescription dw EkansPokedexDescription dw ArbokPokedexDescription dw PikachuPokedexDescription dw RaichuPokedexDescription dw SandshrewPokedexDescription dw SandslashPokedexDescription dw NidoranFPokedexDescription dw NidorinaPokedexDescription dw NidoqueenPokedexDescription dw NidoranMPokedexDescription dw NidorinoPokedexDescription dw NidokingPokedexDescription dw ClefairyPokedexDescription dw ClefablePokedexDescription dw VulpixPokedexDescription dw NinetalesPokedexDescription dw JigglypuffPokedexDescription dw WigglytuffPokedexDescription dw ZubatPokedexDescription dw GolbatPokedexDescription dw OddishPokedexDescription dw GloomPokedexDescription dw VileplumePokedexDescription dw ParasPokedexDescription dw ParasectPokedexDescription dw VenonatPokedexDescription dw VenomothPokedexDescription dw DiglettPokedexDescription dw DugtrioPokedexDescription dw MeowthPokedexDescription dw PersianPokedexDescription dw PsyduckPokedexDescription dw GolduckPokedexDescription dw MankeyPokedexDescription dw PrimeapePokedexDescription dw GrowlithePokedexDescription dw ArcaninePokedexDescription dw PoliwagPokedexDescription dw PoliwhirlPokedexDescription dw PoliwrathPokedexDescription dw AbraPokedexDescription dw KadabraPokedexDescription dw AlakazamPokedexDescription dw MachopPokedexDescription dw MachokePokedexDescription dw MachampPokedexDescription dw BellsproutPokedexDescription dw WeepinbellPokedexDescription dw VictreebellPokedexDescription dw TentacoolPokedexDescription dw TentacruelPokedexDescription dw GeodudePokedexDescription dw GravelerPokedexDescription dw GolemPokedexDescription dw PonytaPokedexDescription dw RapidashPokedexDescription dw SlowpokePokedexDescription dw SlowbroPokedexDescription dw MagnemitePokedexDescription dw MagnetonPokedexDescription dw FarfetchdPokedexDescription dw DoduoPokedexDescription dw DodrioPokedexDescription dw SeelPokedexDescription dw DewgongPokedexDescription dw GrimerPokedexDescription dw MukPokedexDescription dw ShellderPokedexDescription dw CloysterPokedexDescription dw GastlyPokedexDescription dw HaunterPokedexDescription dw GengarPokedexDescription dw OnixPokedexDescription dw DrowzeePokedexDescription dw HypnoPokedexDescription dw KrabbyPokedexDescription dw KinglerPokedexDescription dw VoltorbPokedexDescription dw ElectrodePokedexDescription dw ExeggcutePokedexDescription dw ExeggutorPokedexDescription dw CubonePokedexDescription dw MarowakPokedexDescription dw HitmonleePokedexDescription dw HitmonchanPokedexDescription dw LickitungPokedexDescription dw KoffingPokedexDescription dw WeezingPokedexDescription dw RhyhornPokedexDescription dw RhydonPokedexDescription dw ChanseyPokedexDescription dw TangelaPokedexDescription dw KangaskhanPokedexDescription dw HorseaPokedexDescription dw SeadraPokedexDescription dw GoldeenPokedexDescription dw SeakingPokedexDescription dw StaryuPokedexDescription dw StarmiePokedexDescription dw MrMimePokedexDescription dw ScytherPokedexDescription dw JynxPokedexDescription dw ElectabuzzPokedexDescription dw MagmarPokedexDescription dw PinsirPokedexDescription dw TaurosPokedexDescription dw MagikarpPokedexDescription dw GyaradosPokedexDescription dw LaprasPokedexDescription dw DittoPokedexDescription dw EeveePokedexDescription dw VaporeonPokedexDescription dw JolteonPokedexDescription dw FlareonPokedexDescription dw PorygonPokedexDescription dw OmanytePokedexDescription dw OmastarPokedexDescription dw KabutoPokedexDescription dw KabutopsPokedexDescription dw AerodactylPokedexDescription dw SnorlaxPokedexDescription dw ArticunoPokedexDescription dw ZapdosPokedexDescription dw MoltresPokedexDescription dw DratiniPokedexDescription dw DragonairPokedexDescription dw DragonitePokedexDescription dw MewtwoPokedexDescription dw MewPokedexDescription RhydonPokedexDescription: ; 0x2c130 dex_text "Protected by an" dex_line "armor-like hide," dex_line "it is capable of" dex_line "living in molten" dex_line "lava of 3,600" dex_line "degrees." dex_end KangaskhanPokedexDescription: ; 0x2c18a dex_text "The infant rarely" dex_line "ventures out of" dex_line "its mother`s" dex_line "protective pouch" dex_line "until it is 3" dex_line "years old." dex_end NidoranMPokedexDescription: ; 0x2c1e3 dex_text "Stiffens its ears" dex_line "to sense danger." dex_line "The larger its" dex_line "horns, the more" dex_line "powerful its" dex_line "secreted venom." dex_end ClefairyPokedexDescription: ; 0x2c242 dex_text "Its magical and" dex_line "cute appeal has" dex_line "many admirers." dex_line "It is rare and" dex_line "found only in" dex_line "certain areas." dex_end SpearowPokedexDescription: ; 0x2c29d dex_text "Eats bugs in" dex_line "grassy areas. It" dex_line "has to flap its" dex_line "short wings at" dex_line "high speed to" dex_line "stay airborne." dex_end VoltorbPokedexDescription: ; 0x2c2f7 dex_text "Usually found in" dex_line "power plants." dex_line "Easily mistaken" dex_line "for a POKé BALL," dex_line "they have zapped" dex_line "many people." dex_end NidokingPokedexDescription: ; 0x2c355 dex_text "It uses its" dex_line "powerful tail in" dex_line "battle to smash," dex_line "constrict, then" dex_line "break the prey`s" dex_line "bones." dex_end SlowbroPokedexDescription: ; 0x2c3ab dex_text "The SHELLDER that" dex_line "is latched onto" dex_line "SLOWPOKE`s tail" dex_line "is said to feed" dex_line "on the host`s left" dex_line "over scraps." dex_end IvysaurPokedexDescription: ; 0x2c40d dex_text "When the bulb on" dex_line "its back grows" dex_line "large, it appears" dex_line "to lose the" dex_line "ability to stand" dex_line "on its hind legs." dex_end ExeggutorPokedexDescription: ; 0x2c46e dex_text "Legend has it that" dex_line "on rare occasions," dex_line "one of its heads" dex_line "will drop off and" dex_line "continue on as an" dex_line "EXEGGCUTE." dex_end LickitungPokedexDescription: ; 0x2c4d4 dex_text "Its tongue can be" dex_line "extended like a" dex_line "chameleon`s. It" dex_line "leaves a tingling" dex_line "sensation when it" dex_line "licks enemies." dex_end ExeggcutePokedexDescription: ; 0x2c539 dex_text "Often mistaken" dex_line "for eggs." dex_line "When disturbed," dex_line "they quickly" dex_line "gather and attack" dex_line "in swarms." dex_end GrimerPokedexDescription: ; 0x2c58c dex_text "Appears in filthy" dex_line "areas. Thrives by" dex_line "sucking up" dex_line "polluted sludge" dex_line "that is pumped" dex_line "out of factories." dex_end GengarPokedexDescription: ; 0x2c5ec dex_text "Under a full moon," dex_line "this POKéMON" dex_line "likes to mimic" dex_line "the shadows of" dex_line "people and laugh" dex_line "at their fright." dex_end NidoranFPokedexDescription: ; 0x2c64c dex_text "Although small," dex_line "its venomous" dex_line "barbs render this" dex_line "POKéMON dangerous." dex_line "The female has" dex_line "smaller horns." dex_end NidoqueenPokedexDescription: ; 0x2c6ac dex_text "Its hard scales" dex_line "provide strong" dex_line "protection. It" dex_line "uses its hefty" dex_line "bulk to execute" dex_line "powerful moves." dex_end CubonePokedexDescription: ; 0x2c709 dex_text "Because it never" dex_line "removes its skull" dex_line "helmet, no one" dex_line "has ever seen" dex_line "this POKéMON`s" dex_line "real face." dex_end RhyhornPokedexDescription: ; 0x2c763 dex_text "Its massive bones" dex_line "are 1000 times" dex_line "harder than human" dex_line "bones. It can" dex_line "easily knock a" dex_line "trailer flying." dex_end LaprasPokedexDescription: ; 0x2c7c3 dex_text "A POKéMON that" dex_line "has been over-" dex_line "hunted almost to" dex_line "extinction. It" dex_line "can ferry people" dex_line "across the water." dex_end ArcaninePokedexDescription: ; 0x2c824 dex_text "A POKéMON that" dex_line "has been admired" dex_line "since the past" dex_line "for its beauty." dex_line "It runs agilely" dex_line "as if on wings." dex_end MewPokedexDescription: ; 0x2c883 dex_text "So rare that it" dex_line "is still said to" dex_line "be a mirage by" dex_line "many experts. Only" dex_line "a few people have" dex_line "seen it worldwide. " dex_end GyaradosPokedexDescription: ; 0x2c8ec dex_text "Rarely seen in" dex_line "the wild. Huge" dex_line "and vicious, it" dex_line "is capable of" dex_line "destroying entire" dex_line "cities in a rage." dex_end ShellderPokedexDescription: ; 0x2c94c dex_text "Its hard shell" dex_line "repels any kind" dex_line "of attack." dex_line "It is vulnerable" dex_line "only when its" dex_line "shell is open." dex_end TentacoolPokedexDescription: ; 0x2c9a4 dex_text "Drifts in shallow" dex_line "seas. Anglers who" dex_line "hook them by" dex_line "accident are" dex_line "often punished by" dex_line "its stinging acid." dex_end GastlyPokedexDescription: ; 0x2ca07 dex_text "Almost invisible," dex_line "this gaseous" dex_line "POKéMON cloaks" dex_line "the target and" dex_line "puts it to sleep" dex_line "without notice." dex_end ScytherPokedexDescription: ; 0x2ca65 dex_text "With ninja-like" dex_line "agility and speed," dex_line "it can create the" dex_line "illusion that" dex_line "there is more" dex_line "than one." dex_end StaryuPokedexDescription: ; 0x2cac0 dex_text "An enigmatic" dex_line "POKéMON that can" dex_line "effortlessly" dex_line "regenerate any" dex_line "appendage it" dex_line "loses in battle." dex_end BlastoisePokedexDescription: ; 0x2cb18 dex_text "A brutal POKéMON" dex_line "with pressurized" dex_line "water jets on its" dex_line "shell. They are" dex_line "used for high" dex_line "speed tackles." dex_end PinsirPokedexDescription: ; 0x2cb79 dex_text "If it fails to" dex_line "crush the victim" dex_line "in its pincers," dex_line "it will swing it" dex_line "around and toss" dex_line "it hard." dex_end TangelaPokedexDescription: ; 0x2cbd3 dex_text "The whole body is" dex_line "swathed with wide" dex_line "vines that are" dex_line "similar to sea-" dex_line "weed. Its vines" dex_line "shake as it walks." dex_end GrowlithePokedexDescription: ; 0x2cc39 dex_text "Very protective" dex_line "of its territory." dex_line "It will bark and" dex_line "bite to repel" dex_line "intruders from" dex_line "its space." dex_end OnixPokedexDescription: ; 0x2cc94 dex_text "As it grows, the" dex_line "stone portions of" dex_line "its body harden" dex_line "to become similar" dex_line "to a diamond, but" dex_line "colored black." dex_end FearowPokedexDescription: ; 0x2ccfa dex_text "With its huge and" dex_line "magnificent wings," dex_line "it can keep aloft" dex_line "without ever" dex_line "having to land" dex_line "for rest." dex_end PidgeyPokedexDescription: ; 0x2cd57 dex_text "A common sight in" dex_line "forests and woods." dex_line "It flaps its" dex_line "wings at ground" dex_line "level to kick up" dex_line "blinding sand." dex_end SlowpokePokedexDescription: ; 0x2cdb9 dex_text "Incredibly slow" dex_line "and dopey. It" dex_line "takes 5 seconds" dex_line "for it to feel" dex_line "pain when under" dex_line "attack." dex_end KadabraPokedexDescription: ; 0x2ce0e dex_text "It emits special" dex_line "alpha waves from" dex_line "its body that" dex_line "induce headaches" dex_line "just by being" dex_line "close by." dex_end GravelerPokedexDescription: ; 0x2ce67 dex_text "Rolls down slopes" dex_line "to move. It rolls" dex_line "over any obstacle" dex_line "without slowing" dex_line "or changing its" dex_line "direction." dex_end ChanseyPokedexDescription: ; 0x2cec8 dex_text "A rare and elusive" dex_line "POKéMON that is" dex_line "said to bring" dex_line "happiness to those" dex_line "who manage to get" dex_line "it." dex_end MachokePokedexDescription: ; 0x2cf22 dex_text "Its muscular body" dex_line "is so powerful, it" dex_line "must wear a power" dex_line "save belt to be" dex_line "able to regulate" dex_line "its motions." dex_end MrMimePokedexDescription: ; 0x2cf87 dex_text "If interrupted" dex_line "while it is" dex_line "miming, it will" dex_line "slap around the" dex_line "offender with its" dex_line "broad hands." dex_end HitmonleePokedexDescription: ; 0x2cfe1 dex_text "When in a hurry," dex_line "its legs lengthen" dex_line "progressively." dex_line "It runs smoothly" dex_line "with extra long," dex_line "loping strides." dex_end HitmonchanPokedexDescription: ; 0x2d045 dex_text "While apparently" dex_line "doing nothing, it" dex_line "fires punches in" dex_line "lightning fast" dex_line "volleys that are" dex_line "impossible to see. " dex_end ArbokPokedexDescription: ; 0x2d0ad dex_text "It is rumored that" dex_line "the ferocious" dex_line "warning markings" dex_line "on its belly" dex_line "differ from area" dex_line "to area." dex_end ParasectPokedexDescription: ; 0x2d106 dex_text "A host-parasite" dex_line "pair in which the" dex_line "parasite mushroom" dex_line "has taken over the" dex_line "host bug. Prefers" dex_line "damp places. " dex_end PsyduckPokedexDescription: ; 0x2d16d dex_text "While lulling its" dex_line "enemies with its" dex_line "vacant look, this" dex_line "wily POKéMON will" dex_line "use psychokinetic" dex_line "powers." dex_end DrowzeePokedexDescription: ; 0x2d1ce dex_text "Puts enemies to" dex_line "sleep then eats" dex_line "their dreams." dex_line "Occasionally gets" dex_line "sick from eating" dex_line "bad dreams." dex_end GolemPokedexDescription: ; 0x2d22b dex_text "Its boulder-like" dex_line "body is extremely" dex_line "hard. It can" dex_line "easily withstand" dex_line "dynamite blasts" dex_line "without damage." dex_end MagmarPokedexDescription: ; 0x2d28c dex_text "Its body always" dex_line "burns with an" dex_line "orange glow that" dex_line "enables it to" dex_line "hide perfectly" dex_line "among flames." dex_end ElectabuzzPokedexDescription: ; 0x2d2e6 dex_text "Normally found" dex_line "near power plants," dex_line "they can wander" dex_line "away and cause" dex_line "major blackouts" dex_line "in cities." dex_end MagnetonPokedexDescription: ; 0x2d342 dex_text "Formed by several" dex_line "MAGNEMITEs linked" dex_line "together. They" dex_line "frequently appear" dex_line "when sunspots" dex_line "flare up." dex_end KoffingPokedexDescription: ; 0x2d39f dex_text "Because it stores" dex_line "several kinds of" dex_line "toxic gases in" dex_line "its body, it is" dex_line "prone to exploding" dex_line "without warning." dex_end MankeyPokedexDescription: ; 0x2d405 dex_text "Extremely quick to" dex_line "anger. It could" dex_line "be docile one" dex_line "moment then" dex_line "thrashing away" dex_line "the next instant." dex_end SeelPokedexDescription: ; 0x2d463 dex_text "The protruding" dex_line "horn on its head" dex_line "is very hard." dex_line "It is used for" dex_line "bashing through" dex_line "thick ice." dex_end DiglettPokedexDescription: ; 0x2d4bb dex_text "Lives about one" dex_line "yard underground" dex_line "where it feeds on" dex_line "plant roots. It" dex_line "sometimes appears" dex_line "above ground." dex_end TaurosPokedexDescription: ; 0x2d51e dex_text "When it targets" dex_line "an enemy, it" dex_line "charges furiously" dex_line "while whipping its" dex_line "body with its" dex_line "long tails." dex_end FarfetchdPokedexDescription: ; 0x2d57a dex_text "The sprig of" dex_line "green onions it" dex_line "holds is its" dex_line "weapon. It is" dex_line "used much like a" dex_line "metal sword." dex_end VenonatPokedexDescription: ; 0x2d5d0 dex_text "Lives in the" dex_line "shadows of tall" dex_line "trees where it" dex_line "eats insects. It" dex_line "is attracted by" dex_line "light at night." dex_end DragonitePokedexDescription: ; 0x2d62d dex_text "An extremely" dex_line "rarely seen" dex_line "marine POKéMON." dex_line "Its intelligence" dex_line "is said to match" dex_line "that of humans." dex_end DoduoPokedexDescription: ; 0x2d688 dex_text "A bird that makes" dex_line "up for its poor" dex_line "flying with its" dex_line "fast foot speed." dex_line "Leaves giant" dex_line "footprints." dex_end PoliwagPokedexDescription: ; 0x2d6e4 dex_text "Its newly grown" dex_line "legs prevent it" dex_line "from running. It" dex_line "appears to prefer" dex_line "swimming than" dex_line "trying to stand." dex_end JynxPokedexDescription: ; 0x2d746 dex_text "It seductively" dex_line "wiggles its hips" dex_line "as it walks. It" dex_line "can cause people" dex_line "to dance in" dex_line "unison with it." dex_end MoltresPokedexDescription: ; 0x2d7a3 dex_text "Known as the" dex_line "legendary bird of" dex_line "fire. Every flap" dex_line "of its wings" dex_line "creates a dazzling" dex_line "flash of flames." dex_end ArticunoPokedexDescription: ; 0x2d804 dex_text "A legendary bird" dex_line "POKéMON that is" dex_line "said to appear to" dex_line "doomed people who" dex_line "are lost in icy" dex_line "mountains." dex_end ZapdosPokedexDescription: ; 0x2d864 dex_text "A legendary bird" dex_line "POKéMON that is" dex_line "said to appear" dex_line "from clouds while" dex_line "dropping enormous" dex_line "lightning bolts." dex_end DittoPokedexDescription: ; 0x2d8c9 dex_text "Capable of copying" dex_line "an enemy`s genetic" dex_line "code to instantly" dex_line "transform itself" dex_line "into a duplicate" dex_line "of the enemy." dex_end MeowthPokedexDescription: ; 0x2d931 dex_text "Adores circular" dex_line "objects. Wanders" dex_line "the streets on a" dex_line "nightly basis to" dex_line "look for dropped" dex_line "loose change." dex_end KrabbyPokedexDescription: ; 0x2d993 dex_text "Its pincers are" dex_line "not only powerful" dex_line "weapons, they are" dex_line "used for balance" dex_line "when walking" dex_line "sideways." dex_end VulpixPokedexDescription: ; 0x2d9ef dex_text "At the time of" dex_line "birth, it has" dex_line "just one tail." dex_line "The tail splits" dex_line "from its tip as" dex_line "it grows older." dex_end NinetalesPokedexDescription: ; 0x2da4b dex_text "Very smart and" dex_line "very vengeful." dex_line "Grabbing one of" dex_line "its many tails" dex_line "could result in a" dex_line "1000-year curse." dex_end PikachuPokedexDescription: ; 0x2daab dex_text "When several of" dex_line "these POKéMON" dex_line "gather, their" dex_line "electricity could" dex_line "build and cause" dex_line "lightning storms." dex_end RaichuPokedexDescription: ; 0x2db0b dex_text "Its long tail" dex_line "serves as a" dex_line "ground to protect" dex_line "itself from its" dex_line "own high voltage" dex_line "power." dex_end DratiniPokedexDescription: ; 0x2db5f dex_text "Long considered a" dex_line "mythical POKéMON" dex_line "until recently" dex_line "when a small" dex_line "colony was found" dex_line "living underwater." dex_end DragonairPokedexDescription: ; 0x2dbc2 dex_text "A mystical POKéMON" dex_line "that exudes a" dex_line "gentle aura." dex_line "Has the ability" dex_line "to change climate" dex_line "conditions." dex_end KabutoPokedexDescription: ; 0x2dc1e dex_text "A POKéMON that" dex_line "was resurrected" dex_line "from a fossil" dex_line "found in what was" dex_line "once the ocean" dex_line "floor eons ago." dex_end KabutopsPokedexDescription: ; 0x2dc7c dex_text "Its sleek shape is" dex_line "perfect for swim-" dex_line "ming. It slashes" dex_line "prey with its" dex_line "claws and drains" dex_line "the body fluids." dex_end HorseaPokedexDescription: ; 0x2dce2 dex_text "Known to shoot" dex_line "down flying bugs" dex_line "with precision" dex_line "blasts of ink" dex_line "from the surface" dex_line "of the water." dex_end SeadraPokedexDescription: ; 0x2dd3e dex_text "Capable of swim-" dex_line "ming backwards by" dex_line "rapidly flapping" dex_line "its wing-like" dex_line "pectoral fins and" dex_line "stout tail." dex_end SandshrewPokedexDescription: ; 0x2dd9e dex_text "Burrows deep" dex_line "underground in" dex_line "arid locations" dex_line "far from water." dex_line "It only emerges" dex_line "to hunt for food." dex_end SandslashPokedexDescription: ; 0x2ddfb dex_text "Curls up into a" dex_line "spiny ball when" dex_line "threatened. It" dex_line "can roll while" dex_line "curled up to" dex_line "attack or escape." dex_end OmanytePokedexDescription: ; 0x2de58 dex_text "Although long" dex_line "extinct, in rare" dex_line "cases, it can be" dex_line "genetically" dex_line "resurrected from" dex_line "fossils." dex_end OmastarPokedexDescription: ; 0x2deae dex_text "A prehistoric" dex_line "POKéMON that died" dex_line "out when its" dex_line "heavy shell made" dex_line "it impossible to" dex_line "catch prey." dex_end JigglypuffPokedexDescription: ; 0x2df09 dex_text "When its huge eyes" dex_line "light up, it sings" dex_line "a mysteriously" dex_line "soothing melody" dex_line "that lulls its" dex_line "enemies to sleep." dex_end WigglytuffPokedexDescription: ; 0x2df6f dex_text "The body is soft" dex_line "and rubbery. When" dex_line "angered, it will" dex_line "suck in air and" dex_line "inflate itself to" dex_line "an enormous size." dex_end EeveePokedexDescription: ; 0x2dfd7 dex_text "Its genetic code" dex_line "is irregular." dex_line "It may mutate if" dex_line "it is exposed to" dex_line "radiation from" dex_line "element STONEs." dex_end FlareonPokedexDescription: ; 0x2e037 dex_text "When storing" dex_line "thermal energy in" dex_line "its body, its" dex_line "temperature could" dex_line "soar to over 1600" dex_line "degrees." dex_end JolteonPokedexDescription: ; 0x2e091 dex_text "It accumulates" dex_line "negative ions in" dex_line "the atmosphere to" dex_line "blast out 10000-" dex_line "volt lightning" dex_line "bolts." dex_end VaporeonPokedexDescription: ; 0x2e0ea dex_text "Lives close to" dex_line "water. Its long" dex_line "tail is ridged" dex_line "with a fin which" dex_line "is often mistaken" dex_line "for a mermaid`s." dex_end MachopPokedexDescription: ; 0x2e14c dex_text "Loves to build" dex_line "its muscles." dex_line "It trains in all" dex_line "styles of martial" dex_line "arts to become" dex_line "even stronger." dex_end ZubatPokedexDescription: ; 0x2e1a9 dex_text "Forms colonies in" dex_line "perpetually dark" dex_line "places. Uses" dex_line "ultrasonic waves" dex_line "to identify and" dex_line "approach targets." dex_end EkansPokedexDescription: ; 0x2e20c dex_text "Moves silently" dex_line "and stealthily." dex_line "Eats the eggs of" dex_line "birds, such as" dex_line "PIDGEY and" dex_line "SPEAROW, whole." dex_end ParasPokedexDescription: ; 0x2e266 dex_text "Burrows to suck" dex_line "tree roots. The" dex_line "mushrooms on its" dex_line "back grow by draw-" dex_line "ing nutrients from" dex_line "the bug host." dex_end PoliwhirlPokedexDescription: ; 0x2e2cb dex_text "Capable of living" dex_line "in or out of" dex_line "water. When out" dex_line "of water, it" dex_line "sweats to keep" dex_line "its body slimy." dex_end PoliwrathPokedexDescription: ; 0x2e326 dex_text "An adept swimmer" dex_line "at both the front" dex_line "crawl and breast" dex_line "stroke. Easily" dex_line "overtakes the best" dex_line "human swimmers." dex_end WeedlePokedexDescription: ; 0x2e38c dex_text "Often found in" dex_line "forests, eating" dex_line "leaves." dex_line "It has a sharp" dex_line "venomous stinger" dex_line "on its head." dex_end KakunaPokedexDescription: ; 0x2e3e0 dex_text "Almost incapable" dex_line "of moving, this" dex_line "POKéMON can only" dex_line "harden its shell" dex_line "to protect itself" dex_line "from predators." dex_end BeedrillPokedexDescription: ; 0x2e445 dex_text "Flies at high" dex_line "speed and attacks" dex_line "using its large" dex_line "venomous stingers" dex_line "on its forelegs" dex_line "and tail." dex_end DodrioPokedexDescription: ; 0x2e4a1 dex_text "Uses its three" dex_line "brains to execute" dex_line "complex plans." dex_line "While two heads" dex_line "sleep, one head" dex_line "stays awake." dex_end PrimeapePokedexDescription: ; 0x2e4fe dex_text "Always furious" dex_line "and tenacious to" dex_line "boot. It will not" dex_line "abandon chasing" dex_line "its quarry until" dex_line "it is caught." dex_end DugtrioPokedexDescription: ; 0x2e55f dex_text "A team of DIGLETT" dex_line "triplets." dex_line "It triggers huge" dex_line "earthquakes by" dex_line "burrowing 60 miles" dex_line "underground." dex_end VenomothPokedexDescription: ; 0x2e5bb dex_text "The dust-like" dex_line "scales covering" dex_line "its wings are" dex_line "color coded to" dex_line "indicate the kinds" dex_line "of poison it has." dex_end DewgongPokedexDescription: ; 0x2e61b dex_text "Stores thermal" dex_line "energy in its" dex_line "body. Swims at a" dex_line "steady 8 knots" dex_line "even in intensely" dex_line "cold waters. " dex_end CaterpiePokedexDescription: ; 0x2e678 dex_text "Its short feet" dex_line "are tipped with" dex_line "suction pads that" dex_line "enable it to" dex_line "tirelessly climb" dex_line "slopes and walls." dex_end MetapodPokedexDescription: ; 0x2e6d9 dex_text "This POKéMON is" dex_line "vulnerable to" dex_line "attack while its" dex_line "shell is soft," dex_line "exposing its weak" dex_line "and tender body." dex_end ButterfreePokedexDescription: ; 0x2e73a dex_text "In battle, it" dex_line "flaps its wings" dex_line "at high speed to" dex_line "release highly" dex_line "toxic dust into" dex_line "the air." dex_end MachampPokedexDescription: ; 0x2e791 dex_text "Using its heavy" dex_line "muscles, it throws" dex_line "powerful punches" dex_line "that can send the" dex_line "victim clear over" dex_line "the horizon. " dex_end GolduckPokedexDescription: ; 0x2e7f7 dex_text "Often seen swim-" dex_line "ming elegantly by" dex_line "lake shores. It" dex_line "is often mistaken" dex_line "for the Japanese" dex_line "monster, Kappa." dex_end HypnoPokedexDescription: ; 0x2e85d dex_text "When it locks eyes" dex_line "with an enemy, it" dex_line "will use a mix of" dex_line "PSI moves such as" dex_line "HYPNOSIS and" dex_line "CONFUSION." dex_end GolbatPokedexDescription: ; 0x2e8be dex_text "Once it strikes," dex_line "it will not stop" dex_line "draining energy" dex_line "from the victim" dex_line "even if it gets" dex_line "too heavy to fly." dex_end MewtwoPokedexDescription: ; 0x2e922 dex_text "It was created by" dex_line "a scientist after" dex_line "years of horrific" dex_line "gene splicing and" dex_line "DNA engineering" dex_line "experiments." dex_end SnorlaxPokedexDescription: ; 0x2e987 dex_text "Very lazy. Just" dex_line "eats and sleeps." dex_line "As its rotund" dex_line "bulk builds, it" dex_line "becomes steadily" dex_line "more slothful." dex_end MagikarpPokedexDescription: ; 0x2e9e6 dex_text "In the distant" dex_line "past, it was" dex_line "somewhat stronger" dex_line "than the horribly" dex_line "weak descendants" dex_line "that exist today." dex_end MukPokedexDescription: ; 0x2ea49 dex_text "Thickly covered" dex_line "with a filthy," dex_line "vile sludge. It" dex_line "is so toxic, even" dex_line "its footprints" dex_line "contain poison." dex_end KinglerPokedexDescription: ; 0x2eaa9 dex_text "The large pincer" dex_line "has 10000 hp of" dex_line "crushing power." dex_line "However, its huge" dex_line "size makes it" dex_line "unwieldy to use." dex_end CloysterPokedexDescription: ; 0x2eb0b dex_text "When attacked, it" dex_line "launches its" dex_line "horns in quick" dex_line "volleys. Its" dex_line "innards have" dex_line "never been seen." dex_end ElectrodePokedexDescription: ; 0x2eb64 dex_text "It stores electric" dex_line "energy under very" dex_line "high pressure." dex_line "It often explodes" dex_line "with little or no" dex_line "provocation." dex_end ClefablePokedexDescription: ; 0x2ebc9 dex_text "A timid fairy" dex_line "POKéMON that is" dex_line "rarely seen. It" dex_line "will run and hide" dex_line "the moment it" dex_line "senses people." dex_end WeezingPokedexDescription: ; 0x2ec26 dex_text "Where two kinds" dex_line "of poison gases" dex_line "meet, 2 KOFFINGs" dex_line "can fuse into a" dex_line "WEEZING over many" dex_line "years." dex_end PersianPokedexDescription: ; 0x2ec80 dex_text "Although its fur" dex_line "has many admirers," dex_line "it is tough to" dex_line "raise as a pet" dex_line "because of its" dex_line "fickle meanness." dex_end MarowakPokedexDescription: ; 0x2ece2 dex_text "The bone it holds" dex_line "is its key weapon." dex_line "It throws the" dex_line "bone skillfully" dex_line "like a boomerang" dex_line "to KO targets." dex_end HaunterPokedexDescription: ; 0x2ed45 dex_text "Because of its" dex_line "ability to slip" dex_line "through block" dex_line "walls, it is said" dex_line "to be from an-" dex_line "other dimension." dex_end AbraPokedexDescription: ; 0x2eda4 dex_text "Using its ability" dex_line "to read minds, it" dex_line "will identify" dex_line "impending danger" dex_line "and TELEPORT to" dex_line "safety." dex_end AlakazamPokedexDescription: ; 0x2edff dex_text "Its brain can out-" dex_line "perform a super-" dex_line "computer." dex_line "Its intelligence" dex_line "quotient is said" dex_line "to be 5,000." dex_end PidgeottoPokedexDescription: ; 0x2ee5c dex_text "Very protective" dex_line "of its sprawling" dex_line "territorial area," dex_line "this POKéMON will" dex_line "fiercely peck at" dex_line "any intruder." dex_end PidgeotPokedexDescription: ; 0x2eec0 dex_text "When hunting, it" dex_line "skims the surface" dex_line "of water at high" dex_line "speed to pick off" dex_line "unwary prey such" dex_line "as MAGIKARP." dex_end StarmiePokedexDescription: ; 0x2ef24 dex_text "Its central core" dex_line "glows with the" dex_line "seven colors of" dex_line "the rainbow. Some" dex_line "people value the" dex_line "core as a gem." dex_end BulbasaurPokedexDescription: ; 0x2ef86 dex_text "A strange seed was" dex_line "planted on its" dex_line "back at birth." dex_line "The plant sprouts" dex_line "and grows with" dex_line "this POKéMON." dex_end VenusaurPokedexDescription: ; 0x2efe6 dex_text "The plant blooms" dex_line "when it is" dex_line "absorbing solar" dex_line "energy. It stays" dex_line "on the move to" dex_line "seek sunlight." dex_end TentacruelPokedexDescription: ; 0x2f041 dex_text "The tentacles are" dex_line "normally kept" dex_line "short. On hunts," dex_line "they are extended" dex_line "to ensnare and" dex_line "immobilize prey." dex_end GoldeenPokedexDescription: ; 0x2f0a4 dex_text "Its tail fin" dex_line "billows like an" dex_line "elegant ballroom" dex_line "dress, giving it" dex_line "the nickname of" dex_line "the Water Queen." dex_end SeakingPokedexDescription: ; 0x2f104 dex_text "In the autumn" dex_line "spawning season," dex_line "they can be seen" dex_line "swimming power-" dex_line "fully up rivers" dex_line "and creeks." dex_end PonytaPokedexDescription: ; 0x2f160 dex_text "Its hooves are 10" dex_line "times harder than" dex_line "diamonds. It can" dex_line "trample anything" dex_line "completely flat" dex_line "in little time." dex_end RapidashPokedexDescription: ; 0x2f1c6 dex_text "Very competitive," dex_line "this POKéMON will" dex_line "chase anything" dex_line "that moves fast" dex_line "in the hopes of" dex_line "racing it." dex_end RattataPokedexDescription: ; 0x2f224 dex_text "Bites anything" dex_line "when it attacks." dex_line "Small and very" dex_line "quick, it is a" dex_line "common sight in" dex_line "many places." dex_end RaticatePokedexDescription: ; 0x2f27f dex_text "It uses its whis-" dex_line "kers to maintain" dex_line "its balance." dex_line "It apparently" dex_line "slows down if" dex_line "they are cut off." dex_end NidorinoPokedexDescription: ; 0x2f2dd dex_text "An aggressive" dex_line "POKéMON that is" dex_line "quick to attack." dex_line "The horn on its" dex_line "head secretes a" dex_line "powerful venom." dex_end NidorinaPokedexDescription: ; 0x2f33c dex_text "The female`s horn" dex_line "develops slowly." dex_line "Prefers physical" dex_line "attacks such as" dex_line "clawing and" dex_line "biting." dex_end GeodudePokedexDescription: ; 0x2f394 dex_text "Found in fields" dex_line "and mountains." dex_line "Mistaking them" dex_line "for boulders," dex_line "people often step" dex_line "or trip on them." dex_end PorygonPokedexDescription: ; 0x2f3f3 dex_text "A POKéMON that" dex_line "consists entirely" dex_line "of programming" dex_line "code. Capable of" dex_line "moving freely in" dex_line "cyberspace." dex_end AerodactylPokedexDescription: ; 0x2f451 dex_text "A ferocious, pre-" dex_line "historic POKéMON" dex_line "that goes for the" dex_line "enemy`s throat" dex_line "with its serrated" dex_line "saw-like fangs." dex_end MagnemitePokedexDescription: ; 0x2f4b7 dex_text "Uses anti-gravity" dex_line "to stay suspended." dex_line "Appears without" dex_line "warning and uses" dex_line "THUNDER WAVE and" dex_line "similar moves." dex_end CharmanderPokedexDescription: ; 0x2f51d dex_text "Obviously prefers" dex_line "hot places. When" dex_line "it rains, steam" dex_line "is said to spout" dex_line "from the tip of" dex_line "its tail." dex_end SquirtlePokedexDescription: ; 0x2f57b dex_text "After birth, its" dex_line "back swells and" dex_line "hardens into a" dex_line "shell. Powerfully" dex_line "sprays foam from" dex_line "its mouth." dex_end CharmeleonPokedexDescription: ; 0x2f5d9 dex_text "When it swings" dex_line "its burning tail," dex_line "it elevates the" dex_line "temperature to" dex_line "unbearably high" dex_line "levels." dex_end WartortlePokedexDescription: ; 0x2f631 dex_text "Often hides in" dex_line "water to stalk" dex_line "unwary prey. For" dex_line "swimming fast, it" dex_line "moves its ears to" dex_line "maintain balance." dex_end CharizardPokedexDescription: ; 0x2f696 dex_text "Spits fire that" dex_line "is hot enough to" dex_line "melt boulders." dex_line "Known to cause" dex_line "forest fires" dex_line "unintentionally." dex_end OddishPokedexDescription: ; 0x2f6f3 dex_text "During the day," dex_line "it keeps its face" dex_line "buried in the" dex_line "ground. At night," dex_line "it wanders around" dex_line "sowing its seeds." dex_end GloomPokedexDescription: ; 0x2f759 dex_text "The fluid that" dex_line "oozes from its" dex_line "mouth isn`t drool." dex_line "It is a nectar" dex_line "that is used to" dex_line "attract prey." dex_end VileplumePokedexDescription: ; 0x2f7b7 dex_text "The larger its" dex_line "petals, the more" dex_line "toxic pollen it" dex_line "contains. Its big" dex_line "head is heavy and" dex_line "hard to hold up." dex_end BellsproutPokedexDescription: ; 0x2f81c dex_text "A carnivorous" dex_line "POKéMON that traps" dex_line "and eats bugs." dex_line "It uses its root" dex_line "feet to soak up" dex_line "needed moisture." dex_end WeepinbellPokedexDescription: ; 0x2f87e dex_text "It spits out" dex_line "POISONPOWDER to" dex_line "immobilize the" dex_line "enemy and then" dex_line "finishes it with" dex_line "a spray of ACID." dex_end VictreebellPokedexDescription: ; 0x2f8d8 dex_text "Said to live in" dex_line "huge colonies" dex_line "deep in jungles," dex_line "although no one" dex_line "has ever returned" dex_line "from there." dex_end SECTION "bankc", ROMX, BANK[$c] InitRedField: ; 0x30000 ld a, [$d7c1] and a ret nz xor a ld hl, $d46f ld [hld], a ld [hld], a ld [hld], a ld [hld], a ld [hld], a ld [hl], a ld [wNumPartyMons], a ld [$d49b], a ld [$d4c9], a ld [wBallType], a ld [$d4c8], a ld hl, $d624 ld [hli], a ld [hli], a ld [hli], a ld [$d7ac], a ld [$d7be], a ld [wCurrentMap], a ; PALLET_TOWN ld a, $1 ld [$d49d], a ld [$d482], a ld a, $2 ld [wRightAlleyCount], a ld a, $3 ld [$d49e], a ld [$d610], a ld [$d498], a ld [$d499], a ld a, $4 ld [wStageCollisionState], a ld [$d7ad], a ld a, $80 ld [wIndicatorStates], a ld [wIndicatorStates + 3], a ld a, $82 ld [wIndicatorStates + 1], a ld [$ff8a], a callba Func_dbba ld [$ff8a], a callba Func_16f95 ld a, $f call SetSongBank ld de, $0001 call PlaySong ret StartBallRedField: ; 0x3007d ld a, [$d496] and a jp nz, StartBallAfterBonusStageRedField ld a, $0 ld [wBallXPos], a ld a, $a7 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $98 ld [wBallYPos + 1], a xor a ld [$d549], a ld [$d580], a ld a, [$d7ad] bit 7, a jr z, .asm_300ae ld a, [wStageCollisionState] res 0, a ld [$d7ad], a .asm_300ae ld a, [wStageCollisionState] and $1 ld [wStageCollisionState], a ld a, [$d4c9] and a ret z xor a ld [$d4c9], a xor a ld [$d50b], a ld [$d50c], a ld [$d51d], a ld [$d517], a ld [$d51e], a ld hl, $d50f ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [wLeftMapMoveCounter], a ld [wRightMapMoveCounter], a ld hl, $d5f9 ld [hli], a ld [hli], a ld [hli], a ld [wBallType], a ld [$d611], a ld [$d612], a ld [$d628], a ld [$d629], a ld [$d62a], a ld [$d62b], a ld [$d62c], a ld [$d62d], a ld [$d62e], a ld [$d613], a inc a ld [$d482], a ld [$d4ef], a ld [$d4f1], a ld a, $3 ld [$d610], a ld [$ff8a], a callba Func_16f95 ld a, $f call SetSongBank ld de, $0001 call PlaySong ret StartBallAfterBonusStageRedField: ; 0x30128 ld a, $0 ld [wBallXPos], a ld a, $50 ld [wBallXPos + 1], a ld a, $0 ld [wBallYPos], a ld a, $16 ld [wBallYPos + 1], a xor a ld [wBallYVelocity], a ld [wBallYVelocity + 1], a ld [wBallXVelocity], a ld [wBallXVelocity + 1], a ld [$d496], a ld [$d7ab], a ld [$d7be], a ld a, [wBallTypeBackup] ld [wBallType], a ld a, $f call SetSongBank ld de, $0001 call PlaySong ret Func_30164: ; 0x30164 ld a, [$d49b] inc a cp $b jr z, .asm_30175 ld [$d49b], a ld a, $1 ld [$d4ca], a ret .asm_30175 ld bc, OneHundredThousandPoints ld [$ff8a], a callba Func_8588 ld a, $2 ld [$d4ca], a ret Func_30188: ; 0x30188 ld a, [$d5ca] and a ret nz ld a, [$d4ca] and a ret z cp $1 jr nz, .asm_301a7 call Func_30e8 call Func_30db ld hl, $d5cc ld de, ExtraBallText call LoadTextHeader jr .asm_301c9 .asm_301a7 ld bc, $1000 ld de, $0000 push bc push de call Func_30e8 call Func_30db ld hl, $d5d4 ld de, DigitsText1to9 call Func_32cc pop de pop bc ld hl, $d5cc ld de, ExtraBallSpecialBonusText call LoadTextHeader .asm_301c9 xor a ld [$d4ca], a ret Func_301ce: ; 0x301ce ld a, [wCurrentStage] call CallInFollowingTable PointerTable_301d4: ; 0x301d4 dw Func_314ae db Bank(Func_314ae), $00 dw Func_314ae db Bank(Func_314ae), $00 dw Func_314ae db Bank(Func_314ae), $00 dw Func_314ae db Bank(Func_314ae), $00 dw Func_3161b db Bank(Func_3161b), $00 dw Func_3161b db Bank(Func_3161b), $00 StartMapMoveMode: ; 0x301ec ld a, [wInSpecialMode] and a ret nz ld a, $1 ld [wInSpecialMode], a ld a, $2 ld [wSpecialMode], a xor a ld [$d54d], a ld bc, $0030 ; 30 seconds ld [$ff8a], a callba StartTimer ld a, [wCurrentStage] bit 0, a jr z, .asm_3021b ld a, [$d55a] add $12 call Func_30256 .asm_3021b ld a, [wCurrentStage] rst JumpTable ; calls JumpToFuncInTable CallTable_3021f: ; 0x3021f ; STAGE_RED_FIELD_TOP dw Func_311b4 ; STAGE_RED_FIELD_BOTTOM dw Func_311b4 dw Func_31324 dw Func_31324 ; STAGE_BLUE_FIELD_TOP dw Func_31326 ; STAGE_BLUE_FIELD_BOTTOM dw Func_31326 Func_3022b: ; 0x3022b xor a ld [$d5ca], a call Func_30e8 xor a ld [wInSpecialMode], a ld [wSpecialMode], a ld [$ff8a], a callba Func_86d2 ld a, [wCurrentStage] rst JumpTable ; calls JumpToFuncInTable CallTable_30247: ; 0x30247 ; STAGE_RED_FIELD_TOP dw Func_31234 ; STAGE_RED_FIELD_BOTTOM dw Func_31234 dw Func_31325 dw Func_31325 ; STAGE_BLUE_FIELD_TOP dw Func_313c3 ; STAGE_BLUE_FIELD_TOP dw Func_313c3 Func_30253: ; 0x30253 ld a, [wCurrentMap] ; fall through Func_30256: ; 0x30256 sla a ld c, a ld b, $0 push bc ld hl, PointerTable_3027a add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $c call Func_10aa pop bc ld a, [hGameBoyColorFlag] and a ret z ld hl, PointerTable_30ceb add hl, bc ld a, [hli] ld h, [hl] ld l, a ld a, $c call Func_10aa ret PointerTable_3027a: ; 0x3027a dw Data_302b0 dw Data_302c1 dw Data_302d2 dw Data_302e3 dw Data_302f4 dw Data_30305 dw Data_30316 dw Data_30327 dw Data_30338 dw Data_30349 dw Data_3035a dw Data_3036b dw Data_3037c dw Data_3038d dw Data_3039e dw Data_303af dw Data_303c0 dw Data_303d1 dw Data_303e2 dw Data_303f3 dw Data_30404 dw Data_30415 dw Data_30426 dw Data_30437 dw Data_30448 dw Data_30459 dw Data_3046a Data_302b0: ; 0x302b0 db $08, $7B, $44, $85, $44, $8F, $44, $99, $44, $A3, $44, $AD, $44, $B7, $44, $C1, $44 Data_302c1: ; 0x302c1 db $08, $CB, $44, $D5, $44, $DF, $44, $E9, $44, $F3, $44, $FD, $44, $07, $45, $11, $45 Data_302d2: ; 0x302d2 db $08, $1B, $45, $25, $45, $2F, $45, $39, $45, $43, $45, $4D, $45, $57, $45, $61, $45 Data_302e3: ; 0x302e3 db $08, $6B, $45, $75, $45, $7F, $45, $89, $45, $93, $45, $9D, $45, $A7, $45, $B1, $45 Data_302f4: ; 0x302f4 db $08, $BB, $45, $C5, $45, $CF, $45, $D9, $45, $E3, $45, $ED, $45, $F7, $45, $01, $46 Data_30305: ; 0x30305 db $08, $0B, $46, $15, $46, $1F, $46, $29, $46, $33, $46, $3D, $46, $47, $46, $51, $46 Data_30316: ; 0x30316 db $08, $5B, $46, $65, $46, $6F, $46, $79, $46, $83, $46, $8D, $46, $97, $46, $A1, $46 Data_30327: ; 0x30327 db $08, $AB, $46, $B5, $46, $BF, $46, $C9, $46, $D3, $46, $DD, $46, $E7, $46, $F1, $46 Data_30338: ; 0x30338 db $08, $FB, $46, $05, $47, $0F, $47, $19, $47, $23, $47, $2D, $47, $37, $47, $41, $47 Data_30349: ; 0x30349 db $08, $4B, $47, $55, $47, $5F, $47, $69, $47, $73, $47, $7D, $47, $87, $47, $91, $47 Data_3035a: ; 0x3035a db $08, $9B, $47, $A5, $47, $AF, $47, $B9, $47, $C3, $47, $CD, $47, $D7, $47, $E1, $47 Data_3036b: ; 0x3036b db $08, $EB, $47, $F5, $47, $FF, $47, $09, $48, $13, $48, $1D, $48, $27, $48, $31, $48 Data_3037c: ; 0x3037c db $08, $3B, $48, $45, $48, $4F, $48, $59, $48, $63, $48, $6D, $48, $77, $48, $81, $48 Data_3038d: ; 0x3038d db $08, $8B, $48, $95, $48, $9F, $48, $A9, $48, $B3, $48, $BD, $48, $C7, $48, $D1, $48 Data_3039e: ; 0x3039e db $08, $DB, $48, $E5, $48, $EF, $48, $F9, $48, $03, $49, $0D, $49, $17, $49, $21, $49 Data_303af: ; 0x303af db $08, $2B, $49, $35, $49, $3F, $49, $49, $49, $53, $49, $5D, $49, $67, $49, $71, $49 Data_303c0: ; 0x303c0 db $08, $7B, $49, $85, $49, $8F, $49, $99, $49, $A3, $49, $AD, $49, $B7, $49, $C1, $49 Data_303d1: ; 0x303d1 db $08, $CB, $49, $D5, $49, $DF, $49, $E9, $49, $F3, $49, $FD, $49, $07, $4A, $11, $4A Data_303e2: ; 0x303e2 db $08, $1B, $4A, $25, $4A, $2F, $4A, $39, $4A, $43, $4A, $4D, $4A, $57, $4A, $61, $4A Data_303f3: ; 0x303f3 db $08, $6B, $4A, $75, $4A, $7F, $4A, $89, $4A, $93, $4A, $9D, $4A, $A7, $4A, $B1, $4A Data_30404: ; 0x30404 db $08, $BB, $4A, $C5, $4A, $CF, $4A, $D9, $4A, $E3, $4A, $ED, $4A, $F7, $4A, $01, $4B Data_30415: ; 0x30415 db $08, $0B, $4B, $15, $4B, $1F, $4B, $29, $4B, $33, $4B, $3D, $4B, $47, $4B, $51, $4B Data_30426: ; 0x30426 db $08, $5B, $4B, $65, $4B, $6F, $4B, $79, $4B, $83, $4B, $8D, $4B, $97, $4B, $A1, $4B Data_30437: ; 0x30437 db $08, $AB, $4B, $B5, $4B, $BF, $4B, $C9, $4B, $D3, $4B, $DD, $4B, $E7, $4B, $F1, $4B Data_30448: ; 0x30448 db $08, $FB, $4B, $05, $4C, $0F, $4C, $19, $4C, $23, $4C, $2D, $4C, $37, $4C, $41, $4C Data_30459: ; 0x30459 db $08, $4B, $4C, $55, $4C, $5F, $4C, $69, $4C, $73, $4C, $7D, $4C, $87, $4C, $91, $4C Data_3046a: ; 0x3046a db $08, $9B, $4C, $A5, $4C, $AF, $4C, $B9, $4C, $C3, $4C, $CD, $4C, $D7, $4C, $E1, $4C dr $3047b, $30ceb 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 dr $30da8, $3118f Func_3118f: ; 0x3118f push bc call Func_30e8 call Func_30db ld a, [wCurrentMap] sla a ld c, a ld b, $0 ld hl, Data_2ce3 add hl, bc ld a, [hli] ld e, a ld a, [hli] ld d, a ld hl, $d5d4 call LoadTextHeader pop de ld hl, $d5cc call LoadTextHeader ret Func_311b4: ; 0x311b4 ld a, [$d55a] and a jr nz, .asm_311ce ld a, $80 ld [wIndicatorStates], a ld [wIndicatorStates + 2], a xor a ld [wIndicatorStates + 1], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 4], a jr .asm_311e2 .asm_311ce ld a, $80 ld [wIndicatorStates + 1], a ld [wIndicatorStates + 3], a xor a ld [wIndicatorStates], a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 4], a jr .asm_311e2 .asm_311e2 ld a, $2 ld [$ff8a], a callba Func_149d9 ld a, $5 ld [$ff8a], a callba Func_149d9 ld a, $6a ld [$c7f0], a ld a, $6b ld [$c810], a ld a, $66 ld [$c7e3], a ld a, $67 ld [$c803], a ld [$ff8a], a callba Func_107b0 ld a, $4 ld [$d7ad], a ld de, $0003 call PlaySong ld a, [wCurrentStage] bit 0, a ret z ld [$ff8a], a callba Func_14135 ret Func_31234: ; 0x31234 ld [$ff8a], a callba Func_107a5 ld [$ff8a], a callba Func_107c2 ld [$ff8a], a callba Func_107c8 ld [$ff8a], a callba Func_107e9 ld a, [wCurrentStage] bit 0, a ret z ld [$ff8a], a callba Func_14135 ld [$ff8a], a callba Func_16425 ld [$ff8a], a callba Func_30253 ret Func_31281: ; 0x31282 ld a, [$d4e2] inc a cp $6 jr c, .asm_3129e ld a, $ff ld [$d4e3], a ld [$d4e4], a ld [$d4e5], a ld [$d4e6], a ld [$d4e7], a ld [$d4e8], a xor a .asm_3129e ld [$d4e2], a cp $3 jr c, .asm_312b2 cp $5 jr c, .asm_312e7 ld a, INDIGO_PLATEAU ld [wCurrentMap], a ld [$d4e8], a ret .asm_312b2 call GenRandom and $7 cp $7 jr nc, .asm_312b2 ld c, a ld b, $0 ld hl, $5319 add hl, bc ld c, [hl] ld hl, $d4e3 ld a, [$d4e2] and a jr z, .asm_312d4 ld b, a .asm_312cd ld a, [hli] cp c jr z, .asm_312b2 dec b jr nz, .asm_312cd .asm_312d4 ld a, c ld [wCurrentMap], a ld a, [$d4e2] ld c, a ld b, $0 ld hl, $d4e3 add hl, bc ld a, [wCurrentMap] ld [hl], a ret .asm_312e7 call GenRandom and $3 ld c, a ld b, $0 ld hl, $5320 add hl, bc ld c, [hl] ld hl, $d4e6 ld a, [$d4e2] sub $3 jr z, .asm_31306 ld b, a .asm_312ff ld a, [hli] cp c jr z, .asm_312e7 dec b jr nz, .asm_312ff .asm_31306 ld a, c ld [wCurrentMap], a ld a, [$d4e2] ld c, a ld b, $0 ld hl, $d4e3 add hl, bc ld a, [wCurrentMap] ld [hl], a ret dr $31319, $31324 Func_31324: ; 0x31324 ret Func_31325: ; 0x31325 ret Func_31326: ; 0x31326 ld a, [$d55a] and a jr nz, .asm_3134c ld a, $80 ld [wIndicatorStates], a ld [wIndicatorStates + 2], a xor a ld [wIndicatorStates + 1], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 4], a ld a, $3 ld [$ff8a], a callba Func_1de4b jr .asm_31382 .asm_3134c ld a, $80 ld [wIndicatorStates + 1], a ld [wIndicatorStates + 3], a xor a ld [wIndicatorStates], a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 4], a ld a, $1 ld [$ff8a], a callba Func_1de4b ld a, $6 ld [$ff8a], a callba Func_1de4b ld a, $7 ; TODO: this might be the bank of Func_1de6f ld [$ff8a], a callba Func_1de6f .asm_31382 ld a, [wCurrentStage] bit 0, a jr z, .asm_3139d ld a, $54 ld [$c7e3], a ld a, $55 ld [$c803], a ld a, $52 ld [$c7f0], a ld a, $53 ld [$c810], a .asm_3139d ld a, $1 ld [$d644], a ld [$ff8a], a callba Func_1f2ed ld de, $0003 call PlaySong ld a, [wCurrentStage] bit 0, a ret z ld [$ff8a], a callba Func_1c2cb ret Func_313c3: ; 0x313c3 ld [$ff8a], a callba Func_107a5 ld [$ff8a], a callba Func_107c2 ld [$ff8a], a callba Func_1f2ff ld a, $0 ld [$d644], a ld a, [wCurrentStage] bit 0, a ret z ld [$ff8a], a callba Func_1c2cb ld [$ff8a], a callba Func_1e8f6 ld [$ff8a], a callba Func_30253 ret Func_3140b: ; 0x3140b ld a, [$d4e2] inc a cp $6 jr c, .asm_31428 ld a, $ff ld [$d4e3], a ld [$d4e4], a ld [$d4e5], a ld [$d4e6], a ld [$d4e7], a ld [$d4e8], a xor a .asm_31428 ld [$d4e2], a cp $3 jr c, .asm_3143c cp $5 jr c, .asm_31471 ld a, INDIGO_PLATEAU ld [wCurrentMap], a ld [$d4e8], a ret .asm_3143c call GenRandom and $7 cp $7 jr nc, .asm_3143c ld c, a ld b, $0 ld hl, $54a3 add hl, bc ld c, [hl] ld hl, $d4e3 ld a, [$d4e2] and a jr z, .asm_3145e ld b, a .asm_31457 ld a, [hli] cp c jr z, .asm_3143c dec b jr nz, .asm_31457 .asm_3145e ld a, c ld [wCurrentMap], a ld a, [$d4e2] ld c, a ld b, $0 ld hl, $d4e3 add hl, bc ld a, [wCurrentMap] ld [hl], a ret .asm_31471 call GenRandom and $3 ld c, a ld b, $0 ld hl, $54aa add hl, bc ld c, [hl] ld hl, $d4e6 ld a, [$d4e2] sub $3 jr z, .asm_31490 ld b, a .asm_31489 ld a, [hli] cp c jr z, .asm_31471 dec b jr nz, .asm_31489 .asm_31490 ld a, c ld [wCurrentMap], a ld a, [$d4e2] ld c, a ld b, $0 ld hl, $d4e3 add hl, bc ld a, [wCurrentMap] ld [hl], a ret dr $314a3, $314ae Func_314ae: ; 0x314ae ld a, [$d57d] and a ld a, [$d54c] jr z, .asm_314d0 cp $1 jp z, Func_31591 cp $3 jp z, Func_31591 cp $2 jp z, Func_315b3 cp $5 jp z, Func_315b3 cp $d jp z, Func_315d5 .asm_314d0 cp $0 jr z, .asm_314d6 scf ret .asm_314d6 call Func_3151f ld a, [$d54d] call CallInFollowingTable PointerTable_314df: ; 0xd13df dw Func_314ef db Bank(Func_314ef), $00 dw Func_314f1 db Bank(Func_314f1), $00 dw Func_314f3 db Bank(Func_314f3), $00 dw Func_31505 db Bank(Func_31505), $00 Func_314ef: ; 0x314ef scf ret Func_314f1: ; 0x314f1 scf ret Func_314f3: ; 0x314f3 ld [$ff8a], a callba Func_3022b ld de, $0001 call PlaySong scf ret Func_31505: ; 0x31505 ld a, [$d5ca] and a ret nz call Func_30e8 ld [$ff8a], a callba Func_3022b ld de, $0001 call PlaySong scf ret Func_3151f: ; 0x3151f ld a, $50 ld [$d4ef], a ld [$d4f1], a ld [$ff8a], a callba Func_107f8 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $3 ld [$d54d], a xor a ld [$d604], a ld [wIndicatorStates], a ld [wIndicatorStates + 1], a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 4], a ld a, [wCurrentStage] bit 0, a jr z, .asm_31577 ld [$ff8a], a callba Func_14135 ld [$ff8a], a callba Func_16425 ld [$ff8a], a callba Func_30253 .asm_31577 ld [$ff8a], a callba Func_86d2 call Func_30e8 call Func_30db ld hl, $d5cc ld de, Data_2ca8 call LoadTextHeader ret Func_31591: ; 0x31591 ld a, [$d55a] and a jr nz, .asm_315b1 ld a, [wIndicatorStates] and a jr z, .asm_315b1 xor a ld [wIndicatorStates], a ld [wIndicatorStates + 2], a ld a, $80 ld [wIndicatorStates + 4], a ld a, $1 ld [$d604], a ld [$d54d], a .asm_315b1 scf ret Func_315b3: ; 0x315b3 ld a, [$d55a] and a jr z, .asm_315d3 ld a, [wIndicatorStates + 1] and a jr z, .asm_315d3 xor a ld [wIndicatorStates + 1], a ld [wIndicatorStates + 3], a ld a, $80 ld [wIndicatorStates + 4], a ld a, $1 ld [$d604], a ld [$d54d], a .asm_315d3 scf ret Func_315d5: ; 0x315d5 ld de, $0000 call PlaySong rst AdvanceFrame ld [$ff8a], a callba Func_31281 ld [$ff8a], a callba Func_30253 ld de, $2525 call PlaySoundEffect ld bc, Data_2cbf ld [$ff8a], a callba Func_3118f .asm_31603 ld [$ff8a], a callba Func_33e3 rst AdvanceFrame ld a, [$d5ca] and a jr nz, .asm_31603 ld a, $2 ld [$d54d], a scf ret Func_3161b: ; 0x3161b ld a, [$d57d] and a ld a, [$d54c] jr z, .asm_3163d cp $1 jp z, Func_31708 cp $f jp z, Func_31708 cp $2 jp z, Func_3172a cp $e jp z, Func_3172a cp $d jp z, Func_3174c .asm_3163d cp $0 jr z, .asm_31643 scf ret .asm_31643 call Func_3168c ld a, [$d54d] call CallInFollowingTable PointerTable_3164c: ; 0x3164c dw Func_3165c db Bank(Func_3165c), $00 dw Func_3165e db Bank(Func_3165e), $00 dw Func_31660 db Bank(Func_31660), $00 dw Func_31672 db Bank(Func_31672), $00 Func_3165c: ; 0x3165c scf ret Func_3165e: ; 0x3165e scf ret Func_31660: ; 0x31660 ld [$ff8a], a callba Func_3022b ld de, $0001 call PlaySong scf ret Func_31672: ; 0x31672 ld a, [$d5ca] and a ret nz call Func_30e8 ld [$ff8a], a callba Func_3022b ld de, $0001 call PlaySong scf ret Func_3168c: ; 0x3168c ld a, $50 ld [wLeftMapMoveDiglettAnimationCounter], a ld [wRightMapMoveDiglettFrame], a ld a, $3 ld [$d645], a ld a, $1 ld [$d646], a ld [$ff8a], a callba Func_107f8 ld a, [$d57e] and a ret z xor a ld [$d57e], a ld a, $3 ld [$d54d], a xor a ld [$d604], a ld [wIndicatorStates], a ld [wIndicatorStates + 1], a ld [wIndicatorStates + 2], a ld [wIndicatorStates + 3], a ld [wIndicatorStates + 4], a ld a, [wCurrentStage] bit 0, a jr z, .asm_316ee ld [$ff8a], a callba Func_1c2cb ld [$ff8a], a callba Func_1e8f6 ld [$ff8a], a callba Func_30253 .asm_316ee ld [$ff8a], a callba Func_86d2 call Func_30e8 call Func_30db ld hl, $d5cc ld de, Data_2ca8 call LoadTextHeader ret Func_31708: ; 0x31708 ld a, [$d55a] and a jr nz, .asm_31728 ld a, [wIndicatorStates] and a jr z, .asm_31728 xor a ld [wIndicatorStates], a ld [wIndicatorStates + 2], a ld a, $80 ld [wIndicatorStates + 4], a ld a, $1 ld [$d604], a ld [$d54d], a .asm_31728 scf ret Func_3172a: ; 0x3172a ld a, [$d55a] and a jr z, .asm_3174a ld a, [wIndicatorStates + 1] and a jr z, .asm_3174a xor a ld [wIndicatorStates + 1], a ld [wIndicatorStates + 3], a ld a, $80 ld [wIndicatorStates + 4], a ld a, $1 ld [$d604], a ld [$d54d], a .asm_3174a scf ret Func_3174c: ; 0x3174c ld de, $0000 call PlaySong rst AdvanceFrame ld [$ff8a], a callba Func_3140b ld [$ff8a], a callba Func_30253 ld de, $2525 call PlaySoundEffect ld bc, $2cbf ld [$ff8a], a callba Func_3118f .asm_3177a ld [$ff8a], a callba Func_33e3 rst AdvanceFrame ld a, [$d5ca] and a jr nz, .asm_3177a ld a, $2 ld [$d54d], a scf ret dr $31792, $34000 SECTION "bankd", ROMX, BANK[$d] SlotOnPic: ; 0x34000 INCBIN "gfx/billboard/slot/slot_on.2bpp" SlotOffPic: ; 0x34180 INCBIN "gfx/billboard/slot/slot_off.2bpp" dr $34300, $37f00 StageSeelBonusCollisionMasks: ; 0x37f00 INCBIN "data/collision/masks/seel_bonus.masks" SECTION "banke", ROMX, BANK[$e] Data_38000: db $89, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 Data_38010: db $89, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 Data_38020: db $51, $10, $00, $10, $00, $10, $00, $10, $00, $80, $00, $00, $00, $00, $00, $00 Data_38030: db $a9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 dr $38040, $3809a ; 0x38000 Data_3809a: db $00, $00, $00 db $40, $40, $40 db $90, $90, $90 db $e4, $e4, $e4 Data_380a6: db $59, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 dr $380b6, $38156 ; 0x38000 Data_38156: db $99, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 dr $38166, $39166 Data_39166: db $99, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 dr $39176, $3a176 ; 0x38000 Data_3a176: db $a1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 dr $3a186, $3a9e6 ; 0x38000 Data_3a9e6: db $79, $5d, $08, $00, $0b, $8c, $d0, $f4, $60, $00, $00, $00, $00, $00, $00, $00 Data_3a9f6: db $79, $52, $08, $00, $0b, $a9, $e7, $9f, $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0 Data_3aa06: db $79, $47, $08, $00, $0b, $c4, $d0, $16, $a5, $cb, $c9, $05, $d0, $10, $a2, $28 Data_3aa16: db $79, $3c, $08, $00, $0b, $f0, $12, $a5, $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9 Data_3aa26: db $79, $31, $08, $00, $0b, $0c, $a5, $ca, $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e Data_3aa36: db $79, $26, $08, $00, $0b, $39, $cd, $48, $0c, $d0, $34, $a5, $c9, $c9, $80, $d0 Data_3aa46: db $79, $1b, $08, $00, $0b, $ea, $ea, $ea, $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0 Data_3aa56: db $79, $10, $08, $00, $0b, $4c, $20, $08, $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea Data_3aa66: db $b9, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 Data_3aa76: db $b9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 dr $3aa86, $3c000 ; 0x38000 SECTION "bankf", ROMX, BANK[$f] Func_3c000: ; 0x3c000 push hl push de push bc push af call Func_3cb1b ld hl, $dd01 ld de, $01af .clearLoop xor a ld [hli], a dec de ld a, e or d jr nz, .clearLoop ld hl, rNR50 xor a ld [hli], a ld [hli], a ld a, $80 ld [hli], a ld hl, rNR10 ld e, $4 .asm_3c022 xor a ld [hli], a ld [hli], a ld a, $8 ld [hli], a xor a ld [hli], a ld a, $80 ld [hli], a dec e jr nz, .asm_3c022 ld a, $8 ld [$de9a], a ld a, $77 ld [$de98], a call Func_3cb15 pop af pop bc pop de pop hl ret Func_3c042: ; 0x3c042 ld a, [de] inc de and $7 ld [$deae], a ld c, a ld b, $0 ld hl, WRAMPointerTable_3cc92 add hl, bc add hl, bc ld c, [hl] inc hl ld b, [hl] ld hl, $0002 add hl, bc res 0, [hl] push de xor a ld hl, $0000 add hl, bc ld e, $32 .loop ld [hli], a dec e jr nz, .loop ld hl, $0017 add hl, bc xor a ld [hli], a inc a ld [hl], a ld hl, $0028 add hl, bc ld [hl], a pop de ld hl, $0005 add hl, bc ld a, [de] ld [hli], a inc de ld a, [de] ld [hl], a inc de ld hl, $0000 add hl, bc ld a, [$de9b] ld [hli], a ld a, [$de9c] ld [hl], a ret dr $3c08b, $3c090 PlaySong_BankF: ; 0x3c090 push de call Func_3c000 pop de call Func_3cb1b ld hl, $de9b ld [hl], e inc hl ld [hl], d ld hl, SongHeaderPointers0F add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld a, [de] rlca rlca and $3 inc a .asm_3c0ac push af call Func_3c042 call Func_3cadf pop af dec a jr nz, .asm_3c0ac call Func_3cb15 ret dr $3c0bb, $3c0c0 PlaySoundEffect_BankF: ; 0x3c0c0 call Func_3cb1b ld hl, $de9b ld [hl], e inc hl ld [hl], d ld hl, PointerTable_3e3ce add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld a, [de] rlca rlca and $3 inc a .asm_3c0d7 push af call Func_3c042 ld hl, $0002 add hl, bc set 3, [hl] call Func_3cadf pop af dec a jr nz, .asm_3c0d7 call Func_3cb15 ret dr $3c0ec, $3c0f0 PlayCry_BankF: ; 0x3c0f0 ; Plays a Pokemon cry. ; Input: e = mon id call Func_3cb1b ld a, e and a ret z dec e ld d, $0 ld hl, CryData add hl, de add hl, de add hl, de add hl, de add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ; de = base cry id inc hl ld a, [hli] ld [$dea8], a ld a, [hli] ld [$dea9], a ; dea8 = cry pitch ld a, [hli] ld [$deaa], a ld a, [hl] ld [$deab], a ; deaa = cry length ld hl, $de9b ld [hl], e inc hl ld [hl], d ld hl, CryBasePointers add hl, de add hl, de ld e, [hl] inc hl ld d, [hl] ld a, [de] rlca rlca and $3 inc a .asm_3c12a push af call Func_3c042 ld hl, $0002 add hl, bc set 5, [hl] ld hl, $0003 add hl, bc set 4, [hl] ld hl, $0026 add hl, bc ld a, [$dea8] ld [hli], a ld a, [$dea9] ld [hl], a ld a, [$de97] and $3 cp $3 jr nc, .asm_3c15b ld hl, $0017 add hl, bc ld a, [$deaa] ld [hli], a ld a, [$deab] ld [hl], a .asm_3c15b call Func_3cadf pop af dec a jr nz, .asm_3c12a ld a, [$deac] and a jr nz, .asm_3c173 ld a, [$de98] ld [$deac], a ld a, $77 ld [$de98], a .asm_3c173 ld a, $1 ld [$dead], a call Func_3cb15 ret dr $3c17c, $3c180 Func_3c180: ; 0x3c180 ld a, [$dd00] and a ret z xor a ld [$de97], a ld [$de99], a ld bc, $dd01 .asm_3c18f ld hl, $0002 add hl, bc bit 0, [hl] jp z, .asm_3c22d ld hl, $0014 add hl, bc ld a, [hl] cp $2 jr c, .asm_3c1a4 dec [hl] jr .asm_3c1c1 .asm_3c1a4 ld hl, $001c add hl, bc ld a, [hl] ld hl, $001b add hl, bc ld [hl], a ld hl, $0025 add hl, bc ld a, [hl] ld hl, $0024 add hl, bc ld [hl], a ld hl, $0003 add hl, bc res 1, [hl] call Func_3c670 .asm_3c1c1 ld hl, $000d add hl, bc ld a, [hli] ld [$de91], a ld a, [hli] ld [$de92], a ld a, [hli] ld [$de93], a ld a, [hl] ld [$de94], a call Func_3c4f0 call Func_3c632 ld a, [$dead] and a jr z, .asm_3c20a ld a, [$de97] cp $4 jr nc, .asm_3c219 ld hl, $ddcb bit 0, [hl] jr nz, .asm_3c204 ld hl, $ddfd bit 0, [hl] jr nz, .asm_3c204 ld hl, $de2f bit 0, [hl] jr nz, .asm_3c204 ld hl, $de61 bit 0, [hl] jr z, .asm_3c20a .asm_3c204 ld hl, $000b add hl, bc set 5, [hl] .asm_3c20a ld a, [$de97] cp $4 jr nc, .asm_3c219 ld hl, $00ca add hl, bc bit 0, [hl] jr nz, .asm_3c227 .asm_3c219 call Func_3c24d ld hl, $0019 add hl, bc ld a, [$de99] or [hl] ld [$de99], a .asm_3c227 ld hl, $000b add hl, bc xor a ld [hl], a .asm_3c22d ld hl, $0032 add hl, bc ld c, l ld b, h ld a, [$de97] inc a ld [$de97], a cp $8 jp nz, .asm_3c18f call Func_3c40d ld a, [$de98] ld [rNR50], a ld a, [$de99] ld [rNR51], a ret Func_3c24d: ; 0x3c24d ld hl, PointerTable_3c25e ld a, [$de97] and $7 add a ld e, a ld d, $0 add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] PointerTable_3c25e: ; 0x3c25e dw Func_3c26e dw Func_3c2e0 dw Func_3c349 dw Func_3c3cf dw Func_3c26e dw Func_3c2e0 dw Func_3c349 dw Func_3c3cf Func_3c26e: ; 0x3c26e ld hl, $000b add hl, bc bit 3, [hl] jr z, .asm_3c27b ld a, [$de9a] ld [rNR10], a .asm_3c27b bit 5, [hl] jr nz, .asm_3c2ba bit 4, [hl] jr nz, .asm_3c2c6 bit 6, [hl] jr nz, .asm_3c2b4 bit 1, [hl] jr z, .asm_3c295 ld a, [$de93] ld [rNR13], a ld a, [$de94] ld [rNR14], a .asm_3c295 bit 2, [hl] jr z, .asm_3c2a5 ld a, [$de92] ld [rNR12], a ld a, [$de94] or $80 ld [rNR14], a .asm_3c2a5 bit 0, [hl] ret z ld a, [$de91] ld d, a ld a, [rNR11] and $3f or d ld [rNR11], a ret .asm_3c2b4 ld a, [$de93] ld [rNR13], a ret .asm_3c2ba ld a, $8 ld [rNR12], a ld a, [$de94] or $80 ld [rNR14], a ret .asm_3c2c6 ld hl, $de91 ld a, $3f or [hl] ld [rNR11], a ld a, [$de92] ld [rNR12], a ld a, [$de93] ld [rNR13], a ld a, [$de94] or $80 ld [rNR14], a ret Func_3c2e0: ; 0x3c2e0 ld hl, $000b add hl, bc bit 5, [hl] jr nz, .asm_3c323 bit 4, [hl] jr nz, .asm_3c32f bit 6, [hl] jr nz, .asm_3c31d bit 1, [hl] jr z, .asm_3c2fe ld a, [$de93] ld [rNR23], a ld a, [$de94] ld [rNR24], a .asm_3c2fe bit 2, [hl] jr z, .asm_3c30e ld a, [$de92] ld [rNR22], a ld a, [$de94] or $80 ld [rNR24], a .asm_3c30e bit 0, [hl] ret z ld a, [$de91] ld d, a ld a, [rNR21] and $3f or d ld [rNR21], a ret .asm_3c31d ld a, [$de93] ld [rNR23], a ret .asm_3c323 ld a, $8 ld [rNR22], a ld a, [$de94] or $80 ld [rNR24], a ret .asm_3c32f ld hl, $de91 ld a, $3f or [hl] ld [rNR21], a ld a, [$de92] ld [rNR22], a ld a, [$de93] ld [rNR23], a ld a, [$de94] or $80 ld [rNR24], a ret Func_3c349: ; 0x3c349 ld hl, $000b add hl, bc bit 5, [hl] jr nz, .asm_3c387 bit 4, [hl] jr nz, .asm_3c38b bit 6, [hl] jr nz, .asm_3c381 bit 1, [hl] jr z, .asm_3c367 ld a, [$de93] ld [rNR33], a ld a, [$de94] ld [rNR34], a .asm_3c367 bit 2, [hl] ret z xor a ld [rNR30], a call LoadWavePattern ld a, $80 ld [rNR30], a ld a, [$de93] ld [rNR33], a ld a, [$de94] or $80 ld [rNR34], a ret .asm_3c381 ld a, [$de93] ld [rNR33], a ret .asm_3c387 xor a ld [rNR30], a ret .asm_3c38b ld a, $3f ld [rNR31], a xor a ld [rNR30], a call LoadWavePattern ld a, $80 ld [rNR30], a ld a, [$de93] ld [rNR33], a ld a, [$de94] or $80 ld [rNR34], a ret LoadWavePattern: ; 0x3c3a6 push hl ld a, [$de92] and $f ld l, a ld h, $0 add hl, hl add hl, hl add hl, hl add hl, hl ld de, WavePatterns_BankF add hl, de ld de, rWave_0 push bc ld b, $10 .loop ld a, [hli] ld [de], a inc de dec b jr nz, .loop pop bc pop hl ld a, [$de92] and $f0 sla a ld [rNR32], a ; set volume of wave channel ret Func_3c3cf: ; 0x3c3cf ld hl, $000b add hl, bc bit 5, [hl] jr nz, .asm_3c3f1 bit 4, [hl] jr nz, .asm_3c3fa bit 1, [hl] jr z, .asm_3c3e4 ld a, [$de93] ld [rNR43], a .asm_3c3e4 bit 2, [hl] ret z ld a, [$de92] ld [rNR42], a ld a, $80 ld [rNR44], a ret .asm_3c3f1 ld a, $8 ld [rNR42], a ld a, $80 ld [rNR44], a ret .asm_3c3fa ld a, $3f ld [rNR41], a ld a, [$de92] ld [rNR42], a ld a, [$de93] ld [rNR43], a ld a, $80 ld [rNR44], a ret Func_3c40d: ; 0x3c40d ld a, [$dea2] and a ret z ld a, [$dea3] and a jr z, .asm_3c41d dec a ld [$dea3], a ret .asm_3c41d ld a, [$dea2] ld d, a and $7f ld [$dea3], a ld a, [$de98] and $7 bit 7, d jr nz, .asm_3c448 and a jr z, .asm_3c435 dec a jr .asm_3c454 .asm_3c435 ld a, [$dea4] ld e, a ld a, [$dea5] ld d, a push bc call PlaySong_BankF pop bc ld hl, $dea2 set 7, [hl] ret .asm_3c448 cp $7 jr nc, .asm_3c44f inc a jr .asm_3c454 .asm_3c44f xor a ld [$dea2], a ret .asm_3c454 ld d, a swap a or d ld [$de98], a ret Func_3c45c: ; 0x3c45c ld hl, $0003 add hl, bc bit 1, [hl] ret z ld hl, $0014 add hl, bc ld a, [hl] ld hl, $de95 sub [hl] jr nc, .asm_3c470 ld a, $1 .asm_3c470 ld [hl], a ld hl, $000f add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $001f add hl, bc ld a, e sub [hl] ld e, a ld a, d sbc $0 ld d, a ld hl, $0020 add hl, bc sub [hl] jr nc, .asm_3c4ab ld hl, $0004 add hl, bc set 1, [hl] ld hl, $000f add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $001f add hl, bc ld a, [hl] sub e ld e, a ld a, d sbc $0 ld d, a ld hl, $0020 add hl, bc ld a, [hl] sub d ld d, a jr .asm_3c4c9 .asm_3c4ab ld hl, $0004 add hl, bc res 1, [hl] ld hl, $000f add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $001f add hl, bc ld a, e sub [hl] ld e, a ld a, d sbc $0 ld d, a ld hl, $0020 add hl, bc sub [hl] ld d, a .asm_3c4c9 push bc ld hl, $de95 ld b, $0 .asm_3c4cf inc b ld a, e sub [hl] ld e, a jr nc, .asm_3c4cf ld a, d and a jr z, .asm_3c4dc dec d jr .asm_3c4cf .asm_3c4dc ld a, e add [hl] ld d, b pop bc ld hl, $0021 add hl, bc ld [hl], d ld hl, $0022 add hl, bc ld [hl], a ld hl, $0023 add hl, bc xor a ld [hl], a ; fall through Func_3c4f0: ; 0x3c4f0 ld hl, $0003 add hl, bc bit 2, [hl] jr z, .asm_3c50b ld hl, $001a add hl, bc ld a, [hl] rlca rlca ld [hl], a and $c0 ld [$de91], a ld hl, $000b add hl, bc set 0, [hl] .asm_3c50b ld hl, $0003 add hl, bc bit 4, [hl] jr z, .asm_3c529 ld hl, $0026 add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $de93 ld a, [hli] ld h, [hl] ld l, a add hl, de ld e, l ld d, h ld hl, $de93 ld [hl], e inc hl ld [hl], d .asm_3c529 ld hl, $0003 add hl, bc bit 1, [hl] jp z, .asm_3c5c1 ld hl, $000f add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $0004 add hl, bc bit 1, [hl] jr z, .asm_3c574 ld hl, $0021 add hl, bc ld l, [hl] ld h, $0 add hl, de ld d, h ld e, l ld hl, $0022 add hl, bc ld a, [hl] ld hl, $0023 add hl, bc add [hl] ld [hl], a ld a, $0 adc e ld e, a ld a, $0 adc d ld d, a ld hl, $0020 add hl, bc ld a, [hl] cp d jp c, .asm_3c5a1 jr nz, .asm_3c5b4 ld hl, $001f add hl, bc ld a, [hl] cp e jp c, .asm_3c5a1 jr .asm_3c5b4 .asm_3c574 ld a, e ld hl, $0021 add hl, bc ld e, [hl] sub e ld e, a ld a, d sbc $0 ld d, a ld hl, $0022 add hl, bc ld a, [hl] add a ld [hl], a ld a, e sbc $0 ld e, a ld a, d sbc $0 ld d, a ld hl, $0020 add hl, bc ld a, d cp [hl] jr c, .asm_3c5a1 jr nz, .asm_3c5b4 ld hl, $001f add hl, bc ld a, e cp [hl] jr nc, .asm_3c5b4 .asm_3c5a1 ld hl, $0003 add hl, bc res 1, [hl] ld hl, $0004 add hl, bc res 1, [hl] ld hl, $0020 add hl, bc ld e, [hl] inc hl ld d, [hl] .asm_3c5b4 ld hl, $000f add hl, bc ld [hl], e inc hl ld [hl], d ld hl, $000b add hl, bc set 1, [hl] .asm_3c5c1 ld hl, $0003 add hl, bc bit 0, [hl] jr z, .asm_3c61a ld hl, $001b add hl, bc ld a, [hl] and a jr nz, .asm_3c5e3 ld hl, $001d add hl, bc ld a, [hl] and a jr z, .asm_3c61a ld d, a ld hl, $001e add hl, bc ld a, [hl] and $f jr z, .asm_3c5e6 .asm_3c5e3 dec [hl] jr .asm_3c61a .asm_3c5e6 ld a, [hl] swap [hl] or [hl] ld [hl], a ld a, [$de93] ld e, a ld hl, $0004 add hl, bc bit 0, [hl] jr z, .asm_3c605 res 0, [hl] ld a, d and $f ld d, a ld a, e sub d jr nc, .asm_3c611 ld a, $0 jr .asm_3c611 .asm_3c605 set 0, [hl] ld a, d and $f0 swap a add e jr nc, .asm_3c611 ld a, $ff .asm_3c611 ld [$de93], a ld hl, $000b add hl, bc set 6, [hl] .asm_3c61a ld hl, $0003 add hl, bc bit 3, [hl] ret z ld hl, $0024 add hl, bc ld a, [hl] and a jr z, .asm_3c62b dec [hl] ret .asm_3c62b ld hl, $000b add hl, bc set 5, [hl] ret Func_3c632: ; 0x3c632 ld hl, $0002 add hl, bc bit 4, [hl] ret z ld a, [$de9f] and a jr z, .asm_3c644 dec a ld [$de9f], a ret .asm_3c644 ld hl, $de9d ld e, [hl] inc hl ld d, [hl] ld a, [de] inc de cp $ff ret z and $f inc a ld [$de9f], a ld a, [de] inc de ld [$de92], a ld a, [de] inc de ld [$de93], a xor a ld [$de94], a ld hl, $de9d ld [hl], e inc hl ld [hl], d ld hl, $000b add hl, bc set 4, [hl] ret Func_3c670: ; 0x3c670 call Func_3ca10 cp $ff jr z, .asm_3c6c9 cp $d0 jr c, .asm_3c680 .asm_3c67b call Func_3c786 jr Func_3c670 .asm_3c680 ld hl, $0002 add hl, bc bit 3, [hl] jp nz, Func_3c723 bit 5, [hl] jp nz, Func_3c723 bit 4, [hl] jp nz, Func_3c750 ld a, [$de96] and $f call Func_3ca5b ld a, [$de96] swap a and $f jr z, .asm_3c6c2 ld hl, $0011 add hl, bc ld [hl], a ld e, a ld hl, $0012 add hl, bc ld d, [hl] call Func_3ca2b ld hl, $000f add hl, bc ld [hl], e inc hl ld [hl], d ld hl, $000b add hl, bc set 4, [hl] jp Func_3c45c .asm_3c6c2 ld hl, $000b add hl, bc set 5, [hl] ret .asm_3c6c9 ld hl, $0002 add hl, bc bit 1, [hl] jr nz, .asm_3c67b ld a, [$de97] cp $4 jr nc, .asm_3c6e0 ld hl, $00ca add hl, bc bit 0, [hl] jr nz, .asm_3c6f6 .asm_3c6e0 ld hl, $0002 add hl, bc bit 5, [hl] call nz, Func_3c704 ld a, [$de97] cp $4 jr nz, .asm_3c6f6 xor a ld [rNR10], a ld [$de9a], a .asm_3c6f6 ld hl, $0002 add hl, bc res 0, [hl] ld hl, $0000 add hl, bc xor a ld [hli], a ld [hli], a ret Func_3c704: ; 0x3c704 ld a, [$de97] cp $4 ret nz xor a ld hl, $de21 ld [hli], a ld [hl], a ld hl, $de85 ld [hli], a ld [hl], a ld a, [$deac] ld [$de98], a xor a ld [$deac], a ld [$dead], a ret Func_3c723: ; 0x3c723 ld hl, $000b add hl, bc set 4, [hl] ld a, [$de96] call Func_3ca5b call Func_3ca10 ld hl, $000e add hl, bc ld [hl], a call Func_3ca10 ld hl, $000f add hl, bc ld [hl], a ld a, [$de97] and $3 cp $3 ret z call Func_3ca10 ld hl, $0010 add hl, bc ld [hl], a ret Func_3c750: ; 0x3c750 ld a, [$de97] cp $3 ret nz ld a, [$de96] and $f call Func_3ca5b ld a, [$dea1] ld e, a ld d, $0 ld hl, $4ba2 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a ld a, [$de96] swap a and $f ret z ld e, a ld d, $0 add hl, de add hl, de ld a, [hli] ld [$de9d], a ld a, [hl] ld [$de9e], a xor a ld [$de9f], a ret Func_3c786: ; 0x3c786 ld a, [$de96] sub $d0 ld e, a ld d, $0 ld hl, PointerTable_3c797 add hl, de add hl, de ld a, [hli] ld h, [hl] ld l, a jp [hl] PointerTable_3c797: ; 0x3c797 dw Func_3c9b6 dw Func_3c9b6 dw Func_3c9b6 dw Func_3c9b6 dw Func_3c9b6 dw Func_3c9b6 dw Func_3c9b6 dw Func_3c9b6 dw Func_3c973 dw Func_3c9c1 dw Func_3c9aa dw Func_3c994 dw Func_3c9a1 dw Func_3c987 dw Func_3c939 dw Func_3c951 dw Func_3c8ff dw Func_3c8c4 dw Func_3c8b5 dw Func_3c95f dw Func_3c9ca dw Func_3c9da dw Func_3c926 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c9e9 dw Func_3c7f7 dw Func_3c7f7 dw Func_3ca05 dw Func_3ca0b dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c7f7 dw Func_3c885 dw Func_3c88e dw Func_3c833 dw Func_3c843 dw Func_3c80d dw Func_3c7f8 Func_3c7f7: ; 0x3c7f7 ret Func_3c7f8: ; 0x3c7f8 ld hl, $0002 add hl, bc res 1, [hl] ld hl, $0007 add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $0005 add hl, bc ld [hl], e inc hl ld [hl], d ret Func_3c80d: ; 0x3c80d call Func_3ca10 ld e, a call Func_3ca10 ld d, a push de ld hl, $0005 add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $0007 add hl, bc ld [hl], e inc hl ld [hl], d pop de ld hl, $0005 add hl, bc ld [hl], e inc hl ld [hl], d ld hl, $0002 add hl, bc set 1, [hl] ret Func_3c833: ; 0x3c833 call Func_3ca10 ld e, a call Func_3ca10 ld d, a ld hl, $0005 add hl, bc ld [hl], e inc hl ld [hl], d ret Func_3c843: ; 0x3c843 call Func_3ca10 ld hl, $0002 add hl, bc bit 2, [hl] jr nz, .asm_3c859 and a jr z, .asm_3c862 dec a set 2, [hl] ld hl, $0016 add hl, bc ld [hl], a .asm_3c859 ld hl, $0016 add hl, bc ld a, [hl] and a jr z, .asm_3c872 dec [hl] .asm_3c862 call Func_3ca10 ld e, a call Func_3ca10 ld d, a ld hl, $0005 add hl, bc ld [hl], e inc hl ld [hl], d ret .asm_3c872 ld hl, $0002 add hl, bc res 2, [hl] ld hl, $0005 add hl, bc ld e, [hl] inc hl ld d, [hl] inc de inc de ld [hl], d dec hl ld [hl], e ret Func_3c885: ; 0x3c885 call Func_3ca10 ld hl, $000c add hl, bc ld [hl], a ret Func_3c88e: ; 0x3c88e call Func_3ca10 ld hl, $000c add hl, bc cp [hl] jr z, .asm_3c8a5 ld hl, $0005 add hl, bc ld e, [hl] inc hl ld d, [hl] inc de inc de ld [hl], d dec hl ld [hl], e ret .asm_3c8a5 call Func_3ca10 ld e, a call Func_3ca10 ld d, a ld hl, $0005 add hl, bc ld [hl], e inc hl ld [hl], d ret Func_3c8b5: ; 0x3c8b5 call Func_3ca10 ld hl, $0025 add hl, bc ld [hl], a ld hl, $0003 add hl, bc set 3, [hl] ret Func_3c8c4: ; 0x3c8c4 ld hl, $0003 add hl, bc set 0, [hl] ld hl, $0004 add hl, bc res 0, [hl] call Func_3ca10 ld hl, $001c add hl, bc ld [hl], a ld hl, $001b add hl, bc ld [hl], a call Func_3ca10 ld hl, $001d add hl, bc ld d, a and $f0 swap a srl a ld e, a adc $0 swap a or e ld [hl], a ld hl, $001e add hl, bc ld a, d and $f ld d, a swap a or d ld [hl], a ret Func_3c8ff: ; 0x3c8ff call Func_3ca10 ld [$de95], a call Func_3ca10 ld d, a and $f ld e, a ld a, d swap a and $f ld d, a call Func_3ca2b ld hl, $001f add hl, bc ld [hl], e ld hl, $0020 add hl, bc ld [hl], d ld hl, $0003 add hl, bc set 1, [hl] ret Func_3c926: ; 0x3c926 ld hl, $0003 add hl, bc set 4, [hl] ld hl, $0027 add hl, bc call Func_3ca10 ld [hld], a call Func_3ca10 ld [hl], a ret Func_3c939: ; 0x3c939 ld hl, $0003 add hl, bc set 2, [hl] call Func_3ca10 rrca rrca ld hl, $001a add hl, bc ld [hl], a and $c0 ld hl, $000d add hl, bc ld [hl], a ret Func_3c951: ; 0x3c951 ld hl, $0002 add hl, bc bit 3, [hl] jr z, .asm_3c95c res 3, [hl] ret .asm_3c95c set 3, [hl] ret Func_3c95f: ; 0x3c95f ld hl, $0002 add hl, bc bit 4, [hl] jr z, .asm_3c96a res 4, [hl] ret .asm_3c96a set 4, [hl] call Func_3ca10 ld [$dea1], a ret Func_3c973: ; 0x3c973 call Func_3ca10 ld hl, $0028 add hl, bc ld [hl], a ld a, [$de97] and $3 cp $3 ret z call Func_3c9a1 ret Func_3c987: ; 0x3c987 call Func_3ca10 ld [$de9a], a ld hl, $000b add hl, bc set 3, [hl] ret Func_3c994: ; 0x3c994 call Func_3ca10 rrca rrca and $c0 ld hl, $000d add hl, bc ld [hl], a ret Func_3c9a1: ; 0x3c9a1 call Func_3ca10 ld hl, $000e add hl, bc ld [hl], a ret Func_3c9aa: ; 0x3c9aa call Func_3ca10 ld d, a call Func_3ca10 ld e, a call Func_3ca95 ret Func_3c9b6: ; 0x3c9b6 ld hl, $0012 add hl, bc ld a, [$de96] and $7 ld [hl], a ret Func_3c9c1: ; 0x3c9c1 call Func_3ca10 ld hl, $0013 add hl, bc ld [hl], a ret Func_3c9ca: ; 0x3c9ca ld a, [$de97] call Func_3caf4 call Func_3ca10 ld hl, $0019 add hl, bc and [hl] ld [hl], a ret Func_3c9da: ; 0x3c9da call Func_3ca10 ld a, [$dea2] and a ret nz ld a, [$de96] ld [$de98], a ret Func_3c9e9: ; 0x3c9e9 call Func_3ca10 ld e, a cp $80 jr nc, .asm_3c9f5 ld d, $0 jr .asm_3c9f7 .asm_3c9f5 ld d, $ff .asm_3c9f7 ld hl, $0017 add hl, bc ld a, [hli] ld h, [hl] ld l, a add hl, de ld e, l ld d, h call Func_3ca95 ret Func_3ca05: ; 0x3ca05 ld a, $1 ld [$dead], a ret Func_3ca0b: ; 0x3ca0b xor a ld [$dead], a ret Func_3ca10: ; 0x3ca10 push hl push de ld hl, $0005 add hl, bc ld e, [hl] inc hl ld d, [hl] ld a, [de] ld [$de96], a inc de ld hl, $0005 add hl, bc ld [hl], e inc hl ld [hl], d pop de pop hl ld a, [$de96] ret Func_3ca2b: ; 0x3ca2b ld hl, $0013 add hl, bc ld a, [hl] swap a and $f add d push af ld hl, $0013 add hl, bc ld a, [hl] and $f ld l, a ld d, $0 ld h, d add hl, de add hl, hl ld de, $4b20 ; todo add hl, de ld e, [hl] inc hl ld d, [hl] pop af .asm_3ca4b cp $7 jr nc, .asm_3ca56 sra d rr e inc a jr .asm_3ca4b .asm_3ca56 ld a, d and $7 ld d, a ret Func_3ca5b: ; 0x3ca5b inc a ld e, a ld d, $0 ld hl, $0028 add hl, bc ld a, [hl] ld l, $0 call Func_3ca86 ld a, l ld hl, $0017 add hl, bc ld e, [hl] inc hl ld d, [hl] ld hl, $0015 add hl, bc ld l, [hl] call Func_3ca86 ld e, l ld d, h ld hl, $0015 add hl, bc ld [hl], e ld hl, $0014 add hl, bc ld [hl], d ret Func_3ca86: ; 0x3ca86 ld h, $0 .asm_3ca88 srl a jr nc, .asm_3ca8d add hl, de .asm_3ca8d sla e rl d and a jr nz, .asm_3ca88 ret Func_3ca95: ; 0x3ca95 push bc ld a, [$de97] cp $4 jr nc, .asm_3cab7 ld bc, $dd01 call Func_3cad1 ld bc, $dd33 call Func_3cad1 ld bc, $dd65 call Func_3cad1 ld bc, $dd97 call Func_3cad1 jr .asm_3cacf .asm_3cab7 ld bc, $ddc9 call Func_3cad1 ld bc, $ddfb call Func_3cad1 ld bc, $de2d call Func_3cad1 ld bc, $de5f call Func_3cad1 .asm_3cacf pop bc ret Func_3cad1: ; 0x3cad1 ld hl, $0017 add hl, bc ld [hl], e inc hl ld [hl], d xor a ld hl, $0015 add hl, bc ld [hl], a ret Func_3cadf: ; 0x3cadf call Func_3cb06 ld a, [$deae] jr .asm_3caea ld a, [$de97] .asm_3caea call Func_3caf4 ld hl, $0002 add hl, bc set 0, [hl] ret Func_3caf4: ; 0x3caf4 push de and $3 ld e, a ld d, $0 ld hl, Data_3cc8e add hl, de ld a, [hl] ld hl, $0019 add hl, bc ld [hl], a pop de ret Func_3cb06: ; 0x3cb06 ld a, [$deae] and $3 cp $0 ret nz xor a ld [rNR10], a ld [$de9a], a ret Func_3cb15: ; 0x3cb15 ld a, $1 ld [$dd00], a ret Func_3cb1b: ; 0x3cb1b xor a ld [$dd00], a ret dr $3cb20, $3cb52 WavePatterns_BankF: WavePattern0_BankF: ; 0x3cb52 db $02, $46, $8A, $CE, $FF, $FE, $ED, $DC, $CB, $A9, $87, $65, $44, $33, $22, $11 WavePattern1_BankF: ; 0x3cb62 db $02, $46, $8A, $CE, $EF, $FF, $FE, $EE, $DD, $CB, $A9, $87, $65, $43, $22, $11 WavePattern2_BankF: ; 0x3cb72 db $01, $23, $43, $21, $FE, $CA, $8A, $CE, $01, $23, $43, $21, $FE, $CA, $8A, $CE WavePattern3_BankF: ; 0x3cb82 db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE WavePattern4_BankF: ; 0x3cb92 db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE dr $3cba2, $3cc8e Data_3cc8e: ; 0x3cc8e db $11, $22, $44, $88 WRAMPointerTable_3cc92: ; 0x3cc92 dw $DD01 dw $DD33 dw $DD65 dw $DD97 dr $3cc9a, $3cca2 SongHeaderPointers0F: ; 0x3cca2 dw Music_Nothing0F dw Music_BlueField dw Music_CatchEmRed dw Music_HurryUpRed dw Music_Pokedex dw Music_GastlyInTheGraveyard dw Music_HaunterInTheGraveyard dw Music_GengarInTheGraveyard ; 0x3ccb2 INCLUDE "audio/music/nothing0f.asm" INCLUDE "audio/music/bluefield.asm" INCLUDE "audio/music/catchemred.asm" INCLUDE "audio/music/pokedex.asm" INCLUDE "audio/music/hurryupred.asm" INCLUDE "audio/music/gastlyinthegraveyard.asm" INCLUDE "audio/music/haunterinthegraveyard.asm" INCLUDE "audio/music/gengarinthegraveyard.asm" PointerTable_3e3ce: ; 0x3e3ce dw $646A dw $6480 dw $649A dw $64BA dw $64D0 dw $64E0 dw $64F0 dw $6500 dw $651A dw $652E dw $6544 dw $6554 dw $657C dw $6589 dw $659F dw $65B5 dw $65C5 dw $65E2 dw $65F4 dw $6606 dw $6618 dw $662A dw $663C dw $664E dw $6660 dw $6672 dw $6684 dw $6696 dw $66A8 dw $66BA dw $66CC dw $66DE dw $66F0 dw $6702 dw $671A dw $675D dw $6810 dw $68AE dw $696D dw $6A25 dw $6A68 dw $6A82 dw $6B17 dw $6BF9 dw $6C17 dw $6C31 dw $6C4B dw $6C7D dw $6C8F dw $6CA7 dw $6CB7 dw $6CD1 dw $6CE9 dw $6CFF dw $6D15 dw $6D31 dw $6D4D dw $6D65 dw $6D78 dw $6D98 dw $6DB0 dw $6DC0 dw $6DD0 dw $6DE3 dw $6DF3 dw $6E1C dw $6E32 dw $6E48 dw $6E5E dw $6E78 dw $6E92 dw $6EAA dw $6EC4 dw $6ED4 dw $6EEA dw $6F00 dw $6F16 dw $6F27 dr $3e46a, $3ef63 CryBasePointers: ; 0x3ef63 dw Cry_00_Header_BankF dw Cry_01_Header_BankF dw Cry_02_Header_BankF dw Cry_03_Header_BankF dw Cry_04_Header_BankF dw Cry_05_Header_BankF dw Cry_06_Header_BankF dw Cry_07_Header_BankF dw Cry_08_Header_BankF dw Cry_09_Header_BankF dw Cry_0A_Header_BankF dw Cry_0B_Header_BankF dw Cry_0C_Header_BankF dw Cry_0D_Header_BankF dw Cry_0E_Header_BankF dw Cry_0F_Header_BankF dw Cry_10_Header_BankF dw Cry_11_Header_BankF dw Cry_12_Header_BankF dw Cry_13_Header_BankF dw Cry_14_Header_BankF dw Cry_15_Header_BankF dw Cry_16_Header_BankF dw Cry_17_Header_BankF dw Cry_18_Header_BankF dw Cry_19_Header_BankF dw Cry_1A_Header_BankF dw Cry_1B_Header_BankF dw Cry_1C_Header_BankF dw Cry_1D_Header_BankF dw Cry_1E_Header_BankF dw Cry_1F_Header_BankF dw Cry_20_Header_BankF dw Cry_21_Header_BankF dw Cry_22_Header_BankF dw Cry_23_Header_BankF dw Cry_24_Header_BankF dw Cry_25_Header_BankF CryData: ; 0x3efaf ; Each entry is in the following format: ; [base cry id], [pitch], [length dw $000F, $0080, $0081 ; BULBASAUR dw $000F, $0020, $0100 ; IVYSAUR dw $000F, $0000, $0140 ; VENUSAUR dw $0004, $0060, $00C0 ; CHARMANDER dw $0004, $0020, $00C0 ; CHARMELEON dw $0004, $0000, $0100 ; CHARIZARD dw $001D, $0060, $00C0 ; SQUIRTLE dw $001D, $0020, $00C0 ; WARTORTLE dw $0013, $0000, $0100 ; BLASTOISE dw $0016, $0080, $00A0 ; CATERPIE dw $001C, $00CC, $0081 ; METAPOD dw $0016, $0077, $00C0 ; BUTTERFREE dw $0015, $00EE, $0081 ; WEEDLE dw $0013, $00FF, $0081 ; KAKUNA dw $0013, $0060, $0100 ; BEEDRILL dw $000E, $00DF, $0084 ; PIDGEY dw $0014, $0028, $0140 ; PIDGEOTTO dw $0014, $0011, $017F ; PIDGEOT dw $0022, $0000, $0100 ; RATTATA dw $0022, $0020, $017F ; RATICATE dw $0010, $0000, $0100 ; SPEAROW dw $0018, $0040, $0120 ; FEAROW dw $0017, $0012, $00C0 ; EKANS dw $0017, $00E0, $0090 ; ARBOK dw $000F, $00EE, $0081 ; PIKACHU dw $0009, $00EE, $0088 ; RAICHU dw $0000, $0020, $00C0 ; SANDSHREW dw $0000, $00FF, $017F ; SANDSLASH dw $0001, $0000, $0100 ; NIDORAN_F dw $0001, $002C, $0160 ; NIDORINA dw $000A, $0000, $0100 ; NIDOQUEEN dw $0000, $0000, $0100 ; NIDORAN_M dw $0000, $002C, $0140 ; NIDORINO dw $0009, $0000, $0100 ; NIDOKING dw $0019, $00CC, $0081 ; CLEFAIRY dw $0019, $00AA, $00A0 ; CLEFABLE dw $0024, $004F, $0090 ; VULPIX dw $0024, $0088, $00E0 ; NINETALES dw $000E, $00FF, $00B5 ; JIGGLYPUFF dw $000E, $0068, $00E0 ; WIGGLYTUFF dw $001D, $00E0, $0100 ; ZUBAT dw $001D, $00FA, $0100 ; GOLBAT dw $0008, $00DD, $0081 ; ODDISH dw $0008, $00AA, $00C0 ; GLOOM dw $0023, $0022, $017F ; VILEPLUME dw $001E, $0020, $0160 ; PARAS dw $001E, $0042, $017F ; PARASECT dw $001A, $0044, $00C0 ; VENONAT dw $001A, $0029, $0100 ; VENOMOTH dw $000B, $00AA, $0081 ; DIGLETT dw $000B, $002A, $0090 ; DUGTRIO dw $0019, $0077, $0090 ; MEOWTH dw $0019, $0099, $017F ; PERSIAN dw $0021, $0020, $00E0 ; PSYDUCK dw $0021, $00FF, $00C0 ; GOLDUCK dw $000A, $00DD, $00E0 ; MANKEY dw $000A, $00AF, $00C0 ; PRIMEAPE dw $001F, $0020, $00C0 ; GROWLITHE dw $0015, $0000, $0100 ; ARCANINE dw $000E, $00FF, $017F ; POLIWAG dw $000E, $0077, $00E0 ; POLIWHIRL dw $000E, $0000, $017F ; POLIWRATH dw $001C, $00C0, $0081 ; ABRA dw $001C, $00A8, $0140 ; KADABRA dw $001C, $0098, $017F ; ALAKAZAM dw $001F, $00EE, $0081 ; MACHOP dw $001F, $0048, $00E0 ; MACHOKE dw $001F, $0008, $0140 ; MACHAMP dw $0021, $0055, $0081 ; BELLSPROUT dw $0025, $0044, $00A0 ; WEEPINBELL dw $0025, $0066, $014C ; VICTREEBEL dw $001A, $0000, $0100 ; TENTACOOL dw $001A, $00EE, $017F ; TENTACRUEL dw $0024, $00F0, $0090 ; GEODUDE dw $0024, $0000, $0100 ; GRAVELER dw $0012, $00E0, $00C0 ; GOLEM dw $0025, $0000, $0100 ; PONYTA dw $0025, $0020, $0140 ; RAPIDASH dw $0002, $0000, $0100 ; SLOWPOKE dw $001F, $0000, $0100 ; SLOWBRO dw $001C, $0080, $00E0 ; MAGNEMITE dw $001C, $0020, $0140 ; MAGNETON dw $0010, $00DD, $0081 ; FARFETCH_D dw $000B, $00BB, $0081 ; DODUO dw $000B, $0099, $00A0 ; DODRIO dw $000C, $0088, $0140 ; SEEL dw $000C, $0023, $017F ; DEWGONG dw $0005, $0000, $0100 ; GRIMER dw $0007, $00EF, $017F ; MUK dw $0018, $0000, $0100 ; SHELLDER dw $0018, $006F, $0160 ; CLOYSTER dw $001C, $0000, $0100 ; GASTLY dw $001C, $0030, $00C0 ; HAUNTER dw $0007, $0000, $017F ; GENGAR dw $0017, $00FF, $0140 ; ONIX dw $000D, $0088, $00A0 ; DROWZEE dw $000D, $00EE, $00C0 ; HYPNO dw $0020, $0020, $0160 ; KRABBY dw $0020, $00EE, $0160 ; KINGLER dw $0006, $00ED, $0100 ; VOLTORB dw $0006, $00A8, $0110 ; ELECTRODE dw $000B, $0000, $0100 ; EXEGGCUTE dw $000D, $0000, $0100 ; EXEGGUTOR dw $0019, $0000, $0100 ; CUBONE dw $0008, $004F, $00E0 ; MAROWAK dw $0012, $0080, $0140 ; HITMONLEE dw $000C, $00EE, $0140 ; HITMONCHAN dw $000C, $0000, $0100 ; LICKITUNG dw $0012, $00E6, $015D ; KOFFING dw $0012, $00FF, $017F ; WEEZING dw $0004, $0000, $0100 ; RHYHORN dw $0011, $0000, $0100 ; RHYDON dw $0014, $000A, $0140 ; CHANSEY dw $0012, $0000, $0100 ; TANGELA dw $0003, $0000, $0100 ; KANGASKHAN dw $0019, $0099, $0090 ; HORSEA dw $0019, $003C, $0081 ; SEADRA dw $0016, $0080, $00C0 ; GOLDEEN dw $0016, $0010, $017F ; SEAKING dw $001E, $0002, $00A0 ; STARYU dw $001E, $0000, $0100 ; STARMIE dw $0020, $0008, $00C0 ; MR_MIME dw $0016, $0000, $0100 ; SCYTHER dw $000D, $00FF, $017F ; JYNX dw $0006, $008F, $017F ; ELECTABUZZ dw $0004, $00FF, $00B0 ; MAGMAR dw $0014, $0000, $0100 ; PINSIR dw $001D, $0011, $00C0 ; TAUROS dw $0017, $0080, $0080 ; MAGIKARP dw $0017, $0000, $0100 ; GYARADOS dw $001B, $0000, $0100 ; LAPRAS dw $000E, $00FF, $017F ; DITTO dw $001A, $0088, $00E0 ; EEVEE dw $001A, $00AA, $017F ; VAPOREON dw $001A, $003D, $0100 ; JOLTEON dw $001A, $0010, $00A0 ; FLAREON dw $0025, $00AA, $017F ; PORYGON dw $001F, $00F0, $0081 ; OMANYTE dw $001F, $00FF, $00C0 ; OMASTAR dw $0016, $00BB, $00C0 ; KABUTO dw $0018, $00EE, $0081 ; KABUTOPS dw $0023, $0020, $0170 ; AERODACTYL dw $0005, $0055, $0081 ; SNORLAX dw $0009, $0080, $00C0 ; ARTICUNO dw $0018, $00FF, $0100 ; ZAPDOS dw $0009, $00F8, $00C0 ; MOLTRES dw $000F, $0060, $00C0 ; DRATINI dw $000F, $0040, $0100 ; DRAGONAIR dw $000F, $003C, $0140 ; DRAGONITE dw $001E, $0099, $017F ; MEWTWO dw $001E, $00EE, $017F ; MEW Cry_00_Header_BankF: ; 0x3f339 db $84 dw $7733 db $05 dw $7742 db $07 dw $7751 Cry_01_Header_BankF: ; 0x3f342 db $84 dw $7943 db $05 dw $7956 db $07 dw $7969 Cry_02_Header_BankF: ; 0x3f34b db $84 dw $78B8 db $05 dw $78C7 db $07 dw $78D5 Cry_03_Header_BankF: ; 0x3f354 db $84 dw $7652 db $05 dw $7671 db $07 dw $7690 Cry_04_Header_BankF: ; 0x3f35d db $84 dw $7A01 db $05 dw $7A20 db $07 dw $7A3F Cry_05_Header_BankF: ; 0x3f366 db $84 dw $77E1 db $05 dw $77F4 db $07 dw $7806 Cry_06_Header_BankF: ; 0x3f36f db $84 dw $778B db $05 dw $77A5 db $07 dw $77A6 Cry_07_Header_BankF: ; 0x3f378 db $84 dw $77B9 db $05 dw $77C8 db $07 dw $77D7 Cry_08_Header_BankF: ; 0x3f381 db $84 dw $79D1 db $05 dw $79E4 db $07 dw $79F7 Cry_09_Header_BankF: ; 0x3f38a db $84 dw $74DB db $05 dw $74F8 db $07 dw $7519 Cry_0A_Header_BankF: ; 0x3f393 db $84 dw $7976 db $05 dw $7995 db $07 dw $79B8 Cry_0B_Header_BankF: ; 0x3f39c db $84 dw $7807 db $05 dw $7832 db $07 dw $7851 Cry_0C_Header_BankF: ; 0x3f3a5 db $84 dw $786A db $05 dw $7891 db $07 dw $78B7 Cry_0D_Header_BankF: ; 0x3f3ae db $84 dw $78D6 db $05 dw $78F5 db $07 dw $7924 Cry_0E_Header_BankF: ; 0x3f db $84 dw $775B db $05 dw $776E db $07 dw $7781 Cry_0F_Header_BankF: ; 0x3f db $84 dw $769D db $05 dw $76B8 db $07 dw $76D3 Cry_10_Header_BankF: ; 0x3f3b7 db $84 dw $76E3 db $05 dw $7706 db $07 dw $7729 Cry_11_Header_BankF: ; 0x3f3c0 db $84 dw $75BF db $05 dw $75DE db $07 dw $7601 Cry_12_Header_BankF: ; 0x3f3c9 db $84 dw $7AD7 db $05 dw $7AEA db $07 dw $7AFD Cry_13_Header_BankF: ; 0x3f3d2 db $84 dw $7B0A db $05 dw $7B25 db $07 dw $7B40 Cry_14_Header_BankF: ; 0x3f3db db $84 dw $7B53 db $05 dw $7B62 db $07 dw $7B71 Cry_15_Header_BankF: ; 0x3f3e4 db $84 dw $7BE1 db $05 dw $7BFC db $07 dw $7C17 Cry_16_Header_BankF: ; 0x3f3ed db $84 dw $7A74 db $05 dw $7A83 db $07 dw $7A92 Cry_17_Header_BankF: ; 0x3f3f6 db $84 dw $7C2A db $05 dw $7C3D db $07 dw $7C50 Cry_18_Header_BankF: ; 0x3f3ff db $84 dw $7D3A db $05 dw $7D5D db $07 dw $7D80 Cry_19_Header_BankF: ; 0x3f408 db $84 dw $7A52 db $05 dw $7A61 db $07 dw $7A73 Cry_1A_Header_BankF: ; 0x3f411 db $84 dw $7CAB db $05 dw $7CC6 db $07 dw $7CE1 Cry_1B_Header_BankF: ; 0x3f41a db $84 dw $7A9C db $05 dw $7AB3 db $07 dw $7ACA Cry_1C_Header_BankF: ; 0x3f423 db $84 dw $7C5D db $05 dw $7C80 db $07 dw $7C9B Cry_1D_Header_BankF: ; 0x3f42c db $84 dw $7CF4 db $05 dw $7D0F db $07 dw $7D2A Cry_1E_Header_BankF: ; 0x3f435 db $84 dw $7B7B db $05 dw $7B9E db $07 dw $7BC5 Cry_1F_Header_BankF: ; 0x3f43e db $84 dw $7D93 db $05 dw $7DA6 db $07 dw $7DB9 Cry_20_Header_BankF: ; 0x3f447 db $84 dw $7DC6 db $05 dw $7DD9 db $07 dw $7DEC Cry_21_Header_BankF: ; 0x3f450 db $84 dw $7DF9 db $05 dw $7E1C db $07 dw $7E3E Cry_22_Header_BankF: ; 0x3f459 db $84 dw $7E3F db $05 dw $7E52 db $07 dw $7E65 Cry_23_Header_BankF: ; 0x3f462 db $84 dw $7532 db $05 dw $7549 db $07 dw $755C Cry_24_Header_BankF: ; 0x3f46b db $84 dw $7569 db $05 dw $758C db $07 dw $75AF Cry_25_Header_BankF: ; 0x3f474 db $84 dw $7617 db $05 dw $762E db $07 dw $7645 dr $3f48f, $40000 SECTION "bank10", ROMX, BANK[$10] dr $40000, $40ca2 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" dr $4255b, $44000 SECTION "bank11", ROMX, BANK[$11] dr $44000, $44ca2 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" dr $462d3, $48000 SECTION "bank12", ROMX, BANK[$12] dr $48000, $48ca2 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" dr $49c04, $4c000 SECTION "bank13", ROMX, BANK[$13] dr $4c000, $4cca2 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" dr $4def4, $50000 SECTION "bank14", ROMX, BANK[$14] PlayPikachuSoundClip: ; 0x50000 ; Plays the pcm (pulse-code modulation) sound clip of one of the pikachu noises. sla a ld c, a ld b, $0 ld hl, PikachuSoundClipPointers add hl, bc ld a, [hli] ld h, [hl] ld l, a push hl di ld b, $4 .asm_50010 ld a, [rLY] and a jr nz, .asm_50010 dec b jr nz, .asm_50010 xor a ld [rNR50], a ld [rNR51], a ld a, $80 ld [rNR52], a xor a ld [rNR30], a ld hl, $d84b ld c, $30 ld b, $10 .asm_5002b ld a, [$ff00+c] ld [hli], a ld a, $ff ld [$ff00+c], a inc c dec b jr nz, .asm_5002b ld a, $80 ld [rNR30], a ld a, $ff ld [rNR31], a ld a, $20 ld [rNR32], a ld a, $ff ld [rNR33], a ld a, $87 ld [rNR34], a ld a, $77 ld [rNR50], a ld a, $44 ld [rNR51], a pop hl call PlayPikachuPCM xor a ld [rNR50], a ld [rNR51], a ld [rNR52], a ld hl, $d84b ld c, $30 ld b, $10 .asm_50062 ld a, [hli] ld [$ff00+c], a inc c dec b jr nz, .asm_50062 ld a, $77 ld [rNR50], a ld a, $ff ld [rNR51], a ld a, $80 ld [rNR52], a ei ret PikachuSoundClipPointers: ; 0x50076 dw PikachuBillboardBonusSoundClip dw PikachuThundershockSoundClip PikachuBillboardBonusSoundClip: ; 0x5007a dw $caf ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds) INCBIN "audio/sound_clips/pi_ka_chu.pcm" db $1f ; unused PikachuThundershockSoundClip: ; 0x50d2c dw $1227 ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds) INCBIN "audio/sound_clips/piiiiikaaaa.pcm" db $f0, $00, $00 ; unused PlayPikachuPCM: ; 0x51f56 ; Plays the audio PCM at [hl] ld a, [hli] ld c, a ld a, [hli] ld b, a ; bc = number of bytes in the sound clip's PCM (pulse-code modulation) .loop ld a, [hli] ld d, a ld a, $3 .playSingleSample dec a jr nz, .playSingleSample call LoadNextSoundClipSample call PlaySoundClipSample call LoadNextSoundClipSample call PlaySoundClipSample call LoadNextSoundClipSample call PlaySoundClipSample call LoadNextSoundClipSample call PlaySoundClipSample call LoadNextSoundClipSample call PlaySoundClipSample call LoadNextSoundClipSample call PlaySoundClipSample call LoadNextSoundClipSample call PlaySoundClipSample call LoadNextSoundClipSample dec bc ld a, c or b jr nz, .loop ret LoadNextSoundClipSample: ; 0x51f94 ld a, d and $80 srl a srl a ld [rNR32], a sla d ret PlaySoundClipSample: ; 0x51fa0 ld a, $3 .loop dec a jr nz, .loop ret dr $51fa6, $54000 SECTION "bank15", ROMX, BANK[$15] dr $54000, $58000 ; 0x54000 SECTION "bank16", ROMX, BANK[$16] BallSaver30SecondsOnPic: ; 0x58000 INCBIN "gfx/billboard/slot/30secondballsaver_on.2bpp" BallSaver30SecondsOffPic: ; 0x58180 INCBIN "gfx/billboard/slot/30secondballsaver_off.2bpp" BallSaver60SecondsOnPic: ; 0x58300 INCBIN "gfx/billboard/slot/60secondballsaver_on.2bpp" BallSaver60SecondsOffPic: ; 0x580480 INCBIN "gfx/billboard/slot/60secondballsaver_off.2bpp" BallSaver90SecondsOnPic: ; 0x58600 INCBIN "gfx/billboard/slot/90secondballsaver_on.2bpp" BallSaver90SecondsOffPic: ; 0x58780 INCBIN "gfx/billboard/slot/90secondballsaver_off.2bpp" PikachuSaverOnPic: ; 0x58900 INCBIN "gfx/billboard/slot/pikachusaver_on.2bpp" PikachuSaverOffPic: ; 0x58a80 INCBIN "gfx/billboard/slot/pikachusaver_off.2bpp" ExtraBallOnPic: ; 0x58c00 INCBIN "gfx/billboard/slot/extraball_on.2bpp" ExtraBallOffPic: ; 0x58d80 INCBIN "gfx/billboard/slot/extraball_off.2bpp" SmallRewardOnPic: ; 0x58f00 INCBIN "gfx/billboard/slot/small_on.2bpp" SmallRewardOffPic: ; 0x59080 INCBIN "gfx/billboard/slot/small_off.2bpp" BigRewardOnPic: ; 0x59200 INCBIN "gfx/billboard/slot/big_on.2bpp" BigRewardOffPic: ; 0x59380 INCBIN "gfx/billboard/slot/big_off.2bpp" CatchEmModeOnPic: ; 0x59500 INCBIN "gfx/billboard/slot/catchem_on.2bpp" CatchEmModeOffPic: ; 0x59680 INCBIN "gfx/billboard/slot/catchem_off.2bpp" EvolutionModeOnPic: ; 0x59800 INCBIN "gfx/billboard/slot/evolution_on.2bpp" EvolutionModeOffPic: ; 0x59980 INCBIN "gfx/billboard/slot/evolution_off.2bpp" GreatBallOnPic: ; 0x59b00 INCBIN "gfx/billboard/slot/greatball_on.2bpp" GreatBallOffPic: ; 0x59c80 INCBIN "gfx/billboard/slot/greatball_off.2bpp" UltraBallOnPic: ; 0x59e00 INCBIN "gfx/billboard/slot/ultraball_on.2bpp" UltraBallOffPic: ; 0x59f80 INCBIN "gfx/billboard/slot/ultraball_off.2bpp" MasterBallOnPic: ; 0x5a100 INCBIN "gfx/billboard/slot/masterball_on.2bpp" MasterBallOffPic: ; 0x5a280 INCBIN "gfx/billboard/slot/masterball_off.2bpp" BonusMultiplierOnPic: ; 0x5a400 INCBIN "gfx/billboard/slot/bonusmultiplier_on.2bpp" BonusMultiplierOffPic: ; 0x5a580 INCBIN "gfx/billboard/slot/bonusmultiplier_off.2bpp" HurryUpOnPic: ; 0x5a700 INCBIN "gfx/billboard/hurryup_on.2bpp" HurryUpOffPic: ; 0x5a880 INCBIN "gfx/billboard/hurryup_off.2bpp" HurryUp2OnPic: ; 0x5aa00 INCBIN "gfx/billboard/hurryup2_on.2bpp" HurryUp2OffPic: ; 0x5ab80 INCBIN "gfx/billboard/hurryup2_off.2bpp" GoToNextOnPic: ; 0x5ad00 INCBIN "gfx/billboard/gotonext_on.2bpp" GoToNextOffPic: ; 0x5ae80 INCBIN "gfx/billboard/gotonext_off.2bpp" GoToGengarBonusOnPic: ; 0x5b000 INCBIN "gfx/billboard/bonus_stages/gotogengarbonus_on.2bpp" GoToGengarBonusOffPic: ; 0x5b180 INCBIN "gfx/billboard/bonus_stages/gotogengarbonus_off.2bpp" GoToMewtwoBonusOnPic: ; 0x5b300 INCBIN "gfx/billboard/bonus_stages/gotomewtwobonus_on.2bpp" GoToMewtwoBonusOffPic: ; 0x5b480 INCBIN "gfx/billboard/bonus_stages/gotomewtwobonus_off.2bpp" GoToMeowthBonusOnPic: ; 0x5b600 INCBIN "gfx/billboard/bonus_stages/gotomeowthbonus_on.2bpp" GoToMeowthBonusOffPic: ; 0x5b780 INCBIN "gfx/billboard/bonus_stages/gotomeowthbonus_off.2bpp" GoToDiglettBonusOnPic: ; 0x5b900 INCBIN "gfx/billboard/bonus_stages/gotodiglettbonus_on.2bpp" GoToDiglettBonusOffPic: ; 0x5ba80 INCBIN "gfx/billboard/bonus_stages/gotodiglettbonus_off.2bpp" GoToSeelBonusOnPic: ; 0x5bc00 INCBIN "gfx/billboard/bonus_stages/gotoseelbonus_on.2bpp" GoToSeelBonusOffPic: ; 0x5bd80 INCBIN "gfx/billboard/bonus_stages/gotoseelbonus_off.2bpp" ChanseyBillboardBGPalette1: ; 0x5bf00 RGB 31, 31, 31 RGB 31, 15, 20 RGB 27, 5, 7 RGB 0, 0, 0 ChanseyBillboardBGPalette2: ; 0x5bf08 RGB 31, 31, 31 RGB 31, 15, 20 RGB 27, 5, 7 RGB 0, 0, 0 TangelaBillboardBGPalette1: ; 0x5bf10 RGB 31, 31, 31 RGB 15, 21, 29 RGB 4, 8, 18 RGB 0, 0, 0 TangelaBillboardBGPalette2: ; 0x5bf18 RGB 31, 31, 31 RGB 15, 21, 29 RGB 4, 8, 18 RGB 0, 0, 0 KangaskhanBillboardBGPalette1: ; 0x5bf20 RGB 31, 31, 31 RGB 31, 18, 9 RGB 17, 10, 4 RGB 0, 0, 0 KangaskhanBillboardBGPalette2: ; 0x5bf28 RGB 31, 31, 31 RGB 31, 18, 9 RGB 17, 10, 4 RGB 0, 0, 0 HorseaBillboardBGPalette1: ; 0x5bf30 RGB 31, 31, 31 RGB 12, 19, 31 RGB 4, 7, 22 RGB 0, 0, 0 HorseaBillboardBGPalette2: ; 0x5bf38 RGB 31, 31, 31 RGB 25, 26, 3 RGB 4, 7, 22 RGB 0, 0, 0 SeadraBillboardBGPalette1: ; 0x5bf40 RGB 31, 31, 31 RGB 12, 19, 31 RGB 4, 7, 22 RGB 0, 0, 0 SeadraBillboardBGPalette2: ; 0x5bf48 RGB 31, 31, 31 RGB 12, 19, 31 RGB 4, 7, 22 RGB 0, 0, 0 GoldeenBillboardBGPalette1: ; 0x5bf50 RGB 31, 31, 31 RGB 30, 16, 4 RGB 29, 3, 0 RGB 0, 0, 0 GoldeenBillboardBGPalette2: ; 0x5bf58 RGB 31, 31, 31 RGB 30, 16, 4 RGB 29, 3, 0 RGB 0, 0, 0 SeakingBillboardBGPalette1: ; 0x5bf60 RGB 31, 31, 31 RGB 29, 17, 5 RGB 31, 5, 0 RGB 0, 0, 0 SeakingBillboardBGPalette2: ; 0x5bf68 RGB 31, 31, 31 RGB 29, 17, 5 RGB 31, 5, 0 RGB 0, 0, 0 StaryuBillboardBGPalette1: ; 0x5bf70 RGB 31, 31, 31 RGB 31, 20, 0 RGB 19, 3, 6 RGB 0, 0, 0 StaryuBillboardBGPalette2: ; 0x5bf78 RGB 31, 31, 31 RGB 31, 16, 8 RGB 25, 3, 2 RGB 0, 0, 0 StarmieBillboardBGPalette1: ; 0x5bf80 RGB 31, 31, 31 RGB 31, 17, 0 RGB 15, 8, 16 RGB 0, 0, 0 StarmieBillboardBGPalette2: ; 0x5bf88 RGB 31, 31, 31 RGB 31, 16, 8 RGB 25, 3, 2 RGB 0, 0, 0 MrMimeBillboardBGPalette1: ; 0x5bf90 RGB 31, 31, 31 RGB 31, 17, 19 RGB 28, 6, 4 RGB 0, 0, 0 MrMimeBillboardBGPalette2: ; 0x5bf98 RGB 31, 31, 31 RGB 31, 17, 19 RGB 28, 6, 4 RGB 0, 0, 0 ScytherBillboardBGPalette1: ; 0x5bfa0 RGB 31, 31, 31 RGB 17, 31, 4 RGB 4, 16, 4 RGB 0, 0, 0 ScytherBillboardBGPalette2: ; 0x5bfa8 RGB 31, 31, 31 RGB 17, 31, 4 RGB 4, 16, 4 RGB 0, 0, 0 JynxBillboardBGPalette1: ; 0x5bfb0 RGB 31, 31, 31 RGB 29, 13, 15 RGB 30, 6, 1 RGB 0, 0, 0 JynxBillboardBGPalette2: ; 0x5bfb8 RGB 31, 31, 31 RGB 31, 21, 0 RGB 30, 6, 1 RGB 0, 0, 0 ElectabuzzBillboardBGPalette1: ; 0x5bfc0 RGB 31, 31, 31 RGB 31, 27, 0 RGB 19, 11, 0 RGB 0, 0, 0 ElectabuzzBillboardBGPalette2: ; 0x5bfc8 RGB 31, 31, 31 RGB 31, 27, 0 RGB 19, 11, 0 RGB 0, 0, 0 MagmarBillboardBGPalette1: ; 0x5bfd0 RGB 31, 31, 31 RGB 31, 27, 0 RGB 28, 6, 0 RGB 0, 0, 0 MagmarBillboardBGPalette2: ; 0x5bfd8 RGB 31, 31, 31 RGB 31, 27, 0 RGB 28, 6, 0 RGB 0, 0, 0 PinsirBillboardBGPalette1: ; 0x5bfe0 RGB 31, 31, 31 RGB 17, 23, 10 RGB 21, 10, 3 RGB 0, 0, 0 PinsirBillboardBGPalette2: ; 0x5bfe8 RGB 31, 31, 31 RGB 31, 19, 8 RGB 21, 10, 3 RGB 0, 0, 0 TaurosBillboardBGPalette1: ; 0x5bff0 RGB 31, 31, 31 RGB 31, 18, 7 RGB 17, 9, 0 RGB 0, 0, 0 TaurosBillboardBGPalette2: ; 0x5bff8 RGB 31, 31, 31 RGB 14, 16, 20 RGB 17, 9, 0 RGB 0, 0, 0 SECTION "bank17", ROMX, BANK[$17] SmallReward100PointsOnPic: ; 0x5c000 INCBIN "gfx/billboard/slot/100points_on.2bpp" SmallReward100PointsOffPic: ; 0x5c180 INCBIN "gfx/billboard/slot/100points_off.2bpp" SmallReward200PointsOnPic: ; 0x5c300 INCBIN "gfx/billboard/slot/200points_on.2bpp" SmallReward200PointsOffPic: ; 0x54800 INCBIN "gfx/billboard/slot/200points_off.2bpp" SmallReward300PointsOnPic: ; 0x5c600 INCBIN "gfx/billboard/slot/300points_on.2bpp" SmallReward300PointsOffPic: ; 0x5c780 INCBIN "gfx/billboard/slot/300points_off.2bpp" SmallReward400PointsOnPic: ; 0x5c900 INCBIN "gfx/billboard/slot/400points_on.2bpp" SmallReward400PointsOffPic: ; 0x5ca80 INCBIN "gfx/billboard/slot/400points_off.2bpp" SmallReward500PointsOnPic: ; 0x5cc00 INCBIN "gfx/billboard/slot/500points_on.2bpp" SmallReward500PointsOffPic: ; 0x5cd80 INCBIN "gfx/billboard/slot/500points_off.2bpp" SmallReward600PointsOnPic: ; 0x5cf00 INCBIN "gfx/billboard/slot/600points_on.2bpp" SmallReward600PointsOffPic: ; 0x5d080 INCBIN "gfx/billboard/slot/600points_off.2bpp" SmallReward700PointsOnPic: ; 0x5d200 INCBIN "gfx/billboard/slot/700points_on.2bpp" SmallReward700PointsOffPic: ; 0x5d380 INCBIN "gfx/billboard/slot/700points_off.2bpp" SmallReward800PointsOnPic: ; 0x5d500 INCBIN "gfx/billboard/slot/800points_on.2bpp" SmallReward800PointsOffPic: ; 0x5d680 INCBIN "gfx/billboard/slot/800points_off.2bpp" SmallReward900PointsOnPic: ; 0x5d800 INCBIN "gfx/billboard/slot/900points_on.2bpp" SmallReward900PointsOffPic: ; 0x5d980 INCBIN "gfx/billboard/slot/900points_off.2bpp" BigReward1000000PointsOnPic: ; 0x5db00 INCBIN "gfx/billboard/slot/1000000points_on.2bpp" BigReward1000000PointsOffPic: ; 0x5dc80 INCBIN "gfx/billboard/slot/1000000points_off.2bpp" BigReward2000000PointsOnPic: ; 0x5de00 INCBIN "gfx/billboard/slot/2000000points_on.2bpp" BigReward2000000PointsOffPic: ; 0x5df80 INCBIN "gfx/billboard/slot/2000000points_off.2bpp" BigReward3000000PointsOnPic: ; 0x5e100 INCBIN "gfx/billboard/slot/3000000points_on.2bpp" BigReward3000000PointsOffPic: ; 0x5e280 INCBIN "gfx/billboard/slot/3000000points_off.2bpp" BigReward4000000PointsOnPic: ; 0x5e400 INCBIN "gfx/billboard/slot/4000000points_on.2bpp" BigReward4000000PointsOffPic: ; 0x5e580 INCBIN "gfx/billboard/slot/4000000points_off.2bpp" BigReward5000000PointsOnPic: ; 0x5e700 INCBIN "gfx/billboard/slot/5000000points_on.2bpp" BigReward5000000PointsOffPic: ; 0x5e880 INCBIN "gfx/billboard/slot/5000000points_off.2bpp" BigReward6000000PointsOnPic: ; 0x5ea00 INCBIN "gfx/billboard/slot/6000000points_on.2bpp" BigReward6000000PointsOffPic: ; 0x5eb80 INCBIN "gfx/billboard/slot/6000000points_off.2bpp" BigReward7000000PointsOnPic: ; 0x5ed00 INCBIN "gfx/billboard/slot/7000000points_on.2bpp" BigReward7000000PointsOffPic: ; 0x5ee80 INCBIN "gfx/billboard/slot/7000000points_off.2bpp" BigReward8000000PointsOnPic: ; 0x5f000 INCBIN "gfx/billboard/slot/8000000points_on.2bpp" BigReward8000000PointsOffPic: ; 0x5f180 INCBIN "gfx/billboard/slot/8000000points_off.2bpp" BigReward9000000PointsOnPic: ; 0x5f300 INCBIN "gfx/billboard/slot/9000000points_on.2bpp" BigReward9000000PointsOffPic: ; 0x5f480 INCBIN "gfx/billboard/slot/9000000points_off.2bpp" MeowthBonusBaseGameBoyGfx: ; 0x5f600 INCBIN "gfx/stage/meowth_bonus/meowth_bonus_base_gameboy.2bpp" SECTION "bank18", ROMX, BANK[$18] VenomothPic: ; 0x60000 INCBIN "gfx/billboard/mon_pics/venomoth.2bpp" VenomothSilhouettePic: ; 0x60180 INCBIN "gfx/billboard/mon_silhouettes/venomoth.2bpp" DiglettPic: ; 0x60300 INCBIN "gfx/billboard/mon_pics/diglett.2bpp" DiglettSilhouettePic: ; 0x60480 INCBIN "gfx/billboard/mon_silhouettes/diglett.2bpp" DugtrioPic: ; 0x60600 INCBIN "gfx/billboard/mon_pics/dugtrio.2bpp" DugtrioSilhouettePic: ; 0x60780 INCBIN "gfx/billboard/mon_silhouettes/dugtrio.2bpp" MeowthPic: ; 0x60900 INCBIN "gfx/billboard/mon_pics/meowth.2bpp" MeowthSilhouettePic: ; 0x60a80 INCBIN "gfx/billboard/mon_silhouettes/meowth.2bpp" PersianPic: ; 0x60c00 INCBIN "gfx/billboard/mon_pics/persian.2bpp" PersianSilhouettePic: ; 0x60d80 INCBIN "gfx/billboard/mon_silhouettes/persian.2bpp" PsyduckPic: ; 0x60f00 INCBIN "gfx/billboard/mon_pics/psyduck.2bpp" PsyduckSilhouettePic: ; 0x61080 INCBIN "gfx/billboard/mon_silhouettes/psyduck.2bpp" GolduckPic: ; 0x61200 INCBIN "gfx/billboard/mon_pics/golduck.2bpp" GolduckSilhouettePic: ; 0x61380 INCBIN "gfx/billboard/mon_silhouettes/golduck.2bpp" MankeyPic: ; 0x61500 INCBIN "gfx/billboard/mon_pics/mankey.2bpp" MankeySilhouettePic: ; 0x61680 INCBIN "gfx/billboard/mon_silhouettes/mankey.2bpp" PrimeapePic: ; 0x61800 INCBIN "gfx/billboard/mon_pics/primeape.2bpp" PrimeapeSilhouettePic: ; 0x61980 INCBIN "gfx/billboard/mon_silhouettes/primeape.2bpp" GrowlithePic: ; 0x61b00 INCBIN "gfx/billboard/mon_pics/growlithe.2bpp" GrowlitheSilhouettePic: ; 0x61c80 INCBIN "gfx/billboard/mon_silhouettes/growlithe.2bpp" ArcaninePic: ; 0x61e00 INCBIN "gfx/billboard/mon_pics/arcanine.2bpp" ArcanineSilhouettePic: ; 0x61f80 INCBIN "gfx/billboard/mon_silhouettes/arcanine.2bpp" PoliwagPic: ; 0x62100 INCBIN "gfx/billboard/mon_pics/poliwag.2bpp" PoliwagSilhouettePic: ; 0x62280 INCBIN "gfx/billboard/mon_silhouettes/poliwag.2bpp" PoliwhirlPic: ; 0x62400 INCBIN "gfx/billboard/mon_pics/poliwhirl.2bpp" PoliwhirlSilhouettePic: ; 0x62580 INCBIN "gfx/billboard/mon_silhouettes/poliwhirl.2bpp" PoliwrathPic: ; 0x62700 INCBIN "gfx/billboard/mon_pics/poliwrath.2bpp" PoliwrathSilhouettePic: ; 0x62880 INCBIN "gfx/billboard/mon_silhouettes/poliwrath.2bpp" AbraPic: ; 0x62a00 INCBIN "gfx/billboard/mon_pics/abra.2bpp" AbraSilhouettePic: ; 0x62b80 INCBIN "gfx/billboard/mon_silhouettes/abra.2bpp" KadabraPic: ; 0x62d00 INCBIN "gfx/billboard/mon_pics/kadabra.2bpp" KadabraSilhouettePic: ; 0x62e80 INCBIN "gfx/billboard/mon_silhouettes/kadabra.2bpp" StageRedFieldTopStatusBarSymbolsGfx_GameBoy: ; 0x63000 INCBIN "gfx/stage/red_top/status_bar_symbols_gameboy.2bpp" dr $63100, $632a0 StageRedFieldTopBaseGameBoyGfx: ; 0x632a0 INCBIN "gfx/stage/red_top/red_top_base_gameboy.2bpp" SECTION "bank19", ROMX, BANK[$19] NidorinoPic: ; 0x64000 INCBIN "gfx/billboard/mon_pics/nidorino.2bpp" NidorinoSilhouettePic: ; 0x64180 INCBIN "gfx/billboard/mon_silhouettes/nidorino.2bpp" NidokingPic: ; 0x64300 INCBIN "gfx/billboard/mon_pics/nidoking.2bpp" NidokingSilhouettePic: ; 0x64480 INCBIN "gfx/billboard/mon_silhouettes/nidoking.2bpp" ClefairyPic: ; 0x64600 INCBIN "gfx/billboard/mon_pics/clefairy.2bpp" ClefairySilhouettePic: ; 0x64780 INCBIN "gfx/billboard/mon_silhouettes/clefairy.2bpp" ClefablePic: ; 0x64900 INCBIN "gfx/billboard/mon_pics/clefable.2bpp" ClefableSilhouettePic: ; 0x64a80 INCBIN "gfx/billboard/mon_silhouettes/clefable.2bpp" VulpixPic: ; 0x64c00 INCBIN "gfx/billboard/mon_pics/vulpix.2bpp" VulpixSilhouettePic: ; 0x64d80 INCBIN "gfx/billboard/mon_silhouettes/vulpix.2bpp" NinetalesPic: ; 0x64f00 INCBIN "gfx/billboard/mon_pics/ninetales.2bpp" NinetalesSilhouettePic: ; 0x65080 INCBIN "gfx/billboard/mon_silhouettes/ninetales.2bpp" JigglypuffPic: ; 0x65200 INCBIN "gfx/billboard/mon_pics/jigglypuff.2bpp" JigglypuffSilhouettePic: ; 0x65380 INCBIN "gfx/billboard/mon_silhouettes/jigglypuff.2bpp" WigglytuffPic: ; 0x65500 INCBIN "gfx/billboard/mon_pics/wigglytuff.2bpp" WigglytuffSilhouettePic: ; 0x65680 INCBIN "gfx/billboard/mon_silhouettes/wigglytuff.2bpp" ZubatPic: ; 0x65800 INCBIN "gfx/billboard/mon_pics/zubat.2bpp" ZubatSilhouettePic: ; 0x65980 INCBIN "gfx/billboard/mon_silhouettes/zubat.2bpp" GolbatPic: ; 0x65b00 INCBIN "gfx/billboard/mon_pics/golbat.2bpp" GolbatSilhouettePic: ; 0x65c80 INCBIN "gfx/billboard/mon_silhouettes/golbat.2bpp" OddishPic: ; 0x65e00 INCBIN "gfx/billboard/mon_pics/oddish.2bpp" OddishSilhouettePic: ; 0x65f80 INCBIN "gfx/billboard/mon_silhouettes/oddish.2bpp" GloomPic: ; 0x66100 INCBIN "gfx/billboard/mon_pics/gloom.2bpp" GloomSilhouettePic: ; 0x66280 INCBIN "gfx/billboard/mon_silhouettes/gloom.2bpp" VileplumePic: ; 0x66400 INCBIN "gfx/billboard/mon_pics/vileplume.2bpp" VileplumeSilhouettePic: ; 0x66580 INCBIN "gfx/billboard/mon_silhouettes/vileplume.2bpp" ParasPic: ; 0x66700 INCBIN "gfx/billboard/mon_pics/paras.2bpp" ParasSilhouettePic: ; 0x66880 INCBIN "gfx/billboard/mon_silhouettes/paras.2bpp" ParasectPic: ; 0x66a00 INCBIN "gfx/billboard/mon_pics/parasect.2bpp" ParasectSilhouettePic: ; 0x66b80 INCBIN "gfx/billboard/mon_silhouettes/parasect.2bpp" VenonatPic: ; 0x66d00 INCBIN "gfx/billboard/mon_pics/venonat.2bpp" VenonatSilhouettePic: ; 0x66e80 INCBIN "gfx/billboard/mon_silhouettes/venonat.2bpp" StageBlueFieldBottomBaseGameBoyGfx: ; 0x67000 INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboy.2bpp" SECTION "bank1a", ROMX, BANK[$1a] ChanseyPic: ; 0x68000 INCBIN "gfx/billboard/mon_pics/chansey.2bpp" ChanseySilhouettePic: ; 0x68180 INCBIN "gfx/billboard/mon_silhouettes/chansey.2bpp" TangelaPic: ; 0x68300 INCBIN "gfx/billboard/mon_pics/tangela.2bpp" TangelaSilhouettePic: ; 0x68480 INCBIN "gfx/billboard/mon_silhouettes/tangela.2bpp" KangaskhanPic: ; 0x68600 INCBIN "gfx/billboard/mon_pics/kangaskhan.2bpp" KangaskhanSilhouettePic: ; 0x68780 INCBIN "gfx/billboard/mon_silhouettes/kangaskhan.2bpp" HorseaPic: ; 0x68900 INCBIN "gfx/billboard/mon_pics/horsea.2bpp" HorseaSilhouettePic: ; 0x68a80 INCBIN "gfx/billboard/mon_silhouettes/horsea.2bpp" SeadraPic: ; 0x68c00 INCBIN "gfx/billboard/mon_pics/seadra.2bpp" SeadraSilhouettePic: ; 0x68d80 INCBIN "gfx/billboard/mon_silhouettes/seadra.2bpp" GoldeenPic: ; 0x68f00 INCBIN "gfx/billboard/mon_pics/goldeen.2bpp" GoldeenSilhouettePic: ; 0x69080 INCBIN "gfx/billboard/mon_silhouettes/goldeen.2bpp" SeakingPic: ; 0x69200 INCBIN "gfx/billboard/mon_pics/seaking.2bpp" SeakingSilhouettePic: ; 0x69380 INCBIN "gfx/billboard/mon_silhouettes/seaking.2bpp" StaryuPic: ; 0x69500 INCBIN "gfx/billboard/mon_pics/staryu.2bpp" StaryuSilhouettePic: ; 0x69680 INCBIN "gfx/billboard/mon_silhouettes/staryu.2bpp" StarmiePic: ; 0x69800 INCBIN "gfx/billboard/mon_pics/starmie.2bpp" StarmieSilhouettePic: ; 0x69980 INCBIN "gfx/billboard/mon_silhouettes/starmie.2bpp" Mr_MimePic: ; 0x69b00 INCBIN "gfx/billboard/mon_pics/mr_mime.2bpp" Mr_MimeSilhouettePic: ; 0x69c80 INCBIN "gfx/billboard/mon_silhouettes/mr_mime.2bpp" ScytherPic: ; 0x69e00 INCBIN "gfx/billboard/mon_pics/scyther.2bpp" ScytherSilhouettePic: ; 0x69f80 INCBIN "gfx/billboard/mon_silhouettes/scyther.2bpp" JynxPic: ; 0x6a100 INCBIN "gfx/billboard/mon_pics/jynx.2bpp" JynxSilhouettePic: ; 0x6a280 INCBIN "gfx/billboard/mon_silhouettes/jynx.2bpp" ElectabuzzPic: ; 0x6a400 INCBIN "gfx/billboard/mon_pics/electabuzz.2bpp" ElectabuzzSilhouettePic: ; 0x6a580 INCBIN "gfx/billboard/mon_silhouettes/electabuzz.2bpp" MagmarPic: ; 0x6a700 INCBIN "gfx/billboard/mon_pics/magmar.2bpp" MagmarSilhouettePic: ; 0x6a880 INCBIN "gfx/billboard/mon_silhouettes/magmar.2bpp" PinsirPic: ; 0x6aa00 INCBIN "gfx/billboard/mon_pics/pinsir.2bpp" PinsirSilhouettePic: ; 0x6ab80 INCBIN "gfx/billboard/mon_silhouettes/pinsir.2bpp" TaurosPic: ; 0x6ad00 INCBIN "gfx/billboard/mon_pics/tauros.2bpp" TaurosSilhouettePic: ; 0x6ae80 INCBIN "gfx/billboard/mon_silhouettes/tauros.2bpp" StageBlueFieldTopStatusBarSymbolsGfx_GameBoy: ; 0x6b000 INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboy.2bpp" dr $6b100, $6b2a0 StageBlueFieldTopBaseGameBoyGfx: ; 0x6b2a0 INCBIN "gfx/stage/blue_top/blue_top_base_gameboy.2bpp" SECTION "bank1b", ROMX, BANK[$1b] MagikarpPic: ; 0x6c000 INCBIN "gfx/billboard/mon_pics/magikarp.2bpp" MagikarpSilhouettePic: ; 0x6c180 INCBIN "gfx/billboard/mon_silhouettes/magikarp.2bpp" GyaradosPic: ; 0x6c300 INCBIN "gfx/billboard/mon_pics/gyarados.2bpp" GyaradosSilhouettePic: ; 0x6c480 INCBIN "gfx/billboard/mon_silhouettes/gyarados.2bpp" LaprasPic: ; 0x6c600 INCBIN "gfx/billboard/mon_pics/lapras.2bpp" LaprasSilhouettePic: ; 0x6c780 INCBIN "gfx/billboard/mon_silhouettes/lapras.2bpp" DittoPic: ; 0x6c900 INCBIN "gfx/billboard/mon_pics/ditto.2bpp" DittoSilhouettePic: ; 0x6ca80 INCBIN "gfx/billboard/mon_silhouettes/ditto.2bpp" EeveePic: ; 0x6cc00 INCBIN "gfx/billboard/mon_pics/eevee.2bpp" EeveeSilhouettePic: ; 0x6cd80 INCBIN "gfx/billboard/mon_silhouettes/eevee.2bpp" VaporeonPic: ; 0x6cf00 INCBIN "gfx/billboard/mon_pics/vaporeon.2bpp" VaporeonSilhouettePic: ; 0x6d080 INCBIN "gfx/billboard/mon_silhouettes/vaporeon.2bpp" JolteonPic: ; 0x6d200 INCBIN "gfx/billboard/mon_pics/jolteon.2bpp" JolteonSilhouettePic: ; 0x6d380 INCBIN "gfx/billboard/mon_silhouettes/jolteon.2bpp" FlareonPic: ; 0x6d500 INCBIN "gfx/billboard/mon_pics/flareon.2bpp" FlareonSilhouettePic: ; 0x6d680 INCBIN "gfx/billboard/mon_silhouettes/flareon.2bpp" PorygonPic: ; 0x6d800 INCBIN "gfx/billboard/mon_pics/porygon.2bpp" PorygonSilhouettePic: ; 0x6d980 INCBIN "gfx/billboard/mon_silhouettes/porygon.2bpp" OmanytePic: ; 0x6db00 INCBIN "gfx/billboard/mon_pics/omanyte.2bpp" OmanyteSilhouettePic: ; 0x6dc80 INCBIN "gfx/billboard/mon_silhouettes/omanyte.2bpp" OmastarPic: ; 0x6de00 INCBIN "gfx/billboard/mon_pics/omastar.2bpp" OmastarSilhouettePic: ; 0x6df80 INCBIN "gfx/billboard/mon_silhouettes/omastar.2bpp" KabutoPic: ; 0x6e100 INCBIN "gfx/billboard/mon_pics/kabuto.2bpp" KabutoSilhouettePic: ; 0x6e280 INCBIN "gfx/billboard/mon_silhouettes/kabuto.2bpp" KabutopsPic: ; 0x6e400 INCBIN "gfx/billboard/mon_pics/kabutops.2bpp" KabutopsSilhouettePic: ; 0x6e580 INCBIN "gfx/billboard/mon_silhouettes/kabutops.2bpp" AerodactylPic: ; 0x6e700 INCBIN "gfx/billboard/mon_pics/aerodactyl.2bpp" AerodactylSilhouettePic: ; 0x6e880 INCBIN "gfx/billboard/mon_silhouettes/aerodactyl.2bpp" SnorlaxPic: ; 0x6ea00 INCBIN "gfx/billboard/mon_pics/snorlax.2bpp" SnorlaxSilhouettePic: ; 0x6eb80 INCBIN "gfx/billboard/mon_silhouettes/snorlax.2bpp" ArticunoPic: ; 0x6ed00 INCBIN "gfx/billboard/mon_pics/articuno.2bpp" ArticunoSilhouettePic: ; 0x6ee80 INCBIN "gfx/billboard/mon_silhouettes/articuno.2bpp" UnusedStageGfx: ; 0x6f000 INCBIN "gfx/stage/unused_stage.2bpp" 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" dr $71500, $73000 GengarBonusBaseGameBoyGfx: ; 0x73000 INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboy.2bpp" SECTION "bank1d", ROMX, BANK[$1d] PidgeottoPic: ; 0x74000 INCBIN "gfx/billboard/mon_pics/pidgeotto.2bpp" PidgeottoSilhouettePic: ; 0x74180 INCBIN "gfx/billboard/mon_silhouettes/pidgeotto.2bpp" PidgeotPic: ; 0x74300 INCBIN "gfx/billboard/mon_pics/pidgeot.2bpp" PidgeotSilhouettePic: ; 0x74480 INCBIN "gfx/billboard/mon_silhouettes/pidgeot.2bpp" RattataPic: ; 0x74600 INCBIN "gfx/billboard/mon_pics/rattata.2bpp" RattataSilhouettePic: ; 0x74780 INCBIN "gfx/billboard/mon_silhouettes/rattata.2bpp" RaticatePic: ; 0x74900 INCBIN "gfx/billboard/mon_pics/raticate.2bpp" RaticateSilhouettePic: ; 0x74a80 INCBIN "gfx/billboard/mon_silhouettes/raticate.2bpp" SpearowPic: ; 0x74c00 INCBIN "gfx/billboard/mon_pics/spearow.2bpp" SpearowSilhouettePic: ; 0x74d80 INCBIN "gfx/billboard/mon_silhouettes/spearow.2bpp" FearowPic: ; 0x74f00 INCBIN "gfx/billboard/mon_pics/fearow.2bpp" FearowSilhouettePic: ; 0x75080 INCBIN "gfx/billboard/mon_silhouettes/fearow.2bpp" EkansPic: ; 0x75200 INCBIN "gfx/billboard/mon_pics/ekans.2bpp" EkansSilhouettePic: ; 0x75380 INCBIN "gfx/billboard/mon_silhouettes/ekans.2bpp" ArbokPic: ; 0x75500 INCBIN "gfx/billboard/mon_pics/arbok.2bpp" ArbokSilhouettePic: ; 0x75680 INCBIN "gfx/billboard/mon_silhouettes/arbok.2bpp" PikachuPic: ; 0x75800 INCBIN "gfx/billboard/mon_pics/pikachu.2bpp" PikachuSilhouettePic: ; 0x75980 INCBIN "gfx/billboard/mon_silhouettes/pikachu.2bpp" RaichuPic: ; 0x75b00 INCBIN "gfx/billboard/mon_pics/raichu.2bpp" RaichuSilhouettePic: ; 0x75c80 INCBIN "gfx/billboard/mon_silhouettes/raichu.2bpp" SandshrewPic: ; 0x75e00 INCBIN "gfx/billboard/mon_pics/sandshrew.2bpp" SandshrewSilhouettePic: ; 0x75f80 INCBIN "gfx/billboard/mon_silhouettes/sandshrew.2bpp" SandslashPic: ; 0x76100 INCBIN "gfx/billboard/mon_pics/sandslash.2bpp" SandslashSilhouettePic: ; 0x76280 INCBIN "gfx/billboard/mon_silhouettes/sandslash.2bpp" Nidoran_FPic: ; 0x76400 INCBIN "gfx/billboard/mon_pics/nidoran_f.2bpp" Nidoran_FSilhouettePic: ; 0x76580 INCBIN "gfx/billboard/mon_silhouettes/nidoran_f.2bpp" NidorinaPic: ; 0x76700 INCBIN "gfx/billboard/mon_pics/nidorina.2bpp" NidorinaSilhouettePic: ; 0x76880 INCBIN "gfx/billboard/mon_silhouettes/nidorina.2bpp" NidoqueenPic: ; 0x76a00 INCBIN "gfx/billboard/mon_pics/nidoqueen.2bpp" NidoqueenSilhouettePic: ; 0x76b80 INCBIN "gfx/billboard/mon_silhouettes/nidoqueen.2bpp" Nidoran_MPic: ; 0x76d00 INCBIN "gfx/billboard/mon_pics/nidoran_m.2bpp" Nidoran_MSilhouettePic: ; 0x76e80 INCBIN "gfx/billboard/mon_silhouettes/nidoran_m.2bpp" StageRedFieldBottomBaseGameBoyGfx: ; 0x77000 INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboy.2bpp" SECTION "bank1e", ROMX, BANK[$1e] BulbasaurPic: ; 0x78000 INCBIN "gfx/billboard/mon_pics/bulbasaur.2bpp" BulbasaurSilhouettePic: ; 0x78180 INCBIN "gfx/billboard/mon_silhouettes/bulbasaur.2bpp" IvysaurPic: ; 0x78300 INCBIN "gfx/billboard/mon_pics/ivysaur.2bpp" IvysaurSilhouettePic: ; 0x78480 INCBIN "gfx/billboard/mon_silhouettes/ivysaur.2bpp" VenusaurPic: ; 0x78600 INCBIN "gfx/billboard/mon_pics/venusaur.2bpp" VenusaurSilhouettePic: ; 0x78780 INCBIN "gfx/billboard/mon_silhouettes/venusaur.2bpp" CharmanderPic: ; 0x78900 INCBIN "gfx/billboard/mon_pics/charmander.2bpp" CharmanderSilhouettePic: ; 0x78a80 INCBIN "gfx/billboard/mon_silhouettes/charmander.2bpp" CharmeleonPic: ; 0x78c00 INCBIN "gfx/billboard/mon_pics/charmeleon.2bpp" CharmeleonSilhouettePic: ; 0x78d80 INCBIN "gfx/billboard/mon_silhouettes/charmeleon.2bpp" CharizardPic: ; 0x78f00 INCBIN "gfx/billboard/mon_pics/charizard.2bpp" CharizardSilhouettePic: ; 0x79080 INCBIN "gfx/billboard/mon_silhouettes/charizard.2bpp" SquirtlePic: ; 0x79200 INCBIN "gfx/billboard/mon_pics/squirtle.2bpp" SquirtleSilhouettePic: ; 0x79380 INCBIN "gfx/billboard/mon_silhouettes/squirtle.2bpp" WartortlePic: ; 0x79500 INCBIN "gfx/billboard/mon_pics/wartortle.2bpp" WartortleSilhouettePic: ; 0x79680 INCBIN "gfx/billboard/mon_silhouettes/wartortle.2bpp" BlastoisePic: ; 0x79800 INCBIN "gfx/billboard/mon_pics/blastoise.2bpp" BlastoiseSilhouettePic: ; 0x79980 INCBIN "gfx/billboard/mon_silhouettes/blastoise.2bpp" CaterpiePic: ; 0x79b00 INCBIN "gfx/billboard/mon_pics/caterpie.2bpp" CaterpieSilhouettePic: ; 0x79c80 INCBIN "gfx/billboard/mon_silhouettes/caterpie.2bpp" MetapodPic: ; 0x79e00 INCBIN "gfx/billboard/mon_pics/metapod.2bpp" MetapodSilhouettePic: ; 0x79f80 INCBIN "gfx/billboard/mon_silhouettes/metapod.2bpp" ButterfreePic: ; 0x7a100 INCBIN "gfx/billboard/mon_pics/butterfree.2bpp" ButterfreeSilhouettePic: ; 0x7a280 INCBIN "gfx/billboard/mon_silhouettes/butterfree.2bpp" WeedlePic: ; 0x7a400 INCBIN "gfx/billboard/mon_pics/weedle.2bpp" WeedleSilhouettePic: ; 0x7a580 INCBIN "gfx/billboard/mon_silhouettes/weedle.2bpp" KakunaPic: ; 0x7a700 INCBIN "gfx/billboard/mon_pics/kakuna.2bpp" KakunaSilhouettePic: ; 0x7a880 INCBIN "gfx/billboard/mon_silhouettes/kakuna.2bpp" BeedrillPic: ; 0x7aa00 INCBIN "gfx/billboard/mon_pics/beedrill.2bpp" BeedrillSilhouettePic: ; 0x7ab80 INCBIN "gfx/billboard/mon_silhouettes/beedrill.2bpp" PidgeyPic: ; 0x7ad00 INCBIN "gfx/billboard/mon_pics/pidgey.2bpp" PidgeySilhouettePic: ; 0x7ae80 INCBIN "gfx/billboard/mon_silhouettes/pidgey.2bpp" BonusMultiplierX1OnPic: ; 0x7b000 INCBIN "gfx/billboard/slot/bonusmultiplierX1_on.2bpp" BonusMultiplierX1OffPic: ; 0x7b180 INCBIN "gfx/billboard/slot/bonusmultiplierX1_off.2bpp" BonusMultiplierX2OnPic: ; 0x7b300 INCBIN "gfx/billboard/slot/bonusmultiplierX2_on.2bpp" BonusMultiplierX2OffPic: ; 0x7b480 INCBIN "gfx/billboard/slot/bonusmultiplierX2_off.2bpp" BonusMultiplierX3OnPic: ; 0x7b600 INCBIN "gfx/billboard/slot/bonusmultiplierX3_on.2bpp" BonusMultiplierX3OffPic: ; 0x7b780 INCBIN "gfx/billboard/slot/bonusmultiplierX3_off.2bpp" BonusMultiplierX4OnPic: ; 0x7b900 INCBIN "gfx/billboard/slot/bonusmultiplierX4_on.2bpp" BonusMultiplierX4OffPic: ; 0x7ba80 INCBIN "gfx/billboard/slot/bonusmultiplierX4_off.2bpp" BonusMultiplierX5OnPic: ; 0x7bc00 INCBIN "gfx/billboard/slot/bonusmultiplierX5_on.2bpp" BonusMultiplierX5OffPic: ; 0x7bd80 INCBIN "gfx/billboard/slot/bonusmultiplierX5_off.2bpp" MagikarpBillboardBGPalette1: ; 0x7bf00 RGB 31, 31, 31 RGB 29, 28, 4 RGB 31, 7, 0 RGB 0, 0, 0 MagikarpBillboardBGPalette2: ; 0x7bf08 RGB 31, 31, 31 RGB 31, 14, 12 RGB 31, 7, 0 RGB 0, 0, 0 GyaradosBillboardBGPalette1: ; 0x7bf10 RGB 31, 31, 31 RGB 12, 18, 31 RGB 3, 9, 14 RGB 0, 0, 0 GyaradosBillboardBGPalette2: ; 0x7bf18 RGB 31, 31, 31 RGB 31, 14, 16 RGB 15, 3, 0 RGB 0, 0, 0 LaprasBillboardBGPalette1: ; 0x7bf20 RGB 31, 31, 31 RGB 12, 19, 31 RGB 5, 8, 19 RGB 0, 0, 0 LaprasBillboardBGPalette2: ; 0x7bf28 RGB 31, 31, 31 RGB 12, 19, 31 RGB 5, 8, 19 RGB 0, 0, 0 DittoBillboardBGPalette1: ; 0x7bf30 RGB 31, 31, 31 RGB 26, 9, 21 RGB 15, 2, 10 RGB 0, 0, 0 DittoBillboardBGPalette2: ; 0x7bf38 RGB 31, 31, 31 RGB 26, 9, 21 RGB 15, 2, 10 RGB 0, 0, 0 EeveeBillboardBGPalette1: ; 0x7bf40 RGB 31, 31, 31 RGB 25, 16, 4 RGB 12, 7, 0 RGB 0, 0, 0 EeveeBillboardBGPalette2: ; 0x7bf48 RGB 31, 31, 31 RGB 25, 16, 4 RGB 12, 7, 0 RGB 0, 0, 0 VaporeonBillboardBGPalette1: ; 0x7bf50 RGB 31, 31, 31 RGB 10, 18, 29 RGB 4, 6, 14 RGB 0, 0, 0 VaporeonBillboardBGPalette2: ; 0x7bf58 RGB 31, 31, 31 RGB 31, 28, 7 RGB 4, 6, 14 RGB 0, 0, 0 JolteonBillboardBGPalette1: ; 0x7bf60 RGB 31, 31, 31 RGB 31, 26, 0 RGB 15, 10, 0 RGB 0, 0, 0 JolteonBillboardBGPalette2: ; 0x7bf68 RGB 31, 31, 31 RGB 31, 26, 0 RGB 15, 10, 0 RGB 0, 0, 0 FlareonBillboardBGPalette1: ; 0x7bf70 RGB 31, 31, 31 RGB 31, 27, 0 RGB 31, 6, 0 RGB 0, 0, 0 FlareonBillboardBGPalette2: ; 0x7bf78 RGB 31, 31, 31 RGB 31, 27, 0 RGB 31, 6, 0 RGB 0, 0, 0 PorygonBillboardBGPalette1: ; 0x7bf80 RGB 31, 31, 31 RGB 29, 12, 13 RGB 2, 10, 17 RGB 0, 0, 0 PorygonBillboardBGPalette2: ; 0x7bf88 RGB 31, 31, 31 RGB 5, 23, 31 RGB 2, 10, 17 RGB 0, 0, 0 OmanyteBillboardBGPalette1: ; 0x7bf90 RGB 31, 31, 31 RGB 22, 21, 14 RGB 0, 15, 25 RGB 0, 0, 0 OmanyteBillboardBGPalette2: ; 0x7bf98 RGB 31, 31, 31 RGB 11, 26, 29 RGB 0, 15, 25 RGB 0, 0, 0 OmastarBillboardBGPalette1: ; 0x7bfa0 RGB 31, 31, 31 RGB 22, 21, 14 RGB 0, 15, 25 RGB 0, 0, 0 OmastarBillboardBGPalette2: ; 0x7bfa8 RGB 31, 31, 31 RGB 11, 26, 29 RGB 0, 15, 25 RGB 0, 0, 0 KabutoBillboardBGPalette1: ; 0x7bfb0 RGB 31, 31, 31 RGB 29, 18, 0 RGB 14, 6, 0 RGB 0, 0, 0 KabutoBillboardBGPalette2: ; 0x7bfb8 RGB 31, 6, 0 RGB 29, 18, 0 RGB 14, 6, 0 RGB 0, 0, 0 KabutopsBillboardBGPalette1: ; 0x7bfc0 RGB 31, 31, 31 RGB 31, 22, 13 RGB 19, 12, 0 RGB 0, 0, 0 KabutopsBillboardBGPalette2: ; 0x7bfc8 RGB 31, 31, 31 RGB 16, 25, 12 RGB 19, 12, 0 RGB 0, 0, 0 AerodactylBillboardBGPalette1: ; 0x7bfd0 RGB 31, 31, 31 RGB 20, 18, 31 RGB 8, 6, 15 RGB 0, 0, 0 AerodactylBillboardBGPalette2: ; 0x7bfd8 RGB 31, 31, 31 RGB 20, 18, 31 RGB 17, 3, 25 RGB 0, 0, 0 SnorlaxBillboardBGPalette1: ; 0x7bfe0 RGB 31, 31, 31 RGB 31, 27, 9 RGB 5, 6, 14 RGB 0, 0, 0 SnorlaxBillboardBGPalette2: ; 0x7bfe8 RGB 31, 31, 31 RGB 31, 27, 9 RGB 28, 6, 2 RGB 0, 0, 0 ArticunoBillboardBGPalette1: ; 0x7bff0 RGB 31, 31, 31 RGB 13, 27, 29 RGB 5, 13, 24 RGB 0, 0, 0 ArticunoBillboardBGPalette2: ; 0x7bff8 RGB 31, 31, 31 RGB 13, 27, 29 RGB 5, 13, 24 RGB 0, 0, 0 SECTION "bank1f", ROMX, BANK[$1f] SlowpokeAnimatedPic: ; 0x7c000 INCBIN "gfx/billboard/mon_animated/slowpoke.w32.interleave.2bpp" MagnemiteAnimatedPic: ; 0x7c300 INCBIN "gfx/billboard/mon_animated/magnemite.w32.interleave.2bpp" FarfetchdAnimatedPic: ; 0x7c600 INCBIN "gfx/billboard/mon_animated/farfetch_d.w32.interleave.2bpp" DoduoAnimatedPic: ; 0x7c900 INCBIN "gfx/billboard/mon_animated/doduo.w32.interleave.2bpp" SeelAnimatedPic: ; 0x7cc00 INCBIN "gfx/billboard/mon_animated/seel.w32.interleave.2bpp" GrimerAnimatedPic: ; 0x7cf00 INCBIN "gfx/billboard/mon_animated/grimer.w32.interleave.2bpp" ShellderAnimatedPic: ; 0x7d200 INCBIN "gfx/billboard/mon_animated/shellder.w32.interleave.2bpp" GastlyAnimatedPic: ; 0x7d500 INCBIN "gfx/billboard/mon_animated/gastly.w32.interleave.2bpp" OnixAnimatedPic: ; 0x7d800 INCBIN "gfx/billboard/mon_animated/onix.w32.interleave.2bpp" DrowzeeAnimatedPic: ; 0x7db00 INCBIN "gfx/billboard/mon_animated/drowzee.w32.interleave.2bpp" KrabbyAnimatedPic: ; 0x7de00 INCBIN "gfx/billboard/mon_animated/krabby.w32.interleave.2bpp" VoltorbAnimatedPic: ; 0x7e100 INCBIN "gfx/billboard/mon_animated/voltorb.w32.interleave.2bpp" ExeggcuteAnimatedPic: ; 0x7e400 INCBIN "gfx/billboard/mon_animated/exeggcute.w32.interleave.2bpp" CuboneAnimatedPic: ; 0x7e700 INCBIN "gfx/billboard/mon_animated/cubone.w32.interleave.2bpp" HitmonleeAnimatedPic: ; 0x7ea00 INCBIN "gfx/billboard/mon_animated/hitmonlee.w32.interleave.2bpp" HitmonchanAnimatedPic: ; 0x7ed00 INCBIN "gfx/billboard/mon_animated/hitmonchan.w32.interleave.2bpp" MewtwoBonusBaseGameBoyGfx: ; 0x7f000 INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboy.2bpp" EraseAllDataGfx: ; 0x7fd00: ; 0x7fd00 INCBIN "gfx/erase_all_data.2bpp" SECTION "bank20", ROMX, BANK[$20] LickitungAnimatedPic: ; 0x80000 INCBIN "gfx/billboard/mon_animated/lickitung.w32.interleave.2bpp" KoffingAnimatedPic: ; 0x80300 INCBIN "gfx/billboard/mon_animated/koffing.w32.interleave.2bpp" RhyhornAnimatedPic: ; 0x80600 INCBIN "gfx/billboard/mon_animated/rhyhorn.w32.interleave.2bpp" ChanseyAnimatedPic: ; 0x80900 INCBIN "gfx/billboard/mon_animated/chansey.w32.interleave.2bpp" TangelaAnimatedPic: ; 0x80c00 INCBIN "gfx/billboard/mon_animated/tangela.w32.interleave.2bpp" KangaskhanAnimatedPic: ; 0x80f00 INCBIN "gfx/billboard/mon_animated/kangaskhan.w32.interleave.2bpp" HorseaAnimatedPic: ; 0x81200 INCBIN "gfx/billboard/mon_animated/horsea.w32.interleave.2bpp" GoldeenAnimatedPic: ; 0x81500 INCBIN "gfx/billboard/mon_animated/goldeen.w32.interleave.2bpp" StaryuAnimatedPic: ; 0x81800 INCBIN "gfx/billboard/mon_animated/staryu.w32.interleave.2bpp" MrMimeAnimatedPic: ; 0x81b00 INCBIN "gfx/billboard/mon_animated/mr_mime.w32.interleave.2bpp" ScytherAnimatedPic: ; 0x81e00 INCBIN "gfx/billboard/mon_animated/scyther.w32.interleave.2bpp" JynxAnimatedPic: ; 0x82100 INCBIN "gfx/billboard/mon_animated/jynx.w32.interleave.2bpp" ElectabuzzAnimatedPic: ; 0x82400 INCBIN "gfx/billboard/mon_animated/electabuzz.w32.interleave.2bpp" MagmarAnimatedPic: ; 0x82700 INCBIN "gfx/billboard/mon_animated/magmar.w32.interleave.2bpp" PinsirAnimatedPic: ; 0x82a00 INCBIN "gfx/billboard/mon_animated/pinsir.w32.interleave.2bpp" TaurosAnimatedPic: ; 0x82d00 INCBIN "gfx/billboard/mon_animated/tauros.w32.interleave.2bpp" MewtwoBonusBaseGameBoyColorGfx: ; 0x83000 INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboycolor.2bpp" StageDiglettBonusCollisionMasks: ; 0x83d00 INCBIN "data/collision/masks/diglett_bonus.masks" SECTION "bank21", ROMX, BANK[$21] MagikarpAnimatedPic: ; 0x84000 INCBIN "gfx/billboard/mon_animated/magikarp.w32.interleave.2bpp" LaprasAnimatedPic: ; 0x84300 INCBIN "gfx/billboard/mon_animated/lapras.w32.interleave.2bpp" DittoAnimatedPic: ; 0x84600 INCBIN "gfx/billboard/mon_animated/ditto.w32.interleave.2bpp" EeveeAnimatedPic: ; 0x84900 INCBIN "gfx/billboard/mon_animated/eevee.w32.interleave.2bpp" PorygonAnimatedPic: ; 0x84c00 INCBIN "gfx/billboard/mon_animated/porygon.w32.interleave.2bpp" OmanyteAnimatedPic: ; 0x84f00 INCBIN "gfx/billboard/mon_animated/omanyte.w32.interleave.2bpp" KabutoAnimatedPic: ; 0x85200 INCBIN "gfx/billboard/mon_animated/kabuto.w32.interleave.2bpp" AerodactylAnimatedPic: ; 0x85500 INCBIN "gfx/billboard/mon_animated/aerodactyl.w32.interleave.2bpp" SnorlaxAnimatedPic: ; 0x85800 INCBIN "gfx/billboard/mon_animated/snorlax.w32.interleave.2bpp" ArticunoAnimatedPic: ; 0x85b00 INCBIN "gfx/billboard/mon_animated/articuno.w32.interleave.2bpp" ZapdosAnimatedPic: ; 0x85e00 INCBIN "gfx/billboard/mon_animated/zapdos.w32.interleave.2bpp" MoltresAnimatedPic: ; 0x86100 INCBIN "gfx/billboard/mon_animated/moltres.w32.interleave.2bpp" DratiniAnimatedPic: ; 0x86400 INCBIN "gfx/billboard/mon_animated/dratini.w32.interleave.2bpp" MewtwoAnimatedPic: ; 0x86700 INCBIN "gfx/billboard/mon_animated/mewtwo.w32.interleave.2bpp" MewAnimatedPic: ; 0x86a00 INCBIN "gfx/billboard/mon_animated/mew.w32.interleave.2bpp" dr $86d00, $87000 DiglettBonusBaseGameBoyColorGfx: ; 0x87000 INCBIN "gfx/stage/diglett_bonus/diglett_bonus_base_gameboycolor.2bpp" dr $87e00, $87e80 GengarBonusHaunter1Gfx: ; 0x87e80 INCBIN "gfx/stage/gengar_bonus/haunter_1.2bpp" GengarBonusHaunter2Gfx: ; 0x87ea0 INCBIN "gfx/stage/gengar_bonus/haunter_2.w32.interleave.2bpp" SECTION "bank22", ROMX, BANK[$22] ZubatAnimatedPic: ; 0x88000 INCBIN "gfx/billboard/mon_animated/zubat.w32.interleave.2bpp" OddishAnimatedPic: ; 0x88300 INCBIN "gfx/billboard/mon_animated/oddish.w32.interleave.2bpp" ParasAnimatedPic: ; 0x88600 INCBIN "gfx/billboard/mon_animated/paras.w32.interleave.2bpp" VenonatAnimatedPic: ; 0x88900 INCBIN "gfx/billboard/mon_animated/venonat.w32.interleave.2bpp" DiglettAnimatedPic: ; 0x88c00 INCBIN "gfx/billboard/mon_animated/diglett.w32.interleave.2bpp" MeowthAnimatedPic: ; 0x88f00 INCBIN "gfx/billboard/mon_animated/meowth.w32.interleave.2bpp" PsyduckAnimatedPic: ; 0x89200 INCBIN "gfx/billboard/mon_animated/psyduck.w32.interleave.2bpp" MankeyAnimatedPic: ; 0x89500 INCBIN "gfx/billboard/mon_animated/mankey.w32.interleave.2bpp" GrowlitheAnimatedPic: ; 0x89800 INCBIN "gfx/billboard/mon_animated/growlithe.w32.interleave.2bpp" PoliwagAnimatedPic: ; 0x89b00 INCBIN "gfx/billboard/mon_animated/poliwag.w32.interleave.2bpp" AbraAnimatedPic: ; 0x89e00 INCBIN "gfx/billboard/mon_animated/abra.w32.interleave.2bpp" MachopAnimatedPic: ; 0x8a100 INCBIN "gfx/billboard/mon_animated/machop.w32.interleave.2bpp" BellsproutAnimatedPic: ; 0x8a400 INCBIN "gfx/billboard/mon_animated/bellsprout.w32.interleave.2bpp" TentacoolAnimatedPic: ; 0x8a700 INCBIN "gfx/billboard/mon_animated/tentacool.w32.interleave.2bpp" GeodudeAnimatedPic: ; 0x8aa00 INCBIN "gfx/billboard/mon_animated/geodude.w32.interleave.2bpp" PonytaAnimatedPic: ; 0x8ad00 INCBIN "gfx/billboard/mon_animated/ponyta.w32.interleave.2bpp" FieldSelectScreenGfx: FieldSelectBlinkingBorderGfx: ; 0x8b000 INCBIN "gfx/field_select/blinking_border.2bpp" FieldSelectGfx: ; 0x8b100 INCBIN "gfx/field_select/field_select_tiles.2bpp" GengarBonusGastlyGfx: ; 0x8bd00 INCBIN "gfx/stage/gengar_bonus/gastly.w32.interleave.2bpp" dr $8be80, $8bf00 BulbasaurBillboardBGPalette1: ; 0x8bf00 RGB 31, 31, 31 RGB 0, 19, 13 RGB 26, 1, 0 RGB 0, 0, 0 BulbasaurBillboardBGPalette2: ; 0x8bf08 RGB 31, 31, 31 RGB 0, 19, 13 RGB 0, 9, 0 RGB 0, 0, 0 IvysaurBillboardBGPalette1: ; 0x8bf10 RGB 31, 31, 31 RGB 0, 19, 13 RGB 0, 12, 6 RGB 0, 0, 0 IvysaurBillboardBGPalette2: ; 0x8bf18 RGB 31, 31, 31 RGB 25, 17, 3 RGB 0, 12, 6 RGB 0, 0, 0 VenusaurBillboardBGPalette1: ; 0x8bf20 RGB 31, 31, 31 RGB 0, 19, 13 RGB 26, 1, 0 RGB 0, 0, 0 VenusaurBillboardBGPalette2: ; 0x8bf28 RGB 31, 31, 31 RGB 0, 19, 13 RGB 5, 15, 0 RGB 0, 0, 0 CharmanderBillboardBGPalette1: ; 0x8bf30 RGB 31, 31, 31 RGB 31, 17, 1 RGB 26, 0, 0 RGB 3, 2, 0 CharmanderBillboardBGPalette2: ; 0x8bf38 RGB 31, 31, 31 RGB 31, 17, 1 RGB 26, 0, 0 RGB 3, 2, 0 CharmeleonBillboardBGPalette1: ; 0x8bf40 RGB 31, 31, 31 RGB 31, 17, 1 RGB 26, 4, 0 RGB 3, 2, 0 CharmeleonBillboardBGPalette2: ; 0x8bf48 RGB 31, 31, 31 RGB 31, 17, 1 RGB 26, 4, 0 RGB 3, 2, 0 CharizardBillboardBGPalette1: ; 0x8bf50 RGB 31, 31, 31 RGB 31, 17, 1 RGB 26, 4, 0 RGB 3, 2, 0 CharizardBillboardBGPalette2: ; 0x8bf58 RGB 31, 31, 31 RGB 31, 17, 1 RGB 26, 4, 0 RGB 3, 2, 0 SquirtleBillboardBGPalette1: ; 0x8bf60 RGB 31, 31, 31 RGB 26, 23, 0 RGB 0, 16, 31 RGB 0, 0, 0 SquirtleBillboardBGPalette2: ; 0x8bf68 RGB 31, 31, 31 RGB 14, 27, 31 RGB 0, 16, 31 RGB 0, 1, 3 WartortleBillboardBGPalette1: ; 0x8bf70 RGB 31, 31, 31 RGB 29, 23, 0 RGB 0, 16, 31 RGB 0, 0, 0 WartortleBillboardBGPalette2: ; 0x8bf78 RGB 31, 31, 31 RGB 14, 27, 31 RGB 0, 16, 31 RGB 0, 1, 3 BlastoiseBillboardBGPalette1: ; 0x8bf80 RGB 31, 31, 31 RGB 27, 20, 10 RGB 12, 6, 3 RGB 0, 0, 0 BlastoiseBillboardBGPalette2: ; 0x8bf88 RGB 31, 31, 31 RGB 11, 18, 31 RGB 2, 6, 19 RGB 0, 0, 0 CaterpieBillboardBGPalette1: ; 0x8bf90 RGB 31, 31, 31 RGB 23, 27, 5 RGB 3, 17, 0 RGB 0, 0, 0 CaterpieBillboardBGPalette2: ; 0x8bf98 RGB 31, 31, 31 RGB 23, 27, 5 RGB 3, 17, 0 RGB 0, 0, 0 MetapodBillboardBGPalette1: ; 0x8bfa0 RGB 31, 31, 31 RGB 23, 27, 5 RGB 7, 18, 0 RGB 0, 0, 0 MetapodBillboardBGPalette2: ; 0x8bfa8 RGB 31, 31, 31 RGB 23, 27, 5 RGB 7, 18, 0 RGB 0, 0, 0 ButterfreeBillboardBGPalette1: ; 0x8bfb0 RGB 31, 31, 31 RGB 31, 15, 0 RGB 31, 0, 1 RGB 3, 2, 0 ButterfreeBillboardBGPalette2: ; 0x8bfb8 RGB 31, 31, 31 RGB 11, 13, 31 RGB 9, 8, 18 RGB 0, 0, 0 WeedleBillboardBGPalette1: ; 0x8bfc0 RGB 31, 31, 31 RGB 29, 25, 0 RGB 25, 6, 7 RGB 3, 2, 0 WeedleBillboardBGPalette2: ; 0x8bfc8 RGB 31, 31, 31 RGB 29, 25, 0 RGB 25, 6, 7 RGB 3, 2, 0 KakunaBillboardBGPalette1: ; 0x8bfd0 RGB 31, 31, 31 RGB 28, 24, 0 RGB 18, 12, 0 RGB 3, 2, 0 KakunaBillboardBGPalette2: ; 0x8bfd8 RGB 31, 31, 31 RGB 28, 24, 0 RGB 18, 12, 0 RGB 3, 2, 0 BeedrillBillboardBGPalette1: ; 0x8bfe0 RGB 31, 31, 31 RGB 30, 27, 0 RGB 21, 7, 0 RGB 3, 2, 0 BeedrillBillboardBGPalette2: ; 0x8bfe8 RGB 31, 31, 31 RGB 30, 27, 0 RGB 21, 7, 0 RGB 3, 2, 0 PidgeyBillboardBGPalette1: ; 0x8bff0 RGB 31, 31, 31 RGB 30, 25, 1 RGB 26, 9, 3 RGB 3, 2, 0 PidgeyBillboardBGPalette2: ; 0x8bff8 RGB 31, 31, 31 RGB 30, 25, 1 RGB 26, 9, 3 RGB 3, 2, 0 SECTION "bank23", ROMX, BANK[$23] BulbasaurAnimatedPic: ; 0x8c000 INCBIN "gfx/billboard/mon_animated/bulbasaur.w32.interleave.2bpp" CharmanderAnimatedPic: ; 0x8c300 INCBIN "gfx/billboard/mon_animated/charmander.w32.interleave.2bpp" SquirtleAnimatedPic: ; 0x8c600 INCBIN "gfx/billboard/mon_animated/squirtle.w32.interleave.2bpp" CaterpieAnimatedPic: ; 0x8c900 INCBIN "gfx/billboard/mon_animated/caterpie.w32.interleave.2bpp" WeedleAnimatedPic: ; 0x8cc00 INCBIN "gfx/billboard/mon_animated/weedle.w32.interleave.2bpp" PidgeyAnimatedPic: ; 0x8cf00 INCBIN "gfx/billboard/mon_animated/pidgey.w32.interleave.2bpp" RattataAnimatedPic: ; 0x8d200 INCBIN "gfx/billboard/mon_animated/rattata.w32.interleave.2bpp" SpearowAnimatedPic: ; 0x8d500 INCBIN "gfx/billboard/mon_animated/spearow.w32.interleave.2bpp" EkansAnimatedPic: ; 0x8d800 INCBIN "gfx/billboard/mon_animated/ekans.w32.interleave.2bpp" PikachuAnimatedPic: ; 0x8db00 INCBIN "gfx/billboard/mon_animated/pikachu.w32.interleave.2bpp" SandshrewAnimatedPic: ; 0x8de00 INCBIN "gfx/billboard/mon_animated/sandshrew.w32.interleave.2bpp" NidoranFAnimatedPic: ; 0x8e100 INCBIN "gfx/billboard/mon_animated/nidoran_f.w32.interleave.2bpp" NidoranMAnimatedPic: ; 0x8e400 INCBIN "gfx/billboard/mon_animated/nidoran_m.w32.interleave.2bpp" ClefairyAnimatedPic: ; 0x8e700 INCBIN "gfx/billboard/mon_animated/clefairy.w32.interleave.2bpp" VulpixAnimatedPic: ; 0x8ea00 INCBIN "gfx/billboard/mon_animated/vulpix.w32.interleave.2bpp" JigglypuffAnimatedPic: ; 0x8ed00 INCBIN "gfx/billboard/mon_animated/jigglypuff.w32.interleave.2bpp" DiglettBonusBaseGameBoyGfx: ; 0x8f000 INCBIN "gfx/stage/diglett_bonus/diglett_bonus_base_gameboy.2bpp" dr $8fd00, $8ff00 PalletTownBillboardBGPalette1: ; 0x8ff00 RGB 31, 31, 31 RGB 22, 18, 17 RGB 0, 19, 0 RGB 0, 0, 0 PalletTownBillboardBGPalette2: ; 0x8ff08 RGB 31, 31, 31 RGB 24, 9, 3 RGB 0, 4, 25 RGB 0, 0, 0 ViridianCityBillboardBGPalette1: ; 0x8ff10 RGB 31, 31, 31 RGB 0, 14, 31 RGB 0, 22, 0 RGB 0, 0, 0 ViridianCityBillboardBGPalette2: ; 0x8ff18 RGB 31, 31, 31 RGB 26, 15, 3 RGB 0, 22, 0 RGB 0, 0, 0 ViridianForestBillboardBGPalette1: ; 0x8ff20 RGB 31, 31, 31 RGB 31, 20, 3 RGB 2, 16, 1 RGB 0, 0, 0 ViridianForestBillboardBGPalette2: ; 0x8ff28 RGB 31, 31, 31 RGB 31, 20, 3 RGB 24, 6, 0 RGB 0, 0, 0 PewterCityBillboardBGPalette1: ; 0x8ff30 RGB 31, 31, 31 RGB 27, 20, 10 RGB 2, 16, 1 RGB 0, 0, 0 PewterCityBillboardBGPalette2: ; 0x8ff38 RGB 31, 31, 31 RGB 5, 17, 31 RGB 26, 3, 1 RGB 0, 0, 0 MtMoonBillboardBGPalette1: ; 0x8ff40 RGB 31, 28, 2 RGB 19, 20, 27 RGB 2, 7, 20 RGB 0, 0, 0 MtMoonBillboardBGPalette2: ; 0x8ff48 RGB 31, 28, 2 RGB 19, 20, 27 RGB 2, 7, 20 RGB 0, 0, 0 CeruleanCityBillboardBGPalette1: ; 0x8ff50 RGB 31, 22, 5 RGB 16, 22, 4 RGB 1, 15, 0 RGB 0, 0, 0 CeruleanCityBillboardBGPalette2: ; 0x8ff58 RGB 31, 31, 31 RGB 16, 22, 31 RGB 3, 11, 31 RGB 0, 0, 0 VermilionSeasideBillboardBGPalette1: ; 0x8ff60 RGB 31, 31, 31 RGB 8, 20, 31 RGB 2, 8, 23 RGB 0, 0, 0 VermilionSeasideBillboardBGPalette2: ; 0x8ff68 RGB 31, 31, 31 RGB 22, 22, 22 RGB 21, 8, 0 RGB 0, 0, 0 VermilionStreetsBillboardBGPalette1: ; 0x8ff70 RGB 31, 31, 31 RGB 20, 22, 25 RGB 31, 8, 0 RGB 0, 0, 0 VermilionStreetsBillboardBGPalette2: ; 0x8ff78 RGB 31, 31, 31 RGB 20, 22, 25 RGB 7, 8, 13 RGB 0, 0, 0 RockMountainBillboardBGPalette1: ; 0x8ff80 RGB 31, 31, 31 RGB 27, 13, 4 RGB 21, 5, 0 RGB 0, 0, 0 RockMountainBillboardBGPalette2: ; 0x8ff88 RGB 3, 18, 31 RGB 27, 13, 4 RGB 2, 16, 1 RGB 0, 0, 0 LavenderTownBillboardBGPalette1: ; 0x8ff90 RGB 31, 31, 10 RGB 11, 18, 31 RGB 2, 6, 19 RGB 0, 0, 0 LavenderTownBillboardBGPalette2: ; 0x8ff98 RGB 31, 31, 31 RGB 11, 18, 31 RGB 2, 6, 19 RGB 0, 0, 0 CeladonCityBillboardBGPalette1: ; 0x8ffa0 RGB 31, 31, 31 RGB 11, 19, 31 RGB 29, 8, 4 RGB 0, 0, 0 CeladonCityBillboardBGPalette2: ; 0x8ffa8 RGB 31, 31, 31 RGB 31, 9, 9 RGB 16, 2, 2 RGB 0, 0, 0 CyclingRoadBillboardBGPalette1: ; 0x8ffb0 RGB 31, 24, 15 RGB 11, 21, 5 RGB 31, 9, 5 RGB 0, 0, 0 CyclingRoadBillboardBGPalette2: ; 0x8ffb8 RGB 31, 22, 13 RGB 11, 21, 5 RGB 0, 15, 0 RGB 0, 0, 0 FuchsiaCityBillboardBGPalette1: ; 0x8ffc0 RGB 31, 31, 31 RGB 10, 25, 31 RGB 26, 3, 1 RGB 0, 0, 0 FuchsiaCityBillboardBGPalette2: ; 0x8ffc8 RGB 31, 31, 31 RGB 27, 23, 6 RGB 28, 6, 3 RGB 0, 0, 0 SafariZoneBillboardBGPalette1: ; 0x8ffd0 RGB 31, 31, 31 RGB 13, 27, 31 RGB 4, 19, 27 RGB 0, 0, 0 SafariZoneBillboardBGPalette2: ; 0x8ffd8 RGB 29, 21, 17 RGB 13, 19, 5 RGB 0, 14, 0 RGB 0, 0, 0 SaffronCityBillboardBGPalette1: ; 0x8ffe0 RGB 31, 31, 31 RGB 8, 19, 31 RGB 2, 7, 26 RGB 0, 0, 0 SaffronCityBillboardBGPalette2: ; 0x8ffe8 RGB 31, 31, 31 RGB 27, 28, 1 RGB 24, 7, 5 RGB 0, 0, 0 SeafoamIslandsBillboardBGPalette1: ; 0x8fff0 RGB 24, 27, 30 RGB 31, 24, 1 RGB 2, 15, 1 RGB 0, 0, 0 SeafoamIslandsBillboardBGPalette2: ; 0x8fff8 RGB 24, 27, 30 RGB 0, 14, 31 RGB 0, 9, 23 RGB 0, 0, 0 SECTION "bank24", ROMX, BANK[$24] HypnoPic: ; 0x90000 INCBIN "gfx/billboard/mon_pics/hypno.2bpp" HypnoSilhouettePic: ; 0x90180 INCBIN "gfx/billboard/mon_silhouettes/hypno.2bpp" KrabbyPic: ; 0x90300 INCBIN "gfx/billboard/mon_pics/krabby.2bpp" KrabbySilhouettePic: ; 0x90480 INCBIN "gfx/billboard/mon_silhouettes/krabby.2bpp" KinglerPic: ; 0x90600 INCBIN "gfx/billboard/mon_pics/kingler.2bpp" KinglerSilhouettePic: ; 0x90780 INCBIN "gfx/billboard/mon_silhouettes/kingler.2bpp" VoltorbPic: ; 0x90900 INCBIN "gfx/billboard/mon_pics/voltorb.2bpp" VoltorbSilhouettePic: ; 0x90a80 INCBIN "gfx/billboard/mon_silhouettes/voltorb.2bpp" ElectrodePic: ; 0x90c00 INCBIN "gfx/billboard/mon_pics/electrode.2bpp" ElectrodeSilhouettePic: ; 0x90d80 INCBIN "gfx/billboard/mon_silhouettes/electrode.2bpp" ExeggcutePic: ; 0x90f00 INCBIN "gfx/billboard/mon_pics/exeggcute.2bpp" ExeggcuteSilhouettePic: ; 0x91080 INCBIN "gfx/billboard/mon_silhouettes/exeggcute.2bpp" ExeggutorPic: ; 0x91200 INCBIN "gfx/billboard/mon_pics/exeggutor.2bpp" ExeggutorSilhouettePic: ; 0x91380 INCBIN "gfx/billboard/mon_silhouettes/exeggutor.2bpp" CubonePic: ; 0x91500 INCBIN "gfx/billboard/mon_pics/cubone.2bpp" CuboneSilhouettePic: ; 0x91680 INCBIN "gfx/billboard/mon_silhouettes/cubone.2bpp" MarowakPic: ; 0x91800 INCBIN "gfx/billboard/mon_pics/marowak.2bpp" MarowakSilhouettePic: ; 0x91980 INCBIN "gfx/billboard/mon_silhouettes/marowak.2bpp" HitmonleePic: ; 0x91b00 INCBIN "gfx/billboard/mon_pics/hitmonlee.2bpp" HitmonleeSilhouettePic: ; 0x91c80 INCBIN "gfx/billboard/mon_silhouettes/hitmonlee.2bpp" HitmonchanPic: ; 0x91e00 INCBIN "gfx/billboard/mon_pics/hitmonchan.2bpp" HitmonchanSilhouettePic: ; 0x91f80 INCBIN "gfx/billboard/mon_silhouettes/hitmonchan.2bpp" LickitungPic: ; 0x92100 INCBIN "gfx/billboard/mon_pics/lickitung.2bpp" LickitungSilhouettePic: ; 0x92280 INCBIN "gfx/billboard/mon_silhouettes/lickitung.2bpp" KoffingPic: ; 0x92400 INCBIN "gfx/billboard/mon_pics/koffing.2bpp" KoffingSilhouettePic: ; 0x92580 INCBIN "gfx/billboard/mon_silhouettes/koffing.2bpp" WeezingPic: ; 0x92700 INCBIN "gfx/billboard/mon_pics/weezing.2bpp" WeezingSilhouettePic: ; 0x92880 INCBIN "gfx/billboard/mon_silhouettes/weezing.2bpp" RhyhornPic: ; 0x92a00 INCBIN "gfx/billboard/mon_pics/rhyhorn.2bpp" RhyhornSilhouettePic: ; 0x92b80 INCBIN "gfx/billboard/mon_silhouettes/rhyhorn.2bpp" RhydonPic: ; 0x92d00 INCBIN "gfx/billboard/mon_pics/rhydon.2bpp" RhydonSilhouettePic: ; 0x92e80 INCBIN "gfx/billboard/mon_silhouettes/rhydon.2bpp" SeelBonusBaseGameBoyGfx: ; 0x93000 INCBIN "gfx/stage/seel_bonus/seel_bonus_base_gameboy.2bpp" CinnabarIslandBillboardBGPaletteMap: ; 0x93c00 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $6, $7, $7, $7, $6 db $6, $6, $6, $6, $6, $6 IndigoPlateauBillboardBGPaletteMap: ; 0x93c18 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $7, $7, $7, $7, $7, $7 dr $93c39, $94000 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" SeelBonusBaseGameBoyColorGfx: ; 0x97000 INCBIN "gfx/stage/seel_bonus/seel_bonus_base_gameboycolor.2bpp" StageRedFieldTopGfx3: ; 0x97a00 INCBIN "gfx/stage/red_top/red_top_3.2bpp" StageRedFieldTopGfx1: ; 0x97ba0 INCBIN "gfx/stage/red_top/red_top_1.2bpp" StageRedFieldTopGfx2: ; 0x97e00 INCBIN "gfx/stage/red_top/red_top_2.2bpp" SECTION "bank26", ROMX, BANK[$26] AlakazamPic: ; 0x98000 INCBIN "gfx/billboard/mon_pics/alakazam.2bpp" AlakazamSilhouettePic: ; 0x98180 INCBIN "gfx/billboard/mon_silhouettes/alakazam.2bpp" MachopPic: ; 0x98300 INCBIN "gfx/billboard/mon_pics/machop.2bpp" MachopSilhouettePic: ; 0x98480 INCBIN "gfx/billboard/mon_silhouettes/machop.2bpp" MachokePic: ; 0x98600 INCBIN "gfx/billboard/mon_pics/machoke.2bpp" MachokeSilhouettePic: ; 0x98780 INCBIN "gfx/billboard/mon_silhouettes/machoke.2bpp" MachampPic: ; 0x98900 INCBIN "gfx/billboard/mon_pics/machamp.2bpp" MachampSilhouettePic: ; 0x98a80 INCBIN "gfx/billboard/mon_silhouettes/machamp.2bpp" BellsproutPic: ; 0x98c00 INCBIN "gfx/billboard/mon_pics/bellsprout.2bpp" BellsproutSilhouettePic: ; 0x98d80 INCBIN "gfx/billboard/mon_silhouettes/bellsprout.2bpp" WeepinbellPic: ; 0x98f00 INCBIN "gfx/billboard/mon_pics/weepinbell.2bpp" WeepinbellSilhouettePic: ; 0x97080 INCBIN "gfx/billboard/mon_silhouettes/weepinbell.2bpp" VictreebellPic: ; 0x97200 INCBIN "gfx/billboard/mon_pics/victreebell.2bpp" VictreebellSilhouettePic: ; 0x97380 INCBIN "gfx/billboard/mon_silhouettes/victreebell.2bpp" TentacoolPic: ; 0x97500 INCBIN "gfx/billboard/mon_pics/tentacool.2bpp" TentacoolSilhouettePic: ; 0x97680 INCBIN "gfx/billboard/mon_silhouettes/tentacool.2bpp" TentacruelPic: ; 0x97800 INCBIN "gfx/billboard/mon_pics/tentacruel.2bpp" TentacruelSilhouettePic: ; 0x97980 INCBIN "gfx/billboard/mon_silhouettes/tentacruel.2bpp" GeodudePic: ; 0x97b00 INCBIN "gfx/billboard/mon_pics/geodude.2bpp" GeodudeSilhouettePic: ; 0x97c80 INCBIN "gfx/billboard/mon_silhouettes/geodude.2bpp" GravelerPic: ; 0x97e00 INCBIN "gfx/billboard/mon_pics/graveler.2bpp" GravelerSilhouettePic: ; 0x97f80 INCBIN "gfx/billboard/mon_silhouettes/graveler.2bpp" GolemPic: ; 0x9a100 INCBIN "gfx/billboard/mon_pics/golem.2bpp" GolemSilhouettePic: ; 0x9a280 INCBIN "gfx/billboard/mon_silhouettes/golem.2bpp" PonytaPic: ; 0x9a400 INCBIN "gfx/billboard/mon_pics/ponyta.2bpp" PonytaSilhouettePic: ; 0x9a580 INCBIN "gfx/billboard/mon_silhouettes/ponyta.2bpp" RapidashPic: ; 0x9a700 INCBIN "gfx/billboard/mon_pics/rapidash.2bpp" RapidashSilhouettePic: ; 0x9a880 INCBIN "gfx/billboard/mon_silhouettes/rapidash.2bpp" SlowpokePic: ; 0x9aa00 INCBIN "gfx/billboard/mon_pics/slowpoke.2bpp" SlowpokeSilhouettePic: ; 0x9ab80 INCBIN "gfx/billboard/mon_silhouettes/slowpoke.2bpp" SlowbroPic: ; 0x9ad00 INCBIN "gfx/billboard/mon_pics/slowbro.2bpp" SlowbroSilhouettePic: ; 0x9ae80 INCBIN "gfx/billboard/mon_silhouettes/slowbro.2bpp" SeelBonusSeel3Gfx: ; 0x9b000 INCBIN "gfx/stage/seel_bonus/seel_3.2bpp" SeelBonusSeel1Gfx: ; 0x9b1a0 INCBIN "gfx/stage/seel_bonus/seel_1.2bpp" SeelBonusSeel2Gfx: ; 0x9b400 INCBIN "gfx/stage/seel_bonus/seel_2.2bpp" SeelBonusSeel4Gfx: ; 0x9b460 INCBIN "gfx/stage/seel_bonus/seel_4.2bpp" dr $9b900, $9bba0 GengarBonusGengar1Gfx: ; 0x9bba0 INCBIN "gfx/stage/gengar_bonus/gengar_1.2bpp" GengarBonusGengar2Gfx: ; 0x9bd00 INCBIN "gfx/stage/gengar_bonus/gengar_2.2bpp" GengarBonusGengar3Gfx: ; 0x9bd60 INCBIN "gfx/stage/gengar_bonus/gengar_3.2bpp" SECTION "bank27", ROMX, BANK[$27] StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor: ; 0x9c000 INCBIN "gfx/stage/red_top/status_bar_symbols_gameboycolor.2bpp" dr $9c100, $9c2a0 StageRedFieldTopBaseGameBoyColorGfx: ; 0x9c2a0 INCBIN "gfx/stage/red_top/red_top_base_gameboycolor.2bpp" StageRedFieldTopGfx4: ; 0x9d000 INCBIN "gfx/stage/red_top/red_top_4.2bpp" GengarBonusBaseGameBoyColorGfx: ; 0x9e000 INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboycolor.2bpp" GengarBonus1Gfx: ; 0x9f000 INCBIN "gfx/stage/gengar_bonus/gengar_bonus_1.2bpp" SECTION "bank28", ROMX, BANK[$28] StageBlueFieldTopStatusBarSymbolsGfx_GameBoyColor: ; 0xa0000 INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboycolor.2bpp" dr $a0100, $a02a0 StageBlueFieldTopBaseGameBoyColorGfx: ; 0xa02a0 INCBIN "gfx/stage/blue_top/blue_top_base_gameboycolor.2bpp" StageBlueFieldTopGfx4: ; 0xa1000 INCBIN "gfx/stage/blue_top/blue_top_4.2bpp" StageRedFieldBottomBaseGameBoyColorGfx: ; 0xa2000 INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboycolor.2bpp" StageRedFieldBottomGfx5: ; 0xa3000 INCBIN "gfx/stage/red_bottom/red_bottom_5.2bpp" SECTION "bank29", ROMX, BANK[$29] StageBlueFieldBottomBaseGameBoyColorGfx: ; 0xa4000 INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboycolor.2bpp" StageBlueFieldBottomGfx1: ; 0xa5000 INCBIN "gfx/stage/blue_bottom/blue_bottom_1.2bpp" PalletTownPic: ; 0xa6000 INCBIN "gfx/billboard/maps/pallettown.2bpp" ViridianCityPic: ; 0xa6180 INCBIN "gfx/billboard/maps/viridiancity.2bpp" ViridianForestPic: ; 0xa6300 INCBIN "gfx/billboard/maps/viridianforest.2bpp" PewterCityPic: ; 0xa6480 INCBIN "gfx/billboard/maps/pewtercity.2bpp" MtMoonPic: ; 0xa6600 INCBIN "gfx/billboard/maps/mtmoon.2bpp" CeruleanCityPic: ; 0xa6780 INCBIN "gfx/billboard/maps/ceruleancity.2bpp" VermilionCitySeasidePic: ; 0xa6900 INCBIN "gfx/billboard/maps/vermilioncityseaside.2bpp" VermilionCityStreetsPic: ; 0xa6a80 INCBIN "gfx/billboard/maps/vermilioncitystreets.2bpp" RockMountainPic: ; 0xa6c00 INCBIN "gfx/billboard/maps/rockmountain.2bpp" LavenderTownPic: ; 0xa6d80 INCBIN "gfx/billboard/maps/lavendertown.2bpp" CeladonCityPic: ; 0xa6f00 INCBIN "gfx/billboard/maps/celadoncity.2bpp" CyclingRoadPic: ; 0xa7080 INCBIN "gfx/billboard/maps/cyclingroad.2bpp" FuchsiaCityPic: ; 0xa7200 INCBIN "gfx/billboard/maps/fuchsiacity.2bpp" SafariZonePic: ; 0xa7380 INCBIN "gfx/billboard/maps/safarizone.2bpp" SaffronCityPic: ; 0xa7500 INCBIN "gfx/billboard/maps/saffroncity.2bpp" SeafoamIslandsPic: ; 0xa7680 INCBIN "gfx/billboard/maps/seafoamislands.2bpp" CinnabarIslandPic: ; 0xa7800 INCBIN "gfx/billboard/maps/cinnabarisland.2bpp" IndigoPlateauPic: ; 0xa7980 INCBIN "gfx/billboard/maps/indigoplateau.2bpp" GFX_a7b00: dr $a7b00, $a8000 ; 0xa7b00 SECTION "bank2a", ROMX, BANK[$2a] dr $a8000, $a82c0 PinballGreatballShakeGfx: ; 0xa82c0 INCBIN "gfx/stage/ball_greatball_shake.w16.interleave.2bpp" PinballUltraballShakeGfx: ; 0xa8300 INCBIN "gfx/stage/ball_ultraball_shake.w16.interleave.2bpp" PinballMasterballShakeGfx: ; 0xa8340 INCBIN "gfx/stage/ball_masterball_shake.w16.interleave.2bpp" PinballPokeballShakeGfx: ; 0xa8380 INCBIN "gfx/stage/ball_pokeball_shake.w16.interleave.2bpp" StageSharedPikaBoltGfx: ; 0xa83c0 INCBIN "gfx/stage/shared/pika_bolt.2bpp" PinballPokeballGfx: ; 0xa8400 INCBIN "gfx/stage/ball_pokeball.w32.interleave.2bpp" FlipperGfx: ; 0xa8600 INCBIN "gfx/stage/flipper.2bpp" PikachuSaverGfx: ; 0xa8720 INCBIN "gfx/stage/pikachu_saver.2bpp" GFX_a8800: INCBIN "gfx/unknown/a8800.2bpp" dr $a8980, $a8a00 PinballGreatballGfx: ; 0xa8a00 INCBIN "gfx/stage/ball_greatball.w32.interleave.2bpp" PinballUltraballGfx: ; 0xa8c00 INCBIN "gfx/stage/ball_ultraball.w32.interleave.2bpp" PinballMasterballGfx: ; 0xa8e00 INCBIN "gfx/stage/ball_masterball.w32.interleave.2bpp" PinballPokeballMiniGfx: ; 0xa9000 INCBIN "gfx/stage/ball_pokeball_mini.w32.interleave.2bpp" PinballGreatballMiniGfx: ; 0xa9200 INCBIN "gfx/stage/ball_greatball_mini.w32.interleave.2bpp" PinballUltraballMiniGfx: ; 0xa9400 INCBIN "gfx/stage/ball_ultraball_mini.w32.interleave.2bpp" PinballMasterballMiniGfx: ; 0xa9600 INCBIN "gfx/stage/ball_masterball_mini.w32.interleave.2bpp" PinballBallMiniGfx: ; 0xa9800 INCBIN "gfx/stage/ball_mini.w32.interleave.2bpp" HighScoresBaseGameBoyGfx: ; 0xa9a00 INCBIN "gfx/high_scores/high_scores_base_gameboy.2bpp" MeowthBonusBaseGameBoyColorGfx: ; 0xab200 INCBIN "gfx/stage/meowth_bonus/meowth_bonus_base_gameboycolor.2bpp" PaletteTownBillboardBGPaletteMap: ; 0xabb00 db $6, $7, $7, $7, $7, $7 db $6, $6, $6, $6, $6, $7 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $7, $7 ViridianCityBillboardBGPaletteMap: ; 0xabb18 db $6, $6, $6, $6, $7, $6 db $6, $6, $6, $6, $7, $6 db $7, $7, $7, $7, $7, $6 db $7, $7, $7, $7, $7, $6 ViridianForestBillboardBGPaletteMap: ; 0xabb30 db $6, $7, $6, $6, $7, $6 db $7, $7, $7, $7, $7, $6 db $6, $7, $6, $6, $7, $6 db $6, $7, $7, $7, $7, $6 PewterCityBillboardBGPaletteMap: ; 0xabb48 db $7, $7, $7, $7, $7, $7 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 MtMoonBillboardBGPaletteMap: ; 0xabb60 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 CeruleanCityBillboardBGPaletteMap: ; 0xabb78 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 VermilionSeasideBillboardBGPaletteMap: ; 0xabb90 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $7, $7, $7, $6, $6, $6 VermilionStreetsBillboardBGPaletteMap: ; 0xabba8 db $6, $6, $6, $6, $6, $7 db $6, $6, $7, $7, $7, $7 db $6, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 RockMountainBillboardBGPaletteMap: ; 0xabbc0 db $7, $7, $7, $7, $7, $7 db $6, $6, $7, $7, $7, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 LavenderTownBillboardBGPaletteMap: ; 0xabbd8 db $6, $7, $7, $6, $6, $6 db $6, $7, $7, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 CeladonCityBillboardBGPaletteMap: ; 0xabbf0 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $7, $7 db $6, $6, $7, $7, $7, $7 CyclingRoadBillboardBGPaletteMap: ; 0xabc08 db $7, $7, $7, $7, $6, $6 db $7, $6, $6, $6, $6, $7 db $6, $6, $6, $6, $6, $7 db $6, $6, $6, $6, $7, $7 FuchsiaCityBillboardBGPaletteMap: ; 0xabc20 db $7, $6, $6, $6, $6, $6 db $7, $6, $6, $6, $6, $6 db $7, $7, $7, $6, $6, $7 db $7, $7, $7, $7, $7, $7 SafariZoneBillboardBGPaletteMap: ; 0xabc38 db $6, $6, $6, $6, $6, $6 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 SaffronCityBillboardBGPaletteMap: ; 0xabc50 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $7, $7, $7, $6, $7, $7 db $7, $7, $7, $7, $7, $7 SeafoamIslandsBillboardBGPaletteMap: ; 0xabc68 db $7, $7, $7, $7, $7, $7 db $7, $7, $6, $7, $7, $7 db $7, $7, $7, $6, $7, $7 db $7, $7, $7, $7, $7, $7 dr $abc80, $abf00 BulbasaurAnimatedObjPalette1: ; 0xabf00 RGB 31, 31, 31 RGB 5, 21, 30 RGB 1, 3, 22 RGB 0, 0, 0 BulbasaurAnimatedObjPalette2: ; 0xabf08 RGB 31, 31, 31 RGB 0, 21, 15 RGB 0, 12, 6 RGB 0, 0, 0 CharmanderAnimatedObjPalette1: ; 0xabf10 RGB 31, 31, 31 RGB 31, 17, 0 RGB 26, 1, 0 RGB 0, 0, 0 CharmanderAnimatedObjPalette2: ; 0xabf18 RGB 31, 31, 31 RGB 31, 17, 0 RGB 26, 1, 0 RGB 0, 0, 0 SquirtleAnimatedObjPalette1: ; 0xabf20 RGB 31, 31, 31 RGB 4, 19, 31 RGB 1, 5, 17 RGB 0, 0, 0 SquirtleAnimatedObjPalette2: ; 0xabf28 RGB 31, 31, 31 RGB 31, 20, 11 RGB 14, 9, 3 RGB 0, 0, 0 CaterpieAnimatedObjPalette1: ; 0xabf30 RGB 31, 31, 31 RGB 0, 25, 9 RGB 27, 13, 0 RGB 0, 0, 0 CaterpieAnimatedObjPalette2: ; 0xabf38 RGB 31, 31, 31 RGB 0, 25, 9 RGB 27, 13, 0 RGB 0, 0, 0 WeedleAnimatedObjPalette1: ; 0xabf40 RGB 31, 31, 31 RGB 31, 25, 3 RGB 25, 9, 7 RGB 0, 0, 0 WeedleAnimatedObjPalette2: ; 0xabf48 RGB 31, 31, 31 RGB 31, 25, 3 RGB 25, 9, 7 RGB 0, 0, 0 PidgeyAnimatedObjPalette1: ; 0xabf50 RGB 31, 31, 31 RGB 31, 20, 11 RGB 21, 10, 4 RGB 0, 0, 0 PidgeyAnimatedObjPalette2: ; 0xabf58 RGB 31, 31, 31 RGB 31, 20, 11 RGB 21, 10, 4 RGB 0, 0, 0 RattataAnimatedObjPalette1: ; 0xabf60 RGB 31, 31, 31 RGB 30, 12, 23 RGB 20, 4, 8 RGB 0, 0, 0 RattataAnimatedObjPalette2: ; 0xabf68 RGB 31, 31, 31 RGB 30, 12, 23 RGB 20, 4, 8 RGB 0, 0, 0 SpearowAnimatedObjPalette1: ; 0xabf70 RGB 31, 31, 31 RGB 31, 22, 14 RGB 24, 4, 2 RGB 0, 0, 0 SpearowAnimatedObjPalette2: ; 0xabf78 RGB 31, 31, 31 RGB 31, 22, 14 RGB 24, 4, 2 RGB 0, 0, 0 EkansAnimatedObjPalette1: ; 0xabf80 RGB 31, 31, 31 RGB 30, 26, 12 RGB 20, 7, 12 RGB 0, 0, 0 EkansAnimatedObjPalette2: ; 0xabf88 RGB 31, 31, 31 RGB 30, 26, 12 RGB 20, 7, 12 RGB 0, 0, 0 PikachuAnimatedObjPalette1: ; 0xabf90 RGB 31, 31, 31 RGB 31, 29, 0 RGB 23, 10, 0 RGB 3, 3, 0 PikachuAnimatedObjPalette2: ; 0xabf98 RGB 31, 31, 31 RGB 31, 29, 0 RGB 23, 10, 0 RGB 3, 3, 0 SandshrewAnimatedObjPalette1: ; 0xabfa0 RGB 31, 31, 31 RGB 30, 25, 3 RGB 19, 11, 0 RGB 0, 0, 0 SandshrewAnimatedObjPalette2: ; 0xabfa8 RGB 31, 31, 31 RGB 30, 25, 3 RGB 19, 11, 0 RGB 0, 0, 0 NidoranFAnimatedObjPalette1: ; 0xabfb0 RGB 31, 31, 31 RGB 19, 23, 30 RGB 8, 8, 24 RGB 0, 0, 0 NidoranFAnimatedObjPalette2: ; 0xabfb8 RGB 31, 31, 31 RGB 19, 23, 30 RGB 8, 8, 24 RGB 0, 0, 0 NidoranMAnimatedObjPalette1: ; 0xabfc0 RGB 31, 31, 31 RGB 28, 16, 25 RGB 20, 5, 12 RGB 0, 0, 0 NidoranMAnimatedObjPalette2: ; 0xabfc8 RGB 31, 31, 31 RGB 28, 16, 25 RGB 20, 5, 12 RGB 0, 0, 0 ClefairyAnimatedObjPalette1: ; 0xabfd0 RGB 31, 31, 31 RGB 31, 20, 20 RGB 23, 5, 6 RGB 0, 0, 0 ClefairyAnimatedObjPalette2: ; 0xabfd8 RGB 31, 31, 31 RGB 31, 20, 20 RGB 23, 5, 6 RGB 0, 0, 0 VulpixAnimatedObjPalette1: ; 0xabfe0 RGB 31, 31, 31 RGB 30, 20, 13 RGB 27, 8, 0 RGB 0, 0, 0 VulpixAnimatedObjPalette2: ; 0xabfe8 RGB 31, 31, 31 RGB 30, 20, 13 RGB 27, 8, 0 RGB 0, 0, 0 JigglypuffAnimatedObjPalette1: ; 0xabff0 RGB 31, 31, 31 RGB 31, 18, 18 RGB 7, 6, 27 RGB 0, 0, 0 JigglypuffAnimatedObjPalette2: ; 0xabff8 RGB 31, 31, 31 RGB 31, 18, 18 RGB 7, 6, 27 RGB 0, 0, 0 SECTION "bank2b", ROMX, BANK[$2b] TitlescreenFadeInGfx: ; 0xac000 INCBIN "gfx/titlescreen/titlescreen_fade_in.2bpp" dr $ad800, $af000 StageBlueFieldBottomCollisionMasks: ; 0xaf000 INCBIN "data/collision/masks/blue_stage_bottom.masks" dr $af800, $af900 DiglettBonusDugtrio3Gfx: ; 0xaf900 INCBIN "gfx/stage/diglett_bonus/dugtrio_3.2bpp" DiglettBonusDugtrio1Gfx: ; 0xafaa0 INCBIN "gfx/stage/diglett_bonus/dugtrio_1.2bpp" DiglettBonusDugtrio2Gfx: ; 0xafd00 INCBIN "gfx/stage/diglett_bonus/dugtrio_2.2bpp" DiglettBonusDugtrio4Gfx: ; 0xafd60 INCBIN "gfx/stage/diglett_bonus/dugtrio_4.2bpp" SECTION "bank2c", ROMX, BANK[$2c] dr $b0000, $b3000 StageRedFieldTopCollisionAttributes6: ; 0xb3000 INCBIN "data/collision/maps/red_stage_top_6.collision" dr $b3400, $b3800 FieldSelectTilemap: ; 0xb3800 INCBIN "gfx/tilemaps/field_select.map" FieldSelectBGAttributes: ; 0xb3c00 INCBIN "gfx/bgattr/field_select.bgattr" SECTION "bank2d", ROMX, BANK[$2d] TitlescreenGfx: ; 0xb4000 INCBIN "gfx/titlescreen/titlescreen.2bpp" OptionMenuAndKeyConfigGfx: OptionMenuBlankGfx: ; 0xb5800 INCBIN "gfx/option_menu/blank.2bpp" OptionMenuArrowGfx: ; 0xb5a00 INCBIN "gfx/option_menu/arrow.2bpp" OptionMenuPikaBubbleGfx: ; 0xb5a20 INCBIN "gfx/option_menu/pika_bubble.2bpp" OptionMenuBouncingPokeballGfx: ; 0xb5a80 INCBIN "gfx/option_menu/bouncing_pokeball.2bpp" OptionMenuRumblePikachuAnimationGfx: ; 0xb5b40 INCBIN "gfx/option_menu/rumble_pikachu_animation.2bpp" OptionMenuPsyduckGfx: ; 0xb5c00 INCBIN "gfx/option_menu/psyduck.2bpp" OptionMenuBoldArrowGfx: ; 0xb5fc0 INCBIN "gfx/option_menu/bold_arrow.2bpp" OptionMenuUnknownGfx: ; 0xb5fd0 dr $b5fd0, $b6020 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 dr $b6200, $b6250 OptionMenuRumbleTextGfx: ; 0xb6250 INCBIN "gfx/option_menu/rumble_text.2bpp" OptionMenuUnknown3Gfx: ; 0xb62b0 dr $b62b0, $b6320 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 dr $b64a0, $b6500 KeyConfigResetTextGfx: ; 0xb6500 INCBIN "gfx/key_config/reset_text.2bpp" KeyConfigBallStartTextGfx: ; 0xb6560 INCBIN "gfx/key_config/ball_start_text.2bpp" KeyConfigLeftFlipperTextGfx: ; 0xb65f0 INCBIN "gfx/key_config/left_flipper_text.2bpp" KeyConfigRightFlipperTextGfx: ; 0xb6680 INCBIN "gfx/key_config/right_flipper_text.2bpp" KeyConfigTiltTextGfx: ; 0xb6710 INCBIN "gfx/key_config/tilt_text.2bpp" KeyConfigMenuTextGfx: ; 0xb6810 INCBIN "gfx/key_config/menu_text.2bpp" KeyConfigKeyConfigTextGfx: ; 0xb6880 INCBIN "gfx/key_config/key_config_text.2bpp" KeyConfigIconsGfx: ; 0xb6900 INCBIN "gfx/key_config/icons.2bpp" OptionMenuSoundTextTextGfx: ; 0xb6a40 INCBIN "gfx/option_menu/sound_test_text.2bpp" OptionMenuOnOffTextGfx: ; 0xb6ad0 INCBIN "gfx/option_menu/on_off_text.2bpp" OptionMenuBGMSETextGfx: ; 0xb6b10 INCBIN "gfx/option_menu/bgm_se_text.2bpp" StageRedFieldTopCollisionAttributes5: ; 0xb6c00 INCBIN "data/collision/maps/red_stage_top_5.collision" dr $b7000, $b7400 StageRedFieldTopCollisionAttributes4: ; 0xb7400 INCBIN "data/collision/maps/red_stage_top_4.collision" dr $b7800, $b7c00 PidgeottoBillboardBGPaletteMap: ; 0xb7c00 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 PidgeotBillboardBGPaletteMap: ; 0xb7c18 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 RattataBillboardBGPaletteMap: ; 0xb7c30 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 RaticateBillboardBGPaletteMap: ; 0xb7c48 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 SpearowBillboardBGPaletteMap: ; 0xb7c60 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 FearowBillboardBGPaletteMap: ; 0xb7c78 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 EkansBillboardBGPaletteMap: ; 0xb7c90 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 ArbokBillboardBGPaletteMap: ; 0xb7ca8 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 PikachuBillboardBGPaletteMap: ; 0xb7cc0 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 RaichuBillboardBGPaletteMap: ; 0xb7cd8 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 SandshrewBillboardBGPaletteMap: ; 0xb7cf0 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 SandslashBillboardBGPaletteMap: ; 0xb7d08 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 NidoranFBillboardBGPaletteMap: ; 0xb7d20 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 NidorinaBillboardBGPaletteMap: ; 0xb7d38 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 NidoqueenBillboardBGPaletteMap: ; 0xb7d50 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 NidoranMBillboardBGPaletteMap: ; 0xb7d68 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 dr $b7d80, $b8000 ; 0xb7d80 SECTION "bank2e", ROMX, BANK[$2e] StageRedFieldTopCollisionAttributes3: ; 0xb8000 INCBIN "data/collision/maps/red_stage_top_3.collision" dr $b8400, $b8800 StageRedFieldTopCollisionAttributes2: ; 0xb8800 INCBIN "data/collision/maps/red_stage_top_2.collision" dr $b8c00, $b9000 StageRedFieldTopCollisionAttributes1: ; 0xb9000 INCBIN "data/collision/maps/red_stage_top_1.collision" dr $b9400, $b9800 StageRedFieldTopCollisionAttributes0: ; 0xb9800 INCBIN "data/collision/maps/red_stage_top_0.collision" dr $b9c00, $ba000 StageRedFieldTopTilemap_GameBoy: ; 0xba000 INCBIN "gfx/tilemaps/stage_red_field_top_gameboy.map" dr $ba400, $ba800 StageRedFieldBottomTilemap_GameBoy: ; 0xba800 INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboy.map" dr $bac00, $bb000 StageRedFieldTopCollisionMasks0: ; 0xbb000 INCBIN "data/collision/masks/red_stage_top_0.masks" StageRedFieldTopCollisionMasks1: ; 0xbb800 INCBIN "data/collision/masks/red_stage_top_1.masks" SECTION "bank2f", ROMX, BANK[$2f] StageRedFieldTopCollisionMasks2: ; 0xbc000 INCBIN "data/collision/masks/red_stage_top_2.masks" StageRedFieldTopCollisionMasks3: ; 0xbc800 INCBIN "data/collision/masks/red_stage_top_3.masks" StageRedFieldTopCollisionAttributes7: ; 0xbd000 INCBIN "data/collision/maps/red_stage_top_7.collision" dr $bd400, $bd800 StageRedFieldBottomCollisionAttributes: ; 0xbd800 INCBIN "data/collision/maps/red_stage_bottom.collision" dr $bdc00, $be000 StageRedFieldTopTilemap_GameBoyColor: ; 0xbe000 INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor.map" StageRedFieldTopTilemap2_GameBoyColor: ; 0xbe400 INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor_2.map" StageRedFieldBottomTilemap_GameBoyColor: ; 0xbe800 INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor.map" StageRedFieldBottomTilemap2_GameBoyColor: ; 0xbec00 INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor_2.map" StageBlueFieldTopTilemap_GameBoy: ; 0xbf000 INCBIN "gfx/tilemaps/stage_blue_field_top_gameboy.map" dr $bf400, $bf800 EraseAllDataTilemap: ; 0xbf800 INCBIN "gfx/tilemaps/erase_all_data.map" EraseAllDataBGAttributes: ; 0xbfc00 INCBIN "gfx/bgattr/erase_all_data.bgattr" SECTION "bank30", ROMX, BANK[$30] StageBlueFieldBottomTilemap_GameBoy: ; 0xc0000 INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboy.map" dr $c0400, $c0800 StageBlueFieldTopCollisionMasks: ; 0xc0800 INCBIN "data/collision/masks/blue_stage_top.masks" StageBlueFieldTopCollisionAttributesBallEntrance: ; 0xc1000 INCBIN "data/collision/maps/blue_stage_top_ball_entrance.collision" dr $c1400, $c1800 HighScoresTilemap2: ; 0xc1800 INCBIN "gfx/tilemaps/high_scores_screen_2.map" HighScoresTilemap5: ; 0xc1c00 INCBIN "gfx/tilemaps/high_scores_screen_5.map" HighScoresTilemap: ; 0xc2000 INCBIN "gfx/tilemaps/high_scores_screen.map" HighScoresTilemap4: ; 0xc2400 INCBIN "gfx/tilemaps/high_scores_screen_4.map" StageBlueFieldTopCollisionAttributes: ; 0xc2800 INCBIN "data/collision/maps/blue_stage_top.collision" dr $c2c00, $c3000 OptionMenuTilemap2: ; 0xc3000 INCBIN "gfx/tilemaps/option_menu_2.map" dr $c3240, $c3400 OptionMenuTilemap4: ; 0xc3400 INCBIN "gfx/tilemaps/option_menu_4.map" dr $c3640, $c3800 OptionMenuTilemap: ; 0xc3800 INCBIN "gfx/tilemaps/option_menu.map" dr $c3a40, $c3c00 OptionMenuTilemap3: ; 0xc3c00 INCBIN "gfx/tilemaps/option_menu_3.map" dr $c3e40, $c4000 SECTION "bank31", ROMX, BANK[$31] StageBlueFieldBottomCollisionAttributes: ; 0xc4000 INCBIN "data/collision/maps/blue_stage_bottom.collision" dr $c4400, $c5800 TitlescreenTilemap: ; 0xc5800 INCBIN "gfx/tilemaps/titlescreen.map" TitlescreenBGAttributes: ; 0xc5c00 INCBIN "gfx/bgattr/titlescreen.bgattr" dr $c5e40, $c6000 CopyrightScreenTilemap: ; 0xc6000 INCBIN "gfx/tilemaps/copyright_screen.map" CopyrightScreenBGAttributes: ; 0xc6400 INCBIN "gfx/bgattr/copyright_screen.bgattr" StageBlueFieldTopTilemap_GameBoyColor: ; 0xc6800 INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor.map" StageBlueFieldTopTilemap2_GameBoyColor: ; 0xc6c00 INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor_2.map" StageBlueFieldBottomTilemap_GameBoyColor: ; 0xc7000 INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor.map" StageBlueFieldBottomTilemap2_GameBoyColor: ; 0xc7400 INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor_2.map" StageGengarBonusCollisionAttributesBallEntrance: ; 0xc7800 INCBIN "data/collision/maps/gengar_bonus_ball_entrance.collision" SECTION "bank32", ROMX, BANK[$32] StageGengarBonusCollisionAttributes: ; 0xc8000 INCBIN "data/collision/maps/gengar_bonus.collision" dr $c8400, $c8800 GengarBonusTilemap_GameBoy: ; 0xc8800 INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboy.map" dr $c8c00, $c9000 GengarBonusBottomTilemap_GameBoyColor: ; 0xc9000 INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor.map" GengarBonusBottomTilemap2_GameBoyColor: ; 0xc9400 INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor_2.map" MewtwoBonus3Gfx: ; 0xc9800 INCBIN "gfx/stage/mewtwo_bonus/mewtwo_3.2bpp" MewtwoBonus1Gfx: ; 0xc99a0 INCBIN "gfx/stage/mewtwo_bonus/mewtwo_1.2bpp" MewtwoBonus2Gfx: ; 0xc9c00 INCBIN "gfx/stage/mewtwo_bonus/mewtwo_2.2bpp" MewtwoBonus4Gfx: ; 0xc9c60 INCBIN "gfx/stage/mewtwo_bonus/mewtwo_4.2bpp" dr $c9f00, $ca000 StageMewtwoBonusCollisionAttributesBallEntrance: ; 0xca000 INCBIN "data/collision/maps/mewtwo_bonus_ball_entrance.collision" dr $ca400, $ca800 StageMewtwoBonusCollisionAttributes: ; 0xca800 INCBIN "data/collision/maps/mewtwo_bonus.collision" dr $cac00, $cb000 MewtwoBonusTilemap_GameBoy: ; 0xcb000 INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboy.map" dr $cb400, $cb800 MewtoBonusBottomTilemap_GameBoyColor: ; 0xcb800 INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor.map" MewtoBonusBottomTilemap2_GameBoyColor: ; 0xcbc00 INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor_2.map" SECTION "bank33", ROMX, BANK[$33] MeowthBonusMeowth3Gfx: ; 0xcc000 INCBIN "gfx/stage/meowth_bonus/meowth_3.2bpp" MeowthBonusMeowth1Gfx: ; 0xcc1a0 INCBIN "gfx/stage/meowth_bonus/meowth_1.2bpp" MeowthBonusMeowth2Gfx: ; 0xcc400 INCBIN "gfx/stage/meowth_bonus/meowth_2.2bpp" MeowthBonusMeowth4Gfx: ; 0xcc460 INCBIN "gfx/stage/meowth_bonus/meowth_4.2bpp" dr $cc7c0, $cc800 StageMeowthBonusCollisionAttributesBallEntrance: ; 0xcc800 INCBIN "data/collision/maps/meowth_bonus_ball_entrance.collision" dr $ccc00, $cd000 StageMeowthBonusCollisionAttributes: ; 0xcd000 INCBIN "data/collision/maps/meowth_bonus.collision" dr $cd400, $cd800 MeowthBonusTilemap_GameBoy: ; 0xcd800 INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboy.map" dr $cdc00, $ce000 MeowthBonusTilemap_GameBoyColor: ; 0xce000 INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboycolor.map" MeowthBonusTilemap2_GameBoyColor: ; 0xce400 INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboycolor_2.map" StageDiglettBonusCollisionAttributesBallEntrance: ; 0xce800 INCBIN "data/collision/maps/diglett_bonus_ball_entrance.collision" dr $cec00, $cf000 StageDiglettBonusCollisionAttributes: ; 0xcf000 INCBIN "data/collision/maps/diglett_bonus.collision" dr $cf400, $cf800 DiglettBonusTilemap_GameBoy: ; 0xcf800 INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboy.map" dr $cfc00, $d0000 SECTION "bank34", ROMX, BANK[$34] MagikarpAnimatedCollisionMask: ; 0xd04000 INCBIN "data/collision/mon_masks/magikarp_collision.1bpp" LaprasAnimatedCollisionMask: ; 0xd04080 INCBIN "data/collision/mon_masks/lapras_collision.1bpp" DittoAnimatedCollisionMask: ; 0xd04100 INCBIN "data/collision/mon_masks/ditto_collision.1bpp" EeveeAnimatedCollisionMask: ; 0xd04180 INCBIN "data/collision/mon_masks/eevee_collision.1bpp" PorygonAnimatedCollisionMask: ; 0xd04200 INCBIN "data/collision/mon_masks/porygon_collision.1bpp" OmanyteAnimatedCollisionMask: ; 0xd04280 INCBIN "data/collision/mon_masks/omanyte_collision.1bpp" KabutoAnimatedCollisionMask: ; 0xd04300 INCBIN "data/collision/mon_masks/kabuto_collision.1bpp" AerodactylAnimatedCollisionMask: ; 0xd04380 INCBIN "data/collision/mon_masks/aerodactyl_collision.1bpp" SnorlaxAnimatedCollisionMask: ; 0xd04400 INCBIN "data/collision/mon_masks/snorlax_collision.1bpp" ArticunoAnimatedCollisionMask: ; 0xd04480 INCBIN "data/collision/mon_masks/articuno_collision.1bpp" ZapdosAnimatedCollisionMask: ; 0xd04500 INCBIN "data/collision/mon_masks/zapdos_collision.1bpp" MoltresAnimatedCollisionMask: ; 0xd04580 INCBIN "data/collision/mon_masks/moltres_collision.1bpp" DratiniAnimatedCollisionMask: ; 0xd04600 INCBIN "data/collision/mon_masks/dratini_collision.1bpp" MewtwoAnimatedCollisionMask: ; 0xd04680 INCBIN "data/collision/mon_masks/mewtwo_collision.1bpp" MewAnimatedCollisionMask: ; 0xd04700 INCBIN "data/collision/mon_masks/mew_collision.1bpp" INCBIN "baserom.gbc",$d0780,$80 LickitungAnimatedCollisionMask: ; 0xd04800 INCBIN "data/collision/mon_masks/lickitung_collision.1bpp" KoffingAnimatedCollisionMask: ; 0xd04880 INCBIN "data/collision/mon_masks/koffing_collision.1bpp" RhyhornAnimatedCollisionMask: ; 0xd04900 INCBIN "data/collision/mon_masks/rhyhorn_collision.1bpp" ChanseyAnimatedCollisionMask: ; 0xd04980 INCBIN "data/collision/mon_masks/chansey_collision.1bpp" TangelaAnimatedCollisionMask: ; 0xd04A00 INCBIN "data/collision/mon_masks/tangela_collision.1bpp" KangaskhanAnimatedCollisionMask: ; 0xd04A80 INCBIN "data/collision/mon_masks/kangaskhan_collision.1bpp" HorseaAnimatedCollisionMask: ; 0xd04B00 INCBIN "data/collision/mon_masks/horsea_collision.1bpp" GoldeenAnimatedCollisionMask: ; 0xd04B80 INCBIN "data/collision/mon_masks/goldeen_collision.1bpp" StaryuAnimatedCollisionMask: ; 0xd04C00 INCBIN "data/collision/mon_masks/staryu_collision.1bpp" MrMimeAnimatedCollisionMask: ; 0xd04C80 INCBIN "data/collision/mon_masks/mrmime_collision.1bpp" ScytherAnimatedCollisionMask: ; 0xd04D00 INCBIN "data/collision/mon_masks/scyther_collision.1bpp" JynxAnimatedCollisionMask: ; 0xd04D80 INCBIN "data/collision/mon_masks/jynx_collision.1bpp" ElectabuzzAnimatedCollisionMask: ; 0xd04E00 INCBIN "data/collision/mon_masks/electabuzz_collision.1bpp" MagmarAnimatedCollisionMask: ; 0xd04E80 INCBIN "data/collision/mon_masks/magmar_collision.1bpp" PinsirAnimatedCollisionMask: ; 0xd04F00 INCBIN "data/collision/mon_masks/pinsir_collision.1bpp" TaurosAnimatedCollisionMask: ; 0xd04F80 INCBIN "data/collision/mon_masks/tauros_collision.1bpp" SlowpokeAnimatedCollisionMask: ; 0xd05000 INCBIN "data/collision/mon_masks/slowpoke_collision.1bpp" MagnemiteAnimatedCollisionMask: ; 0xd05080 INCBIN "data/collision/mon_masks/magnemite_collision.1bpp" FarfetchdAnimatedCollisionMask: ; 0xd05100 INCBIN "data/collision/mon_masks/farfetchd_collision.1bpp" DoduoAnimatedCollisionMask: ; 0xd05180 INCBIN "data/collision/mon_masks/doduo_collision.1bpp" SeelAnimatedCollisionMask: ; 0xd05200 INCBIN "data/collision/mon_masks/seel_collision.1bpp" GrimerAnimatedCollisionMask: ; 0xd05280 INCBIN "data/collision/mon_masks/grimer_collision.1bpp" ShellderAnimatedCollisionMask: ; 0xd05300 INCBIN "data/collision/mon_masks/shellder_collision.1bpp" GastlyAnimatedCollisionMask: ; 0xd05380 INCBIN "data/collision/mon_masks/gastly_collision.1bpp" OnixAnimatedCollisionMask: ; 0xd05400 INCBIN "data/collision/mon_masks/onix_collision.1bpp" DrowzeeAnimatedCollisionMask: ; 0xd05480 INCBIN "data/collision/mon_masks/drowzee_collision.1bpp" KrabbyAnimatedCollisionMask: ; 0xd05500 INCBIN "data/collision/mon_masks/krabby_collision.1bpp" VoltorbAnimatedCollisionMask: ; 0xd05580 INCBIN "data/collision/mon_masks/voltorb_collision.1bpp" ExeggcuteAnimatedCollisionMask: ; 0xd05600 INCBIN "data/collision/mon_masks/exeggcute_collision.1bpp" CuboneAnimatedCollisionMask: ; 0xd05680 INCBIN "data/collision/mon_masks/cubone_collision.1bpp" HitmonleeAnimatedCollisionMask: ; 0xd05700 INCBIN "data/collision/mon_masks/hitmonlee_collision.1bpp" HitmonchanAnimatedCollisionMask: ; 0xd05780 INCBIN "data/collision/mon_masks/hitmonchan_collision.1bpp" ZubatAnimatedCollisionMask: ; 0xd05800 INCBIN "data/collision/mon_masks/zubat_collision.1bpp" OddishAnimatedCollisionMask: ; 0xd05880 INCBIN "data/collision/mon_masks/oddish_collision.1bpp" ParasAnimatedCollisionMask: ; 0xd05900 INCBIN "data/collision/mon_masks/paras_collision.1bpp" VenonatAnimatedCollisionMask: ; 0xd05980 INCBIN "data/collision/mon_masks/venonat_collision.1bpp" DiglettAnimatedCollisionMask: ; 0xd05A00 INCBIN "data/collision/mon_masks/diglett_collision.1bpp" MeowthAnimatedCollisionMask: ; 0xd05A80 INCBIN "data/collision/mon_masks/meowth_collision.1bpp" PsyduckAnimatedCollisionMask: ; 0xd05B00 INCBIN "data/collision/mon_masks/psyduck_collision.1bpp" MankeyAnimatedCollisionMask: ; 0xd05B80 INCBIN "data/collision/mon_masks/mankey_collision.1bpp" GrowlitheAnimatedCollisionMask: ; 0xd05C00 INCBIN "data/collision/mon_masks/growlithe_collision.1bpp" PoliwagAnimatedCollisionMask: ; 0xd05C80 INCBIN "data/collision/mon_masks/poliwag_collision.1bpp" AbraAnimatedCollisionMask: ; 0xd05D00 INCBIN "data/collision/mon_masks/abra_collision.1bpp" MachopAnimatedCollisionMask: ; 0xd05D80 INCBIN "data/collision/mon_masks/machop_collision.1bpp" BellsproutAnimatedCollisionMask: ; 0xd05E00 INCBIN "data/collision/mon_masks/bellsprout_collision.1bpp" TentacoolAnimatedCollisionMask: ; 0xd05E80 INCBIN "data/collision/mon_masks/tentacool_collision.1bpp" GeodudeAnimatedCollisionMask: ; 0xd05F00 INCBIN "data/collision/mon_masks/geodude_collision.1bpp" PonytaAnimatedCollisionMask: ; 0xd05F80 INCBIN "data/collision/mon_masks/ponyta_collision.1bpp" BulbasaurAnimatedCollisionMask: ; 0xd06000 INCBIN "data/collision/mon_masks/bulbasaur_collision.1bpp" CharmanderAnimatedCollisionMask: ; 0xd06080 INCBIN "data/collision/mon_masks/charmander_collision.1bpp" SquirtleAnimatedCollisionMask: ; 0xd06100 INCBIN "data/collision/mon_masks/squirtle_collision.1bpp" CaterpieAnimatedCollisionMask: ; 0xd06180 INCBIN "data/collision/mon_masks/caterpie_collision.1bpp" WeedleAnimatedCollisionMask: ; 0xd06200 INCBIN "data/collision/mon_masks/weedle_collision.1bpp" PidgeyAnimatedCollisionMask: ; 0xd06280 INCBIN "data/collision/mon_masks/pidgey_collision.1bpp" RattataAnimatedCollisionMask: ; 0xd06300 INCBIN "data/collision/mon_masks/rattata_collision.1bpp" SpearowAnimatedCollisionMask: ; 0xd06380 INCBIN "data/collision/mon_masks/spearow_collision.1bpp" EkansAnimatedCollisionMask: ; 0xd06400 INCBIN "data/collision/mon_masks/ekans_collision.1bpp" PikachuAnimatedCollisionMask: ; 0xd06480 INCBIN "data/collision/mon_masks/pikachu_collision.1bpp" SandshrewAnimatedCollisionMask: ; 0xd06500 INCBIN "data/collision/mon_masks/sandshrew_collision.1bpp" NidoranfAnimatedCollisionMask: ; 0xd06580 INCBIN "data/collision/mon_masks/nidoranf_collision.1bpp" NidoranmAnimatedCollisionMask: ; 0xd06600 INCBIN "data/collision/mon_masks/nidoranm_collision.1bpp" ClefairyAnimatedCollisionMask: ; 0xd06680 INCBIN "data/collision/mon_masks/clefairy_collision.1bpp" VulpixAnimatedCollisionMask: ; 0xd06700 INCBIN "data/collision/mon_masks/vulpix_collision.1bpp" JigglypuffAnimatedCollisionMask: ; 0xd06780 INCBIN "data/collision/mon_masks/jigglypuff_collision.1bpp" dr $d2800, $d3000 DiglettBonusTilemap_GameBoyColor: ; 0xd3000 INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboycolor.map" DiglettBonusTilemap2_GameBoyColor: ; 0xd3400 INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboycolor_2.map" dr $d3800, $d4000 SECTION "bank35", ROMX, BANK[$35] StageSeelBonusCollisionAttributesBallEntrance: ; 0xd4000 INCBIN "data/collision/maps/seel_bonus_ball_entrance.collision" dr $d4400, $d4800 StageSeelBonusCollisionAttributes: ; 0xd4800 INCBIN "data/collision/maps/seel_bonus.collision" dr $d4c00, $d5000 SeelBonusTilemap_GameBoy: ; 0xd5000 INCBIN "gfx/tilemaps/stage_seel_bonus_gameboy.map" dr $d5400, $d5800 SeelBonusTilemap_GameBoyColor: ; 0xd5800 INCBIN "gfx/tilemaps/stage_seel_bonus_gameboycolor.map" SeelBonusTilemap2_GameBoyColor: ; 0xd5c00 INCBIN "gfx/tilemaps/stage_seel_bonus_gameboycolor_2.map" Alphabet1Gfx: ; 0xd6000 INCBIN "gfx/stage/alphabet_1.2bpp" dr $d61a0, $d61c0 GFX_d61c0: INCBIN "gfx/stage/e_acute_mono.2bpp" dr $d61d0, $d6200 Alphabet2Gfx: ; 0xd6200 INCBIN "gfx/stage/alphabet_2.2bpp" dr $d63a0, $d63c0 GFX_d63c0: INCBIN "gfx/stage/e_acute_color.2bpp" dr $d63d0, $d6450 InGameMenuSymbolsGfx: ; 0xd6450 INCBIN "gfx/stage/menu_symbols.2bpp" dr $d6490, $d6600 StageBlueFieldTopGfx3: ; 0xd6600 INCBIN "gfx/stage/blue_top/blue_top_3.2bpp" StageBlueFieldTopGfx1: ; 0xd67a0 INCBIN "gfx/stage/blue_top/blue_top_1.2bpp" StageBlueFieldTopGfx2: ; 0xd6a00 INCBIN "gfx/stage/blue_top/blue_top_2.2bpp" StageRedJapaneseCharactersGfx: ; 0xd6c00 INCBIN "gfx/stage/red_bottom/japanese_characters.2bpp" StageRedJapaneseCharactersGfx2: ; 0xd7000 INCBIN "gfx/stage/red_bottom/japanese_characters_2.2bpp" NidorinoBillboardBGPaletteMap: ; 0xd7200 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 NidokingBillboardBGPaletteMap: ; 0xd7218 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 ClefairyBillboardBGPaletteMap: ; 0xd7230 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 ClefableBillboardBGPaletteMap: ; 0xd7248 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 VulpixBillboardBGPaletteMap: ; 0xd7260 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 NinetalesBillboardBGPaletteMap: ; 0xd7278 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 JigglypuffBillboardBGPaletteMap: ; 0xd7290 db $6, $6, $6, $6, $6, $6 db $6, $7, $7, $7, $7, $6 db $6, $7, $7, $7, $7, $6 db $6, $6, $6, $6, $6, $6 WigglytuffBillboardBGPaletteMap: ; 0xd72a8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $7, $6, $6 db $6, $7, $6, $7, $6, $6 db $6, $6, $6, $6, $6, $6 ZubatBillboardBGPaletteMap: ; 0xd72c0 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 GolbatBillboardBGPaletteMap: ; 0xd72d8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 OddishBillboardBGPaletteMap: ; 0xd72f0 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $7, $7, $7, $7, $6 db $6, $7, $7, $7, $7, $6 GloomBillboardBGPaletteMap: ; 0xd7308 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $7, $7, $7, $7, $6 db $7, $7, $7, $7, $7, $7 VileplumeBillboardBGPaletteMap: ; 0xd7320 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $7, $7, $7, $7, $6 db $6, $6, $7, $7, $7, $6 ParasBillboardBGPaletteMap: ; 0xd7338 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 ParasectBillboardBGPaletteMap: ; 0xd7350 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 VenonatBillboardBGPaletteMap: ; 0xd7368 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 dr $d7380, $d7600 VenomothBillboardBGPaletteMap: ; 0xd7600 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 DiglettBillboardBGPaletteMap: ; 0xd7618 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $6, $7, $7, $6, $6 DugtrioBillboardBGPaletteMap: ; 0xd7630 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 MeowthBillboardBGPaletteMap: ; 0xd7648 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 PersianBillboardBGPaletteMap: ; 0xd7660 db $6, $6, $6, $6, $6, $6 db $7, $7, $7, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 PsyduckBillboardBGPaletteMap: ; 0xd7678 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 GolduckBillboardBGPaletteMap: ; 0xd7690 db $6, $7, $7, $7, $6, $6 db $6, $7, $7, $7, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 MankeyBillboardBGPaletteMap: ; 0xd76a8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 PrimeapeBillboardBGPaletteMap: ; 0xd76c0 db $6, $6, $6, $6, $6, $6 db $7, $6, $6, $6, $6, $7 db $7, $6, $6, $6, $6, $7 db $6, $6, $6, $6, $6, $6 GrowlitheBillboardBGPaletteMap: ; 0xd76d8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $7, $7, $6, $6, $6 ArcanineBillboardBGPaletteMap: ; 0xd76f0 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 PoliwagBillboardBGPaletteMap: ; 0xd7708 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $6, $6, $6 db $6, $6, $7, $6, $6, $6 db $6, $6, $6, $6, $6, $6 PoliwhirlBillboardBGPaletteMap: ; 0xd7720 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 PoliwrathBillboardBGPaletteMap: ; 0xd7738 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 AbraBillboardBGPaletteMap: ; 0xd7750 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 KadabraBillboardBGPaletteMap: ; 0xd7768 db $6, $6, $6, $6, $6, $6 db $6, $7, $6, $6, $6, $6 db $6, $7, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 dr $d7780, $d7a00 AlakazamBillboardBGPaletteMap: ; 0xd7a00 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $7, $6, $6, $7, $6 db $6, $6, $6, $6, $6, $6 MachopBillboardBGPaletteMap: ; 0xd7a18 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $7 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 MachokeBillboardBGPaletteMap: ; 0xd7a30 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 MachampBillboardBGPaletteMap: ; 0xd7a48 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 BellsproutBillboardBGPaletteMap: ; 0xd7a60 db $6, $6, $6, $6, $7, $7 db $6, $7, $7, $6, $7, $7 db $6, $7, $7, $6, $6, $7 db $6, $6, $6, $6, $7, $7 WeepinbellBillboardBGPaletteMap: ; 0xd7a78 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $7, $7, $7, $6, $6, $6 db $7, $7, $7, $6, $6, $6 VictreebellBillboardBGPaletteMap: ; 0xd7a90 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $6, $6, $6 db $6, $6, $7, $7, $7, $7 db $6, $6, $6, $6, $6, $6 TentacoolBillboardBGPaletteMap: ; 0xd7aa8 db $6, $7, $6, $6, $7, $6 db $6, $6, $7, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 TentacruelBillboardBGPaletteMap: ; 0xd7ac0 db $6, $6, $7, $6, $7, $6 db $6, $6, $6, $7, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 GeodudeBillboardBGPaletteMap: ; 0xd7ad8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 GravelerBillboardBGPaletteMap: ; 0xd7af0 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 GolemBillboardBGPaletteMap: ; 0xd7b08 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $7, $7, $6, $6, $6 db $6, $7, $7, $6, $6, $6 PonytaBillboardBGPaletteMap: ; 0xd7b20 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $6, $6, $7 db $6, $6, $6, $6, $6, $7 db $6, $6, $6, $6, $6, $6 RapidashBillboardBGPaletteMap: ; 0xd7b38 db $7, $7, $7, $7, $7, $6 db $7, $7, $7, $6, $7, $6 db $7, $7, $6, $6, $6, $6 db $7, $7, $6, $6, $6, $6 SlowpokeBillboardBGPaletteMap: ; 0xd7b50 db $6, $6, $6, $6, $6, $6 db $7, $7, $7, $7, $6, $6 db $7, $7, $7, $7, $6, $6 db $7, $7, $7, $7, $6, $6 SlowbroBillboardBGPaletteMap: ; 0xd7b68 db $7, $7, $7, $7, $7, $7 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 dr $d7b80, $d8000 SECTION "bank36", ROMX, BANK[$36] dr $d8000, $d8400 MagnemiteBillboardBGPaletteMap: ; 0xd8400 db $7, $7, $6, $6, $6, $6 db $7, $7, $6, $6, $6, $7 db $6, $6, $6, $6, $6, $7 db $6, $6, $6, $6, $6, $6 MagnetonBillboardBGPaletteMap: ; 0xd8418 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 FarfetchdBillboardBGPaletteMap: ; 0xd8430 db $6, $6, $6, $6, $7, $7 db $6, $6, $6, $6, $7, $7 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 DoduoBillboardBGPaletteMap: ; 0xd8448 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 DodrioBillboardBGPaletteMap: ; 0xd8460 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 SeelBillboardBGPaletteMap: ; 0xd8478 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $7, $7, $6 db $6, $6, $7, $7, $7, $6 DewgongBillboardBGPaletteMap: ; 0xd8490 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 GrimerBillboardBGPaletteMap: ; 0xd84a8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 MukBillboardBGPaletteMap: ; 0xd84c0 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 ShellderBillboardBGPaletteMap: ; 0xd84d8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $7, $7, $7, $6, $6 CloysterBillboardBGPaletteMap: ; 0xd84f0 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 GastlyBillboardBGPaletteMap: ; 0xd8508 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $7, $7, $6, $6, $6 db $6, $6, $6, $6, $6, $6 HaunterBillboardBGPaletteMap: ; 0xd8520 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $7, $7, $7, $6, $6 db $6, $6, $6, $6, $6, $6 GengarBillboardBGPaletteMap: ; 0xd8538 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $6, $7, $6 db $6, $6, $6, $6, $6, $6 OnixBillboardBGPaletteMap: ; 0xd8550 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 DrowzeeBillboardBGPaletteMap: ; 0xd8568 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 dr $d8580, $d8800 HypnoBillboardBGPaletteMap: ; 0xd8800 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $7, $7 db $7, $6, $6, $6, $7, $7 db $7, $6, $6, $6, $7, $7 KrabbyBillboardBGPaletteMap: ; 0xd8818 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 KinglerBillboardBGPaletteMap: ; 0xd8830 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 VoltorbBillboardBGPaletteMap: ; 0xd8848 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $7 db $6, $6, $6, $6, $7, $7 db $7, $6, $6, $7, $7, $7 ElectrodeBillboardBGPaletteMap: ; 0xd8860 db $6, $6, $6, $7, $7, $6 db $6, $6, $6, $7, $7, $7 db $6, $6, $6, $6, $7, $7 db $6, $6, $6, $6, $6, $6 ExeggcuteBillboardBGPaletteMap: ; 0xd8878 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 ExeggutorBillboardBGPaletteMap: ; 0xd8890 db $6, $6, $6, $6, $6, $6 db $6, $7, $7, $7, $7, $6 db $6, $7, $7, $7, $7, $6 db $6, $7, $7, $7, $7, $6 CuboneBillboardBGPaletteMap: ; 0xd88a8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $7, $7, $7, $7, $7, $6 MarowakBillboardBGPaletteMap: ; 0xd88c0 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $7, $7 HitmonleeBillboardBGPaletteMap: ; 0xd88d8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 HitmonchanBillboardBGPaletteMap: ; 0xd88f0 db $6, $6, $7, $7, $7, $7 db $6, $6, $6, $7, $7, $7 db $6, $6, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 LickitungBillboardBGPaletteMap: ; 0xd8908 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $7, $6, $6 KoffingBillboardBGPaletteMap: ; 0xd8920 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 WeezingBillboardBGPaletteMap: ; 0xd8938 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 RhyhornBillboardBGPaletteMap: ; 0xd8950 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 RhydonBillboardBGPaletteMap: ; 0xd8968 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 dr $d8980, $d8c00 SaverTextOffGfx: ; 0xd8c00 INCBIN "gfx/stage/saver_off.2bpp" dr $d8c40, $d8e80 Data_d8e80: dr $d8e80, $d8f60 Data_d8f60: dr $d8f60, $d9000 StageRedFieldBottomCollisionMasks: ; 0xd9000 INCBIN "data/collision/masks/red_stage_bottom.masks" MagikarpBillboardBGPaletteMap: ; 0xd9400 db $6, $6, $6, $6, $6, $6 db $7, $7, $6, $6, $6, $6 db $7, $7, $6, $6, $6, $6 db $7, $7, $6, $6, $6, $6 GyaradosBillboardBGPaletteMap: ; 0xd9418 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $6, $7, $7, $6, $6 LaprasBillboardBGPaletteMap: ; 0xd9430 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 DittoBillboardBGPaletteMap: ; 0xd9448 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 EeveeBillboardBGPaletteMap: ; 0xd9460 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 VaporeonBillboardBGPaletteMap: ; 0xd9478 db $7, $7, $7, $6, $6, $6 db $7, $7, $6, $6, $7, $7 db $7, $7, $6, $6, $7, $7 db $6, $6, $6, $6, $6, $6 JolteonBillboardBGPaletteMap: ; 0xd9490 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 FlareonBillboardBGPaletteMap: ; 0xd94a8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 PorygonBillboardBGPaletteMap: ; 0xd94c0 db $6, $6, $6, $6, $7, $6 db $6, $6, $7, $6, $6, $7 db $6, $7, $7, $6, $6, $7 db $6, $7, $7, $7, $6, $6 OmanyteBillboardBGPaletteMap: ; 0xd94d8 db $6, $7, $6, $6, $6, $6 db $6, $7, $6, $6, $6, $6 db $7, $7, $6, $6, $6, $6 db $7, $7, $6, $6, $6, $6 OmastarBillboardBGPaletteMap: ; 0xd94f0 db $6, $6, $6, $6, $7, $6 db $6, $6, $6, $6, $7, $7 db $6, $7, $7, $6, $6, $7 db $6, $6, $7, $6, $6, $7 KabutoBillboardBGPaletteMap: ; 0xd9508 db $6, $6, $6, $7, $7, $6 db $6, $6, $7, $7, $7, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 KabutopsBillboardBGPaletteMap: ; 0xd9520 db $7, $6, $6, $6, $6, $7 db $7, $6, $6, $6, $7, $7 db $7, $6, $6, $7, $6, $7 db $6, $6, $7, $7, $6, $6 AerodactylBillboardBGPaletteMap: ; 0xd9538 db $7, $7, $6, $6, $7, $7 db $7, $7, $6, $7, $7, $7 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 SnorlaxBillboardBGPaletteMap: ; 0xd9550 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $6, $7, $6, $6, $6 db $6, $6, $6, $6, $6, $6 ArticunoBillboardBGPaletteMap: ; 0xd9568 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 dr $d9580, $d9800 ZapdosBillboardBGPaletteMap: ; 0xd9800 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 MoltresBillboardBGPaletteMap: ; 0xd9818 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 DratiniBillboardBGPaletteMap: ; 0xd9830 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 DragonairBillboardBGPaletteMap: ; 0xd9848 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 DragoniteBillboardBGPaletteMap: ; 0xd9860 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $7, $6, $6, $6, $6, $7 db $7, $7, $6, $6, $7, $7 MewtwoBillboardBGPaletteMap: ; 0xd9878 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $6, $6, $6, $6, $6 MewBillboardBGPaletteMap: ; 0xd9890 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $7, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 dr $d98a8, $d9c00 UnusedTextGfx: ; 0xd9c00 INCBIN "gfx/unused_text.2bpp" CopyrightTextGfx: ; 0xda000 INCBIN "gfx/copyright_text.2bpp" ChanseyBillboardBGPaletteMap: ; 0xda400 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 TangelaBillboardBGPaletteMap: ; 0xda418 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 KangaskhanBillboardBGPaletteMap: ; 0xda430 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 HorseaBillboardBGPaletteMap: ; 0xda448 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $7, $7 SeadraBillboardBGPaletteMap: ; 0xda460 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 GoldeenBillboardBGPaletteMap: ; 0xda478 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 SeakingBillboardBGPaletteMap: ; 0xda490 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 StaryuBillboardBGPaletteMap: ; 0xda4a8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $7, $6, $6 db $6, $6, $6, $6, $6, $6 StarmieBillboardBGPaletteMap: ; 0xda4c0 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $7, $6, $6 db $6, $6, $6, $6, $6, $6 MrMimeBillboardBGPaletteMap: ; 0xda4d8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 ScytherBillboardBGPaletteMap: ; 0xda4f0 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 JynxBillboardBGPaletteMap: ; 0xda508 db $6, $7, $7, $7, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $6, $6, $6 ElectabuzzBillboardBGPaletteMap: ; 0xda520 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 MagmarBillboardBGPaletteMap: ; 0xda538 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 PinsirBillboardBGPaletteMap: ; 0xda550 db $6, $6, $6, $6, $6, $6 db $6, $6, $7, $6, $6, $6 db $6, $6, $7, $6, $6, $6 db $6, $6, $6, $6, $7, $7 TaurosBillboardBGPaletteMap: ; 0xda568 db $7, $7, $6, $6, $7, $7 db $7, $7, $6, $7, $7, $7 db $6, $7, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 dr $da580, $da800 BulbasaurBillboardBGPaletteMap: ; 0xda800 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $6, $7, $7 db $7, $7, $7, $6, $6, $7 IvysaurBillboardBGPaletteMap: ; 0xda818 db $6, $7, $7, $7, $7, $7 db $7, $6, $6, $6, $6, $7 db $6, $6, $6, $7, $6, $7 db $6, $6, $6, $7, $7, $7 VenusaurBillboardBGPaletteMap: ; 0xda830 db $7, $7, $6, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $6, $6, $6, $6, $7 db $7, $7, $6, $6, $6, $7 CharmanderBillboardBGPaletteMap: ; 0xda848 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 CharmeleonBillboardBGPaletteMap: ; 0xda860 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 CharizardBillboardBGPaletteMap: ; 0xda878 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 SquirtleBillboardBGPaletteMap: ; 0xda890 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $6, $6, $7, $7 WartortleBillboardBGPaletteMap: ; 0xda8a8 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $6, $6, $7, $7 db $7, $6, $6, $6, $7, $7 BlastoiseBillboardBGPaletteMap: ; 0xda8c0 db $6, $6, $6, $6, $7, $7 db $6, $7, $7, $7, $7, $7 db $6, $6, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 CaterpieBillboardBGPaletteMap: ; 0xda8d8 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 db $6, $6, $6, $6, $6, $6 MetapodBillboardBGPaletteMap: ; 0xda8f0 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 ButterfreeBillboardBGPaletteMap: ; 0xda908 db $7, $7, $7, $7, $7, $7 db $7, $7, $6, $6, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 WeedleBillboardBGPaletteMap: ; 0xda920 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 KakunaBillboardBGPaletteMap: ; 0xda938 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 BeedrillBillboardBGPaletteMap: ; 0xda950 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 PidgeyBillboardBGPaletteMap: ; 0xda968 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 db $7, $7, $7, $7, $7, $7 dr $da980, $dac00 StageSharedBonusSlotGlowGfx: ; 0xdac00 INCBIN "gfx/stage/shared/bonus_slot_glow.2bpp" dr $dad60, $dade0 StageSharedBonusSlotGlow2Gfx: ; 0xdade0 INCBIN "gfx/stage/shared/bonus_slot_glow_2.2bpp" StageRedFieldTopGfx5: ; 0xdae00 INCBIN "gfx/stage/red_top/red_top_5.2bpp" dr $db000, $db200 TimerDigitsGfx: ; 0xdb200 INCBIN "gfx/stage/timer_digits.2bpp" dr $db360, $db600 StageGengarBonusCollisionMasks: ; 0xdb600 INCBIN "data/collision/masks/gengar_bonus.masks" ZubatAnimatedObjPalette1: ; 0xdb780 RGB 31, 31, 31 RGB 15, 19, 31 RGB 14, 9, 21 RGB 0, 0, 0 ZubatAnimatedObjPalette2: ; 0xdb3788 RGB 31, 31, 31 RGB 15, 19, 31 RGB 14, 9, 21 RGB 0, 0, 0 OddishAnimatedObjPalette1: ; 0xdb790 RGB 31, 31, 31 RGB 27, 29, 5 RGB 5, 16, 0 RGB 0, 0, 0 OddishAnimatedObjPalette2: ; 0xdb798 RGB 31, 31, 31 RGB 27, 29, 5 RGB 5, 16, 0 RGB 0, 0, 0 ParasAnimatedObjPalette1: ; 0xdb7a0 RGB 31, 31, 31 RGB 31, 15, 1 RGB 22, 5, 2 RGB 0, 0, 0 ParasAnimatedObjPalette2: ; 0xdb7a8 RGB 31, 31, 31 RGB 31, 15, 1 RGB 22, 5, 2 RGB 0, 0, 0 VenonatAnimatedObjPalette1: ; 0xdb7b0 RGB 31, 31, 31 RGB 24, 15, 28 RGB 12, 5, 18 RGB 0, 0, 0 VenonatAnimatedObjPalette2: ; 0xdb7b8 RGB 31, 31, 31 RGB 24, 15, 28 RGB 12, 5, 18 RGB 0, 0, 0 DiglettAnimatedObjPalette1: ; 0xdb7c0 RGB 31, 31, 31 RGB 31, 18, 1 RGB 24, 9, 3 RGB 0, 0, 0 DiglettAnimatedObjPalette2: ; 0xdb7c8 RGB 31, 31, 31 RGB 31, 18, 1 RGB 24, 9, 3 RGB 0, 0, 0 MeowthAnimatedObjPalette1: ; 0xdb7d0 RGB 31, 31, 31 RGB 30, 25, 16 RGB 23, 12, 6 RGB 0, 0, 0 MeowthAnimatedObjPalette2: ; 0xdb7d8 RGB 31, 31, 31 RGB 30, 25, 16 RGB 23, 12, 6 RGB 0, 0, 0 PsyduckAnimatedObjPalette1: ; 0xdb7e0 RGB 31, 31, 31 RGB 31, 31, 0 RGB 19, 17, 0 RGB 0, 0, 0 PsyduckAnimatedObjPalette2: ; 0xdb7e8 RGB 31, 31, 31 RGB 31, 31, 0 RGB 19, 17, 0 RGB 0, 0, 0 MankeyAnimatedObjPalette1: ; 0xdb7f0 RGB 31, 31, 31 RGB 31, 21, 19 RGB 23, 8, 4 RGB 0, 0, 0 MankeyAnimatedObjPalette2: ; 0xdb7f8 RGB 31, 31, 31 RGB 31, 21, 19 RGB 23, 8, 4 RGB 0, 0, 0 GrowlitheAnimatedObjPalette1: ; 0xdb800 RGB 31, 31, 31 RGB 31, 18, 1 RGB 24, 9, 3 RGB 0, 0, 0 GrowlitheAnimatedObjPalette2: ; 0xdb808 RGB 31, 31, 31 RGB 31, 18, 1 RGB 24, 9, 3 RGB 0, 0, 0 PoliwagAnimatedObjPalette1: ; 0xdb810 RGB 31, 31, 31 RGB 17, 19, 23 RGB 9, 10, 12 RGB 0, 0, 0 PoliwagAnimatedObjPalette2: ; 0xdb818 RGB 31, 31, 31 RGB 17, 19, 23 RGB 9, 10, 12 RGB 0, 0, 0 AbraAnimatedObjPalette1: ; 0xdb820 RGB 31, 31, 31 RGB 30, 24, 0 RGB 17, 10, 4 RGB 0, 0, 0 AbraAnimatedObjPalette2: ; 0xdb828 RGB 31, 31, 31 RGB 30, 24, 0 RGB 17, 10, 4 RGB 0, 0, 0 MachopAnimatedObjPalette1: ; 0xdb830 RGB 31, 31, 31 RGB 17, 19, 23 RGB 9, 10, 12 RGB 0, 0, 0 MachopAnimatedObjPalette2: ; 0xdb838 RGB 31, 31, 31 RGB 17, 19, 23 RGB 9, 10, 12 RGB 0, 0, 0 BellsproutAnimatedObjPalette1: ; 0xdb840 RGB 31, 31, 31 RGB 29, 26, 5 RGB 5, 16, 0 RGB 0, 0, 0 BellsproutAnimatedObjPalette2: ; 0xdb848 RGB 31, 31, 31 RGB 29, 26, 5 RGB 5, 16, 0 RGB 0, 0, 0 TentacoolAnimatedObjPalette1: ; 0xdb850 RGB 31, 31, 31 RGB 16, 22, 31 RGB 0, 11, 22 RGB 0, 0, 0 TentacoolAnimatedObjPalette2: ; 0xdb858 RGB 31, 31, 31 RGB 16, 22, 31 RGB 0, 11, 22 RGB 0, 0, 0 GeodudeAnimatedObjPalette1: ; 0xdb860 RGB 31, 31, 31 RGB 19, 23, 20 RGB 8, 11, 7 RGB 0, 0, 0 GeodudeAnimatedObjPalette2: ; 0xdb868 RGB 31, 31, 31 RGB 19, 23, 20 RGB 8, 11, 7 RGB 0, 0, 0 PonytaAnimatedObjPalette1: ; 0xdb870 RGB 31, 31, 31 RGB 31, 28, 11 RGB 31, 6, 0 RGB 0, 0, 0 PonytaAnimatedObjPalette2: ; 0xdb878 RGB 31, 31, 31 RGB 31, 28, 11 RGB 31, 6, 0 RGB 0, 0, 0 SlowpokeAnimatedObjPalette1: ; 0xdb880 RGB 31, 31, 31 RGB 31, 18, 16 RGB 31, 11, 9 RGB 0, 0, 0 SlowpokeAnimatedObjPalette2: ; 0xdb888 RGB 31, 31, 31 RGB 31, 18, 16 RGB 31, 11, 9 RGB 0, 0, 0 MagnemiteAnimatedObjPalette1: ; 0xdb890 RGB 31, 31, 31 RGB 17, 19, 23 RGB 9, 10, 12 RGB 0, 0, 0 MagnemiteAnimatedObjPalette2: ; 0xdb898 RGB 31, 31, 31 RGB 17, 19, 23 RGB 9, 10, 12 RGB 0, 0, 0 FarfetchdAnimatedObjPalette1: ; 0xdb8a0 RGB 31, 31, 31 RGB 31, 22, 5 RGB 19, 11, 4 RGB 0, 0, 0 FarfetchdAnimatedObjPalette2: ; 0xdb8a8 RGB 31, 31, 31 RGB 31, 22, 5 RGB 19, 11, 4 RGB 0, 0, 0 DoduoAnimatedObjPalette1: ; 0xdb8b0 RGB 31, 31, 31 RGB 30, 20, 5 RGB 22, 5, 2 RGB 0, 0, 0 DoduoAnimatedObjPalette2: ; 0xdb8b8 RGB 31, 31, 31 RGB 30, 20, 5 RGB 22, 5, 2 RGB 0, 0, 0 SeelAnimatedObjPalette1: ; 0xdb8c0 RGB 31, 31, 31 RGB 20, 24, 29 RGB 8, 11, 20 RGB 0, 0, 0 SeelAnimatedObjPalette2: ; 0xdb8c8 RGB 31, 31, 31 RGB 20, 24, 29 RGB 8, 11, 20 RGB 0, 0, 0 GrimerAnimatedObjPalette1: ; 0xdb8d0 RGB 31, 31, 31 RGB 27, 15, 31 RGB 16, 7, 19 RGB 0, 0, 0 GrimerAnimatedObjPalette2: ; 0xdb8d8 RGB 31, 31, 31 RGB 27, 15, 31 RGB 16, 7, 19 RGB 0, 0, 0 ShellderAnimatedObjPalette1: ; 0xdb8e0 RGB 31, 31, 31 RGB 26, 19, 29 RGB 15, 11, 17 RGB 0, 0, 0 ShellderAnimatedObjPalette2: ; 0xdb8e8 RGB 31, 31, 31 RGB 26, 19, 29 RGB 15, 11, 17 RGB 0, 0, 0 GastlyAnimatedObjPalette1: ; 0xdb8f0 RGB 31, 31, 31 RGB 25, 17, 28 RGB 12, 7, 15 RGB 0, 0, 0 GastlyAnimatedObjPalette2: ; 0xdb8f8 RGB 31, 31, 31 RGB 31, 23, 17 RGB 23, 8, 4 RGB 0, 0, 0 OnixAnimatedObjPalette1: ; 0xdb900 RGB 31, 31, 31 RGB 17, 19, 23 RGB 9, 10, 12 RGB 0, 0, 0 OnixAnimatedObjPalette2: ; 0xdb908 RGB 31, 31, 31 RGB 17, 19, 23 RGB 9, 10, 12 RGB 0, 0, 0 DrowzeeAnimatedObjPalette1: ; 0xdb910 RGB 31, 31, 31 RGB 30, 24, 0 RGB 17, 10, 4 RGB 0, 0, 0 DrowzeeAnimatedObjPalette2: ; 0xdb918 RGB 31, 31, 31 RGB 30, 24, 0 RGB 17, 10, 4 RGB 0, 0, 0 KrabbyAnimatedObjPalette1: ; 0xdb920 RGB 31, 31, 31 RGB 31, 20, 8 RGB 28, 6, 0 RGB 0, 0, 0 KrabbyAnimatedObjPalette2: ; 0xdb928 RGB 31, 31, 31 RGB 31, 20, 8 RGB 28, 6, 0 RGB 0, 0, 0 VoltorbAnimatedObjPalette1: ; 0xdb930 RGB 31, 31, 31 RGB 31, 17, 14 RGB 31, 0, 0 RGB 0, 0, 0 VoltorbAnimatedObjPalette2: ; 0xdb938 RGB 31, 31, 31 RGB 31, 17, 14 RGB 31, 0, 0 RGB 0, 0, 0 ExeggcuteAnimatedObjPalette1: ; 0xdb940 RGB 31, 31, 31 RGB 31, 17, 16 RGB 20, 8, 5 RGB 0, 0, 0 ExeggcuteAnimatedObjPalette2: ; 0xdb948 RGB 31, 31, 31 RGB 31, 17, 16 RGB 20, 8, 5 RGB 0, 0, 0 CuboneAnimatedObjPalette1: ; 0xdb950 RGB 31, 31, 31 RGB 30, 15, 5 RGB 18, 9, 4 RGB 0, 0, 0 CuboneAnimatedObjPalette2: ; 0xdb958 RGB 31, 31, 31 RGB 20, 22, 29 RGB 13, 8, 6 RGB 0, 0, 0 HitmonleeAnimatedObjPalette1: ; 0xdb960 RGB 31, 31, 31 RGB 26, 13, 7 RGB 16, 10, 7 RGB 0, 0, 0 HitmonleeAnimatedObjPalette2: ; 0xdb968 RGB 31, 31, 31 RGB 26, 13, 7 RGB 16, 10, 7 RGB 0, 0, 0 HitmonchanAnimatedObjPalette1: ; 0xdb970 RGB 31, 31, 31 RGB 27, 17, 10 RGB 24, 4, 2 RGB 0, 0, 0 HitmonchanAnimatedObjPalette2: ; 0xdb978 RGB 31, 31, 31 RGB 27, 17, 10 RGB 24, 4, 2 RGB 0, 0, 0 LickitungAnimatedObjPalette1: ; 0xdb980 RGB 31, 31, 31 RGB 31, 18, 16 RGB 31, 11, 9 RGB 0, 0, 0 LickitungAnimatedObjPalette2: ; 0xdb988 RGB 31, 31, 31 RGB 31, 18, 16 RGB 31, 11, 9 RGB 0, 0, 0 KoffingAnimatedObjPalette1: ; 0xdb990 RGB 31, 31, 31 RGB 26, 19, 29 RGB 15, 11, 17 RGB 0, 0, 0 KoffingAnimatedObjPalette2: ; 0xdb998 RGB 31, 31, 31 RGB 26, 19, 29 RGB 15, 11, 17 RGB 0, 0, 0 RhyhornAnimatedObjPalette1: ; 0xdb9a0 RGB 31, 31, 31 RGB 26, 13, 24 RGB 15, 4, 14 RGB 0, 0, 0 RhyhornAnimatedObjPalette2: ; 0xdb9a8 RGB 31, 31, 31 RGB 26, 13, 24 RGB 15, 4, 14 RGB 0, 0, 0 ChanseyAnimatedObjPalette1: ; 0xdb9b0 RGB 31, 31, 31 RGB 31, 18, 16 RGB 31, 11, 9 RGB 0, 0, 0 ChanseyAnimatedObjPalette2: ; 0xdb9b8 RGB 31, 31, 31 RGB 31, 18, 16 RGB 31, 11, 9 RGB 0, 0, 0 TangelaAnimatedObjPalette1: ; 0xdb9c0 RGB 31, 31, 31 RGB 13, 19, 31 RGB 1, 6, 20 RGB 0, 0, 0 TangelaAnimatedObjPalette2: ; 0xdb9c8 RGB 31, 31, 31 RGB 13, 19, 31 RGB 1, 6, 20 RGB 0, 0, 0 KangaskhanAnimatedObjPalette1: ; 0xdb9d0 RGB 31, 31, 31 RGB 28, 21, 11 RGB 16, 10, 5 RGB 0, 0, 0 KangaskhanAnimatedObjPalette2: ; 0xdb9d8 RGB 31, 31, 31 RGB 28, 21, 11 RGB 16, 10, 5 RGB 0, 0, 0 HorseaAnimatedObjPalette1: ; 0xdb9e0 RGB 31, 31, 31 RGB 13, 19, 31 RGB 1, 6, 20 RGB 0, 0, 0 HorseaAnimatedObjPalette2: ; 0xdb9e8 RGB 31, 31, 31 RGB 13, 19, 31 RGB 1, 6, 20 RGB 0, 0, 0 GoldeenAnimatedObjPalette1: ; 0xdb9f0 RGB 31, 31, 31 RGB 31, 18, 16 RGB 29, 0, 0 RGB 0, 0, 0 GoldeenAnimatedObjPalette2: ; 0xdb9f8 RGB 31, 31, 31 RGB 31, 18, 16 RGB 29, 0, 0 RGB 0, 0, 0 StaryuAnimatedObjPalette1: ; 0xdba00 RGB 31, 31, 31 RGB 31, 22, 5 RGB 19, 7, 1 RGB 0, 0, 0 StaryuAnimatedObjPalette2: ; 0xdba08 RGB 31, 31, 31 RGB 31, 22, 5 RGB 19, 7, 1 RGB 0, 0, 0 MrMimeAnimatedObjPalette1: ; 0xdba10 RGB 31, 31, 31 RGB 31, 18, 16 RGB 29, 0, 0 RGB 0, 0, 0 MrMimeAnimatedObjPalette2: ; 0xdba18 RGB 31, 31, 31 RGB 31, 18, 16 RGB 29, 0, 0 RGB 0, 0, 0 ScytherAnimatedObjPalette1: ; 0xdba20 RGB 31, 31, 31 RGB 22, 29, 5 RGB 6, 17, 1 RGB 0, 0, 0 ScytherAnimatedObjPalette2: ; 0xdba28 RGB 31, 31, 31 RGB 22, 29, 5 RGB 6, 17, 1 RGB 0, 0, 0 JynxAnimatedObjPalette1: ; 0xdba30 RGB 31, 31, 31 RGB 31, 16, 16 RGB 25, 1, 3 RGB 0, 0, 0 JynxAnimatedObjPalette2: ; 0xdba38 RGB 31, 31, 31 RGB 31, 16, 16 RGB 25, 1, 3 RGB 0, 0, 0 ElectabuzzAnimatedObjPalette1: ; 0xdba40 RGB 31, 31, 31 RGB 31, 30, 0 RGB 21, 14, 1 RGB 0, 0, 0 ElectabuzzAnimatedObjPalette2: ; 0xdba48 RGB 31, 31, 31 RGB 31, 30, 0 RGB 21, 14, 1 RGB 0, 0, 0 MagmarAnimatedObjPalette1: ; 0xdba50 RGB 31, 31, 31 RGB 31, 23, 2 RGB 31, 3, 0 RGB 0, 0, 0 MagmarAnimatedObjPalette2: ; 0xdba58 RGB 31, 31, 31 RGB 31, 23, 2 RGB 31, 3, 0 RGB 0, 0, 0 PinsirAnimatedObjPalette1: ; 0xdba60 RGB 31, 31, 31 RGB 28, 20, 13 RGB 17, 12, 6 RGB 0, 0, 0 PinsirAnimatedObjPalette2: ; 0xdba68 RGB 31, 31, 31 RGB 28, 20, 13 RGB 17, 12, 6 RGB 0, 0, 0 TaurosAnimatedObjPalette1: ; 0xdba70 RGB 31, 31, 31 RGB 31, 21, 5 RGB 20, 9, 3 RGB 0, 0, 0 TaurosAnimatedObjPalette2: ; 0xdba78 RGB 31, 31, 31 RGB 31, 21, 5 RGB 20, 9, 3 RGB 0, 0, 0 PidgeottoBillboardBGPalette1: ; 0xdba80 RGB 31, 31, 31 RGB 30, 21, 0 RGB 28, 6, 1 RGB 3, 2, 0 PidgeottoBillboardBGPalette2: ; 0xdba88 RGB 31, 31, 31 RGB 30, 21, 0 RGB 28, 6, 1 RGB 3, 2, 0 PidgeotBillboardBGPalette1: ; 0xdba90 RGB 31, 31, 31 RGB 26, 23, 0 RGB 28, 6, 1 RGB 3, 2, 0 PidgeotBillboardBGPalette2: ; 0xdba98 RGB 31, 31, 31 RGB 26, 23, 0 RGB 28, 6, 1 RGB 3, 2, 0 RattataBillboardBGPalette1: ; 0xdbaa0 RGB 31, 31, 31 RGB 30, 16, 24 RGB 21, 4, 7 RGB 0, 0, 0 RattataBillboardBGPalette2: ; 0xdbaa8 RGB 31, 31, 31 RGB 30, 16, 24 RGB 21, 4, 7 RGB 0, 0, 0 RaticateBillboardBGPalette1: ; 0xdbab0 RGB 31, 31, 31 RGB 30, 24, 7 RGB 27, 7, 0 RGB 3, 2, 0 RaticateBillboardBGPalette2: ; 0xdbab8 RGB 31, 31, 31 RGB 30, 24, 7 RGB 27, 7, 0 RGB 3, 2, 0 SpearowBillboardBGPalette1: ; 0xdbac0 RGB 31, 31, 31 RGB 31, 24, 2 RGB 30, 3, 0 RGB 0, 0, 0 SpearowBillboardBGPalette2: ; 0xdbac8 RGB 31, 31, 31 RGB 31, 24, 2 RGB 30, 3, 0 RGB 0, 0, 0 FearowBillboardBGPalette1: ; 0xdbad0 RGB 31, 31, 31 RGB 31, 24, 2 RGB 30, 3, 0 RGB 0, 0, 0 FearowBillboardBGPalette2: ; 0xdbad8 RGB 31, 31, 31 RGB 31, 24, 2 RGB 30, 3, 0 RGB 0, 0, 0 EkansBillboardBGPalette1: ; 0xdbae0 RGB 31, 31, 31 RGB 30, 16, 24 RGB 21, 4, 7 RGB 0, 0, 0 EkansBillboardBGPalette2: ; 0xdbae8 RGB 31, 31, 31 RGB 30, 16, 24 RGB 21, 4, 7 RGB 0, 0, 0 ArbokBillboardBGPalette1: ; 0xdbaf0 RGB 31, 31, 31 RGB 30, 16, 24 RGB 26, 1, 5 RGB 0, 0, 0 ArbokBillboardBGPalette2: ; 0xdbaf8 RGB 31, 31, 31 RGB 30, 16, 24 RGB 26, 1, 5 RGB 0, 0, 0 PikachuBillboardBGPalette1: ; 0xdbb00 RGB 31, 31, 31 RGB 30, 24, 4 RGB 27, 7, 0 RGB 3, 2, 0 PikachuBillboardBGPalette2: ; 0xdbb08 RGB 31, 31, 31 RGB 30, 24, 4 RGB 27, 7, 0 RGB 3, 2, 0 RaichuBillboardBGPalette1: ; 0xdbb10 RGB 31, 31, 31 RGB 30, 26, 3 RGB 29, 16, 0 RGB 3, 2, 0 RaichuBillboardBGPalette2: ; 0xdbb18 RGB 31, 31, 31 RGB 30, 26, 3 RGB 29, 16, 0 RGB 3, 2, 0 SandshrewBillboardBGPalette1: ; 0xdbb20 RGB 31, 31, 31 RGB 31, 25, 7 RGB 23, 14, 0 RGB 0, 0, 0 SandshrewBillboardBGPalette2: ; 0xdbb28 RGB 31, 31, 31 RGB 31, 25, 7 RGB 23, 14, 0 RGB 0, 0, 0 SandslashBillboardBGPalette1: ; 0xdbb30 RGB 31, 31, 31 RGB 31, 25, 7 RGB 25, 10, 0 RGB 3, 2, 0 SandslashBillboardBGPalette2: ; 0xdbb38 RGB 31, 31, 31 RGB 31, 25, 7 RGB 25, 10, 0 RGB 3, 2, 0 NidoranFBillboardBGPalette1: ; 0xdbb40 RGB 31, 31, 31 RGB 19, 23, 31 RGB 8, 8, 24 RGB 0, 0, 0 NidoranFBillboardBGPalette2: ; 0xdbb48 RGB 31, 31, 31 RGB 19, 23, 31 RGB 8, 8, 24 RGB 0, 0, 0 NidorinaBillboardBGPalette1: ; 0xdbb50 RGB 31, 31, 31 RGB 19, 23, 31 RGB 8, 8, 24 RGB 0, 0, 0 NidorinaBillboardBGPalette2: ; 0xdbb58 RGB 31, 31, 31 RGB 19, 23, 31 RGB 8, 8, 24 RGB 0, 0, 0 NidoqueenBillboardBGPalette1: ; 0xdbb60 RGB 31, 31, 31 RGB 10, 18, 31 RGB 6, 5, 23 RGB 0, 0, 0 NidoqueenBillboardBGPalette2: ; 0xdbb68 RGB 31, 31, 31 RGB 10, 18, 31 RGB 6, 5, 23 RGB 0, 0, 0 NidoranMBillboardBGPalette1: ; 0xdbb70 RGB 31, 31, 31 RGB 28, 16, 25 RGB 17, 1, 12 RGB 0, 0, 0 NidoranMBillboardBGPalette2: ; 0xdbb78 RGB 31, 31, 31 RGB 28, 16, 25 RGB 17, 1, 12 RGB 0, 0, 0 StageRedFieldTopGfx6: ; 0xdbb80 INCBIN "gfx/stage/red_top/red_top_6.2bpp" dr $dbbc0, $dbc80 StageMewtwoBonusCollisionMasks: ; 0xdbc80 INCBIN "data/collision/masks/mewtwo_bonus.masks" MagikarpAnimatedObjPalette1: ; 0xdbd80 RGB 31, 31, 31 RGB 31, 16, 10 RGB 28, 6, 0 RGB 0, 0, 0 MagikarpAnimatedObjPalette2: ; 0xdbd88 RGB 31, 31, 31 RGB 31, 16, 10 RGB 28, 6, 0 RGB 0, 0, 0 LaprasAnimatedObjPalette1: ; 0xdbd90 RGB 31, 31, 31 RGB 11, 22, 31 RGB 0, 10, 30 RGB 0, 0, 0 LaprasAnimatedObjPalette2: ; 0xdbd98 RGB 31, 31, 31 RGB 11, 22, 31 RGB 0, 10, 30 RGB 0, 0, 0 DittoAnimatedObjPalette1: ; 0xdbda0 RGB 31, 31, 31 RGB 25, 18, 28 RGB 15, 7, 16 RGB 0, 0, 0 DittoAnimatedObjPalette2: ; 0xdbda8 RGB 31, 31, 31 RGB 25, 18, 28 RGB 15, 7, 16 RGB 0, 0, 0 EeveeAnimatedObjPalette1: ; 0xdbdb0 RGB 31, 31, 31 RGB 29, 20, 10 RGB 17, 9, 4 RGB 0, 0, 0 EeveeAnimatedObjPalette2: ; 0xdbdb8 RGB 31, 31, 31 RGB 29, 20, 10 RGB 17, 9, 4 RGB 0, 0, 0 PorygonAnimatedObjPalette1: ; 0xdbdc0 RGB 31, 31, 31 RGB 29, 8, 20 RGB 0, 0, 31 RGB 0, 0, 0 PorygonAnimatedObjPalette2: ; 0xdbdc8 RGB 31, 31, 31 RGB 29, 8, 20 RGB 0, 0, 31 RGB 0, 0, 0 OmanyteAnimatedObjPalette1: ; 0xdbdd0 RGB 31, 31, 31 RGB 13, 18, 31 RGB 1, 6, 20 RGB 0, 0, 0 OmanyteAnimatedObjPalette2: ; 0xdbdd8 RGB 31, 31, 31 RGB 13, 18, 31 RGB 1, 6, 20 RGB 0, 0, 0 KabutoAnimatedObjPalette1: ; 0xdbde0 RGB 31, 31, 31 RGB 29, 21, 6 RGB 20, 7, 1 RGB 0, 0, 0 KabutoAnimatedObjPalette2: ; 0xdbde8 RGB 31, 31, 31 RGB 29, 21, 6 RGB 20, 7, 1 RGB 0, 0, 0 AerodactylAnimatedObjPalette1: ; 0xdbdf0 RGB 31, 31, 31 RGB 25, 20, 29 RGB 10, 8, 17 RGB 0, 0, 0 AerodactylAnimatedObjPalette2: ; 0xdbdf8 RGB 31, 31, 31 RGB 25, 20, 29 RGB 10, 8, 17 RGB 0, 0, 0 SnorlaxAnimatedObjPalette1: ; 0xdbe00 RGB 31, 31, 31 RGB 31, 25, 9 RGB 17, 7, 2 RGB 0, 0, 0 SnorlaxAnimatedObjPalette2: ; 0xdbe08 RGB 31, 31, 31 RGB 31, 25, 9 RGB 17, 7, 2 RGB 0, 0, 0 ArticunoAnimatedObjPalette1: ; 0xdbe10 RGB 31, 31, 31 RGB 11, 22, 31 RGB 0, 4, 31 RGB 0, 0, 0 ArticunoAnimatedObjPalette2: ; 0xdbe18 RGB 31, 31, 31 RGB 11, 22, 31 RGB 0, 4, 31 RGB 0, 0, 0 ZapdosAnimatedObjPalette1: ; 0xdbe20 RGB 31, 31, 31 RGB 31, 29, 0 RGB 22, 7, 3 RGB 0, 0, 0 ZapdosAnimatedObjPalette2: ; 0xdbe28 RGB 31, 31, 31 RGB 31, 29, 0 RGB 22, 7, 3 RGB 0, 0, 0 MoltresAnimatedObjPalette1: ; 0xdbe30 RGB 31, 31, 31 RGB 31, 26, 0 RGB 31, 3, 0 RGB 0, 0, 0 MoltresAnimatedObjPalette2: ; 0xdbe38 RGB 31, 31, 31 RGB 31, 26, 0 RGB 31, 3, 0 RGB 0, 0, 0 DratiniAnimatedObjPalette1: ; 0xdbe40 RGB 31, 31, 31 RGB 20, 22, 31 RGB 6, 8, 18 RGB 0, 0, 0 DratiniAnimatedObjPalette2: ; 0xdbe48 RGB 31, 31, 31 RGB 20, 22, 31 RGB 6, 8, 18 RGB 0, 0, 0 MewtwoAnimatedObjPalette1: ; 0xdbe50 RGB 31, 31, 31 RGB 31, 19, 27 RGB 23, 8, 17 RGB 0, 0, 0 MewtwoAnimatedObjPalette2: ; 0xdbe58 RGB 31, 31, 31 RGB 31, 19, 27 RGB 23, 8, 17 RGB 0, 0, 0 MewAnimatedObjPalette1: ; 0xdbe60 RGB 31, 31, 31 RGB 31, 19, 27 RGB 23, 8, 17 RGB 0, 0, 0 MewAnimatedObjPalette2: ; 0xdbe68 RGB 31, 31, 31 RGB 31, 19, 27 RGB 23, 8, 17 RGB 0, 0, 0 dr $dbe70, $dbe80 Data_dbe80: dr $dbe80, $dc000 SECTION "bank37", ROMX, BANK[$37] StageSharedArrowsGfx: ; 0xdc000 INCBIN "gfx/stage/shared/arrows.2bpp" dr $dc080, $dc100 NidorinoBillboardBGPalette1: ; 0xdc100 RGB 31, 31, 31 RGB 31, 15, 24 RGB 21, 3, 15 RGB 0, 0, 0 NidorinoBillboardBGPalette2: ; 0xdc108 RGB 31, 31, 31 RGB 31, 15, 24 RGB 21, 3, 15 RGB 0, 0, 0 NidokingBillboardBGPalette1: ; 0xdc110 RGB 31, 31, 31 RGB 25, 14, 31 RGB 17, 0, 26 RGB 0, 0, 0 NidokingBillboardBGPalette2: ; 0xdc118 RGB 31, 31, 31 RGB 25, 14, 31 RGB 17, 0, 26 RGB 0, 0, 0 ClefairyBillboardBGPalette1: ; 0xdc120 RGB 31, 31, 31 RGB 31, 14, 18 RGB 20, 8, 4 RGB 0, 0, 0 ClefairyBillboardBGPalette2: ; 0xdc128 RGB 31, 31, 31 RGB 31, 14, 18 RGB 20, 8, 4 RGB 0, 0, 0 ClefableBillboardBGPalette1: ; 0xdc130 RGB 31, 31, 31 RGB 31, 14, 18 RGB 20, 8, 4 RGB 0, 0, 0 ClefableBillboardBGPalette2: ; 0xdc138 RGB 31, 31, 31 RGB 31, 14, 18 RGB 20, 8, 4 RGB 0, 0, 0 VulpixBillboardBGPalette1: ; 0xdc140 RGB 31, 31, 31 RGB 31, 17, 13 RGB 25, 6, 0 RGB 0, 0, 0 VulpixBillboardBGPalette2: ; 0xdc148 RGB 31, 31, 31 RGB 31, 17, 13 RGB 25, 6, 0 RGB 0, 0, 0 NinetalesBillboardBGPalette1: ; 0xdc150 RGB 31, 31, 31 RGB 28, 26, 0 RGB 23, 12, 3 RGB 0, 0, 0 NinetalesBillboardBGPalette2: ; 0xdc158 RGB 31, 31, 31 RGB 28, 26, 0 RGB 23, 12, 3 RGB 0, 0, 0 JigglypuffBillboardBGPalette1: ; 0xdc160 RGB 31, 31, 31 RGB 31, 16, 19 RGB 22, 6, 11 RGB 3, 2, 0 JigglypuffBillboardBGPalette2: ; 0xdc168 RGB 31, 31, 31 RGB 31, 16, 19 RGB 13, 2, 21 RGB 0, 0, 0 WigglytuffBillboardBGPalette1: ; 0xdc170 RGB 31, 31, 31 RGB 31, 16, 19 RGB 22, 6, 11 RGB 3, 2, 0 WigglytuffBillboardBGPalette2: ; 0xdc178 RGB 31, 31, 31 RGB 31, 16, 19 RGB 13, 5, 19 RGB 0, 0, 0 ZubatBillboardBGPalette1: ; 0xdc180 RGB 31, 31, 31 RGB 14, 15, 30 RGB 10, 5, 26 RGB 3, 2, 0 ZubatBillboardBGPalette2: ; 0xdc188 RGB 31, 31, 31 RGB 14, 15, 30 RGB 10, 5, 26 RGB 0, 0, 0 GolbatBillboardBGPalette1: ; 0xdc190 RGB 31, 31, 31 RGB 15, 15, 30 RGB 10, 5, 26 RGB 3, 2, 0 GolbatBillboardBGPalette2: ; 0xdc198 RGB 31, 31, 31 RGB 15, 15, 30 RGB 10, 5, 26 RGB 0, 0, 0 OddishBillboardBGPalette1: ; 0xdc1a0 RGB 31, 31, 31 RGB 22, 28, 2 RGB 7, 18, 0 RGB 0, 0, 0 OddishBillboardBGPalette2: ; 0xdc1a8 RGB 31, 31, 31 RGB 31, 6, 0 RGB 4, 8, 14 RGB 0, 0, 0 GloomBillboardBGPalette1: ; 0xdc1b0 RGB 31, 31, 31 RGB 30, 19, 15 RGB 28, 4, 0 RGB 0, 0, 0 GloomBillboardBGPalette2: ; 0xdc1b8 RGB 31, 31, 31 RGB 19, 20, 31 RGB 4, 8, 14 RGB 0, 0, 0 VileplumeBillboardBGPalette1: ; 0xdc1c0 RGB 31, 31, 31 RGB 30, 19, 15 RGB 28, 4, 0 RGB 0, 0, 0 VileplumeBillboardBGPalette2: ; 0xdc1c8 RGB 31, 31, 31 RGB 19, 20, 31 RGB 4, 8, 14 RGB 0, 0, 0 ParasBillboardBGPalette1: ; 0xdc1d0 RGB 31, 31, 31 RGB 31, 20, 11 RGB 23, 6, 3 RGB 0, 0, 0 ParasBillboardBGPalette2: ; 0xdc1d8 RGB 31, 31, 31 RGB 31, 20, 11 RGB 23, 6, 3 RGB 0, 0, 0 ParasectBillboardBGPalette1: ; 0xdc1e0 RGB 31, 31, 31 RGB 31, 20, 11 RGB 23, 6, 3 RGB 0, 0, 0 ParasectBillboardBGPalette2: ; 0xdc1e8 RGB 31, 31, 31 RGB 31, 20, 11 RGB 23, 6, 3 RGB 0, 0, 0 VenonatBillboardBGPalette1: ; 0xdc1f0 RGB 31, 31, 31 RGB 24, 15, 28 RGB 12, 5, 18 RGB 0, 0, 0 VenonatBillboardBGPalette2: ; 0xdc1f8 RGB 31, 31, 31 RGB 24, 15, 28 RGB 12, 5, 18 RGB 0, 0, 0 VenomothBillboardBGPalette1: ; 0xdc200 RGB 31, 31, 31 RGB 27, 17, 29 RGB 17, 7, 16 RGB 0, 0, 0 VenomothBillboardBGPalette2: ; 0xdc208 RGB 31, 31, 31 RGB 27, 17, 29 RGB 17, 7, 16 RGB 0, 0, 0 DiglettBillboardBGPalette1: ; 0xdc210 RGB 31, 31, 31 RGB 24, 17, 5 RGB 15, 7, 0 RGB 0, 0, 0 DiglettBillboardBGPalette2: ; 0xdc218 RGB 31, 31, 31 RGB 24, 17, 5 RGB 23, 3, 0 RGB 0, 0, 0 DugtrioBillboardBGPalette1: ; 0xdc220 RGB 31, 31, 31 RGB 24, 17, 5 RGB 15, 7, 0 RGB 0, 0, 0 DugtrioBillboardBGPalette2: ; 0xdc228 RGB 31, 31, 31 RGB 24, 17, 5 RGB 23, 3, 0 RGB 0, 0, 0 MeowthBillboardBGPalette1: ; 0xdc230 RGB 31, 31, 31 RGB 29, 28, 7 RGB 19, 10, 0 RGB 0, 0, 0 MeowthBillboardBGPalette2: ; 0xdc238 RGB 31, 31, 31 RGB 29, 28, 7 RGB 31, 0, 0 RGB 0, 0, 0 PersianBillboardBGPalette1: ; 0xdc240 RGB 31, 31, 31 RGB 29, 28, 7 RGB 19, 10, 0 RGB 0, 0, 0 PersianBillboardBGPalette2: ; 0xdc248 RGB 31, 31, 31 RGB 29, 28, 7 RGB 31, 0, 0 RGB 0, 0, 0 PsyduckBillboardBGPalette1: ; 0xdc250 RGB 31, 31, 31 RGB 31, 31, 0 RGB 19, 17, 0 RGB 0, 0, 0 PsyduckBillboardBGPalette2: ; 0xdc258 RGB 31, 31, 31 RGB 31, 31, 0 RGB 19, 17, 0 RGB 0, 0, 0 GolduckBillboardBGPalette1: ; 0xdc260 RGB 31, 31, 31 RGB 26, 25, 7 RGB 13, 15, 27 RGB 0, 0, 0 GolduckBillboardBGPalette2: ; 0xdc268 RGB 31, 31, 31 RGB 31, 0, 0 RGB 13, 15, 27 RGB 0, 0, 0 MankeyBillboardBGPalette1: ; 0xdc270 RGB 31, 31, 31 RGB 28, 20, 17 RGB 22, 9, 5 RGB 0, 0, 0 MankeyBillboardBGPalette2: ; 0xdc278 RGB 31, 31, 31 RGB 28, 20, 17 RGB 22, 9, 5 RGB 0, 0, 0 PrimeapeBillboardBGPalette1: ; 0xdc280 RGB 31, 31, 31 RGB 28, 20, 17 RGB 22, 9, 5 RGB 0, 0, 0 PrimeapeBillboardBGPalette2: ; 0xdc288 RGB 31, 31, 31 RGB 15, 15, 15 RGB 22, 9, 5 RGB 0, 0, 0 GrowlitheBillboardBGPalette1: ; 0xdc290 RGB 31, 31, 31 RGB 28, 27, 10 RGB 26, 12, 0 RGB 0, 0, 0 GrowlitheBillboardBGPalette2: ; 0xdc298 RGB 31, 31, 31 RGB 28, 27, 10 RGB 31, 0, 0 RGB 0, 0, 0 ArcanineBillboardBGPalette1: ; 0xdc2a0 RGB 31, 31, 31 RGB 28, 27, 10 RGB 26, 12, 0 RGB 0, 0, 0 ArcanineBillboardBGPalette2: ; 0xdc2a8 RGB 31, 31, 31 RGB 28, 27, 10 RGB 31, 0, 0 RGB 0, 0, 0 PoliwagBillboardBGPalette1: ; 0xdc2b0 RGB 31, 31, 31 RGB 20, 20, 27 RGB 11, 11, 18 RGB 0, 0, 0 PoliwagBillboardBGPalette2: ; 0xdc2b8 RGB 31, 31, 31 RGB 31, 17, 14 RGB 11, 11, 18 RGB 0, 0, 0 PoliwhirlBillboardBGPalette1: ; 0xdc2c0 RGB 31, 31, 31 RGB 20, 20, 27 RGB 11, 11, 18 RGB 0, 0, 0 PoliwhirlBillboardBGPalette2: ; 0xdc2c8 RGB 31, 31, 31 RGB 20, 20, 27 RGB 11, 11, 18 RGB 0, 0, 0 PoliwrathBillboardBGPalette1: ; 0xdc2d0 RGB 31, 31, 31 RGB 20, 20, 27 RGB 11, 11, 18 RGB 0, 0, 0 PoliwrathBillboardBGPalette2: ; 0xdc2d8 RGB 31, 31, 31 RGB 20, 20, 27 RGB 11, 11, 18 RGB 0, 0, 0 AbraBillboardBGPalette1: ; 0xdc2e0 RGB 31, 31, 31 RGB 31, 30, 0 RGB 19, 11, 6 RGB 0, 0, 0 AbraBillboardBGPalette2: ; 0xdc2e8 RGB 31, 31, 31 RGB 31, 30, 0 RGB 19, 11, 6 RGB 0, 0, 0 KadabraBillboardBGPalette1: ; 0xdc2f0 RGB 31, 31, 31 RGB 31, 30, 0 RGB 19, 11, 6 RGB 0, 0, 0 KadabraBillboardBGPalette2: ; 0xdc2f8 RGB 31, 31, 31 RGB 21, 21, 21 RGB 19, 11, 6 RGB 0, 0, 0 HypnoBillboardBGPalette1: ; 0xdc300 RGB 31, 31, 31 RGB 31, 30, 0 RGB 21, 15, 5 HypnoBillboardBGPalette2: ; 0xdc308 RGB 0, 0, 0 RGB 31, 31, 31 RGB 19, 23, 31 RGB 21, 15, 5 RGB 0, 0, 0 KrabbyBillboardBGPalette1: ; 0xdc310 RGB 31, 31, 31 RGB 31, 16, 17 RGB 25, 6, 0 KrabbyBillboardBGPalette2: ; 0xdc318 RGB 0, 0, 0 RGB 31, 31, 31 RGB 31, 16, 17 RGB 25, 6, 0 RGB 0, 0, 0 KinglerBillboardBGPalette1: ; 0xdc320 RGB 31, 31, 31 RGB 31, 16, 17 RGB 25, 6, 0 KinglerBillboardBGPalette2: ; 0xdc328 RGB 0, 0, 0 RGB 31, 31, 31 RGB 31, 16, 17 RGB 25, 6, 0 RGB 0, 0, 0 VoltorbBillboardBGPalette1: ; 0xdc330 RGB 31, 31, 31 RGB 31, 16, 17 RGB 25, 6, 0 VoltorbBillboardBGPalette2: ; 0xdc338 RGB 0, 0, 0 RGB 31, 31, 31 RGB 19, 23, 31 RGB 25, 6, 0 RGB 0, 0, 0 ElectrodeBillboardBGPalette1: ; 0xdc340 RGB 31, 31, 31 RGB 31, 15, 12 RGB 25, 6, 0 ElectrodeBillboardBGPalette2: ; 0xdc348 RGB 0, 0, 0 RGB 31, 31, 31 RGB 19, 23, 31 RGB 25, 6, 0 RGB 0, 0, 0 ExeggcuteBillboardBGPalette1: ; 0xdc350 RGB 31, 31, 31 RGB 31, 15, 12 RGB 18, 8, 6 ExeggcuteBillboardBGPalette2: ; 0xdc358 RGB 0, 0, 0 RGB 31, 31, 31 RGB 31, 15, 12 RGB 18, 8, 6 RGB 0, 0, 0 ExeggutorBillboardBGPalette1: ; 0xdc360 RGB 31, 31, 31 RGB 31, 27, 5 RGB 7, 18, 0 ExeggutorBillboardBGPalette2: ; 0xdc368 RGB 3, 2, 0 RGB 31, 31, 31 RGB 31, 23, 5 RGB 20, 10, 3 RGB 0, 0, 0 CuboneBillboardBGPalette1: ; 0xdc370 RGB 31, 31, 31 RGB 18, 20, 27 RGB 20, 10, 3 CuboneBillboardBGPalette2: ; 0xdc378 RGB 0, 0, 0 RGB 31, 31, 31 RGB 29, 23, 10 RGB 20, 10, 3 RGB 0, 0, 0 MarowakBillboardBGPalette1: ; 0xdc380 RGB 31, 31, 31 RGB 18, 20, 27 RGB 20, 10, 3 MarowakBillboardBGPalette2: ; 0xdc388 RGB 0, 0, 0 RGB 31, 31, 31 RGB 29, 23, 10 RGB 20, 10, 3 RGB 0, 0, 0 HitmonleeBillboardBGPalette1: ; 0xdc390 RGB 31, 31, 31 RGB 29, 23, 10 RGB 21, 13, 3 HitmonleeBillboardBGPalette2: ; 0xdc398 RGB 0, 0, 0 RGB 31, 31, 31 RGB 29, 23, 10 RGB 21, 13, 3 RGB 0, 0, 0 HitmonchanBillboardBGPalette1: ; 0xdc3a0 RGB 31, 31, 31 RGB 31, 21, 13 RGB 23, 3, 3 HitmonchanBillboardBGPalette2: ; 0xdc3a8 RGB 3, 2, 0 RGB 31, 31, 31 RGB 31, 21, 13 RGB 22, 3, 25 RGB 0, 0, 0 LickitungBillboardBGPalette1: ; 0xdc3b0 RGB 31, 31, 31 RGB 31, 21, 21 RGB 31, 9, 8 LickitungBillboardBGPalette2: ; 0xdc3b8 RGB 0, 0, 0 RGB 31, 31, 31 RGB 31, 20, 12 RGB 31, 9, 8 RGB 0, 0, 0 KoffingBillboardBGPalette1: ; 0xdc3c0 RGB 31, 31, 31 RGB 21, 13, 28 RGB 10, 7, 14 KoffingBillboardBGPalette2: ; 0xdc3c8 RGB 3, 2, 0 RGB 31, 31, 31 RGB 21, 13, 28 RGB 21, 4, 7 RGB 0, 0, 0 WeezingBillboardBGPalette1: ; 0xdc3d0 RGB 31, 31, 31 RGB 21, 13, 28 RGB 10, 7, 14 WeezingBillboardBGPalette2: ; 0xdc3d8 RGB 0, 0, 0 RGB 31, 31, 31 RGB 21, 13, 28 RGB 21, 4, 7 RGB 3, 2, 0 RhyhornBillboardBGPalette1: ; 0xdc3e0 RGB 31, 31, 31 RGB 21, 21, 21 RGB 13, 11, 16 RhyhornBillboardBGPalette2: ; 0xdc3e8 RGB 0, 0, 0 RGB 31, 31, 31 RGB 21, 21, 21 RGB 13, 11, 16 RGB 0, 0, 0 RhydonBillboardBGPalette1: ; 0xdc3f0 RGB 31, 31, 31 RGB 21, 21, 21 RGB 13, 11, 16 RhydonBillboardBGPalette2: ; 0xdc3f8 RGB 0, 0, 0 RGB 31, 31, 31 RGB 21, 21, 21 RGB 13, 11, 16 RGB 0, 0, 0 MagnemiteBillboardBGPalette1: ; 0xdc400 RGB 31, 31, 31 RGB 20, 20, 26 RGB 11, 11, 20 RGB 0, 0, 0 MagnemiteBillboardBGPalette2: ; 0xdc408 RGB 31, 31, 31 RGB 20, 20, 26 RGB 31, 0, 0 RGB 0, 0, 0 MagnetonBillboardBGPalette1: ; 0xdc410 RGB 31, 31, 31 RGB 20, 20, 26 RGB 11, 11, 20 RGB 0, 0, 0 MagnetonBillboardBGPalette2: ; 0xdc418 RGB 31, 31, 31 RGB 20, 20, 26 RGB 11, 11, 20 RGB 0, 0, 0 FarfetchdBillboardBGPalette1: ; 0xdc420 RGB 31, 31, 31 RGB 31, 29, 13 RGB 20, 12, 9 RGB 0, 0, 0 FarfetchdBillboardBGPalette2: ; 0xdc428 RGB 31, 31, 31 RGB 21, 31, 17 RGB 7, 20, 6 RGB 0, 0, 0 DoduoBillboardBGPalette1: ; 0xdc430 RGB 31, 31, 31 RGB 29, 26, 14 RGB 26, 16, 4 RGB 0, 0, 0 DoduoBillboardBGPalette2: ; 0xdc438 RGB 31, 31, 31 RGB 29, 26, 14 RGB 26, 16, 4 RGB 0, 0, 0 DodrioBillboardBGPalette1: ; 0xdc440 RGB 31, 31, 31 RGB 29, 26, 14 RGB 26, 16, 4 RGB 0, 0, 0 DodrioBillboardBGPalette2: ; 0xdc448 RGB 31, 31, 31 RGB 29, 26, 14 RGB 26, 16, 4 RGB 0, 0, 0 SeelBillboardBGPalette1: ; 0xdc450 RGB 31, 31, 31 RGB 20, 20, 26 RGB 11, 11, 20 RGB 0, 0, 0 SeelBillboardBGPalette2: ; 0xdc458 RGB 31, 31, 31 RGB 29, 26, 14 RGB 31, 11, 10 RGB 0, 0, 0 DewgongBillboardBGPalette1: ; 0xdc460 RGB 31, 31, 31 RGB 20, 20, 26 RGB 11, 11, 20 RGB 0, 0, 0 DewgongBillboardBGPalette2: ; 0xdc468 RGB 31, 31, 31 RGB 20, 20, 26 RGB 11, 11, 20 RGB 0, 0, 0 GrimerBillboardBGPalette1: ; 0xdc470 RGB 31, 31, 31 RGB 27, 18, 30 RGB 15, 7, 19 RGB 0, 0, 0 GrimerBillboardBGPalette2: ; 0xdc478 RGB 31, 31, 31 RGB 27, 18, 30 RGB 15, 7, 19 RGB 0, 0, 0 MukBillboardBGPalette1: ; 0xdc480 RGB 31, 31, 31 RGB 27, 18, 30 RGB 15, 7, 19 RGB 0, 0, 0 MukBillboardBGPalette2: ; 0xdc488 RGB 31, 31, 31 RGB 27, 18, 30 RGB 15, 7, 19 RGB 0, 0, 0 ShellderBillboardBGPalette1: ; 0xdc490 RGB 31, 31, 31 RGB 24, 21, 25 RGB 13, 11, 15 RGB 0, 0, 0 ShellderBillboardBGPalette2: ; 0xdc498 RGB 31, 31, 31 RGB 24, 21, 25 RGB 31, 13, 13 RGB 0, 0, 0 CloysterBillboardBGPalette1: ; 0xdc4a0 RGB 31, 31, 31 RGB 25, 21, 26 RGB 14, 11, 16 RGB 0, 0, 0 CloysterBillboardBGPalette2: ; 0xdc4a8 RGB 31, 31, 31 RGB 25, 21, 26 RGB 14, 11, 16 RGB 0, 0, 0 GastlyBillboardBGPalette1: ; 0xdc4b0 RGB 31, 31, 31 RGB 26, 18, 27 RGB 15, 8, 16 RGB 0, 0, 0 GastlyBillboardBGPalette2: ; 0xdc4b8 RGB 31, 31, 31 RGB 26, 18, 27 RGB 26, 10, 8 RGB 0, 0, 0 HaunterBillboardBGPalette1: ; 0xdc4c0 RGB 31, 31, 31 RGB 26, 18, 27 RGB 15, 8, 16 RGB 0, 0, 0 HaunterBillboardBGPalette2: ; 0xdc4c8 RGB 31, 31, 31 RGB 31, 13, 13 RGB 14, 9, 15 RGB 0, 0, 0 GengarBillboardBGPalette1: ; 0xdc4d0 RGB 31, 31, 31 RGB 18, 21, 23 RGB 10, 12, 13 RGB 0, 0, 0 GengarBillboardBGPalette2: ; 0xdc4d8 RGB 31, 31, 31 RGB 31, 11, 6 RGB 10, 12, 13 RGB 0, 0, 0 OnixBillboardBGPalette1: ; 0xdc4e0 RGB 31, 31, 31 RGB 20, 20, 24 RGB 10, 10, 14 RGB 0, 0, 0 OnixBillboardBGPalette2: ; 0xdc4e8 RGB 31, 31, 31 RGB 20, 20, 24 RGB 10, 10, 14 RGB 0, 0, 0 DrowzeeBillboardBGPalette1: ; 0xdc4f0 RGB 31, 31, 31 RGB 31, 30, 0 RGB 21, 19, 0 RGB 0, 0, 0 DrowzeeBillboardBGPalette2: ; 0xdc4f8 RGB 31, 31, 31 RGB 31, 30, 0 RGB 21, 19, 0 RGB 0, 0, 0 AlakazamBillboardBGPalette1: ; 0xdc500 RGB 31, 31, 31 RGB 31, 30, 0 RGB 19, 11, 6 RGB 0, 0, 0 AlakazamBillboardBGPalette2: ; 0xdc508 RGB 31, 31, 31 RGB 21, 21, 21 RGB 19, 11, 6 RGB 0, 0, 0 MachopBillboardBGPalette1: ; 0xdc510 RGB 31, 31, 31 RGB 19, 19, 21 RGB 12, 12, 13 RGB 0, 0, 0 MachopBillboardBGPalette2: ; 0xdc518 RGB 31, 31, 31 RGB 19, 19, 21 RGB 31, 0, 0 RGB 0, 0, 0 MachokeBillboardBGPalette1: ; 0xdc520 RGB 31, 31, 31 RGB 18, 18, 22 RGB 11, 11, 14 RGB 0, 0, 0 MachokeBillboardBGPalette2: ; 0xdc528 RGB 31, 31, 31 RGB 18, 18, 22 RGB 31, 0, 0 RGB 0, 0, 0 MachampBillboardBGPalette1: ; 0xdc530 RGB 31, 31, 31 RGB 18, 21, 22 RGB 9, 12, 13 RGB 0, 0, 0 MachampBillboardBGPalette2: ; 0xdc538 RGB 31, 31, 31 RGB 18, 21, 22 RGB 31, 0, 0 RGB 0, 0, 0 BellsproutBillboardBGPalette1: ; 0xdc540 RGB 31, 31, 31 RGB 26, 29, 7 RGB 11, 20, 0 RGB 0, 0, 0 BellsproutBillboardBGPalette2: ; 0xdc548 RGB 31, 31, 31 RGB 26, 29, 7 RGB 31, 11, 8 RGB 0, 0, 0 WeepinbellBillboardBGPalette1: ; 0xdc550 RGB 31, 31, 31 RGB 26, 29, 7 RGB 11, 20, 0 RGB 0, 0, 0 WeepinbellBillboardBGPalette2: ; 0xdc558 RGB 31, 31, 31 RGB 26, 29, 7 RGB 31, 11, 8 RGB 0, 0, 0 VictreebellBillboardBGPalette1: ; 0xdc560 RGB 31, 31, 31 RGB 29, 31, 9 RGB 11, 20, 0 RGB 0, 0, 0 VictreebellBillboardBGPalette2: ; 0xdc568 RGB 31, 31, 31 RGB 29, 31, 9 RGB 31, 11, 8 RGB 0, 0, 0 TentacoolBillboardBGPalette1: ; 0xdc570 RGB 31, 31, 31 RGB 16, 22, 31 RGB 0, 11, 22 RGB 0, 0, 0 TentacoolBillboardBGPalette2: ; 0xdc578 RGB 31, 31, 31 RGB 16, 22, 31 RGB 31, 5, 6 RGB 0, 0, 0 TentacruelBillboardBGPalette1: ; 0xdc580 RGB 31, 31, 31 RGB 16, 22, 31 RGB 0, 11, 22 RGB 0, 0, 0 TentacruelBillboardBGPalette2: ; 0xdc588 RGB 31, 31, 31 RGB 16, 22, 31 RGB 31, 5, 6 RGB 0, 0, 0 GeodudeBillboardBGPalette1: ; 0xdc590 RGB 31, 31, 31 RGB 20, 23, 22 RGB 10, 13, 12 RGB 0, 0, 0 GeodudeBillboardBGPalette2: ; 0xdc598 RGB 31, 31, 31 RGB 20, 23, 22 RGB 10, 13, 12 RGB 0, 0, 0 GravelerBillboardBGPalette1: ; 0xdc5a0 RGB 31, 31, 31 RGB 20, 23, 22 RGB 10, 13, 12 RGB 0, 0, 0 GravelerBillboardBGPalette2: ; 0xdc5a8 RGB 31, 31, 31 RGB 20, 23, 22 RGB 10, 13, 12 RGB 0, 0, 0 GolemBillboardBGPalette1: ; 0xdc5b0 RGB 31, 31, 31 RGB 26, 25, 15 RGB 10, 13, 12 RGB 0, 0, 0 GolemBillboardBGPalette2: ; 0xdc5b8 RGB 31, 31, 31 RGB 26, 25, 15 RGB 31, 0, 0 RGB 0, 0, 0 PonytaBillboardBGPalette1: ; 0xdc5c0 RGB 31, 31, 31 RGB 27, 26, 11 RGB 31, 0, 0 RGB 0, 0, 0 PonytaBillboardBGPalette2: ; 0xdc5c8 RGB 31, 31, 31 RGB 31, 29, 0 RGB 31, 0, 0 RGB 0, 0, 0 RapidashBillboardBGPalette1: ; 0xdc5d0 RGB 31, 31, 31 RGB 27, 26, 11 RGB 31, 0, 0 RGB 0, 0, 0 RapidashBillboardBGPalette2: ; 0xdc5d8 RGB 31, 31, 31 RGB 31, 29, 0 RGB 31, 0, 0 RGB 0, 0, 0 SlowpokeBillboardBGPalette1: ; 0xdc5e0 RGB 31, 31, 31 RGB 31, 21, 21 RGB 31, 11, 11 RGB 0, 0, 0 SlowpokeBillboardBGPalette2: ; 0xdc5e8 RGB 31, 31, 31 RGB 31, 27, 15 RGB 31, 11, 11 RGB 0, 0, 0 SlowbroBillboardBGPalette1: ; 0xdc5f0 RGB 31, 31, 31 RGB 31, 27, 15 RGB 31, 11, 11 RGB 0, 0, 0 SlowbroBillboardBGPalette2: ; 0xdc5f8 RGB 31, 31, 31 RGB 23, 23, 23 RGB 12, 12, 12 RGB 0, 0, 0 StageMeowthBonusCollisionMasks: ; 0xdc600 INCBIN "data/collision/masks/meowth_bonus.masks" ZapdosBillboardBGPalette1: ; 0xdc700 RGB 31, 31, 31 RGB 29, 27, 0 RGB 20, 6, 0 RGB 0, 0, 0 ZapdosBillboardBGPalette2: ; 0xdc708 RGB 31, 31, 31 RGB 29, 27, 0 RGB 20, 6, 0 RGB 0, 0, 0 MoltresBillboardBGPalette1: ; 0xdc710 RGB 31, 31, 31 RGB 30, 25, 0 RGB 30, 6, 0 RGB 0, 0, 0 MoltresBillboardBGPalette2: ; 0xdc718 RGB 31, 31, 31 RGB 30, 25, 0 RGB 30, 6, 0 RGB 0, 0, 0 DratiniBillboardBGPalette1: ; 0xdc720 RGB 31, 31, 31 RGB 17, 19, 24 RGB 6, 11, 15 RGB 0, 0, 0 DratiniBillboardBGPalette2: ; 0xdc728 RGB 31, 31, 31 RGB 17, 19, 24 RGB 6, 11, 15 RGB 0, 0, 0 DragonairBillboardBGPalette1: ; 0xdc730 RGB 31, 31, 31 RGB 9, 19, 30 RGB 2, 4, 26 RGB 0, 0, 0 DragonairBillboardBGPalette2: ; 0xdc738 RGB 31, 31, 31 RGB 9, 19, 30 RGB 2, 4, 26 RGB 0, 0, 0 DragoniteBillboardBGPalette1: ; 0xdc740 RGB 31, 31, 31 RGB 31, 23, 7 RGB 27, 11, 0 RGB 0, 0, 0 DragoniteBillboardBGPalette2: ; 0xdc748 RGB 31, 31, 31 RGB 13, 22, 16 RGB 27, 11, 0 RGB 0, 0, 0 MewtwoBillboardBGPalette1: ; 0xdc750 RGB 31, 31, 31 RGB 28, 23, 28 RGB 13, 7, 20 RGB 0, 0, 0 MewtwoBillboardBGPalette2: ; 0xdc758 RGB 31, 31, 31 RGB 28, 23, 28 RGB 20, 5, 18 RGB 0, 0, 0 MewBillboardBGPalette1: ; 0xdc760 RGB 31, 31, 31 RGB 31, 18, 24 RGB 31, 7, 12 RGB 0, 0, 0 MewBillboardBGPalette2: ; 0xdc768 RGB 31, 31, 31 RGB 31, 18, 24 RGB 0, 10, 31 RGB 0, 0, 0 dr $dc770, $dc880 SeelBonusPalettes: ; 0xdc880 SeelBonusBGPalette0: ; 0xdc880 RGB 31, 31, 31 RGB 13, 20, 31 RGB 31, 4, 4 RGB 0, 0, 0 SeelBonusBGPalette1: ; 0xdc888 RGB 31, 31, 31 RGB 30, 24, 4 RGB 27, 7, 0 RGB 0, 0, 0 SeelBonusBGPalette2: ; 0xdc890 RGB 31, 31, 31 RGB 31, 0, 0 RGB 16, 0, 0 RGB 0, 0, 0 SeelBonusBGPalette3: ; 0xdc898 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 SeelBonusBGPalette4: ; 0xdc8a0 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 SeelBonusBGPalette5: ; 0xdc8a8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 SeelBonusBGPalette6: ; 0xdc8b0 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 SeelBonusBGPalette7: ; 0xdc8b8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 SeelBonusOBJPalette0: ; 0xdc8c0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 SeelBonusOBJPalette1: ; 0xdc8c8 RGB 31, 31, 31 RGB 20, 20, 26 RGB 31, 11, 10 RGB 0, 0, 0 SeelBonusOBJPalette2: ; 0xdc8d0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 21, 21, 27 RGB 0, 0, 0 SeelBonusOBJPalette3: ; 0xdc8d8 RGB 31, 31, 31 RGB 20, 20, 26 RGB 11, 11, 20 RGB 0, 0, 0 SeelBonusOBJPalette4: ; 0xdc8e0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 SeelBonusOBJPalette5: ; 0xdc8e8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 SeelBonusOBJPalette6: ; 0xdc8f0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 SeelBonusOBJPalette7: ; 0xdc8f8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 dr $dc900, $dc980 StageRedFieldTopPalettes: ; 0xdc980 StageRedFieldTopBGPalette0: ; 0xdc980 RGB 31, 31, 31 RGB 13, 20, 31 RGB 31, 4, 4 RGB 0, 0, 0 StageRedFieldTopBGPalette1: ; 0xdc988 RGB 31, 31, 31 RGB 24, 31, 0 RGB 31, 0, 0 RGB 3, 0, 0 StageRedFieldTopBGPalette2: ; 0xdc990 RGB 31, 31, 31 RGB 11, 25, 31 RGB 0, 11, 31 RGB 0, 0, 0 StageRedFieldTopBGPalette3: ; 0xdc998 RGB 31, 31, 31 RGB 31, 13, 13 RGB 31, 0, 0 RGB 0, 0, 0 StageRedFieldTopBGPalette4: ; 0xdc9a0 RGB 31, 31, 31 RGB 31, 0, 31 RGB 31, 0, 0 RGB 0, 0, 0 StageRedFieldTopBGPalette5: ; 0xdc9a8 RGB 24, 31, 0 RGB 31, 0, 31 RGB 31, 0, 0 RGB 0, 0, 0 StageRedFieldTopBGPalette6: ; 0xdc9b0 RGB 31, 31, 31 RGB 13, 13, 31 RGB 31, 0, 0 RGB 0, 0, 0 StageRedFieldTopBGPalette7: ; 0xdc9b8 RGB 31, 31, 31 RGB 31, 13, 13 RGB 31, 0, 0 RGB 0, 0, 0 StageRedFieldTopOBJPalette0: ; 0xdc9c0 RGB 21, 21, 21 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 StageRedFieldTopOBJPalette1: ; 0xdc9c8 RGB 31, 31, 31 RGB 31, 19, 22 RGB 21, 0, 0 RGB 4, 0, 0 StageRedFieldTopOBJPalette2: ; 0xdc9d0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 31, 0, 31 RGB 0, 0, 0 StageRedFieldTopOBJPalette3: ; 0xdc9d8 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 22, 0 RGB 10, 4, 0 StageRedFieldTopOBJPalette4: ; 0xdc9e0 RGB 20, 20, 20 RGB 18, 31, 18 RGB 5, 19, 0 RGB 0, 7, 0 StageRedFieldTopOBJPalette5: ; 0xdc9e8 RGB 31, 31, 31 RGB 31, 20, 0 RGB 31, 15, 16 RGB 5, 2, 0 StageRedFieldTopOBJPalette6: ; 0xdc9f0 RGB 20, 20, 20 RGB 0, 31, 25 RGB 0, 18, 14 RGB 0, 0, 0 StageRedFieldTopOBJPalette7: ; 0xdc9f8 RGB 31, 31, 31 RGB 31, 15, 13 RGB 21, 0, 0 RGB 4, 0, 0 DiglettBonusPalettes: ; 0xdca00 DiglettBonusBGPalette0: ; 0xdca00 RGB 31, 31, 31 RGB 13, 20, 31 RGB 31, 4, 4 RGB 0, 0, 0 DiglettBonusBGPalette1: ; 0xdca08 RGB 31, 31, 31 RGB 10, 24, 20 RGB 5, 13, 10 RGB 0, 0, 0 DiglettBonusBGPalette2: ; 0xdca10 RGB 31, 31, 31 RGB 31, 0, 0 RGB 16, 0, 0 RGB 0, 0, 0 DiglettBonusBGPalette3: ; 0xdca18 RGB 31, 31, 31 RGB 31, 18, 8 RGB 27, 0, 0 RGB 0, 0, 0 DiglettBonusBGPalette4: ; 0xdca20 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 DiglettBonusBGPalette5: ; 0xdca28 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 DiglettBonusBGPalette6: ; 0xdca30 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 DiglettBonusBGPalette7: ; 0xdca38 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 DiglettBonusOBJPalette0: ; 0xdca40 RGB 20, 20, 20 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 DiglettBonusOBJPalette1: ; 0xdca48 RGB 31, 31, 31 RGB 31, 18, 8 RGB 27, 0, 0 RGB 0, 0, 0 DiglettBonusOBJPalette2: ; 0xdca50 RGB 20, 20, 20 RGB 31, 31, 31 RGB 21, 21, 27 RGB 0, 0, 0 DiglettBonusOBJPalette3: ; 0xdca58 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 DiglettBonusOBJPalette4: ; 0xdca60 RGB 20, 20, 20 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 DiglettBonusOBJPalette5: ; 0xdca68 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 DiglettBonusOBJPalette6: ; 0xdca70 RGB 20, 20, 20 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 DiglettBonusOBJPalette7: ; 0xdca78 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 StageRedFieldBottomPalettes: ; 0xdca80 StageRedFieldBottomBGPalette0: ; 0xdca80 RGB 31, 31, 31 RGB 13, 20, 31 RGB 31, 4, 4 RGB 0, 0, 0 StageRedFieldBottomBGPalette1: ; 0xdca88 RGB 31, 31, 31 RGB 24, 31, 0 RGB 31, 0, 0 RGB 3, 0, 0 StageRedFieldBottomBGPalette2: ; 0xdca90 RGB 31, 31, 31 RGB 11, 25, 31 RGB 0, 11, 31 RGB 0, 0, 0 StageRedFieldBottomBGPalette3: ; 0xdca98 RGB 31, 31, 31 RGB 31, 13, 13 RGB 31, 0, 0 RGB 0, 0, 0 StageRedFieldBottomBGPalette4: ; 0xdcaa0 RGB 31, 31, 31 RGB 31, 0, 31 RGB 31, 0, 0 RGB 0, 0, 0 StageRedFieldBottomBGPalette5: ; 0xdcaa8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 StageRedFieldBottomBGPalette6: ; 0xdcab0 RGB 29, 30, 31 RGB 27, 20, 10 RGB 2, 16, 1 RGB 0, 0, 0 StageRedFieldBottomBGPalette7: ; 0xdcab8 RGB 29, 30, 31 RGB 5, 17, 31 RGB 26, 3, 1 RGB 0, 0, 0 StageRedFieldBottomOBJPalette0: ; 0xdcac0 RGB 21, 21, 21 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 StageRedFieldBottomOBJPalette1: ; 0xdcac8 RGB 31, 31, 31 RGB 21, 21, 21 RGB 27, 21, 0 RGB 0, 0, 0 StageRedFieldBottomOBJPalette2: ; 0xdcad0 RGB 21, 21, 21 RGB 31, 31, 31 RGB 21, 21, 27 RGB 0, 0, 0 StageRedFieldBottomOBJPalette3: ; 0xdcad8 RGB 31, 31, 31 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 StageRedFieldBottomOBJPalette4: ; 0xdcae0 RGB 21, 21, 21 RGB 31, 28, 0 RGB 29, 0, 0 RGB 0, 0, 0 StageRedFieldBottomOBJPalette5: ; 0xdcae8 RGB 31, 31, 31 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 StageRedFieldBottomOBJPalette6: ; 0xdcaf0 RGB 20, 20, 20 RGB 0, 31, 25 RGB 0, 18, 14 RGB 0, 0, 0 StageRedFieldBottomOBJPalette7: ; 0xdcaf8 RGB 31, 31, 31 RGB 31, 30, 16 RGB 27, 24, 8 RGB 23, 19, 3 StageBlueFieldTopPalettes: ; 0xdcb00 StageBlueFieldTopBGPalette0: ; 0xdcb00 RGB 31, 31, 31 RGB 13, 20, 31 RGB 31, 4, 4 RGB 0, 0, 0 StageBlueFieldTopBGPalette1: ; 0xdcb08 RGB 31, 31, 31 RGB 11, 25, 31 RGB 0, 11, 31 RGB 0, 0, 0 StageBlueFieldTopBGPalette2: ; 0xdcb10 RGB 31, 31, 31 RGB 4, 23, 13 RGB 0, 13, 4 RGB 0, 0, 0 StageBlueFieldTopBGPalette3: ; 0xdcb18 RGB 31, 31, 31 RGB 31, 29, 0 RGB 15, 8, 0 RGB 0, 0, 0 StageBlueFieldTopBGPalette4: ; 0xdcb20 RGB 31, 31, 31 RGB 31, 0, 0 RGB 16, 0, 0 RGB 0, 0, 0 StageBlueFieldTopBGPalette5: ; 0xdcb28 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 StageBlueFieldTopBGPalette6: ; 0xdcb30 RGB 31, 31, 31 RGB 13, 13, 31 RGB 31, 0, 0 RGB 0, 0, 0 StageBlueFieldTopBGPalette7: ; 0xdcb38 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 StageBlueFieldTopOBJPalette0: ; 0xdcb40 RGB 21, 21, 21 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 StageBlueFieldTopOBJPalette1: ; 0xdcb48 RGB 31, 31, 31 RGB 31, 13, 15 RGB 23, 4, 6 RGB 0, 0, 0 StageBlueFieldTopOBJPalette2: ; 0xdcb50 RGB 21, 21, 21 RGB 31, 31, 31 RGB 31, 26, 0 RGB 10, 6, 0 StageBlueFieldTopOBJPalette3: ; 0xdcb58 RGB 31, 31, 31 RGB 24, 22, 26 RGB 12, 10, 14 RGB 0, 0, 0 StageBlueFieldTopOBJPalette4: ; 0xdcb60 RGB 21, 21, 21 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 StageBlueFieldTopOBJPalette5: ; 0xdcb68 RGB 31, 31, 31 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 StageBlueFieldTopOBJPalette6: ; 0xdcb70 RGB 21, 21, 21 RGB 0, 31, 25 RGB 0, 18, 14 RGB 0, 0, 0 StageBlueFieldTopOBJPalette7: ; 0xdcb78 RGB 31, 31, 31 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 StageBlueFieldBottomPalettes: ; 0xdcb80 StageBlueFieldBottomBGPalette0: ; 0xdcb80 RGB 31, 31, 31 RGB 13, 20, 31 RGB 31, 4, 4 RGB 0, 0, 0 StageBlueFieldBottomBGPalette1: ; 0xdcb88 RGB 31, 31, 31 RGB 11, 25, 31 RGB 0, 11, 31 RGB 0, 0, 0 StageBlueFieldBottomBGPalette2: ; 0xdcb90 RGB 31, 31, 31 RGB 4, 23, 13 RGB 0, 13, 4 RGB 0, 0, 0 StageBlueFieldBottomBGPalette3: ; 0xdcb98 RGB 31, 31, 31 RGB 31, 29, 0 RGB 15, 8, 0 RGB 0, 0, 0 StageBlueFieldBottomBGPalette4: ; 0xdcba0 RGB 31, 31, 31 RGB 31, 0, 0 RGB 16, 0, 0 RGB 0, 0, 0 StageBlueFieldBottomBGPalette5: ; 0xdcba8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 StageBlueFieldBottomBGPalette6: ; 0xdcbb0 RGB 31, 31, 31 RGB 15, 20, 31 RGB 7, 11, 21 RGB 0, 0, 0 StageBlueFieldBottomBGPalette7: ; 0xdcbb8 RGB 31, 31, 31 RGB 27, 20, 10 RGB 24, 7, 5 RGB 0, 0, 0 StageBlueFieldBottomOBJPalette0: ; 0xdcbc0 RGB 21, 21, 21 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 StageBlueFieldBottomOBJPalette1: ; 0xdcbc8 RGB 31, 31, 31 RGB 21, 21, 21 RGB 27, 21, 0 RGB 0, 0, 0 StageBlueFieldBottomOBJPalette2: ; 0xdcbd0 RGB 21, 21, 21 RGB 31, 31, 31 RGB 21, 21, 27 RGB 0, 0, 0 StageBlueFieldBottomOBJPalette3: ; 0xdcbd8 RGB 31, 31, 31 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 StageBlueFieldBottomOBJPalette4: ; 0xdcbe0 RGB 21, 21, 21 RGB 31, 28, 0 RGB 29, 0, 0 RGB 0, 0, 0 StageBlueFieldBottomOBJPalette5: ; 0xdcbe8 RGB 31, 31, 31 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 StageBlueFieldBottomOBJPalette6: ; 0xdcbf0 RGB 21, 21, 21 RGB 0, 31, 25 RGB 0, 18, 14 RGB 0, 0, 0 StageBlueFieldBottomOBJPalette7: ; 0xdcbf8 RGB 31, 31, 31 RGB 31, 30, 16 RGB 27, 24, 8 RGB 23, 19, 3 PaletteData_dcc00: ; 0xdcc00 RGB 31, 31, 31 RGB 31, 28, 0 RGB 0, 11, 31 RGB 0, 0, 0 PaletteData_dcc08: ; 0xdcc08 RGB 31, 31, 31 RGB 31, 28, 0 RGB 29, 0, 0 RGB 0, 0, 0 PaletteData_dcc10: ; 0xdcc10 RGB 31, 31, 31 RGB 31, 0, 0 RGB 16, 0, 0 RGB 0, 0, 0 PaletteData_dcc18: ; 0xdcc18 RGB 31, 31, 31 RGB 31, 29, 0 RGB 15, 8, 0 RGB 0, 0, 0 PaletteData_dcc20: ; 0xdcc20 RGB 31, 31, 31 RGB 4, 23, 13 RGB 29, 0, 0 RGB 0, 0, 0 PaletteData_dcc28: ; 0xdcc28 RGB 31, 31, 31 RGB 29, 0, 0 RGB 0, 0, 22 RGB 0, 0, 0 PaletteData_dcc30: ; 0xdcc30 RGB 31, 31, 31 RGB 31, 0, 15 RGB 11, 0, 13 RGB 0, 0, 0 PaletteData_dcc38: ; 0xdcc38 RGB 31, 31, 31 RGB 11, 25, 31 RGB 0, 11, 31 RGB 0, 0, 0 PaletteData_dcc40: ; 0xdcc40 RGB 31, 31, 31 RGB 15, 15, 19 RGB 31, 0, 31 RGB 0, 0, 0 PaletteData_dcc48: ; 0xdcc48 RGB 31, 31, 31 RGB 31, 25, 31 RGB 31, 0, 31 RGB 0, 0, 0 PaletteData_dcc50: ; 0xdcc50 RGB 31, 31, 31 RGB 31, 31, 0 RGB 27, 11, 2 RGB 0, 0, 0 PaletteData_dcc58: ; 0xdcc58 RGB 31, 31, 31 RGB 31, 18, 8 RGB 27, 0, 0 RGB 0, 0, 0 PaletteData_dcc60: ; 0xdcc60 RGB 31, 31, 31 RGB 20, 20, 26 RGB 31, 11, 10 RGB 0, 0, 0 dr $dcc68, $dcc80 MeowthBonusPalettes: ; 0xdcc80 MeowthBonusBGPalette0: ; 0xdcc80 RGB 31, 31, 31 RGB 13, 20, 31 RGB 31, 4, 4 RGB 0, 0, 0 MeowthBonusBGPalette1: ; 0xdcc88 RGB 31, 31, 31 RGB 31, 16, 0 RGB 15, 7, 0 RGB 0, 0, 0 MeowthBonusBGPalette2: ; 0xdcc90 RGB 31, 31, 31 RGB 31, 0, 0 RGB 16, 0, 0 RGB 0, 0, 0 MeowthBonusBGPalette3: ; 0xdcc98 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MeowthBonusBGPalette4: ; 0xdcca0 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MeowthBonusBGPalette5: ; 0xdcca8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MeowthBonusBGPalette6: ; 0xdccb0 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MeowthBonusBGPalette7: ; 0xdccb8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MeowthBonusOBJPalette0: ; 0xdccc0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 MeowthBonusOBJPalette1: ; 0xdccc8 RGB 31, 31, 31 RGB 31, 26, 16 RGB 25, 9, 0 RGB 0, 0, 0 MeowthBonusOBJPalette2: ; 0xdccd0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 21, 21, 27 RGB 0, 0, 0 MeowthBonusOBJPalette3: ; 0xdccd8 RGB 31, 31, 31 RGB 31, 31, 0 RGB 23, 7, 0 RGB 0, 0, 0 MeowthBonusOBJPalette4: ; 0xdcce0 RGB 20, 20, 20 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MeowthBonusOBJPalette5: ; 0xdcce8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MeowthBonusOBJPalette6: ; 0xdccf0 RGB 20, 20, 20 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MeowthBonusOBJPalette7: ; 0xdccf8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 HighScoresBlueStagePalettes: ; 0xdcd00 HighScoresBlueStageBGPalette0: ; 0xdcd00 RGB 31, 31, 31 RGB 23, 23, 23 RGB 14, 14, 14 RGB 5, 5, 5 HighScoresBlueStageBGPalette1: ; 0xdcd08 RGB 31, 31, 31 RGB 31, 0, 0 RGB 9, 9, 27 RGB 0, 0, 0 HighScoresBlueStageBGPalette2: ; 0xdcd10 RGB 31, 31, 31 RGB 31, 8, 0 RGB 9, 9, 27 RGB 0, 0, 0 HighScoresBlueStageBGPalette3: ; 0xdcd18 RGB 31, 31, 31 RGB 31, 16, 0 RGB 9, 9, 27 RGB 0, 0, 0 HighScoresBlueStageBGPalette4: ; 0xdcd20 RGB 31, 31, 31 RGB 31, 24, 0 RGB 9, 9, 27 RGB 0, 0, 0 HighScoresBlueStageBGPalette5: ; 0xdcd28 RGB 31, 31, 31 RGB 31, 31, 0 RGB 9, 9, 27 RGB 0, 0, 0 HighScoresBlueStageBGPalette6: ; 0xdcd30 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 HighScoresBlueStageBGPalette7: ; 0xdcd38 RGB 31, 29, 4 RGB 29, 18, 0 RGB 31, 0, 0 RGB 5, 5, 5 HighScoresBlueStageOBJPalette0: ; 0xdcd40 RGB 31, 31, 31 RGB 31, 31, 31 RGB 9, 9, 27 RGB 0, 0, 0 HighScoresBlueStageOBJPalette1: ; 0xdcd48 RGB 31, 31, 31 RGB 31, 29, 4 RGB 29, 18, 0 RGB 0, 0, 0 HighScoresBlueStageOBJPalette2: ; 0xdcd50 RGB 20, 20, 20 RGB 31, 31, 31 RGB 14, 14, 14 RGB 5, 5, 5 HighScoresBlueStageOBJPalette3: ; 0xdcd58 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 HighScoresBlueStageOBJPalette4: ; 0xdcd60 RGB 31, 31, 31 RGB 31, 0, 0 RGB 31, 31, 31 RGB 0, 0, 0 HighScoresBlueStageOBJPalette5: ; 0xdcd68 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 HighScoresBlueStageOBJPalette6: ; 0xdcd70 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 HighScoresBlueStageOBJPalette7: ; 0xdcd88 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 HighScoresRedStagePalettes: ; 0xdcd80 HighScoresRedStageBGPalette0: ; 0xdcd80 RGB 31, 31, 31 RGB 23, 23, 23 RGB 14, 14, 14 RGB 5, 5, 5 HighScoresRedStageBGPalette1: ; 0xdcd88 RGB 31, 31, 31 RGB 0, 0, 31 RGB 31, 6, 6 RGB 0, 0, 0 HighScoresRedStageBGPalette2: ; 0xdcd90 RGB 31, 31, 31 RGB 0, 8, 31 RGB 31, 6, 6 RGB 0, 0, 0 HighScoresRedStageBGPalette3: ; 0xdcd98 RGB 31, 31, 31 RGB 0, 16, 31 RGB 31, 6, 6 RGB 0, 0, 0 HighScoresRedStageBGPalette4: ; 0xdcda0 RGB 31, 31, 31 RGB 0, 24, 31 RGB 31, 6, 6 RGB 0, 0, 0 HighScoresRedStageBGPalette5: ; 0xdcda8 RGB 31, 31, 31 RGB 0, 31, 31 RGB 31, 6, 6 RGB 0, 0, 0 HighScoresRedStageBGPalette6: ; 0xdcdb0 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 HighScoresRedStageBGPalette7: ; 0xdcdb8 RGB 31, 29, 4 RGB 29, 18, 0 RGB 31, 0, 0 RGB 5, 5, 5 HighScoresRedStageOBJPalette0: ; 0xdcdc0 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 6, 6 RGB 0, 0, 0 HighScoresRedStageOBJPalette1: ; 0xdcdc8 RGB 31, 31, 31 RGB 31, 29, 4 RGB 29, 18, 0 RGB 0, 0, 0 HighScoresRedStageOBJPalette2: ; 0xdcdd0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 14, 14, 14 RGB 5, 5, 5 HighScoresRedStageOBJPalette3: ; 0xdcdd8 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 HighScoresRedStageOBJPalette4: ; 0xdcde0 RGB 31, 31, 31 RGB 31, 0, 0 RGB 31, 31, 31 RGB 0, 0, 0 HighScoresRedStageOBJPalette5: ; 0xdcde8 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 HighScoresRedStageOBJPalette6: ; 0xdcdf0 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 HighScoresRedStageOBJPalette7: ; 0xdcdf8 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 OptionMenuPalettes: ; 0xdce00 OptionMenuBGPalette0: ; 0xdce00 RGB 31, 31, 31 RGB 31, 30, 9 RGB 22, 21, 0 RGB 0, 0, 0 OptionMenuBGPalette1: ; 0xdce08 RGB 31, 31, 31 RGB 31, 29, 0 RGB 31, 8, 0 RGB 0, 0, 0 OptionMenuBGPalette2: ; 0xdce10 RGB 31, 31, 31 RGB 31, 29, 0 RGB 26, 18, 0 RGB 0, 0, 0 OptionMenuBGPalette3: ; 0xdce18 RGB 31, 31, 31 RGB 31, 29, 0 RGB 22, 10, 0 RGB 0, 0, 0 OptionMenuBGPalette4: ; 0xdce20 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 OptionMenuBGPalette5: ; 0xdce28 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 OptionMenuBGPalette6: ; 0xdce30 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 OptionMenuBGPalette7: ; 0xdce38 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 OptionMenuOBJPalette0: ; 0xdce40 RGB 31, 31, 31 RGB 31, 29, 0 RGB 31, 8, 0 RGB 0, 0, 0 OptionMenuOBJPalette1: ; 0xdce48 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 29, 0 RGB 0, 0, 0 OptionMenuOBJPalette2: ; 0xdce50 RGB 31, 31, 31 RGB 31, 31, 11 RGB 26, 23, 0 RGB 0, 0, 0 OptionMenuOBJPalette3: ; 0xdce58 RGB 31, 31, 31 RGB 22, 22, 22 RGB 11, 11, 11 RGB 0, 0, 0 OptionMenuOBJPalette4: ; 0xdce60 RGB 31, 31, 31 RGB 23, 23, 27 RGB 31, 0, 0 RGB 0, 0, 0 OptionMenuOBJPalette5: ; 0xdce68 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 OptionMenuOBJPalette6: ; 0xdce70 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 OptionMenuOBJPalette7: ; 0xdce78 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 dr $dce80, $dcf00 MewtwoBonusPalettes: ; 0xdcf00 MewtwoBonusBGPalette0: ; 0xdcf00 RGB 31, 31, 31 RGB 13, 20, 31 RGB 31, 4, 4 RGB 0, 0, 0 MewtwoBonusBGPalette1: ; 0xdcf08 RGB 31, 31, 31 RGB 15, 15, 21 RGB 6, 6, 11 RGB 0, 0, 0 MewtwoBonusBGPalette2: ; 0xdcf10 RGB 31, 31, 31 RGB 31, 0, 0 RGB 16, 0, 0 RGB 0, 0, 0 MewtwoBonusBGPalette3: ; 0xdcf18 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MewtwoBonusBGPalette4: ; 0xdcf20 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MewtwoBonusBGPalette5: ; 0xdcf28 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MewtwoBonusBGPalette6: ; 0xdcf30 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MewtwoBonusBGPalette7: ; 0xdcf38 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MewtwoBonusOBJPalette0: ; 0xdcf40 RGB 20, 20, 20 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 MewtwoBonusOBJPalette1: ; 0xdcf48 RGB 31, 31, 31 RGB 24, 19, 0 RGB 13, 8, 0 RGB 0, 0, 0 MewtwoBonusOBJPalette2: ; 0xdcf50 RGB 20, 20, 20 RGB 31, 31, 31 RGB 21, 21, 27 RGB 0, 0, 0 MewtwoBonusOBJPalette3: ; 0xdcf58 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MewtwoBonusOBJPalette4: ; 0xdcf60 RGB 20, 20, 20 RGB 31, 25, 31 RGB 31, 0, 31 RGB 0, 0, 0 MewtwoBonusOBJPalette5: ; 0xdcf68 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MewtwoBonusOBJPalette6: ; 0xdcf70 RGB 20, 20, 20 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 MewtwoBonusOBJPalette7: ; 0xdcf78 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 TitlescreenPalettes: ; 0xdcf80 TitlescreenBGPalette0: ; 0xdcf80 RGB 31, 31, 31 RGB 31, 29, 0 RGB 31, 0, 0 RGB 0, 0, 0 TitlescreenBGPalette1: ; 0xdcf88 RGB 31, 31, 31 RGB 0, 12, 26 RGB 31, 0, 0 RGB 0, 0, 0 TitlescreenBGPalette2: ; 0xdcf90 RGB 31, 31, 31 RGB 23, 31, 24 RGB 31, 0, 0 RGB 0, 0, 0 TitlescreenBGPalette3: ; 0xdcf98 RGB 31, 31, 31 RGB 31, 29, 0 RGB 0, 12, 26 RGB 0, 0, 0 TitlescreenBGPalette4: ; 0xdcfa0 RGB 31, 31, 31 RGB 20, 20, 31 RGB 0, 12, 26 RGB 0, 0, 0 TitlescreenBGPalette5: ; 0xdcfa8 RGB 31, 31, 31 RGB 23, 31, 24 RGB 0, 12, 26 RGB 0, 0, 0 TitlescreenBGPalette6: ; 0xdcfb0 RGB 31, 31, 31 RGB 20, 20, 31 RGB 23, 31, 24 RGB 0, 0, 0 TitlescreenBGPalette7: ; 0xdcfb8 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 TitlescreenOBJPalette0: ; 0xdcfc0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 31, 29, 0 RGB 0, 0, 0 TitlescreenOBJPalette1: ; 0xdcfc8 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 0, 0 RGB 0, 0, 0 TitlescreenOBJPalette2: ; 0xdcfd0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 23, 23, 27 RGB 0, 0, 0 TitlescreenOBJPalette3: ; 0xdcfd8 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 TitlescreenOBJPalette4: ; 0xdcfe0 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 TitlescreenOBJPalette5: ; 0xdcfe8 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 TitlescreenOBJPalette6: ; 0xdcff0 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 TitlescreenOBJPalette7: ; 0xdcff8 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 RGB 0, 6, 0 CopyrightScreenPalettes: ; 0xdd000 CopyrightScreenBGPalette0: ; 0xdd000 RGB 31, 31, 31 RGB 22, 22, 22 RGB 11, 11, 11 RGB 0, 0, 0 CopyrightScreenBGPalette1: ; 0xdd008 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenBGPalette2: ; 0xdd010 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenBGPalette3: ; 0xdd018 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenBGPalette4: ; 0xdd020 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenBGPalette5: ; 0xdd028 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenBGPalette6: ; 0xdd030 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenBGPalette7: ; 0xdd038 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenOBJPalette0: ; 0xdd040 RGB 31, 31, 31 RGB 31, 31, 31 RGB 22, 22, 22 RGB 0, 0, 0 CopyrightScreenOBJPalette1: ; 0xdd048 RGB 31, 31, 31 RGB 31, 31, 31 RGB 11, 11, 11 RGB 0, 0, 0 CopyrightScreenOBJPalette2: ; 0xdd050 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenOBJPalette3: ; 0xdd058 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenOBJPalette4: ; 0xdd060 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenOBJPalette5: ; 0xdd068 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenOBJPalette6: ; 0xdd070 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 CopyrightScreenOBJPalette7: ; 0xdd078 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 GengarBonusPalettes: ; 0xdd080 GengarBonusBGPalette0: ; 0xdd080 RGB 31, 31, 31 RGB 13, 20, 31 RGB 31, 4, 4 RGB 0, 0, 0 GengarBonusBGPalette1: ; 0xdd088 RGB 28, 31, 4 RGB 8, 14, 31 RGB 4, 5, 15 RGB 0, 0, 0 GengarBonusBGPalette2: ; 0xdd090 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 GengarBonusBGPalette3: ; 0xdd098 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 GengarBonusBGPalette4: ; 0xdd0a0 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 GengarBonusBGPalette5: ; 0xdd0a8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 GengarBonusBGPalette6: ; 0xdd0b0 RGB 31, 31, 31 RGB 13, 13, 31 RGB 31, 0, 0 RGB 0, 0, 0 GengarBonusBGPalette7: ; 0xdd0b8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 GengarBonusOBJPalette0: ; 0xdd0c0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 GengarBonusOBJPalette1: ; 0xdd0c8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 GengarBonusOBJPalette2: ; 0xdd0d0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 21, 21, 27 RGB 0, 0, 0 GengarBonusOBJPalette3: ; 0xdd0d8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 GengarBonusOBJPalette4: ; 0xdd0e0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 29, 0, 31 RGB 0, 0, 0 GengarBonusOBJPalette5: ; 0xdd0e8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 GengarBonusOBJPalette6: ; 0xdd0f0 RGB 20, 20, 20 RGB 31, 31, 31 RGB 8, 8, 8 RGB 0, 0, 0 GengarBonusOBJPalette7: ; 0xdd0f8 RGB 31, 31, 31 RGB 20, 20, 20 RGB 8, 8, 8 RGB 0, 0, 0 FieldSelectScreenPalettes: ; 0xdd100 FieldSelectScreenBGPalette0: ; 0xdd100 RGB 31, 31, 31 RGB 31, 20, 0 RGB 31, 0, 0 RGB 0, 0, 0 FieldSelectScreenBGPalette1: ; 0xdd108 RGB 31, 31, 31 RGB 0, 22, 31 RGB 0, 0, 31 RGB 0, 0, 0 FieldSelectScreenBGPalette2: ; 0xdd110 RGB 31, 31, 31 RGB 31, 0, 0 RGB 0, 25, 0 RGB 0, 0, 0 FieldSelectScreenBGPalette3: ; 0xdd118 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 FieldSelectScreenBGPalette4: ; 0xdd120 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 FieldSelectScreenBGPalette5: ; 0xdd128 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 FieldSelectScreenBGPalette6: ; 0xdd130 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 FieldSelectScreenBGPalette7: ; 0xdd138 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 RGB 31, 0, 31 FieldSelectScreenOBJPalette0: ; 0xdd140 RGB 10, 10, 10 RGB 31, 31, 31 RGB 21, 21, 21 RGB 0, 0, 0 CinnabarIslandBillboardBGPalette1: ; 0xdd148 RGB 31, 31, 31 RGB 14, 21, 0 RGB 0, 10, 31 RGB 0, 0, 0 CinnabarIslandBillboardBGPalette2: ; 0xdd150 RGB 31, 31, 31 RGB 14, 21, 0 RGB 2, 11, 1 RGB 0, 0, 0 IndigoPlateauBillboardBGPalette1: ; 0xdd158 RGB 31, 31, 31 RGB 11, 18, 31 RGB 7, 9, 19 RGB 0, 0, 0 IndigoPlateauBillboardBGPalette2: ; 0xdd160 RGB 31, 31, 31 RGB 11, 18, 31 RGB 9, 20, 0 RGB 0, 0, 0 PokeBallObjPalette: ; 0xdd168 RGB 21, 21, 21 RGB 31, 31, 31 RGB 31, 5, 4 RGB 0, 0, 0 GreatBallObjPalette: ; 0xdd170 RGB 21, 21, 21 RGB 31, 31, 31 RGB 2, 8, 31 RGB 0, 0, 0 UltraBallObjPalette: ; 0xdd178 RGB 21, 21, 21 RGB 31, 31, 31 RGB 27, 21, 0 RGB 0, 0, 0 MasterBallObjPalette: ; 0xdd180 RGB 21, 21, 21 RGB 31, 31, 31 RGB 21, 3, 21 RGB 0, 0, 0 Data_dd188: dr $dd188, $e0000 SECTION "bank38", ROMX, BANK[$38] dr $e0000, $e4000 ; 0xe0000 SECTION "bank39", ROMX, BANK[$39] Data_e4000: dr $e4000, $e8000 ; 0xe4000 SECTION "bank3a", ROMX, BANK[$3a] Data_e8000: dr $e8000, $e8c00 ; 0xe8000 Data_e8c00: dr $e8c00, $e9100 ; 0xe8000 Data_e9100: dr $e9100, $ec000 ; 0xe8000 SECTION "bank3b", ROMX, BANK[$3b] Data_ec000: dr $ec000, $f0000 ; 0xec000 SECTION "bank3c", ROMX, BANK[$3c] Data_f0000: dr $f0000, $f2400 ; 0xf0000 TiltRightOnlyForce: ; 0xf2400 INCBIN "data/tilt/right_only" TiltUpRightForce: INCBIN "data/tilt/up_right" TiltUpOnlyForce: INCBIN "data/tilt/up_only" TiltUpLeftForce: INCBIN "data/tilt/up_left" TiltLeftOnlyForce: INCBIN "data/tilt/left_only" dr $f3800, $f4000 ; 0xf0000 SECTION "bank3d", ROMX, BANK[$3d] FlipperHorizontalCollisionAttributes: ; 0xf4000 INCBIN "data/collision/flippers/horizontal_attributes_0" SECTION "bank3e", ROMX, BANK[$3e] FlipperHorizontalCollisionAttributes2: ; 0xf8000 INCBIN "data/collision/flippers/horizontal_attributes_1" FlipperVerticalCollisionAttributes: ; 0xfa000 INCBIN "data/collision/flippers/vertical_attributes_0" SECTION "bank3f", ROMX, BANK[$3f] FlipperVerticalCollisionAttributes2: ; 0xfc000 INCBIN "data/collision/flippers/vertical_attributes_1"