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