diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-03-14 18:23:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-14 18:23:07 -0700 |
commit | 5791b7b524fd1c17f7af4dd44472bec7d9941c3e (patch) | |
tree | 7bb6ab16b5c74e39882480d562be735360b307e8 | |
parent | b5de46b8902c37562eb05d02f7166e2d3c231224 (diff) | |
parent | 8bb81d151ab0647ea4e944f59c5d03967a48b8d9 (diff) |
Merge pull request #8 from PikalaxALT/master
Hardcoded pointers
61 files changed, 55745 insertions, 54591 deletions
@@ -1,4 +1,4 @@ -.PHONY: all compare clean +.PHONY: all compare clean tidy .SUFFIXES: .SUFFIXES: .asm .o .gbc .png @@ -6,7 +6,7 @@ # Build Pokemon Pinball. ROMS := pokepinball.gbc -OBJS := main.o wram.o +OBJS := main.o wram.o sram.o # If your default python is 3, you may want to change this to python27. PYTHON := python @@ -38,8 +38,10 @@ compare: $(ROMS) baserom.gbc cmp $^ # Remove files generated by the build process. -clean: +tidy: rm -f $(ROMS) $(OBJS) $(ROMS:.gbc=.sym) + +clean: tidy find . \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pcm' \) -exec rm {} + %.2bpp: %.png diff --git a/audio/engine_0f.asm b/audio/engine_0f.asm new file mode 100755 index 0000000..16b293a --- /dev/null +++ b/audio/engine_0f.asm @@ -0,0 +1,2967 @@ +Func_3c000: ; 0x3c000 + push hl + push de + push bc + push af + call Func_3cb1b + ld hl, wdd01 + ld de, wdeb0 - wdd01 +.clearLoop + xor a + ld [hli], a + dec de + ld a, e + or d + jr nz, .clearLoop + ld hl, rNR50 + xor a + ld [hli], a + ld [hli], a + ld a, $80 + ld [hli], a + ld hl, rNR10 + ld e, $4 +.asm_3c022 + xor a + ld [hli], a + ld [hli], a + ld a, $8 + ld [hli], a + xor a + ld [hli], a + ld a, $80 + ld [hli], a + dec e + jr nz, .asm_3c022 + ld a, $8 + ld [wde9a], a + ld a, $77 + ld [wde98], a + call Func_3cb15 + pop af + pop bc + pop de + pop hl + ret + +Func_3c042: ; 0x3c042 + ld a, [de] + inc de + and $7 + ld [wdeae], a + ld c, a + ld b, $0 + ld hl, WRAMPointerTable_3cc92 + add hl, bc + add hl, bc + ld c, [hl] + inc hl + ld b, [hl] + ld hl, $0002 + add hl, bc + res 0, [hl] + push de + xor a + ld hl, $0000 + add hl, bc + ld e, $32 +.loop + ld [hli], a + dec e + jr nz, .loop + ld hl, $0017 + add hl, bc + xor a + ld [hli], a + inc a + ld [hl], a + ld hl, $0028 + add hl, bc + ld [hl], a + pop de + ld hl, $0005 + add hl, bc + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hl], a + inc de + ld hl, $0000 + add hl, bc + ld a, [wde9b] + ld [hli], a + ld a, [wde9c] + ld [hl], a + ret + + dr $3c08b, $3c090 + +PlaySong_BankF: ; 0x3c090 + push de + call Func_3c000 + pop de + call Func_3cb1b + ld hl, wde9b + ld [hl], e + inc hl + ld [hl], d + ld hl, SongHeaderPointers0F + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + rlca + rlca + and $3 + inc a +.asm_3c0ac + push af + call Func_3c042 + call Func_3cadf + pop af + dec a + jr nz, .asm_3c0ac + call Func_3cb15 + ret + + dr $3c0bb, $3c0c0 + +PlaySoundEffect_BankF: ; 0x3c0c0 + call Func_3cb1b + ld hl, wde9b + ld [hl], e + inc hl + ld [hl], d + ld hl, PointerTable_3e3ce + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + rlca + rlca + and $3 + inc a +.asm_3c0d7 + push af + call Func_3c042 + ld hl, $0002 + add hl, bc + set 3, [hl] + call Func_3cadf + pop af + dec a + jr nz, .asm_3c0d7 + call Func_3cb15 + ret + + dr $3c0ec, $3c0f0 + +PlayCry_BankF: ; 0x3c0f0 +; Plays a Pokemon cry. +; Input: e = mon id + call Func_3cb1b + ld a, e + and a + ret z + dec e + ld d, $0 + ld hl, CryData + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] ; de = base cry id + inc hl + ld a, [hli] + ld [wdea8], a + ld a, [hli] + ld [wdea9], a ; dea8 = cry pitch + ld a, [hli] + ld [wdeaa], a + ld a, [hl] + ld [wdeab], a ; deaa = cry length + ld hl, wde9b + ld [hl], e + inc hl + ld [hl], d + ld hl, CryBasePointers + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + rlca + rlca + and $3 + inc a +.asm_3c12a + push af + call Func_3c042 + ld hl, $0002 + add hl, bc + set 5, [hl] + ld hl, $0003 + add hl, bc + set 4, [hl] + ld hl, $0026 + add hl, bc + ld a, [wdea8] + ld [hli], a + ld a, [wdea9] + ld [hl], a + ld a, [wde97] + and $3 + cp $3 + jr nc, .asm_3c15b + ld hl, $0017 + add hl, bc + ld a, [wdeaa] + ld [hli], a + ld a, [wdeab] + ld [hl], a +.asm_3c15b + call Func_3cadf + pop af + dec a + jr nz, .asm_3c12a + ld a, [wdeac] + and a + jr nz, .asm_3c173 + ld a, [wde98] + ld [wdeac], a + ld a, $77 + ld [wde98], a +.asm_3c173 + ld a, $1 + ld [wdead], a + call Func_3cb15 + ret + + dr $3c17c, $3c180 + +Func_3c180: ; 0x3c180 + ld a, [wdd00] + and a + ret z + xor a + ld [wde97], a + ld [wde99], a + ld bc, wdd01 +.asm_3c18f + ld hl, $0002 + add hl, bc + bit 0, [hl] + jp z, .asm_3c22d + ld hl, $0014 + add hl, bc + ld a, [hl] + cp $2 + jr c, .asm_3c1a4 + dec [hl] + jr .asm_3c1c1 + +.asm_3c1a4 + ld hl, $001c + add hl, bc + ld a, [hl] + ld hl, $001b + add hl, bc + ld [hl], a + ld hl, $0025 + add hl, bc + ld a, [hl] + ld hl, $0024 + add hl, bc + ld [hl], a + ld hl, $0003 + add hl, bc + res 1, [hl] + call Func_3c670 +.asm_3c1c1 + ld hl, $000d + add hl, bc + ld a, [hli] + ld [wde91], a + ld a, [hli] + ld [wde92], a + ld a, [hli] + ld [wde93], a + ld a, [hl] + ld [wde94], a + call Func_3c4f0 + call Func_3c632 + ld a, [wdead] + and a + jr z, .asm_3c20a + ld a, [wde97] + cp $4 + jr nc, .asm_3c219 + ld hl, wddcb + bit 0, [hl] + jr nz, .asm_3c204 + ld hl, wddfd + bit 0, [hl] + jr nz, .asm_3c204 + ld hl, wde2f + bit 0, [hl] + jr nz, .asm_3c204 + ld hl, wde61 + bit 0, [hl] + jr z, .asm_3c20a +.asm_3c204 + ld hl, $000b + add hl, bc + set 5, [hl] +.asm_3c20a + ld a, [wde97] + cp $4 + jr nc, .asm_3c219 + ld hl, $00ca + add hl, bc + bit 0, [hl] + jr nz, .asm_3c227 +.asm_3c219 + call Func_3c24d + ld hl, $0019 + add hl, bc + ld a, [wde99] + or [hl] + ld [wde99], a +.asm_3c227 + ld hl, $000b + add hl, bc + xor a + ld [hl], a +.asm_3c22d + ld hl, $0032 + add hl, bc + ld c, l + ld b, h + ld a, [wde97] + inc a + ld [wde97], a + cp $8 + jp nz, .asm_3c18f + call Func_3c40d + ld a, [wde98] + ld [rNR50], a + ld a, [wde99] + ld [rNR51], a + ret + +Func_3c24d: ; 0x3c24d + ld hl, PointerTable_3c25e + ld a, [wde97] + and $7 + add a + ld e, a + ld d, $0 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +PointerTable_3c25e: ; 0x3c25e + dw Func_3c26e + dw Func_3c2e0 + dw Func_3c349 + dw Func_3c3cf + dw Func_3c26e + dw Func_3c2e0 + dw Func_3c349 + dw Func_3c3cf + +Func_3c26e: ; 0x3c26e + ld hl, $000b + add hl, bc + bit 3, [hl] + jr z, .asm_3c27b + ld a, [wde9a] + ld [rNR10], a +.asm_3c27b + bit 5, [hl] + jr nz, .asm_3c2ba + bit 4, [hl] + jr nz, .asm_3c2c6 + bit 6, [hl] + jr nz, .asm_3c2b4 + bit 1, [hl] + jr z, .asm_3c295 + ld a, [wde93] + ld [rNR13], a + ld a, [wde94] + ld [rNR14], a +.asm_3c295 + bit 2, [hl] + jr z, .asm_3c2a5 + ld a, [wde92] + ld [rNR12], a + ld a, [wde94] + or $80 + ld [rNR14], a +.asm_3c2a5 + bit 0, [hl] + ret z + ld a, [wde91] + ld d, a + ld a, [rNR11] + and $3f + or d + ld [rNR11], a + ret + +.asm_3c2b4 + ld a, [wde93] + ld [rNR13], a + ret + +.asm_3c2ba + ld a, $8 + ld [rNR12], a + ld a, [wde94] + or $80 + ld [rNR14], a + ret + +.asm_3c2c6 + ld hl, wde91 + ld a, $3f + or [hl] + ld [rNR11], a + ld a, [wde92] + ld [rNR12], a + ld a, [wde93] + ld [rNR13], a + ld a, [wde94] + or $80 + ld [rNR14], a + ret + +Func_3c2e0: ; 0x3c2e0 + ld hl, $000b + add hl, bc + bit 5, [hl] + jr nz, .asm_3c323 + bit 4, [hl] + jr nz, .asm_3c32f + bit 6, [hl] + jr nz, .asm_3c31d + bit 1, [hl] + jr z, .asm_3c2fe + ld a, [wde93] + ld [rNR23], a + ld a, [wde94] + ld [rNR24], a +.asm_3c2fe + bit 2, [hl] + jr z, .asm_3c30e + ld a, [wde92] + ld [rNR22], a + ld a, [wde94] + or $80 + ld [rNR24], a +.asm_3c30e + bit 0, [hl] + ret z + ld a, [wde91] + ld d, a + ld a, [rNR21] + and $3f + or d + ld [rNR21], a + ret + +.asm_3c31d + ld a, [wde93] + ld [rNR23], a + ret + +.asm_3c323 + ld a, $8 + ld [rNR22], a + ld a, [wde94] + or $80 + ld [rNR24], a + ret + +.asm_3c32f + ld hl, wde91 + ld a, $3f + or [hl] + ld [rNR21], a + ld a, [wde92] + ld [rNR22], a + ld a, [wde93] + ld [rNR23], a + ld a, [wde94] + or $80 + ld [rNR24], a + ret + +Func_3c349: ; 0x3c349 + ld hl, $000b + add hl, bc + bit 5, [hl] + jr nz, .asm_3c387 + bit 4, [hl] + jr nz, .asm_3c38b + bit 6, [hl] + jr nz, .asm_3c381 + bit 1, [hl] + jr z, .asm_3c367 + ld a, [wde93] + ld [rNR33], a + ld a, [wde94] + ld [rNR34], a +.asm_3c367 + bit 2, [hl] + ret z + xor a + ld [rNR30], a + call LoadWavePattern + ld a, $80 + ld [rNR30], a + ld a, [wde93] + ld [rNR33], a + ld a, [wde94] + or $80 + ld [rNR34], a + ret + +.asm_3c381 + ld a, [wde93] + ld [rNR33], a + ret + +.asm_3c387 + xor a + ld [rNR30], a + ret + +.asm_3c38b + ld a, $3f + ld [rNR31], a + xor a + ld [rNR30], a + call LoadWavePattern + ld a, $80 + ld [rNR30], a + ld a, [wde93] + ld [rNR33], a + ld a, [wde94] + or $80 + ld [rNR34], a + ret + +LoadWavePattern: ; 0x3c3a6 + push hl + ld a, [wde92] + and $f + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + add hl, hl + ld de, WavePatterns_BankF + add hl, de + ld de, rWave_0 + push bc + ld b, $10 +.loop + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .loop + pop bc + pop hl + ld a, [wde92] + and $f0 + sla a + ld [rNR32], a ; set volume of wave channel + ret + +Func_3c3cf: ; 0x3c3cf + ld hl, $000b + add hl, bc + bit 5, [hl] + jr nz, .asm_3c3f1 + bit 4, [hl] + jr nz, .asm_3c3fa + bit 1, [hl] + jr z, .asm_3c3e4 + ld a, [wde93] + ld [rNR43], a +.asm_3c3e4 + bit 2, [hl] + ret z + ld a, [wde92] + ld [rNR42], a + ld a, $80 + ld [rNR44], a + ret + +.asm_3c3f1 + ld a, $8 + ld [rNR42], a + ld a, $80 + ld [rNR44], a + ret + +.asm_3c3fa + ld a, $3f + ld [rNR41], a + ld a, [wde92] + ld [rNR42], a + ld a, [wde93] + ld [rNR43], a + ld a, $80 + ld [rNR44], a + ret + +Func_3c40d: ; 0x3c40d + ld a, [wdea2] + and a + ret z + ld a, [wdea3] + and a + jr z, .asm_3c41d + dec a + ld [wdea3], a + ret + +.asm_3c41d + ld a, [wdea2] + ld d, a + and $7f + ld [wdea3], a + ld a, [wde98] + and $7 + bit 7, d + jr nz, .asm_3c448 + and a + jr z, .asm_3c435 + dec a + jr .asm_3c454 + +.asm_3c435 + ld a, [wdea4] + ld e, a + ld a, [wdea5] + ld d, a + push bc + call PlaySong_BankF + pop bc + ld hl, wdea2 + set 7, [hl] + ret + +.asm_3c448 + cp $7 + jr nc, .asm_3c44f + inc a + jr .asm_3c454 + +.asm_3c44f + xor a + ld [wdea2], a + ret + +.asm_3c454 + ld d, a + swap a + or d + ld [wde98], a + ret + +Func_3c45c: ; 0x3c45c + ld hl, $0003 + add hl, bc + bit 1, [hl] + ret z + ld hl, $0014 + add hl, bc + ld a, [hl] + ld hl, wde95 + sub [hl] + jr nc, .asm_3c470 + ld a, $1 +.asm_3c470 + ld [hl], a + ld hl, $000f + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $001f + add hl, bc + ld a, e + sub [hl] + ld e, a + ld a, d + sbc $0 + ld d, a + ld hl, $0020 + add hl, bc + sub [hl] + jr nc, .asm_3c4ab + ld hl, $0004 + add hl, bc + set 1, [hl] + ld hl, $000f + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $001f + add hl, bc + ld a, [hl] + sub e + ld e, a + ld a, d + sbc $0 + ld d, a + ld hl, $0020 + add hl, bc + ld a, [hl] + sub d + ld d, a + jr .asm_3c4c9 + +.asm_3c4ab + ld hl, $0004 + add hl, bc + res 1, [hl] + ld hl, $000f + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $001f + add hl, bc + ld a, e + sub [hl] + ld e, a + ld a, d + sbc $0 + ld d, a + ld hl, $0020 + add hl, bc + sub [hl] + ld d, a +.asm_3c4c9 + push bc + ld hl, wde95 + ld b, $0 +.asm_3c4cf + inc b + ld a, e + sub [hl] + ld e, a + jr nc, .asm_3c4cf + ld a, d + and a + jr z, .asm_3c4dc + dec d + jr .asm_3c4cf + +.asm_3c4dc + ld a, e + add [hl] + ld d, b + pop bc + ld hl, $0021 + add hl, bc + ld [hl], d + ld hl, $0022 + add hl, bc + ld [hl], a + ld hl, $0023 + add hl, bc + xor a + ld [hl], a + + ; fall through + +Func_3c4f0: ; 0x3c4f0 + ld hl, $0003 + add hl, bc + bit 2, [hl] + jr z, .asm_3c50b + ld hl, $001a + add hl, bc + ld a, [hl] + rlca + rlca + ld [hl], a + and $c0 + ld [wde91], a + ld hl, $000b + add hl, bc + set 0, [hl] +.asm_3c50b + ld hl, $0003 + add hl, bc + bit 4, [hl] + jr z, .asm_3c529 + ld hl, $0026 + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, wde93 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, wde93 + ld [hl], e + inc hl + ld [hl], d +.asm_3c529 + ld hl, $0003 + add hl, bc + bit 1, [hl] + jp z, .asm_3c5c1 + ld hl, $000f + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0004 + add hl, bc + bit 1, [hl] + jr z, .asm_3c574 + ld hl, $0021 + add hl, bc + ld l, [hl] + ld h, $0 + add hl, de + ld d, h + ld e, l + ld hl, $0022 + add hl, bc + ld a, [hl] + ld hl, $0023 + add hl, bc + add [hl] + ld [hl], a + ld a, $0 + adc e + ld e, a + ld a, $0 + adc d + ld d, a + ld hl, $0020 + add hl, bc + ld a, [hl] + cp d + jp c, .asm_3c5a1 + jr nz, .asm_3c5b4 + ld hl, $001f + add hl, bc + ld a, [hl] + cp e + jp c, .asm_3c5a1 + jr .asm_3c5b4 + +.asm_3c574 + ld a, e + ld hl, $0021 + add hl, bc + ld e, [hl] + sub e + ld e, a + ld a, d + sbc $0 + ld d, a + ld hl, $0022 + add hl, bc + ld a, [hl] + add a + ld [hl], a + ld a, e + sbc $0 + ld e, a + ld a, d + sbc $0 + ld d, a + ld hl, $0020 + add hl, bc + ld a, d + cp [hl] + jr c, .asm_3c5a1 + jr nz, .asm_3c5b4 + ld hl, $001f + add hl, bc + ld a, e + cp [hl] + jr nc, .asm_3c5b4 +.asm_3c5a1 + ld hl, $0003 + add hl, bc + res 1, [hl] + ld hl, $0004 + add hl, bc + res 1, [hl] + ld hl, $0020 + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] +.asm_3c5b4 + ld hl, $000f + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld hl, $000b + add hl, bc + set 1, [hl] +.asm_3c5c1 + ld hl, $0003 + add hl, bc + bit 0, [hl] + jr z, .asm_3c61a + ld hl, $001b + add hl, bc + ld a, [hl] + and a + jr nz, .asm_3c5e3 + ld hl, $001d + add hl, bc + ld a, [hl] + and a + jr z, .asm_3c61a + ld d, a + ld hl, $001e + add hl, bc + ld a, [hl] + and $f + jr z, .asm_3c5e6 +.asm_3c5e3 + dec [hl] + jr .asm_3c61a + +.asm_3c5e6 + ld a, [hl] + swap [hl] + or [hl] + ld [hl], a + ld a, [wde93] + ld e, a + ld hl, $0004 + add hl, bc + bit 0, [hl] + jr z, .asm_3c605 + res 0, [hl] + ld a, d + and $f + ld d, a + ld a, e + sub d + jr nc, .asm_3c611 + ld a, $0 + jr .asm_3c611 + +.asm_3c605 + set 0, [hl] + ld a, d + and $f0 + swap a + add e + jr nc, .asm_3c611 + ld a, $ff +.asm_3c611 + ld [wde93], a + ld hl, $000b + add hl, bc + set 6, [hl] +.asm_3c61a + ld hl, $0003 + add hl, bc + bit 3, [hl] + ret z + ld hl, $0024 + add hl, bc + ld a, [hl] + and a + jr z, .asm_3c62b + dec [hl] + ret + +.asm_3c62b + ld hl, $000b + add hl, bc + set 5, [hl] + ret + +Func_3c632: ; 0x3c632 + ld hl, $0002 + add hl, bc + bit 4, [hl] + ret z + ld a, [wde9f] + and a + jr z, .asm_3c644 + dec a + ld [wde9f], a + ret + +.asm_3c644 + ld hl, wde9d + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + inc de + cp $ff + ret z + and $f + inc a + ld [wde9f], a + ld a, [de] + inc de + ld [wde92], a + ld a, [de] + inc de + ld [wde93], a + xor a + ld [wde94], a + ld hl, wde9d + ld [hl], e + inc hl + ld [hl], d + ld hl, $000b + add hl, bc + set 4, [hl] + ret + +Func_3c670: ; 0x3c670 + call Func_3ca10 + cp $ff + jr z, .asm_3c6c9 + cp $d0 + jr c, .asm_3c680 +.asm_3c67b + call Func_3c786 + jr Func_3c670 + +.asm_3c680 + ld hl, $0002 + add hl, bc + bit 3, [hl] + jp nz, Func_3c723 + bit 5, [hl] + jp nz, Func_3c723 + bit 4, [hl] + jp nz, Func_3c750 + ld a, [wde96] + and $f + call Func_3ca5b + ld a, [wde96] + swap a + and $f + jr z, .asm_3c6c2 + ld hl, $0011 + add hl, bc + ld [hl], a + ld e, a + ld hl, $0012 + add hl, bc + ld d, [hl] + call Func_3ca2b + ld hl, $000f + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld hl, $000b + add hl, bc + set 4, [hl] + jp Func_3c45c + +.asm_3c6c2 + ld hl, $000b + add hl, bc + set 5, [hl] + ret + +.asm_3c6c9 + ld hl, $0002 + add hl, bc + bit 1, [hl] + jr nz, .asm_3c67b + ld a, [wde97] + cp $4 + jr nc, .asm_3c6e0 + ld hl, $00ca + add hl, bc + bit 0, [hl] + jr nz, .asm_3c6f6 +.asm_3c6e0 + ld hl, $0002 + add hl, bc + bit 5, [hl] + call nz, Func_3c704 + ld a, [wde97] + cp $4 + jr nz, .asm_3c6f6 + xor a + ld [rNR10], a + ld [wde9a], a +.asm_3c6f6 + ld hl, $0002 + add hl, bc + res 0, [hl] + ld hl, $0000 + add hl, bc + xor a + ld [hli], a + ld [hli], a + ret + +Func_3c704: ; 0x3c704 + ld a, [wde97] + cp $4 + ret nz + xor a + ld hl, wde21 + ld [hli], a + ld [hl], a + ld hl, wde85 + ld [hli], a + ld [hl], a + ld a, [wdeac] + ld [wde98], a + xor a + ld [wdeac], a + ld [wdead], a + ret + +Func_3c723: ; 0x3c723 + ld hl, $000b + add hl, bc + set 4, [hl] + ld a, [wde96] + call Func_3ca5b + call Func_3ca10 + ld hl, $000e + add hl, bc + ld [hl], a + call Func_3ca10 + ld hl, $000f + add hl, bc + ld [hl], a + ld a, [wde97] + and $3 + cp $3 + ret z + call Func_3ca10 + ld hl, $0010 + add hl, bc + ld [hl], a + ret + +Func_3c750: ; 0x3c750 + ld a, [wde97] + cp $3 + ret nz + ld a, [wde96] + and $f + call Func_3ca5b + ld a, [wdea1] + ld e, a + ld d, $0 + ld hl, Data_3cba2 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wde96] + swap a + and $f + ret z + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld [wde9d], a + ld a, [hl] + ld [wde9e], a + xor a + ld [wde9f], a + ret + +Func_3c786: ; 0x3c786 + ld a, [wde96] + sub $d0 + ld e, a + ld d, $0 + ld hl, PointerTable_3c797 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +PointerTable_3c797: ; 0x3c797 + dw Func_3c9b6 + dw Func_3c9b6 + dw Func_3c9b6 + dw Func_3c9b6 + dw Func_3c9b6 + dw Func_3c9b6 + dw Func_3c9b6 + dw Func_3c9b6 + dw Func_3c973 + dw Func_3c9c1 + dw Func_3c9aa + dw Func_3c994 + dw Func_3c9a1 + dw Func_3c987 + dw Func_3c939 + dw Func_3c951 + dw Func_3c8ff + dw Func_3c8c4 + dw Func_3c8b5 + dw Func_3c95f + dw Func_3c9ca + dw Func_3c9da + dw Func_3c926 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c9e9 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3ca05 + dw Func_3ca0b + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c7f7 + dw Func_3c885 + dw Func_3c88e + dw Func_3c833 + dw Func_3c843 + dw Func_3c80d + dw Func_3c7f8 + +Func_3c7f7: ; 0x3c7f7 + ret + +Func_3c7f8: ; 0x3c7f8 + ld hl, $0002 + add hl, bc + res 1, [hl] + ld hl, $0007 + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0005 + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +Func_3c80d: ; 0x3c80d + call Func_3ca10 + ld e, a + call Func_3ca10 + ld d, a + push de + ld hl, $0005 + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0007 + add hl, bc + ld [hl], e + inc hl + ld [hl], d + pop de + ld hl, $0005 + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld hl, $0002 + add hl, bc + set 1, [hl] + ret + +Func_3c833: ; 0x3c833 + call Func_3ca10 + ld e, a + call Func_3ca10 + ld d, a + ld hl, $0005 + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +Func_3c843: ; 0x3c843 + call Func_3ca10 + ld hl, $0002 + add hl, bc + bit 2, [hl] + jr nz, .asm_3c859 + and a + jr z, .asm_3c862 + dec a + set 2, [hl] + ld hl, $0016 + add hl, bc + ld [hl], a +.asm_3c859 + ld hl, $0016 + add hl, bc + ld a, [hl] + and a + jr z, .asm_3c872 + dec [hl] +.asm_3c862 + call Func_3ca10 + ld e, a + call Func_3ca10 + ld d, a + ld hl, $0005 + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +.asm_3c872 + ld hl, $0002 + add hl, bc + res 2, [hl] + ld hl, $0005 + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + inc de + inc de + ld [hl], d + dec hl + ld [hl], e + ret + +Func_3c885: ; 0x3c885 + call Func_3ca10 + ld hl, $000c + add hl, bc + ld [hl], a + ret + +Func_3c88e: ; 0x3c88e + call Func_3ca10 + ld hl, $000c + add hl, bc + cp [hl] + jr z, .asm_3c8a5 + ld hl, $0005 + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + inc de + inc de + ld [hl], d + dec hl + ld [hl], e + ret + +.asm_3c8a5 + call Func_3ca10 + ld e, a + call Func_3ca10 + ld d, a + ld hl, $0005 + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +Func_3c8b5: ; 0x3c8b5 + call Func_3ca10 + ld hl, $0025 + add hl, bc + ld [hl], a + ld hl, $0003 + add hl, bc + set 3, [hl] + ret + +Func_3c8c4: ; 0x3c8c4 + ld hl, $0003 + add hl, bc + set 0, [hl] + ld hl, $0004 + add hl, bc + res 0, [hl] + call Func_3ca10 + ld hl, $001c + add hl, bc + ld [hl], a + ld hl, $001b + add hl, bc + ld [hl], a + call Func_3ca10 + ld hl, $001d + add hl, bc + ld d, a + and $f0 + swap a + srl a + ld e, a + adc $0 + swap a + or e + ld [hl], a + ld hl, $001e + add hl, bc + ld a, d + and $f + ld d, a + swap a + or d + ld [hl], a + ret + +Func_3c8ff: ; 0x3c8ff + call Func_3ca10 + ld [wde95], a + call Func_3ca10 + ld d, a + and $f + ld e, a + ld a, d + swap a + and $f + ld d, a + call Func_3ca2b + ld hl, $001f + add hl, bc + ld [hl], e + ld hl, $0020 + add hl, bc + ld [hl], d + ld hl, $0003 + add hl, bc + set 1, [hl] + ret + +Func_3c926: ; 0x3c926 + ld hl, $0003 + add hl, bc + set 4, [hl] + ld hl, $0027 + add hl, bc + call Func_3ca10 + ld [hld], a + call Func_3ca10 + ld [hl], a + ret + +Func_3c939: ; 0x3c939 + ld hl, $0003 + add hl, bc + set 2, [hl] + call Func_3ca10 + rrca + rrca + ld hl, $001a + add hl, bc + ld [hl], a + and $c0 + ld hl, $000d + add hl, bc + ld [hl], a + ret + +Func_3c951: ; 0x3c951 + ld hl, $0002 + add hl, bc + bit 3, [hl] + jr z, .asm_3c95c + res 3, [hl] + ret + +.asm_3c95c + set 3, [hl] + ret + +Func_3c95f: ; 0x3c95f + ld hl, $0002 + add hl, bc + bit 4, [hl] + jr z, .asm_3c96a + res 4, [hl] + ret + +.asm_3c96a + set 4, [hl] + call Func_3ca10 + ld [wdea1], a + ret + +Func_3c973: ; 0x3c973 + call Func_3ca10 + ld hl, $0028 + add hl, bc + ld [hl], a + ld a, [wde97] + and $3 + cp $3 + ret z + call Func_3c9a1 + ret + +Func_3c987: ; 0x3c987 + call Func_3ca10 + ld [wde9a], a + ld hl, $000b + add hl, bc + set 3, [hl] + ret + +Func_3c994: ; 0x3c994 + call Func_3ca10 + rrca + rrca + and $c0 + ld hl, $000d + add hl, bc + ld [hl], a + ret + +Func_3c9a1: ; 0x3c9a1 + call Func_3ca10 + ld hl, $000e + add hl, bc + ld [hl], a + ret + +Func_3c9aa: ; 0x3c9aa + call Func_3ca10 + ld d, a + call Func_3ca10 + ld e, a + call Func_3ca95 + ret + +Func_3c9b6: ; 0x3c9b6 + ld hl, $0012 + add hl, bc + ld a, [wde96] + and $7 + ld [hl], a + ret + +Func_3c9c1: ; 0x3c9c1 + call Func_3ca10 + ld hl, $0013 + add hl, bc + ld [hl], a + ret + +Func_3c9ca: ; 0x3c9ca + ld a, [wde97] + call Func_3caf4 + call Func_3ca10 + ld hl, $0019 + add hl, bc + and [hl] + ld [hl], a + ret + +Func_3c9da: ; 0x3c9da + call Func_3ca10 + ld a, [wdea2] + and a + ret nz + ld a, [wde96] + ld [wde98], a + ret + +Func_3c9e9: ; 0x3c9e9 + call Func_3ca10 + ld e, a + cp $80 + jr nc, .asm_3c9f5 + ld d, $0 + jr .asm_3c9f7 + +.asm_3c9f5 + ld d, $ff +.asm_3c9f7 + ld hl, $0017 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + call Func_3ca95 + ret + +Func_3ca05: ; 0x3ca05 + ld a, $1 + ld [wdead], a + ret + +Func_3ca0b: ; 0x3ca0b + xor a + ld [wdead], a + ret + +Func_3ca10: ; 0x3ca10 + push hl + push de + ld hl, $0005 + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + ld [wde96], a + inc de + ld hl, $0005 + add hl, bc + ld [hl], e + inc hl + ld [hl], d + pop de + pop hl + ld a, [wde96] + ret + +Func_3ca2b: ; 0x3ca2b + ld hl, $0013 + add hl, bc + ld a, [hl] + swap a + and $f + add d + push af + ld hl, $0013 + add hl, bc + ld a, [hl] + and $f + ld l, a + ld d, $0 + ld h, d + add hl, de + add hl, hl + ld de, Data_3cb20 + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + pop af +.asm_3ca4b + cp $7 + jr nc, .asm_3ca56 + sra d + rr e + inc a + jr .asm_3ca4b + +.asm_3ca56 + ld a, d + and $7 + ld d, a + ret + +Func_3ca5b: ; 0x3ca5b + inc a + ld e, a + ld d, $0 + ld hl, $0028 + add hl, bc + ld a, [hl] + ld l, $0 + call Func_3ca86 + ld a, l + ld hl, $0017 + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0015 + add hl, bc + ld l, [hl] + call Func_3ca86 + ld e, l + ld d, h + ld hl, $0015 + add hl, bc + ld [hl], e + ld hl, $0014 + add hl, bc + ld [hl], d + ret + +Func_3ca86: ; 0x3ca86 + ld h, $0 +.asm_3ca88 + srl a + jr nc, .asm_3ca8d + add hl, de +.asm_3ca8d + sla e + rl d + and a + jr nz, .asm_3ca88 + ret + +Func_3ca95: ; 0x3ca95 + push bc + ld a, [wde97] + cp $4 + jr nc, .asm_3cab7 + ld bc, wdd01 + call Func_3cad1 + ld bc, wdd33 + call Func_3cad1 + ld bc, wdd65 + call Func_3cad1 + ld bc, wdd97 + call Func_3cad1 + jr .asm_3cacf + +.asm_3cab7 + ld bc, wddc9 + call Func_3cad1 + ld bc, wddfb + call Func_3cad1 + ld bc, wde2d + call Func_3cad1 + ld bc, wde5f + call Func_3cad1 +.asm_3cacf + pop bc + ret + +Func_3cad1: ; 0x3cad1 + ld hl, $0017 + add hl, bc + ld [hl], e + inc hl + ld [hl], d + xor a + ld hl, $0015 + add hl, bc + ld [hl], a + ret + +Func_3cadf: ; 0x3cadf + call Func_3cb06 + ld a, [wdeae] + jr .asm_3caea + + ld a, [wde97] +.asm_3caea + call Func_3caf4 + ld hl, $0002 + add hl, bc + set 0, [hl] + ret + +Func_3caf4: ; 0x3caf4 + push de + and $3 + ld e, a + ld d, $0 + ld hl, Data_3cc8e + add hl, de + ld a, [hl] + ld hl, $0019 + add hl, bc + ld [hl], a + pop de + ret + +Func_3cb06: ; 0x3cb06 + ld a, [wdeae] + and $3 + cp $0 + ret nz + xor a + ld [rNR10], a + ld [wde9a], a + ret + +Func_3cb15: ; 0x3cb15 + ld a, $1 + ld [wdd00], a + ret + +Func_3cb1b: ; 0x3cb1b + xor a + ld [wdd00], a + ret + +Data_3cb20: + dr $3cb20, $3cb52 + +WavePatterns_BankF: +WavePattern0_BankF: ; 0x3cb52 + db $02, $46, $8A, $CE, $FF, $FE, $ED, $DC, $CB, $A9, $87, $65, $44, $33, $22, $11 +WavePattern1_BankF: ; 0x3cb62 + db $02, $46, $8A, $CE, $EF, $FF, $FE, $EE, $DD, $CB, $A9, $87, $65, $43, $22, $11 +WavePattern2_BankF: ; 0x3cb72 + db $01, $23, $43, $21, $FE, $CA, $8A, $CE, $01, $23, $43, $21, $FE, $CA, $8A, $CE +WavePattern3_BankF: ; 0x3cb82 + db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE +WavePattern4_BankF: ; 0x3cb92 + db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE + +Data_3cba2: + dr $3cba2, $3cc8e + +Data_3cc8e: ; 0x3cc8e + db $11, $22, $44, $88 + +WRAMPointerTable_3cc92: ; 0x3cc92 + dw $DD01 + dw $DD33 + dw $DD65 + dw $DD97 + + dr $3cc9a, $3cca2 + +SongHeaderPointers0F: ; 0x3cca2 + dw Music_Nothing0F + dw Music_BlueField + dw Music_CatchEmRed + dw Music_HurryUpRed + dw Music_Pokedex + dw Music_GastlyInTheGraveyard + dw Music_HaunterInTheGraveyard + dw Music_GengarInTheGraveyard +; 0x3ccb2 + +INCLUDE "audio/music/nothing0f.asm" +INCLUDE "audio/music/bluefield.asm" +INCLUDE "audio/music/catchemred.asm" +INCLUDE "audio/music/pokedex.asm" +INCLUDE "audio/music/hurryupred.asm" +INCLUDE "audio/music/gastlyinthegraveyard.asm" +INCLUDE "audio/music/haunterinthegraveyard.asm" +INCLUDE "audio/music/gengarinthegraveyard.asm" + +PointerTable_3e3ce: ; 0x3e3ce + dw Data_3e46a + dw Data_3e480 + dw Data_3e49a + dw Data_3e4ba + dw Data_3e4d0 + dw Data_3e4e0 + dw Data_3e4f0 + dw Data_3e500 + dw Data_3e51a + dw Data_3e52e + dw Data_3e544 + dw Data_3e554 + dw Data_3e57c + dw Data_3e589 + dw Data_3e59f + dw Data_3e5b5 + dw Data_3e5c5 + dw Data_3e5e2 + dw Data_3e5f4 + dw Data_3e606 + dw Data_3e618 + dw Data_3e62a + dw Data_3e63c + dw Data_3e64e + dw Data_3e660 + dw Data_3e672 + dw Data_3e684 + dw Data_3e696 + dw Data_3e6a8 + dw Data_3e6ba + dw Data_3e6cc + dw Data_3e6de + dw Data_3e6f0 + dw Data_3e702 + dw Data_3e71a + dw Data_3e75d + dw Data_3e810 + dw Data_3e8ae + dw Data_3e96d + dw Data_3ea25 + dw Data_3ea68 + dw Data_3ea82 + dw Data_3eb17 + dw Data_3ebf9 + dw Data_3ec17 + dw Data_3ec31 + dw Data_3ec4b + dw Data_3ec7d + dw Data_3ec8f + dw Data_3eca7 + dw Data_3ecb7 + dw Data_3ecd1 + dw Data_3ece9 + dw Data_3ecff + dw Data_3ed15 + dw Data_3ed31 + dw Data_3ed4d + dw Data_3ed65 + dw Data_3ed78 + dw Data_3ed98 + dw Data_3edb0 + dw Data_3edc0 + dw Data_3edd0 + dw Data_3ede3 + dw Data_3edf3 + dw Data_3ee1c + dw Data_3ee32 + dw Data_3ee48 + dw Data_3ee5e + dw Data_3ee78 + dw Data_3ee92 + dw Data_3eeaa + dw Data_3eec4 + dw Data_3eed4 + dw Data_3eeea + dw Data_3ef00 + dw Data_3ef16 + dw Data_3ef27 + +Data_3e46a: + dr $3e46a, $3e480 + +Data_3e480: + dr $3e480, $3e49a + +Data_3e49a: + dr $3e49a, $3e4ba + +Data_3e4ba: + dr $3e4ba, $3e4d0 + +Data_3e4d0: + dr $3e4d0, $3e4e0 + +Data_3e4e0: + dr $3e4e0, $3e4f0 + +Data_3e4f0: + dr $3e4f0, $3e500 + +Data_3e500: + dr $3e500, $3e51a + +Data_3e51a: + dr $3e51a, $3e52e + +Data_3e52e: + dr $3e52e, $3e544 + +Data_3e544: + dr $3e544, $3e554 + +Data_3e554: + dr $3e554, $3e57c + +Data_3e57c: + dr $3e57c, $3e589 + +Data_3e589: + dr $3e589, $3e59f + +Data_3e59f: + dr $3e59f, $3e5b5 + +Data_3e5b5: + dr $3e5b5, $3e5c5 + +Data_3e5c5: + dr $3e5c5, $3e5e2 + +Data_3e5e2: + dr $3e5e2, $3e5f4 + +Data_3e5f4: + dr $3e5f4, $3e606 + +Data_3e606: + dr $3e606, $3e618 + +Data_3e618: + dr $3e618, $3e62a + +Data_3e62a: + dr $3e62a, $3e63c + +Data_3e63c: + dr $3e63c, $3e64e + +Data_3e64e: + dr $3e64e, $3e660 + +Data_3e660: + dr $3e660, $3e672 + +Data_3e672: + dr $3e672, $3e684 + +Data_3e684: + dr $3e684, $3e696 + +Data_3e696: + dr $3e696, $3e6a8 + +Data_3e6a8: + dr $3e6a8, $3e6ba + +Data_3e6ba: + dr $3e6ba, $3e6cc + +Data_3e6cc: + dr $3e6cc, $3e6de + +Data_3e6de: + dr $3e6de, $3e6f0 + +Data_3e6f0: + dr $3e6f0, $3e702 + +Data_3e702: + dr $3e702, $3e71a + +Data_3e71a: + dr $3e71a, $3e75d + +Data_3e75d: + dr $3e75d, $3e810 + +Data_3e810: + dr $3e810, $3e8ae + +Data_3e8ae: + dr $3e8ae, $3e96d + +Data_3e96d: + dr $3e96d, $3ea25 + +Data_3ea25: + dr $3ea25, $3ea68 + +Data_3ea68: + dr $3ea68, $3ea82 + +Data_3ea82: + dr $3ea82, $3eb17 + +Data_3eb17: + dr $3eb17, $3ebf9 + +Data_3ebf9: + dr $3ebf9, $3ec17 + +Data_3ec17: + dr $3ec17, $3ec31 + +Data_3ec31: + dr $3ec31, $3ec4b + +Data_3ec4b: + dr $3ec4b, $3ec7d + +Data_3ec7d: + dr $3ec7d, $3ec8f + +Data_3ec8f: + dr $3ec8f, $3eca7 + +Data_3eca7: + dr $3eca7, $3ecb7 + +Data_3ecb7: + dr $3ecb7, $3ecd1 + +Data_3ecd1: + dr $3ecd1, $3ece9 + +Data_3ece9: + dr $3ece9, $3ecff + +Data_3ecff: + dr $3ecff, $3ed15 + +Data_3ed15: + dr $3ed15, $3ed31 + +Data_3ed31: + dr $3ed31, $3ed4d + +Data_3ed4d: + dr $3ed4d, $3ed65 + +Data_3ed65: + dr $3ed65, $3ed78 + +Data_3ed78: + dr $3ed78, $3ed98 + +Data_3ed98: + dr $3ed98, $3edb0 + +Data_3edb0: + dr $3edb0, $3edc0 + +Data_3edc0: + dr $3edc0, $3edd0 + +Data_3edd0: + dr $3edd0, $3ede3 + +Data_3ede3: + dr $3ede3, $3edf3 + +Data_3edf3: + dr $3edf3, $3ee1c + +Data_3ee1c: + dr $3ee1c, $3ee32 + +Data_3ee32: + dr $3ee32, $3ee48 + +Data_3ee48: + dr $3ee48, $3ee5e + +Data_3ee5e: + dr $3ee5e, $3ee78 + +Data_3ee78: + dr $3ee78, $3ee92 + +Data_3ee92: + dr $3ee92, $3eeaa + +Data_3eeaa: + dr $3eeaa, $3eec4 + +Data_3eec4: + dr $3eec4, $3eed4 + +Data_3eed4: + dr $3eed4, $3eeea + +Data_3eeea: + dr $3eeea, $3ef00 + +Data_3ef00: + dr $3ef00, $3ef16 + +Data_3ef16: + dr $3ef16, $3ef27 + +Data_3ef27: + dr $3ef27, $3ef63 + +CryBasePointers: ; 0x3ef63 + dw Cry_00_Header_BankF + dw Cry_01_Header_BankF + dw Cry_02_Header_BankF + dw Cry_03_Header_BankF + dw Cry_04_Header_BankF + dw Cry_05_Header_BankF + dw Cry_06_Header_BankF + dw Cry_07_Header_BankF + dw Cry_08_Header_BankF + dw Cry_09_Header_BankF + dw Cry_0A_Header_BankF + dw Cry_0B_Header_BankF + dw Cry_0C_Header_BankF + dw Cry_0D_Header_BankF + dw Cry_0E_Header_BankF + dw Cry_0F_Header_BankF + dw Cry_10_Header_BankF + dw Cry_11_Header_BankF + dw Cry_12_Header_BankF + dw Cry_13_Header_BankF + dw Cry_14_Header_BankF + dw Cry_15_Header_BankF + dw Cry_16_Header_BankF + dw Cry_17_Header_BankF + dw Cry_18_Header_BankF + dw Cry_19_Header_BankF + dw Cry_1A_Header_BankF + dw Cry_1B_Header_BankF + dw Cry_1C_Header_BankF + dw Cry_1D_Header_BankF + dw Cry_1E_Header_BankF + dw Cry_1F_Header_BankF + dw Cry_20_Header_BankF + dw Cry_21_Header_BankF + dw Cry_22_Header_BankF + dw Cry_23_Header_BankF + dw Cry_24_Header_BankF + dw Cry_25_Header_BankF + +CryData: ; 0x3efaf +; Each entry is in the following format: +; [base cry id], [pitch], [length + dw $000F, $0080, $0081 ; BULBASAUR + dw $000F, $0020, $0100 ; IVYSAUR + dw $000F, $0000, $0140 ; VENUSAUR + dw $0004, $0060, $00C0 ; CHARMANDER + dw $0004, $0020, $00C0 ; CHARMELEON + dw $0004, $0000, $0100 ; CHARIZARD + dw $001D, $0060, $00C0 ; SQUIRTLE + dw $001D, $0020, $00C0 ; WARTORTLE + dw $0013, $0000, $0100 ; BLASTOISE + dw $0016, $0080, $00A0 ; CATERPIE + dw $001C, $00CC, $0081 ; METAPOD + dw $0016, $0077, $00C0 ; BUTTERFREE + dw $0015, $00EE, $0081 ; WEEDLE + dw $0013, $00FF, $0081 ; KAKUNA + dw $0013, $0060, $0100 ; BEEDRILL + dw $000E, $00DF, $0084 ; PIDGEY + dw $0014, $0028, $0140 ; PIDGEOTTO + dw $0014, $0011, $017F ; PIDGEOT + dw $0022, $0000, $0100 ; RATTATA + dw $0022, $0020, $017F ; RATICATE + dw $0010, $0000, $0100 ; SPEAROW + dw $0018, $0040, $0120 ; FEAROW + dw $0017, $0012, $00C0 ; EKANS + dw $0017, $00E0, $0090 ; ARBOK + dw $000F, $00EE, $0081 ; PIKACHU + dw $0009, $00EE, $0088 ; RAICHU + dw $0000, $0020, $00C0 ; SANDSHREW + dw $0000, $00FF, $017F ; SANDSLASH + dw $0001, $0000, $0100 ; NIDORAN_F + dw $0001, $002C, $0160 ; NIDORINA + dw $000A, $0000, $0100 ; NIDOQUEEN + dw $0000, $0000, $0100 ; NIDORAN_M + dw $0000, $002C, $0140 ; NIDORINO + dw $0009, $0000, $0100 ; NIDOKING + dw $0019, $00CC, $0081 ; CLEFAIRY + dw $0019, $00AA, $00A0 ; CLEFABLE + dw $0024, $004F, $0090 ; VULPIX + dw $0024, $0088, $00E0 ; NINETALES + dw $000E, $00FF, $00B5 ; JIGGLYPUFF + dw $000E, $0068, $00E0 ; WIGGLYTUFF + dw $001D, $00E0, $0100 ; ZUBAT + dw $001D, $00FA, $0100 ; GOLBAT + dw $0008, $00DD, $0081 ; ODDISH + dw $0008, $00AA, $00C0 ; GLOOM + dw $0023, $0022, $017F ; VILEPLUME + dw $001E, $0020, $0160 ; PARAS + dw $001E, $0042, $017F ; PARASECT + dw $001A, $0044, $00C0 ; VENONAT + dw $001A, $0029, $0100 ; VENOMOTH + dw $000B, $00AA, $0081 ; DIGLETT + dw $000B, $002A, $0090 ; DUGTRIO + dw $0019, $0077, $0090 ; MEOWTH + dw $0019, $0099, $017F ; PERSIAN + dw $0021, $0020, $00E0 ; PSYDUCK + dw $0021, $00FF, $00C0 ; GOLDUCK + dw $000A, $00DD, $00E0 ; MANKEY + dw $000A, $00AF, $00C0 ; PRIMEAPE + dw $001F, $0020, $00C0 ; GROWLITHE + dw $0015, $0000, $0100 ; ARCANINE + dw $000E, $00FF, $017F ; POLIWAG + dw $000E, $0077, $00E0 ; POLIWHIRL + dw $000E, $0000, $017F ; POLIWRATH + dw $001C, $00C0, $0081 ; ABRA + dw $001C, $00A8, $0140 ; KADABRA + dw $001C, $0098, $017F ; ALAKAZAM + dw $001F, $00EE, $0081 ; MACHOP + dw $001F, $0048, $00E0 ; MACHOKE + dw $001F, $0008, $0140 ; MACHAMP + dw $0021, $0055, $0081 ; BELLSPROUT + dw $0025, $0044, $00A0 ; WEEPINBELL + dw $0025, $0066, $014C ; VICTREEBEL + dw $001A, $0000, $0100 ; TENTACOOL + dw $001A, $00EE, $017F ; TENTACRUEL + dw $0024, $00F0, $0090 ; GEODUDE + dw $0024, $0000, $0100 ; GRAVELER + dw $0012, $00E0, $00C0 ; GOLEM + dw $0025, $0000, $0100 ; PONYTA + dw $0025, $0020, $0140 ; RAPIDASH + dw $0002, $0000, $0100 ; SLOWPOKE + dw $001F, $0000, $0100 ; SLOWBRO + dw $001C, $0080, $00E0 ; MAGNEMITE + dw $001C, $0020, $0140 ; MAGNETON + dw $0010, $00DD, $0081 ; FARFETCH_D + dw $000B, $00BB, $0081 ; DODUO + dw $000B, $0099, $00A0 ; DODRIO + dw $000C, $0088, $0140 ; SEEL + dw $000C, $0023, $017F ; DEWGONG + dw $0005, $0000, $0100 ; GRIMER + dw $0007, $00EF, $017F ; MUK + dw $0018, $0000, $0100 ; SHELLDER + dw $0018, $006F, $0160 ; CLOYSTER + dw $001C, $0000, $0100 ; GASTLY + dw $001C, $0030, $00C0 ; HAUNTER + dw $0007, $0000, $017F ; GENGAR + dw $0017, $00FF, $0140 ; ONIX + dw $000D, $0088, $00A0 ; DROWZEE + dw $000D, $00EE, $00C0 ; HYPNO + dw $0020, $0020, $0160 ; KRABBY + dw $0020, $00EE, $0160 ; KINGLER + dw $0006, $00ED, $0100 ; VOLTORB + dw $0006, $00A8, $0110 ; ELECTRODE + dw $000B, $0000, $0100 ; EXEGGCUTE + dw $000D, $0000, $0100 ; EXEGGUTOR + dw $0019, $0000, $0100 ; CUBONE + dw $0008, $004F, $00E0 ; MAROWAK + dw $0012, $0080, $0140 ; HITMONLEE + dw $000C, $00EE, $0140 ; HITMONCHAN + dw $000C, $0000, $0100 ; LICKITUNG + dw $0012, $00E6, $015D ; KOFFING + dw $0012, $00FF, $017F ; WEEZING + dw $0004, $0000, $0100 ; RHYHORN + dw $0011, $0000, $0100 ; RHYDON + dw $0014, $000A, $0140 ; CHANSEY + dw $0012, $0000, $0100 ; TANGELA + dw $0003, $0000, $0100 ; KANGASKHAN + dw $0019, $0099, $0090 ; HORSEA + dw $0019, $003C, $0081 ; SEADRA + dw $0016, $0080, $00C0 ; GOLDEEN + dw $0016, $0010, $017F ; SEAKING + dw $001E, $0002, $00A0 ; STARYU + dw $001E, $0000, $0100 ; STARMIE + dw $0020, $0008, $00C0 ; MR_MIME + dw $0016, $0000, $0100 ; SCYTHER + dw $000D, $00FF, $017F ; JYNX + dw $0006, $008F, $017F ; ELECTABUZZ + dw $0004, $00FF, $00B0 ; MAGMAR + dw $0014, $0000, $0100 ; PINSIR + dw $001D, $0011, $00C0 ; TAUROS + dw $0017, $0080, $0080 ; MAGIKARP + dw $0017, $0000, $0100 ; GYARADOS + dw $001B, $0000, $0100 ; LAPRAS + dw $000E, $00FF, $017F ; DITTO + dw $001A, $0088, $00E0 ; EEVEE + dw $001A, $00AA, $017F ; VAPOREON + dw $001A, $003D, $0100 ; JOLTEON + dw $001A, $0010, $00A0 ; FLAREON + dw $0025, $00AA, $017F ; PORYGON + dw $001F, $00F0, $0081 ; OMANYTE + dw $001F, $00FF, $00C0 ; OMASTAR + dw $0016, $00BB, $00C0 ; KABUTO + dw $0018, $00EE, $0081 ; KABUTOPS + dw $0023, $0020, $0170 ; AERODACTYL + dw $0005, $0055, $0081 ; SNORLAX + dw $0009, $0080, $00C0 ; ARTICUNO + dw $0018, $00FF, $0100 ; ZAPDOS + dw $0009, $00F8, $00C0 ; MOLTRES + dw $000F, $0060, $00C0 ; DRATINI + dw $000F, $0040, $0100 ; DRAGONAIR + dw $000F, $003C, $0140 ; DRAGONITE + dw $001E, $0099, $017F ; MEWTWO + dw $001E, $00EE, $017F ; MEW + +Cry_00_Header_BankF: ; 0x3f339 + channelcount 3 + channel 4, Data_3f733 + channel 5, Data_3f742 + channel 7, Data_3f751 + +Cry_01_Header_BankF: ; 0x3f342 + channelcount 3 + channel 4, Data_3f943 + channel 5, Data_3f956 + channel 7, Data_3f969 + +Cry_02_Header_BankF: ; 0x3f34b + channelcount 3 + channel 4, Data_3f8b8 + channel 5, Data_3f8c7 + channel 7, Data_3f8d5 + +Cry_03_Header_BankF: ; 0x3f354 + channelcount 3 + channel 4, Data_3f652 + channel 5, Data_3f671 + channel 7, Data_3f690 + +Cry_04_Header_BankF: ; 0x3f35d + channelcount 3 + channel 4, Data_3fa01 + channel 5, Data_3fa20 + channel 7, Data_3fa3f + +Cry_05_Header_BankF: ; 0x3f366 + channelcount 3 + channel 4, Data_3f7e1 + channel 5, Data_3f7f4 + channel 7, Data_3f806 + +Cry_06_Header_BankF: ; 0x3f36f + channelcount 3 + channel 4, Data_3f78b + channel 5, Data_3f7a5 + channel 7, Data_3f7a6 + +Cry_07_Header_BankF: ; 0x3f378 + channelcount 3 + channel 4, Data_3f7b9 + channel 5, Data_3f7c8 + channel 7, Data_3f7d7 + +Cry_08_Header_BankF: ; 0x3f381 + channelcount 3 + channel 4, Data_3f9d1 + channel 5, Data_3f9e4 + channel 7, Data_3f9f7 + +Cry_09_Header_BankF: ; 0x3f38a + channelcount 3 + channel 4, Data_3f4db + channel 5, Data_3f4f8 + channel 7, Data_3f519 + +Cry_0A_Header_BankF: ; 0x3f393 + channelcount 3 + channel 4, Data_3f976 + channel 5, Data_3f995 + channel 7, Data_3f9b8 + +Cry_0B_Header_BankF: ; 0x3f39c + channelcount 3 + channel 4, Data_3f807 + channel 5, Data_3f832 + channel 7, Data_3f851 + +Cry_0C_Header_BankF: ; 0x3f3a5 + channelcount 3 + channel 4, Data_3f86a + channel 5, Data_3f891 + channel 7, Data_3f8b7 + +Cry_0D_Header_BankF: ; 0x3f3ae + channelcount 3 + channel 4, Data_3f8d6 + channel 5, Data_3f8f5 + channel 7, Data_3f924 + +Cry_0E_Header_BankF: ; 0x3f + channelcount 3 + channel 4, Data_3f75b + channel 5, Data_3f76e + channel 7, Data_3f781 + +Cry_0F_Header_BankF: ; 0x3f + channelcount 3 + channel 4, Data_3f69d + channel 5, Data_3f6b8 + channel 7, Data_3f6d3 + +Cry_10_Header_BankF: ; 0x3f3b7 + channelcount 3 + channel 4, Data_3f6e3 + channel 5, Data_3f706 + channel 7, Data_3f729 + +Cry_11_Header_BankF: ; 0x3f3c0 + channelcount 3 + channel 4, Data_3f5bf + channel 5, Data_3f5de + channel 7, Data_3f601 + +Cry_12_Header_BankF: ; 0x3f3c9 + channelcount 3 + channel 4, Data_3fad7 + channel 5, Data_3faea + channel 7, Data_3fafd + +Cry_13_Header_BankF: ; 0x3f3d2 + channelcount 3 + channel 4, Data_3fb0a + channel 5, Data_3fb25 + channel 7, Data_3fb40 + +Cry_14_Header_BankF: ; 0x3f3db + channelcount 3 + channel 4, Data_3fb53 + channel 5, Data_3fb62 + channel 7, Data_3fb71 + +Cry_15_Header_BankF: ; 0x3f3e4 + channelcount 3 + channel 4, Data_3fbe1 + channel 5, Data_3fbfc + channel 7, Data_3fc17 + +Cry_16_Header_BankF: ; 0x3f3ed + channelcount 3 + channel 4, Data_3fa74 + channel 5, Data_3fa83 + channel 7, Data_3fa92 + +Cry_17_Header_BankF: ; 0x3f3f6 + channelcount 3 + channel 4, Data_3fc2a + channel 5, Data_3fc3d + channel 7, Data_3fc50 + +Cry_18_Header_BankF: ; 0x3f3ff + channelcount 3 + channel 4, Data_3fd3a + channel 5, Data_3fd5d + channel 7, Data_3fd80 + +Cry_19_Header_BankF: ; 0x3f408 + channelcount 3 + channel 4, Data_3fa52 + channel 5, Data_3fa61 + channel 7, Data_3fa73 + +Cry_1A_Header_BankF: ; 0x3f411 + channelcount 3 + channel 4, Data_3fcab + channel 5, Data_3fcc6 + channel 7, Data_3fce1 + +Cry_1B_Header_BankF: ; 0x3f41a + channelcount 3 + channel 4, Data_3fa9c + channel 5, Data_3fab3 + channel 7, Data_3faca + +Cry_1C_Header_BankF: ; 0x3f423 + channelcount 3 + channel 4, Data_3fc5d + channel 5, Data_3fc80 + channel 7, Data_3fc9b + +Cry_1D_Header_BankF: ; 0x3f42c + channelcount 3 + channel 4, Data_3fcf4 + channel 5, Data_3fd0f + channel 7, Data_3fd2a + +Cry_1E_Header_BankF: ; 0x3f435 + channelcount 3 + channel 4, Data_3fb7b + channel 5, Data_3fb9e + channel 7, Data_3fbc5 + +Cry_1F_Header_BankF: ; 0x3f43e + channelcount 3 + channel 4, Data_3fd93 + channel 5, Data_3fda6 + channel 7, Data_3fdb9 + +Cry_20_Header_BankF: ; 0x3f447 + channelcount 3 + channel 4, Data_3fdc6 + channel 5, Data_3fdd9 + channel 7, Data_3fdec + +Cry_21_Header_BankF: ; 0x3f450 + channelcount 3 + channel 4, Data_3fdf9 + channel 5, Data_3fe1c + channel 7, Data_3fe3e + +Cry_22_Header_BankF: ; 0x3f459 + channelcount 3 + channel 4, Data_3fe3f + channel 5, Data_3fe52 + channel 7, Data_3fe65 + +Cry_23_Header_BankF: ; 0x3f462 + channelcount 3 + channel 4, Data_3f532 + channel 5, Data_3f549 + channel 7, Data_3f55c + +Cry_24_Header_BankF: ; 0x3f46b + channelcount 3 + channel 4, Data_3f569 + channel 5, Data_3f58c + channel 7, Data_3f5af + +Cry_25_Header_BankF: ; 0x3f474 + channelcount 3 + channel 4, Data_3f617 + channel 5, Data_3f62e + channel 7, Data_3f645 + + dr $3f48f, $3f4db + +Data_3f4db: + dr $3f4db, $3f4f8 + +Data_3f4f8: + dr $3f4f8, $3f519 + +Data_3f519: + dr $3f519, $3f532 + +Data_3f532: + dr $3f532, $3f549 + +Data_3f549: + dr $3f549, $3f55c + +Data_3f55c: + dr $3f55c, $3f569 + +Data_3f569: + dr $3f569, $3f58c + +Data_3f58c: + dr $3f58c, $3f5af + +Data_3f5af: + dr $3f5af, $3f5bf + +Data_3f5bf: + dr $3f5bf, $3f5de + +Data_3f5de: + dr $3f5de, $3f601 + +Data_3f601: + dr $3f601, $3f617 + +Data_3f617: + dr $3f617, $3f62e + +Data_3f62e: + dr $3f62e, $3f645 + +Data_3f645: + dr $3f645, $3f652 + +Data_3f652: + dr $3f652, $3f671 + +Data_3f671: + dr $3f671, $3f690 + +Data_3f690: + dr $3f690, $3f69d + +Data_3f69d: + dr $3f69d, $3f6b8 + +Data_3f6b8: + dr $3f6b8, $3f6d3 + +Data_3f6d3: + dr $3f6d3, $3f6e3 + +Data_3f6e3: + dr $3f6e3, $3f706 + +Data_3f706: + dr $3f706, $3f729 + +Data_3f729: + dr $3f729, $3f733 + +Data_3f733: + dr $3f733, $3f742 + +Data_3f742: + dr $3f742, $3f751 + +Data_3f751: + dr $3f751, $3f75b + +Data_3f75b: + dr $3f75b, $3f76e + +Data_3f76e: + dr $3f76e, $3f781 + +Data_3f781: + dr $3f781, $3f78b + +Data_3f78b: + dr $3f78b, $3f7a5 + +Data_3f7a5: + dr $3f7a5, $3f7a6 + +Data_3f7a6: + dr $3f7a6, $3f7b9 + +Data_3f7b9: + dr $3f7b9, $3f7c8 + +Data_3f7c8: + dr $3f7c8, $3f7d7 + +Data_3f7d7: + dr $3f7d7, $3f7e1 + +Data_3f7e1: + dr $3f7e1, $3f7f4 + +Data_3f7f4: + dr $3f7f4, $3f806 + +Data_3f806: + dr $3f806, $3f807 + +Data_3f807: + dr $3f807, $3f832 + +Data_3f832: + dr $3f832, $3f851 + +Data_3f851: + dr $3f851, $3f86a + +Data_3f86a: + dr $3f86a, $3f891 + +Data_3f891: + dr $3f891, $3f8b7 + +Data_3f8b7: + dr $3f8b7, $3f8b8 + +Data_3f8b8: + dr $3f8b8, $3f8c7 + +Data_3f8c7: + dr $3f8c7, $3f8d5 + +Data_3f8d5: + dr $3f8d5, $3f8d6 + +Data_3f8d6: + dr $3f8d6, $3f8f5 + +Data_3f8f5: + dr $3f8f5, $3f924 + +Data_3f924: + dr $3f924, $3f943 + +Data_3f943: + dr $3f943, $3f956 + +Data_3f956: + dr $3f956, $3f969 + +Data_3f969: + dr $3f969, $3f976 + +Data_3f976: + dr $3f976, $3f995 + +Data_3f995: + dr $3f995, $3f9b8 + +Data_3f9b8: + dr $3f9b8, $3f9d1 + +Data_3f9d1: + dr $3f9d1, $3f9e4 + +Data_3f9e4: + dr $3f9e4, $3f9f7 + +Data_3f9f7: + dr $3f9f7, $3fa01 + +Data_3fa01: + dr $3fa01, $3fa20 + +Data_3fa20: + dr $3fa20, $3fa3f + +Data_3fa3f: + dr $3fa3f, $3fa52 + +Data_3fa52: + dr $3fa52, $3fa61 + +Data_3fa61: + dr $3fa61, $3fa73 + +Data_3fa73: + dr $3fa73, $3fa74 + +Data_3fa74: + dr $3fa74, $3fa83 + +Data_3fa83: + dr $3fa83, $3fa92 + +Data_3fa92: + dr $3fa92, $3fa9c + +Data_3fa9c: + dr $3fa9c, $3fab3 + +Data_3fab3: + dr $3fab3, $3faca + +Data_3faca: + dr $3faca, $3fad7 + +Data_3fad7: + dr $3fad7, $3faea + +Data_3faea: + dr $3faea, $3fafd + +Data_3fafd: + dr $3fafd, $3fb0a + +Data_3fb0a: + dr $3fb0a, $3fb25 + +Data_3fb25: + dr $3fb25, $3fb40 + +Data_3fb40: + dr $3fb40, $3fb53 + +Data_3fb53: + dr $3fb53, $3fb62 + +Data_3fb62: + dr $3fb62, $3fb71 + +Data_3fb71: + dr $3fb71, $3fb7b + +Data_3fb7b: + dr $3fb7b, $3fb9e + +Data_3fb9e: + dr $3fb9e, $3fbc5 + +Data_3fbc5: + dr $3fbc5, $3fbe1 + +Data_3fbe1: + dr $3fbe1, $3fbfc + +Data_3fbfc: + dr $3fbfc, $3fc17 + +Data_3fc17: + dr $3fc17, $3fc2a + +Data_3fc2a: + dr $3fc2a, $3fc3d + +Data_3fc3d: + dr $3fc3d, $3fc50 + +Data_3fc50: + dr $3fc50, $3fc5d + +Data_3fc5d: + dr $3fc5d, $3fc80 + +Data_3fc80: + dr $3fc80, $3fc9b + +Data_3fc9b: + dr $3fc9b, $3fcab + +Data_3fcab: + dr $3fcab, $3fcc6 + +Data_3fcc6: + dr $3fcc6, $3fce1 + +Data_3fce1: + dr $3fce1, $3fcf4 + +Data_3fcf4: + dr $3fcf4, $3fd0f + +Data_3fd0f: + dr $3fd0f, $3fd2a + +Data_3fd2a: + dr $3fd2a, $3fd3a + +Data_3fd3a: + dr $3fd3a, $3fd5d + +Data_3fd5d: + dr $3fd5d, $3fd80 + +Data_3fd80: + dr $3fd80, $3fd93 + +Data_3fd93: + dr $3fd93, $3fda6 + +Data_3fda6: + dr $3fda6, $3fdb9 + +Data_3fdb9: + dr $3fdb9, $3fdc6 + +Data_3fdc6: + dr $3fdc6, $3fdd9 + +Data_3fdd9: + dr $3fdd9, $3fdec + +Data_3fdec: + dr $3fdec, $3fdf9 + +Data_3fdf9: + dr $3fdf9, $3fe1c + +Data_3fe1c: + dr $3fe1c, $3fe3e + +Data_3fe3e: + dr $3fe3e, $3fe3f + +Data_3fe3f: + dr $3fe3f, $3fe52 + +Data_3fe52: + dr $3fe52, $3fe65 + +Data_3fe65: + dr $3fe65, $3fe72 diff --git a/audio/engine_10.asm b/audio/engine_10.asm new file mode 100755 index 0000000..ad64e36 --- /dev/null +++ b/audio/engine_10.asm @@ -0,0 +1,19 @@ + dr $40000, $40ca2 + +SongHeaderPointers10: ; 0x40ca2 + dw Music_Nothing10 + dw Music_RedField + dw Music_CatchEmBlue + dw Music_HurryUpBlue + dw Music_HiScore + dw Music_GameOver +; 0x40cae + +INCLUDE "audio/music/nothing10.asm" +INCLUDE "audio/music/redfield.asm" +INCLUDE "audio/music/catchemblue.asm" +INCLUDE "audio/music/hiscore.asm" +INCLUDE "audio/music/gameover.asm" +INCLUDE "audio/music/hurryupblue.asm" + + dr $4255b, $44000 diff --git a/audio/engine_11.asm b/audio/engine_11.asm new file mode 100755 index 0000000..4c77c26 --- /dev/null +++ b/audio/engine_11.asm @@ -0,0 +1,17 @@ + dr $44000, $44ca2 + +SongHeaderPointers11: ; 0x44ca2 + dw Music_Nothing11 + dw Music_WhackTheDiglett + dw Music_WhackTheDugtrio + dw Music_SeelStage + dw Music_Title +; 0x44cac + +INCLUDE "audio/music/nothing11.asm" +INCLUDE "audio/music/whackthediglett.asm" +INCLUDE "audio/music/whackthedugtrio.asm" +INCLUDE "audio/music/seelstage.asm" +INCLUDE "audio/music/title.asm" + + dr $462d3, $48000 diff --git a/audio/engine_12.asm b/audio/engine_12.asm new file mode 100755 index 0000000..2f17123 --- /dev/null +++ b/audio/engine_12.asm @@ -0,0 +1,17 @@ + dr $48000, $48ca2 + +SongHeaderPointers12: ; 0x48ca2 + dw Music_Nothing12 + dw Music_MewtwoStage + dw Music_Options + dw Music_FieldSelect + dw Music_MeowthStage +; 0x48cac + +INCLUDE "audio/music/nothing12.asm" +INCLUDE "audio/music/mewtwostage.asm" +INCLUDE "audio/music/options.asm" +INCLUDE "audio/music/fieldselect.asm" +INCLUDE "audio/music/meowthstage.asm" + + dr $49c04, $4c000 diff --git a/audio/engine_13.asm b/audio/engine_13.asm new file mode 100755 index 0000000..2f6668a --- /dev/null +++ b/audio/engine_13.asm @@ -0,0 +1,13 @@ + dr $4c000, $4cca2 + +SongHeaderPointers13: ; 0x4cca2 + dw Music_Nothing13 + dw Music_EndCredits + dw Music_NameEntry +; 0x4cca8 + +INCLUDE "audio/music/nothing13.asm" +INCLUDE "audio/music/endcredits.asm" +INCLUDE "audio/music/nameentry.asm" + + dr $4def4, $50000 diff --git a/audio/pikapcm.asm b/audio/pikapcm.asm new file mode 100755 index 0000000..6b4bbfe --- /dev/null +++ b/audio/pikapcm.asm @@ -0,0 +1,141 @@ +PlayPikachuSoundClip: ; 0x50000 +; Plays the pcm (pulse-code modulation) sound clip of one of the pikachu noises. + sla a + ld c, a + ld b, $0 + ld hl, PikachuSoundClipPointers + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push hl + di + ld b, $4 +.asm_50010 + ld a, [rLY] + and a + jr nz, .asm_50010 + dec b + jr nz, .asm_50010 + xor a + ld [rNR50], a + ld [rNR51], a + ld a, $80 + ld [rNR52], a + xor a + ld [rNR30], a + ld hl, wd84b + ld c, $30 + ld b, $10 +.asm_5002b + ld a, [$ff00+c] + ld [hli], a + ld a, $ff + ld [$ff00+c], a + inc c + dec b + jr nz, .asm_5002b + ld a, $80 + ld [rNR30], a + ld a, $ff + ld [rNR31], a + ld a, $20 + ld [rNR32], a + ld a, $ff + ld [rNR33], a + ld a, $87 + ld [rNR34], a + ld a, $77 + ld [rNR50], a + ld a, $44 + ld [rNR51], a + pop hl + call PlayPikachuPCM + xor a + ld [rNR50], a + ld [rNR51], a + ld [rNR52], a + ld hl, wd84b + ld c, $30 + ld b, $10 +.asm_50062 + ld a, [hli] + ld [$ff00+c], a + inc c + dec b + jr nz, .asm_50062 + ld a, $77 + ld [rNR50], a + ld a, $ff + ld [rNR51], a + ld a, $80 + ld [rNR52], a + ei + ret + +PikachuSoundClipPointers: ; 0x50076 + dw PikachuBillboardBonusSoundClip + dw PikachuThundershockSoundClip + +PikachuBillboardBonusSoundClip: ; 0x5007a + dw $caf ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds) + INCBIN "audio/sound_clips/pi_ka_chu.pcm" + + db $1f ; unused + +PikachuThundershockSoundClip: ; 0x50d2c + dw $1227 ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds) + INCBIN "audio/sound_clips/piiiiikaaaa.pcm" + + db $f0, $00, $00 ; unused + +PlayPikachuPCM: ; 0x51f56 +; Plays the audio PCM at [hl] + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ; bc = number of bytes in the sound clip's PCM (pulse-code modulation) +.loop + ld a, [hli] + ld d, a + ld a, $3 +.playSingleSample + dec a + jr nz, .playSingleSample + call LoadNextSoundClipSample + call PlaySoundClipSample + call LoadNextSoundClipSample + call PlaySoundClipSample + call LoadNextSoundClipSample + call PlaySoundClipSample + call LoadNextSoundClipSample + call PlaySoundClipSample + call LoadNextSoundClipSample + call PlaySoundClipSample + call LoadNextSoundClipSample + call PlaySoundClipSample + call LoadNextSoundClipSample + call PlaySoundClipSample + call LoadNextSoundClipSample + dec bc + ld a, c + or b + jr nz, .loop + ret + +LoadNextSoundClipSample: ; 0x51f94 + ld a, d + and $80 + srl a + srl a + ld [rNR32], a + sla d + ret + +PlaySoundClipSample: ; 0x51fa0 + ld a, $3 +.loop + dec a + jr nz, .loop + ret diff --git a/charmap.asm b/charmap.asm index d07807e..7754cd1 100755 --- a/charmap.asm +++ b/charmap.asm @@ -1,37 +1,4 @@ -charmap "@", $00 - -charmap "♂", $24 - -charmap ".", $2E - -charmap "é", $40 -charmap "A", $41 -charmap "B", $42 -charmap "C", $43 -charmap "D", $44 -charmap "E", $45 -charmap "F", $46 -charmap "G", $47 -charmap "H", $48 -charmap "I", $49 -charmap "J", $4A -charmap "K", $4B -charmap "L", $4C -charmap "M", $4D -charmap "N", $4E -charmap "O", $4F -charmap "P", $50 -charmap "Q", $51 -charmap "R", $52 -charmap "S", $53 -charmap "T", $54 -charmap "U", $55 -charmap "V", $56 -charmap "W", $57 -charmap "X", $58 -charmap "Y", $59 -charmap "Z", $5A - -charmap "♀", $5C - -charmap "'", $60 + charmap "@", $00 + charmap "♂", $24 + charmap "é", $40 + charmap "♀", $5C diff --git a/compare.sh b/compare.sh new file mode 100755 index 0000000..60e8d34 --- /dev/null +++ b/compare.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Compares baserom.gbc and pokepinball.gbc + +# create baserom.txt if necessary + +if [ ! -f baserom.txt ]; then + hexdump -C baserom.gbc > baserom.txt +fi + +hexdump -C pokepinball.gbc > pokepinball.txt + +diff -u baserom.txt pokepinball.txt | less diff --git a/constants.asm b/constants.asm index 71a12e3..3397f8f 100755 --- a/constants.asm +++ b/constants.asm @@ -1,5 +1,6 @@ INCLUDE "hram.asm" INCLUDE "vram.asm" +INCLUDE "gbhw.asm" INCLUDE "constants/ball_types.asm" INCLUDE "constants/diglett_stage_constants.asm" diff --git a/constants/evolution_line_constants.asm b/constants/evolution_line_constants.asm index dea3519..871da64 100755 --- a/constants/evolution_line_constants.asm +++ b/constants/evolution_line_constants.asm @@ -1,81 +1,81 @@ const_value = 0 - - const EVOLINE_BULBASAUR ; $0 - const EVOLINE_CHARMANDER ; $1 - const EVOLINE_SQUIRTLE ; $2 - const EVOLINE_CATERPIE ; $3 - const EVOLINE_WEEDLE ; $4 - const EVOLINE_PIDGEY ; $5 - const EVOLINE_RATTATA ; $6 - const EVOLINE_SPEAROW ; $7 - const EVOLINE_EKANS ; $8 - const EVOLINE_PIKACHU ; $9 - const EVOLINE_SANDSHREW ; $a - const EVOLINE_NIDORAN_F ; $b - const EVOLINE_NIDORAN_M ; $c - const EVOLINE_CLEFAIRY ; $d - const EVOLINE_VULPIX ; $e - const EVOLINE_JIGGLYPUFF ; $f - const EVOLINE_ZUBAT ; $10 - const EVOLINE_ODDISH ; $11 - const EVOLINE_PARAS ; $12 - const EVOLINE_VENONAT ; $13 - const EVOLINE_DIGLETT ; $14 - const EVOLINE_MEOWTH ; $15 - const EVOLINE_PSYDUCK ; $16 - const EVOLINE_MANKEY ; $17 - const EVOLINE_GROWLITHE ; $18 - const EVOLINE_POLIWAG ; $19 - const EVOLINE_ABRA ; $1a - const EVOLINE_MACHOP ; $1b - const EVOLINE_BELLSPROUT ; $1c - const EVOLINE_TENTACOOL ; $1d - const EVOLINE_GEODUDE ; $1e - const EVOLINE_PONYTA ; $1f - const EVOLINE_SLOWPOKE ; $20 - const EVOLINE_MAGNEMITE ; $21 - const EVOLINE_FARFETCH_D ; $22 - const EVOLINE_DODUO ; $23 - const EVOLINE_SEEL ; $24 - const EVOLINE_GRIMER ; $25 - const EVOLINE_SHELLDER ; $26 - const EVOLINE_GASTLY ; $27 - const EVOLINE_ONIX ; $28 - const EVOLINE_DROWZEE ; $29 - const EVOLINE_KRABBY ; $2a - const EVOLINE_VOLTORB ; $2b - const EVOLINE_EXEGGCUTE ; $2c - const EVOLINE_CUBONE ; $2d - const EVOLINE_HITMONLEE ; $2e - const EVOLINE_HITMONCHAN ; $2f - const EVOLINE_LICKITUNG ; $30 - const EVOLINE_KOFFING ; $31 - const EVOLINE_RHYHORN ; $32 - const EVOLINE_CHANSEY ; $33 - const EVOLINE_TANGELA ; $34 - const EVOLINE_KANGASKHAN ; $35 - const EVOLINE_HORSEA ; $36 - const EVOLINE_GOLDEEN ; $37 - const EVOLINE_STARYU ; $38 - const EVOLINE_MR_MIME ; $39 - const EVOLINE_SCYTHER ; $3a - const EVOLINE_JYNX ; $3b - const EVOLINE_ELECTABUZZ ; $3c - const EVOLINE_MAGMAR ; $3d - const EVOLINE_PINSIR ; $3e - const EVOLINE_TAUROS ; $3f - const EVOLINE_MAGIKARP ; $40 - const EVOLINE_LAPRAS ; $41 - const EVOLINE_DITTO ; $42 - const EVOLINE_EEVEE ; $43 - const EVOLINE_PORYGON ; $44 - const EVOLINE_OMANYTE ; $45 - const EVOLINE_KABUTO ; $46 - const EVOLINE_AERODACTYL ; $47 - const EVOLINE_SNORLAX ; $48 - const EVOLINE_ARTICUNO ; $49 - const EVOLINE_ZAPDOS ; $4a - const EVOLINE_MOLTRES ; $4b - const EVOLINE_DRATINI ; $4c - const EVOLINE_MEWTWO ; $4d - const EVOLINE_MEW ; $4e + + const EVOLINE_BULBASAUR ; $0 + const EVOLINE_CHARMANDER ; $1 + const EVOLINE_SQUIRTLE ; $2 + const EVOLINE_CATERPIE ; $3 + const EVOLINE_WEEDLE ; $4 + const EVOLINE_PIDGEY ; $5 + const EVOLINE_RATTATA ; $6 + const EVOLINE_SPEAROW ; $7 + const EVOLINE_EKANS ; $8 + const EVOLINE_PIKACHU ; $9 + const EVOLINE_SANDSHREW ; $a + const EVOLINE_NIDORAN_F ; $b + const EVOLINE_NIDORAN_M ; $c + const EVOLINE_CLEFAIRY ; $d + const EVOLINE_VULPIX ; $e + const EVOLINE_JIGGLYPUFF ; $f + const EVOLINE_ZUBAT ; $10 + const EVOLINE_ODDISH ; $11 + const EVOLINE_PARAS ; $12 + const EVOLINE_VENONAT ; $13 + const EVOLINE_DIGLETT ; $14 + const EVOLINE_MEOWTH ; $15 + const EVOLINE_PSYDUCK ; $16 + const EVOLINE_MANKEY ; $17 + const EVOLINE_GROWLITHE ; $18 + const EVOLINE_POLIWAG ; $19 + const EVOLINE_ABRA ; $1a + const EVOLINE_MACHOP ; $1b + const EVOLINE_BELLSPROUT ; $1c + const EVOLINE_TENTACOOL ; $1d + const EVOLINE_GEODUDE ; $1e + const EVOLINE_PONYTA ; $1f + const EVOLINE_SLOWPOKE ; $20 + const EVOLINE_MAGNEMITE ; $21 + const EVOLINE_FARFETCH_D ; $22 + const EVOLINE_DODUO ; $23 + const EVOLINE_SEEL ; $24 + const EVOLINE_GRIMER ; $25 + const EVOLINE_SHELLDER ; $26 + const EVOLINE_GASTLY ; $27 + const EVOLINE_ONIX ; $28 + const EVOLINE_DROWZEE ; $29 + const EVOLINE_KRABBY ; $2a + const EVOLINE_VOLTORB ; $2b + const EVOLINE_EXEGGCUTE ; $2c + const EVOLINE_CUBONE ; $2d + const EVOLINE_HITMONLEE ; $2e + const EVOLINE_HITMONCHAN ; $2f + const EVOLINE_LICKITUNG ; $30 + const EVOLINE_KOFFING ; $31 + const EVOLINE_RHYHORN ; $32 + const EVOLINE_CHANSEY ; $33 + const EVOLINE_TANGELA ; $34 + const EVOLINE_KANGASKHAN ; $35 + const EVOLINE_HORSEA ; $36 + const EVOLINE_GOLDEEN ; $37 + const EVOLINE_STARYU ; $38 + const EVOLINE_MR_MIME ; $39 + const EVOLINE_SCYTHER ; $3a + const EVOLINE_JYNX ; $3b + const EVOLINE_ELECTABUZZ ; $3c + const EVOLINE_MAGMAR ; $3d + const EVOLINE_PINSIR ; $3e + const EVOLINE_TAUROS ; $3f + const EVOLINE_MAGIKARP ; $40 + const EVOLINE_LAPRAS ; $41 + const EVOLINE_DITTO ; $42 + const EVOLINE_EEVEE ; $43 + const EVOLINE_PORYGON ; $44 + const EVOLINE_OMANYTE ; $45 + const EVOLINE_KABUTO ; $46 + const EVOLINE_AERODACTYL ; $47 + const EVOLINE_SNORLAX ; $48 + const EVOLINE_ARTICUNO ; $49 + const EVOLINE_ZAPDOS ; $4a + const EVOLINE_MOLTRES ; $4b + const EVOLINE_DRATINI ; $4c + const EVOLINE_MEWTWO ; $4d + const EVOLINE_MEW ; $4e diff --git a/constants/joy_constants.asm b/constants/joy_constants.asm index 1ece577..59d392b 100755 --- a/constants/joy_constants.asm +++ b/constants/joy_constants.asm @@ -15,3 +15,7 @@ D_RIGHT EQU %00010000 D_LEFT EQU %00100000 D_UP EQU %01000000 D_DOWN EQU %10000000 + +R_FLIPPER EQU A_BUTTON +L_FLIPPER EQU D_LEFT +FLIPPERS EQU L_FLIPPER | R_FLIPPER diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 2572e86..1a28b53 100755 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -1,20 +1,20 @@ const_value = 0 - const PALLET_TOWN ; $0 - const VIRIDIAN_CITY ; $1 - const VIRIDIAN_FOREST ; $2 - const PEWTER_CITY ; $3 - const MT_MOON ; $4 - const CERULEAN_CITY ; $5 - const VERMILION_SEASIDE ; $6 - const VERMILION_STREETS ; $7 - const ROCK_MOUNTAIN ; $8 - const LAVENDER_TOWN ; $9 - const CELADON_CITY ; $a - const CYCLING_ROAD ; $b - const FUCHSIA_CITY ; $c - const SAFARI_ZONE ; $d - const SAFFRON_CITY ; $e - const SEAFOAM_ISLANDS ; $f - const CINNABAR_ISLAND ; $10 - const INDIGO_PLATEAU ; $11 + const PALLET_TOWN ; $0 + const VIRIDIAN_CITY ; $1 + const VIRIDIAN_FOREST ; $2 + const PEWTER_CITY ; $3 + const MT_MOON ; $4 + const CERULEAN_CITY ; $5 + const VERMILION_SEASIDE ; $6 + const VERMILION_STREETS ; $7 + const ROCK_MOUNTAIN ; $8 + const LAVENDER_TOWN ; $9 + const CELADON_CITY ; $a + const CYCLING_ROAD ; $b + const FUCHSIA_CITY ; $c + const SAFARI_ZONE ; $d + const SAFFRON_CITY ; $e + const SEAFOAM_ISLANDS ; $f + const CINNABAR_ISLAND ; $10 + const INDIGO_PLATEAU ; $11 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 10c58d6..fff8fdc 100755 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -1,155 +1,155 @@ const_value = 1 - const BULBASAUR ; $1 - const IVYSAUR ; $2 - const VENUSAUR ; $3 - const CHARMANDER ; $4 - const CHARMELEON ; $5 - const CHARIZARD ; $6 - const SQUIRTLE ; $7 - const WARTORTLE ; $8 - const BLASTOISE ; $9 - const CATERPIE ; $a - const METAPOD ; $b - const BUTTERFREE ; $c - const WEEDLE ; $d - const KAKUNA ; $e - const BEEDRILL ; $f - const PIDGEY ; $10 - const PIDGEOTTO ; $11 - const PIDGEOT ; $12 - const RATTATA ; $13 - const RATICATE ; $14 - const SPEAROW ; $15 - const FEAROW ; $16 - const EKANS ; $17 - const ARBOK ; $18 - const PIKACHU ; $19 - const RAICHU ; $1a - const SANDSHREW ; $1b - const SANDSLASH ; $1c - const NIDORAN_F ; $1d - const NIDORINA ; $1e - const NIDOQUEEN ; $1f - const NIDORAN_M ; $20 - const NIDORINO ; $21 - const NIDOKING ; $22 - const CLEFAIRY ; $23 - const CLEFABLE ; $24 - const VULPIX ; $25 - const NINETALES ; $26 - const JIGGLYPUFF ; $27 - const WIGGLYTUFF ; $28 - const ZUBAT ; $29 - const GOLBAT ; $2a - const ODDISH ; $2b - const GLOOM ; $2c - const VILEPLUME ; $2d - const PARAS ; $2e - const PARASECT ; $2f - const VENONAT ; $30 - const VENOMOTH ; $31 - const DIGLETT ; $32 - const DUGTRIO ; $33 - const MEOWTH ; $34 - const PERSIAN ; $35 - const PSYDUCK ; $36 - const GOLDUCK ; $37 - const MANKEY ; $38 - const PRIMEAPE ; $39 - const GROWLITHE ; $3a - const ARCANINE ; $3b - const POLIWAG ; $3c - const POLIWHIRL ; $3d - const POLIWRATH ; $3e - const ABRA ; $3f - const KADABRA ; $40 - const ALAKAZAM ; $41 - const MACHOP ; $42 - const MACHOKE ; $43 - const MACHAMP ; $44 - const BELLSPROUT ; $45 - const WEEPINBELL ; $46 - const VICTREEBEL ; $47 - const TENTACOOL ; $48 - const TENTACRUEL ; $49 - const GEODUDE ; $4a - const GRAVELER ; $4b - const GOLEM ; $4c - const PONYTA ; $4d - const RAPIDASH ; $4e - const SLOWPOKE ; $4f - const SLOWBRO ; $50 - const MAGNEMITE ; $51 - const MAGNETON ; $52 - const FARFETCH_D ; $53 - const DODUO ; $54 - const DODRIO ; $55 - const SEEL ; $56 - const DEWGONG ; $57 - const GRIMER ; $58 - const MUK ; $59 - const SHELLDER ; $5a - const CLOYSTER ; $5b - const GASTLY ; $5c - const HAUNTER ; $5d - const GENGAR ; $5e - const ONIX ; $5f - const DROWZEE ; $60 - const HYPNO ; $61 - const KRABBY ; $62 - const KINGLER ; $63 - const VOLTORB ; $64 - const ELECTRODE ; $65 - const EXEGGCUTE ; $66 - const EXEGGUTOR ; $67 - const CUBONE ; $68 - const MAROWAK ; $69 - const HITMONLEE ; $6a - const HITMONCHAN ; $6b - const LICKITUNG ; $6c - const KOFFING ; $6d - const WEEZING ; $6e - const RHYHORN ; $6f - const RHYDON ; $70 - const CHANSEY ; $71 - const TANGELA ; $72 - const KANGASKHAN ; $73 - const HORSEA ; $74 - const SEADRA ; $75 - const GOLDEEN ; $76 - const SEAKING ; $77 - const STARYU ; $78 - const STARMIE ; $79 - const MR_MIME ; $7a - const SCYTHER ; $7b - const JYNX ; $7c - const ELECTABUZZ ; $7d - const MAGMAR ; $7e - const PINSIR ; $7f - const TAUROS ; $80 - const MAGIKARP ; $81 - const GYARADOS ; $82 - const LAPRAS ; $83 - const DITTO ; $84 - const EEVEE ; $85 - const VAPOREON ; $86 - const JOLTEON ; $87 - const FLAREON ; $88 - const PORYGON ; $89 - const OMANYTE ; $8a - const OMASTAR ; $8b - const KABUTO ; $8c - const KABUTOPS ; $8d - const AERODACTYL ; $8e - const SNORLAX ; $8f - const ARTICUNO ; $90 - const ZAPDOS ; $91 - const MOLTRES ; $92 - const DRATINI ; $93 - const DRAGONAIR ; $94 - const DRAGONITE ; $95 - const MEWTWO ; $96 - const MEW ; $97 + const BULBASAUR ; $1 + const IVYSAUR ; $2 + const VENUSAUR ; $3 + const CHARMANDER ; $4 + const CHARMELEON ; $5 + const CHARIZARD ; $6 + const SQUIRTLE ; $7 + const WARTORTLE ; $8 + const BLASTOISE ; $9 + const CATERPIE ; $a + const METAPOD ; $b + const BUTTERFREE ; $c + const WEEDLE ; $d + const KAKUNA ; $e + const BEEDRILL ; $f + const PIDGEY ; $10 + const PIDGEOTTO ; $11 + const PIDGEOT ; $12 + const RATTATA ; $13 + const RATICATE ; $14 + const SPEAROW ; $15 + const FEAROW ; $16 + const EKANS ; $17 + const ARBOK ; $18 + const PIKACHU ; $19 + const RAICHU ; $1a + const SANDSHREW ; $1b + const SANDSLASH ; $1c + const NIDORAN_F ; $1d + const NIDORINA ; $1e + const NIDOQUEEN ; $1f + const NIDORAN_M ; $20 + const NIDORINO ; $21 + const NIDOKING ; $22 + const CLEFAIRY ; $23 + const CLEFABLE ; $24 + const VULPIX ; $25 + const NINETALES ; $26 + const JIGGLYPUFF ; $27 + const WIGGLYTUFF ; $28 + const ZUBAT ; $29 + const GOLBAT ; $2a + const ODDISH ; $2b + const GLOOM ; $2c + const VILEPLUME ; $2d + const PARAS ; $2e + const PARASECT ; $2f + const VENONAT ; $30 + const VENOMOTH ; $31 + const DIGLETT ; $32 + const DUGTRIO ; $33 + const MEOWTH ; $34 + const PERSIAN ; $35 + const PSYDUCK ; $36 + const GOLDUCK ; $37 + const MANKEY ; $38 + const PRIMEAPE ; $39 + const GROWLITHE ; $3a + const ARCANINE ; $3b + const POLIWAG ; $3c + const POLIWHIRL ; $3d + const POLIWRATH ; $3e + const ABRA ; $3f + const KADABRA ; $40 + const ALAKAZAM ; $41 + const MACHOP ; $42 + const MACHOKE ; $43 + const MACHAMP ; $44 + const BELLSPROUT ; $45 + const WEEPINBELL ; $46 + const VICTREEBEL ; $47 + const TENTACOOL ; $48 + const TENTACRUEL ; $49 + const GEODUDE ; $4a + const GRAVELER ; $4b + const GOLEM ; $4c + const PONYTA ; $4d + const RAPIDASH ; $4e + const SLOWPOKE ; $4f + const SLOWBRO ; $50 + const MAGNEMITE ; $51 + const MAGNETON ; $52 + const FARFETCH_D ; $53 + const DODUO ; $54 + const DODRIO ; $55 + const SEEL ; $56 + const DEWGONG ; $57 + const GRIMER ; $58 + const MUK ; $59 + const SHELLDER ; $5a + const CLOYSTER ; $5b + const GASTLY ; $5c + const HAUNTER ; $5d + const GENGAR ; $5e + const ONIX ; $5f + const DROWZEE ; $60 + const HYPNO ; $61 + const KRABBY ; $62 + const KINGLER ; $63 + const VOLTORB ; $64 + const ELECTRODE ; $65 + const EXEGGCUTE ; $66 + const EXEGGUTOR ; $67 + const CUBONE ; $68 + const MAROWAK ; $69 + const HITMONLEE ; $6a + const HITMONCHAN ; $6b + const LICKITUNG ; $6c + const KOFFING ; $6d + const WEEZING ; $6e + const RHYHORN ; $6f + const RHYDON ; $70 + const CHANSEY ; $71 + const TANGELA ; $72 + const KANGASKHAN ; $73 + const HORSEA ; $74 + const SEADRA ; $75 + const GOLDEEN ; $76 + const SEAKING ; $77 + const STARYU ; $78 + const STARMIE ; $79 + const MR_MIME ; $7a + const SCYTHER ; $7b + const JYNX ; $7c + const ELECTABUZZ ; $7d + const MAGMAR ; $7e + const PINSIR ; $7f + const TAUROS ; $80 + const MAGIKARP ; $81 + const GYARADOS ; $82 + const LAPRAS ; $83 + const DITTO ; $84 + const EEVEE ; $85 + const VAPOREON ; $86 + const JOLTEON ; $87 + const FLAREON ; $88 + const PORYGON ; $89 + const OMANYTE ; $8a + const OMASTAR ; $8b + const KABUTO ; $8c + const KABUTOPS ; $8d + const AERODACTYL ; $8e + const SNORLAX ; $8f + const ARTICUNO ; $90 + const ZAPDOS ; $91 + const MOLTRES ; $92 + const DRATINI ; $93 + const DRAGONAIR ; $94 + const DRAGONITE ; $95 + const MEWTWO ; $96 + const MEW ; $97 NUM_POKEMON EQU 151 diff --git a/data/blue_wild_mons.asm b/data/blue_wild_mons.asm index 2fe50fc..98581b9 100755 --- a/data/blue_wild_mons.asm +++ b/data/blue_wild_mons.asm @@ -1,434 +1,434 @@ BlueStageWildMons: ; 0x1144d BlueStageViridianCityWildMons: ; 0x1144d - db BULBASAUR - db SQUIRTLE - db SQUIRTLE - db SQUIRTLE - db SQUIRTLE - db SQUIRTLE - db SPEAROW - db NIDORAN_F - db NIDORAN_F - db NIDORAN_F - db NIDORAN_M - db NIDORAN_M - db NIDORAN_M - db POLIWAG - db TENTACOOL - db GOLDEEN + db BULBASAUR + db SQUIRTLE + db SQUIRTLE + db SQUIRTLE + db SQUIRTLE + db SQUIRTLE + db SPEAROW + db NIDORAN_F + db NIDORAN_F + db NIDORAN_F + db NIDORAN_M + db NIDORAN_M + db NIDORAN_M + db POLIWAG + db TENTACOOL + db GOLDEEN BlueStagePalleViridianCityonsRare: ; 0x1145d - db BULBASAUR - db BULBASAUR - db BULBASAUR - db SQUIRTLE - db SPEAROW - db SPEAROW - db NIDORAN_F - db NIDORAN_F - db NIDORAN_M - db NIDORAN_M - db POLIWAG - db POLIWAG - db TENTACOOL - db TENTACOOL - db GOLDEEN - db GOLDEEN + db BULBASAUR + db BULBASAUR + db BULBASAUR + db SQUIRTLE + db SPEAROW + db SPEAROW + db NIDORAN_F + db NIDORAN_F + db NIDORAN_M + db NIDORAN_M + db POLIWAG + db POLIWAG + db TENTACOOL + db TENTACOOL + db GOLDEEN + db GOLDEEN BlueStageViridianForestWildMons: ; 0x1146d - db CATERPIE - db CATERPIE - db CATERPIE - db CATERPIE - db CATERPIE - db PIDGEY - db PIDGEY - db PIDGEY - db PIDGEY - db PIDGEY - db RATTATA - db RATTATA - db RATTATA - db RATTATA - db RATTATA - db PIKACHU + db CATERPIE + db CATERPIE + db CATERPIE + db CATERPIE + db CATERPIE + db PIDGEY + db PIDGEY + db PIDGEY + db PIDGEY + db PIDGEY + db RATTATA + db RATTATA + db RATTATA + db RATTATA + db RATTATA + db PIKACHU BlueStageViridianForestWildMonsRare: ; 0x1147d - db CATERPIE - db CATERPIE - db CATERPIE - db WEEDLE - db WEEDLE - db PIDGEY - db PIDGEY - db RATTATA - db RATTATA - db PIKACHU - db PIKACHU - db PIKACHU - db PIKACHU - db PIKACHU - db PIKACHU - db PIKACHU + db CATERPIE + db CATERPIE + db CATERPIE + db WEEDLE + db WEEDLE + db PIDGEY + db PIDGEY + db RATTATA + db RATTATA + db PIKACHU + db PIKACHU + db PIKACHU + db PIKACHU + db PIKACHU + db PIKACHU + db PIKACHU BlueStageMtMoonWildMons: ; 0x1148d - db RATTATA - db SPEAROW - db SPEAROW - db EKANS - db EKANS - db SANDSHREW - db SANDSHREW - db ZUBAT - db ZUBAT - db PARAS - db PARAS - db PSYDUCK - db GEODUDE - db GEODUDE - db KRABBY - db GOLDEEN + db RATTATA + db SPEAROW + db SPEAROW + db EKANS + db EKANS + db SANDSHREW + db SANDSHREW + db ZUBAT + db ZUBAT + db PARAS + db PARAS + db PSYDUCK + db GEODUDE + db GEODUDE + db KRABBY + db GOLDEEN BlueStageMtMoonWildMonsRare: ; 0x1149d - db EKANS - db EKANS - db SANDSHREW - db SANDSHREW - db CLEFAIRY - db CLEFAIRY - db CLEFAIRY - db CLEFAIRY - db CLEFAIRY - db CLEFAIRY - db ZUBAT - db ZUBAT - db PARAS - db PARAS - db GEODUDE - db GEODUDE + db EKANS + db EKANS + db SANDSHREW + db SANDSHREW + db CLEFAIRY + db CLEFAIRY + db CLEFAIRY + db CLEFAIRY + db CLEFAIRY + db CLEFAIRY + db ZUBAT + db ZUBAT + db PARAS + db PARAS + db GEODUDE + db GEODUDE BlueStageCeruleanCityWildMons: ; 0x114ad - db CATERPIE - db CATERPIE - db PIDGEY - db MEOWTH - db MEOWTH - db MEOWTH - db PSYDUCK - db ABRA - db ABRA - db BELLSPROUT - db BELLSPROUT - db BELLSPROUT - db BELLSPROUT - db BELLSPROUT - db KRABBY - db GOLDEEN + db CATERPIE + db CATERPIE + db PIDGEY + db MEOWTH + db MEOWTH + db MEOWTH + db PSYDUCK + db ABRA + db ABRA + db BELLSPROUT + db BELLSPROUT + db BELLSPROUT + db BELLSPROUT + db BELLSPROUT + db KRABBY + db GOLDEEN BlueStageCeruleanCityWildMonsRare: ; 0x114bd - db WEEDLE - db NIDORAN_M - db MEOWTH - db MEOWTH - db PSYDUCK - db PSYDUCK - db ABRA - db ABRA - db ABRA - db BELLSPROUT - db KRABBY - db GOLDEEN - db GOLDEEN - db JYNX - db JYNX - db JYNX + db WEEDLE + db NIDORAN_M + db MEOWTH + db MEOWTH + db PSYDUCK + db PSYDUCK + db ABRA + db ABRA + db ABRA + db BELLSPROUT + db KRABBY + db GOLDEEN + db GOLDEEN + db JYNX + db JYNX + db JYNX BlueStageVermilionStreetsWildMons: ; 0x114cd - db PIDGEY - db SPEAROW - db SANDSHREW - db SANDSHREW - db MEOWTH - db MEOWTH - db BELLSPROUT - db BELLSPROUT - db SHELLDER - db SHELLDER - db SHELLDER - db DROWZEE - db DROWZEE - db KRABBY - db KRABBY - db KRABBY + db PIDGEY + db SPEAROW + db SANDSHREW + db SANDSHREW + db MEOWTH + db MEOWTH + db BELLSPROUT + db BELLSPROUT + db SHELLDER + db SHELLDER + db SHELLDER + db DROWZEE + db DROWZEE + db KRABBY + db KRABBY + db KRABBY BlueStageVermilionStreetsWildMonsRare: ; 0x114dd - db SANDSHREW - db SANDSHREW - db SANDSHREW - db SANDSHREW - db MEOWTH - db BELLSPROUT - db FARFETCH_D - db FARFETCH_D - db FARFETCH_D - db FARFETCH_D - db SHELLDER - db SHELLDER - db DROWZEE - db DROWZEE - db KRABBY - db KRABBY + db SANDSHREW + db SANDSHREW + db SANDSHREW + db SANDSHREW + db MEOWTH + db BELLSPROUT + db FARFETCH_D + db FARFETCH_D + db FARFETCH_D + db FARFETCH_D + db SHELLDER + db SHELLDER + db DROWZEE + db DROWZEE + db KRABBY + db KRABBY BlueStageRockMountainWildMons: ; 0x114ed - db RATTATA - db SPEAROW - db SANDSHREW - db SANDSHREW - db ZUBAT - db DIGLETT - db DIGLETT - db DIGLETT - db DIGLETT - db MACHOP - db GEODUDE - db SLOWPOKE - db ONIX - db VOLTORB - db VOLTORB - db VOLTORB + db RATTATA + db SPEAROW + db SANDSHREW + db SANDSHREW + db ZUBAT + db DIGLETT + db DIGLETT + db DIGLETT + db DIGLETT + db MACHOP + db GEODUDE + db SLOWPOKE + db ONIX + db VOLTORB + db VOLTORB + db VOLTORB BlueStageRockMountainWildMonsRare: ; 0x114fd - db ZUBAT - db ZUBAT - db DIGLETT - db MACHOP - db MACHOP - db GEODUDE - db GEODUDE - db SLOWPOKE - db SLOWPOKE - db ONIX - db ONIX - db VOLTORB - db VOLTORB - db MR_MIME - db MR_MIME - db MR_MIME + db ZUBAT + db ZUBAT + db DIGLETT + db MACHOP + db MACHOP + db GEODUDE + db GEODUDE + db SLOWPOKE + db SLOWPOKE + db ONIX + db ONIX + db VOLTORB + db VOLTORB + db MR_MIME + db MR_MIME + db MR_MIME BlueStageCeladonCityWildMons: ; 0x1150d - db PIDGEY - db PIDGEY - db VULPIX - db VULPIX - db ODDISH - db ODDISH - db MEOWTH - db MEOWTH - db MEOWTH - db MANKEY - db MANKEY - db MANKEY - db GROWLITHE - db GROWLITHE - db BELLSPROUT - db BELLSPROUT + db PIDGEY + db PIDGEY + db VULPIX + db VULPIX + db ODDISH + db ODDISH + db MEOWTH + db MEOWTH + db MEOWTH + db MANKEY + db MANKEY + db MANKEY + db GROWLITHE + db GROWLITHE + db BELLSPROUT + db BELLSPROUT BlueStageCeladonCityWildMonsRare: ; 0x1151d - db CLEFAIRY - db CLEFAIRY - db ABRA - db ABRA - db SCYTHER - db PINSIR - db EEVEE - db EEVEE - db EEVEE - db PORYGON - db PORYGON - db PORYGON - db PORYGON - db DRATINI - db DRATINI - db DRATINI + db CLEFAIRY + db CLEFAIRY + db ABRA + db ABRA + db SCYTHER + db PINSIR + db EEVEE + db EEVEE + db EEVEE + db PORYGON + db PORYGON + db PORYGON + db PORYGON + db DRATINI + db DRATINI + db DRATINI BlueStageFuchsiaCityWildMons: ; 0x1152d - db VENONAT - db VENONAT - db KRABBY - db KRABBY - db KRABBY - db EXEGGCUTE - db EXEGGCUTE - db KANGASKHAN - db KANGASKHAN - db GOLDEEN - db GOLDEEN - db GOLDEEN - db MAGIKARP - db MAGIKARP - db MAGIKARP - db MAGIKARP + db VENONAT + db VENONAT + db KRABBY + db KRABBY + db KRABBY + db EXEGGCUTE + db EXEGGCUTE + db KANGASKHAN + db KANGASKHAN + db GOLDEEN + db GOLDEEN + db GOLDEEN + db MAGIKARP + db MAGIKARP + db MAGIKARP + db MAGIKARP BlueStageFuchsiaCityWildMonsRare: ; 0x1153d - db VENONAT - db VENONAT - db VENONAT - db VENONAT - db KRABBY - db EXEGGCUTE - db EXEGGCUTE - db EXEGGCUTE - db EXEGGCUTE - db KANGASKHAN - db KANGASKHAN - db KANGASKHAN - db KANGASKHAN - db GOLDEEN - db MAGIKARP - db MAGIKARP + db VENONAT + db VENONAT + db VENONAT + db VENONAT + db KRABBY + db EXEGGCUTE + db EXEGGCUTE + db EXEGGCUTE + db EXEGGCUTE + db KANGASKHAN + db KANGASKHAN + db KANGASKHAN + db KANGASKHAN + db GOLDEEN + db MAGIKARP + db MAGIKARP BlueStageSafariZoneWildMons: ; 0x1154d - db NIDORAN_F - db NIDORAN_F - db NIDORAN_F - db NIDORAN_F - db PARAS - db PARAS - db PARAS - db PARAS - db DODUO - db DODUO - db DODUO - db DODUO - db RHYHORN - db RHYHORN - db RHYHORN - db RHYHORN + db NIDORAN_F + db NIDORAN_F + db NIDORAN_F + db NIDORAN_F + db PARAS + db PARAS + db PARAS + db PARAS + db DODUO + db DODUO + db DODUO + db DODUO + db RHYHORN + db RHYHORN + db RHYHORN + db RHYHORN BlueStageSafariZoneWildMonsRare: ; 0x1155d - db NIDORAN_F - db NIDORAN_F - db PARAS - db PARAS - db RHYHORN - db RHYHORN - db CHANSEY - db CHANSEY - db CHANSEY - db CHANSEY - db PINSIR - db PINSIR - db TAUROS - db TAUROS - db DRATINI - db DRATINI + db NIDORAN_F + db NIDORAN_F + db PARAS + db PARAS + db RHYHORN + db RHYHORN + db CHANSEY + db CHANSEY + db CHANSEY + db CHANSEY + db PINSIR + db PINSIR + db TAUROS + db TAUROS + db DRATINI + db DRATINI BlueStageSaffronCityWildMons: ; 0x1156d - db PIDGEY - db PIDGEY - db EKANS - db EKANS - db EKANS - db SANDSHREW - db SANDSHREW - db SANDSHREW - db VULPIX - db ODDISH - db ODDISH - db MEOWTH - db MANKEY - db GROWLITHE - db BELLSPROUT - db BELLSPROUT + db PIDGEY + db PIDGEY + db EKANS + db EKANS + db EKANS + db SANDSHREW + db SANDSHREW + db SANDSHREW + db VULPIX + db ODDISH + db ODDISH + db MEOWTH + db MANKEY + db GROWLITHE + db BELLSPROUT + db BELLSPROUT BlueStageSaffronCityWildMonsRare: ; 0x1157d - db PIDGEY - db EKANS - db SANDSHREW - db VULPIX - db MEOWTH - db MANKEY - db GROWLITHE - db HITMONLEE - db HITMONLEE - db HITMONLEE - db HITMONCHAN - db HITMONCHAN - db HITMONCHAN - db LAPRAS - db LAPRAS - db LAPRAS + db PIDGEY + db EKANS + db SANDSHREW + db VULPIX + db MEOWTH + db MANKEY + db GROWLITHE + db HITMONLEE + db HITMONLEE + db HITMONLEE + db HITMONCHAN + db HITMONCHAN + db HITMONCHAN + db LAPRAS + db LAPRAS + db LAPRAS BlueStageCinnabarIslandWildMons: ; 0x1158d - db VULPIX - db VULPIX - db VULPIX - db PONYTA - db PONYTA - db PONYTA - db PONYTA - db PONYTA - db GRIMER - db GRIMER - db KOFFING - db KOFFING - db KOFFING - db KOFFING - db TANGELA - db TANGELA + db VULPIX + db VULPIX + db VULPIX + db PONYTA + db PONYTA + db PONYTA + db PONYTA + db PONYTA + db GRIMER + db GRIMER + db KOFFING + db KOFFING + db KOFFING + db KOFFING + db TANGELA + db TANGELA BlueStageCinnabarIslandWildMonsRare: ; 0x1159d - db VULPIX - db PONYTA - db PONYTA - db GRIMER - db GRIMER - db KOFFING - db KOFFING - db TANGELA - db TANGELA - db TANGELA - db MAGMAR - db MAGMAR - db MAGMAR - db AERODACTYL - db AERODACTYL - db AERODACTYL + db VULPIX + db PONYTA + db PONYTA + db GRIMER + db GRIMER + db KOFFING + db KOFFING + db TANGELA + db TANGELA + db TANGELA + db MAGMAR + db MAGMAR + db MAGMAR + db AERODACTYL + db AERODACTYL + db AERODACTYL BlueStageIndigoPlateauWildMons: ; 0x115ad - db SPEAROW - db SANDSHREW - db ZUBAT - db ZUBAT - db MACHOP - db MACHOP - db MACHOP - db GEODUDE - db GEODUDE - db GEODUDE - db ONIX - db ONIX - db ONIX - db DITTO - db DITTO - db DITTO + db SPEAROW + db SANDSHREW + db ZUBAT + db ZUBAT + db MACHOP + db MACHOP + db MACHOP + db GEODUDE + db GEODUDE + db GEODUDE + db ONIX + db ONIX + db ONIX + db DITTO + db DITTO + db DITTO BlueStageIndigoPlateauWildMonsRare: ; 0x115bd - db SPEAROW - db SANDSHREW - db ZUBAT - db MACHOP - db GEODUDE - db ONIX - db DITTO - db DITTO - db DITTO - db DITTO - db MOLTRES - db MOLTRES - db MOLTRES - db MEWTWO - db MEWTWO - db MEWTWO + db SPEAROW + db SANDSHREW + db ZUBAT + db MACHOP + db GEODUDE + db ONIX + db DITTO + db DITTO + db DITTO + db DITTO + db MOLTRES + db MOLTRES + db MOLTRES + db MEWTWO + db MEWTWO + db MEWTWO - db MEW + db MEW diff --git a/data/catchem_timer_values.asm b/data/catchem_timer_values.asm index 15bf275..5e7c776 100755 --- a/data/catchem_timer_values.asm +++ b/data/catchem_timer_values.asm @@ -4,154 +4,154 @@ CatchEmTimerData: ; 0x12a22 ; different pokemon have different times, in order to add difficulty. ; First byte = seconds value ; Second byte = minutes value - db $00, $02 ; BULBASAUR - db $00, $02 ; IVYSAUR - db $00, $02 ; VENUSAUR - db $00, $02 ; CHARMANDER - db $00, $02 ; CHARMELEON - db $00, $02 ; CHARIZARD - db $00, $02 ; SQUIRTLE - db $00, $02 ; WARTORTLE - db $00, $02 ; BLASTOISE - db $00, $02 ; CATERPIE - db $00, $02 ; METAPOD - db $00, $02 ; BUTTERFREE - db $00, $02 ; WEEDLE - db $00, $02 ; KAKUNA - db $00, $02 ; BEEDRILL - db $00, $02 ; PIDGEY - db $00, $02 ; PIDGEOTTO - db $00, $02 ; PIDGEOT - db $00, $02 ; RATTATA - db $00, $02 ; RATICATE - db $00, $02 ; SPEAROW - db $00, $02 ; FEAROW - db $00, $02 ; EKANS - db $00, $02 ; ARBOK - db $00, $02 ; PIKACHU - db $00, $02 ; RAICHU - db $00, $02 ; SANDSHREW - db $00, $02 ; SANDSLASH - db $00, $02 ; NIDORAN_F - db $00, $02 ; NIDORINA - db $00, $02 ; NIDOQUEEN - db $00, $02 ; NIDORAN_M - db $00, $02 ; NIDORINO - db $00, $02 ; NIDOKING - db $00, $02 ; CLEFAIRY - db $00, $02 ; CLEFABLE - db $00, $02 ; VULPIX - db $00, $02 ; NINETALES - db $00, $02 ; JIGGLYPUFF - db $00, $02 ; WIGGLYTUFF - db $00, $02 ; ZUBAT - db $00, $02 ; GOLBAT - db $00, $02 ; ODDISH - db $00, $02 ; GLOOM - db $00, $02 ; VILEPLUME - db $00, $02 ; PARAS - db $00, $02 ; PARASECT - db $00, $02 ; VENONAT - db $00, $02 ; VENOMOTH - db $00, $02 ; DIGLETT - db $00, $02 ; DUGTRIO - db $00, $02 ; MEOWTH - db $00, $02 ; PERSIAN - db $00, $02 ; PSYDUCK - db $00, $02 ; GOLDUCK - db $00, $02 ; MANKEY - db $00, $02 ; PRIMEAPE - db $00, $02 ; GROWLITHE - db $00, $02 ; ARCANINE - db $00, $02 ; POLIWAG - db $00, $02 ; POLIWHIRL - db $00, $02 ; POLIWRATH - db $00, $02 ; ABRA - db $00, $02 ; KADABRA - db $00, $02 ; ALAKAZAM - db $00, $02 ; MACHOP - db $00, $02 ; MACHOKE - db $00, $02 ; MACHAMP - db $00, $02 ; BELLSPROUT - db $00, $02 ; WEEPINBELL - db $00, $02 ; VICTREEBEL - db $00, $02 ; TENTACOOL - db $00, $02 ; TENTACRUEL - db $00, $02 ; GEODUDE - db $00, $02 ; GRAVELER - db $00, $02 ; GOLEM - db $00, $02 ; PONYTA - db $00, $02 ; RAPIDASH - db $00, $02 ; SLOWPOKE - db $00, $02 ; SLOWBRO - db $00, $02 ; MAGNEMITE - db $00, $02 ; MAGNETON - db $00, $02 ; FARFETCH_D - db $00, $02 ; DODUO - db $00, $02 ; DODRIO - db $00, $02 ; SEEL - db $00, $02 ; DEWGONG - db $00, $02 ; GRIMER - db $00, $02 ; MUK - db $00, $02 ; SHELLDER - db $00, $02 ; CLOYSTER - db $00, $02 ; GASTLY - db $00, $02 ; HAUNTER - db $00, $02 ; GENGAR - db $00, $02 ; ONIX - db $00, $02 ; DROWZEE - db $00, $02 ; HYPNO - db $00, $02 ; KRABBY - db $00, $02 ; KINGLER - db $00, $02 ; VOLTORB - db $00, $02 ; ELECTRODE - db $00, $02 ; EXEGGCUTE - db $00, $02 ; EXEGGUTOR - db $00, $02 ; CUBONE - db $00, $02 ; MAROWAK - db $00, $02 ; HITMONLEE - db $00, $02 ; HITMONCHAN - db $00, $02 ; LICKITUNG - db $00, $02 ; KOFFING - db $00, $02 ; WEEZING - db $00, $02 ; RHYHORN - db $00, $02 ; RHYDON - db $00, $02 ; CHANSEY - db $00, $02 ; TANGELA - db $00, $02 ; KANGASKHAN - db $00, $02 ; HORSEA - db $00, $02 ; SEADRA - db $00, $02 ; GOLDEEN - db $00, $02 ; SEAKING - db $00, $02 ; STARYU - db $00, $02 ; STARMIE - db $00, $02 ; MR_MIME - db $00, $02 ; SCYTHER - db $00, $02 ; JYNX - db $00, $02 ; ELECTABUZZ - db $00, $02 ; MAGMAR - db $00, $02 ; PINSIR - db $00, $02 ; TAUROS - db $00, $02 ; MAGIKARP - db $00, $02 ; GYARADOS - db $00, $02 ; LAPRAS - db $00, $02 ; DITTO - db $00, $02 ; EEVEE - db $00, $02 ; VAPOREON - db $00, $02 ; JOLTEON - db $00, $02 ; FLAREON - db $00, $02 ; PORYGON - db $00, $02 ; OMANYTE - db $00, $02 ; OMASTAR - db $00, $02 ; KABUTO - db $00, $02 ; KABUTOPS - db $00, $02 ; AERODACTYL - db $00, $02 ; SNORLAX - db $00, $02 ; ARTICUNO - db $00, $02 ; ZAPDOS - db $00, $02 ; MOLTRES - db $00, $02 ; DRATINI - db $00, $02 ; DRAGONAIR - db $00, $02 ; DRAGONITE - db $00, $02 ; MEWTWO - db $00, $02 ; MEW + db $00, $02 ; BULBASAUR + db $00, $02 ; IVYSAUR + db $00, $02 ; VENUSAUR + db $00, $02 ; CHARMANDER + db $00, $02 ; CHARMELEON + db $00, $02 ; CHARIZARD + db $00, $02 ; SQUIRTLE + db $00, $02 ; WARTORTLE + db $00, $02 ; BLASTOISE + db $00, $02 ; CATERPIE + db $00, $02 ; METAPOD + db $00, $02 ; BUTTERFREE + db $00, $02 ; WEEDLE + db $00, $02 ; KAKUNA + db $00, $02 ; BEEDRILL + db $00, $02 ; PIDGEY + db $00, $02 ; PIDGEOTTO + db $00, $02 ; PIDGEOT + db $00, $02 ; RATTATA + db $00, $02 ; RATICATE + db $00, $02 ; SPEAROW + db $00, $02 ; FEAROW + db $00, $02 ; EKANS + db $00, $02 ; ARBOK + db $00, $02 ; PIKACHU + db $00, $02 ; RAICHU + db $00, $02 ; SANDSHREW + db $00, $02 ; SANDSLASH + db $00, $02 ; NIDORAN_F + db $00, $02 ; NIDORINA + db $00, $02 ; NIDOQUEEN + db $00, $02 ; NIDORAN_M + db $00, $02 ; NIDORINO + db $00, $02 ; NIDOKING + db $00, $02 ; CLEFAIRY + db $00, $02 ; CLEFABLE + db $00, $02 ; VULPIX + db $00, $02 ; NINETALES + db $00, $02 ; JIGGLYPUFF + db $00, $02 ; WIGGLYTUFF + db $00, $02 ; ZUBAT + db $00, $02 ; GOLBAT + db $00, $02 ; ODDISH + db $00, $02 ; GLOOM + db $00, $02 ; VILEPLUME + db $00, $02 ; PARAS + db $00, $02 ; PARASECT + db $00, $02 ; VENONAT + db $00, $02 ; VENOMOTH + db $00, $02 ; DIGLETT + db $00, $02 ; DUGTRIO + db $00, $02 ; MEOWTH + db $00, $02 ; PERSIAN + db $00, $02 ; PSYDUCK + db $00, $02 ; GOLDUCK + db $00, $02 ; MANKEY + db $00, $02 ; PRIMEAPE + db $00, $02 ; GROWLITHE + db $00, $02 ; ARCANINE + db $00, $02 ; POLIWAG + db $00, $02 ; POLIWHIRL + db $00, $02 ; POLIWRATH + db $00, $02 ; ABRA + db $00, $02 ; KADABRA + db $00, $02 ; ALAKAZAM + db $00, $02 ; MACHOP + db $00, $02 ; MACHOKE + db $00, $02 ; MACHAMP + db $00, $02 ; BELLSPROUT + db $00, $02 ; WEEPINBELL + db $00, $02 ; VICTREEBEL + db $00, $02 ; TENTACOOL + db $00, $02 ; TENTACRUEL + db $00, $02 ; GEODUDE + db $00, $02 ; GRAVELER + db $00, $02 ; GOLEM + db $00, $02 ; PONYTA + db $00, $02 ; RAPIDASH + db $00, $02 ; SLOWPOKE + db $00, $02 ; SLOWBRO + db $00, $02 ; MAGNEMITE + db $00, $02 ; MAGNETON + db $00, $02 ; FARFETCH_D + db $00, $02 ; DODUO + db $00, $02 ; DODRIO + db $00, $02 ; SEEL + db $00, $02 ; DEWGONG + db $00, $02 ; GRIMER + db $00, $02 ; MUK + db $00, $02 ; SHELLDER + db $00, $02 ; CLOYSTER + db $00, $02 ; GASTLY + db $00, $02 ; HAUNTER + db $00, $02 ; GENGAR + db $00, $02 ; ONIX + db $00, $02 ; DROWZEE + db $00, $02 ; HYPNO + db $00, $02 ; KRABBY + db $00, $02 ; KINGLER + db $00, $02 ; VOLTORB + db $00, $02 ; ELECTRODE + db $00, $02 ; EXEGGCUTE + db $00, $02 ; EXEGGUTOR + db $00, $02 ; CUBONE + db $00, $02 ; MAROWAK + db $00, $02 ; HITMONLEE + db $00, $02 ; HITMONCHAN + db $00, $02 ; LICKITUNG + db $00, $02 ; KOFFING + db $00, $02 ; WEEZING + db $00, $02 ; RHYHORN + db $00, $02 ; RHYDON + db $00, $02 ; CHANSEY + db $00, $02 ; TANGELA + db $00, $02 ; KANGASKHAN + db $00, $02 ; HORSEA + db $00, $02 ; SEADRA + db $00, $02 ; GOLDEEN + db $00, $02 ; SEAKING + db $00, $02 ; STARYU + db $00, $02 ; STARMIE + db $00, $02 ; MR_MIME + db $00, $02 ; SCYTHER + db $00, $02 ; JYNX + db $00, $02 ; ELECTABUZZ + db $00, $02 ; MAGMAR + db $00, $02 ; PINSIR + db $00, $02 ; TAUROS + db $00, $02 ; MAGIKARP + db $00, $02 ; GYARADOS + db $00, $02 ; LAPRAS + db $00, $02 ; DITTO + db $00, $02 ; EEVEE + db $00, $02 ; VAPOREON + db $00, $02 ; JOLTEON + db $00, $02 ; FLAREON + db $00, $02 ; PORYGON + db $00, $02 ; OMANYTE + db $00, $02 ; OMASTAR + db $00, $02 ; KABUTO + db $00, $02 ; KABUTOPS + db $00, $02 ; AERODACTYL + db $00, $02 ; SNORLAX + db $00, $02 ; ARTICUNO + db $00, $02 ; ZAPDOS + db $00, $02 ; MOLTRES + db $00, $02 ; DRATINI + db $00, $02 ; DRAGONAIR + db $00, $02 ; DRAGONITE + db $00, $02 ; MEWTWO + db $00, $02 ; MEW diff --git a/data/diglett_stage/diglett_stage_animation_data.asm b/data/diglett_stage/diglett_stage_animation_data.asm index 0a407c5..2a0384d 100755 --- a/data/diglett_stage/diglett_stage_animation_data.asm +++ b/data/diglett_stage/diglett_stage_animation_data.asm @@ -1,2275 +1,2275 @@ DiglettInitializeOrder: ; 0x19ed1 ; This list specifies the order that digletts are initialized. ; Each byte corresponds to an entry in wDiglettStates. - db $00 - db $1C - db $01 - db $1D - db $03 - db $19 - db $06 - db $15 - db $02 - db $1E - db $04 - db $1A - db $07 - db $16 - db $0A - db $11 - db $05 - db $1B - db $08 - db $17 - db $0B - db $12 - db $0E - db $09 - db $18 - db $0C - db $13 - db $0F - db $0D - db $14 - db $10 - dbw $FF, DiglettInitializeOrder ; terminator + db $00 + db $1C + db $01 + db $1D + db $03 + db $19 + db $06 + db $15 + db $02 + db $1E + db $04 + db $1A + db $07 + db $16 + db $0A + db $11 + db $05 + db $1B + db $08 + db $17 + db $0B + db $12 + db $0E + db $09 + db $18 + db $0C + db $13 + db $0F + db $0D + db $14 + db $10 + dbw $FF, DiglettInitializeOrder ; terminator DiglettUpdateOrder: ; 0x19ef3 ; This list specifies the order that digletts are updated. ; Each byte corresponds to an entry in wDiglettStates - db $00 - db $11 - db $03 - db $14 - db $06 - db $17 - db $09 - db $1A - db $0C - db $1D - db $0F - db $01 - db $12 - db $04 - db $15 - db $07 - db $18 - db $0A - db $1B - db $0D - db $1E - db $10 - db $02 - db $13 - db $05 - db $16 - db $08 - db $19 - db $0B - db $1C - db $0E - dbw $FF, DiglettUpdateOrder ; terminator + db $00 + db $11 + db $03 + db $14 + db $06 + db $17 + db $09 + db $1A + db $0C + db $1D + db $0F + db $01 + db $12 + db $04 + db $15 + db $07 + db $18 + db $0A + db $1B + db $0D + db $1E + db $10 + db $02 + db $13 + db $05 + db $16 + db $08 + db $19 + db $0B + db $1C + db $0E + dbw $FF, DiglettUpdateOrder ; terminator DiglettTileDataPointers: ; 0x19f15 - dw DiglettTileDataPointer_1a095 - dw DiglettTileDataPointer_1a089 - dw DiglettTileDataPointer_1a08c - dw DiglettTileDataPointer_1a089 - dw DiglettTileDataPointer_1a08f - dw DiglettTileDataPointer_1a092 - dw DiglettTileDataPointer_1a0a4 - dw DiglettTileDataPointer_1a098 - dw DiglettTileDataPointer_1a09b - dw DiglettTileDataPointer_1a098 - dw DiglettTileDataPointer_1a09e - dw DiglettTileDataPointer_1a0a1 - dw DiglettTileDataPointer_1a0b3 - dw DiglettTileDataPointer_1a0a7 - dw DiglettTileDataPointer_1a0aa - dw DiglettTileDataPointer_1a0a7 - dw DiglettTileDataPointer_1a0ad - dw DiglettTileDataPointer_1a0b0 - dw DiglettTileDataPointer_1a0c2 - dw DiglettTileDataPointer_1a0b6 - dw DiglettTileDataPointer_1a0b9 - dw DiglettTileDataPointer_1a0b6 - dw DiglettTileDataPointer_1a0bc - dw DiglettTileDataPointer_1a0bf - dw DiglettTileDataPointer_1a0d1 - dw DiglettTileDataPointer_1a0c5 - dw DiglettTileDataPointer_1a0c8 - dw DiglettTileDataPointer_1a0c5 - dw DiglettTileDataPointer_1a0cb - dw DiglettTileDataPointer_1a0ce - dw DiglettTileDataPointer_1a0e0 - dw DiglettTileDataPointer_1a0d4 - dw DiglettTileDataPointer_1a0d7 - dw DiglettTileDataPointer_1a0d4 - dw DiglettTileDataPointer_1a0da - dw DiglettTileDataPointer_1a0dd - dw DiglettTileDataPointer_1a0ef - dw DiglettTileDataPointer_1a0e3 - dw DiglettTileDataPointer_1a0e6 - dw DiglettTileDataPointer_1a0e3 - dw DiglettTileDataPointer_1a0e9 - dw DiglettTileDataPointer_1a0ec - dw DiglettTileDataPointer_1a0fe - dw DiglettTileDataPointer_1a0f2 - dw DiglettTileDataPointer_1a0f5 - dw DiglettTileDataPointer_1a0f2 - dw DiglettTileDataPointer_1a0f8 - dw DiglettTileDataPointer_1a0fb - dw DiglettTileDataPointer_1a10d - dw DiglettTileDataPointer_1a101 - dw DiglettTileDataPointer_1a104 - dw DiglettTileDataPointer_1a101 - dw DiglettTileDataPointer_1a107 - dw DiglettTileDataPointer_1a10a - dw DiglettTileDataPointer_1a11c - dw DiglettTileDataPointer_1a110 - dw DiglettTileDataPointer_1a113 - dw DiglettTileDataPointer_1a110 - dw DiglettTileDataPointer_1a116 - dw DiglettTileDataPointer_1a119 - dw DiglettTileDataPointer_1a12b - dw DiglettTileDataPointer_1a11f - dw DiglettTileDataPointer_1a122 - dw DiglettTileDataPointer_1a11f - dw DiglettTileDataPointer_1a125 - dw DiglettTileDataPointer_1a128 - dw DiglettTileDataPointer_1a13a - dw DiglettTileDataPointer_1a12e - dw DiglettTileDataPointer_1a131 - dw DiglettTileDataPointer_1a12e - dw DiglettTileDataPointer_1a134 - dw DiglettTileDataPointer_1a137 - dw DiglettTileDataPointer_1a149 - dw DiglettTileDataPointer_1a13d - dw DiglettTileDataPointer_1a140 - dw DiglettTileDataPointer_1a13d - dw DiglettTileDataPointer_1a143 - dw DiglettTileDataPointer_1a146 - dw DiglettTileDataPointer_1a158 - dw DiglettTileDataPointer_1a14c - dw DiglettTileDataPointer_1a14f - dw DiglettTileDataPointer_1a14c - dw DiglettTileDataPointer_1a152 - dw DiglettTileDataPointer_1a155 - dw DiglettTileDataPointer_1a167 - dw DiglettTileDataPointer_1a15b - dw DiglettTileDataPointer_1a15e - dw DiglettTileDataPointer_1a15b - dw DiglettTileDataPointer_1a161 - dw DiglettTileDataPointer_1a164 - dw DiglettTileDataPointer_1a176 - dw DiglettTileDataPointer_1a16a - dw DiglettTileDataPointer_1a16d - dw DiglettTileDataPointer_1a16a - dw DiglettTileDataPointer_1a170 - dw DiglettTileDataPointer_1a173 - dw DiglettTileDataPointer_1a185 - dw DiglettTileDataPointer_1a179 - dw DiglettTileDataPointer_1a17c - dw DiglettTileDataPointer_1a179 - dw DiglettTileDataPointer_1a17f - dw DiglettTileDataPointer_1a182 - dw DiglettTileDataPointer_1a194 - dw DiglettTileDataPointer_1a188 - dw DiglettTileDataPointer_1a18b - dw DiglettTileDataPointer_1a188 - dw DiglettTileDataPointer_1a18e - dw DiglettTileDataPointer_1a191 - dw DiglettTileDataPointer_1a1a3 - dw DiglettTileDataPointer_1a197 - dw DiglettTileDataPointer_1a19a - dw DiglettTileDataPointer_1a197 - dw DiglettTileDataPointer_1a19d - dw DiglettTileDataPointer_1a1a0 - dw DiglettTileDataPointer_1a1b2 - dw DiglettTileDataPointer_1a1a6 - dw DiglettTileDataPointer_1a1a9 - dw DiglettTileDataPointer_1a1a6 - dw DiglettTileDataPointer_1a1ac - dw DiglettTileDataPointer_1a1af - dw DiglettTileDataPointer_1a1c1 - dw DiglettTileDataPointer_1a1b5 - dw DiglettTileDataPointer_1a1b8 - dw DiglettTileDataPointer_1a1b5 - dw DiglettTileDataPointer_1a1bb - dw DiglettTileDataPointer_1a1be - dw DiglettTileDataPointer_1a1d0 - dw DiglettTileDataPointer_1a1c4 - dw DiglettTileDataPointer_1a1c7 - dw DiglettTileDataPointer_1a1c4 - dw DiglettTileDataPointer_1a1ca - dw DiglettTileDataPointer_1a1cd - dw DiglettTileDataPointer_1a1df - dw DiglettTileDataPointer_1a1d3 - dw DiglettTileDataPointer_1a1d6 - dw DiglettTileDataPointer_1a1d3 - dw DiglettTileDataPointer_1a1d9 - dw DiglettTileDataPointer_1a1dc - dw DiglettTileDataPointer_1a1ee - dw DiglettTileDataPointer_1a1e2 - dw DiglettTileDataPointer_1a1e5 - dw DiglettTileDataPointer_1a1e2 - dw DiglettTileDataPointer_1a1e8 - dw DiglettTileDataPointer_1a1eb - dw DiglettTileDataPointer_1a1fd - dw DiglettTileDataPointer_1a1f1 - dw DiglettTileDataPointer_1a1f4 - dw DiglettTileDataPointer_1a1f1 - dw DiglettTileDataPointer_1a1f7 - dw DiglettTileDataPointer_1a1fa - dw DiglettTileDataPointer_1a20c - dw DiglettTileDataPointer_1a200 - dw DiglettTileDataPointer_1a203 - dw DiglettTileDataPointer_1a200 - dw DiglettTileDataPointer_1a206 - dw DiglettTileDataPointer_1a209 - dw DiglettTileDataPointer_1a21b - dw DiglettTileDataPointer_1a20f - dw DiglettTileDataPointer_1a212 - dw DiglettTileDataPointer_1a20f - dw DiglettTileDataPointer_1a215 - dw DiglettTileDataPointer_1a218 - dw DiglettTileDataPointer_1a22a - dw DiglettTileDataPointer_1a21e - dw DiglettTileDataPointer_1a221 - dw DiglettTileDataPointer_1a21e - dw DiglettTileDataPointer_1a224 - dw DiglettTileDataPointer_1a227 - dw DiglettTileDataPointer_1a239 - dw DiglettTileDataPointer_1a22d - dw DiglettTileDataPointer_1a230 - dw DiglettTileDataPointer_1a22d - dw DiglettTileDataPointer_1a233 - dw DiglettTileDataPointer_1a236 - dw DiglettTileDataPointer_1a248 - dw DiglettTileDataPointer_1a23c - dw DiglettTileDataPointer_1a23f - dw DiglettTileDataPointer_1a23c - dw DiglettTileDataPointer_1a242 - dw DiglettTileDataPointer_1a245 - dw DiglettTileDataPointer_1a257 - dw DiglettTileDataPointer_1a24b - dw DiglettTileDataPointer_1a24e - dw DiglettTileDataPointer_1a24b - dw DiglettTileDataPointer_1a251 - dw DiglettTileDataPointer_1a254 + dw DiglettTileDataPointer_1a095 + dw DiglettTileDataPointer_1a089 + dw DiglettTileDataPointer_1a08c + dw DiglettTileDataPointer_1a089 + dw DiglettTileDataPointer_1a08f + dw DiglettTileDataPointer_1a092 + dw DiglettTileDataPointer_1a0a4 + dw DiglettTileDataPointer_1a098 + dw DiglettTileDataPointer_1a09b + dw DiglettTileDataPointer_1a098 + dw DiglettTileDataPointer_1a09e + dw DiglettTileDataPointer_1a0a1 + dw DiglettTileDataPointer_1a0b3 + dw DiglettTileDataPointer_1a0a7 + dw DiglettTileDataPointer_1a0aa + dw DiglettTileDataPointer_1a0a7 + dw DiglettTileDataPointer_1a0ad + dw DiglettTileDataPointer_1a0b0 + dw DiglettTileDataPointer_1a0c2 + dw DiglettTileDataPointer_1a0b6 + dw DiglettTileDataPointer_1a0b9 + dw DiglettTileDataPointer_1a0b6 + dw DiglettTileDataPointer_1a0bc + dw DiglettTileDataPointer_1a0bf + dw DiglettTileDataPointer_1a0d1 + dw DiglettTileDataPointer_1a0c5 + dw DiglettTileDataPointer_1a0c8 + dw DiglettTileDataPointer_1a0c5 + dw DiglettTileDataPointer_1a0cb + dw DiglettTileDataPointer_1a0ce + dw DiglettTileDataPointer_1a0e0 + dw DiglettTileDataPointer_1a0d4 + dw DiglettTileDataPointer_1a0d7 + dw DiglettTileDataPointer_1a0d4 + dw DiglettTileDataPointer_1a0da + dw DiglettTileDataPointer_1a0dd + dw DiglettTileDataPointer_1a0ef + dw DiglettTileDataPointer_1a0e3 + dw DiglettTileDataPointer_1a0e6 + dw DiglettTileDataPointer_1a0e3 + dw DiglettTileDataPointer_1a0e9 + dw DiglettTileDataPointer_1a0ec + dw DiglettTileDataPointer_1a0fe + dw DiglettTileDataPointer_1a0f2 + dw DiglettTileDataPointer_1a0f5 + dw DiglettTileDataPointer_1a0f2 + dw DiglettTileDataPointer_1a0f8 + dw DiglettTileDataPointer_1a0fb + dw DiglettTileDataPointer_1a10d + dw DiglettTileDataPointer_1a101 + dw DiglettTileDataPointer_1a104 + dw DiglettTileDataPointer_1a101 + dw DiglettTileDataPointer_1a107 + dw DiglettTileDataPointer_1a10a + dw DiglettTileDataPointer_1a11c + dw DiglettTileDataPointer_1a110 + dw DiglettTileDataPointer_1a113 + dw DiglettTileDataPointer_1a110 + dw DiglettTileDataPointer_1a116 + dw DiglettTileDataPointer_1a119 + dw DiglettTileDataPointer_1a12b + dw DiglettTileDataPointer_1a11f + dw DiglettTileDataPointer_1a122 + dw DiglettTileDataPointer_1a11f + dw DiglettTileDataPointer_1a125 + dw DiglettTileDataPointer_1a128 + dw DiglettTileDataPointer_1a13a + dw DiglettTileDataPointer_1a12e + dw DiglettTileDataPointer_1a131 + dw DiglettTileDataPointer_1a12e + dw DiglettTileDataPointer_1a134 + dw DiglettTileDataPointer_1a137 + dw DiglettTileDataPointer_1a149 + dw DiglettTileDataPointer_1a13d + dw DiglettTileDataPointer_1a140 + dw DiglettTileDataPointer_1a13d + dw DiglettTileDataPointer_1a143 + dw DiglettTileDataPointer_1a146 + dw DiglettTileDataPointer_1a158 + dw DiglettTileDataPointer_1a14c + dw DiglettTileDataPointer_1a14f + dw DiglettTileDataPointer_1a14c + dw DiglettTileDataPointer_1a152 + dw DiglettTileDataPointer_1a155 + dw DiglettTileDataPointer_1a167 + dw DiglettTileDataPointer_1a15b + dw DiglettTileDataPointer_1a15e + dw DiglettTileDataPointer_1a15b + dw DiglettTileDataPointer_1a161 + dw DiglettTileDataPointer_1a164 + dw DiglettTileDataPointer_1a176 + dw DiglettTileDataPointer_1a16a + dw DiglettTileDataPointer_1a16d + dw DiglettTileDataPointer_1a16a + dw DiglettTileDataPointer_1a170 + dw DiglettTileDataPointer_1a173 + dw DiglettTileDataPointer_1a185 + dw DiglettTileDataPointer_1a179 + dw DiglettTileDataPointer_1a17c + dw DiglettTileDataPointer_1a179 + dw DiglettTileDataPointer_1a17f + dw DiglettTileDataPointer_1a182 + dw DiglettTileDataPointer_1a194 + dw DiglettTileDataPointer_1a188 + dw DiglettTileDataPointer_1a18b + dw DiglettTileDataPointer_1a188 + dw DiglettTileDataPointer_1a18e + dw DiglettTileDataPointer_1a191 + dw DiglettTileDataPointer_1a1a3 + dw DiglettTileDataPointer_1a197 + dw DiglettTileDataPointer_1a19a + dw DiglettTileDataPointer_1a197 + dw DiglettTileDataPointer_1a19d + dw DiglettTileDataPointer_1a1a0 + dw DiglettTileDataPointer_1a1b2 + dw DiglettTileDataPointer_1a1a6 + dw DiglettTileDataPointer_1a1a9 + dw DiglettTileDataPointer_1a1a6 + dw DiglettTileDataPointer_1a1ac + dw DiglettTileDataPointer_1a1af + dw DiglettTileDataPointer_1a1c1 + dw DiglettTileDataPointer_1a1b5 + dw DiglettTileDataPointer_1a1b8 + dw DiglettTileDataPointer_1a1b5 + dw DiglettTileDataPointer_1a1bb + dw DiglettTileDataPointer_1a1be + dw DiglettTileDataPointer_1a1d0 + dw DiglettTileDataPointer_1a1c4 + dw DiglettTileDataPointer_1a1c7 + dw DiglettTileDataPointer_1a1c4 + dw DiglettTileDataPointer_1a1ca + dw DiglettTileDataPointer_1a1cd + dw DiglettTileDataPointer_1a1df + dw DiglettTileDataPointer_1a1d3 + dw DiglettTileDataPointer_1a1d6 + dw DiglettTileDataPointer_1a1d3 + dw DiglettTileDataPointer_1a1d9 + dw DiglettTileDataPointer_1a1dc + dw DiglettTileDataPointer_1a1ee + dw DiglettTileDataPointer_1a1e2 + dw DiglettTileDataPointer_1a1e5 + dw DiglettTileDataPointer_1a1e2 + dw DiglettTileDataPointer_1a1e8 + dw DiglettTileDataPointer_1a1eb + dw DiglettTileDataPointer_1a1fd + dw DiglettTileDataPointer_1a1f1 + dw DiglettTileDataPointer_1a1f4 + dw DiglettTileDataPointer_1a1f1 + dw DiglettTileDataPointer_1a1f7 + dw DiglettTileDataPointer_1a1fa + dw DiglettTileDataPointer_1a20c + dw DiglettTileDataPointer_1a200 + dw DiglettTileDataPointer_1a203 + dw DiglettTileDataPointer_1a200 + dw DiglettTileDataPointer_1a206 + dw DiglettTileDataPointer_1a209 + dw DiglettTileDataPointer_1a21b + dw DiglettTileDataPointer_1a20f + dw DiglettTileDataPointer_1a212 + dw DiglettTileDataPointer_1a20f + dw DiglettTileDataPointer_1a215 + dw DiglettTileDataPointer_1a218 + dw DiglettTileDataPointer_1a22a + dw DiglettTileDataPointer_1a21e + dw DiglettTileDataPointer_1a221 + dw DiglettTileDataPointer_1a21e + dw DiglettTileDataPointer_1a224 + dw DiglettTileDataPointer_1a227 + dw DiglettTileDataPointer_1a239 + dw DiglettTileDataPointer_1a22d + dw DiglettTileDataPointer_1a230 + dw DiglettTileDataPointer_1a22d + dw DiglettTileDataPointer_1a233 + dw DiglettTileDataPointer_1a236 + dw DiglettTileDataPointer_1a248 + dw DiglettTileDataPointer_1a23c + dw DiglettTileDataPointer_1a23f + dw DiglettTileDataPointer_1a23c + dw DiglettTileDataPointer_1a242 + dw DiglettTileDataPointer_1a245 + dw DiglettTileDataPointer_1a257 + dw DiglettTileDataPointer_1a24b + dw DiglettTileDataPointer_1a24e + dw DiglettTileDataPointer_1a24b + dw DiglettTileDataPointer_1a251 + dw DiglettTileDataPointer_1a254 DiglettTileDataPointer_1a089: ; 0x1a089 - dbw $01, DiglettTileData_1a25a + dbw $01, DiglettTileData_1a25a DiglettTileDataPointer_1a08c: ; 0x1a08c - dbw $01, DiglettTileData_1a268 + dbw $01, DiglettTileData_1a268 DiglettTileDataPointer_1a08f: ; 0x1a08f - dbw $01, DiglettTileData_1a276 + dbw $01, DiglettTileData_1a276 DiglettTileDataPointer_1a092: ; 0x1a092 - dbw $01, DiglettTileData_1a284 + dbw $01, DiglettTileData_1a284 DiglettTileDataPointer_1a095: ; 0x1a095 - dbw $01, DiglettTileData_1a292 + dbw $01, DiglettTileData_1a292 DiglettTileDataPointer_1a098: ; 0x1a098 - dbw $01, DiglettTileData_1a2a0 + dbw $01, DiglettTileData_1a2a0 DiglettTileDataPointer_1a09b: ; 0x1a09b - dbw $01, DiglettTileData_1a2ae + dbw $01, DiglettTileData_1a2ae DiglettTileDataPointer_1a09e: ; 0x1a09e - dbw $01, DiglettTileData_1a2bc + dbw $01, DiglettTileData_1a2bc DiglettTileDataPointer_1a0a1: ; 0x1a0a1 - dbw $01, DiglettTileData_1a2ca + dbw $01, DiglettTileData_1a2ca DiglettTileDataPointer_1a0a4: ; 0x1a0a4 - dbw $01, DiglettTileData_1a2d8 + dbw $01, DiglettTileData_1a2d8 DiglettTileDataPointer_1a0a7: ; 0x1a0a7 - dbw $01, DiglettTileData_1a2e6 + dbw $01, DiglettTileData_1a2e6 DiglettTileDataPointer_1a0aa: ; 0x1a0aa - dbw $01, DiglettTileData_1a2f4 + dbw $01, DiglettTileData_1a2f4 DiglettTileDataPointer_1a0ad: ; 0x1a0ad - dbw $01, DiglettTileData_1a302 + dbw $01, DiglettTileData_1a302 DiglettTileDataPointer_1a0b0: ; 0x1a0b0 - dbw $01, DiglettTileData_1a310 + dbw $01, DiglettTileData_1a310 DiglettTileDataPointer_1a0b3: ; 0x1a0b3 - dbw $01, DiglettTileData_1a31e + dbw $01, DiglettTileData_1a31e DiglettTileDataPointer_1a0b6: ; 0x1a0b6 - dbw $01, DiglettTileData_1a32c + dbw $01, DiglettTileData_1a32c DiglettTileDataPointer_1a0b9: ; 0x1a0b9 - dbw $01, DiglettTileData_1a33a + dbw $01, DiglettTileData_1a33a DiglettTileDataPointer_1a0bc: ; 0x1a0bc - dbw $01, DiglettTileData_1a348 + dbw $01, DiglettTileData_1a348 DiglettTileDataPointer_1a0bf: ; 0x1a0bf - dbw $01, DiglettTileData_1a356 + dbw $01, DiglettTileData_1a356 DiglettTileDataPointer_1a0c2: ; 0x1a0c2 - dbw $01, DiglettTileData_1a364 + dbw $01, DiglettTileData_1a364 DiglettTileDataPointer_1a0c5: ; 0x1a0c5 - dbw $01, DiglettTileData_1a372 + dbw $01, DiglettTileData_1a372 DiglettTileDataPointer_1a0c8: ; 0x1a0c8 - dbw $01, DiglettTileData_1a380 + dbw $01, DiglettTileData_1a380 DiglettTileDataPointer_1a0cb: ; 0x1a0cb - dbw $01, DiglettTileData_1a38e + dbw $01, DiglettTileData_1a38e DiglettTileDataPointer_1a0ce: ; 0x1a0ce - dbw $01, DiglettTileData_1a39c + dbw $01, DiglettTileData_1a39c DiglettTileDataPointer_1a0d1: ; 0x1a0d1 - dbw $01, DiglettTileData_1a3aa + dbw $01, DiglettTileData_1a3aa DiglettTileDataPointer_1a0d4: ; 0x1a0d4 - dbw $01, DiglettTileData_1a3b8 + dbw $01, DiglettTileData_1a3b8 DiglettTileDataPointer_1a0d7: ; 0x1a0d7 - dbw $01, DiglettTileData_1a3c6 + dbw $01, DiglettTileData_1a3c6 DiglettTileDataPointer_1a0da: ; 0x1a0da - dbw $01, DiglettTileData_1a3d4 + dbw $01, DiglettTileData_1a3d4 DiglettTileDataPointer_1a0dd: ; 0x1a0dd - dbw $01, DiglettTileData_1a3e2 + dbw $01, DiglettTileData_1a3e2 DiglettTileDataPointer_1a0e0: ; 0x1a0e0 - dbw $01, DiglettTileData_1a3f0 + dbw $01, DiglettTileData_1a3f0 DiglettTileDataPointer_1a0e3: ; 0x1a0e3 - dbw $01, DiglettTileData_1a3fe + dbw $01, DiglettTileData_1a3fe DiglettTileDataPointer_1a0e6: ; 0x1a0e6 - dbw $01, DiglettTileData_1a40c + dbw $01, DiglettTileData_1a40c DiglettTileDataPointer_1a0e9: ; 0x1a0e9 - dbw $01, DiglettTileData_1a41a + dbw $01, DiglettTileData_1a41a DiglettTileDataPointer_1a0ec: ; 0x1a0ec - dbw $01, DiglettTileData_1a428 + dbw $01, DiglettTileData_1a428 DiglettTileDataPointer_1a0ef: ; 0x1a0ef - dbw $01, DiglettTileData_1a436 + dbw $01, DiglettTileData_1a436 DiglettTileDataPointer_1a0f2: ; 0x1a0f2 - dbw $01, DiglettTileData_1a444 + dbw $01, DiglettTileData_1a444 DiglettTileDataPointer_1a0f5: ; 0x1a0f5 - dbw $01, DiglettTileData_1a452 + dbw $01, DiglettTileData_1a452 DiglettTileDataPointer_1a0f8: ; 0x1a0f8 - dbw $01, DiglettTileData_1a460 + dbw $01, DiglettTileData_1a460 DiglettTileDataPointer_1a0fb: ; 0x1a0fb - dbw $01, DiglettTileData_1a46e + dbw $01, DiglettTileData_1a46e DiglettTileDataPointer_1a0fe: ; 0x1a0fe - dbw $01, DiglettTileData_1a47c + dbw $01, DiglettTileData_1a47c DiglettTileDataPointer_1a101: ; 0x1a101 - dbw $01, DiglettTileData_1a48a + dbw $01, DiglettTileData_1a48a DiglettTileDataPointer_1a104: ; 0x1a104 - dbw $01, DiglettTileData_1a498 + dbw $01, DiglettTileData_1a498 DiglettTileDataPointer_1a107: ; 0x1a107 - dbw $01, DiglettTileData_1a4a6 + dbw $01, DiglettTileData_1a4a6 DiglettTileDataPointer_1a10a: ; 0x1a10a - dbw $01, DiglettTileData_1a4b4 + dbw $01, DiglettTileData_1a4b4 DiglettTileDataPointer_1a10d: ; 0x1a10d - dbw $01, DiglettTileData_1a4c2 + dbw $01, DiglettTileData_1a4c2 DiglettTileDataPointer_1a110: ; 0x1a110 - dbw $01, DiglettTileData_1a4d0 + dbw $01, DiglettTileData_1a4d0 DiglettTileDataPointer_1a113: ; 0x1a113 - dbw $01, DiglettTileData_1a4de + dbw $01, DiglettTileData_1a4de DiglettTileDataPointer_1a116: ; 0x1a116 - dbw $01, DiglettTileData_1a4ec + dbw $01, DiglettTileData_1a4ec DiglettTileDataPointer_1a119: ; 0x1a119 - dbw $01, DiglettTileData_1a4fa + dbw $01, DiglettTileData_1a4fa DiglettTileDataPointer_1a11c: ; 0x1a11c - dbw $01, DiglettTileData_1a508 + dbw $01, DiglettTileData_1a508 DiglettTileDataPointer_1a11f: ; 0x1a11f - dbw $01, DiglettTileData_1a516 + dbw $01, DiglettTileData_1a516 DiglettTileDataPointer_1a122: ; 0x1a122 - dbw $01, DiglettTileData_1a524 + dbw $01, DiglettTileData_1a524 DiglettTileDataPointer_1a125: ; 0x1a125 - dbw $01, DiglettTileData_1a532 + dbw $01, DiglettTileData_1a532 DiglettTileDataPointer_1a128: ; 0x1a128 - dbw $01, DiglettTileData_1a540 + dbw $01, DiglettTileData_1a540 DiglettTileDataPointer_1a12b: ; 0x1a12b - dbw $01, DiglettTileData_1a54e + dbw $01, DiglettTileData_1a54e DiglettTileDataPointer_1a12e: ; 0x1a12e - dbw $01, DiglettTileData_1a55c + dbw $01, DiglettTileData_1a55c DiglettTileDataPointer_1a131: ; 0x1a131 - dbw $01, DiglettTileData_1a56a + dbw $01, DiglettTileData_1a56a DiglettTileDataPointer_1a134: ; 0x1a134 - dbw $01, DiglettTileData_1a578 + dbw $01, DiglettTileData_1a578 DiglettTileDataPointer_1a137: ; 0x1a137 - dbw $01, DiglettTileData_1a586 + dbw $01, DiglettTileData_1a586 DiglettTileDataPointer_1a13a: ; 0x1a13a - dbw $01, DiglettTileData_1a594 + dbw $01, DiglettTileData_1a594 DiglettTileDataPointer_1a13d: ; 0x1a13d - dbw $01, DiglettTileData_1a5a2 + dbw $01, DiglettTileData_1a5a2 DiglettTileDataPointer_1a140: ; 0x1a140 - dbw $01, DiglettTileData_1a5b0 + dbw $01, DiglettTileData_1a5b0 DiglettTileDataPointer_1a143: ; 0x1a143 - dbw $01, DiglettTileData_1a5be + dbw $01, DiglettTileData_1a5be DiglettTileDataPointer_1a146: ; 0x1a146 - dbw $01, DiglettTileData_1a5cc + dbw $01, DiglettTileData_1a5cc DiglettTileDataPointer_1a149: ; 0x1a149 - dbw $01, DiglettTileData_1a5da + dbw $01, DiglettTileData_1a5da DiglettTileDataPointer_1a14c: ; 0x1a14c - dbw $01, DiglettTileData_1a5e8 + dbw $01, DiglettTileData_1a5e8 DiglettTileDataPointer_1a14f: ; 0x1a14f - dbw $01, DiglettTileData_1a5f6 + dbw $01, DiglettTileData_1a5f6 DiglettTileDataPointer_1a152: ; 0x1a152 - dbw $01, DiglettTileData_1a604 + dbw $01, DiglettTileData_1a604 DiglettTileDataPointer_1a155: ; 0x1a155 - dbw $01, DiglettTileData_1a612 + dbw $01, DiglettTileData_1a612 DiglettTileDataPointer_1a158: ; 0x1a158 - dbw $01, DiglettTileData_1a620 + dbw $01, DiglettTileData_1a620 DiglettTileDataPointer_1a15b: ; 0x1a15b - dbw $01, DiglettTileData_1a62e + dbw $01, DiglettTileData_1a62e DiglettTileDataPointer_1a15e: ; 0x1a15e - dbw $01, DiglettTileData_1a63c + dbw $01, DiglettTileData_1a63c DiglettTileDataPointer_1a161: ; 0x1a161 - dbw $01, DiglettTileData_1a64a + dbw $01, DiglettTileData_1a64a DiglettTileDataPointer_1a164: ; 0x1a164 - dbw $01, DiglettTileData_1a658 + dbw $01, DiglettTileData_1a658 DiglettTileDataPointer_1a167: ; 0x1a167 - dbw $01, DiglettTileData_1a666 + dbw $01, DiglettTileData_1a666 DiglettTileDataPointer_1a16a: ; 0x1a16a - dbw $01, DiglettTileData_1a674 + dbw $01, DiglettTileData_1a674 DiglettTileDataPointer_1a16d: ; 0x1a16d - dbw $01, DiglettTileData_1a682 + dbw $01, DiglettTileData_1a682 DiglettTileDataPointer_1a170: ; 0x1a170 - dbw $01, DiglettTileData_1a690 + dbw $01, DiglettTileData_1a690 DiglettTileDataPointer_1a173: ; 0x1a173 - dbw $01, DiglettTileData_1a69e + dbw $01, DiglettTileData_1a69e DiglettTileDataPointer_1a176: ; 0x1a176 - dbw $01, DiglettTileData_1a6ac + dbw $01, DiglettTileData_1a6ac DiglettTileDataPointer_1a179: ; 0x1a179 - dbw $01, DiglettTileData_1a6ba + dbw $01, DiglettTileData_1a6ba DiglettTileDataPointer_1a17c: ; 0x1a17c - dbw $01, DiglettTileData_1a6c8 + dbw $01, DiglettTileData_1a6c8 DiglettTileDataPointer_1a17f: ; 0x1a17f - dbw $01, DiglettTileData_1a6d6 + dbw $01, DiglettTileData_1a6d6 DiglettTileDataPointer_1a182: ; 0x1a182 - dbw $01, DiglettTileData_1a6e4 + dbw $01, DiglettTileData_1a6e4 DiglettTileDataPointer_1a185: ; 0x1a185 - dbw $01, DiglettTileData_1a6f2 + dbw $01, DiglettTileData_1a6f2 DiglettTileDataPointer_1a188: ; 0x1a188 - dbw $01, DiglettTileData_1a700 + dbw $01, DiglettTileData_1a700 DiglettTileDataPointer_1a18b: ; 0x1a18b - dbw $01, DiglettTileData_1a70e + dbw $01, DiglettTileData_1a70e DiglettTileDataPointer_1a18e: ; 0x1a18e - dbw $01, DiglettTileData_1a71c + dbw $01, DiglettTileData_1a71c DiglettTileDataPointer_1a191: ; 0x1a191 - dbw $01, DiglettTileData_1a72a + dbw $01, DiglettTileData_1a72a DiglettTileDataPointer_1a194: ; 0x1a194 - dbw $01, DiglettTileData_1a738 + dbw $01, DiglettTileData_1a738 DiglettTileDataPointer_1a197: ; 0x1a197 - dbw $01, DiglettTileData_1a746 + dbw $01, DiglettTileData_1a746 DiglettTileDataPointer_1a19a: ; 0x1a19a - dbw $01, DiglettTileData_1a754 + dbw $01, DiglettTileData_1a754 DiglettTileDataPointer_1a19d: ; 0x1a19d - dbw $01, DiglettTileData_1a762 + dbw $01, DiglettTileData_1a762 DiglettTileDataPointer_1a1a0: ; 0x1a1a0 - dbw $01, DiglettTileData_1a770 + dbw $01, DiglettTileData_1a770 DiglettTileDataPointer_1a1a3: ; 0x1a1a3 - dbw $01, DiglettTileData_1a77e + dbw $01, DiglettTileData_1a77e DiglettTileDataPointer_1a1a6: ; 0x1a1a6 - dbw $01, DiglettTileData_1a78c + dbw $01, DiglettTileData_1a78c DiglettTileDataPointer_1a1a9: ; 0x1a1a9 - dbw $01, DiglettTileData_1a79a + dbw $01, DiglettTileData_1a79a DiglettTileDataPointer_1a1ac: ; 0x1a1ac - dbw $01, DiglettTileData_1a7a8 + dbw $01, DiglettTileData_1a7a8 DiglettTileDataPointer_1a1af: ; 0x1a1af - dbw $01, DiglettTileData_1a7b6 + dbw $01, DiglettTileData_1a7b6 DiglettTileDataPointer_1a1b2: ; 0x1a1b2 - dbw $01, DiglettTileData_1a7c4 + dbw $01, DiglettTileData_1a7c4 DiglettTileDataPointer_1a1b5: ; 0x1a1b5 - dbw $01, DiglettTileData_1a7d2 + dbw $01, DiglettTileData_1a7d2 DiglettTileDataPointer_1a1b8: ; 0x1a1b8 - dbw $01, DiglettTileData_1a7e0 + dbw $01, DiglettTileData_1a7e0 DiglettTileDataPointer_1a1bb: ; 0x1a1bb - dbw $01, DiglettTileData_1a7ee + dbw $01, DiglettTileData_1a7ee DiglettTileDataPointer_1a1be: ; 0x1a1be - dbw $01, DiglettTileData_1a7fc + dbw $01, DiglettTileData_1a7fc DiglettTileDataPointer_1a1c1: ; 0x1a1c1 - dbw $01, DiglettTileData_1a80a + dbw $01, DiglettTileData_1a80a DiglettTileDataPointer_1a1c4: ; 0x1a1c4 - dbw $01, DiglettTileData_1a818 + dbw $01, DiglettTileData_1a818 DiglettTileDataPointer_1a1c7: ; 0x1a1c7 - dbw $01, DiglettTileData_1a826 + dbw $01, DiglettTileData_1a826 DiglettTileDataPointer_1a1ca: ; 0x1a1ca - dbw $01, DiglettTileData_1a834 + dbw $01, DiglettTileData_1a834 DiglettTileDataPointer_1a1cd: ; 0x1a1cd - dbw $01, DiglettTileData_1a842 + dbw $01, DiglettTileData_1a842 DiglettTileDataPointer_1a1d0: ; 0x1a1d0 - dbw $01, DiglettTileData_1a850 + dbw $01, DiglettTileData_1a850 DiglettTileDataPointer_1a1d3: ; 0x1a1d3 - dbw $01, DiglettTileData_1a85e + dbw $01, DiglettTileData_1a85e DiglettTileDataPointer_1a1d6: ; 0x1a1d6 - dbw $01, DiglettTileData_1a86c + dbw $01, DiglettTileData_1a86c DiglettTileDataPointer_1a1d9: ; 0x1a1d9 - dbw $01, DiglettTileData_1a87a + dbw $01, DiglettTileData_1a87a DiglettTileDataPointer_1a1dc: ; 0x1a1dc - dbw $01, DiglettTileData_1a888 + dbw $01, DiglettTileData_1a888 DiglettTileDataPointer_1a1df: ; 0x1a1df - dbw $01, DiglettTileData_1a896 + dbw $01, DiglettTileData_1a896 DiglettTileDataPointer_1a1e2: ; 0x1a1e2 - dbw $01, DiglettTileData_1a8a4 + dbw $01, DiglettTileData_1a8a4 DiglettTileDataPointer_1a1e5: ; 0x1a1e5 - dbw $01, DiglettTileData_1a8b2 + dbw $01, DiglettTileData_1a8b2 DiglettTileDataPointer_1a1e8: ; 0x1a1e8 - dbw $01, DiglettTileData_1a8c0 + dbw $01, DiglettTileData_1a8c0 DiglettTileDataPointer_1a1eb: ; 0x1a1eb - dbw $01, DiglettTileData_1a8ce + dbw $01, DiglettTileData_1a8ce DiglettTileDataPointer_1a1ee: ; 0x1a1ee - dbw $01, DiglettTileData_1a8dc + dbw $01, DiglettTileData_1a8dc DiglettTileDataPointer_1a1f1: ; 0x1a1f1 - dbw $01, DiglettTileData_1a8ea + dbw $01, DiglettTileData_1a8ea DiglettTileDataPointer_1a1f4: ; 0x1a1f4 - dbw $01, DiglettTileData_1a8f8 + dbw $01, DiglettTileData_1a8f8 DiglettTileDataPointer_1a1f7: ; 0x1a1f7 - dbw $01, DiglettTileData_1a906 + dbw $01, DiglettTileData_1a906 DiglettTileDataPointer_1a1fa: ; 0x1a1fa - dbw $01, DiglettTileData_1a914 + dbw $01, DiglettTileData_1a914 DiglettTileDataPointer_1a1fd: ; 0x1a1fd - dbw $01, DiglettTileData_1a922 + dbw $01, DiglettTileData_1a922 DiglettTileDataPointer_1a200: ; 0x1a200 - dbw $01, DiglettTileData_1a930 + dbw $01, DiglettTileData_1a930 DiglettTileDataPointer_1a203: ; 0x1a203 - dbw $01, DiglettTileData_1a93e + dbw $01, DiglettTileData_1a93e DiglettTileDataPointer_1a206: ; 0x1a206 - dbw $01, DiglettTileData_1a94c + dbw $01, DiglettTileData_1a94c DiglettTileDataPointer_1a209: ; 0x1a209 - dbw $01, DiglettTileData_1a95a + dbw $01, DiglettTileData_1a95a DiglettTileDataPointer_1a20c: ; 0x1a20c - dbw $01, DiglettTileData_1a968 + dbw $01, DiglettTileData_1a968 DiglettTileDataPointer_1a20f: ; 0x1a20f - dbw $01, DiglettTileData_1a976 + dbw $01, DiglettTileData_1a976 DiglettTileDataPointer_1a212: ; 0x1a212 - dbw $01, DiglettTileData_1a984 + dbw $01, DiglettTileData_1a984 DiglettTileDataPointer_1a215: ; 0x1a215 - dbw $01, DiglettTileData_1a992 + dbw $01, DiglettTileData_1a992 DiglettTileDataPointer_1a218: ; 0x1a218 - dbw $01, DiglettTileData_1a9a0 + dbw $01, DiglettTileData_1a9a0 DiglettTileDataPointer_1a21b: ; 0x1a21b - dbw $01, DiglettTileData_1a9ae + dbw $01, DiglettTileData_1a9ae DiglettTileDataPointer_1a21e: ; 0x1a21e - dbw $01, DiglettTileData_1a9bc + dbw $01, DiglettTileData_1a9bc DiglettTileDataPointer_1a221: ; 0x1a221 - dbw $01, DiglettTileData_1a9ca + dbw $01, DiglettTileData_1a9ca DiglettTileDataPointer_1a224: ; 0x1a224 - dbw $01, DiglettTileData_1a9d8 + dbw $01, DiglettTileData_1a9d8 DiglettTileDataPointer_1a227: ; 0x1a227 - dbw $01, DiglettTileData_1a9e6 + dbw $01, DiglettTileData_1a9e6 DiglettTileDataPointer_1a22a: ; 0x1a22a - dbw $01, DiglettTileData_1a9f4 + dbw $01, DiglettTileData_1a9f4 DiglettTileDataPointer_1a22d: ; 0x1a22d - dbw $01, DiglettTileData_1aa02 + dbw $01, DiglettTileData_1aa02 DiglettTileDataPointer_1a230: ; 0x1a230 - dbw $01, DiglettTileData_1aa10 + dbw $01, DiglettTileData_1aa10 DiglettTileDataPointer_1a233: ; 0x1a233 - dbw $01, DiglettTileData_1aa1e + dbw $01, DiglettTileData_1aa1e DiglettTileDataPointer_1a236: ; 0x1a236 - dbw $01, DiglettTileData_1aa2c + dbw $01, DiglettTileData_1aa2c DiglettTileDataPointer_1a239: ; 0x1a239 - dbw $01, DiglettTileData_1aa3a + dbw $01, DiglettTileData_1aa3a DiglettTileDataPointer_1a23c: ; 0x1a23c - dbw $01, DiglettTileData_1aa48 + dbw $01, DiglettTileData_1aa48 DiglettTileDataPointer_1a23f: ; 0x1a23f - dbw $01, DiglettTileData_1aa56 + dbw $01, DiglettTileData_1aa56 DiglettTileDataPointer_1a242: ; 0x1a242 - dbw $01, DiglettTileData_1aa64 + dbw $01, DiglettTileData_1aa64 DiglettTileDataPointer_1a245: ; 0x1a245 - dbw $01, DiglettTileData_1aa72 + dbw $01, DiglettTileData_1aa72 DiglettTileDataPointer_1a248: ; 0x1a248 - dbw $01, DiglettTileData_1aa80 + dbw $01, DiglettTileData_1aa80 DiglettTileDataPointer_1a24b: ; 0x1a24b - dbw $01, DiglettTileData_1aa8e + dbw $01, DiglettTileData_1aa8e DiglettTileDataPointer_1a24e: ; 0x1a24e - dbw $01, DiglettTileData_1aa9c + dbw $01, DiglettTileData_1aa9c DiglettTileDataPointer_1a251: ; 0x1a251 - dbw $01, DiglettTileData_1aaaa + dbw $01, DiglettTileData_1aaaa DiglettTileDataPointer_1a254: ; 0x1a254 - dbw $01, DiglettTileData_1aab8 + dbw $01, DiglettTileData_1aab8 DiglettTileDataPointer_1a257: ; 0x1a257 - dbw $01, DiglettTileData_1aac6 + dbw $01, DiglettTileData_1aac6 DiglettTileData_1a25a: ; 0x1a25a - dw LoadTileLists - db $04 - db $02 - dw $9861 - db $35, $36 - db $02 - dw $9881 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9861 + db $35, $36 + db $02 + dw $9881 + db $37, $38 + db $00 ; terminator DiglettTileData_1a268: ; 0x1a268 - dw LoadTileLists - db $04 - db $02 - dw $9861 - db $39, $3A - db $02 - dw $9881 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9861 + db $39, $3A + db $02 + dw $9881 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a276: ; 0x1a276 - dw LoadTileLists - db $04 - db $02 - dw $9861 - db $3D, $3E - db $02 - dw $9881 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9861 + db $3D, $3E + db $02 + dw $9881 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a284: ; 0x1a284 - dw LoadTileLists - db $04 - db $02 - dw $9861 - db $41, $42 - db $02 - dw $9881 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9861 + db $41, $42 + db $02 + dw $9881 + db $43, $44 + db $00 ; terminator DiglettTileData_1a292: ; 0x1a292 - dw LoadTileLists - db $04 - db $02 - dw $9861 - db $45, $46 - db $02 - dw $9881 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9861 + db $45, $46 + db $02 + dw $9881 + db $47, $48 + db $00 ; terminator DiglettTileData_1a2a0: ; 0x1a2a0 - dw LoadTileLists - db $04 - db $02 - dw $98A1 - db $35, $36 - db $02 - dw $98C1 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A1 + db $35, $36 + db $02 + dw $98C1 + db $37, $38 + db $00 ; terminator DiglettTileData_1a2ae: ; 0x1a2ae - dw LoadTileLists - db $04 - db $02 - dw $98A1 - db $39, $3A - db $02 - dw $98C1 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A1 + db $39, $3A + db $02 + dw $98C1 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a2bc: ; 0x1a2bc - dw LoadTileLists - db $04 - db $02 - dw $98A1 - db $3D, $3E - db $02 - dw $98C1 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A1 + db $3D, $3E + db $02 + dw $98C1 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a2ca: ; 0x1a2ca - dw LoadTileLists - db $04 - db $02 - dw $98A1 - db $41, $42 - db $02 - dw $98C1 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A1 + db $41, $42 + db $02 + dw $98C1 + db $43, $44 + db $00 ; terminator DiglettTileData_1a2d8: ; 0x1a2d8 - dw LoadTileLists - db $04 - db $02 - dw $98A1 - db $45, $46 - db $02 - dw $98C1 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A1 + db $45, $46 + db $02 + dw $98C1 + db $47, $48 + db $00 ; terminator DiglettTileData_1a2e6: ; 0x1a2e6 - dw LoadTileLists - db $04 - db $02 - dw $98E1 - db $35, $36 - db $02 - dw $9901 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E1 + db $35, $36 + db $02 + dw $9901 + db $37, $38 + db $00 ; terminator DiglettTileData_1a2f4: ; 0x1a2f4 - dw LoadTileLists - db $04 - db $02 - dw $98E1 - db $39, $3A - db $02 - dw $9901 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E1 + db $39, $3A + db $02 + dw $9901 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a302: ; 0x1a302 - dw LoadTileLists - db $04 - db $02 - dw $98E1 - db $3D, $3E - db $02 - dw $9901 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E1 + db $3D, $3E + db $02 + dw $9901 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a310: ; 0x1a310 - dw LoadTileLists - db $04 - db $02 - dw $98E1 - db $41, $42 - db $02 - dw $9901 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E1 + db $41, $42 + db $02 + dw $9901 + db $43, $44 + db $00 ; terminator DiglettTileData_1a31e: ; 0x1a31e - dw LoadTileLists - db $04 - db $02 - dw $98E1 - db $45, $46 - db $02 - dw $9901 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E1 + db $45, $46 + db $02 + dw $9901 + db $47, $48 + db $00 ; terminator DiglettTileData_1a32c: ; 0x1a32c - dw LoadTileLists - db $04 - db $02 - dw $9883 - db $35, $36 - db $02 - dw $98A3 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9883 + db $35, $36 + db $02 + dw $98A3 + db $37, $38 + db $00 ; terminator DiglettTileData_1a33a: ; 0x1a33a - dw LoadTileLists - db $04 - db $02 - dw $9883 - db $39, $3A - db $02 - dw $98A3 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9883 + db $39, $3A + db $02 + dw $98A3 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a348: ; 0x1a348 - dw LoadTileLists - db $04 - db $02 - dw $9883 - db $3D, $3E - db $02 - dw $98A3 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9883 + db $3D, $3E + db $02 + dw $98A3 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a356: ; 0x1a356 - dw LoadTileLists - db $04 - db $02 - dw $9883 - db $41, $42 - db $02 - dw $98A3 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9883 + db $41, $42 + db $02 + dw $98A3 + db $43, $44 + db $00 ; terminator DiglettTileData_1a364: ; 0x1a364 - dw LoadTileLists - db $04 - db $02 - dw $9883 - db $45, $46 - db $02 - dw $98A3 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9883 + db $45, $46 + db $02 + dw $98A3 + db $47, $48 + db $00 ; terminator DiglettTileData_1a372: ; 0x1a372 - dw LoadTileLists - db $04 - db $02 - dw $98C3 - db $35, $36 - db $02 - dw $98E3 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C3 + db $35, $36 + db $02 + dw $98E3 + db $37, $38 + db $00 ; terminator DiglettTileData_1a380: ; 0x1a380 - dw LoadTileLists - db $04 - db $02 - dw $98C3 - db $39, $3A - db $02 - dw $98E3 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C3 + db $39, $3A + db $02 + dw $98E3 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a38e: ; 0x1a38e - dw LoadTileLists - db $04 - db $02 - dw $98C3 - db $3D, $3E - db $02 - dw $98E3 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C3 + db $3D, $3E + db $02 + dw $98E3 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a39c: ; 0x1a39c - dw LoadTileLists - db $04 - db $02 - dw $98C3 - db $41, $42 - db $02 - dw $98E3 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C3 + db $41, $42 + db $02 + dw $98E3 + db $43, $44 + db $00 ; terminator DiglettTileData_1a3aa: ; 0x1a3aa - dw LoadTileLists - db $04 - db $02 - dw $98C3 - db $45, $46 - db $02 - dw $98E3 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C3 + db $45, $46 + db $02 + dw $98E3 + db $47, $48 + db $00 ; terminator DiglettTileData_1a3b8: ; 0x1a3b8 - dw LoadTileLists - db $04 - db $02 - dw $9903 - db $35, $36 - db $02 - dw $9923 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9903 + db $35, $36 + db $02 + dw $9923 + db $37, $38 + db $00 ; terminator DiglettTileData_1a3c6: ; 0x1a3c6 - dw LoadTileLists - db $04 - db $02 - dw $9903 - db $39, $3A - db $02 - dw $9923 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9903 + db $39, $3A + db $02 + dw $9923 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a3d4: ; 0x1a3d4 - dw LoadTileLists - db $04 - db $02 - dw $9903 - db $3D, $3E - db $02 - dw $9923 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9903 + db $3D, $3E + db $02 + dw $9923 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a3e2: ; 0x1a3e2 - dw LoadTileLists - db $04 - db $02 - dw $9903 - db $41, $42 - db $02 - dw $9923 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9903 + db $41, $42 + db $02 + dw $9923 + db $43, $44 + db $00 ; terminator DiglettTileData_1a3f0: ; 0x1a3f0 - dw LoadTileLists - db $04 - db $02 - dw $9903 - db $45, $46 - db $02 - dw $9923 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9903 + db $45, $46 + db $02 + dw $9923 + db $47, $48 + db $00 ; terminator DiglettTileData_1a3fe: ; 0x1a3fe - dw LoadTileLists - db $04 - db $02 - dw $9865 - db $35, $36 - db $02 - dw $9885 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9865 + db $35, $36 + db $02 + dw $9885 + db $37, $38 + db $00 ; terminator DiglettTileData_1a40c: ; 0x1a40c - dw LoadTileLists - db $04 - db $02 - dw $9865 - db $39, $3A - db $02 - dw $9885 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9865 + db $39, $3A + db $02 + dw $9885 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a41a: ; 0x1a41a - dw LoadTileLists - db $04 - db $02 - dw $9865 - db $3D, $3E - db $02 - dw $9885 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9865 + db $3D, $3E + db $02 + dw $9885 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a428: ; 0x1a428 - dw LoadTileLists - db $04 - db $02 - dw $9865 - db $41, $42 - db $02 - dw $9885 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9865 + db $41, $42 + db $02 + dw $9885 + db $43, $44 + db $00 ; terminator DiglettTileData_1a436: ; 0x1a436 - dw LoadTileLists - db $04 - db $02 - dw $9865 - db $45, $46 - db $02 - dw $9885 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9865 + db $45, $46 + db $02 + dw $9885 + db $47, $48 + db $00 ; terminator DiglettTileData_1a444: ; 0x1a444 - dw LoadTileLists - db $04 - db $02 - dw $98A5 - db $35, $36 - db $02 - dw $98C5 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A5 + db $35, $36 + db $02 + dw $98C5 + db $37, $38 + db $00 ; terminator DiglettTileData_1a452: ; 0x1a452 - dw LoadTileLists - db $04 - db $02 - dw $98A5 - db $39, $3A - db $02 - dw $98C5 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A5 + db $39, $3A + db $02 + dw $98C5 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a460: ; 0x1a460 - dw LoadTileLists - db $04 - db $02 - dw $98A5 - db $3D, $3E - db $02 - dw $98C5 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A5 + db $3D, $3E + db $02 + dw $98C5 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a46e: ; 0x1a46e - dw LoadTileLists - db $04 - db $02 - dw $98A5 - db $41, $42 - db $02 - dw $98C5 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A5 + db $41, $42 + db $02 + dw $98C5 + db $43, $44 + db $00 ; terminator DiglettTileData_1a47c: ; 0x1a47c - dw LoadTileLists - db $04 - db $02 - dw $98A5 - db $45, $46 - db $02 - dw $98C5 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A5 + db $45, $46 + db $02 + dw $98C5 + db $47, $48 + db $00 ; terminator DiglettTileData_1a48a: ; 0x1a48a - dw LoadTileLists - db $04 - db $02 - dw $98E5 - db $35, $36 - db $02 - dw $9905 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E5 + db $35, $36 + db $02 + dw $9905 + db $37, $38 + db $00 ; terminator DiglettTileData_1a498: ; 0x1a498 - dw LoadTileLists - db $04 - db $02 - dw $98E5 - db $39, $3A - db $02 - dw $9905 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E5 + db $39, $3A + db $02 + dw $9905 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a4a6: ; 0x1a4a6 - dw LoadTileLists - db $04 - db $02 - dw $98E5 - db $3D, $3E - db $02 - dw $9905 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E5 + db $3D, $3E + db $02 + dw $9905 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a4b4: ; 0x1a4b4 - dw LoadTileLists - db $04 - db $02 - dw $98E5 - db $41, $42 - db $02 - dw $9905 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E5 + db $41, $42 + db $02 + dw $9905 + db $43, $44 + db $00 ; terminator DiglettTileData_1a4c2: ; 0x1a4c2 - dw LoadTileLists - db $04 - db $02 - dw $98E5 - db $45, $46 - db $02 - dw $9905 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E5 + db $45, $46 + db $02 + dw $9905 + db $47, $48 + db $00 ; terminator DiglettTileData_1a4d0: ; 0x1a4d0 - dw LoadTileLists - db $04 - db $02 - dw $9925 - db $35, $36 - db $02 - dw $9945 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9925 + db $35, $36 + db $02 + dw $9945 + db $37, $38 + db $00 ; terminator DiglettTileData_1a4de: ; 0x1a4de - dw LoadTileLists - db $04 - db $02 - dw $9925 - db $39, $3A - db $02 - dw $9945 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9925 + db $39, $3A + db $02 + dw $9945 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a4ec: ; 0x1a4ec - dw LoadTileLists - db $04 - db $02 - dw $9925 - db $3D, $3E - db $02 - dw $9945 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9925 + db $3D, $3E + db $02 + dw $9945 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a4fa: ; 0x1a4fa - dw LoadTileLists - db $04 - db $02 - dw $9925 - db $41, $42 - db $02 - dw $9945 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9925 + db $41, $42 + db $02 + dw $9945 + db $43, $44 + db $00 ; terminator DiglettTileData_1a508: ; 0x1a508 - dw LoadTileLists - db $04 - db $02 - dw $9925 - db $45, $46 - db $02 - dw $9945 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9925 + db $45, $46 + db $02 + dw $9945 + db $47, $48 + db $00 ; terminator DiglettTileData_1a516: ; 0x1a516 - dw LoadTileLists - db $04 - db $02 - dw $9887 - db $35, $36 - db $02 - dw $98A7 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9887 + db $35, $36 + db $02 + dw $98A7 + db $37, $38 + db $00 ; terminator DiglettTileData_1a524: ; 0x1a524 - dw LoadTileLists - db $04 - db $02 - dw $9887 - db $39, $3A - db $02 - dw $98A7 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9887 + db $39, $3A + db $02 + dw $98A7 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a532: ; 0x1a532 - dw LoadTileLists - db $04 - db $02 - dw $9887 - db $3D, $3E - db $02 - dw $98A7 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9887 + db $3D, $3E + db $02 + dw $98A7 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a540: ; 0x1a540 - dw LoadTileLists - db $04 - db $02 - dw $9887 - db $41, $42 - db $02 - dw $98A7 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9887 + db $41, $42 + db $02 + dw $98A7 + db $43, $44 + db $00 ; terminator DiglettTileData_1a54e: ; 0x1a54e - dw LoadTileLists - db $04 - db $02 - dw $9887 - db $45, $46 - db $02 - dw $98A7 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9887 + db $45, $46 + db $02 + dw $98A7 + db $47, $48 + db $00 ; terminator DiglettTileData_1a55c: ; 0x1a55c - dw LoadTileLists - db $04 - db $02 - dw $98C7 - db $35, $36 - db $02 - dw $98E7 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C7 + db $35, $36 + db $02 + dw $98E7 + db $37, $38 + db $00 ; terminator DiglettTileData_1a56a: ; 0x1a56a - dw LoadTileLists - db $04 - db $02 - dw $98C7 - db $39, $3A - db $02 - dw $98E7 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C7 + db $39, $3A + db $02 + dw $98E7 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a578: ; 0x1a578 - dw LoadTileLists - db $04 - db $02 - dw $98C7 - db $3D, $3E - db $02 - dw $98E7 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C7 + db $3D, $3E + db $02 + dw $98E7 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a586: ; 0x1a586 - dw LoadTileLists - db $04 - db $02 - dw $98C7 - db $41, $42 - db $02 - dw $98E7 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C7 + db $41, $42 + db $02 + dw $98E7 + db $43, $44 + db $00 ; terminator DiglettTileData_1a594: ; 0x1a594 - dw LoadTileLists - db $04 - db $02 - dw $98C7 - db $45, $46 - db $02 - dw $98E7 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98C7 + db $45, $46 + db $02 + dw $98E7 + db $47, $48 + db $00 ; terminator DiglettTileData_1a5a2: ; 0x1a5a2 - dw LoadTileLists - db $04 - db $02 - dw $9907 - db $35, $36 - db $02 - dw $9927 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9907 + db $35, $36 + db $02 + dw $9927 + db $37, $38 + db $00 ; terminator DiglettTileData_1a5b0: ; 0x1a5b0 - dw LoadTileLists - db $04 - db $02 - dw $9907 - db $39, $3A - db $02 - dw $9927 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9907 + db $39, $3A + db $02 + dw $9927 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a5be: ; 0x1a5be - dw LoadTileLists - db $04 - db $02 - dw $9907 - db $3D, $3E - db $02 - dw $9927 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9907 + db $3D, $3E + db $02 + dw $9927 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a5cc: ; 0x1a5cc - dw LoadTileLists - db $04 - db $02 - dw $9907 - db $41, $42 - db $02 - dw $9927 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9907 + db $41, $42 + db $02 + dw $9927 + db $43, $44 + db $00 ; terminator DiglettTileData_1a5da: ; 0x1a5da - dw LoadTileLists - db $04 - db $02 - dw $9907 - db $45, $46 - db $02 - dw $9927 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9907 + db $45, $46 + db $02 + dw $9927 + db $47, $48 + db $00 ; terminator DiglettTileData_1a5e8: ; 0x1a5e8 - dw LoadTileLists - db $04 - db $02 - dw $9947 - db $35, $36 - db $02 - dw $9967 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9947 + db $35, $36 + db $02 + dw $9967 + db $37, $38 + db $00 ; terminator DiglettTileData_1a5f6: ; 0x1a5f6 - dw LoadTileLists - db $04 - db $02 - dw $9947 - db $39, $3A - db $02 - dw $9967 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9947 + db $39, $3A + db $02 + dw $9967 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a604: ; 0x1a604 - dw LoadTileLists - db $04 - db $02 - dw $9947 - db $3D, $3E - db $02 - dw $9967 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9947 + db $3D, $3E + db $02 + dw $9967 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a612: ; 0x1a612 - dw LoadTileLists - db $04 - db $02 - dw $9947 - db $41, $42 - db $02 - dw $9967 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9947 + db $41, $42 + db $02 + dw $9967 + db $43, $44 + db $00 ; terminator DiglettTileData_1a620: ; 0x1a620 - dw LoadTileLists - db $04 - db $02 - dw $9947 - db $45, $46 - db $02 - dw $9967 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9947 + db $45, $46 + db $02 + dw $9967 + db $47, $48 + db $00 ; terminator DiglettTileData_1a62e: ; 0x1a62e - dw LoadTileLists - db $04 - db $02 - dw $98A9 - db $35, $36 - db $02 - dw $98C9 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A9 + db $35, $36 + db $02 + dw $98C9 + db $37, $38 + db $00 ; terminator DiglettTileData_1a63c: ; 0x1a63c - dw LoadTileLists - db $04 - db $02 - dw $98A9 - db $39, $3A - db $02 - dw $98C9 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A9 + db $39, $3A + db $02 + dw $98C9 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a64a: ; 0x1a64a - dw LoadTileLists - db $04 - db $02 - dw $98A9 - db $3D, $3E - db $02 - dw $98C9 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A9 + db $3D, $3E + db $02 + dw $98C9 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a658: ; 0x1a658 - dw LoadTileLists - db $04 - db $02 - dw $98A9 - db $41, $42 - db $02 - dw $98C9 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A9 + db $41, $42 + db $02 + dw $98C9 + db $43, $44 + db $00 ; terminator DiglettTileData_1a666: ; 0x1a666 - dw LoadTileLists - db $04 - db $02 - dw $98A9 - db $45, $46 - db $02 - dw $98C9 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98A9 + db $45, $46 + db $02 + dw $98C9 + db $47, $48 + db $00 ; terminator DiglettTileData_1a674: ; 0x1a674 - dw LoadTileLists - db $04 - db $02 - dw $98E9 - db $35, $36 - db $02 - dw $9909 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E9 + db $35, $36 + db $02 + dw $9909 + db $37, $38 + db $00 ; terminator DiglettTileData_1a682: ; 0x1a682 - dw LoadTileLists - db $04 - db $02 - dw $98E9 - db $39, $3A - db $02 - dw $9909 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E9 + db $39, $3A + db $02 + dw $9909 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a690: ; 0x1a690 - dw LoadTileLists - db $04 - db $02 - dw $98E9 - db $3D, $3E - db $02 - dw $9909 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E9 + db $3D, $3E + db $02 + dw $9909 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a69e: ; 0x1a69e - dw LoadTileLists - db $04 - db $02 - dw $98E9 - db $41, $42 - db $02 - dw $9909 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E9 + db $41, $42 + db $02 + dw $9909 + db $43, $44 + db $00 ; terminator DiglettTileData_1a6ac: ; 0x1a6ac - dw LoadTileLists - db $04 - db $02 - dw $98E9 - db $45, $46 - db $02 - dw $9909 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98E9 + db $45, $46 + db $02 + dw $9909 + db $47, $48 + db $00 ; terminator DiglettTileData_1a6ba: ; 0x1a6ba - dw LoadTileLists - db $04 - db $02 - dw $9929 - db $35, $36 - db $02 - dw $9949 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9929 + db $35, $36 + db $02 + dw $9949 + db $37, $38 + db $00 ; terminator DiglettTileData_1a6c8: ; 0x1a6c8 - dw LoadTileLists - db $04 - db $02 - dw $9929 - db $39, $3A - db $02 - dw $9949 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9929 + db $39, $3A + db $02 + dw $9949 + db $3B, $3C + db $00 ; terminator DiglettTileData_1a6d6: ; 0x1a6d6 - dw LoadTileLists - db $04 - db $02 - dw $9929 - db $3D, $3E - db $02 - dw $9949 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9929 + db $3D, $3E + db $02 + dw $9949 + db $3F, $40 + db $00 ; terminator DiglettTileData_1a6e4: ; 0x1a6e4 - dw LoadTileLists - db $04 - db $02 - dw $9929 - db $41, $42 - db $02 - dw $9949 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9929 + db $41, $42 + db $02 + dw $9949 + db $43, $44 + db $00 ; terminator DiglettTileData_1a6f2: ; 0x1a6f2 - dw LoadTileLists - db $04 - db $02 - dw $9929 - db $45, $46 - db $02 - dw $9949 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9929 + db $45, $46 + db $02 + dw $9949 + db $47, $48 + db $00 ; terminator DiglettTileData_1a700: ; 0x1a700 - dw LoadTileLists - db $04 - db $02 - dw $988B - db $35, $36 - db $02 - dw $98AB - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988B + db $35, $36 + db $02 + dw $98AB + db $37, $38 + db $00 ; terminator DiglettTileData_1a70e: ; 0x1a70e - dw LoadTileLists - db $04 - db $02 - dw $988B - db $39, $3A - db $02 - dw $98AB - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988B + db $39, $3A + db $02 + dw $98AB + db $3B, $3C + db $00 ; terminator DiglettTileData_1a71c: ; 0x1a71c - dw LoadTileLists - db $04 - db $02 - dw $988B - db $3D, $3E - db $02 - dw $98AB - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988B + db $3D, $3E + db $02 + dw $98AB + db $3F, $40 + db $00 ; terminator DiglettTileData_1a72a: ; 0x1a72a - dw LoadTileLists - db $04 - db $02 - dw $988B - db $41, $42 - db $02 - dw $98AB - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988B + db $41, $42 + db $02 + dw $98AB + db $43, $44 + db $00 ; terminator DiglettTileData_1a738: ; 0x1a738 - dw LoadTileLists - db $04 - db $02 - dw $988B - db $45, $46 - db $02 - dw $98AB - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988B + db $45, $46 + db $02 + dw $98AB + db $47, $48 + db $00 ; terminator DiglettTileData_1a746: ; 0x1a746 - dw LoadTileLists - db $04 - db $02 - dw $98CB - db $35, $36 - db $02 - dw $98EB - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CB + db $35, $36 + db $02 + dw $98EB + db $37, $38 + db $00 ; terminator DiglettTileData_1a754: ; 0x1a754 - dw LoadTileLists - db $04 - db $02 - dw $98CB - db $39, $3A - db $02 - dw $98EB - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CB + db $39, $3A + db $02 + dw $98EB + db $3B, $3C + db $00 ; terminator DiglettTileData_1a762: ; 0x1a762 - dw LoadTileLists - db $04 - db $02 - dw $98CB - db $3D, $3E - db $02 - dw $98EB - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CB + db $3D, $3E + db $02 + dw $98EB + db $3F, $40 + db $00 ; terminator DiglettTileData_1a770: ; 0x1a770 - dw LoadTileLists - db $04 - db $02 - dw $98CB - db $41, $42 - db $02 - dw $98EB - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CB + db $41, $42 + db $02 + dw $98EB + db $43, $44 + db $00 ; terminator DiglettTileData_1a77e: ; 0x1a77e - dw LoadTileLists - db $04 - db $02 - dw $98CB - db $45, $46 - db $02 - dw $98EB - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CB + db $45, $46 + db $02 + dw $98EB + db $47, $48 + db $00 ; terminator DiglettTileData_1a78c: ; 0x1a78c - dw LoadTileLists - db $04 - db $02 - dw $990B - db $35, $36 - db $02 - dw $992B - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990B + db $35, $36 + db $02 + dw $992B + db $37, $38 + db $00 ; terminator DiglettTileData_1a79a: ; 0x1a79a - dw LoadTileLists - db $04 - db $02 - dw $990B - db $39, $3A - db $02 - dw $992B - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990B + db $39, $3A + db $02 + dw $992B + db $3B, $3C + db $00 ; terminator DiglettTileData_1a7a8: ; 0x1a7a8 - dw LoadTileLists - db $04 - db $02 - dw $990B - db $3D, $3E - db $02 - dw $992B - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990B + db $3D, $3E + db $02 + dw $992B + db $3F, $40 + db $00 ; terminator DiglettTileData_1a7b6: ; 0x1a7b6 - dw LoadTileLists - db $04 - db $02 - dw $990B - db $41, $42 - db $02 - dw $992B - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990B + db $41, $42 + db $02 + dw $992B + db $43, $44 + db $00 ; terminator DiglettTileData_1a7c4: ; 0x1a7c4 - dw LoadTileLists - db $04 - db $02 - dw $990B - db $45, $46 - db $02 - dw $992B - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990B + db $45, $46 + db $02 + dw $992B + db $47, $48 + db $00 ; terminator DiglettTileData_1a7d2: ; 0x1a7d2 - dw LoadTileLists - db $04 - db $02 - dw $994B - db $35, $36 - db $02 - dw $996B - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $994B + db $35, $36 + db $02 + dw $996B + db $37, $38 + db $00 ; terminator DiglettTileData_1a7e0: ; 0x1a7e0 - dw LoadTileLists - db $04 - db $02 - dw $994B - db $39, $3A - db $02 - dw $996B - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $994B + db $39, $3A + db $02 + dw $996B + db $3B, $3C + db $00 ; terminator DiglettTileData_1a7ee: ; 0x1a7ee - dw LoadTileLists - db $04 - db $02 - dw $994B - db $3D, $3E - db $02 - dw $996B - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $994B + db $3D, $3E + db $02 + dw $996B + db $3F, $40 + db $00 ; terminator DiglettTileData_1a7fc: ; 0x1a7fc - dw LoadTileLists - db $04 - db $02 - dw $994B - db $41, $42 - db $02 - dw $996B - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $994B + db $41, $42 + db $02 + dw $996B + db $43, $44 + db $00 ; terminator DiglettTileData_1a80a: ; 0x1a80a - dw LoadTileLists - db $04 - db $02 - dw $994B - db $45, $46 - db $02 - dw $996B - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $994B + db $45, $46 + db $02 + dw $996B + db $47, $48 + db $00 ; terminator DiglettTileData_1a818: ; 0x1a818 - dw LoadTileLists - db $04 - db $02 - dw $986D - db $35, $36 - db $02 - dw $988D - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $986D + db $35, $36 + db $02 + dw $988D + db $37, $38 + db $00 ; terminator DiglettTileData_1a826: ; 0x1a826 - dw LoadTileLists - db $04 - db $02 - dw $986D - db $39, $3A - db $02 - dw $988D - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $986D + db $39, $3A + db $02 + dw $988D + db $3B, $3C + db $00 ; terminator DiglettTileData_1a834: ; 0x1a834 - dw LoadTileLists - db $04 - db $02 - dw $986D - db $3D, $3E - db $02 - dw $988D - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $986D + db $3D, $3E + db $02 + dw $988D + db $3F, $40 + db $00 ; terminator DiglettTileData_1a842: ; 0x1a842 - dw LoadTileLists - db $04 - db $02 - dw $986D - db $41, $42 - db $02 - dw $988D - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $986D + db $41, $42 + db $02 + dw $988D + db $43, $44 + db $00 ; terminator DiglettTileData_1a850: ; 0x1a850 - dw LoadTileLists - db $04 - db $02 - dw $986D - db $45, $46 - db $02 - dw $988D - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $986D + db $45, $46 + db $02 + dw $988D + db $47, $48 + db $00 ; terminator DiglettTileData_1a85e: ; 0x1a85e - dw LoadTileLists - db $04 - db $02 - dw $98AD - db $35, $36 - db $02 - dw $98CD - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98AD + db $35, $36 + db $02 + dw $98CD + db $37, $38 + db $00 ; terminator DiglettTileData_1a86c: ; 0x1a86c - dw LoadTileLists - db $04 - db $02 - dw $98AD - db $39, $3A - db $02 - dw $98CD - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98AD + db $39, $3A + db $02 + dw $98CD + db $3B, $3C + db $00 ; terminator DiglettTileData_1a87a: ; 0x1a87a - dw LoadTileLists - db $04 - db $02 - dw $98AD - db $3D, $3E - db $02 - dw $98CD - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98AD + db $3D, $3E + db $02 + dw $98CD + db $3F, $40 + db $00 ; terminator DiglettTileData_1a888: ; 0x1a888 - dw LoadTileLists - db $04 - db $02 - dw $98AD - db $41, $42 - db $02 - dw $98CD - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98AD + db $41, $42 + db $02 + dw $98CD + db $43, $44 + db $00 ; terminator DiglettTileData_1a896: ; 0x1a896 - dw LoadTileLists - db $04 - db $02 - dw $98AD - db $45, $46 - db $02 - dw $98CD - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98AD + db $45, $46 + db $02 + dw $98CD + db $47, $48 + db $00 ; terminator DiglettTileData_1a8a4: ; 0x1a8a4 - dw LoadTileLists - db $04 - db $02 - dw $98ED - db $35, $36 - db $02 - dw $990D - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98ED + db $35, $36 + db $02 + dw $990D + db $37, $38 + db $00 ; terminator DiglettTileData_1a8b2: ; 0x1a8b2 - dw LoadTileLists - db $04 - db $02 - dw $98ED - db $39, $3A - db $02 - dw $990D - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98ED + db $39, $3A + db $02 + dw $990D + db $3B, $3C + db $00 ; terminator DiglettTileData_1a8c0: ; 0x1a8c0 - dw LoadTileLists - db $04 - db $02 - dw $98ED - db $3D, $3E - db $02 - dw $990D - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98ED + db $3D, $3E + db $02 + dw $990D + db $3F, $40 + db $00 ; terminator DiglettTileData_1a8ce: ; 0x1a8ce - dw LoadTileLists - db $04 - db $02 - dw $98ED - db $41, $42 - db $02 - dw $990D - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98ED + db $41, $42 + db $02 + dw $990D + db $43, $44 + db $00 ; terminator DiglettTileData_1a8dc: ; 0x1a8dc - dw LoadTileLists - db $04 - db $02 - dw $98ED - db $45, $46 - db $02 - dw $990D - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98ED + db $45, $46 + db $02 + dw $990D + db $47, $48 + db $00 ; terminator DiglettTileData_1a8ea: ; 0x1a8ea - dw LoadTileLists - db $04 - db $02 - dw $992D - db $35, $36 - db $02 - dw $994D - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $992D + db $35, $36 + db $02 + dw $994D + db $37, $38 + db $00 ; terminator DiglettTileData_1a8f8: ; 0x1a8f8 - dw LoadTileLists - db $04 - db $02 - dw $992D - db $39, $3A - db $02 - dw $994D - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $992D + db $39, $3A + db $02 + dw $994D + db $3B, $3C + db $00 ; terminator DiglettTileData_1a906: ; 0x1a906 - dw LoadTileLists - db $04 - db $02 - dw $992D - db $3D, $3E - db $02 - dw $994D - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $992D + db $3D, $3E + db $02 + dw $994D + db $3F, $40 + db $00 ; terminator DiglettTileData_1a914: ; 0x1a914 - dw LoadTileLists - db $04 - db $02 - dw $992D - db $41, $42 - db $02 - dw $994D - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $992D + db $41, $42 + db $02 + dw $994D + db $43, $44 + db $00 ; terminator DiglettTileData_1a922: ; 0x1a922 - dw LoadTileLists - db $04 - db $02 - dw $992D - db $45, $46 - db $02 - dw $994D - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $992D + db $45, $46 + db $02 + dw $994D + db $47, $48 + db $00 ; terminator DiglettTileData_1a930: ; 0x1a930 - dw LoadTileLists - db $04 - db $02 - dw $988F - db $35, $36 - db $02 - dw $98AF - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988F + db $35, $36 + db $02 + dw $98AF + db $37, $38 + db $00 ; terminator DiglettTileData_1a93e: ; 0x1a93e - dw LoadTileLists - db $04 - db $02 - dw $988F - db $39, $3A - db $02 - dw $98AF - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988F + db $39, $3A + db $02 + dw $98AF + db $3B, $3C + db $00 ; terminator DiglettTileData_1a94c: ; 0x1a94c - dw LoadTileLists - db $04 - db $02 - dw $988F - db $3D, $3E - db $02 - dw $98AF - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988F + db $3D, $3E + db $02 + dw $98AF + db $3F, $40 + db $00 ; terminator DiglettTileData_1a95a: ; 0x1a95a - dw LoadTileLists - db $04 - db $02 - dw $988F - db $41, $42 - db $02 - dw $98AF - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988F + db $41, $42 + db $02 + dw $98AF + db $43, $44 + db $00 ; terminator DiglettTileData_1a968: ; 0x1a968 - dw LoadTileLists - db $04 - db $02 - dw $988F - db $45, $46 - db $02 - dw $98AF - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $988F + db $45, $46 + db $02 + dw $98AF + db $47, $48 + db $00 ; terminator DiglettTileData_1a976: ; 0x1a976 - dw LoadTileLists - db $04 - db $02 - dw $98CF - db $35, $36 - db $02 - dw $98EF - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CF + db $35, $36 + db $02 + dw $98EF + db $37, $38 + db $00 ; terminator DiglettTileData_1a984: ; 0x1a984 - dw LoadTileLists - db $04 - db $02 - dw $98CF - db $39, $3A - db $02 - dw $98EF - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CF + db $39, $3A + db $02 + dw $98EF + db $3B, $3C + db $00 ; terminator DiglettTileData_1a992: ; 0x1a992 - dw LoadTileLists - db $04 - db $02 - dw $98CF - db $3D, $3E - db $02 - dw $98EF - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CF + db $3D, $3E + db $02 + dw $98EF + db $3F, $40 + db $00 ; terminator DiglettTileData_1a9a0: ; 0x1a9a0 - dw LoadTileLists - db $04 - db $02 - dw $98CF - db $41, $42 - db $02 - dw $98EF - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CF + db $41, $42 + db $02 + dw $98EF + db $43, $44 + db $00 ; terminator DiglettTileData_1a9ae: ; 0x1a9ae - dw LoadTileLists - db $04 - db $02 - dw $98CF - db $45, $46 - db $02 - dw $98EF - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98CF + db $45, $46 + db $02 + dw $98EF + db $47, $48 + db $00 ; terminator DiglettTileData_1a9bc: ; 0x1a9bc - dw LoadTileLists - db $04 - db $02 - dw $990F - db $35, $36 - db $02 - dw $992F - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990F + db $35, $36 + db $02 + dw $992F + db $37, $38 + db $00 ; terminator DiglettTileData_1a9ca: ; 0x1a9ca - dw LoadTileLists - db $04 - db $02 - dw $990F - db $39, $3A - db $02 - dw $992F - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990F + db $39, $3A + db $02 + dw $992F + db $3B, $3C + db $00 ; terminator DiglettTileData_1a9d8: ; 0x1a9d8 - dw LoadTileLists - db $04 - db $02 - dw $990F - db $3D, $3E - db $02 - dw $992F - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990F + db $3D, $3E + db $02 + dw $992F + db $3F, $40 + db $00 ; terminator DiglettTileData_1a9e6: ; 0x1a9e6 - dw LoadTileLists - db $04 - db $02 - dw $990F - db $41, $42 - db $02 - dw $992F - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990F + db $41, $42 + db $02 + dw $992F + db $43, $44 + db $00 ; terminator DiglettTileData_1a9f4: ; 0x1a9f4 - dw LoadTileLists - db $04 - db $02 - dw $990F - db $45, $46 - db $02 - dw $992F - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $990F + db $45, $46 + db $02 + dw $992F + db $47, $48 + db $00 ; terminator DiglettTileData_1aa02: ; 0x1aa02 - dw LoadTileLists - db $04 - db $02 - dw $9871 - db $35, $36 - db $02 - dw $9891 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9871 + db $35, $36 + db $02 + dw $9891 + db $37, $38 + db $00 ; terminator DiglettTileData_1aa10: ; 0x1aa10 - dw LoadTileLists - db $04 - db $02 - dw $9871 - db $39, $3A - db $02 - dw $9891 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9871 + db $39, $3A + db $02 + dw $9891 + db $3B, $3C + db $00 ; terminator DiglettTileData_1aa1e: ; 0x1aa1e - dw LoadTileLists - db $04 - db $02 - dw $9871 - db $3D, $3E - db $02 - dw $9891 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9871 + db $3D, $3E + db $02 + dw $9891 + db $3F, $40 + db $00 ; terminator DiglettTileData_1aa2c: ; 0x1aa2c - dw LoadTileLists - db $04 - db $02 - dw $9871 - db $41, $42 - db $02 - dw $9891 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9871 + db $41, $42 + db $02 + dw $9891 + db $43, $44 + db $00 ; terminator DiglettTileData_1aa3a: ; 0x1aa3a - dw LoadTileLists - db $04 - db $02 - dw $9871 - db $45, $46 - db $02 - dw $9891 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $9871 + db $45, $46 + db $02 + dw $9891 + db $47, $48 + db $00 ; terminator DiglettTileData_1aa48: ; 0x1aa48 - dw LoadTileLists - db $04 - db $02 - dw $98B1 - db $35, $36 - db $02 - dw $98D1 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98B1 + db $35, $36 + db $02 + dw $98D1 + db $37, $38 + db $00 ; terminator DiglettTileData_1aa56: ; 0x1aa56 - dw LoadTileLists - db $04 - db $02 - dw $98B1 - db $39, $3A - db $02 - dw $98D1 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98B1 + db $39, $3A + db $02 + dw $98D1 + db $3B, $3C + db $00 ; terminator DiglettTileData_1aa64: ; 0x1aa64 - dw LoadTileLists - db $04 - db $02 - dw $98B1 - db $3D, $3E - db $02 - dw $98D1 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98B1 + db $3D, $3E + db $02 + dw $98D1 + db $3F, $40 + db $00 ; terminator DiglettTileData_1aa72: ; 0x1aa72 - dw LoadTileLists - db $04 - db $02 - dw $98B1 - db $41, $42 - db $02 - dw $98D1 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98B1 + db $41, $42 + db $02 + dw $98D1 + db $43, $44 + db $00 ; terminator DiglettTileData_1aa80: ; 0x1aa80 - dw LoadTileLists - db $04 - db $02 - dw $98B1 - db $45, $46 - db $02 - dw $98D1 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98B1 + db $45, $46 + db $02 + dw $98D1 + db $47, $48 + db $00 ; terminator DiglettTileData_1aa8e: ; 0x1aa8e - dw LoadTileLists - db $04 - db $02 - dw $98F1 - db $35, $36 - db $02 - dw $9911 - db $37, $38 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98F1 + db $35, $36 + db $02 + dw $9911 + db $37, $38 + db $00 ; terminator DiglettTileData_1aa9c: ; 0x1aa9c - dw LoadTileLists - db $04 - db $02 - dw $98F1 - db $39, $3A - db $02 - dw $9911 - db $3B, $3C - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98F1 + db $39, $3A + db $02 + dw $9911 + db $3B, $3C + db $00 ; terminator DiglettTileData_1aaaa: ; 0x1aaaa - dw LoadTileLists - db $04 - db $02 - dw $98F1 - db $3D, $3E - db $02 - dw $9911 - db $3F, $40 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98F1 + db $3D, $3E + db $02 + dw $9911 + db $3F, $40 + db $00 ; terminator DiglettTileData_1aab8: ; 0x1aab8 - dw LoadTileLists - db $04 - db $02 - dw $98F1 - db $41, $42 - db $02 - dw $9911 - db $43, $44 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98F1 + db $41, $42 + db $02 + dw $9911 + db $43, $44 + db $00 ; terminator DiglettTileData_1aac6: ; 0x1aac6 - dw LoadTileLists - db $04 - db $02 - dw $98F1 - db $45, $46 - db $02 - dw $9911 - db $47, $48 - db $00 ; terminator + dw LoadTileLists + db $04 + db $02 + dw $98F1 + db $45, $46 + db $02 + dw $9911 + db $47, $48 + db $00 ; terminator diff --git a/data/evolution_line_starts.asm b/data/evolution_line_starts.asm new file mode 100755 index 0000000..45f7329 --- /dev/null +++ b/data/evolution_line_starts.asm @@ -0,0 +1,79 @@ + db BULBASAUR - 1 + db CHARMANDER - 1 + db SQUIRTLE - 1 + db CATERPIE - 1 + db WEEDLE - 1 + db PIDGEY - 1 + db RATTATA - 1 + db SPEAROW - 1 + db EKANS - 1 + db PIKACHU - 1 + db SANDSHREW - 1 + db NIDORAN_F - 1 + db NIDORAN_M - 1 + db CLEFAIRY - 1 + db VULPIX - 1 + db JIGGLYPUFF - 1 + db ZUBAT - 1 + db ODDISH - 1 + db PARAS - 1 + db VENONAT - 1 + db DIGLETT - 1 + db MEOWTH - 1 + db PSYDUCK - 1 + db MANKEY - 1 + db GROWLITHE - 1 + db POLIWAG - 1 + db ABRA - 1 + db MACHOP - 1 + db BELLSPROUT - 1 + db TENTACOOL - 1 + db GEODUDE - 1 + db PONYTA - 1 + db SLOWPOKE - 1 + db MAGNEMITE - 1 + db FARFETCH_D - 1 + db DODUO - 1 + db SEEL - 1 + db GRIMER - 1 + db SHELLDER - 1 + db GASTLY - 1 + db ONIX - 1 + db DROWZEE - 1 + db KRABBY - 1 + db VOLTORB - 1 + db EXEGGCUTE - 1 + db CUBONE - 1 + db HITMONLEE - 1 + db HITMONCHAN - 1 + db LICKITUNG - 1 + db KOFFING - 1 + db RHYHORN - 1 + db CHANSEY - 1 + db TANGELA - 1 + db KANGASKHAN - 1 + db HORSEA - 1 + db GOLDEEN - 1 + db STARYU - 1 + db MR_MIME - 1 + db SCYTHER - 1 + db JYNX - 1 + db ELECTABUZZ - 1 + db MAGMAR - 1 + db PINSIR - 1 + db TAUROS - 1 + db MAGIKARP - 1 + db LAPRAS - 1 + db DITTO - 1 + db EEVEE - 1 + db PORYGON - 1 + db OMANYTE - 1 + db KABUTO - 1 + db AERODACTYL - 1 + db SNORLAX - 1 + db ARTICUNO - 1 + db ZAPDOS - 1 + db MOLTRES - 1 + db DRATINI - 1 + db MEWTWO - 1 + db MEW - 1 diff --git a/data/evolution_lines.asm b/data/evolution_lines.asm index 8dc55c2..43f7308 100755 --- a/data/evolution_lines.asm +++ b/data/evolution_lines.asm @@ -1,81 +1,81 @@ EvolutionLineIds: ; 0x1161d ; Each byte corresponds to a mon in the PokeDex. - db EVOLINE_BULBASAUR, EVOLINE_BULBASAUR, EVOLINE_BULBASAUR - db EVOLINE_CHARMANDER, EVOLINE_CHARMANDER, EVOLINE_CHARMANDER - db EVOLINE_SQUIRTLE, EVOLINE_SQUIRTLE, EVOLINE_SQUIRTLE - db EVOLINE_CATERPIE, EVOLINE_CATERPIE, EVOLINE_CATERPIE - db EVOLINE_WEEDLE, EVOLINE_WEEDLE, EVOLINE_WEEDLE - db EVOLINE_PIDGEY, EVOLINE_PIDGEY, EVOLINE_PIDGEY - db EVOLINE_RATTATA, EVOLINE_RATTATA - db EVOLINE_SPEAROW, EVOLINE_SPEAROW - db EVOLINE_EKANS, EVOLINE_EKANS - db EVOLINE_PIKACHU, EVOLINE_PIKACHU - db EVOLINE_SANDSHREW, EVOLINE_SANDSHREW - db EVOLINE_NIDORAN_F, EVOLINE_NIDORAN_F, EVOLINE_NIDORAN_F - db EVOLINE_NIDORAN_M, EVOLINE_NIDORAN_M, EVOLINE_NIDORAN_M - db EVOLINE_CLEFAIRY, EVOLINE_CLEFAIRY - db EVOLINE_VULPIX, EVOLINE_VULPIX - db EVOLINE_JIGGLYPUFF, EVOLINE_JIGGLYPUFF - db EVOLINE_ZUBAT, EVOLINE_ZUBAT - db EVOLINE_ODDISH, EVOLINE_ODDISH, EVOLINE_ODDISH - db EVOLINE_PARAS,EVOLINE_PARAS - db EVOLINE_VENONAT,EVOLINE_VENONAT - db EVOLINE_DIGLETT, EVOLINE_DIGLETT - db EVOLINE_MEOWTH, EVOLINE_MEOWTH - db EVOLINE_PSYDUCK, EVOLINE_PSYDUCK - db EVOLINE_MANKEY, EVOLINE_MANKEY - db EVOLINE_GROWLITHE, EVOLINE_GROWLITHE - db EVOLINE_POLIWAG, EVOLINE_POLIWAG, EVOLINE_POLIWAG - db EVOLINE_ABRA, EVOLINE_ABRA, EVOLINE_ABRA - db EVOLINE_MACHOP, EVOLINE_MACHOP, EVOLINE_MACHOP - db EVOLINE_BELLSPROUT, EVOLINE_BELLSPROUT, EVOLINE_BELLSPROUT - db EVOLINE_TENTACOOL, EVOLINE_TENTACOOL - db EVOLINE_GEODUDE, EVOLINE_GEODUDE, EVOLINE_GEODUDE - db EVOLINE_PONYTA, EVOLINE_PONYTA - db EVOLINE_SLOWPOKE, EVOLINE_SLOWPOKE - db EVOLINE_MAGNEMITE, EVOLINE_MAGNEMITE - db EVOLINE_FARFETCH_D - db EVOLINE_DODUO, EVOLINE_DODUO - db EVOLINE_SEEL, EVOLINE_SEEL - db EVOLINE_GRIMER, EVOLINE_GRIMER - db EVOLINE_SHELLDER, EVOLINE_SHELLDER - db EVOLINE_GASTLY, EVOLINE_GASTLY, EVOLINE_GASTLY - db EVOLINE_ONIX - db EVOLINE_DROWZEE, EVOLINE_DROWZEE - db EVOLINE_KRABBY, EVOLINE_KRABBY - db EVOLINE_VOLTORB, EVOLINE_VOLTORB - db EVOLINE_EXEGGCUTE, EVOLINE_EXEGGCUTE - db EVOLINE_CUBONE, EVOLINE_CUBONE - db EVOLINE_HITMONLEE - db EVOLINE_HITMONCHAN - db EVOLINE_LICKITUNG - db EVOLINE_KOFFING, EVOLINE_KOFFING - db EVOLINE_RHYHORN, EVOLINE_RHYHORN - db EVOLINE_CHANSEY - db EVOLINE_TANGELA - db EVOLINE_KANGASKHAN - db EVOLINE_HORSEA, EVOLINE_HORSEA - db EVOLINE_GOLDEEN, EVOLINE_GOLDEEN - db EVOLINE_STARYU, EVOLINE_STARYU - db EVOLINE_MR_MIME - db EVOLINE_SCYTHER - db EVOLINE_JYNX - db EVOLINE_ELECTABUZZ - db EVOLINE_MAGMAR - db EVOLINE_PINSIR - db EVOLINE_TAUROS - db EVOLINE_MAGIKARP, EVOLINE_MAGIKARP - db EVOLINE_LAPRAS - db EVOLINE_DITTO - db EVOLINE_EEVEE, EVOLINE_EEVEE, EVOLINE_EEVEE, EVOLINE_EEVEE - db EVOLINE_PORYGON - db EVOLINE_OMANYTE, EVOLINE_OMANYTE - db EVOLINE_KABUTO, EVOLINE_KABUTO - db EVOLINE_AERODACTYL - db EVOLINE_SNORLAX - db EVOLINE_ARTICUNO - db EVOLINE_ZAPDOS - db EVOLINE_MOLTRES - db EVOLINE_DRATINI, EVOLINE_DRATINI, EVOLINE_DRATINI - db EVOLINE_MEWTWO - db EVOLINE_MEW + db EVOLINE_BULBASAUR, EVOLINE_BULBASAUR, EVOLINE_BULBASAUR + db EVOLINE_CHARMANDER, EVOLINE_CHARMANDER, EVOLINE_CHARMANDER + db EVOLINE_SQUIRTLE, EVOLINE_SQUIRTLE, EVOLINE_SQUIRTLE + db EVOLINE_CATERPIE, EVOLINE_CATERPIE, EVOLINE_CATERPIE + db EVOLINE_WEEDLE, EVOLINE_WEEDLE, EVOLINE_WEEDLE + db EVOLINE_PIDGEY, EVOLINE_PIDGEY, EVOLINE_PIDGEY + db EVOLINE_RATTATA, EVOLINE_RATTATA + db EVOLINE_SPEAROW, EVOLINE_SPEAROW + db EVOLINE_EKANS, EVOLINE_EKANS + db EVOLINE_PIKACHU, EVOLINE_PIKACHU + db EVOLINE_SANDSHREW, EVOLINE_SANDSHREW + db EVOLINE_NIDORAN_F, EVOLINE_NIDORAN_F, EVOLINE_NIDORAN_F + db EVOLINE_NIDORAN_M, EVOLINE_NIDORAN_M, EVOLINE_NIDORAN_M + db EVOLINE_CLEFAIRY, EVOLINE_CLEFAIRY + db EVOLINE_VULPIX, EVOLINE_VULPIX + db EVOLINE_JIGGLYPUFF, EVOLINE_JIGGLYPUFF + db EVOLINE_ZUBAT, EVOLINE_ZUBAT + db EVOLINE_ODDISH, EVOLINE_ODDISH, EVOLINE_ODDISH + db EVOLINE_PARAS,EVOLINE_PARAS + db EVOLINE_VENONAT,EVOLINE_VENONAT + db EVOLINE_DIGLETT, EVOLINE_DIGLETT + db EVOLINE_MEOWTH, EVOLINE_MEOWTH + db EVOLINE_PSYDUCK, EVOLINE_PSYDUCK + db EVOLINE_MANKEY, EVOLINE_MANKEY + db EVOLINE_GROWLITHE, EVOLINE_GROWLITHE + db EVOLINE_POLIWAG, EVOLINE_POLIWAG, EVOLINE_POLIWAG + db EVOLINE_ABRA, EVOLINE_ABRA, EVOLINE_ABRA + db EVOLINE_MACHOP, EVOLINE_MACHOP, EVOLINE_MACHOP + db EVOLINE_BELLSPROUT, EVOLINE_BELLSPROUT, EVOLINE_BELLSPROUT + db EVOLINE_TENTACOOL, EVOLINE_TENTACOOL + db EVOLINE_GEODUDE, EVOLINE_GEODUDE, EVOLINE_GEODUDE + db EVOLINE_PONYTA, EVOLINE_PONYTA + db EVOLINE_SLOWPOKE, EVOLINE_SLOWPOKE + db EVOLINE_MAGNEMITE, EVOLINE_MAGNEMITE + db EVOLINE_FARFETCH_D + db EVOLINE_DODUO, EVOLINE_DODUO + db EVOLINE_SEEL, EVOLINE_SEEL + db EVOLINE_GRIMER, EVOLINE_GRIMER + db EVOLINE_SHELLDER, EVOLINE_SHELLDER + db EVOLINE_GASTLY, EVOLINE_GASTLY, EVOLINE_GASTLY + db EVOLINE_ONIX + db EVOLINE_DROWZEE, EVOLINE_DROWZEE + db EVOLINE_KRABBY, EVOLINE_KRABBY + db EVOLINE_VOLTORB, EVOLINE_VOLTORB + db EVOLINE_EXEGGCUTE, EVOLINE_EXEGGCUTE + db EVOLINE_CUBONE, EVOLINE_CUBONE + db EVOLINE_HITMONLEE + db EVOLINE_HITMONCHAN + db EVOLINE_LICKITUNG + db EVOLINE_KOFFING, EVOLINE_KOFFING + db EVOLINE_RHYHORN, EVOLINE_RHYHORN + db EVOLINE_CHANSEY + db EVOLINE_TANGELA + db EVOLINE_KANGASKHAN + db EVOLINE_HORSEA, EVOLINE_HORSEA + db EVOLINE_GOLDEEN, EVOLINE_GOLDEEN + db EVOLINE_STARYU, EVOLINE_STARYU + db EVOLINE_MR_MIME + db EVOLINE_SCYTHER + db EVOLINE_JYNX + db EVOLINE_ELECTABUZZ + db EVOLINE_MAGMAR + db EVOLINE_PINSIR + db EVOLINE_TAUROS + db EVOLINE_MAGIKARP, EVOLINE_MAGIKARP + db EVOLINE_LAPRAS + db EVOLINE_DITTO + db EVOLINE_EEVEE, EVOLINE_EEVEE, EVOLINE_EEVEE, EVOLINE_EEVEE + db EVOLINE_PORYGON + db EVOLINE_OMANYTE, EVOLINE_OMANYTE + db EVOLINE_KABUTO, EVOLINE_KABUTO + db EVOLINE_AERODACTYL + db EVOLINE_SNORLAX + db EVOLINE_ARTICUNO + db EVOLINE_ZAPDOS + db EVOLINE_MOLTRES + db EVOLINE_DRATINI, EVOLINE_DRATINI, EVOLINE_DRATINI + db EVOLINE_MEWTWO + db EVOLINE_MEW diff --git a/data/evolution_methods.asm b/data/evolution_methods.asm new file mode 100755 index 0000000..a166dd8 --- /dev/null +++ b/data/evolution_methods.asm @@ -0,0 +1,758 @@ +MonEvolutions: ; 0x116b3 +; Lists the possible evolution types for each pokemon +; Each pokemon has three entries becuase Eevee has three +; evolution possibilities. + ; BULBASAUR + db IVYSAUR, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; IVYSAUR + db VENUSAUR, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; VENUSAUR + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; CHARMANDER + db CHARMELEON, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; CHARMELEON + db CHARIZARD, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; CHARIZARD + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SQUIRTLE + db WARTORTLE, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; WARTORTLE + db BLASTOISE, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; BLASTOISE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; CATERPIE + db METAPOD, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; METAPOD + db BUTTERFREE, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; BUTTERFREE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; WEEDLE + db KAKUNA, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; KAKUNA + db BEEDRILL, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; BEEDRILL + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PIDGEY + db PIDGEOTTO, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PIDGEOTTO + db PIDGEOT, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PIDGEOT + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; RATTATA + db RATICATE, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; RATICATE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SPEAROW + db FEAROW, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; FEAROW + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; EKANS + db ARBOK, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ARBOK + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PIKACHU + db RAICHU, EVO_THUNDER_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; RAICHU + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SANDSHREW + db SANDSLASH, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SANDSLASH + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; NIDORAN_F + db NIDORINA, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; NIDORINA + db NIDOQUEEN, EVO_MOON_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; NIDOQUEEN + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; NIDORAN_M + db NIDORINO, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; NIDORINO + db NIDOKING, EVO_MOON_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; NIDOKING + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; CLEFAIRY + db CLEFABLE, EVO_MOON_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; CLEFABLE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; VULPIX + db NINETALES, EVO_FIRE_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; NINETALES + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; JIGGLYPUFF + db WIGGLYTUFF, EVO_MOON_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; WIGGLYTUFF + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ZUBAT + db GOLBAT, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GOLBAT + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ODDISH + db GLOOM, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GLOOM + db VILEPLUME, EVO_LEAF_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; VILEPLUME + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PARAS + db PARASECT, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PARASECT + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; VENONAT + db VENOMOTH, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; VENOMOTH + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DIGLETT + db DUGTRIO, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DUGTRIO + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MEOWTH + db PERSIAN, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PERSIAN + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PSYDUCK + db GOLDUCK, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GOLDUCK + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MANKEY + db PRIMEAPE, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PRIMEAPE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GROWLITHE + db ARCANINE, EVO_FIRE_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ARCANINE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; POLIWAG + db POLIWHIRL, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; POLIWHIRL + db POLIWRATH, EVO_WATER_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; POLIWRATH + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ABRA + db KADABRA, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; KADABRA + db ALAKAZAM, EVO_LINK_CABLE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ALAKAZAM + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MACHOP + db MACHOKE, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MACHOKE + db MACHAMP, EVO_LINK_CABLE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MACHAMP + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; BELLSPROUT + db WEEPINBELL, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; WEEPINBELL + db VICTREEBEL, EVO_LEAF_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; VICTREEBEL + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; TENTACOOL + db TENTACRUEL, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; TENTACRUEL + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GEODUDE + db GRAVELER, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GRAVELER + db GOLEM, EVO_LINK_CABLE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GOLEM + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PONYTA + db RAPIDASH, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; RAPIDASH + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SLOWPOKE + db SLOWBRO, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SLOWBRO + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MAGNEMITE + db MAGNETON, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MAGNETON + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; FARFETCH_D + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DODUO + db DODRIO, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DODRIO + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SEEL + db DEWGONG, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DEWGONG + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GRIMER + db MUK, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MUK + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SHELLDER + db CLOYSTER, EVO_WATER_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; CLOYSTER + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GASTLY + db HAUNTER, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; HAUNTER + db GENGAR, EVO_LINK_CABLE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GENGAR + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ONIX + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DROWZEE + db HYPNO, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; HYPNO + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; KRABBY + db KINGLER, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; KINGLER + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; VOLTORB + db ELECTRODE, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ELECTRODE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; EXEGGCUTE + db EXEGGUTOR, EVO_LEAF_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; EXEGGUTOR + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; CUBONE + db MAROWAK, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MAROWAK + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; HITMONLEE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; HITMONCHAN + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; LICKITUNG + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; KOFFING + db WEEZING, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; WEEZING + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; RHYHORN + db RHYDON, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; RHYDON + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; CHANSEY + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; TANGELA + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; KANGASKHAN + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; HORSEA + db SEADRA, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SEADRA + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GOLDEEN + db SEAKING, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SEAKING + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; STARYU + db STARMIE, EVO_WATER_STONE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; STARMIE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MR_MIME + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SCYTHER + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; JYNX + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ELECTABUZZ + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MAGMAR + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PINSIR + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; TAUROS + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MAGIKARP + db GYARADOS, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; GYARADOS + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; LAPRAS + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DITTO + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; EEVEE + db VAPOREON, EVO_WATER_STONE + db JOLTEON, EVO_THUNDER_STONE + db FLAREON, EVO_FIRE_STONE + + ; VAPOREON + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; JOLTEON + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; FLAREON + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; PORYGON + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; OMANYTE + db OMASTAR, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; OMASTAR + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; KABUTO + db KABUTOPS, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; KABUTOPS + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; AERODACTYL + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; SNORLAX + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ARTICUNO + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; ZAPDOS + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MOLTRES + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DRATINI + db DRAGONAIR, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DRAGONAIR + db DRAGONITE, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; DRAGONITE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MEWTWO + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + + ; MEW + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE + db $00, EVO_EXPERIENCE diff --git a/data/mon_names.asm b/data/mon_names.asm index a63ea52..8d5bcdc 100755 --- a/data/mon_names.asm +++ b/data/mon_names.asm @@ -1,154 +1,154 @@ PokemonNames: ; 0x11a4e ; The first byte of each entry is the symbol displayed to the left of the mon's ; name in the evolution menu. Fully-evolved pokemon have an asterisk next to their names. - db $20, "BULBASAUR@", $20, $20, $20, $20, $20 - db $20, "IVYSAUR@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "VENUSAUR@", $20, $20, $20, $20, $20, $20 - db $20, "CHARMANDER@", $20, $20, $20, $20 - db $20, "CHARMELEON@", $20, $20, $20, $20 - db $2a, "CHARIZARD@", $20, $20, $20, $20, $20 - db $20, "SQUIRTLE@", $20, $20, $20, $20, $20, $20 - db $20, "WARTORTLE@", $20, $20, $20, $20, $20 - db $2a, "BLASTOISE@", $20, $20, $20, $20, $20 - db $20, "CATERPIE@", $20, $20, $20, $20, $20, $20 - db $20, "METAPOD@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "BUTTERFREE@", $20, $20, $20, $20 - db $20, "WEEDLE@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "KAKUNA@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "BEEDRILL@", $20, $20, $20, $20, $20, $20 - db $20, "PIDGEY@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "PIDGEOTTO@", $20, $20, $20, $20, $20 - db $2a, "PIDGEOT@", $20, $20, $20, $20, $20, $20, $20 - db $20, "RATTATA@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "RATICATE@", $20, $20, $20, $20, $20, $20 - db $20, "SPEAROW@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "FEAROW@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "EKANS@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "ARBOK@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "PIKACHU@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "RAICHU@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "SANDSHREW@", $20, $20, $20, $20, $20 - db $2a, "SANDSLASH@", $20, $20, $20, $20, $20 - db $20, "NIDORAN♂@", $20, $20, $20, $20, $20, $20 - db $20, "NIDORINA@", $20, $20, $20, $20, $20, $20 - db $2a, "NIDOQUEEN@", $20, $20, $20, $20, $20 - db $20, "NIDORAN♀@", $20, $20, $20, $20, $20, $20 - db $20, "NIDORINO@", $20, $20, $20, $20, $20, $20 - db $2a, "NIDOKING@", $20, $20, $20, $20, $20, $20 - db $20, "CLEFAIRY@", $20, $20, $20, $20, $20, $20 - db $2a, "CLEFABLE@", $20, $20, $20, $20, $20, $20 - db $20, "VULPIX@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "NINETALES@", $20, $20, $20, $20, $20 - db $20, "JIGGLYPUFF@", $20, $20, $20, $20 - db $2a, "WIGGLYTUFF@", $20, $20, $20, $20 - db $20, "ZUBAT@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "GOLBAT@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "ODDISH@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "GLOOM@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "VILEPLUME@", $20, $20, $20, $20, $20 - db $20, "PARAS@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "PARASECT@", $20, $20, $20, $20, $20, $20 - db $20, "VENONAT@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "VENOMOTH@", $20, $20, $20, $20, $20, $20 - db $20, "DIGLETT@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "DUGTRIO@", $20, $20, $20, $20, $20, $20, $20 - db $20, "MEOWTH@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "PERSIAN@", $20, $20, $20, $20, $20, $20, $20 - db $20, "PSYDUCK@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "GOLDUCK@", $20, $20, $20, $20, $20, $20, $20 - db $20, "MANKEY@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "PRIMEAPE@", $20, $20, $20, $20, $20, $20 - db $20, "GROWLITHE@", $20, $20, $20, $20, $20 - db $2a, "ARCANINE@", $20, $20, $20, $20, $20, $20 - db $20, "POLIWAG@", $20, $20, $20, $20, $20, $20, $20 - db $20, "POLIWHIRL@", $20, $20, $20, $20, $20 - db $2a, "POLIWRATH@", $20, $20, $20, $20, $20 - db $20, "ABRA@", $20, $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "KADABRA@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "ALAKAZAM@", $20, $20, $20, $20, $20, $20 - db $20, "MACHOP@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "MACHOKE@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "MACHAMP@", $20, $20, $20, $20, $20, $20, $20 - db $20, "BELLSPROUT@", $20, $20, $20, $20 - db $20, "WEEPINBELL@", $20, $20, $20, $20 - db $2a, "VICTREEBEL@", $20, $20, $20, $20 - db $20, "TENTACOOL@", $20, $20, $20, $20, $20 - db $2a, "TENTACRUEL@", $20, $20, $20, $20 - db $20, "GEODUDE@", $20, $20, $20, $20, $20, $20, $20 - db $20, "GRAVELER@", $20, $20, $20, $20, $20, $20 - db $2a, "GOLEM@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "PONYTA@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "RAPIDASH@", $20, $20, $20, $20, $20, $20 - db $20, "SLOWPOKE@", $20, $20, $20, $20, $20, $20 - db $2a, "SLOWBRO@", $20, $20, $20, $20, $20, $20, $20 - db $20, "MAGNEMITE@", $20, $20, $20, $20, $20 - db $2a, "MAGNETON@", $20, $20, $20, $20, $20, $20 - db $2a, "FARFETCH'D@", $20, $20, $20, $20 - db $20, "DODUO@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "DODRIO@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "SEEL@", $20, $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "DEWGONG@", $20, $20, $20, $20, $20, $20, $20 - db $20, "GRIMER@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "MUK@", $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "SHELLDER@", $20, $20, $20, $20, $20, $20 - db $2a, "CLOYSTER@", $20, $20, $20, $20, $20, $20 - db $20, "GASTLY@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "HAUNTER@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "GENGAR@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "ONIX@", $20, $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "DROWZEE@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "HYPNO@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "KRABBY@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "KINGLER@", $20, $20, $20, $20, $20, $20, $20 - db $20, "VOLTORB@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "ELECTRODE@", $20, $20, $20, $20, $20 - db $20, "EXEGGCUTE@", $20, $20, $20, $20, $20 - db $2a, "EXEGGUTOR@", $20, $20, $20, $20, $20 - db $20, "CUBONE@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "MAROWAK@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "HITMONLEE@", $20, $20, $20, $20, $20 - db $2a, "HITMONCHAN@", $20, $20, $20, $20 - db $2a, "LICKITUNG@", $20, $20, $20, $20, $20 - db $20, "KOFFING@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "WEEZING@", $20, $20, $20, $20, $20, $20, $20 - db $20, "RHYHORN@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "RHYDON@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "CHANSEY@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "TANGELA@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "KANGASKHAN@", $20, $20, $20, $20 - db $20, "HORSEA@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "SEADRA@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "GOLDEEN@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "SEAKING@", $20, $20, $20, $20, $20, $20, $20 - db $20, "STARYU@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "STARMIE@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "MR.MIME@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "SCYTHER@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "JYNX@", $20, $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "ELECTABUZZ@", $20, $20, $20, $20 - db $2a, "MAGMAR@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "PINSIR@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "TAUROS@", $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "MAGIKARP@", $20, $20, $20, $20, $20, $20 - db $2a, "GYARADOS@", $20, $20, $20, $20, $20, $20 - db $2a, "LAPRAS@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "DITTO@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $20, "EEVEE@", $20, $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "VAPOREON@", $20, $20, $20, $20, $20, $20 - db $2a, "JOLTEON@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "FLAREON@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "PORYGON@", $20, $20, $20, $20, $20, $20, $20 - db $20, "OMANYTE@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "OMASTAR@", $20, $20, $20, $20, $20, $20, $20 - db $20, "KABUTO@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "KABUTOPS@", $20, $20, $20, $20, $20, $20 - db $2a, "AERODACTYL@", $20, $20, $20, $20 - db $2a, "SNORLAX@", $20, $20, $20, $20, $20, $20, $20 - db $2a, "ARTICUNO@", $20, $20, $20, $20, $20, $20 - db $2a, "ZAPDOS@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "MOLTRES@", $20, $20, $20, $20, $20, $20, $20 - db $20, "DRATINI@", $20, $20, $20, $20, $20, $20, $20 - db $20, "DRAGONAIR@", $20, $20, $20, $20, $20 - db $2a, "DRAGONITE@", $20, $20, $20, $20, $20 - db $2a, "MEWTWO@", $20, $20, $20, $20, $20, $20, $20, $20 - db $2a, "MEW@", $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20 + db " BULBASAUR@ " + db " IVYSAUR@ " + db "*VENUSAUR@ " + db " CHARMANDER@ " + db " CHARMELEON@ " + db "*CHARIZARD@ " + db " SQUIRTLE@ " + db " WARTORTLE@ " + db "*BLASTOISE@ " + db " CATERPIE@ " + db " METAPOD@ " + db "*BUTTERFREE@ " + db " WEEDLE@ " + db " KAKUNA@ " + db "*BEEDRILL@ " + db " PIDGEY@ " + db " PIDGEOTTO@ " + db "*PIDGEOT@ " + db " RATTATA@ " + db "*RATICATE@ " + db " SPEAROW@ " + db "*FEAROW@ " + db " EKANS@ " + db "*ARBOK@ " + db " PIKACHU@ " + db "*RAICHU@ " + db " SANDSHREW@ " + db "*SANDSLASH@ " + db " NIDORAN♂@ " + db " NIDORINA@ " + db "*NIDOQUEEN@ " + db " NIDORAN♀@ " + db " NIDORINO@ " + db "*NIDOKING@ " + db " CLEFAIRY@ " + db "*CLEFABLE@ " + db " VULPIX@ " + db "*NINETALES@ " + db " JIGGLYPUFF@ " + db "*WIGGLYTUFF@ " + db " ZUBAT@ " + db "*GOLBAT@ " + db " ODDISH@ " + db " GLOOM@ " + db "*VILEPLUME@ " + db " PARAS@ " + db "*PARASECT@ " + db " VENONAT@ " + db "*VENOMOTH@ " + db " DIGLETT@ " + db "*DUGTRIO@ " + db " MEOWTH@ " + db "*PERSIAN@ " + db " PSYDUCK@ " + db "*GOLDUCK@ " + db " MANKEY@ " + db "*PRIMEAPE@ " + db " GROWLITHE@ " + db "*ARCANINE@ " + db " POLIWAG@ " + db " POLIWHIRL@ " + db "*POLIWRATH@ " + db " ABRA@ " + db " KADABRA@ " + db "*ALAKAZAM@ " + db " MACHOP@ " + db " MACHOKE@ " + db "*MACHAMP@ " + db " BELLSPROUT@ " + db " WEEPINBELL@ " + db "*VICTREEBEL@ " + db " TENTACOOL@ " + db "*TENTACRUEL@ " + db " GEODUDE@ " + db " GRAVELER@ " + db "*GOLEM@ " + db " PONYTA@ " + db "*RAPIDASH@ " + db " SLOWPOKE@ " + db "*SLOWBRO@ " + db " MAGNEMITE@ " + db "*MAGNETON@ " + db "*FARFETCH`D@ " + db " DODUO@ " + db "*DODRIO@ " + db " SEEL@ " + db "*DEWGONG@ " + db " GRIMER@ " + db "*MUK@ " + db " SHELLDER@ " + db "*CLOYSTER@ " + db " GASTLY@ " + db " HAUNTER@ " + db "*GENGAR@ " + db "*ONIX@ " + db " DROWZEE@ " + db "*HYPNO@ " + db " KRABBY@ " + db "*KINGLER@ " + db " VOLTORB@ " + db "*ELECTRODE@ " + db " EXEGGCUTE@ " + db "*EXEGGUTOR@ " + db " CUBONE@ " + db "*MAROWAK@ " + db "*HITMONLEE@ " + db "*HITMONCHAN@ " + db "*LICKITUNG@ " + db " KOFFING@ " + db "*WEEZING@ " + db " RHYHORN@ " + db "*RHYDON@ " + db "*CHANSEY@ " + db "*TANGELA@ " + db "*KANGASKHAN@ " + db " HORSEA@ " + db "*SEADRA@ " + db " GOLDEEN@ " + db "*SEAKING@ " + db " STARYU@ " + db "*STARMIE@ " + db "*MR.MIME@ " + db "*SCYTHER@ " + db "*JYNX@ " + db "*ELECTABUZZ@ " + db "*MAGMAR@ " + db "*PINSIR@ " + db "*TAUROS@ " + db " MAGIKARP@ " + db "*GYARADOS@ " + db "*LAPRAS@ " + db "*DITTO@ " + db " EEVEE@ " + db "*VAPOREON@ " + db "*JOLTEON@ " + db "*FLAREON@ " + db "*PORYGON@ " + db " OMANYTE@ " + db "*OMASTAR@ " + db " KABUTO@ " + db "*KABUTOPS@ " + db "*AERODACTYL@ " + db "*SNORLAX@ " + db "*ARTICUNO@ " + db "*ZAPDOS@ " + db "*MOLTRES@ " + db " DRATINI@ " + db " DRAGONAIR@ " + db "*DRAGONITE@ " + db "*MEWTWO@ " + db "*MEW@ " diff --git a/data/red_wild_mons.asm b/data/red_wild_mons.asm index 60a4574..b9533ac 100755 --- a/data/red_wild_mons.asm +++ b/data/red_wild_mons.asm @@ -1,434 +1,434 @@ RedStageWildMons: ; 0x112cc RedStagePalletTownWildMons: ; 0x112cc - db BULBASAUR - db CHARMANDER - db CHARMANDER - db CHARMANDER - db CHARMANDER - db CHARMANDER - db CHARMANDER - db PIDGEY - db PIDGEY - db PIDGEY - db RATTATA - db RATTATA - db RATTATA - db NIDORAN_M - db POLIWAG - db TENTACOOL + db BULBASAUR + db CHARMANDER + db CHARMANDER + db CHARMANDER + db CHARMANDER + db CHARMANDER + db CHARMANDER + db PIDGEY + db PIDGEY + db PIDGEY + db RATTATA + db RATTATA + db RATTATA + db NIDORAN_M + db POLIWAG + db TENTACOOL RedStagePalletTownWildMonsRare: ; 0x112dc - db BULBASAUR - db BULBASAUR - db BULBASAUR - db CHARMANDER - db PIDGEY - db RATTATA - db NIDORAN_M - db NIDORAN_M - db NIDORAN_M - db POLIWAG - db POLIWAG - db POLIWAG - db POLIWAG - db TENTACOOL - db TENTACOOL - db TENTACOOL + db BULBASAUR + db BULBASAUR + db BULBASAUR + db CHARMANDER + db PIDGEY + db RATTATA + db NIDORAN_M + db NIDORAN_M + db NIDORAN_M + db POLIWAG + db POLIWAG + db POLIWAG + db POLIWAG + db TENTACOOL + db TENTACOOL + db TENTACOOL RedStageViridianForestWildMons: ; 0x112ec - db WEEDLE - db WEEDLE - db WEEDLE - db WEEDLE - db WEEDLE - db PIDGEY - db PIDGEY - db PIDGEY - db PIDGEY - db PIDGEY - db RATTATA - db RATTATA - db RATTATA - db RATTATA - db RATTATA - db PIKACHU + db WEEDLE + db WEEDLE + db WEEDLE + db WEEDLE + db WEEDLE + db PIDGEY + db PIDGEY + db PIDGEY + db PIDGEY + db PIDGEY + db RATTATA + db RATTATA + db RATTATA + db RATTATA + db RATTATA + db PIKACHU RedStageViridianForestWildMonsRare: ; 0x112fc - db CATERPIE - db CATERPIE - db WEEDLE - db WEEDLE - db WEEDLE - db PIDGEY - db PIDGEY - db RATTATA - db RATTATA - db PIKACHU - db PIKACHU - db PIKACHU - db PIKACHU - db PIKACHU - db PIKACHU - db PIKACHU + db CATERPIE + db CATERPIE + db WEEDLE + db WEEDLE + db WEEDLE + db PIDGEY + db PIDGEY + db RATTATA + db RATTATA + db PIKACHU + db PIKACHU + db PIKACHU + db PIKACHU + db PIKACHU + db PIKACHU + db PIKACHU RedStagePewterCityWildMons: ; 0x1130c - db PIDGEY - db PIDGEY - db SPEAROW - db SPEAROW - db SPEAROW - db SPEAROW - db SPEAROW - db SPEAROW - db EKANS - db JIGGLYPUFF - db JIGGLYPUFF - db JIGGLYPUFF - db JIGGLYPUFF - db JIGGLYPUFF - db MAGIKARP - db MAGIKARP + db PIDGEY + db PIDGEY + db SPEAROW + db SPEAROW + db SPEAROW + db SPEAROW + db SPEAROW + db SPEAROW + db EKANS + db JIGGLYPUFF + db JIGGLYPUFF + db JIGGLYPUFF + db JIGGLYPUFF + db JIGGLYPUFF + db MAGIKARP + db MAGIKARP RedStagePewterCityWildMonsRare: ; 0x1131c - db PIDGEY - db PIDGEY - db SPEAROW - db SPEAROW - db SPEAROW - db EKANS - db EKANS - db EKANS - db EKANS - db JIGGLYPUFF - db JIGGLYPUFF - db JIGGLYPUFF - db MAGIKARP - db MAGIKARP - db MAGIKARP - db MAGIKARP + db PIDGEY + db PIDGEY + db SPEAROW + db SPEAROW + db SPEAROW + db EKANS + db EKANS + db EKANS + db EKANS + db JIGGLYPUFF + db JIGGLYPUFF + db JIGGLYPUFF + db MAGIKARP + db MAGIKARP + db MAGIKARP + db MAGIKARP RedStageCeruleanCityWildMons: ; 0x1132c - db WEEDLE - db WEEDLE - db PIDGEY - db ODDISH - db ODDISH - db ODDISH - db ODDISH - db ODDISH - db PSYDUCK - db MANKEY - db MANKEY - db MANKEY - db ABRA - db ABRA - db KRABBY - db GOLDEEN + db WEEDLE + db WEEDLE + db PIDGEY + db ODDISH + db ODDISH + db ODDISH + db ODDISH + db ODDISH + db PSYDUCK + db MANKEY + db MANKEY + db MANKEY + db ABRA + db ABRA + db KRABBY + db GOLDEEN RedStageCeruleanCityWildMonsRare: ; 0x1133c - db CATERPIE - db NIDORAN_M - db ODDISH - db PSYDUCK - db PSYDUCK - db MANKEY - db MANKEY - db ABRA - db ABRA - db ABRA - db KRABBY - db GOLDEEN - db GOLDEEN - db JYNX - db JYNX - db JYNX + db CATERPIE + db NIDORAN_M + db ODDISH + db PSYDUCK + db PSYDUCK + db MANKEY + db MANKEY + db ABRA + db ABRA + db ABRA + db KRABBY + db GOLDEEN + db GOLDEEN + db JYNX + db JYNX + db JYNX RedStageVermilionSeasideWildMons: ; 0x1134c - db PIDGEY - db SPEAROW - db EKANS - db EKANS - db ODDISH - db ODDISH - db MANKEY - db MANKEY - db SHELLDER - db SHELLDER - db SHELLDER - db DROWZEE - db DROWZEE - db KRABBY - db KRABBY - db KRABBY + db PIDGEY + db SPEAROW + db EKANS + db EKANS + db ODDISH + db ODDISH + db MANKEY + db MANKEY + db SHELLDER + db SHELLDER + db SHELLDER + db DROWZEE + db DROWZEE + db KRABBY + db KRABBY + db KRABBY RedStageVermilionSeasideWildMonsRare: ; 0x1135c - db EKANS - db EKANS - db EKANS - db EKANS - db ODDISH - db MANKEY - db FARFETCH_D - db FARFETCH_D - db FARFETCH_D - db FARFETCH_D - db SHELLDER - db SHELLDER - db DROWZEE - db DROWZEE - db KRABBY - db KRABBY + db EKANS + db EKANS + db EKANS + db EKANS + db ODDISH + db MANKEY + db FARFETCH_D + db FARFETCH_D + db FARFETCH_D + db FARFETCH_D + db SHELLDER + db SHELLDER + db DROWZEE + db DROWZEE + db KRABBY + db KRABBY RedStageRockMountainWildMons: ; 0x1136c - db RATTATA - db SPEAROW - db EKANS - db EKANS - db EKANS - db ZUBAT - db DIGLETT - db DIGLETT - db DIGLETT - db MACHOP - db GEODUDE - db SLOWPOKE - db ONIX - db VOLTORB - db VOLTORB - db VOLTORB + db RATTATA + db SPEAROW + db EKANS + db EKANS + db EKANS + db ZUBAT + db DIGLETT + db DIGLETT + db DIGLETT + db MACHOP + db GEODUDE + db SLOWPOKE + db ONIX + db VOLTORB + db VOLTORB + db VOLTORB RedStageRockMountainWildMonsRare: ; 0x1137c - db ZUBAT - db ZUBAT - db DIGLETT - db MACHOP - db MACHOP - db GEODUDE - db GEODUDE - db SLOWPOKE - db SLOWPOKE - db ONIX - db ONIX - db VOLTORB - db VOLTORB - db MR_MIME - db MR_MIME - db MR_MIME + db ZUBAT + db ZUBAT + db DIGLETT + db MACHOP + db MACHOP + db GEODUDE + db GEODUDE + db SLOWPOKE + db SLOWPOKE + db ONIX + db ONIX + db VOLTORB + db VOLTORB + db MR_MIME + db MR_MIME + db MR_MIME RedStageLavenderTownWildMons: ; 0x1138c - db PIDGEY - db PIDGEY - db EKANS - db EKANS - db MANKEY - db MANKEY - db GROWLITHE - db GROWLITHE - db MAGNEMITE - db MAGNEMITE - db GASTLY - db GASTLY - db GASTLY - db GASTLY - db GASTLY - db CUBONE + db PIDGEY + db PIDGEY + db EKANS + db EKANS + db MANKEY + db MANKEY + db GROWLITHE + db GROWLITHE + db MAGNEMITE + db MAGNEMITE + db GASTLY + db GASTLY + db GASTLY + db GASTLY + db GASTLY + db CUBONE RedStageLavenderTownWildMonsRare: ; 0x1139c - db EKANS - db MANKEY - db GROWLITHE - db MAGNEMITE - db MAGNEMITE - db GASTLY - db GASTLY - db CUBONE - db CUBONE - db CUBONE - db ELECTABUZZ - db ELECTABUZZ - db ELECTABUZZ - db ZAPDOS - db ZAPDOS - db ZAPDOS + db EKANS + db MANKEY + db GROWLITHE + db MAGNEMITE + db MAGNEMITE + db GASTLY + db GASTLY + db CUBONE + db CUBONE + db CUBONE + db ELECTABUZZ + db ELECTABUZZ + db ELECTABUZZ + db ZAPDOS + db ZAPDOS + db ZAPDOS RedStageCyclingRoadWildMons: ; 0x113ac - db RATTATA - db RATTATA - db SPEAROW - db SPEAROW - db TENTACOOL - db TENTACOOL - db DODUO - db DODUO - db DODUO - db KRABBY - db KRABBY - db LICKITUNG - db GOLDEEN - db GOLDEEN - db MAGIKARP - db MAGIKARP + db RATTATA + db RATTATA + db SPEAROW + db SPEAROW + db TENTACOOL + db TENTACOOL + db DODUO + db DODUO + db DODUO + db KRABBY + db KRABBY + db LICKITUNG + db GOLDEEN + db GOLDEEN + db MAGIKARP + db MAGIKARP RedStageCyclingRoadWildMonsRare: ; 0x113bc - db TENTACOOL - db DODUO - db DODUO - db DODUO - db DODUO - db DODUO - db KRABBY - db LICKITUNG - db LICKITUNG - db LICKITUNG - db LICKITUNG - db GOLDEEN - db MAGIKARP - db SNORLAX - db SNORLAX - db SNORLAX + db TENTACOOL + db DODUO + db DODUO + db DODUO + db DODUO + db DODUO + db KRABBY + db LICKITUNG + db LICKITUNG + db LICKITUNG + db LICKITUNG + db GOLDEEN + db MAGIKARP + db SNORLAX + db SNORLAX + db SNORLAX RedStageSafariZoneWildMons: ; 0x113cc - db NIDORAN_M - db NIDORAN_M - db NIDORAN_M - db NIDORAN_M - db PARAS - db PARAS - db PARAS - db PARAS - db DODUO - db DODUO - db DODUO - db DODUO - db RHYHORN - db RHYHORN - db RHYHORN - db RHYHORN + db NIDORAN_M + db NIDORAN_M + db NIDORAN_M + db NIDORAN_M + db PARAS + db PARAS + db PARAS + db PARAS + db DODUO + db DODUO + db DODUO + db DODUO + db RHYHORN + db RHYHORN + db RHYHORN + db RHYHORN RedStageSafariZoneWildMonsRare: ; 0x113dc - db NIDORAN_M - db NIDORAN_M - db PARAS - db PARAS - db RHYHORN - db RHYHORN - db CHANSEY - db CHANSEY - db CHANSEY - db CHANSEY - db SCYTHER - db SCYTHER - db TAUROS - db TAUROS - db DRATINI - db DRATINI + db NIDORAN_M + db NIDORAN_M + db PARAS + db PARAS + db RHYHORN + db RHYHORN + db CHANSEY + db CHANSEY + db CHANSEY + db CHANSEY + db SCYTHER + db SCYTHER + db TAUROS + db TAUROS + db DRATINI + db DRATINI RedStageSeafoamIslandsWildMons: ; 0x113ec - db ZUBAT - db PSYDUCK - db TENTACOOL - db SLOWPOKE - db SEEL - db SHELLDER - db KRABBY - db HORSEA - db HORSEA - db HORSEA - db HORSEA - db GOLDEEN - db STARYU - db STARYU - db STARYU - db STARYU + db ZUBAT + db PSYDUCK + db TENTACOOL + db SLOWPOKE + db SEEL + db SHELLDER + db KRABBY + db HORSEA + db HORSEA + db HORSEA + db HORSEA + db GOLDEEN + db STARYU + db STARYU + db STARYU + db STARYU RedStageSeafoamIslandsWildMonsRare: ; 0x113fc - db SEEL - db SEEL - db SEEL - db SEEL - db SEEL - db GOLDEEN - db GOLDEEN - db GOLDEEN - db GOLDEEN - db STARYU - db STARYU - db STARYU - db STARYU - db ARTICUNO - db ARTICUNO - db ARTICUNO + db SEEL + db SEEL + db SEEL + db SEEL + db SEEL + db GOLDEEN + db GOLDEEN + db GOLDEEN + db GOLDEEN + db STARYU + db STARYU + db STARYU + db STARYU + db ARTICUNO + db ARTICUNO + db ARTICUNO RedStageCinnabarIslandWildMons: ; 0x1140c - db GROWLITHE - db GROWLITHE - db GROWLITHE - db GROWLITHE - db PONYTA - db PONYTA - db PONYTA - db PONYTA - db GRIMER - db GRIMER - db KOFFING - db KOFFING - db KOFFING - db KOFFING - db TANGELA - db TANGELA + db GROWLITHE + db GROWLITHE + db GROWLITHE + db GROWLITHE + db PONYTA + db PONYTA + db PONYTA + db PONYTA + db GRIMER + db GRIMER + db KOFFING + db KOFFING + db KOFFING + db KOFFING + db TANGELA + db TANGELA RedStageCinnabarIslandWildMonsRare: ; 0x1141c - db GROWLITHE - db GROWLITHE - db PONYTA - db PONYTA - db GRIMER - db KOFFING - db KOFFING - db TANGELA - db TANGELA - db TANGELA - db OMANYTE - db OMANYTE - db OMANYTE - db KABUTO - db KABUTO - db KABUTO + db GROWLITHE + db GROWLITHE + db PONYTA + db PONYTA + db GRIMER + db KOFFING + db KOFFING + db TANGELA + db TANGELA + db TANGELA + db OMANYTE + db OMANYTE + db OMANYTE + db KABUTO + db KABUTO + db KABUTO RedStageIndigoPlateauWildMons: ; 0x1142c - db SPEAROW - db EKANS - db ZUBAT - db ZUBAT - db MACHOP - db MACHOP - db MACHOP - db GEODUDE - db GEODUDE - db GEODUDE - db ONIX - db ONIX - db ONIX - db DITTO - db DITTO - db DITTO + db SPEAROW + db EKANS + db ZUBAT + db ZUBAT + db MACHOP + db MACHOP + db MACHOP + db GEODUDE + db GEODUDE + db GEODUDE + db ONIX + db ONIX + db ONIX + db DITTO + db DITTO + db DITTO RedStageIndigoPlateauWildMonsRare: ; 0x1143c - db SPEAROW - db EKANS - db ZUBAT - db MACHOP - db GEODUDE - db ONIX - db DITTO - db DITTO - db DITTO - db DITTO - db MOLTRES - db MOLTRES - db MOLTRES - db MEWTWO - db MEWTWO - db MEWTWO + db SPEAROW + db EKANS + db ZUBAT + db MACHOP + db GEODUDE + db ONIX + db DITTO + db DITTO + db DITTO + db DITTO + db MOLTRES + db MOLTRES + db MOLTRES + db MEWTWO + db MEWTWO + db MEWTWO - db MEW + db MEW diff --git a/data/tilt/left_only b/data/tilt/left_only Binary files differnew file mode 100644 index 0000000..d68143e --- /dev/null +++ b/data/tilt/left_only diff --git a/data/tilt/right_only b/data/tilt/right_only Binary files differnew file mode 100644 index 0000000..af9472d --- /dev/null +++ b/data/tilt/right_only diff --git a/data/tilt/up_left b/data/tilt/up_left Binary files differnew file mode 100644 index 0000000..70ebbcc --- /dev/null +++ b/data/tilt/up_left diff --git a/data/tilt/up_only b/data/tilt/up_only Binary files differnew file mode 100644 index 0000000..beb2d4e --- /dev/null +++ b/data/tilt/up_only diff --git a/data/tilt/up_right b/data/tilt/up_right Binary files differnew file mode 100644 index 0000000..75987a5 --- /dev/null +++ b/data/tilt/up_right diff --git a/data/unknown_17679.asm b/data/unknown_17679.asm new file mode 100755 index 0000000..58f549f --- /dev/null +++ b/data/unknown_17679.asm @@ -0,0 +1,525 @@ + dw Data_177a1 + dw Data_177a4 + dw Data_177a7 + dw Data_177aa + dw Data_177ad + dw Data_177b0 + dw Data_177b3 + dw Data_177b6 + dw Data_177b9 + dw Data_177bc + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Data_177bf + dw Data_177c2 + dw Data_177c5 + dw Data_177c8 + dw Data_177cb + dw Data_177ce + dw Data_177d1 + dw Data_177d4 + dw Data_177d7 + dw Data_177da + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Data_177dd + dw Data_177e0 + dw Data_177e3 + dw Data_177e6 + dw Data_177e9 + dw Data_177ec + dw Data_177ef + dw Data_177f2 + dw Data_177f5 + dw Data_177f8 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Data_177fb + dw Data_177fe + dw Data_17801 + dw Data_17804 + dw Data_17807 + dw Data_1780a + dw Data_1780d + dw Data_17810 + dw Data_17813 + dw Data_17816 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Data_17819 + dw Data_1781c + dw Data_1781f + dw Data_17822 + dw Data_17825 + dw Data_17828 + dw Data_1782b + dw Data_1782e + dw Data_17831 + dw Data_17834 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Data_17837 + dw Data_1783a + dw Data_1783d + dw Data_17840 + dw Data_17843 + dw Data_17846 + dw Data_17849 + dw Data_1784c + dw Data_1784f + dw Data_17852 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Data_17855 + dw Data_17858 + dw Data_1785b + dw Data_1785e + dw Data_17861 + dw Data_17864 + dw Data_17867 + dw Data_1786a + dw Data_1786d + dw Data_17870 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Data_17873 + dw Data_17876 + dw Data_17879 + dw Data_1787c + dw Data_1787f + dw Data_17882 + dw Data_17885 + dw Data_17888 + dw Data_1788b + dw Data_1788e + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Data_17891 + dw Data_17894 + dw Data_17897 + dw Data_1789a + dw Data_1789d + dw Data_178a0 + dw Data_178a3 + dw Data_178a6 + dw Data_178a9 + dw Data_178ac + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw $0000 + dw Data_178af + dw Data_178b2 + dw Data_178b5 + dw Data_178b8 + +Data_177a1: dbw 1, Data_178bb +Data_177a4: dbw 1, Data_178c5 +Data_177a7: dbw 1, Data_178cf +Data_177aa: dbw 1, Data_178d9 +Data_177ad: dbw 1, Data_178e3 +Data_177b0: dbw 1, Data_178ed +Data_177b3: dbw 1, Data_178f7 +Data_177b6: dbw 1, Data_17901 +Data_177b9: dbw 1, Data_1790b +Data_177bc: dbw 1, Data_17915 +Data_177bf: dbw 1, Data_1791f +Data_177c2: dbw 1, Data_17929 +Data_177c5: dbw 1, Data_17933 +Data_177c8: dbw 1, Data_1793d +Data_177cb: dbw 1, Data_17947 +Data_177ce: dbw 1, Data_17951 +Data_177d1: dbw 1, Data_1795b +Data_177d4: dbw 1, Data_17965 +Data_177d7: dbw 1, Data_1796f +Data_177da: dbw 1, Data_17979 +Data_177dd: dbw 1, Data_17983 +Data_177e0: dbw 1, Data_1798d +Data_177e3: dbw 1, Data_17997 +Data_177e6: dbw 1, Data_179a1 +Data_177e9: dbw 1, Data_179ab +Data_177ec: dbw 1, Data_179b5 +Data_177ef: dbw 1, Data_179bf +Data_177f2: dbw 1, Data_179c9 +Data_177f5: dbw 1, Data_179d3 +Data_177f8: dbw 1, Data_179dd +Data_177fb: dbw 1, Data_179e7 +Data_177fe: dbw 1, Data_179f1 +Data_17801: dbw 1, Data_179fb +Data_17804: dbw 1, Data_17a05 +Data_17807: dbw 1, Data_17a0f +Data_1780a: dbw 1, Data_17a19 +Data_1780d: dbw 1, Data_17a23 +Data_17810: dbw 1, Data_17a2d +Data_17813: dbw 1, Data_17a37 +Data_17816: dbw 1, Data_17a41 +Data_17819: dbw 1, Data_17a4b +Data_1781c: dbw 1, Data_17a55 +Data_1781f: dbw 1, Data_17a5f +Data_17822: dbw 1, Data_17a69 +Data_17825: dbw 1, Data_17a73 +Data_17828: dbw 1, Data_17a7d +Data_1782b: dbw 1, Data_17a87 +Data_1782e: dbw 1, Data_17a91 +Data_17831: dbw 1, Data_17a9b +Data_17834: dbw 1, Data_17aa5 +Data_17837: dbw 1, Data_17aaf +Data_1783a: dbw 1, Data_17ab9 +Data_1783d: dbw 1, Data_17ac3 +Data_17840: dbw 1, Data_17acd +Data_17843: dbw 1, Data_17ad7 +Data_17846: dbw 1, Data_17ae1 +Data_17849: dbw 1, Data_17aeb +Data_1784c: dbw 1, Data_17af5 +Data_1784f: dbw 1, Data_17aff +Data_17852: dbw 1, Data_17b09 +Data_17855: dbw 1, Data_17b13 +Data_17858: dbw 1, Data_17b1d +Data_1785b: dbw 1, Data_17b27 +Data_1785e: dbw 1, Data_17b31 +Data_17861: dbw 1, Data_17b3b +Data_17864: dbw 1, Data_17b45 +Data_17867: dbw 1, Data_17b4f +Data_1786a: dbw 1, Data_17b59 +Data_1786d: dbw 1, Data_17b63 +Data_17870: dbw 1, Data_17b6d +Data_17873: dbw 1, Data_17b77 +Data_17876: dbw 1, Data_17b81 +Data_17879: dbw 1, Data_17b8b +Data_1787c: dbw 1, Data_17b95 +Data_1787f: dbw 1, Data_17b9f +Data_17882: dbw 1, Data_17ba9 +Data_17885: dbw 1, Data_17bb3 +Data_17888: dbw 1, Data_17bbd +Data_1788b: dbw 1, Data_17bc7 +Data_1788e: dbw 1, Data_17bd1 +Data_17891: dbw 1, Data_17bdb +Data_17894: dbw 1, Data_17be5 +Data_17897: dbw 1, Data_17bef +Data_1789a: dbw 1, Data_17bf9 +Data_1789d: dbw 1, Data_17c03 +Data_178a0: dbw 1, Data_17c0d +Data_178a3: dbw 1, Data_17c17 +Data_178a6: dbw 1, Data_17c21 +Data_178a9: dbw 1, Data_17c2b +Data_178ac: dbw 1, Data_17c35 +Data_178af: dbw 1, Data_17c3f +Data_178b2: dbw 1, Data_17c49 +Data_178b5: dbw 1, Data_17c53 +Data_178b8: dbw 1, Data_17c5d + +Data_178bb: + dr $178bb, $178c5 + +Data_178c5: + dr $178c5, $178cf + +Data_178cf: + dr $178cf, $178d9 + +Data_178d9: + dr $178d9, $178e3 + +Data_178e3: + dr $178e3, $178ed + +Data_178ed: + dr $178ed, $178f7 + +Data_178f7: + dr $178f7, $17901 + +Data_17901: + dr $17901, $1790b + +Data_1790b: + dr $1790b, $17915 + +Data_17915: + dr $17915, $1791f + +Data_1791f: + dr $1791f, $17929 + +Data_17929: + dr $17929, $17933 + +Data_17933: + dr $17933, $1793d + +Data_1793d: + dr $1793d, $17947 + +Data_17947: + dr $17947, $17951 + +Data_17951: + dr $17951, $1795b + +Data_1795b: + dr $1795b, $17965 + +Data_17965: + dr $17965, $1796f + +Data_1796f: + dr $1796f, $17979 + +Data_17979: + dr $17979, $17983 + +Data_17983: + dr $17983, $1798d + +Data_1798d: + dr $1798d, $17997 + +Data_17997: + dr $17997, $179a1 + +Data_179a1: + dr $179a1, $179ab + +Data_179ab: + dr $179ab, $179b5 + +Data_179b5: + dr $179b5, $179bf + +Data_179bf: + dr $179bf, $179c9 + +Data_179c9: + dr $179c9, $179d3 + +Data_179d3: + dr $179d3, $179dd + +Data_179dd: + dr $179dd, $179e7 + +Data_179e7: + dr $179e7, $179f1 + +Data_179f1: + dr $179f1, $179fb + +Data_179fb: + dr $179fb, $17a05 + +Data_17a05: + dr $17a05, $17a0f + +Data_17a0f: + dr $17a0f, $17a19 + +Data_17a19: + dr $17a19, $17a23 + +Data_17a23: + dr $17a23, $17a2d + +Data_17a2d: + dr $17a2d, $17a37 + +Data_17a37: + dr $17a37, $17a41 + +Data_17a41: + dr $17a41, $17a4b + +Data_17a4b: + dr $17a4b, $17a55 + +Data_17a55: + dr $17a55, $17a5f + +Data_17a5f: + dr $17a5f, $17a69 + +Data_17a69: + dr $17a69, $17a73 + +Data_17a73: + dr $17a73, $17a7d + +Data_17a7d: + dr $17a7d, $17a87 + +Data_17a87: + dr $17a87, $17a91 + +Data_17a91: + dr $17a91, $17a9b + +Data_17a9b: + dr $17a9b, $17aa5 + +Data_17aa5: + dr $17aa5, $17aaf + +Data_17aaf: + dr $17aaf, $17ab9 + +Data_17ab9: + dr $17ab9, $17ac3 + +Data_17ac3: + dr $17ac3, $17acd + +Data_17acd: + dr $17acd, $17ad7 + +Data_17ad7: + dr $17ad7, $17ae1 + +Data_17ae1: + dr $17ae1, $17aeb + +Data_17aeb: + dr $17aeb, $17af5 + +Data_17af5: + dr $17af5, $17aff + +Data_17aff: + dr $17aff, $17b09 + +Data_17b09: + dr $17b09, $17b13 + +Data_17b13: + dr $17b13, $17b1d + +Data_17b1d: + dr $17b1d, $17b27 + +Data_17b27: + dr $17b27, $17b31 + +Data_17b31: + dr $17b31, $17b3b + +Data_17b3b: + dr $17b3b, $17b45 + +Data_17b45: + dr $17b45, $17b4f + +Data_17b4f: + dr $17b4f, $17b59 + +Data_17b59: + dr $17b59, $17b63 + +Data_17b63: + dr $17b63, $17b6d + +Data_17b6d: + dr $17b6d, $17b77 + +Data_17b77: + dr $17b77, $17b81 + +Data_17b81: + dr $17b81, $17b8b + +Data_17b8b: + dr $17b8b, $17b95 + +Data_17b95: + dr $17b95, $17b9f + +Data_17b9f: + dr $17b9f, $17ba9 + +Data_17ba9: + dr $17ba9, $17bb3 + +Data_17bb3: + dr $17bb3, $17bbd + +Data_17bbd: + dr $17bbd, $17bc7 + +Data_17bc7: + dr $17bc7, $17bd1 + +Data_17bd1: + dr $17bd1, $17bdb + +Data_17bdb: + dr $17bdb, $17be5 + +Data_17be5: + dr $17be5, $17bef + +Data_17bef: + dr $17bef, $17bf9 + +Data_17bf9: + dr $17bf9, $17c03 + +Data_17c03: + dr $17c03, $17c0d + +Data_17c0d: + dr $17c0d, $17c17 + +Data_17c17: + dr $17c17, $17c21 + +Data_17c21: + dr $17c21, $17c2b + +Data_17c2b: + dr $17c2b, $17c35 + +Data_17c35: + dr $17c35, $17c3f + +Data_17c3f: + dr $17c3f, $17c49 + +Data_17c49: + dr $17c49, $17c53 + +Data_17c53: + dr $17c53, $17c5d + +Data_17c5d: + dr $17c5d, $17c67 diff --git a/gbhw.asm b/gbhw.asm new file mode 100755 index 0000000..0ad7b2a --- /dev/null +++ b/gbhw.asm @@ -0,0 +1,124 @@ +; Graciously aped from http://nocash.emubase.de/pandocs.htm . + +; MBC5 +MBC5SRamEnable EQU $0000 +MBC5RomBank EQU $2000 +MBC5RomBankHi EQU $3000 +MBC5SRamBank EQU $4000 +MBC5RomBankOn EQU $6000 +MBC5RTC EQU $a000 + +SRAM_DISABLE EQU $00 +SRAM_ENABLE EQU $0a + +NUM_SRAM_BANKS EQU 4 + + + +; interrupt flags +VBLANK EQU 0 +LCD_STAT EQU 1 +TIMER EQU 2 +SERIAL EQU 3 +JOYPAD EQU 4 + +; OAM attribute flags +OAM_PALETTE EQU %111 +OAM_TILE_BANK EQU 3 +OAM_OBP_NUM EQU 4 ; Non CGB Mode Only +OAM_X_FLIP EQU 5 +OAM_Y_FLIP EQU 6 +OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3) + + +; Hardware registers +rJOYP EQU $ff00 ; Joypad (R/W) +rSB EQU $ff01 ; Serial transfer data (R/W) +rSC EQU $ff02 ; Serial Transfer Control (R/W) +rSC_ON EQU 7 +rSC_CGB EQU 1 +rSC_CLOCK EQU 0 +rDIV EQU $ff04 ; Divider Register (R/W) +rTIMA EQU $ff05 ; Timer counter (R/W) +rTMA EQU $ff06 ; Timer Modulo (R/W) +rTAC EQU $ff07 ; Timer Control (R/W) +rTAC_ON EQU 2 +rTAC_4096_HZ EQU 0 +rTAC_262144_HZ EQU 1 +rTAC_65536_HZ EQU 2 +rTAC_16384_HZ EQU 3 +rIF EQU $ff0f ; Interrupt Flag (R/W) +rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W) +rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W) +rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W) +rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only) +rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W) +rNR20 EQU $ff15 ; Channel 2 Sweep register (R/W) +rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W) +rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W) +rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W) +rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W) +rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W) +rNR31 EQU $ff1b ; Channel 3 Sound Length +rNR32 EQU $ff1c ; Channel 3 Select output level (R/W) +rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W) +rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W) +rNR40 EQU $ff1f ; Channel 4 Sweep register (R/W) +rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W) +rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W) +rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W) +rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W) +rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W) +rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W) +rNR52 EQU $ff26 ; Sound on/off +rWave_0 EQU $ff30 +rWave_1 EQU $ff31 +rWave_2 EQU $ff32 +rWave_3 EQU $ff33 +rWave_4 EQU $ff34 +rWave_5 EQU $ff35 +rWave_6 EQU $ff36 +rWave_7 EQU $ff37 +rWave_8 EQU $ff38 +rWave_9 EQU $ff39 +rWave_a EQU $ff3a +rWave_b EQU $ff3b +rWave_c EQU $ff3c +rWave_d EQU $ff3d +rWave_e EQU $ff3e +rWave_f EQU $ff3f +rLCDC EQU $ff40 ; LCD Control (R/W) +rSTAT EQU $ff41 ; LCDC Status (R/W) +rSCY EQU $ff42 ; Scroll Y (R/W) +rSCX EQU $ff43 ; Scroll X (R/W) +rLY EQU $ff44 ; LCDC Y-Coordinate (R) +rLYC EQU $ff45 ; LY Compare (R/W) +rDMA EQU $ff46 ; DMA Transfer and Start Address (W) +rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only +rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only +rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only +rWY EQU $ff4a ; Window Y Position (R/W) +rWX EQU $ff4b ; Window X Position minus 7 (R/W) +rLCDMODE EQU $ff4c +rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch +rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank +rBLCK EQU $ff50 +rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High +rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low +rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High +rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low +rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start +rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port +rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index +rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data +rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index +rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data +rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only +rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank +rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write) +rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write) +rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only +rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write) +rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only) +rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only) +rIE EQU $ffff ; Interrupt Enable (R/W) diff --git a/gfx/stage/catch.w48.png b/gfx/stage/catch.w48.png Binary files differnew file mode 100644 index 0000000..0090bb0 --- /dev/null +++ b/gfx/stage/catch.w48.png diff --git a/gfx/stage/e_acute_color.png b/gfx/stage/e_acute_color.png Binary files differnew file mode 100644 index 0000000..1921813 --- /dev/null +++ b/gfx/stage/e_acute_color.png diff --git a/gfx/stage/e_acute_mono.png b/gfx/stage/e_acute_mono.png Binary files differnew file mode 100644 index 0000000..bf129fb --- /dev/null +++ b/gfx/stage/e_acute_mono.png diff --git a/gfx/stage/menu_symbols.png b/gfx/stage/menu_symbols.png Binary files differindex 6c03769..823d2f9 100644 --- a/gfx/stage/menu_symbols.png +++ b/gfx/stage/menu_symbols.png diff --git a/gfx/unknown/a8800.interleave.w32.png b/gfx/unknown/a8800.interleave.w32.png Binary files differnew file mode 100755 index 0000000..55c07e6 --- /dev/null +++ b/gfx/unknown/a8800.interleave.w32.png diff --git a/gfx/unknown/d61a0.png b/gfx/unknown/d61a0.png Binary files differnew file mode 100644 index 0000000..1ae5327 --- /dev/null +++ b/gfx/unknown/d61a0.png diff --git a/gfx/unknown/d61b0.png b/gfx/unknown/d61b0.png Binary files differnew file mode 100644 index 0000000..4a07793 --- /dev/null +++ b/gfx/unknown/d61b0.png diff --git a/gfx/unknown/d61d0.png b/gfx/unknown/d61d0.png Binary files differnew file mode 100644 index 0000000..5fb300d --- /dev/null +++ b/gfx/unknown/d61d0.png diff --git a/gfx/unknown/d61e0.png b/gfx/unknown/d61e0.png Binary files differnew file mode 100644 index 0000000..bebd547 --- /dev/null +++ b/gfx/unknown/d61e0.png diff --git a/gfx/unknown/d63a0.png b/gfx/unknown/d63a0.png Binary files differnew file mode 100644 index 0000000..fdb2920 --- /dev/null +++ b/gfx/unknown/d63a0.png diff --git a/gfx/unknown/d63b0.png b/gfx/unknown/d63b0.png Binary files differnew file mode 100644 index 0000000..2b18d63 --- /dev/null +++ b/gfx/unknown/d63b0.png diff --git a/gfx/unknown/d63d0.png b/gfx/unknown/d63d0.png Binary files differnew file mode 100644 index 0000000..cc2e370 --- /dev/null +++ b/gfx/unknown/d63d0.png diff --git a/gfx/unknown/d63e0.png b/gfx/unknown/d63e0.png Binary files differnew file mode 100644 index 0000000..ef72665 --- /dev/null +++ b/gfx/unknown/d63e0.png diff --git a/gfx/unknown/d6400.png b/gfx/unknown/d6400.png Binary files differnew file mode 100644 index 0000000..a7b1bbe --- /dev/null +++ b/gfx/unknown/d6400.png diff --git a/gfx/unknown/d6410.png b/gfx/unknown/d6410.png Binary files differnew file mode 100644 index 0000000..e09c4ea --- /dev/null +++ b/gfx/unknown/d6410.png diff --git a/gfx/unknown/d6430.png b/gfx/unknown/d6430.png Binary files differnew file mode 100644 index 0000000..5ff8267 --- /dev/null +++ b/gfx/unknown/d6430.png diff --git a/gfx/unknown/d6440.png b/gfx/unknown/d6440.png Binary files differnew file mode 100644 index 0000000..ee265f8 --- /dev/null +++ b/gfx/unknown/d6440.png diff --git a/gfx/unknown/d6480.png b/gfx/unknown/d6480.png Binary files differnew file mode 100644 index 0000000..17c173a --- /dev/null +++ b/gfx/unknown/d6480.png diff --git a/home.asm b/home.asm new file mode 100755 index 0000000..5476cca --- /dev/null +++ b/home.asm @@ -0,0 +1,5654 @@ +SECTION "rst 00", ROM0 [$00] + di + jp Entry + +SECTION "rst 10", ROM0 [$10] + jp DelayFrame + +SECTION "rst 18", ROM0 [$18] + jp JumpToFuncInTable + +SECTION "rst 20", ROM0 [$20] + jp Func_486 + +SECTION "VBlankInt", ROM0 [$40] + jp VBlank + +SECTION "HBlankInt", ROM0 [$48] + jp LCD + +SECTION "TimerInt", ROM0 [$50] + jp Timer + +SECTION "SerialInt", ROM0 [$58] + jp Serial + +SECTION "JoypadInt", ROM0 [$60] + jp Joypad + +SECTION "Entry", ROM0 [$100] + +Entry: ; 0x100 + nop + jp Start + +SECTION "Header", ROM0 [$104] + + ; The header is generated by rgbfix. + ; The space here is allocated to prevent code from being overwritten. + ds $150 - $104 + +SECTION "Main", ROM0 [$150] + +Start: ; 0x150 + ld [hGameBoyColorFlag], a + ld sp, hGameBoyColorFlag + di + xor a + ld [rIF], a + ld a, [rLCDC] ; LCD Control + bit 7, a ; Check if LCD Display is enabled + jr nz, .LCDDisplayEnabled + set 7, a + ld [rLCDC], a +.LCDDisplayEnabled + ld bc, $0002 + call SGBWait1750 +.waitForVBlank + ld a, [rLY] ; LY register (LCDC Y-Coordinate) + cp 145 ; > 144 means V-Blank + jr c, .waitForVBlank + ld a, $81 + ld [rLCDC], a ; Enable LCD Display + xor a + ld [rBGP], a ; Clear Palette Data + ld [rOBP0], a + ld [rOBP1], a + ld bc, $0002 + call SGBWait1750 +.waitForVBlank2 + ld a, [rLY] ; LY register (LCDC Y-Coordinate) + cp 145 ; > 144 means V-Blank + jr c, .waitForVBlank2 + xor a + ld [rLCDC], a ; Disable LCD Display + ld hl, wc000 + ld bc, $2000 + call ClearData ; Clear WRAM Bank 0 + ld hl, vTilesOB + ld bc, $1000 + call ClearData ; Clear First half of VRAM + ld a, SRAM_ENABLE + ld [MBC5SRamEnable], a ; Enable RAM + ld a, $1 + ld [MBC5RomBank], a ; Load ROM Bank $1 + ld a, $0 + ld [MBC5RomBankOn], a ; Enable ROM Banking Mode + ld a, $0 + ld [MBC5SRamBank], a ; Set bits 5 and 6 of ROM Bank Number + ld a, $1 + ld [hLoadedROMBank], a + ld a, $1 + ld [MBC5RomBankOn], a ; Enable RAM Banking Mode + ld a, $0 + ld [MBC5SRamBank], a ; Load RAM Bank $0 + ld sp, wdfff ; Initialize stack pointer to the end of WRAM Bank $1 + ld hl, hPushOAM + ld bc, $007e + call ClearData ; Clear High RAM (HRAM) + call WriteDMACodeToHRAM + call ClearOAMBuffer + xor a + ld [wd7fb], a + ld [wd7fc], a + ld [wd7fd], a + ld [hHBlankRoutine], a + ld [$ffb1], a + ld [wd8e1], a + ld [wd7fe], a + ld [hSGBInit], a + ld hl, hLCDC + 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 [wd849], a + ld [wd84a], a + ld a, Bank(PlaySong_BankF) + call SetSongBank + call Func_23b + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_222 + call InitSGB + rl a + and $1 + ld [hSGBFlag], a + call SendSGBBorder + ld a, [hSGBFlag] + and a + jr z, .asm_222 + ld a, $1 + ld [wd917], a +.asm_222 + ld a, $1 + ld [rIE], a ; Only enable LCD Status interrupt + ei + ld a, $ff + ld [wd810], a + call Func_97a + xor a + ld [wdaa3], 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 + +SoftReset: + di + ld sp, hGameBoyColorFlag + xor a + ld [rIF], a + ld bc, $2 + call SGBWait1750 + ld hl, wc000 + ld bc, $2000 + call ClearData + ld hl, $8000 + ld bc, $1000 + call ClearData + ld a, SRAM_ENABLE + ld [MBC5SRamEnable], a + ld a, $1 + ld [MBC5RomBank], a + ld a, $0 + ld [MBC5RomBankOn], a + ld a, $0 + ld [MBC5SRamBank], a + ld a, $1 + ld [hLoadedROMBank], a + ld a, $1 + ld [MBC5RomBankOn], a + ld a, $0 + ld [MBC5SRamBank], a + ld sp, wdfff + call WriteDMACodeToHRAM + call ClearOAMBuffer + xor a + ld [wd7fb], a + ld [wd7fc], a + ld [wd7fd], a + ld [hHBlankRoutine], a + ld [$ffb1], a + ld [wd8e1], a + ld [wd7fe], a + ld hl, hLCDC + 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 [wd849], a + ld [wd84a], a + ld a, $f + call SetSongBank + ld a, [hSGBFlag] + and a + jr z, .asm_02d5 + ld a, $1 + ld [wd917], a +.asm_02d5 + ld a, $1 + ld [rIE], a + ei + ld a, $ff + ld [wd810], a + call Func_97a + ld a, [hGameBoyColorFlag] + ld [$fffd], a + xor a + ld [wdaa3], a + ld a, $0 + ld hl, Func_1ffc + call BankSwitchSimple + ; fallthrough + +VBlank: ; 0x2f2 + push af + push bc + push de + push hl + call hPushOAM ; OAM DMA transfer + ld a, [hLCDC] + ld [rLCDC], a + call Func_113a + ei + ld a, [rLY] + cp $90 + jr c, .asm_328 + ld hl, hSTAT + ld c, rSTAT - $ff00 + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a +.asm_328 + ld a, [hLYC] + ld [hLastLYC], a + ld a, [hNextLYCSub] + ld [hLYCSub], a + ld a, [hNextFrameHBlankSCX] + ld [hHBlankSCX], a + ld a, [hNextFrameHBlankSCY] + ld [hHBlankSCY], a + call ReadJoypad + ld a, [wdaa3] + 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 [wdaa3], a +.asm_359 + ld hl, hNumFramesSinceLastVBlank + ld a, [hl] + inc [hl] + and a + jr nz, .asm_365 + ld hl, hNumFramesDropped + inc [hl] +.asm_365 + ld hl, hVBlankCount + inc [hl] + ld a, [wd8e1] + and a + call nz, Func_167b + ld a, [wd849] + and a + jr nz, .asm_37d + ld a, [wd85d] + and a + call nz, Func_504 +.asm_37d + ld a, [wd84a] + and a + jr z, .asm_39d + xor a + ld [wd84a], a + ld a, $1 + ld [wd849], a + ld a, $bc + ld [rTMA], a + ld a, $0 + ld [rTAC], a + ld hl, rIE + set 2, [hl] + ld a, $4 + ld [rTAC], a +.asm_39d + ld hl, MBC5SRamBank + ld a, [wd917] + and a + jr nz, .asm_3b5 + ld a, [wd803] + rrca + ld [wd803], a + and $1 + jr z, .asm_3b5 + set 3, [hl] + jr .asm_3b7 + +.asm_3b5 + res 3, [hl] +.asm_3b7 + ld a, [wd4aa] + and a + call nz, Func_e69 + pop hl + pop de + pop bc + pop af + reti + +Func_3c3: + ld a, [rLCDC] + bit 7, a + jr z, .asm_03cf + call Func_cb5 + call Func_576 +.asm_03cf + ld hl, hSTAT + res 6, [hl] + ld hl, rIE + res 1, [hl] + xor a + ld [MBC5SRamEnable], a + ld [rSB], a + ld [rSC], a + ld [rIE], a + ld [rNR52], a + ld a, [$fffd] + ld [hGameBoyColorFlag], a + jp SoftReset + +LCD: ; 0x3ec + push af + push bc + push de + push hl + ld a, [hHBlankRoutine] + sla a + ld c, a + ld b, $0 + ld hl, PointerTable_408 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Func_3ff: ; 0x3ff + ld a, $1 + ld [$ffb5], a + pop hl + pop de + pop bc + pop af + reti + +PointerTable_408: ; 0x408 + dw Func_fbc + dw Func_fbf + dw Func_fea + dw Func_105d + dw Func_109e + dw Func_10a1 + dw Func_10a4 + dw Func_10a7 + +Timer: ; 0x418 + ei + push af + push bc + push de + push hl + ld a, [wd849] + and a + jr z, .asm_42a + ld a, [wd85d] + and a + call nz, Func_504 +.asm_42a + ld a, [wd84a] + and a + jr z, .asm_440 + xor a + ld [wd84a], a + ld [wd849], a + ld a, $0 + ld [rTAC], a + ld hl, rIE + res 2, [hl] +.asm_440 + pop hl + pop de + pop bc + pop af + reti + +Serial: ; 0x445 + push af + push bc + push de + push hl + ld hl, Data_45d + push hl + ld a, [$ffb1] + sla a + ld c, a + ld b, $0 + ld hl, Data_462 + add hl, bc + ld c, [hl] + inc hl + ld b, [hl] + push bc + ret + +Data_45d: + db $e1, $d1, $c1, $f1, $d9 + +Data_462: + db $64, $16, $66, $04, $c9 + +Joypad: ; 0x467 + reti + +DelayFrame: ; 0x468 + ld a, [rLCDC] + bit 7, a + ret z + ld hl, hNumFramesSinceLastVBlank + xor a + ld [hl], a +.asm_472 + ld a, [hl] + and a + jr z, .asm_472 + ret + +JumpToFuncInTable: ; 0x477 +; Jumps to a function in the pointer table immediately following +; a "rst JumpTable" call. Function must be in the same Bank as the pointer table. +; input: a = index of function in table + sla a + pop hl + push de + ld e, a + ld d, $0 + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld l, e + ld h, d + pop de + jp [hl] + +Func_486: ; 0x486 + rlca + add l + ld l, a + jr nc, .noCarry + inc h +.noCarry + ld a, [hli] + ld h, [hl] + ld l, a + ret + +PlaySong: ; 0x490 + ld a, [hLoadedROMBank] + push af + ld a, [wCurrentSongBank] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, e + ld [wd7bf], a + ld a, [wCurrentSongBank] + ld [wd7c0], a + call PlaySong_BankF ; this function is replicated in multiple banks. + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +PlaySoundEffect: ; 0x4af +; input: de = sound effect id? I think d specifies something special and e holds the id + ld a, [wdead] + and a + ret nz + ld a, [wSFXTimer] + and a + jr z, .asm_4bd + ld a, d + and a + ret z +.asm_4bd + ld a, d + ld [wSFXTimer], a + ld d, $0 + ld a, [hLoadedROMBank] + push af + ld a, [wCurrentSongBank] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + call PlaySoundEffect_BankF ; this function is replicated in multiple banks + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +Func_4d8: ; 0x4d8 + push bc + push de + push hl + ld a, [wddcb] + ld hl, wddfd + or [hl] + ld hl, wde2f + or [hl] + and $1 + call z, PlaySoundEffect + pop hl + pop de + pop bc + ret + +PlayCry: ; 0x4ef +; Plays a Pokemon cry. +; Input: e = mon id + ld a, [hLoadedROMBank] + push af + ld a, [wCurrentSongBank] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + call PlayCry_BankF ; this function is replicated in multiple banks + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +Func_504: ; 0x504 + ld a, [hLoadedROMBank] + push af + ld a, [wCurrentSongBank] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + call Func_3c180 + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, [wd801] + inc a + ld [wd801], a + and $3 + ret nz + ld a, [wSFXTimer] + and a + ret z + dec a + ld [wSFXTimer], a + ret + +SetSongBank: ; 0x52c + di + ld [wCurrentSongBank], a + ei + ret + +CallInFollowingTable: ; 0x532 +; Calls a function in a table located immediately after a call to this function. +; Inputs: a = entry in the table + ld e, a + ld d, $0 + sla e + rl d + sla e + rl d ; multiplied a by 4 because entries in the table are 4 bytes each + pop hl + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld a, [hl] + ld h, d + ld l, e + jp BankSwitch + +BankSwitchSimple: ; 0x549 +; Switches to Bank in register a and jumps to hl. + ld [hLoadedROMBank], a + ld [MBC5RomBank], a ; Load Bank + jp [hl] + +BankSwitch: ; 0x54f + ld e, a + ld a, [hLoadedROMBank] ; currently-loaded Bank + cp e + jr z, .doJump + push af + ld a, e + call .loadNewBank + call .doJump + pop de + ld a, d +.loadNewBank + push hl + push de + ld hl, rIE + ld d, [hl] + ld [hl], $0 + ld [MBC5RomBank], a + ld [hLoadedROMBank], a + ld [hl], d + pop de + pop hl + ret + +.doJump + ld a, [hFarCallTempE] + ld e, a + ld a, [hFarCallTempA] + jp [hl] + +Func_576: ; 0x576 + ld a, [rLCDC] + bit 7, a + ret z + ld a, [hLCDC] + res 7, a + ld [hLCDC], a +.asm_581 + ld a, [rLCDC] + bit 7, a + jr nz, .asm_581 + ret + +Func_588: ; 0x588 + ld a, [hFFC4] + and a + call nz, Func_597 + ld a, [hLCDC] + set 7, a + ld [rLCDC], a + ld [hLCDC], a + ret + +Func_597: ; 0x597 + ld de, rBGPI + ld a, $80 + ld [de], a + inc de + ld b, $8 +.asm_5a0 + ld a, [wd80c] + call Func_5c2 + dec b + jr nz, .asm_5a0 + ld de, rOBPI + ld a, $80 + ld [de], a + inc de + ld b, $4 +.asm_5b2 + ld a, [wd80d] + call Func_5c2 + ld a, [wd80e] + call Func_5c2 + dec b + jr nz, .asm_5b2 + ret + +Func_5c2: ; 0x5c2 + push bc + ld b, $4 +.asm_5c5 + push af + push bc + and $3 + sla a + ld c, a + ld b, $0 + ld hl, Data_5e1 + add hl, bc + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + pop bc + pop af + srl a + srl a + dec b + jr nz, .asm_5c5 + pop bc + ret + +Data_5e1: + dr $5e1, $5e9 + +Func_5e9: + ld a, [rIE] + res 0, a + ld [rIE], a + ret + +Func_5f0: + ld a, [rIE] + set 0, a + ld [rIE], a + ret + +WriteDMACodeToHRAM: ; 0x5f7 +; Initializes registers hPushOAM - hFarCallTempA + ld c, $80 + ld b, $a ; number of bytes to load + ld hl, DMARoutine +.loop + ld a, [hli] + ld [$ff00+c], a ; add register c to $ff00, and store register a into the resulting address + inc c + dec b + jr nz, .loop + ret + +DMARoutine: +; This routine is initially loaded into hPushOAM - hFarCallTempA by WriteDMACodeToHRAM. + ld a, (wOAMBuffer >> 8) + ld [rDMA], a ; start DMA + ld a, $28 +.waitLoop ; wait for DMA to finish + dec a + jr nz, .waitLoop + ret + +WaitForLCD: ; 0x60f +; Wait for LCD controller to stop reading from both OAM and VRAM because +; CPU can't access OAM, VRAM, or palette data ($ff69, $ff6b) during this time. + ld a, [rSTAT] ; LCDC Status register + and $3 + jr nz, WaitForLCD + ld a, $a +.delay10Cycles + dec a + jr nz, .delay10Cycles + ret + +Func_61b: ; 0x61b + ld a, [rLY] ; LY register (LCDC Y-Coordinate) + cp $40 + jr c, .asm_625 + cp $80 + jr c, .asm_63d +.asm_625 + ld a, [rLY] ; LY register (LCDC Y-Coordinate) + cp $40 + jr c, .asm_625 + cp $80 + jr nc, .asm_625 +.asm_62f + ld a, [rSTAT] + and $3 + jr nz, .asm_62f ; wait for lcd controller to finish transferring data + ld a, $15 +.wait + dec a + jr nz, .wait + nop + nop + nop +.asm_63d + ret + +Func_63e: ; 0xc3e + dec bc +.asm_63f + ld [hli], a + dec bc + bit 7, b + jr z, .asm_63f + ret + +Func_646: + srl b + rr c +.asm_064a + ld a, e + ld [hli], a + ld a, d + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_064a + ret + +ClearData: ; 0x654 +; Clears bc bytes starting at hl. +; bc can be a maximum of $7fff, since it checks bit 7 of b when looping. + xor a + dec bc +.clearLoop + ld [hli], a + dec bc + bit 7, b + jr z, .clearLoop + ret + +LocalCopyData: ; 0x65d + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, LocalCopyData + ret + +FarCopyData: ; 0x666 spooky +; Copies data from any bank to either working RAM or video RAM +; Input: hl = address of data to copy +; a = bank of data to copy +; de = destination for data +; bc = number of bytes to copy + bit 7, h + jr nz, .copyFromSRAM + ld [hROMBankBuffer], a + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + scf + jr .copyData + +.copyFromSRAM + ld [MBC5SRamBank], a + and a +.copyData + push af +.copyLoop + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, .copyLoop + pop af + ret nc + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +ReadByteFromBank: ; 0x68f +; Input: a = bank +; hl = address of byte to read +; Output: a = byte at a:hl + push de + ld d, a + ld a, [hLoadedROMBank] + ld e, a + ld a, d + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld d, [hl] + ld a, e + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, d + pop de + ret + +LoadVideoData: ; 0x6a4 +; Input: +; hl = address of pointer table +; a = index of item to load in pointer table +; This needs more documentation. It loads things like graphics and palettes. + sla a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.loadItem + ld a, [hli] + ld c, a + and [hl] + cp $ff ; two consecutive $ff bytes terminate the array + ret z + ld a, [hli] + ld b, a ; bc contains pointer to data to be loaded + push hl + push bc + ld a, [hli] ; a contains bank of data to be loaded + ld e, [hl] + inc hl + ld d, [hl] ; de contains destination address for data + inc hl + ld c, [hl] + inc hl + ld b, [hl] ; bc contains last word of data struct + inc hl ; this is a wasted instruction + pop hl + call Func_6cb + pop hl + ld bc, $0005 + add hl, bc + jr .loadItem + +Func_6cb: ; 0x6cb + srl b + rr c + jp c, Func_6fd ; if lowest bit of bc is set + jp Func_6d5 ; This jumps to the next instruction... Strange. + +Func_6d5: ; 0x6d5 + ld [hROMBankBuffer], a ; save bank of data to be loaded + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] ; a contains bank of data to be loaded + ld [hLoadedROMBank], a + ld [MBC5RomBank], a ; switch bank to the bank of data to be loaded + srl b + rr c + rl a + and $1 ; checks bit 1 of the last word in the data struct + ld [rVBK], a ; set VRAM Bank +.copyByte + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, c + or b ; does bc = 0? + jr nz, .copyByte + xor a + ld [rVBK], a ; set VRAM Bank to Bank 0 + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a ; reload the previous ROM Bank + ret + +Func_6fd: ; 0x6fd + ld [hROMBankBuffer], a ; save bank of data to be loaded + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] ; a contains bank of data to be loaded + ld [hLoadedROMBank], a + ld [MBC5RomBank], a ; switch bank to the bank of data to be loaded + ld a, e + bit 6, a + jr nz, .asm_717 + ld de, rBGPI + call Func_724 + jr z, .asm_71d + xor a +.asm_717 + ld de, rOBPI + call Func_724 +.asm_71d + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +Func_724: ; 0x724 + res 6, a + ld b, a + set 7, a + ld [de], a + inc de +.copyByte + ld a, [hli] + ld [de], a + inc b + dec c + ret z + bit 6, b + jr z, .copyByte + ret + +LoadOrCopyVRAMData: ; 0x735 + push hl + ld hl, rLCDC + bit 7, [hl] + pop hl + jp z, FarCopyData + ; fall through +LoadVRAMData: ; 0x73f +; This loads some data into VRAM. It waits for the LCD H-Blank to copy the data 4 bytes at a time. +; input: hl = source of data +; a = bank of data to load +; de = destination of data +; bc = number of bytes to copy + bit 7, h + jr nz, .asm_752 + ld [hROMBankBuffer], a + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + scf + jr .asm_756 + +.asm_752 + ld [MBC5SRamBank], a + and a +.asm_756 + push af + call WaitForLCD +.loop + call Func_61b +.waitForHBlank + ld a, [rSTAT] + and $3 + jr nz, .waitForHBlank + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + dec bc + dec bc + dec bc + dec bc + nop + nop + nop + nop + ld a, b + or c + jr nz, .loop + pop af + ret nc + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +FarCopyPalettes: ; 0x790 + push hl + ld hl, rLCDC + bit 7, [hl] + pop hl + jp nz, Func_7dc + bit 7, h + jr nz, .asm_7ad + ld [hROMBankBuffer], a + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + scf + jr .asm_7b1 + +.asm_7ad + ld [MBC5SRamBank], a + and a +.asm_7b1 + push af + ld a, e + bit 6, e + ld de, rBGPI + jr z, .asm_7bf + res 6, a + ld de, rOBPI +.asm_7bf + set 7, a + ld [de], a + inc de +.asm_7c3 + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + dec bc + dec bc + dec bc + dec bc + ld a, b + or c + jr nz, .asm_7c3 + pop af + ret nc + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +Func_7dc: ; 0x7dc + bit 7, h + jr nz, .asm_7ef + ld [hROMBankBuffer], a + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + scf + jr .asm_7f3 + +.asm_7ef + ld [MBC5SRamBank], a + and a +.asm_7f3 + push af + ld a, e + bit 6, e + ld de, rBGPI + jr z, .asm_801 + res 6, a + ld de, rOBPI +.asm_801 + push hl + ld h, d + ld l, e + set 7, a + call PutTileInVRAM + inc de + pop hl + call WaitForLCD +.asm_80e + call Func_61b +.asm_811 + ld a, [rSTAT] + and $3 + jr nz, .asm_811 + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + dec bc + dec bc + dec bc + dec bc + nop + nop + nop + nop + ld a, b + or c + jr nz, .asm_80e + pop af + ret nc + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +PutTileInVRAM: ; 0x848 +; Puts a tile in VRAM. +; input: a = tile number +; hl = pointer to VRAM location where tile should be placed + push af + call WaitForLCD + call Func_61b +.asm_84f + ld a, [rSTAT] + and $3 + jr nz, .asm_84f ; wait for lcd controller to finish transferring data + pop af + ld [hl], a ; Store tile number in VRAM background map + ret + +Func_858: ; 0x858 + push af + call WaitForLCD + call Func_61b +.asm_85f + ld a, [rSTAT] + and $3 + jr nz, .asm_85f + ld a, $1 + ld [rVBK], a + pop af + ld [hl], a + xor a + ld [rVBK], a + ret + +Func_86f: ; 0x86f + ld [hROMBankBuffer], a + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, [rLCDC] + bit 7, a + jr nz, .asm_8ac + ld a, $1 + ld [rVBK], a + ld b, $4 +.asm_887 + push bc + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld bc, $001a + add hl, bc + pop bc + dec b + jr nz, .asm_887 + xor a + ld [rVBK], a + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +.asm_8ac + ld b, $4 +.asm_8ae + push bc + ld a, [de] + call Func_858 + inc hl + inc de + ld a, [de] + call Func_858 + inc hl + inc de + ld a, [de] + call Func_858 + inc hl + inc de + ld a, [de] + call Func_858 + inc hl + inc de + ld a, [de] + call Func_858 + inc hl + inc de + ld a, [de] + call Func_858 + inc de + ld bc, $001b + add hl, bc + pop bc + dec b + jr nz, .asm_8ae + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +Func_8e1: ; 0x8e1 + ld [hROMBankBuffer], a + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, [rLCDC] + bit 7, a + jr nz, .asm_902 + ld a, c + ld [hli], a +.asm_8f5 + ld a, [de] + ld [hl], a + inc de + dec b + jr nz, .asm_8f5 + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +.asm_902 + ld a, c + call PutTileInVRAM + inc hl +.asm_907 + ld a, [de] + call PutTileInVRAM + inc de + dec b + jr nz, .asm_907 + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +ClearOAMBuffer: ; 0x916 +; Clears the OAM buffer by loading $f0 into all of the entries. + ld hl, wOAMBuffer ; 0xd000 + ld b, 4 * 40 ; wOAMBuffer is 4 * 40 bytes long (40 OAM entries, 4 bytes each) + ld a, $f0 ; byte to write +.loop + ld [hli], a + dec b + jr nz, .loop + xor a + ld [wOAMBufferSize], a + ret + +Func_926: ; 0x926 + ld a, [wOAMBufferSize] + cp wOAMBufferEnd % $100 + jr nc, .asm_93a + ld l, a + ld h, wOAMBufferEnd / $100 + cpl + add (wOAMBufferEnd + 1) % $100 + ld b, a + ld a, $f0 +.asm_936 + ld [hli], a + dec b + jr nz, .asm_936 +.asm_93a + xor a + ld [wOAMBufferSize], a + ret + +AdvanceFrames: ; 0x93f + push bc + rst AdvanceFrame + pop bc + dec bc + ld a, c + or b + jr nz, AdvanceFrames + ret + +SGBWait1750: ; 0x948 + ld de, 1750 +.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, SGBWait1750 + ret + +GenRandom: ; 0x959 + push bc + push de + push hl + ld a, [wd811] + 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 [wd811], a + ld hl, wd812 + add hl, bc + ld a, [hl] + pop hl + pop de + pop bc + ret + +Func_97a: ; 0x97a + ld a, [wd810] + 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 [wd80f], a + ld [wd848], a + ld e, $1 + ld hl, Data_9c4 + ld a, $36 +.asm_996 + push af + ld c, [hl] + inc hl + ld b, $0 + push hl + ld hl, wd812 + add hl, bc + ld [hl], e + ld a, [wd80f] + sub e + jr nc, .asm_9a8 + add d +.asm_9a8 + ld e, a + ld a, [hl] + ld [wd80f], a + pop hl + pop af + dec a + jr nz, .asm_996 + call Func_9fa + call Func_9fa + call Func_9fa + ld a, $0 + call GenRandom + ld [$afff], a + ret + +Data_9c4: + db $14, $29, $07, $1c, $31, $0f, $24, $02, $17 + db $2c, $0a, $1f, $34, $12, $27, $05, $1a, $2f + db $0d, $22, $00, $15, $2a, $08, $1d, $32, $10 + db $25, $03, $18, $2d, $0b, $20, $35, $13, $28 + db $06, $1b, $30, $0e, $23, $01, $16, $2b, $09 + db $1e, $33, $11, $26, $04, $19, $2e, $0c, $21 + +Func_9fa: ; 0x9fa + ld a, [wd810] + ld d, a + ld bc, wd812 + ld hl, wd831 + 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, wd82a + ld hl, wd812 + ld e, $1f +.asm_a17 + ld a, [bc] + sub [hl] + jr nc, .asm_a1c + add d +.asm_a1c + ld [bc], a + dec e + jr nz, .asm_a17 + ret + +Func_a21: ; 0xa21 + push bc + push hl + ld c, a + ld b, $0 + ld hl, Data_a38 + add hl, bc + ld l, [hl] + call GenRandom + call Func_dd4 + inc h + srl h + ld a, h + pop hl + pop bc + ret + +Data_a38: +x = 0 +REPT 128 + db x | ((x >> 7) & 1) +x = x + 2 +ENDR + +ReadJoypad: ; 0xab8 +; Reads the current state of the joypad and saves the state into +; some registers the game uses during gameplay. It remembers the joypad state +; from the current frame, previous frame, and two frames ago. + ld a, $20 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + and $f + swap a + ld b, a + ld a, $30 + ld [rJOYP], a + ld a, $10 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + and $f + or b + cpl ; a contains currently-pressed buttons + ld [hJoypadState], a + ld a, $30 + ld [rJOYP], a + ld a, [hJoypadState] + ld hl, hPreviousJoypadState + xor [hl] ; a contains buttons that are different from previous frame + push af + ld hl, hJoypadState + and [hl] ; a contains newly-pressed buttons compared to last frame + ld [hNewlyPressedButtons], a + ld [hPressedButtons], a + pop af + ld hl, hPreviousJoypadState + and [hl] ; a contains newly-pressed buttons compared to two frames ago + ld [hPrevPreviousJoypadState], a + ld a, [hJoypadState] + and a + jr z, .asm_b15 + ld hl, hPreviousJoypadState + cp [hl] + jr nz, .asm_b15 + ; button(s) is pressed, and they're identical to the buttons pressed last frame. + ; this code is related to holding down a button for an extended period of time. + ld hl, hJoyRepeatDelay + dec [hl] + jr nz, .asm_b1a + ld a, [hJoypadState] + ld [hPressedButtons], a + ld a, [wd807] + ld [hJoyRepeatDelay], a + jr .asm_b1a + +.asm_b15 + ld a, [wd806] + ld [hJoyRepeatDelay], a +.asm_b1a + ld a, [hJoypadState] + ld [hPreviousJoypadState], a + ld hl, wd808 + ld a, [hJoypadState] + or [hl] + ld [hli], a + ld a, [hNewlyPressedButtons] + or [hl] + ld [hli], a + ld a, [hPressedButtons] + or [hl] + ld [hli], a + ret + +Func_b2e: ; 0xb2e + ld hl, wd808 + xor a + ld [hli], a + ld [hli], a + ld [hl], a + ret + +IsKeyPressed2: ; 0xb36 + ld a, [hJoypadState] + and [hl] + jr z, .asm_b3e + cp [hl] + jr z, .asm_b48 +.asm_b3e + inc hl + ld a, [hJoypadState] + and [hl] + ret z + cp [hl] + jr z, .asm_b48 + xor a + ret + +.asm_b48 + ld a, $1 + and a + ret + +IsKeyPressed: ; 0xb4c +; Checks if a key for the specified key config is pressed. +; input: hl = pointer to key config byte pair (e.g. wKeyConfigLeftFlipper) +; output: zero flag is set if a corresponding key is pressed +; zero flag is reset if no corresponding key is pressed + ld a, [hJoypadState] + and [hl] + jr z, .asm_b58 + cp [hl] + jr nz, .asm_b58 + ld a, [hNewlyPressedButtons] + and [hl] + ret nz +.asm_b58 + inc hl + ld a, [hJoypadState] + and [hl] + ret z + cp [hl] + jr nz, .asm_b64 + ld a, [hNewlyPressedButtons] + and [hl] + ret + +.asm_b64 + xor a + ret + +Func_b66: ; 0xb66 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_b73 + xor a + ld [hBGP], a + ld [hOBP0], a + ld [hOBP1], a + ret + +.asm_b73 + ld de, rBGPI + ld hl, wPaletteData + ld b, $0 + ld c, $20 +.asm_b7d + ld a, b + ld [rBGPI], a + inc b + ld a, [rBGPD] + ld [hli], a + ld a, b + ld [rBGPI], a + inc b + ld a, [rBGPD] + ld [hli], a + dec c + jr nz, .asm_b7d + ld b, $0 + ld c, $20 +.asm_b92 + ld a, b + ld [rOBPI], a + inc b + ld a, [rOBPD] + ld [hli], a + ld a, b + ld [rOBPI], a + inc b + ld a, [rOBPD] + ld [hli], a + dec c + jr nz, .asm_b92 + ld de, rBGPI + ld b, $2 +.asm_ba8 + ld a, $80 + ld [de], a + inc de + ld c, $20 +.asm_bae + ld a, $ff + ld [de], a + ld [hli], a + ld a, $7f + ld [de], a + ld [hli], a + dec c + jr nz, .asm_bae + inc de + dec b + jr nz, .asm_ba8 + ret + +Func_bbe: ; 0xbbe + ld a, [hGameBoyColorFlag] + and a + jp nz, Func_c19 + ld hl, hBGP + ld de, wd80c + 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 AdvanceFrames + ld hl, hBGP + ld de, wd80c + 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 AdvanceFrames + ld hl, hBGP + ld de, wd80c + 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 AdvanceFrames + ret + +Func_c19: ; 0xc19 + ld b, $10 +.asm_c1b + push bc + ld de, wPaletteData + ld hl, wd280 + call Func_c2d + call Func_d61 + pop bc + dec b + jr nz, .asm_c1b + ret + +Func_c2d: ; 0xc2d + ld a, b + cp $1 + jr z, .asm_c49 + ld c, $40 +.asm_c34 + push bc + ld a, [hli] + sub $42 + ld c, a + ld a, [hld] + sbc $8 + ld b, a + call Func_c60 + ld a, c + ld [hli], a + ld a, b + ld [hli], a + pop bc + dec c + jr nz, .asm_c34 + ret + +.asm_c49 + ld c, $40 +.asm_c4b + push bc + ld a, [hli] + sub $21 + ld c, a + ld a, [hld] + sbc $4 + ld b, a + call Func_c60 + ld a, c + ld [hli], a + ld a, b + ld [hli], a + pop bc + dec c + jr nz, .asm_c4b + ret + +Func_c60: ; 0xc60 + push hl + ld a, [de] + and $1f + ld l, a + ld a, c + and $1f + cp l + jr nc, .asm_c70 + ld a, c + and $e0 + or l + ld c, a +.asm_c70 + ld a, [de] + and $e0 + ld l, a + inc de + ld a, [de] + srl a + rr l + srl a + rr l + ld a, c + and $e0 + ld h, a + ld a, b + srl a + rr h + srl a + rr h + ld a, h + cp l + jr nc, .asm_ca3 + ld h, $0 + sla l + rl h + sla l + rl h + ld a, c + and $1f + or l + ld c, a + ld a, b + and $7c + or h + ld b, a +.asm_ca3 + ld a, [de] + and $7c + ld l, a + ld a, b + and $7c + cp l + jr nc, .asm_cb2 + ld a, b + and $3 + or l + ld b, a +.asm_cb2 + inc de + pop hl + ret + +Func_cb5: ; 0xcb5 + ld a, [hGameBoyColorFlag] + and a + jp nz, Func_cee + ld hl, hBGP + 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 AdvanceFrames + pop hl + pop bc + dec b + jr nz, .asm_cc0 + xor a + ld hl, hBGP + ld [hli], a + ld [hli], a + ld [hl], a + ld bc, $0002 + call AdvanceFrames + ret + +Func_cee: ; 0xcee + ld hl, wd280 + ld de, rBGPI + call Func_d9d + ld hl, wd2c0 + ld de, rOBPI + call Func_d9d + ld b, $10 +.asm_d02 + push bc + ld hl, wd280 + call Func_d11 + call Func_d61 + pop bc + dec b + jr nz, .asm_d02 + ret + +Func_d11: ; 0xd11 + ld b, $40 +.asm_d13 + ld a, [hl] + and $1f + add $2 + ld e, a + cp $1f + jr c, .asm_d1f + ld e, $1f +.asm_d1f + ld a, [hl] + and $e0 + or e + ld [hl], a + ld a, [hli] + and $e0 + ld e, [hl] + dec hl + srl e + rr a + srl e + rr a + add $10 + ld e, a + jr nc, .asm_d38 + ld e, $f8 +.asm_d38 + ld d, $0 + sla e + rl d + sla e + rl d + ld a, [hl] + and $1f + or e + ld [hli], a + ld a, [hl] + and $7c + or d + ld [hl], a + ld a, [hl] + and $7c + add $8 + ld e, a + cp $7c + jr c, .asm_d58 + ld e, $7c +.asm_d58 + ld a, [hl] + and $3 + or e + ld [hli], a + dec b + jr nz, .asm_d13 + ret + +Func_d61: ; 0d61 + ld a, [rIE] + res 0, a + ld [rIE], a + ld hl, wd280 + ld de, rBGPI + ld a, $80 + ld [de], a + inc de +.asm_d71 + ld a, [rLY] + cp $90 + jr c, .asm_d71 + ld b, $10 +.asm_d79 + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + dec b + jr nz, .asm_d79 + inc de + ld a, $80 + ld [de], a + inc de + ld b, $10 +.asm_d8b + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + dec b + jr nz, .asm_d8b + ld a, [rIE] + set 0, a + ld [rIE], a + ret + +Func_d9d: ; 0xd9d + ld b, $0 + ld c, e + inc c + call WaitForLCD +.asm_da4 + call Func_61b +.asm_da7 + ld a, [rSTAT] + and $3 + jr nz, .asm_da7 ; wait for lcd controller to finish transferring data + ld a, b + ld [de], a + ld a, [$ff00+c] + ld [hli], a + inc b + ld a, b + ld [de], a + ld a, [$ff00+c] + ld [hli], a + inc b + ld a, b + ld [de], a + ld a, [$ff00+c] + ld [hli], a + inc b + ld a, b + ld [de], a + ld a, [$ff00+c] + ld [hli], a + inc b + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + ld a, b + cp $40 + jr nz, .asm_da4 + ret + +Func_dd4: ; 0xdd4 +; Return a * l to hl +; Stupid waste of space + push bc + ld c, l + ld b, $0 + ld hl, $0000 + bit 0, a + jr z, .asm_de0 + add hl, bc +.asm_de0 + sla c + rl b + bit 1, a + jr z, .asm_de9 + add hl, bc +.asm_de9 + sla c + rl b + bit 2, a + jr z, .asm_df2 + add hl, bc +.asm_df2 + sla c + rl b + bit 3, a + jr z, .asm_dfb + add hl, bc +.asm_dfb + sla c + rl b + bit 4, a + jr z, .asm_e04 + add hl, bc +.asm_e04 + sla c + rl b + bit 5, a + jr z, .asm_e0d + add hl, bc +.asm_e0d + sla c + rl b + bit 6, a + jr z, .asm_e16 + add hl, bc +.asm_e16 + sla c + rl b + bit 7, a + jr z, .asm_e1f + add hl, bc +.asm_e1f + pop bc + ret + +ConvertHexByteToDecWord: ; 0xe21 +; Convert the base-16 value in register a into a Binary Coded Decimal (base-10) word. +; Example: If a = $97, de = $0151. + ld b, a + ld hl, PowersOfTwo + ld de, $0000 +.asm_e28 + srl b + ld a, [hli] + jr nc, .asm_e34 + add e + daa + ld e, a + ld a, [hl] + adc d + daa + ld d, a +.asm_e34 + inc hl + ld a, b + and a + jr nz, .asm_e28 + ret + +PowersOfTwo: ; 0xe3a + dw $0001 + dw $0002 + dw $0004 + dw $0008 + dw $0016 + dw $0032 + dw $0064 + dw $0128 + +Func_e4a: ; 0xe4a + ld a, [hl] + cp $64 + jr z, .asm_e53 + inc a + ld [hl], a + scf + ret + +.asm_e53 + and a + ret + +Func_e55: ; 0xe55 + cp c + jr c, .asm_e5b + sub c + jr Func_e55 + +.asm_e5b + and a + ret + +Func_e5d: ; 0xe5d + ld a, $1 + ld [wd84a], a +.asm_e62 + ld a, [wd84a] + and a + jr nz, .asm_e62 + ret + +Func_e69: ; 0xe69 + ld a, [rLY] + cp $90 + jr nc, Func_e69 +.asm_e6f + ld a, [rSTAT] + and $3 + jr nz, .asm_e6f + ld a, $a +.asm_e77 + dec a + jr nz, .asm_e77 + ld hl, wc600 + $40 + call Func_eef + push hl + ld hl, $9c00 + call Func_ef8 + pop hl + call Func_eef + push hl + ld hl, $9c04 + call Func_ef8 + pop hl + call Func_eef + push hl + ld hl, $9c08 + call Func_ef8 + pop hl + call Func_eef + push hl + ld hl, $9c0c + call Func_ef8 + pop hl + call Func_eef + push hl + ld hl, $9c10 + call Func_ef8 + pop hl + ld hl, wc600 + $c0 + call Func_eef + push hl + ld hl, $9c20 + call Func_ef8 + pop hl + call Func_eef + push hl + ld hl, $9c24 + call Func_ef8 + pop hl + call Func_eef + push hl + ld hl, $9c28 + call Func_ef8 + pop hl + call Func_eef + push hl + ld hl, $9c2c + call Func_ef8 + pop hl + call Func_eef + push hl + ld hl, $9c30 + call Func_ef8 + pop hl + ret + +Func_eef: ; 0xeef + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + ld a, [hli] + ld d, a + ld a, [hli] + ld e, a + ret + +Func_ef8: ; 0xef8 + ld a, [rSTAT] + and $3 + jr nz, Func_ef8 + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ld a, d + ld [hli], a + ld a, e + ld [hli], a + ld a, $a +.asm_f08 + dec a + jr nz, .asm_f08 + ret + +INCLUDE "home/save.asm" + +Func_fbc: ; 0xfbc + jp Func_3ff + +Func_fbf: ; 0xfbf + ld hl, hLastLYC + ld c, [hl] + ld a, [rLY] + cp c + jp c, Func_3ff + inc c + inc c + cp c + jp nc, Func_3ff + ld a, [hLCDCMask] + ld c, a + ld a, [hLCDC] + xor $10 + and c + ld c, a + ld hl, rSTAT +.asm_fdb + ld a, [hl] + and $3 + jr nz, .asm_fdb + ld a, [rLCDC] + and $80 + or c + ld [rLCDC], a + jp Func_3ff + +Func_fea: ; 0xfea + ld hl, hLastLYC + ld a, [hLYCSub] + cp [hl] + jr nz, .asm_1015 + ld a, [rLY] + cp [hl] + jp nz, Func_3ff + ld a, [hLCDC] + xor $18 + ld c, a + ld a, [hHBlankSCX] + ld b, a + ld hl, rSTAT +.asm_1003 + ld a, [hl] + and $3 + jr nz, .asm_1003 + ld a, [rLCDC] + and $80 + or c + ld [rLCDC], a + ld a, b + ld [rSCY], a + jp Func_3ff + +.asm_1015 + ld a, [rLY] + cp [hl] + jr nz, .asm_1037 + ld a, [hLastLYC] + ld hl, hLYCSub + sub [hl] + add $40 + ld c, a + ld a, [hLYCSub] + ld b, a + ld hl, rSTAT +.asm_1029 + ld a, [hl] + and $3 + jr nz, .asm_1029 + ld a, c + ld [rSCY], a + ld a, b + ld [rLYC], a + jp Func_3ff + +.asm_1037 + ld hl, hLYCSub + ld a, [rLY] + cp [hl] + jp nz, Func_3ff + ld a, [hLCDC] + xor $18 + ld c, a + ld a, [hHBlankSCX] + ld b, a + ld hl, rSTAT +.asm_104b + ld a, [hl] + and $3 + jr nz, .asm_104b + ld a, [rLCDC] + and $80 + or c + ld [rLCDC], a + ld a, b + ld [rSCY], a + jp Func_3ff + +Func_105d: ; 0x105d + ld hl, hLastLYC + ld a, [rLY] + cp [hl] + jr z, .asm_1069 + dec a + cp [hl] + jr nz, .asm_1080 +.asm_1069 + ld a, [hLYCSub] + ld c, a + ld a, [hHBlankSCX] + ld b, a + ld hl, rSTAT +.asm_1072 + ld a, [hl] + and $3 + jr nz, .asm_1072 + ld a, b + ld [rSCY], a + ld a, c + ld [rLYC], a + jp Func_3ff + +.asm_1080 + ld hl, hLYCSub + ld a, [rLY] + cp [hl] + jr z, .asm_108d + dec a + cp [hl] + jp nz, Func_3ff +.asm_108d + ld a, [hHBlankSCY] + ld b, a + ld hl, rSTAT +.asm_1093 + ld a, [hl] + and $3 + jr nz, .asm_1093 + ld a, b + ld [rSCY], a + jp Func_3ff + +Func_109e: ; 0x109e + jp Func_3ff + +Func_10a1: ; 0x10a1 + jp Func_3ff + +Func_10a4: ; 0x10a4 + jp Func_3ff + +Func_10a7: ; 0x10a7 + jp Func_3ff + +Func_10aa: ; 0x10aa + ld c, a + ld a, [hli] + ld b, a +.loop + 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, .loop + ret + +Func_10c5: ; 0x10c5 + push af + ld a, [rLCDC] + bit 7, a + jr z, .skip_wait_ly +.wait_ly + ld a, [rLY] + cp $88 + jr nc, .wait_ly +.skip_wait_ly + pop af + ld hl, wd7fb + ld l, [hl] + ld h, wcb00 / $100 + 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 [hROMBankBuffer], a + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + dec bc + ld a, [bc] + ld hl, wd7fa + add [hl] + cp $30 + jr c, .size_okay + ld a, [bc] + ld e, $0 +.size_okay + add $4 + ld [hl], a + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, wd7fb + ld l, [hl] + ld h, wca00 / $100 + inc l + ld [hl], $0 + dec l + ld [hl], e + ld hl, wd7fb + inc [hl] + ld a, [rLCDC] + bit 7, a + ret nz + ld a, [rIE] + push af + res 0, a + ld [rIE], a + call Func_113a + pop af + ld [rIE], a + ret + +Func_1129: ; 0x1129 + ld a, [wd7fb] + ld [wd7fc], a + ret + +Func_1130: ; 0x1130 + push hl + ld a, [wd7fb] + ld hl, wd7fc + cp [hl] + pop hl + ret + +Func_113a: ; 0x113a + ld hl, wd7fc + ld a, [wd7fb] + cp [hl] + ret z + ld l, [hl] + ld h, $ca + ld [hl], $ff +.loop + ld a, [hl] + and a + jr z, .done + push hl + inc h + ld e, [hl] + inc h + ld d, [hl] + inc h + ld a, [hLoadedROMBank] + push af + ld a, [hl] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + inc h + ld a, [hl] + inc h + ld h, [hl] + ld l, a + call Func_117a + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + pop hl + inc l + jr .loop + +.done + ld a, l + ld [wd7fc], a + ld hl, wd7fb + cp [hl] + ret nz + xor a + ld [wd7fa], a + ret + +Func_117a: ; 0x117a + jp [hl] + +LoadTileLists: ; 0x117b +; Loads a series of defined tile ids into VRAM +; input: de = pointer to data structure +; data structure: list of VRAM tile data with the following format +; [num tiles][destination pointer][list of tile ids] + ld h, d + ld l, e +.loadTileSequence + ld a, [hli] + and a + ret z + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a ; de = destination for tile data +.loadTileData + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .loadTileData + jr .loadTileSequence + +LoadTileListsBank1: ; 0x118d + ld a, $1 + ld [rVBK], a + call LoadTileLists + xor a + ld [rVBK], a + ret + +Func_1198: + ld h, d + ld l, e +.asm_119a + ld a, [hli] + and a + ret z + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + srl b + jr nc, .asm_11a8 + ld a, [hli] + ld c, a +.asm_11a8 + push hl + ld h, d + ld l, e + ld a, c +.asm_11ac + ld [hli], a + inc a + dec b + jr nz, .asm_11ac + ld c, a + pop hl + jr .asm_119a + +Func_11b5: ; 11b5 (0:11b5) + ld h, d + ld l, e +.asm_11b7 + ld a, [hli] + and a + ret z + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] +.asm_11c0 + ld [de], a + inc de + dec b + jr nz, .asm_11c0 + jr .asm_11b7 + +Func_11c7: + ld a, $1 + ld [rVBK], a + call Func_11b5 + xor a + ld [rVBK], a + ret + +Func_11d2: + ld h, d + ld l, e + ld a, [hLoadedROMBank] + ld [$ff94], a +.asm_11d8 + ld a, [hli] + and a + ret z + ld [$ff95], a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + push hl + ld h, b + ld l, c + ld a, [$ff95] + ld b, a +.asm_11f1 + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc e + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_11f1 + pop hl + ld a, [$ff94] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + jr .asm_11d8 + +Func_122e: + ld a, $1 + ld [rVBK], a + ld h, d + ld l, e + ld a, [hLoadedROMBank] + ld [$ff94], a +.asm_1238 + ld a, [hli] + and a + jr nz, .asm_1240 + xor a + ld [rVBK], a + ret + +.asm_1240 + ld [$ff95], a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + push hl + ld h, b + ld l, c + ld a, [$ff95] + ld b, a +.asm_1256 + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_1256 + pop hl + ld a, [$ff94] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + jr .asm_1238 + +Func_1266: + ld h, d + ld l, e +.asm_1268 + ld a, [hli] + and a + ret z + ld [$ff94], a + ld a, [hli] + bit 6, a + ld de, rBGPI + jr z, .asm_127a + res 6, a + ld de, rOBPI +.asm_127a + set 7, a + ld [de], a + inc de + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hLoadedROMBank] + push af + ld a, [hli] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + push hl + ld h, b + ld l, c + ld a, [$ff94] + ld b, a +.asm_1291 + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + dec b + jr nz, .asm_1291 + pop hl + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + jr .asm_1268 + +INCLUDE "home/sgb.asm" +INCLUDE "home/serial.asm" + +Func_1a21: ; 0x1a21 + call Func_1a59 + call Func_1a89 + jr c, .asm_1a3f +.asm_1a29 + call Func_1aa9 + call Func_1b3d + jr c, .asm_1a3f + ld a, [wd86c] + and a + jr z, .asm_1a29 + call Func_1b60 + jr c, .asm_1a3f + call Func_1b88 +.asm_1a3f + call Func_1ba7 + ret + +Func_1a43: ; 0x1a43 + xor a + ld [wd86e], a + call Func_1a59 + call Func_1a89 + jr c, .asm_1a54 + ld a, $1 + ld [wd86e], a +.asm_1a54 + call Func_1ba7 + ret + + ret ; unused instruction? + +Func_1a59: ; 0x1a59 + ld [wd86a], a + ld a, h + ld [wd869], a + ld a, l + ld [wd868], a + ld a, $80 + ld [wd866], a + ld a, $c2 + ld [wd867], a + xor a + ld [wd86b], a + ld [wd86c], a + ld [wd86d], a + call Func_16a2 + ld hl, rIE + set 3, [hl] + xor a + ld [$ffb1], a + ld a, $1 + ld [wd8e1], a + ret + +Func_1a89: ; 0x1a89 + call Func_16e2 + cp $f0 + jr z, .asm_1a9f + cp $ff + jp z, Func_1bb2 + ld a, [wd8c8] + cp $81 + jp nz, Func_1bb2 + and a + ret + +.asm_1a9f + ld a, [hNewlyPressedButtons] + bit 1, a + jp nz, Func_1bd3 + rst AdvanceFrame + jr Func_1a89 + +Func_1aa9: ; 0x1aa9 + ld a, [wd866] + ld l, a + ld a, [wd867] + ld h, a + ld de, wc000 + ld b, $2 +.asm_1ab6 + ld c, $14 +.asm_1ab8 + ld a, [hli] + call Func_1ae2 + dec c + jr nz, .asm_1ab8 + ld a, l + add $c + ld l, a + jr nc, .asm_1ac6 + inc h +.asm_1ac6 + dec b + jr nz, .asm_1ab6 + ld a, l + ld [wd866], a + ld a, h + ld [wd867], a + ld a, [wd86b] + inc a + ld [wd86b], a + cp $9 + jr nz, .asm_1ae1 + ld a, $1 + ld [wd86c], a +.asm_1ae1 + ret + +Func_1ae2: ; 0x1ae2 + push bc + push hl + xor $80 + swap a + ld c, a + and $f + ld b, a + ld a, c + and $f0 + ld c, a + ld a, [wd868] + ld l, a + ld a, [wd869] + ld h, a + add hl, bc + ld a, [hLoadedROMBank] + push af + ld a, [wd86a] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a +REPT 15 + ld a, [hli] + ld [de], a + inc e +ENDR + ld a, [hli] + ld [de], a + inc de + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + pop hl + pop bc + ret + +Func_1b3d: ; 0x1b3d + ld a, [wd86c] + ld [wd8dd], a + ld hl, wc000 + ld a, $1 + call Func_1779 + cp $ff + jp z, Func_1bb2 + cp $f0 + jr z, .asm_1b56 + and a + ret + +.asm_1b56 + ld a, [hNewlyPressedButtons] + bit BIT_B_BUTTON, a + jp nz, Func_1bd3 + rst AdvanceFrame + jr Func_1b3d + +Func_1b60: ; 0x1b60 + ld a, $1 + ld [wd8a8], a + ld a, $13 + ld [wd8a9], a + call Func_1740 + cp $ff + jp z, Func_1bb2 + cp $f0 + jr z, .asm_1b7e + ld bc, $001e + call AdvanceFrames + and a + ret + +.asm_1b7e + ld a, [hNewlyPressedButtons] + bit BIT_B_BUTTON, a + jp nz, Func_1bd3 + rst AdvanceFrame + jr Func_1b60 + +Func_1b88: ; 0x1b88 + ld a, [wd8c7] + ld b, a + cp $ff + jr z, Func_1bb2 + and $f0 + jr nz, Func_1bb2 + bit 1, b + jr nz, .asm_1b9d + call Func_16a2 + and a + ret + +.asm_1b9d + ld a, [hNewlyPressedButtons] + bit BIT_B_BUTTON, a + jp nz, Func_1bd3 + rst AdvanceFrame + jr Func_1b88 + +Func_1ba7: ; 0x1ba7 + ld hl, rIE + res 3, [hl] + xor a + ld [wd8e1], a + and a + ret + +Func_1bb2: ; 0x1bb2 + ld hl, Data_1bcf + ld a, [wd8c7] + cp $ff + jr z, .asm_1bc6 + ld b, $3 +.asm_1bbe + inc hl + sla a + jr c, .asm_1bc6 + dec b + jr nz, .asm_1bbe +.asm_1bc6 + ld a, [hl] + ld [wd86d], a + call Func_16a2 + scf + ret + +Data_1bcf: + dr $1bcf, $1bd3 + +Func_1bd3: ; 0x1bd3 + lb de, $00, $01 + call PlaySoundEffect + ld a, $5 + ld [wd86d], a + call Func_16a2 + scf + ret + +Func_1be3: ; 0x1be3 + ld a, $c0 + ld [rRP], a + ld a, $ff + ld [wd8ea], a + xor a + ld b, a +.asm_1bee + inc a + jr nz, .asm_1bee + inc b + jr nz, .asm_1bee + ld hl, wd8eb + ld a, [rKEY1] + bit 7, a + jr z, .asm_1c0c + ld [hl], $e + inc hl + ld [hl], $12 + inc hl + ld [hl], $8 + inc hl + ld [hl], $c + inc hl + ld [hl], $c + ret + +.asm_1c0c + ld [hl], $6 + inc hl + ld [hl], $8 + inc hl + ld [hl], $2 + inc hl + ld [hl], $4 + inc hl + ld [hl], $5 + ret + +Func_1c1b: ; 0x1c1b + inc d + ret z + ld a, [$ff00+c] + bit 1, a + jr z, Func_1c1b + ret + +Func_1c23: ; 0x1c23 + inc d + ret z + ld a, [$ff00+c] + bit 1, a + jr nz, Func_1c23 + ret + +Func_1c2b: ; 0x1c2b + ld a, $c1 + ld [$ff00+c], a +.asm_1c2e + dec d + jr nz, .asm_1c2e + ret + +Func_1c32: ; 0x1c32 + ld a, $c0 + ld [$ff00+c], a +.asm_1c35 + dec d + jr nz, .asm_1c35 + ret + +Func_1c39: + xor a + ld [hNumFramesSinceLastVBlank], a + ld a, $1 + ld [wd8e9], a +.asm_1c41 + ld b, $2 + ld c, rRP % $100 + ld a, [$ff00+c] + and b + jr z, Func_1c50 + ld a, [hNumFramesSinceLastVBlank] + and a + jr nz, Func_1ca1 + jr .asm_1c41 + +Func_1c50: ; 0x1c50 + ld a, $1 + ld [wd8e9], a + ld b, $1a + ld c, rRP % $100 + ld d, $0 + ld e, d + call Func_1c23 + ld a, d + and a + jp z, Func_1dc2 + ld d, e + call Func_1c1b + ld a, d + and a + jp z, Func_1dc2 + call Func_1c23 + ld a, d + and a + jp z, Func_1dc2 + call Func_1c1b + ld a, d + and a + jp z, Func_1dc2 + cp $8 + jp c, Func_1dc2 + cp $2a + jp nc, Func_1dc2 + ld a, $0 + ld [wd8ea], a + ld d, b + call Func_1c32 + ld d, b + call Func_1c2b + ld d, b + call Func_1c32 + ld d, b + call Func_1c2b + ld d, b + call Func_1c32 + ret + +Func_1ca1: ; 0x1ca1 + ld a, $2 + ld [wd8e9], a + ld b, $1a + ld c, rRP % $100 + ld d, b + ld e, $0 + call Func_1c32 + ld d, b + call Func_1c2b + ld d, b + call Func_1c32 + ld d, b + call Func_1c2b + ld d, b + call Func_1c32 + ld d, e + call Func_1c23 + ld a, d + and a + jp z, Func_1dc2 + ld d, e + call Func_1c1b + ld a, d + and a + jp z, Func_1dc2 + ld d, e + call Func_1c23 + ld a, d + and a + jp z, Func_1dc2 + ld d, e + call Func_1c1b + ld a, d + and a + jp z, Func_1dc2 + ld d, $1a + call Func_1c32 + ld a, $0 + ld [wd8ea], a + ret + +Func_1cef: + xor a + ld [rRP], a + ld a, $ff + ld [wd8ea], a + ret + +Func_1cf8: ; 0x1cf8 + xor a + ld [wd8e4], a + ld [wd8e5], a + push hl + push bc + ld hl, wd8e6 + ld a, $5a + ld [hli], a + ld [hl], b + dec hl + ld b, $2 + ld d, $1e + call Func_1c32 + call Func_1d44 + pop bc + pop hl + call Func_1ed3 + call Func_1d44 + ld a, [wd8e4] + ld [wd8e6], a + ld a, [wd8e5] + ld [wd8e7], a + ld hl, wd8e6 + ld b, $2 + call Func_1d44 + ld hl, wd8ea + ld b, $1 + call Func_1e3b + ld a, [wd8e6] + ld [wd8e4], a + ld a, [wd8e7] + ld [wd8e5], a + ret + +Func_1d44: ; 0x1d44 + ld a, [wd8ea] + cp $0 + ret nz + ld c, rRP % $100 + ld d, $16 + call Func_1c2b + ld d, $16 + call Func_1c32 + ld a, b + cpl + ld b, a +.asm_1d59 + inc b + jr z, .asm_1dae + ld a, $8 + ld [wd8e3], a + ld a, [hli] + ld e, a + ld a, [wd8e4] + add e + ld [wd8e4], a + jr nc, .asm_1d75 + ld a, [wd8e5] + inc a + ld [wd8e5], a + jr .asm_1d78 + +.asm_1d75 + call Func_1ed3 +.asm_1d78 + ld a, e + rlca + ld e, a + jr nc, .asm_1d8d + ld a, [wd8eb] + ld d, a + call Func_1c2b + ld a, [wd8ec] + ld d, a + call Func_1c32 + jr .asm_1d9b + +.asm_1d8d + ld a, [wd8ed] + ld d, a + call Func_1c2b + ld a, [wd8ee] + ld d, a + call Func_1c32 +.asm_1d9b + ld a, [wd8e3] + dec a + ld [wd8e3], a + jr z, .asm_1dac + call Func_1ed4 + call Func_1ed4 + jr .asm_1d78 + +.asm_1dac + jr .asm_1d59 + +.asm_1dae + call Func_1ed3 + call Func_1ed3 + call Func_1ed4 + ld d, $16 + call Func_1c2b + ld d, $16 + call Func_1c32 + ret + +Func_1dc2: ; 0x1dc2 + ld a, $2 + ld [wd8ea], a + ret + +Func_1dc8: + ld a, [wd8ea] + or $1 + ld [wd8ea], a + ret + +Func_1dd1: ; 0x1dd1 + ld a, [wd8ea] + or $4 + ld [wd8ea], a + ret + +Func_1dda: ; 0x1dda + xor a + ld [wd8e4], a + ld [wd8e5], a + push hl + ld hl, wd8e6 + ld b, $2 + call Func_1e3b + ld a, [wd8e7] + ld [wd8e8], a + ld b, a + pop hl + ld a, [wd8e6] + cp $5a + jp nz, Func_1dd1 + call Func_1e3b + ld a, [wd8e4] + ld d, a + ld a, [wd8e5] + ld e, a + push de + ld hl, wd8e6 + ld b, $2 + call Func_1e3b + pop de + ld hl, wd8e6 + ld a, [hli] + xor d + ld b, a + ld a, [hl] + xor e + or b + jr z, .asm_1e22 + ld a, [wd8ea] + or $1 + ld [wd8ea], a +.asm_1e22 + push de + ld hl, wd8ea + ld b, $1 + call Func_1d44 + pop de + ld a, d + ld [wd8e4], a + ld a, e + ld [wd8e5], a + ld a, [wd8e8] + cp $82 + ret z + ret + +Func_1e3b: ; 0x1e3b + ld a, [wd8ea] + cp $0 + ret nz + ld c, rRP % $100 + ld d, $0 + call Func_1c23 + ld a, d + or a + jp z, Func_1dc2 + ld d, $0 + call Func_1c1b + ld a, d + or a + jp z, Func_1dc2 + ld d, $0 + call Func_1c23 + ld a, d + or a + jp z, Func_1dc2 + call Func_1ed4 + call Func_1ed4 + push af + pop af + ld a, b + cpl + ld b, a +.asm_1e6c + inc b + jr z, .asm_1eb9 + ld a, $8 + ld [wd8e3], a +.asm_1e74 + ld d, $0 + call Func_1c1b + call Func_1c23 + ld a, [wd8ef] + cp d + jr nc, .asm_1e88 + ld a, e + set 0, a + ld e, a + jr .asm_1e8c + +.asm_1e88 + ld a, e + res 0, a + ld e, a +.asm_1e8c + ld a, [wd8e3] + dec a + ld [wd8e3], a + jr z, .asm_1ea0 + ld a, e + rlca + ld e, a + call Func_1ed4 + call Func_1ed4 + jr .asm_1e74 + +.asm_1ea0 + ld a, e + ld [hli], a + ld a, [wd8e4] + add e + ld [wd8e4], a + jr nc, .asm_1eb4 + ld a, [wd8e5] + inc a + ld [wd8e5], a + jr .asm_1eb7 + +.asm_1eb4 + call Func_1ed3 +.asm_1eb7 + jr .asm_1e6c + +.asm_1eb9 + ld d, $0 + call Func_1c1b + ld a, d + and a + jp z, Func_1dc2 + ld d, $11 + call Func_1c32 + ret + +Func_1ec9: + ld b, $00 + jp Func_1cf8 + +Func_1ece: + ld b, $00 + jp Func_1dda + +Func_1ed3: ; 0x1ed3 + ret + +Func_1ed4: ; 0x1ed4 + jr z, .asm_1ed6 +.asm_1ed6 + jr nz, .asm_1ed8 +.asm_1ed8 + ret + +Func_1ed9: + push bc + push de + push hl + ld e, a + ld d, $0 + sla e + rl d + ld a, [hLoadedROMBank] + push af + ld a, BANK(Data_8f06) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, Data_8f06 + jr asm_1f3b + +Func_1ef2: + push bc + push de + push hl + ld e, a + ld d, $0 + sla e + rl d + ld a, [hLoadedROMBank] + push af + ld a, BANK(Data_8f06) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, Data_8f06 + jr asm_1f3b + +LoadOAMData2: ; 0x1f0b +; This function loads OAM data, but it adds b and c to the x and y values +; input: a = OAM data id (see OAMDataPointers2) + push bc + push de + push hl + ld e, a + ld d, $0 + sla e + rl d + ld a, [hLoadedROMBank] + push af + ld a, Bank(OAMDataPointers2) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, OAMDataPointers2 + jr asm_1f3b + +LoadOAMData: ; 0x1f24 +; This function loads OAM data, but it adds b and c to the x and y values +; input: a = OAM data id (see OAMDataPointers) + push bc + push de + push hl + ld e, a + ld d, $0 + sla e + rl d ; multiply de by 2 + ld a, [hLoadedROMBank] + push af + ld a, Bank(OAMDataPointers) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, OAMDataPointers +asm_1f3b: ; 0x1f3b + add hl, de ; hl points to oam pointer in OAMDataPointers + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a ; de points to OAM data + ld a, [wOAMBufferSize] + 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 [wOAMBufferSize], a + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + pop hl + pop de + pop bc + ret + +Func_1f68: + push bc + push de + push hl + ld e, a + ld d, $0 + sla e + rl d + ld a, [hLoadedROMBank] + push af + ld a, BANK(Data_8f06) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, Data_8f06 ; all 0s + jr asm_1fca + +Func_1f81: + push bc + push de + push hl + ld e, a + ld d, $0 + sla e + rl d + ld a, [hLoadedROMBank] + push af + ld a, BANK(Data_8f06) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, Data_8f06 ; all 0s + jr asm_1fca + +Func_1f9a: + push bc + push de + push hl + ld e, a + ld d, $0 + sla e + rl d + ld a, [hLoadedROMBank] + push af + ld a, BANK(OAMDataPointers2) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, OAMDataPointers2 + jr asm_1fca + +Func_1fb3: + push bc + push de + push hl + ld e, a + ld d, $0 + sla e + rl d + ld a, [hLoadedROMBank] + push af + ld a, BANK(OAMDataPointers) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, OAMDataPointers +asm_1fca + add hl, de + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld a, [wOAMBufferSize] + ld l, a + ld h, $d0 +.asm_1fd5 + ld a, [de] + cp $80 + jr z, .asm_1fee + add c + ld [hli], a + inc de + ld a, [de] + add b + ld [hli], a + inc de + ld a, [de] + push hl + ld hl, sp+$7 + add [hl] + pop hl + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + jr .asm_1fd5 + +.asm_1fee + ld a, l + ld [wOAMBufferSize], a + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + pop hl + pop de + pop bc + ret + +Func_1ffc: ; 0x1ffc + ld a, $b + ld [wd806], a + ld a, $4 + ld [wd807], a + callba Func_3c000 + ld a, $1 + ld [wd85d], a + ld a, $37 + ld [wd470], a + ld [wd471], a + ld [wd472], a + ld a, SCREEN_ERASE_ALL_DATA + ld [wCurrentScreen], a +.master_loop + call Func_2034 + call Func_2043 + call Func_926 + call Func_b2e + rst AdvanceFrame + jr .master_loop + +Func_2034: ; 0x2034 + ld a, [wd804] + and a + jr z, .asm_203f + dec a + ld [wd804], a + ret + +.asm_203f + ld [wd803], a + ret + +Func_2043: ; 0x2043 + ld a, [wCurrentScreen] + call CallInFollowingTable +CallTable_2049: ; 0x2049 +; First two bytes is function pointer. +; Third byte is bank of function. +; Fourth byte seems to be unused. + padded_dab Func_8000 + + ; SCREEN_ERASE_ALL_DATA + padded_dab HandleEraseAllDataMenu + + ; SCREEN_COPYRIGHT + padded_dab HandleCopyrightScreen + + ; SCREEN_TITLESCREEN + padded_dab HandleTitlescreen + + ; SCREEN_PINBALL_GAME + padded_dab HandlePinballGame + + ; SCREEN_POKEDEX + padded_dab HandlePokedexScreen + + ; SCREEN_OPTIONS + padded_dab HandleOptionsScreen + + ; SCREEN_HIGH_SCORES + padded_dab HandleHighScoresScreen + + ; SCREEN_FIELD_SELECT + padded_dab HandleFieldSelectScreen + ; end of call table + +Func_206d: ; 0x206d + ld a, [hLoadedROMBank] + push af + ld a, Bank(Func_8d17) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + call Func_8d17 + jr c, .asm_2084 + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + and a + ret + +.asm_2084 + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + scf + ret + +Func_208c: ; 0x208c + ld a, [hLoadedROMBank] + push af + ld a, Bank(Func_8ee0) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + call Func_8ee0 + jr c, .asm_20a3 + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + and a + ret + +.asm_20a3 + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + scf + ret + +Func_20ab: ; 0x20ab + push af + xor a + ld [$ffb6], a + jr .asm_20c6 + + push af + ld a, b + xor c + ld [$ffb6], a + bit 7, b + jr z, .asm_20be + ld a, b + cpl + inc a + ld b, a +.asm_20be + bit 7, c + jr z, .asm_20c6 + ld a, c + cpl + inc a + ld c, a +.asm_20c6 + push de + push hl + ld a, b + cp c + jr nc, .asm_20ce + ld b, c + ld c, a +.asm_20ce + ld h, $3e + ld l, c + ld e, [hl] + inc h + ld d, [hl] + ld l, b + ld a, [hl] + dec h + ld l, [hl] + ld h, a + add hl, de + push af + ld d, $3e + ld a, b + sub c + ld e, a + ld a, [de] + ld c, a + inc d + ld a, [de] + ld b, a + ld a, l + sub c + ld l, a + ld a, h + sbc b + ld h, a + jr nc, .asm_20f1 + pop af + ccf + jr .asm_20f2 + +.asm_20f1 + pop af +.asm_20f2 + rr h + rr l + ld b, h + ld c, l + ld a, [$ffb6] + rlca + jr nc, .asm_2107 + ld a, c + cpl + add $1 + ld c, a + ld a, b + cpl + adc $0 + ld b, a +.asm_2107 + pop hl + pop de + pop af + ret + +Func_210b: ; 0x210b + push af + push hl + ld a, b + xor d + ld [$ffb7], a + bit 7, b + jr z, .asm_211f + ld a, c + cpl + add $1 + ld c, a + ld a, b + cpl + adc $0 + ld b, a +.asm_211f + push bc + ld b, e + call Func_20ab + ld l, c + ld h, b + ld bc, $0080 + add hl, bc + ld l, h + ld h, $0 + pop bc + ld c, e + call Func_20ab + add hl, bc + ld a, [$ffb7] + rlca + jr nc, .asm_2142 + ld a, l + cpl + add $1 + ld l, a + ld a, h + cpl + adc $0 + ld h, a +.asm_2142 + ld c, l + ld b, h + pop hl + pop af + ret + +Func_2147: ; 0x2147 + add $40 + ; fall through +Func_2149: ; 0x2149 + push hl + ld [$ffb6], a + and $7f + cp $40 + jr c, .asm_2155 + cpl + add $81 +.asm_2155 + ld hl, Data_26be + ld e, a + ld d, $0 + add hl, de + ld e, [hl] + pop hl + ld d, $0 + ld a, [$ffb6] + sla a + ret nc + ld d, $ff + ret + +ApplyGravityToBall: ; 0x2168 +; Adds a constant to the pinball's y velocity. + ld a, [wd549] + and a + ret z + ld de, $000b ; gravity added to y velocity every frame + ld hl, wBallYVelocity + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, l + ld [wBallYVelocity], a + ld a, h + ld [wBallYVelocity + 1], a + ret + +LimitBallVelocity: ; 0x2180 +; Ensures that the ball's x and y velocity are kept under a threshold. +; The ball can travel at a higher max speed when moving diagonally, since it +; limits the x and y components independently. + ld hl, wBallXVelocity + 1 + call _LimitBallVelocity + ld hl, wBallYVelocity + 1 + ; fall through +_LimitBallVelocity: ; 0x2189 + ld a, [hl] + bit 7, a ; is it negative velocity? (left or up) + jr nz, .negativeVelocity + cp $8 + ret c + ld a, $7 ; max positive velocity + ld [hl], a + ret + +.negativeVelocity + cp $f9 + ret nc + ld a, $f9 ; max negative velocity + ld [hl], a + ret + +MoveBallPosition: ; 0x219c +; Updates the ball's position according to its velocity + ld a, [wBallXPos] + ld [wPreviousBallXPos], a + ld a, [wBallXPos + 1] + ld [wPreviousBallXPos + 1], a + ld a, [wBallYPos] + ld [wPreviousBallYPos], a + ld a, [wBallYPos + 1] + ld [wPreviousBallYPos + 1], a + ld de, wBallXVelocity + 1 + ld hl, wBallXPos + call AddVelocityToPosition + ld de, wBallYVelocity + 1 + ld hl, wBallYPos + ; fall through + +AddVelocityToPosition: ; 0x21c3 + ld a, [de] + bit 7, a + jr nz, .asm_21d1 + cp 1+4 + jr c, .asm_21da + ld bc, $04ff + jr .asm_21de + +.asm_21d1 + cp -4 + jr nc, .asm_21da + ld bc, -$04ff + jr .asm_21de + +.asm_21da + ld b, a + dec de + ld a, [de] + ld c, a +.asm_21de + ld a, [hl] + add c + ld [hli], a + ld a, [hl] + adc b + ld [hl], a + ret + +Func_21e5: ; 0x21e5 + cpl + inc a + ; fall through +Func_21e7: ; 0x21e7 + push hl + push bc + push de + ld [$ff8c], a + call Func_2147 + ld a, e + ld [$ff8d], a + ld a, d + ld [$ff8e], a + call Func_210b + ld l, c + ld h, b + pop bc + push bc + ld a, [$ff8c] + call Func_2149 + ld a, e + ld [$ff8f], a + ld a, d + ld [$ff90], a + call Func_210b + add hl, bc + pop de + pop bc + push hl + push de + ld a, [$ff8f] + ld e, a + ld a, [$ff90] + cpl + ld d, a + call Func_210b + ld l, c + ld h, b + pop bc + ld a, [$ff8d] + ld e, a + ld a, [$ff8e] + ld d, a + call Func_210b + add hl, bc + ld d, h + ld e, l + pop bc + pop hl + ret + +Func_222b: ; 0x222b + push hl + ld hl, wd7f8 + ld [hl], $ff + bit 7, d + jr nz, .asm_2297 + ld [hl], $0 + ld a, d + cp $3 + jr c, .asm_2254 + ld a, $ff + ld [wd803], a + ld a, $1 + ld [wd804], a + ld a, [wFlipperCollision] + and a + jr nz, .asm_2254 + push de + ld de, $0008 + call Func_4d8 + pop de +.asm_2254 + srl d + rr e + srl d + rr e + ld h, d + ld l, e + srl d + rr e + ld a, [wd7eb] + and a + jr z, .asm_226c +.asm_2268 + add hl, de + dec a + jr nz, .asm_2268 +.asm_226c + ld d, h + ld e, l + ld a, e + cpl + add $1 + ld e, a + ld a, d + cpl + adc $0 + ld d, a + ld a, [wBallSpin] + sra a + ld l, a + ld h, $0 + bit 7, l + jr z, .asm_2286 + ld h, $ff +.asm_2286 + add hl, bc + ld b, h + ld c, l + push bc + sla c + rl b + sla c + rl b + ld a, b + ld [wBallSpin], a + pop bc +.asm_2297 + pop hl + ret + +LoadBallVelocity: ; 0x2299 +; Loads velocity of the ball into bc and de +; bc = x velocity +; de = y velocity + push hl + ld hl, wBallXVelocity + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + pop hl + ret + +SetBallVelocity: ; 0x22a7 +; Sets the x and y velocities of the ball. +; bc = x velocity +; de = y velocity + push hl + ld hl, wBallXVelocity + ld a, c + ld [hli], a + ld a, b + ld [hli], a + ld a, e + ld [hli], a + ld a, d + ld [hl], a + pop hl + ret + +Func_22b5: ; 0x22b5 + ld a, [wBallXPos + 1] + sub $4 + push af + and $7 + ld [wSubTileBallXPos], a ; sub-tile position + pop af + and $f8 + ld c, a + ld a, [wBallYPos + 1] + sub $4 + push af + and $7 + ld [wSubTileBallYPos], a + pop af + and $f8 + ld b, a + ld l, b ; bc contains tile coords of ball position + ld h, $0 + sla l + rl h + sla l + rl h ; b was multiplied by 4 (y tile position) + srl c + srl c + srl c ; c was divided by 8 (x tile position) + ld b, $0 + add hl, bc + ld a, l + ld [wd7f3], a + ld a, h + ld [wd7f4], a + ld a, [wStageCollisionMapPointer] + ld c, a + ld a, [wStageCollisionMapPointer + 1] + ld b, a + add hl, bc ; hl = address of upper-left collision byte + ld a, [hLoadedROMBank] + push af + ld a, [wStageCollisionMapBank] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld bc, $001f ; number of tiles wide - 1 + ld a, [hli] + ld [wUpperLeftCollisionAttribute], a + ld a, [hl] + ld [wUpperRightCollisionAttribute], a + add hl, bc + ld a, [hli] + ld [wLowerLeftCollisionAttribute], a + ld a, [hl] + ld [wLowerRightCollisionAttribute], a + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, [hLoadedROMBank] + push af + ld a, [wStageCollisionMasksBank] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, [wSubTileBallXPos] + sla a + ld c, a + ld b, $0 + ld hl, SubTileXPos_CollisionDataPointers + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld a, [wSubTileBallYPos] + ld c, a + ld b, $10 ; number of times to loop over .asm_233d +.asm_233d + push bc + ld a, [de] + inc de + add c ; add the sub tile y pos + push af + srl a + srl a + srl a + ld c, a + ld b, $0 + ld hl, wUpperLeftCollisionAttribute + add hl, bc + ld a, [hl] + call Func_248a + jr nc, .asm_235e + pop af + and $7 + ld c, a + ld b, $0 + add hl, bc + jr .asm_237b + +.asm_235e + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + ld hl, wStageCollisionMasksPointer + ld a, [hli] + ld h, [hl] + ld l, a + add hl, bc + pop af + and $7 + ld c, a + ld b, $0 + add hl, bc +.asm_237b + ld a, [de] + inc de + and [hl] + push af + ld a, [de] + inc de + ld c, a + ld hl, wd7c9 + add hl, bc + pop af + ld [hl], a + pop bc + dec b + jr nz, .asm_233d + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld hl, wd7c9 + ld de, wd7d9 + ld b, $4 +.asm_239a + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_239a + ld hl, wd7c9 + ld de, $0000 + ld b, $0 + ld a, [hl] + and a + jr z, .asm_23c1 +.asm_23b5 + ld a, [hli] + inc b + and a + jr z, .asm_23c1 + ld a, b + cp $11 + jr nc, .asm_23ee + jr .asm_23b5 + +.asm_23c1 + ld a, [hli] + inc b + and a + jr nz, .asm_23cd + ld a, b + cp $11 + jr nc, .asm_23ee + jr .asm_23c1 + +.asm_23cd + push de + ld d, $1 + ld c, b + dec c +.asm_23d2 + ld a, [hli] + inc b + inc d + and a + jr nz, .asm_23d2 + dec d + ld a, b + dec a + dec a + and $f + swap c + or c + ld c, a + ld a, d + cp e + pop de + jr c, .asm_23e9 + ld e, a + ld d, c +.asm_23e9 + ld a, b + cp $10 + jr c, .asm_23c1 +.asm_23ee + ld a, e + ld [wd7e9], a + and a + ret z + ld a, [hLoadedROMBank] + push af + ld a, Bank(Data_8817) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + push de + ld e, d + ld d, $0 + ld hl, Data_8817 + add hl, de + ld a, [hl] + ld [wd7ea], a + sla e + rl d + ld hl, Data_8917 + add hl, de + ld a, [wBallYPos] + add [hl] + ld [wBallYPos], a + inc hl + ld a, [wBallYPos + 1] + adc [hl] + ld [wBallYPos + 1], a + ld hl, Data_8b17 + add hl, de + ld a, [wBallXPos] + add [hl] + ld [wBallXPos], a + inc hl + ld a, [wBallXPos + 1] + adc [hl] + ld [wBallXPos + 1], a + pop de + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, d + swap a + and $f + ld e, a + ld a, d + and $f + sub e + jr nc, .asm_2449 + add $10 +.asm_2449 + add e + add e + inc a + and $1e + ld c, a + ld b, $0 + ld hl, Data_250e + add hl, bc + ld a, [wSubTileBallXPos] + add $4 + add [hl] + bit 3, a + ld c, b + jr z, .asm_2462 + ld c, $2 +.asm_2462 + ld a, [wSubTileBallYPos] + add $4 + inc hl + add [hl] + bit 3, a + jr z, .asm_246e + inc c +.asm_246e + ld hl, wUpperLeftCollisionAttribute + add hl, bc + ld a, [hl] + ld [wd7f5], a + ld hl, Data_250a + add hl, bc + ld a, [wd7f3] + add [hl] + ld [wd7f6], a + ld a, [wd7f4] + adc $0 + ld [wd7f7], a + ret + +Func_248a: ; 0x248a + push af + ld a, [wCurrentStage] + bit 0, a + jr nz, .asm_2495 + pop af + and a + ret + +.asm_2495 + pop af + cp $d0 + ccf + ret nc + cp $e0 + jr nc, .asm_24ab + sub $d0 + sla a + sla a + sla a + ld l, a + ld h, $c4 + scf + ret + +.asm_24ab + push de + sub $e0 + ld b, a + ld a, [wCurrentStage] + cp $6 ; gengar stage buggy? + jr nc, .asm_24e0 + bit 4, b + ld hl, Data_3800 + ld a, [wd7af] + jr z, .asm_24c8 + res 4, b + ld hl, Data_3980 + ld a, [wd7b3] +.asm_24c8 + ld de, $0080 + cp $7 + jr c, .asm_24d5 + add hl, de + cp $e + jr c, .asm_24d5 + add hl, de +.asm_24d5 + ld e, b + sla e + sla e + sla e + add hl, de + pop de + scf + ret + +.asm_24e0 + bit 4, b + ld hl, Data_3b00 + ld a, [wd7af] + jr z, .asm_24f2 + res 4, b + ld hl, Data_3c80 + ld a, [wd7b3] +.asm_24f2 + ld de, $0080 + cp $7 + jr c, .asm_24ff + add hl, de + cp $e + jr c, .asm_24ff + add hl, de +.asm_24ff + ld e, b + sla e + sla e + sla e + add hl, de + pop de + scf + ret + +Data_250a: + dr $250a, $250e + +Data_250e: + dr $250e, $252e + +SubTileXPos_CollisionDataPointers: ; 0x252e + dw SubTileXPos_CollisionData0 + dw SubTileXPos_CollisionData1 + dw SubTileXPos_CollisionData2 + dw SubTileXPos_CollisionData3 + dw SubTileXPos_CollisionData4 + dw SubTileXPos_CollisionData5 + dw SubTileXPos_CollisionData6 + dw SubTileXPos_CollisionData7 + +SubTileXPos_CollisionData0: ; 0x253e + db $00, $10, $0B + db $00, $08, $0C + db $00, $04, $0D + db $01, $40, $0A + db $01, $01, $0E + db $03, $80, $09 + db $13, $80, $0F + db $04, $80, $08 + db $14, $80, $00 + db $05, $80, $07 + db $15, $80, $01 + db $07, $40, $06 + db $07, $01, $02 + db $08, $10, $05 + db $08, $08, $04 + db $08, $04, $03 + +SubTileXPos_CollisionData1: ; 0x256e + db $00, $08, $0B + db $00, $04, $0C + db $00, $02, $0D + db $01, $20, $0A + db $11, $80, $0E + db $03, $40, $09 + db $13, $40, $0F + db $04, $40, $08 + db $14, $40, $00 + db $05, $40, $07 + db $15, $40, $01 + db $07, $20, $06 + db $17, $80, $02 + db $08, $08, $05 + db $08, $04, $04 + db $08, $02, $03 + +SubTileXPos_CollisionData2: ; 0x259e + db $00, $04, $0B + db $00, $02, $0C + db $00, $01, $0D + db $01, $10, $0A + db $11, $40, $0E + db $03, $20, $09 + db $13, $20, $0F + db $04, $20, $08 + db $14, $20, $00 + db $05, $20, $07 + db $15, $20, $01 + db $07, $10, $06 + db $17, $40, $02 + db $08, $04, $05 + db $08, $02, $04 + db $08, $01, $03 + +SubTileXPos_CollisionData3: ; 0x25ce + db $00, $02, $0B + db $00, $01, $0C + db $10, $80, $0D + db $01, $08, $0A + db $11, $20, $0E + db $03, $10, $09 + db $13, $10, $0F + db $04, $10, $08 + db $14, $10, $00 + db $05, $10, $07 + db $15, $10, $01 + db $07, $08, $06 + db $17, $20, $02 + db $08, $02, $05 + db $08, $01, $04 + db $18, $80, $03 + +SubTileXPos_CollisionData4: ; 0x25fe + db $00, $01, $0B + db $10, $80, $0C + db $10, $40, $0D + db $01, $04, $0A + db $11, $10, $0E + db $03, $08, $09 + db $13, $08, $0F + db $04, $08, $08 + db $14, $08, $00 + db $05, $08, $07 + db $15, $08, $01 + db $07, $04, $06 + db $17, $10, $02 + db $08, $01, $05 + db $18, $80, $04 + db $18, $40, $03 + +SubTileXPos_CollisionData5: ; 0x262e + db $10, $80, $0B + db $10, $40, $0C + db $10, $20, $0D + db $01, $02, $0A + db $11, $08, $0E + db $03, $04, $09 + db $13, $04, $0F + db $04, $04, $08 + db $14, $04, $00 + db $05, $04, $07 + db $15, $04, $01 + db $07, $02, $06 + db $17, $08, $02 + db $18, $80, $05 + db $18, $40, $04 + db $18, $20, $03 + +SubTileXPos_CollisionData6: ; 0x265e + db $10, $40, $0B + db $10, $20, $0C + db $10, $10, $0D + db $01, $01, $0A + db $11, $04, $0E + db $03, $02, $09 + db $13, $02, $0F + db $04, $02, $08 + db $14, $02, $00 + db $05, $02, $07 + db $15, $02, $01 + db $07, $01, $06 + db $17, $04, $02 + db $18, $40, $05 + db $18, $20, $04 + db $18, $10, $03 + +SubTileXPos_CollisionData7: ; 0x268e + db $10, $20, $0B + db $10, $10, $0C + db $10, $08, $0D + db $11, $80, $0A + db $11, $02, $0E + db $03, $01, $09 + db $13, $01, $0F + db $04, $01, $08 + db $14, $01, $00 + db $05, $01, $07 + db $15, $01, $01 + db $17, $80, $06 + db $17, $02, $02 + db $18, $20, $05 + db $18, $10, $04 + db $18, $08, $03 + +Data_26be: + dr $26be, $2720 + +Func_2720: ; 0x2720 + ld a, $ff + ld [wd4ea], a + call Func_272f + ld a, [wd4ea] + ld [wd4ec], a + ret + +Func_272f: ; 0x272f +; not collisions + ld a, [wCurrentStage] + call CallInFollowingTable +CallTable_2735: ; 0x2735 + ; STAGE_RED_FIELD_TOP + padded_dab Func_143e1 + + ; STAGE_RED_FIELD_BOTTOM + padded_dab Func_143f9 + + padded_dab Func_18061 + + padded_dab Func_18062 + + ; STAGE_BLUE_FIELD_TOP + padded_dab Func_1c520 + + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab Func_1c536 + + ; STAGE_GENGAR_BONUS + padded_dab Func_181b1 + + ; STAGE_GENGAR_BONUS + padded_dab Func_181b1 + + ; STAGE_MEWTWO_BONUS + padded_dab Func_19330 + + ; STAGE_MEWTWO_BONUS + padded_dab Func_19330 + + ; STAGE_MEOWTH_BONUS + padded_dab Func_2414d + + ; STAGE_MEOWTH_BONUS + padded_dab Func_2414d + + ; STAGE_DIGLETT_BONUS + padded_dab Func_19ab3 + + ; STAGE_DIGLETT_BONUS + padded_dab Func_19ab3 + + ; STAGE_SEEL_BONUS + padded_dab Func_25bbc + + ; STAGE_SEEL_BONUS + padded_dab Func_25bbc + +Func_2775: ; 0x2775 + ld a, [wd4ea] + inc a + jr nz, .asm_27a2 + ld a, [bc] + bit 7, a + jr nz, .asm_27a2 + push bc + push de + call nc, Func_27da + pop hl + call c, Func_27a4 + ld a, [wd4ea] + ld b, a + pop hl + ld [hl], $0 + jr nc, .asm_27a2 + ld a, [wd4ec] + cp b + jr z, .asm_27a2 + ld a, [wd4eb] + ld [hli], a + ld a, [wd4ea] + ld [hl], a + scf + ret + +.asm_27a2 + and a + ret + +Func_27a4: ; 0x27a4 + xor a + ld [wd4eb], a + ld a, [hli] + ld d, a + ld a, [hli] + ld e, a + ld a, [wBallXPos + 1] + ld b, a + ld a, [wBallYPos + 1] + ld c, a +.asm_27b4 + ld a, [wd4eb] + inc a + ld [wd4eb], a + ld a, [hli] + ld [wd4ea], a + cp $ff + ret z + ld a, [hli] + sub b + bit 7, a + jr z, .asm_27ca + cpl + inc a +.asm_27ca + cp d + ld a, [hli] + jr nc, .asm_27b4 + sub c + bit 7, a + jr z, .asm_27d5 + cpl + inc a +.asm_27d5 + cp e + jr nc, .asm_27b4 + scf + ret + +Func_27da: ; 0x27da + ld a, [hli] + and a + jr z, .asm_27e8 + dec hl + ld a, [wStageCollisionState] + ld c, a + ld b, $0 + add hl, bc + ld c, [hl] + add hl, bc +.asm_27e8 + ld a, [wd7e9] + and a + ret z + ld a, [wd7f5] + ld b, a + ld c, $ff +.asm_27f3 + inc c + ld a, [hli] + cp $ff + ret z + cp b + jr nz, .asm_27f3 + scf + ret + +PinballCollideWithPoints: ; 0x27fd +; Checks if pinball collides with any of the (x, y) points in the given list. +; Saves the index of the collided point. +; Input: hl = pointer to array of (x, y) points +; Output: Saves index of collided point in wd578 + ld a, [wBallXPos + 1] + ld b, a + ld a, [wBallYPos + 1] + ld c, a + ld d, $0 +.nextPoint + ld a, [hli] + and a + ret z + inc d + ld a, [hli] + sub b + cp $e8 + ld a, [hli] + jr c, .nextPoint + sub c + cp $e8 + jr c, .nextPoint + ld a, d + ld [wd578], a + ret + +Func_281c: ; 0x281c + ld a, [wCurrentStage] + call CallInFollowingTable +CallTable_2822: ; 0x2822 +; not collisions + ; STAGE_RED_FIELD_TOP + padded_dab Func_1460e + + ; STAGE_RED_FIELD_BOTTOM + padded_dab Func_14652 + + padded_dab Func_1806d + + padded_dab Func_1806e + + ; STAGE_BLUE_FIELD_TOP + padded_dab Func_1c715 + + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab Func_1c769 + + ; STAGE_GENGAR_BONUS + padded_dab Func_18377 + + ; STAGE_GENGAR_BONUS + padded_dab Func_18377 + + ; STAGE_MEWTWO_BONUS + padded_dab Func_19451 + + ; STAGE_MEWTWO_BONUS + padded_dab Func_19451 + + ; STAGE_MEOWTH_BONUS + padded_dab Func_2442a + + ; STAGE_MEOWTH_BONUS + padded_dab Func_2442a + + ; STAGE_DIGLETT_BONUS + padded_dab Func_19b88 + + ; STAGE_DIGLETT_BONUS + padded_dab Func_19b88 + + ; STAGE_SEEL_BONUS + padded_dab Func_25c5a + + ; STAGE_SEEL_BONUS + padded_dab Func_25c5a + +Func_2862: ; 0x2862 + ld a, [wd7be] + and a + jr nz, .asm_287c + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_287b + ld a, $0 + ld hl, Data_2890 + ld de, $0052 + ld bc, $0004 + call FarCopyPalettes +.asm_287b + ret + +.asm_287c + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_288f + ld a, $0 + ld hl, Data_2894 + ld de, $0052 + ld bc, $0004 + call FarCopyPalettes +.asm_288f + ret + +Data_2890: + RGB 31, 31, 31 + RGB 21, 21, 27 + +Data_2894: + RGB 27, 10, 10 + RGB 20, 04, 04 + +Data_2898: + dr $2898, $28a0 + +CopyHLToDE: ; 0x28a0 +; Places [hl] into [de] +; Also places $0 into [de + 2] + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + xor a + ld [de], a + ret + +UpdateAnimation: ; 0x28a9 +; Updates an animation struct. (See wDugtrioAnimationFrameCounter) +; Input: de = pointer to 3-byte animation struct +; hl = pointer to animation frames data +; Sets carry flag if the animation is over. + ld a, [de] + and a + ret z ; return, if counter is zero + dec a + ld [de], a + ret nz ; return if counter is not zero after the decrement + push de + inc de + inc de + ld a, [de] ; a = current frame index + inc a + ld [de], a + ld c, a + ld b, $0 + sla c + rl b + add hl, bc ; hl = pointer to two-byte entry in the frames data table + ld a, [hli] + pop de + and a + scf + ret z ; return if the next entry is $00 + push de + ld [de], a ; save the animation duration + inc de + ld a, [hli] + ld [de], a ; save the next animation frame id + pop de + ret + +INCLUDE "text.asm" +INCLUDE "home/text.asm" + +Func_3500: + ld hl, wd464 + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, c + ld [hli], a + ld a, b + ld [hli], a + xor a + ld [hli], a + ld [hl], a + ld bc, wd464 + callba AddBigBCD6FromQueueWithBallMultiplier + ret + +AddBCDEToCurBufferValue: ; 0x351c + ld hl, wd464 + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, c + ld [hli], a + ld a, b + ld [hli], a + xor a + ld [hli], a + ld [hl], a + ld bc, wd464 + callba AddBigBCD6FromQueue + ret + +Func_3538: ; 0x3538 +; Add BCD value bcde to [wd47a]. Cap at $99999999. + ld hl, wd47a + ld a, [hl] + add e + daa + ld [hli], a + ld a, [hl] + adc d + daa + ld [hli], a + ld a, [hl] + adc c + daa + ld [hli], a + ld a, [hl] + adc b + daa + ld [hli], a + ret nc + ld hl, wd47a + ld a, $99 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ret + +Retrieve8DigitBCDValueAtwd47a: ; 0x3556 +; Retrieves a 4-byte BCD value at wd47a + ld a, [wd47a] + ld e, a + ld a, [wd47a + 1] + ld d, a + ld a, [wd47a + 2] + ld c, a + ld a, [wd47a + 3] + ld b, a + ret + +Func_3567: +; BCD add bc to hl + ld a, l + add c + daa + ld l, a + ld a, h + adc b + daa + ld h, a + ret + +Func_3570: +; BCD add de to hl + ld a, l + add e + daa + ld l, a + ld a, h + adc d + daa + ld h, a + ret + +Func_3579: ; 0x3579 +; Delete 4-byte BCD value at wd47a + ld hl, wd47a + xor a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ret + +HandleTilts: ; 0x3582 + call HandleLeftTilt + call HandleRightTilt + call HandleUpperTilt + ret + +HandleLeftTilt: ; 0x358c + ld a, [wLeftTiltReset] + and a + jr nz, .tiltCoolDown + ld hl, wKeyConfigLeftTilt + call IsKeyPressed2 + jr z, .tiltCoolDown + ld a, [wLeftTiltCounter] + cp $3 + jr z, .startCoolDown + inc a + ld [wLeftTiltCounter], a + cp $1 + jr nz, .skipSoundEffect + lb de, $00, $3f + call PlaySoundEffect +.skipSoundEffect + ld a, [wd548] + ld hl, wd549 + and [hl] + jr z, .skipBallMovement + ld a, [wBallXPos + 1] + dec a ; move ball's position to the left by 1 pixel + ld [wBallXPos + 1], a +.skipBallMovement + ld a, [wd79f] + inc a + ld [wd79f], a + ld a, $1 + ld [wLeftTiltPushing], a + ret + +.startCoolDown + ld a, $1 + ld [wLeftTiltReset], a +.tiltCoolDown + xor a + ld [wLeftTiltPushing], a + ld a, [wLeftTiltCounter] + and a + jr z, .done + dec a + ld [wLeftTiltCounter], a + ld a, [wd79f] + dec a + ld [wd79f], a + ret + +.done + ld hl, wKeyConfigLeftTilt + call IsKeyPressed2 + ret nz + xor a + ld [wLeftTiltReset], a + ret + +HandleRightTilt: ; 0x35f3 + ld a, [wRightTiltReset] + and a + jr nz, .tiltCoolDown + ld hl, wKeyConfigRightTilt + call IsKeyPressed2 + jr z, .tiltCoolDown + ld a, [wRightTiltCounter] + cp $3 + jr z, .startCoolDown + inc a + ld [wRightTiltCounter], a + cp $1 + jr nz, .skipSoundEffect + lb de, $00, $3f + call PlaySoundEffect +.skipSoundEffect + ld a, [wd548] + ld hl, wd549 + and [hl] + jr z, .skipBallMovement + ld a, [wBallXPos + 1] + inc a ; move ball's position to the right by 1 pixel + ld [wBallXPos + 1], a +.skipBallMovement + ld a, [wd79f] + dec a + ld [wd79f], a + ld a, $1 + ld [wRightTiltPushing], a + ret + +.startCoolDown + ld a, $1 + ld [wRightTiltReset], a +.tiltCoolDown + xor a + ld [wRightTiltPushing], a + ld a, [wRightTiltCounter] + and a + jr z, .done + dec a + ld [wRightTiltCounter], a + ld a, [wd79f] + inc a + ld [wd79f], a + ret + +.done + ld hl, wKeyConfigRightTilt + call IsKeyPressed2 + ret nz + xor a + ld [wRightTiltReset], a + ret + +HandleUpperTilt: ; 0x365a + ld a, [wUpperTiltReset] + and a + jr nz, .tiltCoolDown + ld hl, wKeyConfigUpperTilt + call IsKeyPressed2 + jr z, .tiltCoolDown + ld a, [wUpperTiltCounter] + cp $4 + jr z, .startCoolDown + inc a + ld [wUpperTiltCounter], a + cp $1 + jr nz, .skipSoundEffect + lb de, $00, $3f + call PlaySoundEffect +.skipSoundEffect + ld a, [wd548] + ld hl, wd549 + and [hl] + jr z, .skipBallMovement + ld a, [wBallYPos + 1] + inc a ; move ball's position down by 1 pixel + ld [wBallYPos + 1], a +.skipBallMovement + ld a, [wd7a0] + dec a + ld [wd7a0], a + ld a, $1 + ld [wUpperTiltPushing], a + ret + +.startCoolDown + ld a, $1 + ld [wUpperTiltReset], a +.tiltCoolDown + xor a + ld [wUpperTiltPushing], a + ld a, [wUpperTiltCounter] + and a + jr z, .done + dec a + ld [wUpperTiltCounter], a + ld a, [wd7a0] + inc a + ld [wd7a0], a + ret + +.done + ld hl, wKeyConfigUpperTilt + call IsKeyPressed2 + ret nz + xor a + ld [wUpperTiltReset], a + ret + +ApplyTiltForces: ; 0x36c1 + ld a, [wd548] + ld hl, wd549 + and [hl] + ret z + ld c, $0 + ld a, [wUpperTiltPushing] + srl a + rl c + ld a, [wRightTiltPushing] + srl a + rl c + ld a, [wLeftTiltPushing] + srl a + rl c + ld b, $0 + sla c + ld hl, Data_372d + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + bit 7, h + ret nz + ld a, [wd7ea] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + add hl, bc + ld a, [hLoadedROMBank] + push af + ld a, BANK(TiltLeftOnlyForce) + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, [wBallXVelocity] + add [hl] + ld [wBallXVelocity], a + inc hl + ld a, [wBallXVelocity + 1] + adc [hl] + ld [wBallXVelocity + 1], a + inc hl + ld a, [wBallYVelocity] + add [hl] + ld [wBallYVelocity], a + inc hl + ld a, [wBallYVelocity + 1] + adc [hl] + ld [wBallYVelocity + 1], a + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +Data_372d: + dw -1 ; no tilt + dw TiltLeftOnlyForce + dw TiltRightOnlyForce + dw -1 ; left + right (cancel) + dw TiltUpOnlyForce + dw TiltUpLeftForce + dw TiltUpRightForce + dw TiltUpOnlyForce + +SECTION "bank0.2", ROM0 [$3800] + +Data_3800: + dr $3800, $3980 + +Data_3980: + dr $3980, $3b00 + +Data_3b00: + dr $3b00, $3c80 + +Data_3c80: + dr $3c80, $3e00 + +SquaresLow: +x = 0 +rept 256 + db (x * x) % $100 +x = x + 1 +endr + +SquaresHigh: +x = 0 +rept 256 + db (x * x) / $100 +x = x + 1 +endr + diff --git a/home/save.asm b/home/save.asm new file mode 100755 index 0000000..63cfaa8 --- /dev/null +++ b/home/save.asm @@ -0,0 +1,170 @@ +LoadSavedData: ; 0xf0c + call ValidateSaveData + ret nc +.loop + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .loop + scf + ret + +SaveData: ; 0xf1a +; Input: hl = data to save +; bc = number of bytes to save +; de = destination for saved data + push bc + push de + push hl +.save + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .save + pop hl + pop de + pop bc + ld h, d + ld l, e + call SignData + call ComputeChecksum + call CreateBackupCopy + ret + +ValidateSaveData: ; 0xf34 + call ValidateSignature + jr nc, .backup + call ValidateChecksum + jr nc, .backup + ret + +.backup + add hl, bc + inc hl + inc hl + inc hl + inc hl + call ValidateSignature + ret nc + call ValidateChecksum + ret + +CreateBackupCopy: ; 0xf4c + push bc + push hl + push de + inc bc + inc bc + inc bc + inc bc + ld d, h + ld e, l + add hl, bc +.loop + ld a, [de] + ld [hli], a + inc de + dec bc + ld a, b + or c + jr nz, .loop + pop de + pop hl + pop bc + ret + +ValidateSignature: ; 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 + +SignData: ; 0xf74 + push hl + add hl, bc + ld a, $4e + ld [hli], a + ld a, $54 + ld [hl], a + pop hl + ret + +ValidateChecksum: ; 0xf7e + push bc + push de + push hl + inc bc + inc bc + ld de, $0000 +.loop + 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, .loop + ld a, [hli] + cp e + jr nz, .fail + ld a, [hl] + cp d + jr nz, .fail + scf + jr .pass + +.fail + and a +.pass + pop hl + pop de + pop bc + ret + +ComputeChecksum: ; 0xfa1 + push bc + push de + push hl + inc bc + inc bc + ld de, $0000 +.loop + ld a, [hli] + add e + ld e, a + jr nc, .nocarry + inc d +.nocarry + dec bc + ld a, b + or c + jr nz, .loop + ld a, e + ld [hli], a + ld a, d + ld [hl], a + pop hl + pop de + pop bc + ret diff --git a/home/serial.asm b/home/serial.asm new file mode 100755 index 0000000..8e68e6b --- /dev/null +++ b/home/serial.asm @@ -0,0 +1,782 @@ +Func_14c4: ; 14c4 (0:14c4) + ld a, [wd8dc] + and a + jp nz, Func_165f + ld a, [wd8ad] + cp $7 + jp z, Func_1612 + ld a, [wd8af] + and a + jr nz, .asm_14df + call Func_1502 + jp Func_1663 + +.asm_14df + ld a, [wd8b0] + and a + jr z, .asm_14fc + ld a, [wd8b1] + and a + jr z, .asm_14fc + ld a, [wd8b2] + cp $2 + jr z, .asm_14f7 + call Func_15e1 + jr .asm_14ff + +.asm_14f7 + call Func_15f8 + jr .asm_14ff + +.asm_14fc + call Func_1527 +.asm_14ff + jp Func_1663 + +Func_1502: ; 1502 (0:1502) + ld hl, wd8b9 + ld c, [hl] + inc [hl] + ld b, $0 + ld hl, Data_18ff + add hl, bc + ld a, [hl] + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ld a, [wd8b9] + cp $2 + ret nz + xor a + ld [wd8b9], a + inc a + ld [wd8af], a + ret + +Func_1527: ; 1527 (0:1527) + ld a, [wd8b9] + ld c, a + ld a, [wd8ba] + ld b, a + ld a, [wd8bb] + ld l, a + ld a, [wd8bc] + ld h, a + add hl, bc + ld a, [rSB] + ld [wd8c8 + 1], a + ld a, [hl] + ld [rSB], a + ld l, a + ld a, [wd8c3] + add l + ld [wd8c3], a + ld a, [wd8c4] + adc $0 + ld [wd8c4], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ld hl, wd8b9 + inc [hl] + jr nz, .asm_1560 + inc hl + inc [hl] +.asm_1560 + ld hl, wd8b9 + ld a, [wd8b3] + cp [hl] + jr nz, .asm_1570 + inc hl + ld a, [wd8b4] + cp [hl] + jr z, .asm_1572 +.asm_1570 + jr .asm_15b0 + +.asm_1572 + ld hl, wd8b0 + ld a, [hl] + and a + jr z, .asm_157c + ld hl, wd8b1 +.asm_157c + inc [hl] + ld a, [wd8cc] + and a + jr z, .asm_15b5 + ld a, [wd8ad] + cp $6 + jr z, .asm_15b5 + ld hl, wd8b1 + ld a, [hl] + and a + jr nz, .asm_15b1 + xor a + ld [wd8b9], a + ld [wd8ba], a + ld a, [wd8bf] + ld [wd8bb], a + ld a, [wd8c0] + ld [wd8bc], a + ld a, [wd8b7] + ld [wd8b3], a + ld a, [wd8b8] + ld [wd8b4], a +.asm_15b0 + ret + +.asm_15b1 + call Func_15c8 + ret + +.asm_15b5 + ld a, [wd8c8 + 1] + ld [wd8c8], a +asm_15bb + ld a, $7 + ld [wd8ad], a + ld a, $1 + ld [wd8c5], a + call Func_16bf +Func_15c8: ; 15c8 (0:15c8) + ld a, [wd8b5] + ld [wd8b3], a + ld a, [wd8b6] + ld [wd8b4], a + ld a, [wd8bd] + ld [wd8bb], a + ld a, [wd8be] + ld [wd8bc], a + ret + +Func_15e1: ; 15e1 (0:15e1) + ld c, a + ld b, $0 + ld hl, wd8c3 + add hl, bc + ld a, [hl] + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ld hl, wd8b2 + inc [hl] + ret + +Func_15f8: ; 15f8 (0:15f8) + ld a, [rSB] + ld [wd8c8], a + xor a + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ld hl, wd8c6 + inc [hl] + ld a, [hl] + cp $2 + jr z, asm_15bb + ret + +Func_1612: ; 1612 (0:1612) + ld a, [wd8cb] + ld [wd8ae], a + ld a, [wd8c7] + ld [wd86e + 2], a + cp $ff + jr z, .asm_1625 + ld [wd86e + 1], a +.asm_1625 + ld a, [rSB] + ld [wd8c7], a + cp $ff + jr nz, .asm_163a + ld a, $0 + ld [wd8db], a + ld [wd8ad], a + ld a, $2 + jr .asm_1652 + +.asm_163a + bit 1, a + jr z, .asm_1643 + ld a, $1 + ld [wd8e2], a +.asm_1643 + bit 4, a + ld a, $0 + ld [wd8ad], a + ld a, $1 + jr nz, .asm_1651 + ld [wd8ad], a +.asm_1651 + inc a +.asm_1652 + ld [wd8c5], a + ld a, [wd8cc] + and a + jr nz, Func_165f + xor a + ld [wd8db], a +Func_165f: ; 165f (0:165f) + ret + +Func_1660: + xor a + ld [rSC], a +Func_1663: ; 1663 (0:1663) + ret + +Func_1664: + push af + ld a, [rSC] + bit 7, a + jr nz, .asm_1679 + push bc + push de + push hl + ld a, $1 + ld [wd8ca], a + call Func_14c4 + pop hl + pop de + pop bc +.asm_1679 + pop af + reti +Func_167b: ; 0x167b + ld a, [wd8ad] + cp $1 + ret nz + ld a, [wd8c7] + cp $ff + ret z + ld a, [wd8db] + and a + ret nz + ld hl, wd8e0 + inc [hl] + ld a, [hl] + cp $6 + ret c + xor a + ld [hl], a + ld [wd8e2], a + call Func_18ac + ret + +Func_169d: + xor a + ld [rSC], a + ld [rSB], a + ; fallthrough + +Func_16a2: ; 0x16a2 + xor a + ld [rSB], a + ld [rSC], a + ld [wd8ad], a + dec a + ld [wd8c7], a + ld [wd8c8], a + call Func_16b5 + ret + +Func_16b5: ; 0x16b5 + xor a + ld [wd8c5], a + ld [wd8ca], a + ld [wd8db], a + ; fall through +Func_16bf: ; 0x16bf + xor a + ld [wd8af], a + ld [wd8b0], a + ld [wd8b1], a + ld [wd8b2], a + ld [wd8c6], a + ld [wd8c3], a + ld [wd8c4], a + ld [wd8b9], a + ld [wd8ba], a + ld [wd8dc], a + ld [wd8e2], a + ret + +Func_16e2: ; 0x16e2 + ld a, [wd8db] + and a + jr z, .asm_16ec + call Func_16fd + ret nc +.asm_16ec + ld a, [wd8ae] + cp $1 + jr nz, .asm_16f7 + call Func_16fd + ret nc +.asm_16f7 + call Func_1925 + jp Func_19e5 + +Func_16fd: ; 0x16fd + ld a, [wd8c5] + cp $2 + jr nz, .asm_173c + xor a + ld [wd8e0], a + ld [wd8ae], a + inc a + ld [wd8ad], a + ld a, [wd8c7] + 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 [wd8ad], a + ld [wd8ae], a + ld a, [wd8c7] + jr .asm_173a + +.asm_172e + scf + ret + +.asm_1730 + xor a + ld [wd8ae], a + dec a +.asm_1735 + inc a + ld [wd8ad], a + dec a +.asm_173a + and a + ret + +.asm_173c + xor a + ld a, $f0 + ret + +Func_1740: ; 0x1740 + ld a, [wd8ad] + cp $1 + jr z, .asm_1752 + cp $2 + jr z, .asm_1752 + and a + ld a, $ff + ret z +.asm_174f + ld a, $f0 + ret + +.asm_1752 + ld a, [wd8e2] + and a + jr nz, .asm_174f + ld a, [wd8db] + and a + jr z, .asm_1762 + call Func_16fd + ret nc +.asm_1762 + ld a, [wd8ae] + cp $2 + jr nz, .asm_176d + call Func_16fd + ret nc +.asm_176d + ld a, [wd8c7] + cp $ff + ret z + call Func_1932 + jp Func_19e5 + +Func_1779: ; 0x1779 + ld c, a + ld a, [wd8ad] + and a + ld a, [wd8c7] + ret z + ld a, [wd8ad] + cp $1 + jr z, .asm_1790 + cp $3 + jr z, .asm_1790 + ld a, $f0 + ret + +.asm_1790 + ld a, [wd8db] + and a + jr nz, .asm_17df + ld a, c + inc a + ld [wd8de], a + ld a, l + ld [wd8c1], a + ld a, h + ld [wd8c2], a + ld a, [wd8c7] + cp $ff + ret z + ld a, [wd8ab] + ld [wd8ac], a + and a + jr z, .asm_17d6 + ld a, [wd8de] + dec a + dec a + push af + ld c, a + ld b, $0 + push hl + ld hl, wd89d + add hl, bc + ld a, [hl] + pop hl + ld [wd8ac], a + pop af + add a + ld c, a + ld b, $0 + push hl + ld hl, wd88b + add hl, bc + ld a, [hli] + ld b, [hl] + pop hl + ld c, a + jp .asm_17d9 + +.asm_17d6 + ld bc, $0280 +.asm_17d9 + call Func_1989 + jp Func_19e5 + +.asm_17df + ld a, [wd8c5] + cp $2 + ld a, $f0 + jp nz, .asm_1869 + ld hl, wd8de + ld a, [wd8c7] + bit 4, a + jp nz, .asm_1859 + bit 1, a + jp nz, .asm_1804 + bit 0, a + jp nz, .asm_1804 + dec [hl] + ld a, [wd8c7] + jr z, .asm_1860 +.asm_1804 + ld a, [hl] + cp $1 + jr z, .asm_186a + ld bc, $0280 + ld a, [wd8ab] + ld [wd8ac], a + and a + jr z, .asm_1836 + ld a, [wd8de] + dec a + dec a + push af + ld c, a + ld b, $0 + push hl + ld hl, wd89d + add hl, bc + ld a, [hl] + pop hl + ld [wd8ac], a + pop af + add a + ld c, a + ld b, $0 + push hl + ld hl, wd88b + add hl, bc + ld a, [hli] + ld b, [hl] + pop hl + ld c, a +.asm_1836 + ld a, [wd8c7] + bit 1, a + jp nz, .asm_184e + ld a, [wd8bf] + add $80 + ld [wd8bf], a + ld a, [wd8c0] + adc $2 + ld [wd8c0], a +.asm_184e + ld a, [wd8bf] + ld l, a + ld a, [wd8c0] + ld h, a + jp .asm_17d9 + +.asm_1859 + push af + ld a, $1 + ld [wd8dc], a + pop af +.asm_1860 + push af + xor a + ld [wd8cc], a + ld [wd8db], a + pop af +.asm_1869 + ret + +.asm_186a + ld a, [wd8dd] + and a + ld a, [wd8c7] + jr z, .asm_1860 + call Func_19d7 + jp Func_19e5 + +Func_1879: + ld a, [wd8ad] + cp $1 + jr z, .asm_188b + cp $3 + jr z, .asm_188b + and a + ld a, $ff + ret z + ld a, $f0 + ret + +.asm_188b + ld a, [wd8db] + and a + jr z, .asm_1895 + call Func_16fd + ret nc +.asm_1895 + ld a, [wd8ae] + cp $4 + jr nz, .asm_18a0 + call Func_16fd + ret nc +.asm_18a0 + ld a, [wd8c7] + cp $ff + ret z + call Func_19bd + jp Func_19e5 + +Func_18ac: ; 0x18ac + ld a, [wd8ad] + 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, [wd8db] + and a + jr z, .asm_18c8 + call Func_16fd + ret nc +.asm_18c8 + ld a, [wd8c7] + cp $ff + ret z + call Func_19ca + jp Func_19e5 + +Func_18d4: ; 0x18d4 + ld [wd8cb], a + ld a, d + ld [wd8cc], a + ld a, l + ld [wd8bb], a + ld [wd8bd], a + ld a, h + ld [wd8bc], a + ld [wd8be], a + ld a, c + ld [wd8b3], a + ld [wd8b5], a + ld a, b + ld [wd8b4], a + ld [wd8b6], a + xor a + ld [wd8c5], a + call Func_16bf + ret + +Data_18ff: + dr $18ff, $1901 + +Data_1901: + dr $1901, $1909 + +Data_1909: + dr $1909, $190d + +Data_190d: + dr $190d, $1915 + +Data_1915: + dr $1915, $191d + +Data_191d: + dr $191d, $1925 + +Func_1925: ; 0x1925 + ld a, $1 + ld d, $0 + ld hl, Data_1901 + ld bc, $0008 + jp Func_18d4 + +Func_1932: ; 0x19332 + ld a, $2 + ld d, $0 + ld hl, wd8cd + ld bc, $000c + call Func_18d4 + ld hl, Data_1909 + ld de, wd8cd + ld bc, $0004 + call LocalCopyData + ld de, $0006 + ld a, [wd8a8] + ld [wd8d1], a + call Func_1982 + ld a, [wd8a9] + ld [wd8d2], a + call Func_1982 + ld a, [wd8aa] + ld [wd8d3], a + call Func_1982 + ld a, [wd8a7] + ld [wd8d4], a + call Func_1982 + ld a, e + ld [wd8d5], a + ld a, d + ld [wd8d6], a + xor a + ld [wd8d7], a + ld [wd8d8], a + ret + +Func_1982: ; 0x1982 + add e + ld e, a + ld a, d + adc $0 + ld d, a + ret + +Func_1989: ; 0x1989 + ld a, l + ld [wd8bf], a + ld a, h + ld [wd8c0], a + ld a, c + ld [wd8b7], a + ld a, b + ld [wd8b8], a + push bc + ld a, $3 + ld d, $1 + ld hl, wd8cd + ld bc, $0004 + call Func_18d4 + ld a, [Data_190d] + ld [wd8cd], a + ld a, [wd8ac] + ld [wd8ce], a + pop bc + ld a, c + ld [wd8cf], a + ld a, b + ld [wd8d0], a + ret + +Func_19bd: ; 19bd (0:19bd) + ld a, $4 + ld d, $0 + ld hl, Data_1915 + ld bc, $8 + jp Func_18d4 + +Func_19ca: ; 0x19ca + ld a, $5 + ld d, $0 + ld hl, Data_191d + ld bc, $0008 + jp Func_18d4 + +Func_19d7: ; 0x19d7 + ld a, $6 + ld d, $1 + ld hl, Data_190d + ld bc, $0008 + jp Func_18d4 + +; XXX + ret + +Func_19e5: ; 0x19e5 + ld a, [wd8ad] + cp $1 + jr z, .asm_19f8 + and a + jr nz, .asm_19f6 + ld a, [wd8cb] + cp $1 + jr z, .asm_1a02 +.asm_19f6 + scf + ret + +.asm_19f8 + ld a, [wd8cb] + cp $1 + jr z, .asm_19f6 + ld [wd8ad], a +.asm_1a02 + xor a + ld [wd8c5], a + ld [wd8ae], a + ld a, $1 + ld [wd8b9], a + ld [wd8db], a + ld a, [Data_18ff] + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ld a, $f0 + ret diff --git a/home/sgb.asm b/home/sgb.asm new file mode 100755 index 0000000..cc0e1b5 --- /dev/null +++ b/home/sgb.asm @@ -0,0 +1,277 @@ +FarSendSGBPackets: ; 0x12a1 +; send 16*b bytes at a:hl via the joypad register + ld [hROMBankBuffer], a + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ld a, [hl] + and $7 + jr z, .quit + ld b, a + ld c, $0 +.loop + push bc + ld a, $0 + ld [$ff00+c], a + ld a, $30 + ld [$ff00+c], a + ld b, $10 +.inner_loop + ld e, $8 + ld a, [hli] + ld d, a +.innermost_loop + bit 0, d + ld a, $10 + jr nz, .got_data + ld a, $20 +.got_data + ld [$ff00+c], a + ld a, $30 + ld [$ff00+c], a + rr d + dec e + jr nz, .innermost_loop + dec b + jr nz, .inner_loop + ld a, $20 + ld [$ff00+c], a + ld a, $30 + ld [$ff00+c], a + pop bc + dec b + jr z, .quit + call SGBWait7000 + jr .loop + +.quit + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +SGBWait7000: ; 0x12ec + ld de, 7000 +.asm_12ef + nop + nop + nop + dec de + ld a, d + or e + jr nz, .asm_12ef + ret + +InitSGB: ; 0x12f8 + ld a, BANK(Data_38010) + ld hl, Data_38010 + call FarSendSGBPackets + call SGBWait7000 + ld a, [rJOYP] + and $3 + cp $3 + jr nz, .asm_1346 + ld a, $20 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + ld a, $30 + ld [rJOYP], a + ld a, $10 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, $30 + ld [rJOYP], a + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + ld a, [rJOYP] + and $3 + cp $3 + jr nz, .asm_1346 + ld a, BANK(Data_38000) + ld hl, Data_38000 + call FarSendSGBPackets + call SGBWait7000 + and a + ret + +.asm_1346 + ld a, BANK(Data_38000) + ld hl, Data_38000 + call FarSendSGBPackets + call SGBWait7000 + scf + ret + +FarSendSGBPacket_BGMapRows: ; 0x1353 + ld [hROMBankBuffer], a + ld a, [hLoadedROMBank] + push af + ld a, [hROMBankBuffer] + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + push af + push hl + ld a, $e4 + ld [rBGP], a + ld de, $0010 + add hl, de + ld de, vTilesSH ; tiles + call LocalCopyData + ld hl, vBGMap ; bgmap + ld de, $000c + ld a, $80 + ld c, $d +.row + ld b, $14 +.col + ld [hli], a + inc a + dec b + jr nz, .col + add hl, de + dec c + jr nz, .row + ld a, $81 + ld [rLCDC], a + ld bc, $0005 + call SGBWait1750 + pop hl + pop af + call FarSendSGBPackets + ld bc, $0006 + call SGBWait1750 + ld a, [hBGP] + ld [rBGP], a + ld a, [hLCDC] + ld [rLCDC], a + pop af + ld [hLoadedROMBank], a + ld [MBC5RomBank], a + ret + +SendSGBBorder: ; 0x13a8 + ld a, [hSGBFlag] + and a + ret z + ld bc, $0078 + call SGBWait1750 + call SignalStartSGBBorderTransmission + ld a, BANK(Data_3a9e6) + ld hl, Data_3a9e6 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ld a, BANK(Data_3a9f6) + ld hl, Data_3a9f6 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ld a, BANK(Data_3aa06) + ld hl, Data_3aa06 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ld a, BANK(Data_3aa16) + ld hl, Data_3aa16 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ld a, BANK(Data_3aa26) + ld hl, Data_3aa26 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ld a, BANK(Data_3aa36) + ld hl, Data_3aa36 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ld a, BANK(Data_3aa46) + ld hl, Data_3aa46 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ld a, BANK(Data_3aa56) + ld hl, Data_3aa56 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ld bc, Data_39166 - Data_38156 - $10 + ld a, BANK(Data_38156) + ld hl, Data_38156 + call FarSendSGBPacket_BGMapRows + ld bc, $0004 + call SGBWait1750 + ld bc, Data_3a176 - Data_39166 - $10 + ld a, BANK(Data_39166) + ld hl, Data_39166 + call FarSendSGBPacket_BGMapRows + ld bc, $0004 + call SGBWait1750 + ld bc, Data_3a9e6 - Data_3a176 - $10 + ld a, BANK(Data_3a176) + ld hl, Data_3a176 + call FarSendSGBPacket_BGMapRows + ld bc, $0004 + call SGBWait1750 + ld bc, Data_38156 - Data_380a6 - $10 + ld a, BANK(Data_380a6) + ld hl, Data_380a6 + call FarSendSGBPacket_BGMapRows + ld bc, $0004 + call SGBWait1750 + ld bc, Data_3809a - Data_38030 - $10 + ld a, BANK(Data_38030) + ld hl, Data_38030 + call FarSendSGBPacket_BGMapRows + ld bc, $0004 + call SGBWait1750 + ld a, BANK(Data_38020) + ld hl, Data_38020 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ret + +SignalStartSGBBorderTransmission: ; 0x1489 + ld a, [hSGBFlag] + and a + ret z + ld a, [hSGBInit] + and a + ret nz + ld a, BANK(Data_3aa66) + ld hl, Data_3aa66 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + ld a, $ff + ld [hSGBInit], a + ret + +SGBNormal: ; 0x14a4 + ld a, [hSGBFlag] + and a + ret z + ld bc, $0002 + call SGBWait1750 + ld a, [hSGBInit] + and a + ret z + ld a, BANK(Data_3aa76) + ld hl, Data_3aa76 + call FarSendSGBPackets + ld bc, $0004 + call SGBWait1750 + xor a + ld [hSGBInit], a + ret diff --git a/home/text.asm b/home/text.asm new file mode 100755 index 0000000..1968494 --- /dev/null +++ b/home/text.asm @@ -0,0 +1,708 @@ +Func_30db: ; 0x30db + ld a, $86 + ld [hWY], a + ld a, $1 + ld [wd5ca], a + ld [wd5cb], a + ret + +Fillwc600WithBlackTile: ; 0x30e8 + ld a, $81 + ld hl, wc600 + ld b, $40 +.loop + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + dec b + jr nz, .loop + xor a + ld [wd5cc], a + ld [wd5d4], a + ld [wd5dc], a + ld [wd5e4], a + ld [wd5e9], a + ld [wd5ee], a + ret + +Func_310a: ; 0x310a + ld a, $81 + ld hl, wc600 + $40 + ld b, $5 +.asm_3111 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + dec b + jr nz, .asm_3111 + ld hl, wc600 + $c0 + ld b, $5 +.asm_311d + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + dec b + jr nz, .asm_311d + ret + +Func_3125: ; 0x3125 + ld b, $1 + jr asm_312b + +Func_3129: ; 0x3129 + ld b, $0 +asm_312b: ; 0x312b + ld a, [wd805] + and a + jp nz, Func_3268 +.next_char + ld a, [hli] + and a + ret z + ld c, $81 + cp " " + jr z, .space + cp "," + jr z, .comma + cp "♂" + jr z, .male + cp "♀" + jr z, .female + cp "`" + jr z, .apostrophe + cp "!" + jr z, .exclamation + cp "x" + jr z, .little_x + cp "e" + jr z, .e_acute + cp "*" + jr z, .asterisk + cp "." + jr z, .period + cp ":" + jr z, .colon + cp "0" + jr c, .check_atoz + cp "9" + 1 + jr c, .digit +.check_atoz + cp "A" + jr c, .invalid + cp "Z" + 1 + jr c, .alphabet +.invalid + jr .next_char + +.space + ld a, c + jr .load_char + +.comma + inc c + dec e + jr .check_special_load + +.male + xor a + call Func_31e1 + ld a, $83 + jr .load_char + +.female + ld a, $1 + call Func_31e1 + ld a, $84 + jr .load_char + +.apostrophe + ld a, $2 + call Func_31e1 + ld a, $85 + jr .load_char + +.e_acute + ld a, $3 + call Func_31e1 + ld a, $83 + jr .load_char + +.asterisk + ld a, $4 + call Func_31e1 + ld a, $87 + jr .load_char + +.exclamation + ld a, $5 + call Func_31e1 + ld a, $85 + jr .load_char + +.little_x + ld a, $6 + call Func_31e1 + ld a, $85 + jr .load_char + +.period + ld a, $7 + call Func_31e1 + ld a, $86 + jr .load_char + +.colon + ld a, $8 + call Func_31e1 + ld a, $83 + jr .load_char + +.digit + add $56 + jr .load_char + +.alphabet + add $bf +.load_char + ld [de], a +.check_special_load + bit 0, b + jr nz, .no_special_load + set 7, e + ld a, c + ld [de], a + res 7, e +.no_special_load + inc e + jp .next_char + +Func_31e1: ; 0x31e1 + push bc + push de + push hl + ld c, a + ld a, [hGameBoyColorFlag] + and a + ld a, c + jr z, .asm_31ed + add $9 +.asm_31ed + ld c, a + sla a + sla a + add c + ld c, a + ld b, $0 + ld hl, Data_320e + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, b + ld bc, $0010 + call LoadVRAMData + pop hl + pop de + pop bc + ret + +Data_320e: +macro_320e: MACRO + dw vTilesSH tile \1 + dba \2 + ENDM + macro_320e 3, GFX_d6440 + macro_320e 4, GFX_d6430 + macro_320e 5, GFX_d61d0 + macro_320e 3, GFX_d61c0 + macro_320e 7, GFX_d6480 + macro_320e 5, GFX_d61a0 + macro_320e 5, GFX_d6410 + macro_320e 6, GFX_d61b0 + macro_320e 3, GFX_d61e0 + macro_320e 3, GFX_d6440 + macro_320e 4, GFX_d6430 + macro_320e 5, GFX_d63d0 + macro_320e 3, GFX_d63c0 + macro_320e 7, GFX_d6480 + macro_320e 5, GFX_d63a0 + macro_320e 5, GFX_d6410 + macro_320e 6, GFX_d63b0 + macro_320e 3, GFX_d63e0 + +Func_3268: ; 0x3268 + ld a, [hli] + and a + ret z + ld c, $81 + cp $20 + jr z, .asm_3297 + cp $2c + jr z, .asm_329a + cp $30 + jr c, .asm_327d + cp $3a + jr c, .asm_329e +.asm_327d + cp $a0 + jr c, .asm_3285 + cp $e0 + jr c, .asm_328f +.asm_3285 + cp $e0 + jr c, .asm_328d + cp $f4 + jr c, .asm_3293 +.asm_328d + jr Func_3268 + +.asm_328f + sub $80 + jr .asm_32a0 + +.asm_3293 + sub $50 + jr .asm_32a0 + +.asm_3297 + ld a, c + jr .asm_32a0 + +.asm_329a + inc c + dec e + jr .asm_32a1 + +.asm_329e + add $56 +.asm_32a0 + ld [de], a +.asm_32a1 + set 7, e + ld a, c + ld [de], a + res 7, e + inc e + jr Func_3268 + +LoadTextHeader: ; 0x32aa + ld a, $1 + ld [hli], a + ld a, [de] + ld [hli], a + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + push af + inc de + ld a, [de] + ld [hli], a + inc de + pop af + ld l, a + ld h, wBottomMessageText / $100 +.asm_32c5 + ld a, [de] + ld [hli], a + inc de + and a + jr nz, .asm_32c5 + ret + +Func_32cc: ; 0x32cc + ld a, $1 + ld [hli], a + ld a, [de] + ld [hli], a + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + push af + inc de + ld a, [de] + ld [hli], a + inc de + pop af + ld e, a + ld d, wBottomMessageText / $100 + ld hl, [sp+$5] + lb bc, 8, 1 +.asm_32ec + ld a, [hl] + swap a + and $f + call Func_3309 + dec b + ld a, [hld] + and $f + call Func_3309 + dec b + jr nz, .asm_32ec + ld a, "0" + ld [de], a + inc de + ld a, " " + ld [de], a + inc de + xor a + ld [de], a + ret + +Func_3309: ; 0x3309 + jr nz, .asm_3312 + ld a, b + dec a + jr z, .asm_3312 + ld a, c + and a + ret nz +.asm_3312 + add $30 + ld [de], a + inc de + ld c, $0 + ld a, b + cp $6 + jr z, .asm_3320 + cp $3 + ret nz +.asm_3320 + ld a, $2c + ld [de], a + inc de + ret + +Func_3325: ; 0x3325 + ld a, [hli] + and a + ret z + ld a, [hl] + dec a + ld [hli], a + ret nz + ld a, [hld] + ld [hl], a + inc hl + inc hl + push hl + ld a, [hli] + ld e, a + cp [hl] + inc hl + jr nz, .asm_333c + ld a, [hl] + dec a + ld [hl], a + jr nz, .asm_333d +.asm_333c + dec e +.asm_333d + push de + ld d, wc600 / $100 + inc hl + push hl + ld l, [hl] + ld h, wBottomMessageText / $100 + call Func_3129 + pop hl + inc hl + ld a, [hl] + dec a + ld [hl], a + pop de + pop hl + ld [hl], e + ret nz + dec hl + dec hl + dec hl + ld [hl], $0 + ret + +Func_3357: ; 0x3357 + ld a, $1 + ld [hli], a + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + push af + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + pop af + ld l, a + ld h, wBottomMessageText / $100 +.asm_336b + ld a, [de] + ld [hli], a + inc de + and a + jr nz, .asm_336b + ret + +Func_3372: ; 0x3372 + ld a, $1 + ld [hli], a + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + push af + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + pop af + ld e, a + ld d, wBottomMessageText / $100 + ld hl, [sp+$5] + lb bc, 8, 1 +.asm_338a + ld a, [hl] + swap a + and $f + call Func_33a7 + dec b + ld a, [hld] + and $f + call Func_33a7 + dec b + jr nz, .asm_338a + ld a, $30 + ld [de], a + inc de + ld a, $20 + ld [de], a + inc de + xor a + ld [de], a + ret + +Func_33a7: ; 0x33a7 + jr nz, .asm_33b0 + ld a, b + dec a + jr z, .asm_33b0 + ld a, c + and a + ret nz +.asm_33b0 + add $30 + ld [de], a + inc de + ld c, $0 + ld a, b + cp $6 + jr z, .asm_33be + cp $3 + ret nz +.asm_33be + ld a, $2c + ld [de], a + inc de + ret + +Func_33c3: ; 0x33c3 + ld a, [hli] + and a + ret z + ld a, [hli] + ld e, a + ld d, wc600 / $100 + push hl + ld l, [hl] + ld h, wBottomMessageText / $100 + call Func_3129 + pop hl + inc hl + ld a, [hl] + dec a + ld [hli], a + ret nz + ld a, [hl] + dec a + ld [hld], a + bit 7, a + ret z + dec hl + dec hl + dec hl + ld [hl], $0 + ret + +Func_33e3: ; 0x33e3 + ld a, [wd5ca] + and a + jr nz, .asm_33ed + ld [wd5cb], a + ret + +.asm_33ed + ld c, $0 + ld a, [wd5cc] + and a + jr z, .asm_33fe + push bc + ld hl, wd5cc + call Func_3325 + pop bc + inc c +.asm_33fe + ld a, [wd5d4] + and a + jr z, .asm_340d + push bc + ld hl, wd5d4 + call Func_3325 + pop bc + inc c +.asm_340d + ld a, [wd5dc] + and a + jr z, .asm_341c + push bc + ld hl, wd5dc + call Func_3325 + pop bc + inc c +.asm_341c + ld a, [wd5e4] + and a + jr z, .asm_342b + push bc + ld hl, wd5e4 + call Func_33c3 + pop bc + inc c +.asm_342b + ld a, [wd5e9] + and a + jr z, .asm_343a + push bc + ld hl, wd5e9 + call Func_33c3 + pop bc + inc c +.asm_343a + ld a, [wd5ee] + and a + jr z, .asm_3449 + push bc + ld hl, wd5ee + call Func_33c3 + pop bc + inc c +.asm_3449 + ld a, c + and a + ret nz + ld [wd5ca], a + call Fillwc600WithBlackTile + ld a, [hGameBoyColorFlag] + and a + jr nz, .gameboyColor + ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy) + ld hl, $30 + StageRedFieldTopStatusBarSymbolsGfx_GameBoy + ld de, $8830 + ld bc, $0040 + call LoadOrCopyVRAMData + ret + +.gameboyColor + ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor) + ld hl, $30 + StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + ld de, $8830 + ld bc, $0040 + call LoadOrCopyVRAMData + ret + +Func_3475: ; 0x3475 + xor a + ld [hJoypadState], a + ld [hNewlyPressedButtons], a + ld [hPressedButtons], a + call HandleTilts + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(HandleFlippers) + ld hl, HandleFlippers + call nz, BankSwitch + callba Func_84b7 + call Func_33e3 + call Func_926 + rst AdvanceFrame + ld a, [wd5ca] + and a + jr nz, Func_3475 + ret + +FivePoints: ; 34a6 + bigBCD6 000000000005 +TenPoints: ; 34ac + bigBCD6 000000000010 +OneHundredPoints: ; 34b2 + bigBCD6 000000000100 +FourHundredPoints: ; 34b8 + bigBCD6 000000000400 +FiveHundredPoints: ; 34be + bigBCD6 000000000500 +OneThousandPoints: ; 34c4 + bigBCD6 000000001000 +FiveThousandPoints: ; 34ca + bigBCD6 000000005000 +TenThousandPoints: ; 34d0 + bigBCD6 000000010000 +OneHundredThousandPoints: ; 34d6 + bigBCD6 000000100000 +ThreeHundredThousandPoints: ; 34dc + bigBCD6 000000300000 +FiveHundredThousandPoints: ; 34e2 + bigBCD6 000000500000 +OneMillionPoints: ; 34e8 + bigBCD6 000001000000 +FiveMillionPoints: ; 34ee + bigBCD6 000005000000 +TenMillionPoints: ; 34f4 + bigBCD6 000010000000 +OneHundredMillionPoints: ; 34fa + bigBCD6 000100000000 + @@ -1,19 +1,47 @@ +hPushOAM EQU $FF80 + +hFarCallTempA EQU $FF8A +hFarCallTempE EQU $FF8B hJoypadState EQU $FF98 ; current state of buttons. See joy_constants.asm for which bits - ; correspond to which buttons. + ; correspond to which buttons. hNewlyPressedButtons EQU $FF99 ; buttons that were pressed in the current frame. hPressedButtons EQU $FF9A ; buttons that were pressed last frame and current frame(?) hPrevPreviousJoypadState EQU $FF9B ; joypad state from two frames ago. See joy_constants.asm for - ; which bits correspond to which buttons. (need a better name for this...) + ; which bits correspond to which buttons. (need a better name for this...) hPreviousJoypadState EQU $FF9C ; prevoius frame's joypad state. See joy_constants.asm for - ; which bits correspond to which buttons. + ; which bits correspond to which buttons. +hJoyRepeatDelay EQU $FF9D + +hLCDC EQU $FF9E +hSTAT EQU $FF9F +hSCY EQU $FFA0 +hSCX EQU $FFA1 +hLYC EQU $FFA2 +hBGP EQU $FFA3 +hOBP0 EQU $FFA4 +hOBP1 EQU $FFA5 +hWY EQU $FFA6 +hWX EQU $FFA7 +hLastLYC EQU $FFA8 +hNextLYCSub EQU $FFA9 +hLYCSub EQU $FFAA +hNextFrameHBlankSCX EQU $FFAB +hHBlankSCX EQU $FFAC +hNextFrameHBlankSCY EQU $FFAD +hHBlankSCY EQU $FFAE +hLCDCMask EQU $FFAF +hHBlankRoutine EQU $FFB0 -hBoardYShift EQU $FFA0 ; Vertical pixel offset of the board. For example, the board is shifted - ; by small amounts when "tilt up" is used. -hBoardXShift EQU $FFA1 ; Horizontal pixel offset of the board. For example, the board is shifted - ; $20 pixels to the right when launching the ball at the start of a round. +hNumFramesSinceLastVBlank EQU $FFB2 +hNumFramesDropped EQU $FFB3 +hVBlankCount EQU $FFB4 hFlipperYCollisionAttribute EQU $FFBF ; Vertical collision attribute for when ball collides with a flipper. -hLoadedROMBank EQU $FFF8 ; this is updated whenever the code switches ROM Banks +hFFC4 = $FFC4 +hLoadedROMBank EQU $FFF8 ; this is updated whenever the code switches ROM Banks +hROMBankBuffer EQU $FFFA +hSGBFlag EQU $FFFB +hSGBInit EQU $FFFC hGameBoyColorFlag EQU $FFFE ; this is set to $01 if a GameBoy Color is running the game. $00, otherwise. @@ -1,5 +1,8 @@ INCLUDE "macros/sound.asm" +AdvanceFrame EQUS "$10" +JumpTable EQUS "$18" + dex_text EQUS "db " ; Start beginning of pokedex description dex_line EQUS "db $0d," ; Start new line in pokedex description dex_end EQUS "db $00" ; Terminate the pokedex description @@ -14,6 +17,23 @@ dwb: MACRO db \2 ENDM +dba: MACRO + dbw BANK(\1), \1 + ENDM + +dab: MACRO + dwb \1, BANK(\1) + ENDM + +lb: MACRO + ld \1, (\2 << 8) | \3 + ENDM + +padded_dab: MACRO + dab \1 + db $00 + ENDM + dn: MACRO rept _NARG / 2 db (\1) << 4 + (\2) @@ -22,6 +42,10 @@ dn: MACRO endr ENDM +dr: MACRO +INCBIN "baserom.gbc", \1, \2 - \1 + ENDM + dx: MACRO x = 8 * ((\1) - 1) rept \1 @@ -34,16 +58,23 @@ bigdw: MACRO ; big-endian word dx 2, \1 ENDM +callba: MACRO + ld [hFarCallTempA], a + ld a, BANK(\1) + ld hl, \1 + call BankSwitch + ENDM + bigBCD6: MACRO ; There is probably a better name for this macro. ; It write a BCD in big-endian form. - dn ((\1) / 10) % 10, (\1) % 10 - dn ((\1) / 1000) % 10, ((\1) / 100) % 10 - dn ((\1) / 100000) % 10, ((\1) / 10000) % 10 - dn ((\1) / 10000000) % 10, ((\1) / 1000000) % 10 - dn ((\1) / 1000000000) % 10, ((\1) / 100000000) % 10 - dn ((\1) / 100000000000) % 10, ((\1) / 10000000000) % 10 - ENDM + dn ((\1) / 10) % 10, (\1) % 10 + dn ((\1) / 1000) % 10, ((\1) / 100) % 10 + dn ((\1) / 100000) % 10, ((\1) / 10000) % 10 + dn ((\1) / 10000000) % 10, ((\1) / 1000000) % 10 + dn ((\1) / 1000000000) % 10, ((\1) / 100000000) % 10 + dn ((\1) / 100000000000) % 10, ((\1) / 10000000000) % 10 + ENDM ; Constant enumeration is useful for mons, maps, etc. const_def: MACRO @@ -57,11 +88,17 @@ ENDM ;\1 = X ;\2 = Y -;\3 = Reference Background Map (e.g. vBGMap0 or vBGMap1) -hlCoord: MACRO - ld hl, \3 + $20 * \2 + \1 +;\3 = Reference Background Map (e.g. vBGMap or vBGWin) +coord: MACRO + ld \1, \4 + $20 * \3 + \2 ENDM +hlCoord EQUS "coord hl," +deCoord EQUS "coord de," +bcCoord EQUS "coord bc," + +tile EQUS "+ $10 *" + ;\1 = 5-bit Blue value ;\2 = 5-bit Green value ;\3 = 5-bit Red value diff --git a/macros/sound.asm b/macros/sound.asm index 8b8de34..2f88716 100755 --- a/macros/sound.asm +++ b/macros/sound.asm @@ -1,3 +1,13 @@ +channelcount: MACRO +nchannels = \1 - 1 + ENDM + +channel: MACRO + db (nchannels << 6) | \1 + dw \2 +nchannels = 0 + ENDM + note: MACRO dn (\1), (\2) - 1 ENDM @@ -227,4 +237,3 @@ callchannel: macro endchannel: macro db $ff endm - @@ -2,13570 +2,3426 @@ INCLUDE "charmap.asm" INCLUDE "macros.asm" INCLUDE "constants.asm" -SECTION "rst 00", ROM0 [$00] - di - jp Entry - -SECTION "rst 10", ROM0 [$10] - jp Func_468 - -SECTION "rst 18", ROM0 [$18] - jp JumpToFuncInTable - -SECTION "rst 20", ROM0 [$20] - jp Func_486 - -SECTION "rst 40", ROM0 [$40] - jp Func_2f2 - -SECTION "rst 48", ROM0 [$48] - jp Func_3ec - -SECTION "rst 50", ROM0 [$50] - jp Func_418 - -SECTION "rst 58", ROM0 [$58] - jp Func_445 - -SECTION "rst 60", ROM0 [$60] - jp Func_467 - - -SECTION "Entry", ROM0 [$100] - -Entry: ; 0x100 - nop - jp Start - -SECTION "Header", ROM0 [$104] - - ; The header is generated by rgbfix. - ; The space here is allocated to prevent code from being overwritten. - ds $150 - $104 - -SECTION "Main", ROM0 - -Start: ; 0x150 - ld [hGameBoyColorFlag], a - ld sp, hGameBoyColorFlag - di - xor a - ld [$ff0f], a - ld a, [$ff40] ; LCD Control - bit 7, a ; Check if LCD Display is enabled - jr nz, .LCDDisplayEnabled - set 7, a - ld [$ff40], a -.LCDDisplayEnabled - ld bc, $0002 - call Func_948 -.waitForVBlank - ld a, [$ff44] ; LY register (LCDC Y-Coordinate) - cp 145 ; > 144 means V-Blank - jr c, .waitForVBlank - ld a, $81 - ld [$ff40], a ; Enable LCD Display - xor a - ld [$ff47], a ; Clear Palette Data - ld [$ff48], a - ld [$ff49], a - ld bc, $0002 - call Func_948 -.waitForVBlank2 - ld a, [$ff44] ; LY register (LCDC Y-Coordinate) - cp 145 ; > 144 means V-Blank - jr c, .waitForVBlank2 - xor a - ld [$ff40], a ; Disable LCD Display - ld hl, wc000 - ld bc, $2000 - call ClearData ; Clear WRAM Bank 0 - ld hl, vTiles0 - ld bc, $1000 - call ClearData ; Clear First half of VRAM - ld a, $a - ld [$0000], a ; Enable RAM - ld a, $1 - ld [$2000], a ; Load ROM Bank $1 - ld a, $0 - ld [$6000], a ; Enable ROM Banking Mode - ld a, $0 - ld [$4000], a ; Set bits 5 and 6 of ROM Bank Number - ld a, $1 - ld [hLoadedROMBank], a - ld a, $1 - ld [$6000], a ; Enable RAM Banking Mode - ld a, $0 - ld [$4000], a ; Load RAM Bank $0 - ld sp, $dfff ; Initialize stack pointer to the end of WRAM Bank $1 - ld hl, $ff80 - ld bc, $007e - call ClearData ; Clear High RAM (HRAM) - call WriteDMACodeToHRAM - call ClearOAMBuffer - xor a - ld [$d7fb], a - ld [$d7fc], a - ld [$d7fd], a - ld [$ffb0], a - ld [$ffb1], a - ld [$d8e1], a - ld [$d7fe], a - ld [$fffc], a - ld hl, $ff9e - xor a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld a, $8f - ld [hli], a - ld a, $a6 - ld [hli], a - ld a, $0 - ld [$d849], a - ld [$d84a], a - ld a, Bank(PlaySong_BankF) - call SetSongBank - call Func_23b - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_222 - call Func_12f8 - rl a - and $1 - ld [$fffb], a - call Func_13a8 - ld a, [$fffb] - and a - jr z, .asm_222 - ld a, $1 - ld [$d917], a -.asm_222 - ld a, $1 - ld [$ffff], a ; Only enable LCD Status interrupt - ei - ld a, $ff - ld [$d810], a - call Func_97a - xor a - ld [$daa3], a - ld a, Bank(Func_1ffc) - ld hl, Func_1ffc - call BankSwitchSimple -Func_23b: ; 0x23b - ld a, [hGameBoyColorFlag] - cp $11 - jr nz, .asm_248 - ld a, $1 - ld [hGameBoyColorFlag], a - ld [$fffd], a - ret -.asm_248 - xor a - ld [hGameBoyColorFlag], a - ld [$fffd], a - ret - -INCBIN "baserom.gbc",$24e,$2f2 - $24e - -Func_2f2: ; 0x2f2 - push af - push bc - push de - push hl - call $ff80 ; OAM DMA transfer - ld a, [$ff9e] - ld [$ff40], a - call Func_113a - ei - ld a, [$ff44] - cp $90 - jr c, .asm_328 - ld hl, $ff9f - ld c, $41 - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a -.asm_328 - ld a, [$ffa2] - ld [$ffa8], a - ld a, [$ffa9] - ld [$ffaa], a - ld a, [$ffab] - ld [$ffac], a - ld a, [$ffad] - ld [$ffae], a - call ReadJoypad - ld a, [$daa3] - and a - jr nz, .asm_359 - ld a, [hJoypadState] - cp $f - jr nz, .asm_359 - ld a, [hNewlyPressedButtons] - and $f - jr z, .asm_359 - ld hl, [sp+$8] - ld [hl], $c3 - inc hl - ld [hl], $3 - ld a, $1 - ld [$daa3], a -.asm_359 - ld hl, $ffb2 - ld a, [hl] - inc [hl] - and a - jr nz, .asm_365 - ld hl, $ffb3 - inc [hl] -.asm_365 - ld hl, $ffb4 - inc [hl] - ld a, [$d8e1] - and a - call nz, Func_167b - ld a, [$d849] - and a - jr nz, .asm_37d - ld a, [$d85d] - and a - call nz, Func_504 -.asm_37d - ld a, [$d84a] - and a - jr z, .asm_39d - xor a - ld [$d84a], a - ld a, $1 - ld [$d849], a - ld a, $bc - ld [$ff06], a - ld a, $0 - ld [$ff07], a - ld hl, $ffff - set 2, [hl] - ld a, $4 - ld [$ff07], a -.asm_39d - ld hl, $4000 - ld a, [$d917] - and a - jr nz, .asm_3b5 - ld a, [$d803] - rrca - ld [$d803], a - and $1 - jr z, .asm_3b5 - set 3, [hl] - jr .asm_3b7 -.asm_3b5 - res 3, [hl] -.asm_3b7 - ld a, [$d4aa] - and a - call nz, Func_e69 - pop hl - pop de - pop bc - pop af - reti - -INCBIN "baserom.gbc",$3c3,$3ec - $3c3 - -Func_3ec: ; 0x3ec - push af - push bc - push de - push hl - ld a, [$ffb0] - sla a - ld c, a - ld b, $0 - ld hl, PointerTable_408 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Func_3ff: ; 0x3ff - ld a, $1 - ld [$ffb5], a - pop hl - pop de - pop bc - pop af - reti - -PointerTable_408: ; 0x408 - dw Func_fbc - dw Func_fbf - dw Func_fea - dw Func_105d - dw Func_109e - dw Func_10a1 - dw Func_10a4 - dw Func_10a7 - -Func_418: ; 0x418 - ei - push af - push bc - push de - push hl - ld a, [$d849] - and a - jr z, .asm_42a - ld a, [$d85d] - and a - call nz, Func_504 -.asm_42a - ld a, [$d84a] - and a - jr z, .asm_440 - xor a - ld [$d84a], a - ld [$d849], a - ld a, $0 - ld [$ff07], a - ld hl, $ffff - res 2, [hl] -.asm_440 - pop hl - pop de - pop bc - pop af - reti - -Func_445: ; 0x445 - push af - push bc - push de - push hl - ld hl, $045d ; todo - push hl - ld a, [$ffb1] - sla a - ld c, a - ld b, $0 - ld hl, $0462 ; todo - add hl, bc - ld c, [hl] - inc hl - ld b, [hl] - push bc - ret - -INCBIN "baserom.gbc",$45d,$467 - $45d - -Func_467: ; 0x467 - reti - -Func_468: ; 0x468 - ld a, [$ff40] - bit 7, a - ret z - ld hl, $ffb2 - xor a - ld [hl], a -.asm_472 - ld a, [hl] - and a - jr z, .asm_472 - ret - -JumpToFuncInTable: ; 0x477 -; Jumps to a function in the pointer table immediately following -; a "rst $18" call. Function must be in the same Bank as the pointer table. -; input: a = index of function in table - sla a - pop hl - push de - ld e, a - ld d, $0 - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld l, e - ld h, d - pop de - jp [hl] - -Func_486: ; 0x486 - rlca - add l - ld l, a - jr nc, .noCarry - inc h -.noCarry - ld a, [hli] - ld h, [hl] - ld l, a - ret - -PlaySong: ; 0x490 - ld a, [hLoadedROMBank] - push af - ld a, [wCurrentSongBank] - ld [hLoadedROMBank], a - ld [$2000], a - ld a, e - ld [$d7bf], a - ld a, [wCurrentSongBank] - ld [$d7c0], a - call PlaySong_BankF ; this function is replicated in multiple banks. - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -PlaySoundEffect: ; 0x4af -; input: de = sound effect id? I think d specifies something special and e holds the id - ld a, [$dead] - and a - ret nz - ld a, [$d800] - and a - jr z, .asm_4bd - ld a, d - and a - ret z -.asm_4bd - ld a, d - ld [$d800], a - ld d, $0 - ld a, [hLoadedROMBank] - push af - ld a, [wCurrentSongBank] - ld [hLoadedROMBank], a - ld [$2000], a - call PlaySoundEffect_BankF ; this function is replicated in multiple banks - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -Func_4d8: ; 0x4d8 - push bc - push de - push hl - ld a, [$ddcb] - ld hl, $ddfd - or [hl] - ld hl, $de2f - or [hl] - and $1 - call z, PlaySoundEffect - pop hl - pop de - pop bc - ret - -PlayCry: ; 0x4ef -; Plays a Pokemon cry. -; Input: e = mon id - ld a, [hLoadedROMBank] - push af - ld a, [wCurrentSongBank] - ld [hLoadedROMBank], a - ld [$2000], a - call PlayCry_BankF ; this function is replicated in multiple banks - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -Func_504: ; 0x504 - ld a, [hLoadedROMBank] - push af - ld a, [wCurrentSongBank] - ld [hLoadedROMBank], a - ld [$2000], a - call $4180 ; todo - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ld a, [$d801] - inc a - ld [$d801], a - and $3 - ret nz - ld a, [$d800] - and a - ret z - dec a - ld [$d800], a - ret - -SetSongBank: ; 0x52c - di - ld [wCurrentSongBank], a - ei - ret - -CallInFollowingTable: ; 0x532 -; Calls a function in a table located immediately after a call to this function. -; Inputs: a = entry in the table - ld e, a - ld d, $0 - sla e - rl d - sla e - rl d ; multiplied a by 4 because entries in the table are 4 bytes each - pop hl - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld a, [hl] - ld h, d - ld l, e - jp BankSwitch - -BankSwitchSimple: ; 0x549 -; Switches to Bank in register a and jumps to hl. - ld [hLoadedROMBank], a - ld [$2000], a ; Load Bank - jp [hl] - -BankSwitch: ; 0x54f - ld e, a - ld a, [hLoadedROMBank] ; currently-loaded Bank - cp e - jr z, .doJump - push af - ld a, e - call .loadNewBank - call .doJump - pop de - ld a, d -.loadNewBank - push hl - push de - ld hl, $ffff - ld d, [hl] - ld [hl], $0 - ld [$2000], a - ld [hLoadedROMBank], a - ld [hl], d - pop de - pop hl - ret -.doJump - ld a, [$ff8b] - ld e, a - ld a, [$ff8a] - jp [hl] - -Func_576: ; 0x576 - ld a, [$ff40] - bit 7, a - ret z - ld a, [$ff9e] - res 7, a - ld [$ff9e], a -.asm_581 - ld a, [$ff40] - bit 7, a - jr nz, .asm_581 - ret - -Func_588: ; 0x588 - ld a, [$ffc4] - and a - call nz, Func_597 - ld a, [$ff9e] - set 7, a - ld [$ff40], a - ld [$ff9e], a - ret - -Func_597: ; 0x597 - ld de, $ff68 - ld a, $80 - ld [de], a - inc de - ld b, $8 -.asm_5a0 - ld a, [$d80c] - call Func_5c2 - dec b - jr nz, .asm_5a0 - ld de, $ff6a - ld a, $80 - ld [de], a - inc de - ld b, $4 -.asm_5b2 - ld a, [$d80d] - call Func_5c2 - ld a, [$d80e] - call Func_5c2 - dec b - jr nz, .asm_5b2 - ret - -Func_5c2: ; 0x5c2 - push bc - ld b, $4 -.asm_5c5 - push af - push bc - and $3 - sla a - ld c, a - ld b, $0 - ld hl, $05e1 - add hl, bc - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - pop bc - pop af - srl a - srl a - dec b - jr nz, .asm_5c5 - pop bc - ret - -INCBIN "baserom.gbc",$5e1,$5f7 - $5e1 - -WriteDMACodeToHRAM: ; 0x5f7 -; Initializes registers $ff80 - $ff8a - ld c, $80 - ld b, $a ; number of bytes to load - ld hl, DMARoutine -.loop - ld a, [hli] - ld [$ff00+c], a ; add register c to $ff00, and store register a into the resulting address - inc c - dec b - jr nz, .loop - ret - -DMARoutine: -; This routine is initially loaded into $ff80 - $ff8a by WriteDMACodeToHRAM. - ld a, (wOAMBuffer >> 8) - ld [$ff00+$46], a ; start DMA - ld a, $28 -.waitLoop ; wait for DMA to finish - dec a - jr nz, .waitLoop - ret - -WaitForLCD: ; 0x60f -; Wait for LCD controller to stop reading from both OAM and VRAM because -; CPU can't access OAM, VRAM, or palette data ($ff69, $ff6b) during this time. - ld a, [$ff41] ; LCDC Status register - and $3 - jr nz, WaitForLCD - ld a, $a -.delay10Cycles - dec a - jr nz, .delay10Cycles - ret - -Func_61b: ; 0x61b - ld a, [$ff44] ; LY register (LCDC Y-Coordinate) - cp $40 - jr c, .asm_625 - cp $80 - jr c, .asm_63d -.asm_625 - ld a, [$ff44] ; LY register (LCDC Y-Coordinate) - cp $40 - jr c, .asm_625 - cp $80 - jr nc, .asm_625 -.asm_62f - ld a, [$ff41] - and $3 - jr nz, .asm_62f ; wait for lcd controller to finish transferring data - ld a, $15 -.wait - dec a - jr nz, .wait - nop - nop - nop -.asm_63d - ret - -Func_63e: ; 0xc3e - dec bc -.asm_63f - ld [hli], a - dec bc - bit 7, b - jr z, .asm_63f - ret - -INCBIN "baserom.gbc",$646,$654 - $646 - -ClearData: ; 0x654 -; Clears bc bytes starting at hl. -; bc can be a maximum of $7fff, since it checks bit 7 of b when looping. - xor a - dec bc -.clearLoop - ld [hli], a - dec bc - bit 7, b - jr z, .clearLoop - ret - -Func_65d: ; 0x65d - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, c - or b - jr nz, Func_65d - ret - -CopyDataToRAM: ; 0x666 spooky -; Copies data from any bank to either working RAM or video RAM -; Input: hl = address of data to copy -; a = bank of data to copy -; de = destination for data -; bc = number of bytes to copy - bit 7, h - jr nz, .copyToVideoRAM - ld [$fffa], a - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] - ld [hLoadedROMBank], a - ld [$2000], a - scf - jr .copyData -.copyToVideoRAM - ld [$4000], a - and a -.copyData - push af -.copyLoop - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, c - or b - jr nz, .copyLoop - pop af - ret nc - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -ReadByteFromBank: ; 0x68f -; Input: a = bank -; hl = address of byte to read -; Output: a = byte at a:hl - push de - ld d, a - ld a, [hLoadedROMBank] - ld e, a - ld a, d - ld [hLoadedROMBank], a - ld [$2000], a - ld d, [hl] - ld a, e - ld [hLoadedROMBank], a - ld [$2000], a - ld a, d - pop de - ret - -LoadVideoData: ; 0x6a4 -; Input: -; hl = address of pointer table -; a = index of item to load in pointer table -; This needs more documentation. It loads things like graphics and palettes. - sla a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a -.loadItem - ld a, [hli] - ld c, a - and [hl] - cp $ff ; two consecutive $ff bytes terminate the array - ret z - ld a, [hli] - ld b, a ; bc contains pointer to data to be loaded - push hl - push bc - ld a, [hli] ; a contains bank of data to be loaded - ld e, [hl] - inc hl - ld d, [hl] ; de contains destination address for data - inc hl - ld c, [hl] - inc hl - ld b, [hl] ; bc contains last word of data struct - inc hl ; this is a wasted instruction - pop hl - call Func_6cb - pop hl - ld bc, $0005 - add hl, bc - jr .loadItem - -Func_6cb: ; 0x6cb - srl b - rr c - jp c, Func_6fd ; if lowest bit of bc is set - jp Func_6d5 ; This jumps to the next instruction... Strange. - -Func_6d5: ; 0x6d5 - ld [$fffa], a ; save bank of data to be loaded - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] ; a contains bank of data to be loaded - ld [hLoadedROMBank], a - ld [$2000], a ; switch bank to the bank of data to be loaded - srl b - rr c - rl a - and $1 ; checks bit 1 of the last word in the data struct - ld [$ff4f], a ; set VRAM Bank -.copyByte - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, c - or b ; does bc = 0? - jr nz, .copyByte - xor a - ld [$ff4f], a ; set VRAM Bank to Bank 0 - pop af - ld [hLoadedROMBank], a - ld [$2000], a ; reload the previous ROM Bank - ret - -Func_6fd: ; 0x6fd - ld [$fffa], a ; save bank of data to be loaded - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] ; a contains bank of data to be loaded - ld [hLoadedROMBank], a - ld [$2000], a ; switch bank to the bank of data to be loaded - ld a, e - bit 6, a - jr nz, .asm_717 - ld de, $ff68 - call Func_724 - jr z, .asm_71d - xor a -.asm_717 - ld de, $ff6a - call Func_724 -.asm_71d - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -Func_724: ; 0x724 - res 6, a - ld b, a - set 7, a - ld [de], a - inc de -.copyByte - ld a, [hli] - ld [de], a - inc b - dec c - ret z - bit 6, b - jr z, .copyByte - ret - -Func_735: ; 0x735 - push hl - ld hl, $ff40 - bit 7, [hl] - pop hl - jp z, CopyDataToRAM - ; fall through -LoadVRAMData: ; 0x73f -; This loads some data into VRAM. It waits for the LCD H-Blank to copy the data 4 bytes at a time. -; input: hl = source of data -; a = bank of data to load -; de = destination of data -; bc = number of bytes to copy - bit 7, h - jr nz, .asm_752 - ld [$fffa], a - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] - ld [hLoadedROMBank], a - ld [$2000], a - scf - jr .asm_756 -.asm_752 - ld [$4000], a - and a -.asm_756 - push af - call WaitForLCD -.loop - call Func_61b -.waitForHBlank - ld a, [$ff41] - and $3 - jr nz, .waitForHBlank - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - dec bc - dec bc - dec bc - dec bc - nop - nop - nop - nop - ld a, b - or c - jr nz, .loop - pop af - ret nc - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -Func_790: ; 0x790 - push hl - ld hl, $ff40 - bit 7, [hl] - pop hl - jp nz, Func_7dc - bit 7, h - jr nz, .asm_7ad - ld [$fffa], a - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] - ld [hLoadedROMBank], a - ld [$2000], a - scf - jr .asm_7b1 -.asm_7ad - ld [$4000], a - and a -.asm_7b1 - push af - ld a, e - bit 6, e - ld de, $ff68 - jr z, .asm_7bf - res 6, a - ld de, $ff6a -.asm_7bf - set 7, a - ld [de], a - inc de -.asm_7c3 - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - dec bc - dec bc - dec bc - dec bc - ld a, b - or c - jr nz, .asm_7c3 - pop af - ret nc - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -Func_7dc: ; 0x7dc - bit 7, h - jr nz, .asm_7ef - ld [$fffa], a - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] - ld [hLoadedROMBank], a - ld [$2000], a - scf - jr .asm_7f3 -.asm_7ef - ld [$4000], a - and a -.asm_7f3 - push af - ld a, e - bit 6, e - ld de, $ff68 - jr z, .asm_801 - res 6, a - ld de, $ff6a -.asm_801 - push hl - ld h, d - ld l, e - set 7, a - call PutTileInVRAM - inc de - pop hl - call WaitForLCD -.asm_80e - call Func_61b -.asm_811 - ld a, [$ff41] - and $3 - jr nz, .asm_811 - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - dec bc - dec bc - dec bc - dec bc - nop - nop - nop - nop - ld a, b - or c - jr nz, .asm_80e - pop af - ret nc - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -PutTileInVRAM: ; 0x848 -; Puts a tile in VRAM. -; input: a = tile number -; hl = pointer to VRAM location where tile should be placed - push af - call WaitForLCD - call Func_61b -.asm_84f - ld a, [$ff41] - and $3 - jr nz, .asm_84f ; wait for lcd controller to finish transferring data - pop af - ld [hl], a ; Store tile number in VRAM background map - ret - -Func_858: ; 0x858 - push af - call WaitForLCD - call Func_61b -.asm_85f - ld a, [$ff41] - and $3 - jr nz, .asm_85f - ld a, $1 - ld [$ff4f], a - pop af - ld [hl], a - xor a - ld [$ff4f], a - ret - -Func_86f: ; 0x86f - ld [$fffa], a - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] - ld [hLoadedROMBank], a - ld [$2000], a - ld a, [$ff40] - bit 7, a - jr nz, .asm_8ac - ld a, $1 - ld [$ff4f], a - ld b, $4 -.asm_887 - push bc - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld bc, $001a - add hl, bc - pop bc - dec b - jr nz, .asm_887 - xor a - ld [$ff4f], a - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret -.asm_8ac - ld b, $4 -.asm_8ae - push bc - ld a, [de] - call Func_858 - inc hl - inc de - ld a, [de] - call Func_858 - inc hl - inc de - ld a, [de] - call Func_858 - inc hl - inc de - ld a, [de] - call Func_858 - inc hl - inc de - ld a, [de] - call Func_858 - inc hl - inc de - ld a, [de] - call Func_858 - inc de - ld bc, $001b - add hl, bc - pop bc - dec b - jr nz, .asm_8ae - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -Func_8e1: ; 0x8e1 - ld [$fffa], a - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] - ld [hLoadedROMBank], a - ld [$2000], a - ld a, [$ff40] - bit 7, a - jr nz, .asm_902 - ld a, c - ld [hli], a -.asm_8f5 - ld a, [de] - ld [hl], a - inc de - dec b - jr nz, .asm_8f5 - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret -.asm_902 - ld a, c - call PutTileInVRAM - inc hl -.asm_907 - ld a, [de] - call PutTileInVRAM - inc de - dec b - jr nz, .asm_907 - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -ClearOAMBuffer: ; 0x916 -; Clears the OAM buffer by loading $f0 into all of the entries. - ld hl, wOAMBuffer ; 0xd000 - ld b, 4 * 40 ; wOAMBuffer is 4 * 40 bytes long (40 OAM entries, 4 bytes each) - ld a, $f0 ; byte to write -.loop - ld [hli], a - dec b - jr nz, .loop - xor a - ld [$d802], a - ret - -Func_926: ; 0x926 - ld a, [$d802] - cp $a0 - jr nc, .asm_93a - ld l, a - ld h, $d0 - cpl - add $a1 - ld b, a - ld a, $f0 -.asm_936 - ld [hli], a - dec b - jr nz, .asm_936 -.asm_93a - xor a - ld [$d802], a - ret - -Func_93f: ; 0x93f - push bc - rst $10 - pop bc - dec bc - ld a, c - or b - jr nz, Func_93f - ret - -Func_948: ; 0x948 - ld de, $06d6 -.asm_94b - nop - nop - nop - dec de - ld a, d - or e - jr nz, .asm_94b - dec bc - ld a, b - or c - jr nz, Func_948 - ret - -GenRandom: ; 0x959 - push bc - push de - push hl - ld a, [$d811] - ld c, a - ld b, $0 - inc a - cp $37 - jr nz, .asm_96e - call Func_9fa - xor a - ld bc, $0000 -.asm_96e - ld [$d811], a - ld hl, $d812 - add hl, bc - ld a, [hl] - pop hl - pop de - pop bc - ret - -Func_97a: ; 0x97a - ld a, [$d810] - ld d, a - ld a, $0 - ld a, [$afff] -.asm_983 - cp d - jr c, .asm_989 - sub d - jr .asm_983 -.asm_989 - ld [$d80f], a - ld [$d848], a - ld e, $1 - ld hl, $09c4 ; todo - ld a, $36 -.asm_996 - push af - ld c, [hl] - inc hl - ld b, $0 - push hl - ld hl, $d812 - add hl, bc - ld [hl], e - ld a, [$d80f] - sub e - jr nc, .asm_9a8 - add d -.asm_9a8 - ld e, a - ld a, [hl] - ld [$d80f], a - pop hl - pop af - dec a - jr nz, .asm_996 - call Func_9fa - call Func_9fa - call Func_9fa - ld a, $0 - call GenRandom - ld [$afff], a - ret - -INCBIN "baserom.gbc",$9c4,$9fa - $9c4 - -Func_9fa: ; 0x9fa - ld a, [$d810] - ld d, a - ld bc, $d812 - ld hl, $d831 - ld e, $18 -.asm_a06 - ld a, [bc] - sub [hl] - jr nc, .asm_a0b - add d -.asm_a0b - ld [bc], a - dec e - jr nz, .asm_a06 - ld bc, $d82a - ld hl, $d812 - ld e, $1f -.asm_a17 - ld a, [bc] - sub [hl] - jr nc, .asm_a1c - add d -.asm_a1c - ld [bc], a - dec e - jr nz, .asm_a17 - ret - -Func_a21: ; 0xa21 - push bc - push hl - ld c, a - ld b, $0 - ld hl, $0a38 - add hl, bc - ld l, [hl] - call GenRandom - call Func_dd4 - inc h - srl h - ld a, h - pop hl - pop bc - ret - -INCBIN "baserom.gbc",$a38,$ab8 - $a38 - -ReadJoypad: ; 0xab8 -; Reads the current state of the joypad and saves the state into -; some registers the game uses during gameplay. It remembers the joypad state -; from the current frame, previous frame, and two frames ago. - ld a, $20 - ld [$ff00], a - ld a, [$ff00] - ld a, [$ff00] - and $f - swap a - ld b, a - ld a, $30 - ld [$ff00], a - ld a, $10 - ld [$ff00], a - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - and $f - or b - cpl ; a contains currently-pressed buttons - ld [hJoypadState], a - ld a, $30 - ld [$ff00], a - ld a, [hJoypadState] - ld hl, hPreviousJoypadState - xor [hl] ; a contains buttons that are different from previous frame - push af - ld hl, hJoypadState - and [hl] ; a contains newly-pressed buttons compared to last frame - ld [hNewlyPressedButtons], a - ld [hPressedButtons], a - pop af - ld hl, hPreviousJoypadState - and [hl] ; a contains newly-pressed buttons compared to two frames ago - ld [hPrevPreviousJoypadState], a - ld a, [hJoypadState] - and a - jr z, .asm_b15 - ld hl, hPreviousJoypadState - cp [hl] - jr nz, .asm_b15 - ; button(s) is pressed, and they're identical to the buttons pressed last frame. - ; this code is related to holding down a button for an extended period of time. - ld hl, $ff9d - dec [hl] - jr nz, .asm_b1a - ld a, [hJoypadState] - ld [hPressedButtons], a - ld a, [$d807] - ld [$ff9d], a - jr .asm_b1a -.asm_b15 - ld a, [$d806] - ld [$ff9d], a -.asm_b1a - ld a, [hJoypadState] - ld [hPreviousJoypadState], a - ld hl, $d808 - ld a, [hJoypadState] - or [hl] - ld [hli], a - ld a, [hNewlyPressedButtons] - or [hl] - ld [hli], a - ld a, [hPressedButtons] - or [hl] - ld [hli], a - ret - -Func_b2e: ; 0xb2e - ld hl, $d808 - xor a - ld [hli], a - ld [hli], a - ld [hl], a - ret - -IsKeyPressed2: ; 0xb36 - ld a, [hJoypadState] - and [hl] - jr z, .asm_b3e - cp [hl] - jr z, .asm_b48 -.asm_b3e - inc hl - ld a, [hJoypadState] - and [hl] - ret z - cp [hl] - jr z, .asm_b48 - xor a - ret -.asm_b48 - ld a, $1 - and a - ret - -IsKeyPressed: ; 0xb4c -; Checks if a key for the specified key config is pressed. -; input: hl = pointer to key config byte pair (e.g. wKeyConfigLeftFlipper) -; output: zero flag is set if a corresponding key is pressed -; zero flag is reset if no corresponding key is pressed - ld a, [hJoypadState] - and [hl] - jr z, .asm_b58 - cp [hl] - jr nz, .asm_b58 - ld a, [hNewlyPressedButtons] - and [hl] - ret nz -.asm_b58 - inc hl - ld a, [hJoypadState] - and [hl] - ret z - cp [hl] - jr nz, .asm_b64 - ld a, [hNewlyPressedButtons] - and [hl] - ret -.asm_b64 - xor a - ret - -Func_b66: ; 0xb66 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_b73 - xor a - ld [$ffa3], a - ld [$ffa4], a - ld [$ffa5], a - ret -.asm_b73 - ld de, $ff68 - ld hl, $d200 ; todo - ld b, $0 - ld c, $20 -.asm_b7d - ld a, b - ld [$ff68], a - inc b - ld a, [$ff69] - ld [hli], a - ld a, b - ld [$ff68], a - inc b - ld a, [$ff69] - ld [hli], a - dec c - jr nz, .asm_b7d - ld b, $0 - ld c, $20 -.asm_b92 - ld a, b - ld [$ff6a], a - inc b - ld a, [$ff6b] - ld [hli], a - ld a, b - ld [$ff6a], a - inc b - ld a, [$ff6b] - ld [hli], a - dec c - jr nz, .asm_b92 - ld de, $ff68 - ld b, $2 -.asm_ba8 - ld a, $80 - ld [de], a - inc de - ld c, $20 -.asm_bae - ld a, $ff - ld [de], a - ld [hli], a - ld a, $7f - ld [de], a - ld [hli], a - dec c - jr nz, .asm_bae - inc de - dec b - jr nz, .asm_ba8 - ret - -Func_bbe: ; 0xbbe - ld a, [hGameBoyColorFlag] - and a - jp nz, Func_c19 - ld hl, $ffa3 - ld de, $d80c - ld b, $3 -.asm_bcc - ld a, [de] - and $55 - ld c, a - ld a, [de] - and $aa - srl a - and c - ld [hli], a - inc de - dec b - jr nz, .asm_bcc - ld bc, $0002 - call Func_93f - ld hl, $ffa3 - ld de, $d80c - ld b, $3 -.asm_be9 - ld a, [de] - and $aa - srl a - add [hl] - ld [hli], a - inc de - dec b - jr nz, .asm_be9 - ld bc, $0002 - call Func_93f - ld hl, $ffa3 - ld de, $d80c - ld b, $3 -.asm_c02 - ld a, [de] - and $55 - ld c, a - ld a, [de] - and $aa - srl a - or c - add [hl] - ld [hli], a - inc de - dec b - jr nz, .asm_c02 - ld bc, $0002 - call Func_93f - ret - -Func_c19: ; 0xc19 - ld b, $10 -.asm_c1b - push bc - ld de, $d200 - ld hl, $d280 - call Func_c2d - call Func_d61 - pop bc - dec b - jr nz, .asm_c1b - ret - -Func_c2d: ; 0xc2d - ld a, b - cp $1 - jr z, .asm_c49 - ld c, $40 -.asm_c34 - push bc - ld a, [hli] - sub $42 - ld c, a - ld a, [hld] - sbc $8 - ld b, a - call Func_c60 - ld a, c - ld [hli], a - ld a, b - ld [hli], a - pop bc - dec c - jr nz, .asm_c34 - ret -.asm_c49 - ld c, $40 -.asm_c4b - push bc - ld a, [hli] - sub $21 - ld c, a - ld a, [hld] - sbc $4 - ld b, a - call Func_c60 - ld a, c - ld [hli], a - ld a, b - ld [hli], a - pop bc - dec c - jr nz, .asm_c4b - ret - -Func_c60: ; 0xc60 - push hl - ld a, [de] - and $1f - ld l, a - ld a, c - and $1f - cp l - jr nc, .asm_c70 - ld a, c - and $e0 - or l - ld c, a -.asm_c70 - ld a, [de] - and $e0 - ld l, a - inc de - ld a, [de] - srl a - rr l - srl a - rr l - ld a, c - and $e0 - ld h, a - ld a, b - srl a - rr h - srl a - rr h - ld a, h - cp l - jr nc, .asm_ca3 - ld h, $0 - sla l - rl h - sla l - rl h - ld a, c - and $1f - or l - ld c, a - ld a, b - and $7c - or h - ld b, a -.asm_ca3 - ld a, [de] - and $7c - ld l, a - ld a, b - and $7c - cp l - jr nc, .asm_cb2 - ld a, b - and $3 - or l - ld b, a -.asm_cb2 - inc de - pop hl - ret - -Func_cb5: ; 0xcb5 - ld a, [hGameBoyColorFlag] - and a - jp nz, Func_cee - ld hl, $ffa3 - ld b, $3 -.asm_cc0 - push bc - push hl - ld b, $3 -.asm_cc4 - ld a, [hl] - and $55 - ld c, a - ld a, [hl] - and $aa - srl a - or c - cpl - inc a - add [hl] - ld [hli], a - dec b - jr nz, .asm_cc4 - ld bc, $0002 - call Func_93f - pop hl - pop bc - dec b - jr nz, .asm_cc0 - xor a - ld hl, $ffa3 - ld [hli], a - ld [hli], a - ld [hl], a - ld bc, $0002 - call Func_93f - ret - -Func_cee: ; 0xcee - ld hl, $d280 - ld de, $ff68 - call Func_d9d - ld hl, $d2c0 - ld de, $ff6a - call Func_d9d - ld b, $10 -.asm_d02 - push bc - ld hl, $d280 - call Func_d11 - call Func_d61 - pop bc - dec b - jr nz, .asm_d02 - ret - -Func_d11: ; 0xd11 - ld b, $40 -.asm_d13 - ld a, [hl] - and $1f - add $2 - ld e, a - cp $1f - jr c, .asm_d1f - ld e, $1f -.asm_d1f - ld a, [hl] - and $e0 - or e - ld [hl], a - ld a, [hli] - and $e0 - ld e, [hl] - dec hl - srl e - rr a - srl e - rr a - add $10 - ld e, a - jr nc, .asm_d38 - ld e, $f8 -.asm_d38 - ld d, $0 - sla e - rl d - sla e - rl d - ld a, [hl] - and $1f - or e - ld [hli], a - ld a, [hl] - and $7c - or d - ld [hl], a - ld a, [hl] - and $7c - add $8 - ld e, a - cp $7c - jr c, .asm_d58 - ld e, $7c -.asm_d58 - ld a, [hl] - and $3 - or e - ld [hli], a - dec b - jr nz, .asm_d13 - ret - -Func_d61: ; 0d61 - ld a, [$ffff] - res 0, a - ld [$ffff], a - ld hl, $d280 - ld de, $ff68 - ld a, $80 - ld [de], a - inc de -.asm_d71 - ld a, [$ff44] - cp $90 - jr c, .asm_d71 - ld b, $10 -.asm_d79 - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - dec b - jr nz, .asm_d79 - inc de - ld a, $80 - ld [de], a - inc de - ld b, $10 -.asm_d8b - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - dec b - jr nz, .asm_d8b - ld a, [$ffff] - set 0, a - ld [$ffff], a - ret - -Func_d9d: ; 0xd9d - ld b, $0 - ld c, e - inc c - call WaitForLCD -.asm_da4 - call Func_61b -.asm_da7 - ld a, [$ff41] - and $3 - jr nz, .asm_da7 ; wait for lcd controller to finish transferring data - ld a, b - ld [de], a - ld a, [$ff00+c] - ld [hli], a - inc b - ld a, b - ld [de], a - ld a, [$ff00+c] - ld [hli], a - inc b - ld a, b - ld [de], a - ld a, [$ff00+c] - ld [hli], a - inc b - ld a, b - ld [de], a - ld a, [$ff00+c] - ld [hli], a - inc b - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - nop - ld a, b - cp $40 - jr nz, .asm_da4 - ret - -Func_dd4: ; 0xdd4 - push bc - ld c, l - ld b, $0 - ld hl, $0000 - bit 0, a - jr z, .asm_de0 - add hl, bc -.asm_de0 - sla c - rl b - bit 1, a - jr z, .asm_de9 - add hl, bc -.asm_de9 - sla c - rl b - bit 2, a - jr z, .asm_df2 - add hl, bc -.asm_df2 - sla c - rl b - bit 3, a - jr z, .asm_dfb - add hl, bc -.asm_dfb - sla c - rl b - bit 4, a - jr z, .asm_e04 - add hl, bc -.asm_e04 - sla c - rl b - bit 5, a - jr z, .asm_e0d - add hl, bc -.asm_e0d - sla c - rl b - bit 6, a - jr z, .asm_e16 - add hl, bc -.asm_e16 - sla c - rl b - bit 7, a - jr z, .asm_e1f - add hl, bc -.asm_e1f - pop bc - ret - -ConvertHexByteToDecWord: ; 0xe21 -; Convert the base-16 value in register a into a Binary Coded Decimal (base-10) word. -; Example: If a = $97, de = $0151. - ld b, a - ld hl, $0e3a ; todo - ld de, $0000 -.asm_e28 - srl b - ld a, [hli] - jr nc, .asm_e34 - add e - daa - ld e, a - ld a, [hl] - adc d - daa - ld d, a -.asm_e34 - inc hl - ld a, b - and a - jr nz, .asm_e28 - ret - -PowersOfTwo: ; 0xe3a - dw $0001 - dw $0002 - dw $0004 - dw $0008 - dw $0016 - dw $0032 - dw $0064 - dw $0128 - -Func_e4a: ; 0xe4a - ld a, [hl] - cp $64 - jr z, .asm_e53 - inc a - ld [hl], a - scf - ret -.asm_e53 - and a - ret - -Func_e55: ; 0xe55 - cp c - jr c, .asm_e5b - sub c - jr Func_e55 -.asm_e5b - and a - ret - -Func_e5d: ; 0xe5d - ld a, $1 - ld [$d84a], a -.asm_e62 - ld a, [$d84a] - and a - jr nz, .asm_e62 - ret - -Func_e69: ; 0xe69 - ld a, [$ff44] - cp $90 - jr nc, Func_e69 -.asm_e6f - ld a, [$ff41] - and $3 - jr nz, .asm_e6f - ld a, $a -.asm_e77 - dec a - jr nz, .asm_e77 - ld hl, $c640 - call Func_eef - push hl - ld hl, $9c00 - call Func_ef8 - pop hl - call Func_eef - push hl - ld hl, $9c04 - call Func_ef8 - pop hl - call Func_eef - push hl - ld hl, $9c08 - call Func_ef8 - pop hl - call Func_eef - push hl - ld hl, $9c0c - call Func_ef8 - pop hl - call Func_eef - push hl - ld hl, $9c10 - call Func_ef8 - pop hl - ld hl, $c6c0 - call Func_eef - push hl - ld hl, $9c20 - call Func_ef8 - pop hl - call Func_eef - push hl - ld hl, $9c24 - call Func_ef8 - pop hl - call Func_eef - push hl - ld hl, $9c28 - call Func_ef8 - pop hl - call Func_eef - push hl - ld hl, $9c2c - call Func_ef8 - pop hl - call Func_eef - push hl - ld hl, $9c30 - call Func_ef8 - pop hl - ret - -Func_eef: ; 0xeef - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - ld a, [hli] - ld d, a - ld a, [hli] - ld e, a - ret - -Func_ef8: ; 0xef8 - ld a, [$ff41] - and $3 - jr nz, Func_ef8 - ld a, b - ld [hli], a - ld a, c - ld [hli], a - ld a, d - ld [hli], a - ld a, e - ld [hli], a - ld a, $a -.asm_f08 - dec a - jr nz, .asm_f08 - ret - -Func_f0c: ; 0xf0c - call Func_f34 - ret nc -.asm_f10 - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_f10 - scf - ret - -SaveData: ; 0xf1a -; Input: hl = data to save -; bc = number of bytes to save -; de = destination for saved data - push bc - push de - push hl -.asm_f1d - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_f1d - pop hl - pop de - pop bc - ld h, d - ld l, e - call Func_f74 - call Func_fa1 - call Func_f4c - ret - -Func_f34: ; 0xf34 - call Func_f62 - jr nc, .asm_f3f - call Func_f7e - jr nc, .asm_f3f - ret -.asm_f3f - add hl, bc - inc hl - inc hl - inc hl - inc hl - call Func_f62 - ret nc - call Func_f7e - ret - -Func_f4c: ; 0xf4c - push bc - push hl - push de - inc bc - inc bc - inc bc - inc bc - ld d, h - ld e, l - add hl, bc -.asm_f56 - ld a, [de] - ld [hli], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_f56 - pop de - pop hl - pop bc - ret - -Func_f62: ; 0xf62 - push hl - add hl, bc - ld a, [hli] - cp $4e - jr nz, .asm_f71 - ld a, [hl] - cp $54 - jr nz, .asm_f71 - scf - jr .asm_f72 -.asm_f71 - and a -.asm_f72 - pop hl - ret - -Func_f74: ; 0xf74 - push hl - add hl, bc - ld a, $4e - ld [hli], a - ld a, $54 - ld [hl], a - pop hl - ret - -Func_f7e: ; 0xf7e - push bc - push de - push hl - inc bc - inc bc - ld de, $0000 -.asm_f86 - ld a, [hli] - add e - ld e, a - jr nc, .asm_f8c - inc d -.asm_f8c - dec bc - ld a, b - or c - jr nz, .asm_f86 - ld a, [hli] - cp e - jr nz, .asm_f9c - ld a, [hl] - cp d - jr nz, .asm_f9c - scf - jr .asm_f9d -.asm_f9c - and a -.asm_f9d - pop hl - pop de - pop bc - ret - -Func_fa1: ; 0xfa1 - push bc - push de - push hl - inc bc - inc bc - ld de, $0000 -.asm_fa9 - ld a, [hli] - add e - ld e, a - jr nc, .asm_faf - inc d -.asm_faf - dec bc - ld a, b - or c - jr nz, .asm_fa9 - ld a, e - ld [hli], a - ld a, d - ld [hl], a - pop hl - pop de - pop bc - ret - -Func_fbc: ; 0xfbc - jp Func_3ff - -Func_fbf: ; 0xfbf - ld hl, $ffa8 - ld c, [hl] - ld a, [$ff44] - cp c - jp c, Func_3ff - inc c - inc c - cp c - jp nc, Func_3ff - ld a, [$ffaf] - ld c, a - ld a, [$ff9e] - xor $10 - and c - ld c, a - ld hl, $ff41 -.asm_fdb - ld a, [hl] - and $3 - jr nz, .asm_fdb - ld a, [$ff40] - and $80 - or c - ld [$ff40], a - jp Func_3ff - -Func_fea: ; 0xfea - ld hl, $ffa8 - ld a, [$ffaa] - cp [hl] - jr nz, .asm_1015 - ld a, [$ff44] - cp [hl] - jp nz, Func_3ff - ld a, [$ff9e] - xor $18 - ld c, a - ld a, [$ffac] - ld b, a - ld hl, $ff41 -.asm_1003 - ld a, [hl] - and $3 - jr nz, .asm_1003 - ld a, [$ff40] - and $80 - or c - ld [$ff40], a - ld a, b - ld [$ff42], a - jp Func_3ff -.asm_1015 - ld a, [$ff44] - cp [hl] - jr nz, .asm_1037 - ld a, [$ffa8] - ld hl, $ffaa - sub [hl] - add $40 - ld c, a - ld a, [$ffaa] - ld b, a - ld hl, $ff41 -.asm_1029 - ld a, [hl] - and $3 - jr nz, .asm_1029 - ld a, c - ld [$ff42], a - ld a, b - ld [$ff45], a - jp Func_3ff -.asm_1037 - ld hl, $ffaa - ld a, [$ff44] - cp [hl] - jp nz, Func_3ff - ld a, [$ff9e] - xor $18 - ld c, a - ld a, [$ffac] - ld b, a - ld hl, $ff41 -.asm_104b - ld a, [hl] - and $3 - jr nz, .asm_104b - ld a, [$ff40] - and $80 - or c - ld [$ff40], a - ld a, b - ld [$ff42], a - jp Func_3ff - -Func_105d: ; 0x105d - ld hl, $ffa8 - ld a, [$ff44] - cp [hl] - jr z, .asm_1069 - dec a - cp [hl] - jr nz, .asm_1080 -.asm_1069 - ld a, [$ffaa] - ld c, a - ld a, [$ffac] - ld b, a - ld hl, $ff41 -.asm_1072 - ld a, [hl] - and $3 - jr nz, .asm_1072 - ld a, b - ld [$ff42], a - ld a, c - ld [$ff45], a - jp Func_3ff -.asm_1080 - ld hl, $ffaa - ld a, [$ff44] - cp [hl] - jr z, .asm_108d - dec a - cp [hl] - jp nz, Func_3ff -.asm_108d - ld a, [$ffae] - ld b, a - ld hl, $ff41 -.asm_1093 - ld a, [hl] - and $3 - jr nz, .asm_1093 - ld a, b - ld [$ff42], a - jp Func_3ff - -Func_109e: ; 0x109e - jp Func_3ff - -Func_10a1: ; 0x10a1 - jp Func_3ff - -Func_10a4: ; 0x10a4 - jp Func_3ff - -Func_10a7: ; 0x10a7 - jp Func_3ff - -Func_10aa: ; 0x10aa - ld c, a - ld a, [hli] - ld b, a -.asm_10ad - push bc - ld a, c - ld c, [hl] - inc hl - ld b, [hl] - inc hl - push af - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - pop af - push hl - call Func_10c5 - pop hl - pop bc - dec b - jr nz, .asm_10ad - ret - -Func_10c5: ; 0x10c5 - push af - ld a, [$ff40] - bit 7, a - jr z, .asm_10d2 -.asm_10cc - ld a, [$ff44] - cp $88 - jr nc, .asm_10cc -.asm_10d2 - pop af - ld hl, $d7fb - ld l, [hl] - ld h, $cb - inc bc - ld [hl], c - inc h - ld [hl], b - inc h - ld [hl], a - inc h - ld [hl], e - inc h - ld [hl], d - ld e, $ff - ld [$fffa], a - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] - ld [hLoadedROMBank], a - ld [$2000], a - dec bc - ld a, [bc] - ld hl, $d7fa - add [hl] - cp $30 - jr c, .asm_10fe - ld a, [bc] - ld e, $0 -.asm_10fe - add $4 - ld [hl], a - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ld hl, $d7fb - ld l, [hl] - ld h, $ca - inc l - ld [hl], $0 - dec l - ld [hl], e - ld hl, $d7fb - inc [hl] - ld a, [$ff40] - bit 7, a - ret nz - ld a, [$ffff] - push af - res 0, a - ld [$ffff], a - call Func_113a - pop af - ld [$ffff], a - ret - -Func_1129: ; 0x1129 - ld a, [$d7fb] - ld [$d7fc], a - ret - -Func_1130: ; 0x1130 - push hl - ld a, [$d7fb] - ld hl, $d7fc - cp [hl] - pop hl - ret - -Func_113a: ; 0x113a - ld hl, $d7fc - ld a, [$d7fb] - cp [hl] - ret z - ld l, [hl] - ld h, $ca - ld [hl], $ff -.loop - ld a, [hl] - and a - jr z, .done - push hl - inc h - ld e, [hl] - inc h - ld d, [hl] - inc h - ld a, [hLoadedROMBank] - push af - ld a, [hl] - ld [hLoadedROMBank], a - ld [$2000], a - inc h - ld a, [hl] - inc h - ld h, [hl] - ld l, a - call Func_117a - pop af - ld [hLoadedROMBank], a - ld [$2000], a - pop hl - inc l - jr .loop -.done - ld a, l - ld [$d7fc], a - ld hl, $d7fb - cp [hl] - ret nz - xor a - ld [$d7fa], a - ret - -Func_117a: ; 0x117a - jp [hl] - -LoadTileLists: ; 0x117b -; Loads a series of defined tile ids into VRAM -; input: de = pointer to data structure -; data structure: list of VRAM tile data with the following format -; [num tiles][destination pointer][list of tile ids] - ld h, d - ld l, e -.loadTileSequence - ld a, [hli] - and a - ret z - ld b, a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a ; de = destination for tile data -.loadTileData - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .loadTileData - jr .loadTileSequence - -Func_118d: ; 0x118d - ld a, $1 - ld [$ff4f], a - call LoadTileLists - xor a - ld [$ff4f], a - ret - -INCBIN "baserom.gbc",$1198,$12a1 - $1198 - -Func_12a1: ; 0x12a1 - ld [$fffa], a - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] - ld [hLoadedROMBank], a - ld [$2000], a - ld a, [hl] - and $7 - jr z, .asm_12e5 - ld b, a - ld c, $0 -.asm_12b5 - push bc - ld a, $0 - ld [$ff00+c], a - ld a, $30 - ld [$ff00+c], a - ld b, $10 -.asm_12be - ld e, $8 - ld a, [hli] - ld d, a -.asm_12c2 - bit 0, d - ld a, $10 - jr nz, .asm_12ca - ld a, $20 -.asm_12ca - ld [$ff00+c], a - ld a, $30 - ld [$ff00+c], a - rr d - dec e - jr nz, .asm_12c2 - dec b - jr nz, .asm_12be - ld a, $20 - ld [$ff00+c], a - ld a, $30 - ld [$ff00+c], a - pop bc - dec b - jr z, .asm_12e5 - call Func_12ec - jr .asm_12b5 -.asm_12e5 - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -Func_12ec ; 0x12ec - ld de, $1b58 -.asm_12ef - nop - nop - nop - dec de - ld a, d - or e - jr nz, .asm_12ef - ret - -Func_12f8: ; 0x12f8 - ld a, $e - ld hl, $4010 ; todo - call Func_12a1 - call Func_12ec - ld a, [$ff00] - and $3 - cp $3 - jr nz, .asm_1346 - ld a, $20 - ld [$ff00], a - ld a, [$ff00] - ld a, [$ff00] - ld a, $30 - ld [$ff00], a - ld a, $10 - ld [$ff00], a - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - ld a, $30 - ld [$ff00], a - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - ld a, [$ff00] - and $3 - cp $3 - jr nz, .asm_1346 - ld a, $e - ld hl, $4000 - call Func_12a1 - call Func_12ec - and a - ret -.asm_1346 - ld a, $e - ld hl, $4000 - call Func_12a1 - call Func_12ec - scf - ret - -Func_1353: ; 0x1353 - ld [$fffa], a - ld a, [hLoadedROMBank] - push af - ld a, [$fffa] - ld [hLoadedROMBank], a - ld [$2000], a - push af - push hl - ld a, $e4 - ld [$ff47], a - ld de, $0010 - add hl, de - ld de, vTiles1 ; tiles - call Func_65d - ld hl, vBGMap0 ; bgmap - ld de, $000c - ld a, $80 - ld c, $d -.asm_1379 - ld b, $14 -.asm_137b - ld [hli], a - inc a - dec b - jr nz, .asm_137b - add hl, de - dec c - jr nz, .asm_1379 - ld a, $81 - ld [$ff40], a - ld bc, $0005 - call Func_948 - pop hl - pop af - call Func_12a1 - ld bc, $0006 - call Func_948 - ld a, [$ffa3] - ld [$ff47], a - ld a, [$ff9e] - ld [$ff40], a - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -Func_13a8: ; 0x13a8 - ld a, [$fffb] - and a - ret z - ld bc, $0078 - call Func_948 - call Func_1489 - ld a, $e - ld hl, $69e6 - call Func_12a1 - ld bc, $0004 - call Func_948 - ld a, $e - ld hl, $69f6 - call Func_12a1 - ld bc, $0004 - call Func_948 - ld a, $e - ld hl, $6a06 - call Func_12a1 - ld bc, $0004 - call Func_948 - ld a, $e - ld hl, $6a16 - call Func_12a1 - ld bc, $0004 - call Func_948 - ld a, $e - ld hl, $6a26 - call Func_12a1 - ld bc, $0004 - call Func_948 - ld a, $e - ld hl, $6a36 - call Func_12a1 - ld bc, $0004 - call Func_948 - ld a, $e - ld hl, $6a46 - call Func_12a1 - ld bc, $0004 - call Func_948 - ld a, $e - ld hl, $6a56 - call Func_12a1 - ld bc, $0004 - call Func_948 - ld bc, $1000 - ld a, $e - ld hl, $4156 ; todo - call Func_1353 - ld bc, $0004 - call Func_948 - ld bc, $1000 - ld a, $e - ld hl, $5166 ; todo - call Func_1353 - ld bc, $0004 - call Func_948 - ld bc, $0860 - ld a, $e - ld hl, $6176 ; todo - call Func_1353 - ld bc, $0004 - call Func_948 - ld bc, $00a0 - ld a, $e - ld hl, $40a6 ; todo - call Func_1353 - ld bc, $0004 - call Func_948 - ld bc, $005a - ld a, $e - ld hl, $4030 - call Func_1353 - ld bc, $0004 - call Func_948 - ld a, $e - ld hl, $4020 - call Func_12a1 - ld bc, $0004 - call Func_948 - ret - -Func_1489: ; 0x1489 - ld a, [$fffb] - and a - ret z - ld a, [$fffc] - and a - ret nz - ld a, $e - ld hl, $6a66 ; todo - call Func_12a1 - ld bc, $0004 - call Func_948 - ld a, $ff - ld [$fffc], a - ret - -Func_14a4: ; 0x14a4 - ld a, [$fffb] - and a - ret z - ld bc, $0002 - call Func_948 - ld a, [$fffc] - and a - ret z - ld a, $e - ld hl, $6a76 - call Func_12a1 - ld bc, $0004 - call Func_948 - xor a - ld [$fffc], a - ret - -INCBIN "baserom.gbc",$14c4,$167b - $14c4 - -Func_167b: ; 0x167b - ld a, [$d8ad] - cp $1 - ret nz - ld a, [$d8c7] - cp $ff - ret z - ld a, [$d8db] - and a - ret nz - ld hl, $d8e0 - inc [hl] - ld a, [hl] - cp $6 - ret c - xor a - ld [hl], a - ld [$d8e2], a - call Func_18ac - ret - -INCBIN "baserom.gbc",$169d,$16a2 - $169d - -Func_16a2: ; 0x16a2 - xor a - ld [$ff01], a - ld [$ff02], a - ld [$d8ad], a - dec a - ld [$d8c7], a - ld [$d8c8], a - call Func_16b5 - ret - -Func_16b5: ; 0x16b5 - xor a - ld [$d8c5], a - ld [$d8ca], a - ld [$d8db], a - ; fall through -Func_16bf: ; 0x16bf - xor a - ld [$d8af], a - ld [$d8b0], a - ld [$d8b1], a - ld [$d8b2], a - ld [$d8c6], a - ld [$d8c3], a - ld [$d8c4], a - ld [$d8b9], a - ld [$d8ba], a - ld [$d8dc], a - ld [$d8e2], a - ret - -Func_16e2: ; 0x16e2 - ld a, [$d8db] - and a - jr z, .asm_16ec - call Func_16fd - ret nc -.asm_16ec - ld a, [$d8ae] - cp $1 - jr nz, .asm_16f7 - call Func_16fd - ret nc -.asm_16f7 - call Func_1925 - jp Func_19e5 - -Func_16fd: ; 0x16fd - ld a, [$d8c5] - cp $2 - jr nz, .asm_173c - xor a - ld [$d8e0], a - ld [$d8ae], a - inc a - ld [$d8ad], a - ld a, [$d8c7] - cp $ff - jr z, .asm_1735 - bit 0, a - jr nz, .asm_172e - bit 1, a - jr nz, .asm_172e - bit 4, a - jr z, .asm_173a - xor a - ld [$d8ad], a - ld [$d8ae], a - ld a, [$d8c7] - jr .asm_173a -.asm_172e - scf - ret - - xor a - ld [$d8ae], a - dec a -.asm_1735 - inc a - ld [$d8ad], a - dec a -.asm_173a - and a - ret -.asm_173c - xor a - ld a, $f0 - ret - -Func_1740: ; 0x1740 - ld a, [$d8ad] - cp $1 - jr z, .asm_1752 - cp $2 - jr z, .asm_1752 - and a - ld a, $ff - ret z -.asm_174f - ld a, $f0 - ret -.asm_1752 - ld a, [$d8e2] - and a - jr nz, .asm_174f - ld a, [$d8db] - and a - jr z, .asm_1762 - call Func_16fd - ret nc -.asm_1762 - ld a, [$d8ae] - cp $2 - jr nz, .asm_176d - call Func_16fd - ret nc -.asm_176d - ld a, [$d8c7] - cp $ff - ret z - call Func_1932 - jp Func_19e5 - -Func_1779: ; 0x1779 - ld c, a - ld a, [$d8ad] - and a - ld a, [$d8c7] - ret z - ld a, [$d8ad] - cp $1 - jr z, .asm_1790 - cp $3 - jr z, .asm_1790 - ld a, $f0 - ret -.asm_1790 - ld a, [$d8db] - and a - jr nz, .asm_17df - ld a, c - inc a - ld [$d8de], a - ld a, l - ld [$d8c1], a - ld a, h - ld [$d8c2], a - ld a, [$d8c7] - cp $ff - ret z - ld a, [$d8ab] - ld [$d8ac], a - and a - jr z, .asm_17d6 - ld a, [$d8de] - dec a - dec a - push af - ld c, a - ld b, $0 - push hl - ld hl, $d89d - add hl, bc - ld a, [hl] - pop hl - ld [$d8ac], a - pop af - add a - ld c, a - ld b, $0 - push hl - ld hl, $d88b - add hl, bc - ld a, [hli] - ld b, [hl] - pop hl - ld c, a - jp .asm_17d9 -.asm_17d6 - ld bc, $0280 -.asm_17d9 - call Func_1989 - jp Func_19e5 -.asm_17df - ld a, [$d8c5] - cp $2 - ld a, $f0 - jp nz, .asm_1869 - ld hl, $d8de - ld a, [$d8c7] - bit 4, a - jp nz, .asm_1859 - bit 1, a - jp nz, .asm_1804 - bit 0, a - jp nz, .asm_1804 - dec [hl] - ld a, [$d8c7] - jr z, .asm_1860 -.asm_1804 - ld a, [hl] - cp $1 - jr z, .asm_186a - ld bc, $0280 - ld a, [$d8ab] - ld [$d8ac], a - and a - jr z, .asm_1836 - ld a, [$d8de] - dec a - dec a - push af - ld c, a - ld b, $0 - push hl - ld hl, $d89d - add hl, bc - ld a, [hl] - pop hl - ld [$d8ac], a - pop af - add a - ld c, a - ld b, $0 - push hl - ld hl, $d88b - add hl, bc - ld a, [hli] - ld b, [hl] - pop hl - ld c, a -.asm_1836 - ld a, [$d8c7] - bit 1, a - jp nz, .asm_184e - ld a, [$d8bf] - add $80 - ld [$d8bf], a - ld a, [$d8c0] - adc $2 - ld [$d8c0], a -.asm_184e - ld a, [$d8bf] - ld l, a - ld a, [$d8c0] - ld h, a - jp .asm_17d9 -.asm_1859 - push af - ld a, $1 - ld [$d8dc], a - pop af -.asm_1860 - push af - xor a - ld [$d8cc], a - ld [$d8db], a - pop af -.asm_1869 - ret -.asm_186a - ld a, [$d8dd] - and a - ld a, [$d8c7] - jr z, .asm_1860 - call Func_19d7 - jp Func_19e5 - -INCBIN "baserom.gbc",$1879,$18ac - $1879 - -Func_18ac: ; 0x18ac - ld a, [$d8ad] - cp $1 - jr z, .asm_18be - cp $3 - jr z, .asm_18be - and a - ld a, $ff - ret z - ld a, $f0 - ret -.asm_18be - ld a, [$d8db] - and a - jr z, .asm_18c8 - call Func_16fd - ret nc -.asm_18c8 - ld a, [$d8c7] - cp $ff - ret z - call Func_19ca - jp Func_19e5 - -Func_18d4: ; 0x18d4 - ld [$d8cb], a - ld a, d - ld [$d8cc], a - ld a, l - ld [$d8bb], a - ld [$d8bd], a - ld a, h - ld [$d8bc], a - ld [$d8be], a - ld a, c - ld [$d8b3], a - ld [$d8b5], a - ld a, b - ld [$d8b4], a - ld [$d8b6], a - xor a - ld [$d8c5], a - call Func_16bf - ret - -INCBIN "baserom.gbc",$18ff,$1925 - $18ff - -Func_1925: ; 0x1925 - ld a, $1 - ld d, $0 - ld hl, $1901 ; todo - ld bc, $0008 - jp Func_18d4 - -Func_1932: ; 0x19332 - ld a, $2 - ld d, $0 - ld hl, $d8cd - ld bc, $000c - call Func_18d4 - ld hl, $1909 - ld de, $d8cd - ld bc, $0004 - call Func_65d - ld de, $0006 - ld a, [$d8a8] - ld [$d8d1], a - call Func_1982 - ld a, [$d8a9] - ld [$d8d2], a - call Func_1982 - ld a, [$d8aa] - ld [$d8d3], a - call Func_1982 - ld a, [$d8a7] - ld [$d8d4], a - call Func_1982 - ld a, e - ld [$d8d5], a - ld a, d - ld [$d8d6], a - xor a - ld [$d8d7], a - ld [$d8d8], a - ret - -Func_1982: ; 0x1982 - add e - ld e, a - ld a, d - adc $0 - ld d, a - ret - -Func_1989: ; 0x1989 - ld a, l - ld [$d8bf], a - ld a, h - ld [$d8c0], a - ld a, c - ld [$d8b7], a - ld a, b - ld [$d8b8], a - push bc - ld a, $3 - ld d, $1 - ld hl, $d8cd - ld bc, $0004 - call Func_18d4 - ld a, [$190d] - ld [$d8cd], a - ld a, [$d8ac] - ld [$d8ce], a - pop bc - ld a, c - ld [$d8cf], a - ld a, b - ld [$d8d0], a - ret - -INCBIN "baserom.gbc",$19bd,$19ca - $19bd - -Func_19ca: ; 0x19ca - ld a, $5 - ld d, $0 - ld hl, $191d ; todo - ld bc, $0008 - jp Func_18d4 - -Func_19d7: ; 0x19d7 - ld a, $6 - ld d, $1 - ld hl, $190d ; todo - ld bc, $0008 - jp Func_18d4 - -INCBIN "baserom.gbc",$19e4,$19e5 - $19e4 - -Func_19e5: ; 0x19e5 - ld a, [$d8ad] - cp $1 - jr z, .asm_19f8 - and a - jr nz, .asm_19f6 - ld a, [$d8cb] - cp $1 - jr z, .asm_1a02 -.asm_19f6 - scf - ret -.asm_19f8 - ld a, [$d8cb] - cp $1 - jr z, .asm_19f6 - ld [$d8ad], a -.asm_1a02 - xor a - ld [$d8c5], a - ld [$d8ae], a - ld a, $1 - ld [$d8b9], a - ld [$d8db], a - ld a, [$18ff] - ld [$ff01], a - ld a, $1 - ld [$ff02], a - ld a, $81 - ld [$ff02], a - ld a, $f0 - ret - -Func_1a21: ; 0x1a21 - call Func_1a59 - call Func_1a89 - jr c, .asm_1a3f -.asm_1a29 - call Func_1aa9 - call Func_1b3d - jr c, .asm_1a3f - ld a, [$d86c] - and a - jr z, .asm_1a29 - call Func_1b60 - jr c, .asm_1a3f - call Func_1b88 -.asm_1a3f - call Func_1ba7 - ret - -Func_1a43: ; 0x1a43 - xor a - ld [$d86e], a - call Func_1a59 - call Func_1a89 - jr c, .asm_1a54 - ld a, $1 - ld [$d86e], a -.asm_1a54 - call Func_1ba7 - ret - - ret ; unused instruction? - -Func_1a59: ; 0x1a59 - ld [$d86a], a - ld a, h - ld [$d869], a - ld a, l - ld [$d868], a - ld a, $80 - ld [$d866], a - ld a, $c2 - ld [$d867], a - xor a - ld [$d86b], a - ld [$d86c], a - ld [$d86d], a - call Func_16a2 - ld hl, $ffff - set 3, [hl] - xor a - ld [$ffb1], a - ld a, $1 - ld [$d8e1], a - ret - -Func_1a89: ; 0x1a89 - call Func_16e2 - cp $f0 - jr z, .asm_1a9f - cp $ff - jp z, Func_1bb2 - ld a, [$d8c8] - cp $81 - jp nz, Func_1bb2 - and a - ret -.asm_1a9f - ld a, [hNewlyPressedButtons] - bit 1, a - jp nz, Func_1bd3 - rst $10 - jr Func_1a89 - -Func_1aa9: ; 0x1aa9 - ld a, [$d866] - ld l, a - ld a, [$d867] - ld h, a - ld de, wc000 - ld b, $2 -.asm_1ab6 - ld c, $14 -.asm_1ab8 - ld a, [hli] - call Func_1ae2 - dec c - jr nz, .asm_1ab8 - ld a, l - add $c - ld l, a - jr nc, .asm_1ac6 - inc h -.asm_1ac6 - dec b - jr nz, .asm_1ab6 - ld a, l - ld [$d866], a - ld a, h - ld [$d867], a - ld a, [$d86b] - inc a - ld [$d86b], a - cp $9 - jr nz, .asm_1ae1 - ld a, $1 - ld [$d86c], a -.asm_1ae1 - ret - -Func_1ae2: ; 0x1ae2 - push bc - push hl - xor $80 - swap a - ld c, a - and $f - ld b, a - ld a, c - and $f0 - ld c, a - ld a, [$d868] - ld l, a - ld a, [$d869] - ld h, a - add hl, bc - ld a, [hLoadedROMBank] - push af - ld a, [$d86a] - ld [hLoadedROMBank], a - ld [$2000], a - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc e - ld a, [hli] - ld [de], a - inc de - pop af - ld [hLoadedROMBank], a - ld [$2000], a - pop hl - pop bc - ret - -Func_1b3d: ; 0x1b3d - ld a, [$d86c] - ld [$d8dd], a - ld hl, wc000 - ld a, $1 - call Func_1779 - cp $ff - jp z, Func_1bb2 - cp $f0 - jr z, .asm_1b56 - and a - ret -.asm_1b56 - ld a, [hNewlyPressedButtons] - bit BIT_B_BUTTON, a - jp nz, Func_1bd3 - rst $10 - jr Func_1b3d - -Func_1b60: ; 0x1b60 - ld a, $1 - ld [$d8a8], a - ld a, $13 - ld [$d8a9], a - call Func_1740 - cp $ff - jp z, Func_1bb2 - cp $f0 - jr z, .asm_1b7e - ld bc, $001e - call Func_93f - and a - ret -.asm_1b7e - ld a, [hNewlyPressedButtons] - bit BIT_B_BUTTON, a - jp nz, Func_1bd3 - rst $10 - jr Func_1b60 - -Func_1b88: ; 0x1b88 - ld a, [$d8c7] - ld b, a - cp $ff - jr z, Func_1bb2 - and $f0 - jr nz, Func_1bb2 - bit 1, b - jr nz, .asm_1b9d - call Func_16a2 - and a - ret -.asm_1b9d - ld a, [hNewlyPressedButtons] - bit BIT_B_BUTTON, a - jp nz, Func_1bd3 - rst $10 - jr Func_1b88 - -Func_1ba7: ; 0x1ba7 - ld hl, $ffff - res 3, [hl] - xor a - ld [$d8e1], a - and a - ret - -Func_1bb2: ; 0x1bb2 - ld hl, $1bcf ; todo - ld a, [$d8c7] - cp $ff - jr z, .asm_1bc6 - ld b, $3 -.asm_1bbe - inc hl - sla a - jr c, .asm_1bc6 - dec b - jr nz, .asm_1bbe -.asm_1bc6 - ld a, [hl] - ld [$d86d], a - call Func_16a2 - scf - ret - -INCBIN "baserom.gbc",$1bcf,$1bd3 - $1bcf - -Func_1bd3: ; 0x1bd3 - ld de, $0001 - call PlaySoundEffect - ld a, $5 - ld [$d86d], a - call Func_16a2 - scf - ret - -Func_1be3: ; 0x1be3 - ld a, $c0 - ld [$ff56], a - ld a, $ff - ld [$d8ea], a - xor a - ld b, a -.asm_1bee - inc a - jr nz, .asm_1bee - inc b - jr nz, .asm_1bee - ld hl, $d8eb - ld a, [$ff4d] - bit 7, a - jr z, .asm_1c0c - ld [hl], $e - inc hl - ld [hl], $12 - inc hl - ld [hl], $8 - inc hl - ld [hl], $c - inc hl - ld [hl], $c - ret -.asm_1c0c - ld [hl], $6 - inc hl - ld [hl], $8 - inc hl - ld [hl], $2 - inc hl - ld [hl], $4 - inc hl - ld [hl], $5 - ret - -Func_1c1b: ; 0x1c1b - inc d - ret z - ld a, [$ff00+c] - bit 1, a - jr z, Func_1c1b - ret - -Func_1c23: ; 0x1c23 - inc d - ret z - ld a, [$ff00+c] - bit 1, a - jr nz, Func_1c23 - ret - -Func_1c2b: ; 0x1c2b - ld a, $c1 - ld [$ff00+c], a -.asm_1c2e - dec d - jr nz, .asm_1c2e - ret - -Func_1c32: ; 0x1c32 - ld a, $c0 - ld [$ff00+c], a -.asm_1c35 - dec d - jr nz, .asm_1c35 - ret - -INCBIN "baserom.gbc",$1c39,$1c50 - $1c39 - -Func_1c50: ; 0x1c50 - ld a, $1 - ld [$d8e9], a - ld b, $1a - ld c, $56 - ld d, $0 - ld e, d - call Func_1c23 - ld a, d - and a - jp z, Func_1dc2 - ld d, e - call Func_1c1b - ld a, d - and a - jp z, Func_1dc2 - call Func_1c23 - ld a, d - and a - jp z, Func_1dc2 - call Func_1c1b - ld a, d - and a - jp z, Func_1dc2 - cp $8 - jp c, Func_1dc2 - cp $2a - jp nc, Func_1dc2 - ld a, $0 - ld [$d8ea], a - ld d, b - call Func_1c32 - ld d, b - call Func_1c2b - ld d, b - call Func_1c32 - ld d, b - call Func_1c2b - ld d, b - call Func_1c32 - ret - -Func_1ca1: ; 0x1ca1 - ld a, $2 - ld [$d8e9], a - ld b, $1a - ld c, $56 - ld d, b - ld e, $0 - call Func_1c32 - ld d, b - call Func_1c2b - ld d, b - call Func_1c32 - ld d, b - call Func_1c2b - ld d, b - call Func_1c32 - ld d, e - call Func_1c23 - ld a, d - and a - jp z, Func_1dc2 - ld d, e - call Func_1c1b - ld a, d - and a - jp z, Func_1dc2 - ld d, e - call Func_1c23 - ld a, d - and a - jp z, Func_1dc2 - ld d, e - call Func_1c1b - ld a, d - and a - jp z, Func_1dc2 - ld d, $1a - call Func_1c32 - ld a, $0 - ld [$d8ea], a - ret - -INCBIN "baserom.gbc",$1cef,$1cf8 - $1cef - -Func_1cf8: ; 0x1cf8 - xor a - ld [$d8e4], a - ld [$d8e5], a - push hl - push bc - ld hl, $d8e6 - ld a, $5a - ld [hli], a - ld [hl], b - dec hl - ld b, $2 - ld d, $1e - call Func_1c32 - call Func_1d44 - pop bc - pop hl - call Func_1ed3 - call Func_1d44 - ld a, [$d8e4] - ld [$d8e6], a - ld a, [$d8e5] - ld [$d8e7], a - ld hl, $d8e6 - ld b, $2 - call Func_1d44 - ld hl, $d8ea - ld b, $1 - call Func_1e3b - ld a, [$d8e6] - ld [$d8e4], a - ld a, [$d8e7] - ld [$d8e5], a - ret - -Func_1d44: ; 0x1d44 - ld a, [$d8ea] - cp $0 - ret nz - ld c, $56 - ld d, $16 - call Func_1c2b - ld d, $16 - call Func_1c32 - ld a, b - cpl - ld b, a -.asm_1d59 - inc b - jr z, .asm_1dae - ld a, $8 - ld [$d8e3], a - ld a, [hli] - ld e, a - ld a, [$d8e4] - add e - ld [$d8e4], a - jr nc, .asm_1d75 - ld a, [$d8e5] - inc a - ld [$d8e5], a - jr .asm_1d78 -.asm_1d75 - call Func_1ed3 -.asm_1d78 - ld a, e - rlca - ld e, a - jr nc, .asm_1d8d - ld a, [$d8eb] - ld d, a - call Func_1c2b - ld a, [$d8ec] - ld d, a - call Func_1c32 - jr .asm_1d9b -.asm_1d8d - ld a, [$d8ed] - ld d, a - call Func_1c2b - ld a, [$d8ee] - ld d, a - call Func_1c32 -.asm_1d9b - ld a, [$d8e3] - dec a - ld [$d8e3], a - jr z, .asm_1dac - call Func_1ed4 - call Func_1ed4 - jr .asm_1d78 -.asm_1dac - jr .asm_1d59 -.asm_1dae - call Func_1ed3 - call Func_1ed3 - call Func_1ed4 - ld d, $16 - call Func_1c2b - ld d, $16 - call Func_1c32 - ret - -Func_1dc2: ; 0x1dc2 - ld a, $2 - ld [$d8ea], a - ret - -INCBIN "baserom.gbc",$1dc8,$1dd1 - $1dc8 - -Func_1dd1: ; 0x1dd1 - ld a, [$d8ea] - or $4 - ld [$d8ea], a - ret - -Func_1dda: ; 0x1dda - xor a - ld [$d8e4], a - ld [$d8e5], a - push hl - ld hl, $d8e6 - ld b, $2 - call Func_1e3b - ld a, [$d8e7] - ld [$d8e8], a - ld b, a - pop hl - ld a, [$d8e6] - cp $5a - jp nz, Func_1dd1 - call Func_1e3b - ld a, [$d8e4] - ld d, a - ld a, [$d8e5] - ld e, a - push de - ld hl, $d8e6 - ld b, $2 - call Func_1e3b - pop de - ld hl, $d8e6 - ld a, [hli] - xor d - ld b, a - ld a, [hl] - xor e - or b - jr z, .asm_1e22 - ld a, [$d8ea] - or $1 - ld [$d8ea], a -.asm_1e22 - push de - ld hl, $d8ea - ld b, $1 - call Func_1d44 - pop de - ld a, d - ld [$d8e4], a - ld a, e - ld [$d8e5], a - ld a, [$d8e8] - cp $82 - ret z - ret - -Func_1e3b: ; 0x1e3b - ld a, [$d8ea] - cp $0 - ret nz - ld c, $56 - ld d, $0 - call Func_1c23 - ld a, d - or a - jp z, Func_1dc2 - ld d, $0 - call Func_1c1b - ld a, d - or a - jp z, Func_1dc2 - ld d, $0 - call Func_1c23 - ld a, d - or a - jp z, Func_1dc2 - call Func_1ed4 - call Func_1ed4 - push af - pop af - ld a, b - cpl - ld b, a -.asm_1e6c - inc b - jr z, .asm_1eb9 - ld a, $8 - ld [$d8e3], a -.asm_1e74 - ld d, $0 - call Func_1c1b - call Func_1c23 - ld a, [$d8ef] - cp d - jr nc, .asm_1e88 - ld a, e - set 0, a - ld e, a - jr .asm_1e8c -.asm_1e88 - ld a, e - res 0, a - ld e, a -.asm_1e8c - ld a, [$d8e3] - dec a - ld [$d8e3], a - jr z, .asm_1ea0 - ld a, e - rlca - ld e, a - call Func_1ed4 - call Func_1ed4 - jr .asm_1e74 -.asm_1ea0 - ld a, e - ld [hli], a - ld a, [$d8e4] - add e - ld [$d8e4], a - jr nc, .asm_1eb4 - ld a, [$d8e5] - inc a - ld [$d8e5], a - jr .asm_1eb7 -.asm_1eb4 - call Func_1ed3 -.asm_1eb7 - jr .asm_1e6c -.asm_1eb9 - ld d, $0 - call Func_1c1b - ld a, d - and a - jp z, Func_1dc2 - ld d, $11 - call Func_1c32 - ret - -INCBIN "baserom.gbc",$1ec9,$1ed3 - $1ec9 - -Func_1ed3: ; 0x1ed3 - ret - -Func_1ed4: ; 0x1ed4 - jr z, .asm_1ed6 -.asm_1ed6 - jr nz, .asm_1ed8 -.asm_1ed8 - ret - -INCBIN "baserom.gbc",$1ed9,$1f0b - $1ed9 - -LoadOAMData2: ; 0x1f0b -; This function loads OAM data, but it adds b and c to the x and y values -; input: a = OAM data id (see OAMDataPointers2) - push bc - push de - push hl - ld e, a - ld d, $0 - sla e - rl d - ld a, [hLoadedROMBank] - push af - ld a, Bank(OAMDataPointers2) - ld [hLoadedROMBank], a - ld [$2000], a - ld hl, OAMDataPointers2 - jr asm_1f3b - -LoadOAMData: ; 0x1f24 -; This function loads OAM data, but it adds b and c to the x and y values -; input: a = OAM data id (see OAMDataPointers) - push bc - push de - push hl - ld e, a - ld d, $0 - sla e - rl d ; multiply de by 2 - ld a, [hLoadedROMBank] - push af - ld a, Bank(OAMDataPointers) - ld [hLoadedROMBank], a - ld [$2000], a - ld hl, OAMDataPointers -asm_1f3b: ; 0x1f3b - add hl, de ; hl points to oam pointer in OAMDataPointers - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a ; de points to OAM data - ld a, [$d802] - ld l, a - ld h, (wOAMBuffer >> 8) -.loadOAMDataLoop - ld a, [de] - cp $80 ; OAM data list terminator - jr z, .doneReadingOAMData - add c - ld [hli], a - inc de - ld a, [de] - add b - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - jr .loadOAMDataLoop -.doneReadingOAMData - ld a, l - ld [$d802], a - pop af - ld [hLoadedROMBank], a - ld [$2000], a - pop hl - pop de - pop bc - ret - -INCBIN "baserom.gbc",$1f68,$1ffc - $1f68 - -Func_1ffc: ; 0x1ffc - ld a, $b - ld [$d806], a - ld a, $4 - ld [$d807], a - ld [$ff8a], a - ld a, Bank(Func_3c000) - ld hl, Func_3c000 - call BankSwitch - ld a, $1 - ld [$d85d], a - ld a, $37 - ld [$d470], a - ld [$d471], a - ld [$d472], a - ld a, SCREEN_ERASE_ALL_DATA - ld [wCurrentScreen], a -.asm_2025 - call Func_2034 - call Func_2043 - call Func_926 - call Func_b2e - rst $10 - jr .asm_2025 - -Func_2034: ; 0x2034 - ld a, [$d804] - and a - jr z, .asm_203f - dec a - ld [$d804], a - ret -.asm_203f - ld [$d803], a - ret - -Func_2043: ; 0x2043 - ld a, [wCurrentScreen] - call CallInFollowingTable -CallTable_2049: ; 0x2049 -; First two bytes is function pointer. -; Third byte is bank of function. -; Fourth byte seems to be unused. - dw Func_8000 - db Bank(Func_8000), $00 - - ; SCREEN_ERASE_ALL_DATA - dw HandleEraseAllDataMenu - db Bank(HandleEraseAllDataMenu), $00 - - ; SCREEN_COPYRIGHT - dw HandleCopyrightScreen - db Bank(HandleCopyrightScreen), $00 - - ; SCREEN_TITLESCREEN - dw HandleTitlescreen - db Bank(HandleTitlescreen), $00 - - ; SCREEN_PINBALL_GAME - dw HandlePinballGame - db Bank(HandlePinballGame), $00 - - ; SCREEN_POKEDEX - dw HandlePokedexScreen - db Bank(HandlePokedexScreen), $00 - - ; SCREEN_OPTIONS - dw HandleOptionsScreen - db Bank(HandleOptionsScreen), $00 - - ; SCREEN_HIGH_SCORES - dw HandleHighScoresScreen - db Bank(HandleHighScoresScreen), $00 - - ; SCREEN_FIELD_SELECT - dw HandleFieldSelectScreen - db Bank(HandleFieldSelectScreen), $00 - ; end of call table - -Func_206d: ; 0x206d - ld a, [hLoadedROMBank] - push af - ld a, Bank(Func_8d17) - ld [hLoadedROMBank], a - ld [$2000], a - call Func_8d17 - jr c, .asm_2084 - pop af - ld [hLoadedROMBank], a - ld [$2000], a - and a - ret -.asm_2084 - pop af - ld [hLoadedROMBank], a - ld [$2000], a - scf - ret - -Func_208c: ; 0x208c - ld a, [hLoadedROMBank] - push af - ld a, Bank(Func_8ee0) - ld [hLoadedROMBank], a - ld [$2000], a - call Func_8ee0 - jr c, .asm_20a3 - pop af - ld [hLoadedROMBank], a - ld [$2000], a - and a - ret -.asm_20a3 - pop af - ld [hLoadedROMBank], a - ld [$2000], a - scf - ret - -Func_20ab: ; 0x20ab - push af - xor a - ld [$ffb6], a - jr .asm_20c6 - push af - ld a, b - xor c - ld [$ffb6], a - bit 7, b - jr z, .asm_20be - ld a, b - cpl - inc a - ld b, a -.asm_20be - bit 7, c - jr z, .asm_20c6 - ld a, c - cpl - inc a - ld c, a -.asm_20c6 - push de - push hl - ld a, b - cp c - jr nc, .asm_20ce - ld b, c - ld c, a -.asm_20ce - ld h, $3e - ld l, c - ld e, [hl] - inc h - ld d, [hl] - ld l, b - ld a, [hl] - dec h - ld l, [hl] - ld h, a - add hl, de - push af - ld d, $3e - ld a, b - sub c - ld e, a - ld a, [de] - ld c, a - inc d - ld a, [de] - ld b, a - ld a, l - sub c - ld l, a - ld a, h - sbc b - ld h, a - jr nc, .asm_20f1 - pop af - ccf - jr .asm_20f2 -.asm_20f1 - pop af -.asm_20f2 - rr h - rr l - ld b, h - ld c, l - ld a, [$ffb6] - rlca - jr nc, .asm_2107 - ld a, c - cpl - add $1 - ld c, a - ld a, b - cpl - adc $0 - ld b, a -.asm_2107 - pop hl - pop de - pop af - ret - -Func_210b: ; 0x210b - push af - push hl - ld a, b - xor d - ld [$ffb7], a - bit 7, b - jr z, .asm_211f - ld a, c - cpl - add $1 - ld c, a - ld a, b - cpl - adc $0 - ld b, a -.asm_211f - push bc - ld b, e - call Func_20ab - ld l, c - ld h, b - ld bc, $0080 - add hl, bc - ld l, h - ld h, $0 - pop bc - ld c, e - call Func_20ab - add hl, bc - ld a, [$ffb7] - rlca - jr nc, .asm_2142 - ld a, l - cpl - add $1 - ld l, a - ld a, h - cpl - adc $0 - ld h, a -.asm_2142 - ld c, l - ld b, h - pop hl - pop af - ret - -Func_2147: ; 0x2147 - add $40 - ; fall through -Func_2149: ; 0x2149 - push hl - ld [$ffb6], a - and $7f - cp $40 - jr c, .asm_2155 - cpl - add $81 -.asm_2155 - ld hl, $26be ; todo - ld e, a - ld d, $0 - add hl, de - ld e, [hl] - pop hl - ld d, $0 - ld a, [$ffb6] - sla a - ret nc - ld d, $ff - ret - -ApplyGravityToBall: ; 0x2168 -; Adds a constant to the pinball's y velocity. - ld a, [$d549] - and a - ret z - ld de, $000b ; gravity added to y velocity every frame - ld hl, wBallYVelocity - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld a, l - ld [wBallYVelocity], a - ld a, h - ld [wBallYVelocity + 1], a - ret - -LimitBallVelocity: ; 0x2180 -; Ensures that the ball's x and y velocity are kept under a threshold. -; The ball can travel at a higher max speed when moving diagonally, since it -; limits the x and y components independently. - ld hl, wBallXVelocity + 1 - call _LimitBallVelocity - ld hl, wBallYVelocity + 1 - ; fall through -_LimitBallVelocity: ; 0x2189 - ld a, [hl] - bit 7, a ; is it negative velocity? (left or up) - jr nz, .negativeVelocity - cp $8 - ret c - ld a, $7 ; max positive velocity - ld [hl], a - ret -.negativeVelocity - cp $f9 - ret nc - ld a, $f9 ; max negative velocity - ld [hl], a - ret - -MoveBallPosition: ; 0x219c -; Updates the ball's position according to its velocity - ld a, [wBallXPos] - ld [wPreviousBallXPos], a - ld a, [wBallXPos + 1] - ld [wPreviousBallXPos + 1], a - ld a, [wBallYPos] - ld [wPreviousBallYPos], a - ld a, [wBallYPos + 1] - ld [wPreviousBallYPos + 1], a - ld de, wBallXVelocity + 1 - ld hl, wBallXPos - call AddVelocityToPosition - ld de, wBallYVelocity + 1 - ld hl, wBallYPos - ; fall through - -AddVelocityToPosition: ; 0x21c3 - ld a, [de] - bit 7, a - jr nz, .asm_21d1 - cp $5 - jr c, .asm_21da - ld bc, $04ff - jr .asm_21de -.asm_21d1 - cp $fc - jr nc, .asm_21da - ld bc, $fb01 - jr .asm_21de -.asm_21da - ld b, a - dec de - ld a, [de] - ld c, a -.asm_21de - ld a, [hl] - add c - ld [hli], a - ld a, [hl] - adc b - ld [hl], a - ret - -Func_21e5: ; 0x21e5 - cpl - inc a - ; fall through -Func_21e7: ; 0x21e7 - push hl - push bc - push de - ld [$ff8c], a - call Func_2147 - ld a, e - ld [$ff8d], a - ld a, d - ld [$ff8e], a - call Func_210b - ld l, c - ld h, b - pop bc - push bc - ld a, [$ff8c] - call Func_2149 - ld a, e - ld [$ff8f], a - ld a, d - ld [$ff90], a - call Func_210b - add hl, bc - pop de - pop bc - push hl - push de - ld a, [$ff8f] - ld e, a - ld a, [$ff90] - cpl - ld d, a - call Func_210b - ld l, c - ld h, b - pop bc - ld a, [$ff8d] - ld e, a - ld a, [$ff8e] - ld d, a - call Func_210b - add hl, bc - ld d, h - ld e, l - pop bc - pop hl - ret - -Func_222b: ; 0x222b - push hl - ld hl, $d7f8 - ld [hl], $ff - bit 7, d - jr nz, .asm_2297 - ld [hl], $0 - ld a, d - cp $3 - jr c, .asm_2254 - ld a, $ff - ld [$d803], a - ld a, $1 - ld [$d804], a - ld a, [wFlipperCollision] - and a - jr nz, .asm_2254 - push de - ld de, $0008 - call Func_4d8 - pop de -.asm_2254 - srl d - rr e - srl d - rr e - ld h, d - ld l, e - srl d - rr e - ld a, [$d7eb] - and a - jr z, .asm_226c -.asm_2268 - add hl, de - dec a - jr nz, .asm_2268 -.asm_226c - ld d, h - ld e, l - ld a, e - cpl - add $1 - ld e, a - ld a, d - cpl - adc $0 - ld d, a - ld a, [wBallSpin] - sra a - ld l, a - ld h, $0 - bit 7, l - jr z, .asm_2286 - ld h, $ff -.asm_2286 - add hl, bc - ld b, h - ld c, l - push bc - sla c - rl b - sla c - rl b - ld a, b - ld [wBallSpin], a - pop bc -.asm_2297 - pop hl - ret - -LoadBallVelocity: ; 0x2299 -; Loads velocity of the ball into bc and de -; bc = x velocity -; de = y velocity - push hl - ld hl, wBallXVelocity - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - pop hl - ret - -SetBallVelocity: ; 0x22a7 -; Sets the x and y velocities of the ball. -; bc = x velocity -; de = y velocity - push hl - ld hl, wBallXVelocity - ld a, c - ld [hli], a - ld a, b - ld [hli], a - ld a, e - ld [hli], a - ld a, d - ld [hl], a - pop hl - ret - -Func_22b5: ; 0x22b5 - ld a, [wBallXPos + 1] - sub $4 - push af - and $7 - ld [wSubTileBallXPos], a ; sub-tile position - pop af - and $f8 - ld c, a - ld a, [wBallYPos + 1] - sub $4 - push af - and $7 - ld [wSubTileBallYPos], a - pop af - and $f8 - ld b, a - ld l, b ; bc contains tile coords of ball position - ld h, $0 - sla l - rl h - sla l - rl h ; b was multiplied by 4 (y tile position) - srl c - srl c - srl c ; c was divided by 8 (x tile position) - ld b, $0 - add hl, bc - ld a, l - ld [$d7f3], a - ld a, h - ld [$d7f4], a - ld a, [wStageCollisionMapPointer] - ld c, a - ld a, [wStageCollisionMapPointer + 1] - ld b, a - add hl, bc ; hl = address of upper-left collision byte - ld a, [hLoadedROMBank] - push af - ld a, [wStageCollisionMapBank] - ld [hLoadedROMBank], a - ld [$2000], a - ld bc, $001f ; number of tiles wide - 1 - ld a, [hli] - ld [wUpperLeftCollisionAttribute], a - ld a, [hl] - ld [wUpperRightCollisionAttribute], a - add hl, bc - ld a, [hli] - ld [wLowerLeftCollisionAttribute], a - ld a, [hl] - ld [wLowerRightCollisionAttribute], a - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ld a, [hLoadedROMBank] - push af - ld a, [wStageCollisionMasksBank] - ld [hLoadedROMBank], a - ld [$2000], a - ld a, [wSubTileBallXPos] - sla a - ld c, a - ld b, $0 - ld hl, SubTileXPos_CollisionDataPointers - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld a, [wSubTileBallYPos] - ld c, a - ld b, $10 ; number of times to loop over .asm_233d -.asm_233d - push bc - ld a, [de] - inc de - add c ; add the sub tile y pos - push af - srl a - srl a - srl a - ld c, a - ld b, $0 - ld hl, wUpperLeftCollisionAttribute - add hl, bc - ld a, [hl] - call Func_248a - jr nc, .asm_235e - pop af - and $7 - ld c, a - ld b, $0 - add hl, bc - jr .asm_237b -.asm_235e - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - ld hl, wStageCollisionMasksPointer - ld a, [hli] - ld h, [hl] - ld l, a - add hl, bc - pop af - and $7 - ld c, a - ld b, $0 - add hl, bc -.asm_237b - ld a, [de] - inc de - and [hl] - push af - ld a, [de] - inc de - ld c, a - ld hl, $d7c9 - add hl, bc - pop af - ld [hl], a - pop bc - dec b - jr nz, .asm_233d - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ld hl, $d7c9 - ld de, $d7d9 - ld b, $4 -.asm_239a - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_239a - ld hl, $d7c9 - ld de, $0000 - ld b, $0 - ld a, [hl] - and a - jr z, .asm_23c1 -.asm_23b5 - ld a, [hli] - inc b - and a - jr z, .asm_23c1 - ld a, b - cp $11 - jr nc, .asm_23ee - jr .asm_23b5 -.asm_23c1 - ld a, [hli] - inc b - and a - jr nz, .asm_23cd - ld a, b - cp $11 - jr nc, .asm_23ee - jr .asm_23c1 -.asm_23cd - push de - ld d, $1 - ld c, b - dec c -.asm_23d2 - ld a, [hli] - inc b - inc d - and a - jr nz, .asm_23d2 - dec d - ld a, b - dec a - dec a - and $f - swap c - or c - ld c, a - ld a, d - cp e - pop de - jr c, .asm_23e9 - ld e, a - ld d, c -.asm_23e9 - ld a, b - cp $10 - jr c, .asm_23c1 -.asm_23ee - ld a, e - ld [$d7e9], a - and a - ret z - ld a, [hLoadedROMBank] - push af - ld a, Bank(Data_8817) - ld [hLoadedROMBank], a - ld [$2000], a - push de - ld e, d - ld d, $0 - ld hl, Data_8817 - add hl, de - ld a, [hl] - ld [$d7ea], a - sla e - rl d - ld hl, Data_8917 - add hl, de - ld a, [wBallYPos] - add [hl] - ld [wBallYPos], a - inc hl - ld a, [wBallYPos + 1] - adc [hl] - ld [wBallYPos + 1], a - ld hl, Data_8b17 - add hl, de - ld a, [wBallXPos] - add [hl] - ld [wBallXPos], a - inc hl - ld a, [wBallXPos + 1] - adc [hl] - ld [wBallXPos + 1], a - pop de - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ld a, d - swap a - and $f - ld e, a - ld a, d - and $f - sub e - jr nc, .asm_2449 - add $10 -.asm_2449 - add e - add e - inc a - and $1e - ld c, a - ld b, $0 - ld hl, $250e ; todo - add hl, bc - ld a, [wSubTileBallXPos] - add $4 - add [hl] - bit 3, a - ld c, b - jr z, .asm_2462 - ld c, $2 -.asm_2462 - ld a, [wSubTileBallYPos] - add $4 - inc hl - add [hl] - bit 3, a - jr z, .asm_246e - inc c -.asm_246e - ld hl, wUpperLeftCollisionAttribute - add hl, bc - ld a, [hl] - ld [$d7f5], a - ld hl, $250a ; todo - add hl, bc - ld a, [$d7f3] - add [hl] - ld [$d7f6], a - ld a, [$d7f4] - adc $0 - ld [$d7f7], a - ret - -Func_248a: ; 0x248a - push af - ld a, [wCurrentStage] - bit 0, a - jr nz, .asm_2495 - pop af - and a - ret -.asm_2495 - pop af - cp $d0 - ccf - ret nc - cp $e0 - jr nc, .asm_24ab - sub $d0 - sla a - sla a - sla a - ld l, a - ld h, $c4 - scf - ret -.asm_24ab - push de - sub $e0 - ld b, a - ld a, [wCurrentStage] - cp $6 ; gengar stage buggy? - jr nc, .asm_24e0 - bit 4, b - ld hl, $3800 - ld a, [$d7af] - jr z, .asm_24c8 - res 4, b - ld hl, $3980 - ld a, [$d7b3] -.asm_24c8 - ld de, $0080 - cp $7 - jr c, .asm_24d5 - add hl, de - cp $e - jr c, .asm_24d5 - add hl, de -.asm_24d5 - ld e, b - sla e - sla e - sla e - add hl, de - pop de - scf - ret -.asm_24e0 - bit 4, b - ld hl, $3b00 - ld a, [$d7af] - jr z, .asm_24f2 - res 4, b - ld hl, $3c80 - ld a, [$d7b3] -.asm_24f2 - ld de, $0080 - cp $7 - jr c, .asm_24ff - add hl, de - cp $e - jr c, .asm_24ff - add hl, de -.asm_24ff - ld e, b - sla e - sla e - sla e - add hl, de - pop de - scf - ret - -INCBIN "baserom.gbc",$250a,$252e - $250a - -SubTileXPos_CollisionDataPointers: ; 0x252e - dw SubTileXPos_CollisionData0 - dw SubTileXPos_CollisionData1 - dw SubTileXPos_CollisionData2 - dw SubTileXPos_CollisionData3 - dw SubTileXPos_CollisionData4 - dw SubTileXPos_CollisionData5 - dw SubTileXPos_CollisionData6 - dw SubTileXPos_CollisionData7 - -SubTileXPos_CollisionData0: ; 0x253e - db $00, $10, $0B - db $00, $08, $0C - db $00, $04, $0D - db $01, $40, $0A - db $01, $01, $0E - db $03, $80, $09 - db $13, $80, $0F - db $04, $80, $08 - db $14, $80, $00 - db $05, $80, $07 - db $15, $80, $01 - db $07, $40, $06 - db $07, $01, $02 - db $08, $10, $05 - db $08, $08, $04 - db $08, $04, $03 - -SubTileXPos_CollisionData1: ; 0x256e - db $00, $08, $0B - db $00, $04, $0C - db $00, $02, $0D - db $01, $20, $0A - db $11, $80, $0E - db $03, $40, $09 - db $13, $40, $0F - db $04, $40, $08 - db $14, $40, $00 - db $05, $40, $07 - db $15, $40, $01 - db $07, $20, $06 - db $17, $80, $02 - db $08, $08, $05 - db $08, $04, $04 - db $08, $02, $03 - -SubTileXPos_CollisionData2: ; 0x259e - db $00, $04, $0B - db $00, $02, $0C - db $00, $01, $0D - db $01, $10, $0A - db $11, $40, $0E - db $03, $20, $09 - db $13, $20, $0F - db $04, $20, $08 - db $14, $20, $00 - db $05, $20, $07 - db $15, $20, $01 - db $07, $10, $06 - db $17, $40, $02 - db $08, $04, $05 - db $08, $02, $04 - db $08, $01, $03 - -SubTileXPos_CollisionData3: ; 0x25ce - db $00, $02, $0B - db $00, $01, $0C - db $10, $80, $0D - db $01, $08, $0A - db $11, $20, $0E - db $03, $10, $09 - db $13, $10, $0F - db $04, $10, $08 - db $14, $10, $00 - db $05, $10, $07 - db $15, $10, $01 - db $07, $08, $06 - db $17, $20, $02 - db $08, $02, $05 - db $08, $01, $04 - db $18, $80, $03 - -SubTileXPos_CollisionData4: ; 0x25fe - db $00, $01, $0B - db $10, $80, $0C - db $10, $40, $0D - db $01, $04, $0A - db $11, $10, $0E - db $03, $08, $09 - db $13, $08, $0F - db $04, $08, $08 - db $14, $08, $00 - db $05, $08, $07 - db $15, $08, $01 - db $07, $04, $06 - db $17, $10, $02 - db $08, $01, $05 - db $18, $80, $04 - db $18, $40, $03 - -SubTileXPos_CollisionData5: ; 0x262e - db $10, $80, $0B - db $10, $40, $0C - db $10, $20, $0D - db $01, $02, $0A - db $11, $08, $0E - db $03, $04, $09 - db $13, $04, $0F - db $04, $04, $08 - db $14, $04, $00 - db $05, $04, $07 - db $15, $04, $01 - db $07, $02, $06 - db $17, $08, $02 - db $18, $80, $05 - db $18, $40, $04 - db $18, $20, $03 - -SubTileXPos_CollisionData6: ; 0x265e - db $10, $40, $0B - db $10, $20, $0C - db $10, $10, $0D - db $01, $01, $0A - db $11, $04, $0E - db $03, $02, $09 - db $13, $02, $0F - db $04, $02, $08 - db $14, $02, $00 - db $05, $02, $07 - db $15, $02, $01 - db $07, $01, $06 - db $17, $04, $02 - db $18, $40, $05 - db $18, $20, $04 - db $18, $10, $03 - -SubTileXPos_CollisionData7: ; 0x268e - db $10, $20, $0B - db $10, $10, $0C - db $10, $08, $0D - db $11, $80, $0A - db $11, $02, $0E - db $03, $01, $09 - db $13, $01, $0F - db $04, $01, $08 - db $14, $01, $00 - db $05, $01, $07 - db $15, $01, $01 - db $17, $80, $06 - db $17, $02, $02 - db $18, $20, $05 - db $18, $10, $04 - db $18, $08, $03 - -INCBIN "baserom.gbc",$26be,$2720 - $26be - -Func_2720: ; 0x2720 - ld a, $ff - ld [$d4ea], a - call Func_272f - ld a, [$d4ea] - ld [$d4ec], a - ret - -Func_272f: ; 0x272f -; not collisions - ld a, [wCurrentStage] - call CallInFollowingTable -CallTable_2735: ; 0x2735 - ; STAGE_RED_FIELD_TOP - dw Func_143e1 - db Bank(Func_143e1), $00 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_143f9 - db Bank(Func_143f9), $00 - - dw Func_18061 - db Bank(Func_18061), $00 - - dw Func_18062 - db Bank(Func_18062), $00 - - ; STAGE_BLUE_FIELD_TOP - dw Func_1c520 - db Bank(Func_1c520), $00 - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_1c536 - db Bank(Func_1c536), $00 - - ; STAGE_GENGAR_BONUS - dw Func_181b1 - db Bank(Func_181b1), $00 - - ; STAGE_GENGAR_BONUS - dw Func_181b1 - db Bank(Func_181b1), $00 - - ; STAGE_MEWTWO_BONUS - dw Func_19330 - db Bank(Func_19330), $00 - - ; STAGE_MEWTWO_BONUS - dw Func_19330 - db Bank(Func_19330), $00 - - ; STAGE_MEOWTH_BONUS - dw Func_2414d - db Bank(Func_2414d), $00 - - ; STAGE_MEOWTH_BONUS - dw Func_2414d - db Bank(Func_2414d), $00 - - ; STAGE_DIGLETT_BONUS - dw Func_19ab3 - db Bank(Func_19ab3), $00 - - ; STAGE_DIGLETT_BONUS - dw Func_19ab3 - db Bank(Func_19ab3), $00 - - ; STAGE_SEEL_BONUS - dw Func_25bbc - db Bank(Func_25bbc), $00 - - ; STAGE_SEEL_BONUS - dw Func_25bbc - db Bank(Func_25bbc), $00 - -Func_2775: ; 0x2775 - ld a, [$d4ea] - inc a - jr nz, .asm_27a2 - ld a, [bc] - bit 7, a - jr nz, .asm_27a2 - push bc - push de - call nc, Func_27da - pop hl - call c, Func_27a4 - ld a, [$d4ea] - ld b, a - pop hl - ld [hl], $0 - jr nc, .asm_27a2 - ld a, [$d4ec] - cp b - jr z, .asm_27a2 - ld a, [$d4eb] - ld [hli], a - ld a, [$d4ea] - ld [hl], a - scf - ret -.asm_27a2 - and a - ret - -Func_27a4: ; 0x27a4 - xor a - ld [$d4eb], a - ld a, [hli] - ld d, a - ld a, [hli] - ld e, a - ld a, [wBallXPos + 1] - ld b, a - ld a, [wBallYPos + 1] - ld c, a -.asm_27b4 - ld a, [$d4eb] - inc a - ld [$d4eb], a - ld a, [hli] - ld [$d4ea], a - cp $ff - ret z - ld a, [hli] - sub b - bit 7, a - jr z, .asm_27ca - cpl - inc a -.asm_27ca - cp d - ld a, [hli] - jr nc, .asm_27b4 - sub c - bit 7, a - jr z, .asm_27d5 - cpl - inc a -.asm_27d5 - cp e - jr nc, .asm_27b4 - scf - ret - -Func_27da: ; 0x27da - ld a, [hli] - and a - jr z, .asm_27e8 - dec hl - ld a, [wStageCollisionState] - ld c, a - ld b, $0 - add hl, bc - ld c, [hl] - add hl, bc -.asm_27e8 - ld a, [$d7e9] - and a - ret z - ld a, [$d7f5] - ld b, a - ld c, $ff -.asm_27f3 - inc c - ld a, [hli] - cp $ff - ret z - cp b - jr nz, .asm_27f3 - scf - ret - -PinballCollideWithPoints: ; 0x27fd -; Checks if pinball collides with any of the (x, y) points in the given list. -; Saves the index of the collided point. -; Input: hl = pointer to array of (x, y) points -; Output: Saves index of collided point in $d578 - ld a, [wBallXPos + 1] - ld b, a - ld a, [wBallYPos + 1] - ld c, a - ld d, $0 -.nextPoint - ld a, [hli] - and a - ret z - inc d - ld a, [hli] - sub b - cp $e8 - ld a, [hli] - jr c, .nextPoint - sub c - cp $e8 - jr c, .nextPoint - ld a, d - ld [$d578], a - ret - -Func_281c: ; 0x281c - ld a, [wCurrentStage] - call CallInFollowingTable -CallTable_2822: ; 0x2822 -; not collisions - ; STAGE_RED_FIELD_TOP - dw Func_1460e - db Bank(Func_1460e), $00 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_14652 - db Bank(Func_14652), $00 - - dw Func_1806d - db Bank(Func_1806d), $00 - - dw Func_1806e - db Bank(Func_1806e), $00 - - ; STAGE_BLUE_FIELD_TOP - dw Func_1c715 - db Bank(Func_1c715), $00 - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_1c769 - db Bank(Func_1c769), $00 - - ; STAGE_GENGAR_BONUS - dw Func_18377 - db Bank(Func_18377), $00 - - ; STAGE_GENGAR_BONUS - dw Func_18377 - db Bank(Func_18377), $00 - - ; STAGE_MEWTWO_BONUS - dw Func_19451 - db Bank(Func_19451), $00 - - ; STAGE_MEWTWO_BONUS - dw Func_19451 - db Bank(Func_19451), $00 - - ; STAGE_MEOWTH_BONUS - dw Func_2442a - db Bank(Func_2442a), $00 - - ; STAGE_MEOWTH_BONUS - dw Func_2442a - db Bank(Func_2442a), $00 - - ; STAGE_DIGLETT_BONUS - dw Func_19b88 - db Bank(Func_19b88), $00 - - ; STAGE_DIGLETT_BONUS - dw Func_19b88 - db Bank(Func_19b88), $00 - - ; STAGE_SEEL_BONUS - dw Func_25c5a - db Bank(Func_25c5a), $00 - - ; STAGE_SEEL_BONUS - dw Func_25c5a - db Bank(Func_25c5a), $00 - -Func_2862: ; 0x2862 - ld a, [$d7be] - and a - jr nz, .asm_287c - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_287b - ld a, $0 - ld hl, $2890 - ld de, $0052 - ld bc, $0004 - call Func_790 -.asm_287b - ret -.asm_287c - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_288f - ld a, $0 - ld hl, $2894 - ld de, $0052 - ld bc, $0004 - call Func_790 -.asm_288f - ret - -INCBIN "baserom.gbc",$2890,$28a0 - $2890 - -CopyHLToDE: ; 0x28a0 -; Places [hl] into [de] -; Also places $0 into [de + 2] - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - xor a - ld [de], a - ret - -UpdateAnimation: ; 0x28a9 -; Updates an animation struct. (See wDugtrioAnimationFrameCounter) -; Input: de = pointer to 3-byte animation struct -; hl = pointer to animation frames data -; Sets carry flag if the animation is over. - ld a, [de] - and a - ret z ; return, if counter is zero - dec a - ld [de], a - ret nz ; return if counter is not zero after the decrement - push de - inc de - inc de - ld a, [de] ; a = current frame index - inc a - ld [de], a - ld c, a - ld b, $0 - sla c - rl b - add hl, bc ; hl = pointer to two-byte entry in the frames data table - ld a, [hli] - pop de - and a - scf - ret z ; return if the next entry is $00 - push de - ld [de], a ; save the animation duration - inc de - ld a, [hli] - ld [de], a ; save the next animation frame id - pop de - ret - -INCBIN "baserom.gbc",$28c9,$30db - $28c9 - -Func_30db: ; 0x30db - ld a, $86 - ld [$ffa6], a - ld a, $1 - ld [$d5ca], a - ld [$d5cb], a - ret - -Func_30e8: ; 0x30e8 - ld a, $81 - ld hl, $c600 - ld b, $40 -.asm_30ef - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .asm_30ef - xor a - ld [$d5cc], a - ld [$d5d4], a - ld [$d5dc], a - ld [$d5e4], a - ld [$d5e9], a - ld [$d5ee], a - ret - -Func_310a: ; 0x310a - ld a, $81 - ld hl, $c640 - ld b, $5 -.asm_3111 - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .asm_3111 - ld hl, $c6c0 - ld b, $5 -.asm_311d - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .asm_311d - ret - -Func_3125: ; 0x3125 - ld b, $1 - jr asm_312b - -Func_3129: ; 0x3129 - ld b, $0 -asm_312b: ; 0x312b - ld a, [$d805] - and a - jp nz, Func_3268 -.asm_3132 - ld a, [hli] - and a - ret z - ld c, $81 - cp $20 - jr z, .asm_3175 - cp $2c - jr z, .asm_3178 - cp $24 - jr z, .asm_317c - cp $5c - jr z, .asm_3184 - cp $60 - jr z, .asm_318d - cp $21 - jr z, .asm_31a8 - cp $78 - jr z, .asm_31b1 - cp $65 - jr z, .asm_3196 - cp $2a - jr z, .asm_319f - cp $2e - jr z, .asm_31ba - cp $3a - jr z, .asm_31c3 - cp $30 - jr c, .asm_316b - cp $3a - jr c, .asm_31cc -.asm_316b - cp $41 - jr c, .asm_3173 - cp $5b - jr c, .asm_31d0 -.asm_3173 - jr .asm_3132 -.asm_3175 - ld a, c - jr .asm_31d2 -.asm_3178 - inc c - dec e - jr .asm_31d3 -.asm_317c - xor a - call Func_31e1 - ld a, $83 - jr .asm_31d2 -.asm_3184 - ld a, $1 - call Func_31e1 - ld a, $84 - jr .asm_31d2 -.asm_318d - ld a, $2 - call Func_31e1 - ld a, $85 - jr .asm_31d2 -.asm_3196 - ld a, $3 - call Func_31e1 - ld a, $83 - jr .asm_31d2 -.asm_319f - ld a, $4 - call Func_31e1 - ld a, $87 - jr .asm_31d2 -.asm_31a8 - ld a, $5 - call Func_31e1 - ld a, $85 - jr .asm_31d2 -.asm_31b1 - ld a, $6 - call Func_31e1 - ld a, $85 - jr .asm_31d2 -.asm_31ba - ld a, $7 - call Func_31e1 - ld a, $86 - jr .asm_31d2 -.asm_31c3 - ld a, $8 - call Func_31e1 - ld a, $83 - jr .asm_31d2 -.asm_31cc - add $56 - jr .asm_31d2 -.asm_31d0 - add $bf -.asm_31d2 - ld [de], a -.asm_31d3 - bit 0, b - jr nz, .asm_31dd - set 7, e - ld a, c - ld [de], a - res 7, e -.asm_31dd - inc e - jp .asm_3132 - -Func_31e1: ; 0x31e1 - push bc - push de - push hl - ld c, a - ld a, [hGameBoyColorFlag] - and a - ld a, c - jr z, .asm_31ed - add $9 -.asm_31ed - ld c, a - sla a - sla a - add c - ld c, a - ld b, $0 - ld hl, $320e ; todo - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld b, a - ld a, [hli] - ld h, [hl] - ld l, a - ld a, b - ld bc, $0010 - call LoadVRAMData - pop hl - pop de - pop bc - ret - -INCBIN "baserom.gbc",$320e,$3268 - $320e - -Func_3268: ; 0x3268 - ld a, [hli] - and a - ret z - ld c, $81 - cp $20 - jr z, .asm_3297 - cp $2c - jr z, .asm_329a - cp $30 - jr c, .asm_327d - cp $3a - jr c, .asm_329e -.asm_327d - cp $a0 - jr c, .asm_3285 - cp $e0 - jr c, .asm_328f -.asm_3285 - cp $e0 - jr c, .asm_328d - cp $f4 - jr c, .asm_3293 -.asm_328d - jr Func_3268 -.asm_328f - sub $80 - jr .asm_32a0 -.asm_3293 - sub $50 - jr .asm_32a0 -.asm_3297 - ld a, c - jr .asm_32a0 -.asm_329a - inc c - dec e - jr .asm_32a1 -.asm_329e - add $56 -.asm_32a0 - ld [de], a -.asm_32a1 - set 7, e - ld a, c - ld [de], a - res 7, e - inc e - jr Func_3268 - -Func_32aa: ; 0x32aa - ld a, $1 - ld [hli], a - ld a, [de] - ld [hli], a - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - push af - inc de - ld a, [de] - ld [hli], a - inc de - pop af - ld l, a - ld h, $c5 -.asm_32c5 - ld a, [de] - ld [hli], a - inc de - and a - jr nz, .asm_32c5 - ret - -Func_32cc: ; 0x32cc - ld a, $1 - ld [hli], a - ld a, [de] - ld [hli], a - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - push af - inc de - ld a, [de] - ld [hli], a - inc de - pop af - ld e, a - ld d, $c5 - ld hl, [sp+$5] - ld bc, $0801 -.asm_32ec - ld a, [hl] - swap a - and $f - call Func_3309 - dec b - ld a, [hld] - and $f - call Func_3309 - dec b - jr nz, .asm_32ec - ld a, $30 - ld [de], a - inc de - ld a, $20 - ld [de], a - inc de - xor a - ld [de], a - ret - -Func_3309: ; 0x3309 - jr nz, .asm_3312 - ld a, b - dec a - jr z, .asm_3312 - ld a, c - and a - ret nz -.asm_3312 - add $30 - ld [de], a - inc de - ld c, $0 - ld a, b - cp $6 - jr z, .asm_3320 - cp $3 - ret nz -.asm_3320 - ld a, $2c - ld [de], a - inc de - ret - -Func_3325: ; 0x3325 - ld a, [hli] - and a - ret z - ld a, [hl] - dec a - ld [hli], a - ret nz - ld a, [hld] - ld [hl], a - inc hl - inc hl - push hl - ld a, [hli] - ld e, a - cp [hl] - inc hl - jr nz, .asm_333c - ld a, [hl] - dec a - ld [hl], a - jr nz, .asm_333d -.asm_333c - dec e -.asm_333d - push de - ld d, $c6 - inc hl - push hl - ld l, [hl] - ld h, $c5 - call Func_3129 - pop hl - inc hl - ld a, [hl] - dec a - ld [hl], a - pop de - pop hl - ld [hl], e - ret nz - dec hl - dec hl - dec hl - ld [hl], $0 - ret - -Func_3357: ; 0x3357 - ld a, $1 - ld [hli], a - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - push af - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - pop af - ld l, a - ld h, $c5 -.asm_336b - ld a, [de] - ld [hli], a - inc de - and a - jr nz, .asm_336b - ret - -Func_3372: ; 0x3372 - ld a, $1 - ld [hli], a - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - push af - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - pop af - ld e, a - ld d, $c5 - ld hl, [sp+$5] - ld bc, $0801 -.asm_338a - ld a, [hl] - swap a - and $f - call Func_33a7 - dec b - ld a, [hld] - and $f - call Func_33a7 - dec b - jr nz, .asm_338a - ld a, $30 - ld [de], a - inc de - ld a, $20 - ld [de], a - inc de - xor a - ld [de], a - ret - -Func_33a7: ; 0x33a7 - jr nz, .asm_33b0 - ld a, b - dec a - jr z, .asm_33b0 - ld a, c - and a - ret nz -.asm_33b0 - add $30 - ld [de], a - inc de - ld c, $0 - ld a, b - cp $6 - jr z, .asm_33be - cp $3 - ret nz -.asm_33be - ld a, $2c - ld [de], a - inc de - ret - -Func_33c3: ; 0x33c3 - ld a, [hli] - and a - ret z - ld a, [hli] - ld e, a - ld d, $c6 - push hl - ld l, [hl] - ld h, $c5 - call Func_3129 - pop hl - inc hl - ld a, [hl] - dec a - ld [hli], a - ret nz - ld a, [hl] - dec a - ld [hld], a - bit 7, a - ret z - dec hl - dec hl - dec hl - ld [hl], $0 - ret - -Func_33e3: ; 0x33e3 - ld a, [$d5ca] - and a - jr nz, .asm_33ed - ld [$d5cb], a - ret -.asm_33ed - ld c, $0 - ld a, [$d5cc] - and a - jr z, .asm_33fe - push bc - ld hl, $d5cc - call Func_3325 - pop bc - inc c -.asm_33fe - ld a, [$d5d4] - and a - jr z, .asm_340d - push bc - ld hl, $d5d4 - call Func_3325 - pop bc - inc c -.asm_340d - ld a, [$d5dc] - and a - jr z, .asm_341c - push bc - ld hl, $d5dc - call Func_3325 - pop bc - inc c -.asm_341c - ld a, [$d5e4] - and a - jr z, .asm_342b - push bc - ld hl, $d5e4 - call Func_33c3 - pop bc - inc c -.asm_342b - ld a, [$d5e9] - and a - jr z, .asm_343a - push bc - ld hl, $d5e9 - call Func_33c3 - pop bc - inc c -.asm_343a - ld a, [$d5ee] - and a - jr z, .asm_3449 - push bc - ld hl, $d5ee - call Func_33c3 - pop bc - inc c -.asm_3449 - ld a, c - and a - ret nz - ld [$d5ca], a - call Func_30e8 - ld a, [hGameBoyColorFlag] - and a - jr nz, .gameboyColor - ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy) - ld hl, $30 + StageRedFieldTopStatusBarSymbolsGfx_GameBoy - ld de, $8830 - ld bc, $0040 - call Func_735 - ret -.gameboyColor - ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor) - ld hl, $30 + StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor - ld de, $8830 - ld bc, $0040 - call Func_735 - ret - -Func_3475: ; 0x3475 - xor a - ld [hJoypadState], a - ld [hNewlyPressedButtons], a - ld [hPressedButtons], a - call HandleTilts - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(HandleFlippers) - ld hl, HandleFlippers - call nz, BankSwitch - ld [$ff8a], a - ld a, Bank(Func_84b7) - ld hl, Func_84b7 - call BankSwitch - call Func_33e3 - call Func_926 - rst $10 - ld a, [$d5ca] - and a - jr nz, Func_3475 - ret - -INCBIN "baserom.gbc",$34a6,$351c - $34a6 - -Func_351c: ; 0x351c - ld hl, $d464 - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, c - ld [hli], a - ld a, b - ld [hli], a - xor a - ld [hli], a - ld [hl], a - ld bc, $d464 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ret - -Func_3538: ; 0x3538 - ld hl, $d47a - ld a, [hl] - add e - daa - ld [hli], a - ld a, [hl] - adc d - daa - ld [hli], a - ld a, [hl] - adc c - daa - ld [hli], a - ld a, [hl] - adc b - daa - ld [hli], a - ret nc - ld hl, $d47a - ld a, $99 - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ret - -Func_3556: ; 0x3556 - ld a, [$d47a] - ld e, a - ld a, [$d47b] - ld d, a - ld a, [$d47c] - ld c, a - ld a, [$d47d] - ld b, a - ret - -INCBIN "baserom.gbc",$3567,$3579 - $3567 - -Func_3579: ; 0x3579 - ld hl, $d47a - xor a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ret - -HandleTilts: ; 0x3582 - call HandleLeftTilt - call HandleRightTilt - call HandleUpperTilt - ret - -HandleLeftTilt: ; 0x358c - ld a, [wLeftTiltReset] - and a - jr nz, .tiltCoolDown - ld hl, wKeyConfigLeftTilt - call IsKeyPressed2 - jr z, .tiltCoolDown - ld a, [wLeftTiltCounter] - cp $3 - jr z, .startCoolDown - inc a - ld [wLeftTiltCounter], a - cp $1 - jr nz, .skipSoundEffect - ld de, $003f - call PlaySoundEffect -.skipSoundEffect - ld a, [$d548] - ld hl, $d549 - and [hl] - jr z, .skipBallMovement - ld a, [wBallXPos + 1] - dec a ; move ball's position to the left by 1 pixel - ld [wBallXPos + 1], a -.skipBallMovement - ld a, [$d79f] - inc a - ld [$d79f], a - ld a, $1 - ld [wLeftTiltPushing], a - ret -.startCoolDown - ld a, $1 - ld [wLeftTiltReset], a -.tiltCoolDown - xor a - ld [wLeftTiltPushing], a - ld a, [wLeftTiltCounter] - and a - jr z, .done - dec a - ld [wLeftTiltCounter], a - ld a, [$d79f] - dec a - ld [$d79f], a - ret -.done - ld hl, wKeyConfigLeftTilt - call IsKeyPressed2 - ret nz - xor a - ld [wLeftTiltReset], a - ret - -HandleRightTilt: ; 0x35f3 - ld a, [wRightTiltReset] - and a - jr nz, .tiltCoolDown - ld hl, wKeyConfigRightTilt - call IsKeyPressed2 - jr z, .tiltCoolDown - ld a, [wRightTiltCounter] - cp $3 - jr z, .startCoolDown - inc a - ld [wRightTiltCounter], a - cp $1 - jr nz, .skipSoundEffect - ld de, $003f - call PlaySoundEffect -.skipSoundEffect - ld a, [$d548] - ld hl, $d549 - and [hl] - jr z, .skipBallMovement - ld a, [wBallXPos + 1] - inc a ; move ball's position to the right by 1 pixel - ld [wBallXPos + 1], a -.skipBallMovement - ld a, [$d79f] - dec a - ld [$d79f], a - ld a, $1 - ld [wRightTiltPushing], a - ret -.startCoolDown - ld a, $1 - ld [wRightTiltReset], a -.tiltCoolDown - xor a - ld [wRightTiltPushing], a - ld a, [wRightTiltCounter] - and a - jr z, .done - dec a - ld [wRightTiltCounter], a - ld a, [$d79f] - inc a - ld [$d79f], a - ret -.done - ld hl, wKeyConfigRightTilt - call IsKeyPressed2 - ret nz - xor a - ld [wRightTiltReset], a - ret - -HandleUpperTilt: ; 0x365a - ld a, [wUpperTiltReset] - and a - jr nz, .tiltCoolDown - ld hl, wKeyConfigUpperTilt - call IsKeyPressed2 - jr z, .tiltCoolDown - ld a, [wUpperTiltCounter] - cp $4 - jr z, .startCoolDown - inc a - ld [wUpperTiltCounter], a - cp $1 - jr nz, .skipSoundEffect - ld de, $003f - call PlaySoundEffect -.skipSoundEffect - ld a, [$d548] - ld hl, $d549 - and [hl] - jr z, .skipBallMovement - ld a, [wBallYPos + 1] - inc a ; move ball's position down by 1 pixel - ld [wBallYPos + 1], a -.skipBallMovement - ld a, [$d7a0] - dec a - ld [$d7a0], a - ld a, $1 - ld [wUpperTiltPushing], a - ret -.startCoolDown - ld a, $1 - ld [wUpperTiltReset], a -.tiltCoolDown - xor a - ld [wUpperTiltPushing], a - ld a, [wUpperTiltCounter] - and a - jr z, .done - dec a - ld [wUpperTiltCounter], a - ld a, [$d7a0] - inc a - ld [$d7a0], a - ret -.done - ld hl, wKeyConfigUpperTilt - call IsKeyPressed2 - ret nz - xor a - ld [wUpperTiltReset], a - ret - -ApplyTiltForces: ; 0x36c1 - ld a, [$d548] - ld hl, $d549 - and [hl] - ret z - ld c, $0 - ld a, [wUpperTiltPushing] - srl a - rl c - ld a, [wRightTiltPushing] - srl a - rl c - ld a, [wLeftTiltPushing] - srl a - rl c - ld b, $0 - sla c - ld hl, $372d ; todo - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - bit 7, h - ret nz - ld a, [$d7ea] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - add hl, bc - ld a, [hLoadedROMBank] - push af - ld a, $3c - ld [hLoadedROMBank], a - ld [$2000], a - ld a, [wBallXVelocity] - add [hl] - ld [wBallXVelocity], a - inc hl - ld a, [wBallXVelocity + 1] - adc [hl] - ld [wBallXVelocity + 1], a - inc hl - ld a, [wBallYVelocity] - add [hl] - ld [wBallYVelocity], a - inc hl - ld a, [wBallYVelocity + 1] - adc [hl] - ld [wBallYVelocity + 1], a - pop af - ld [hLoadedROMBank], a - ld [$2000], a - ret - -INCBIN "baserom.gbc",$372d,$4000 - $372d - +INCLUDE "home.asm" SECTION "bank1", ROMX, BANK[$1] - -OAMDataPointers: ; 0x4000 - dw BallSpin0OAM - dw BallSpin1OAM - dw BallSpin2OAM - dw BallSpin3OAM - dw BallSpin4OAM - dw BallSpin5OAM - dw BallSpin6OAM - dw BallSpin7OAM - dw OAMData_8 - dw OAMData_9 - dw OAMData_a - dw OAMData_b - dw OAMData_c - dw OAMData_d - dw OAMData_e - dw OAMData_f - dw OAMData_10 - dw OAMData_11 - dw OAMData_12 - dw OAMData_13 - dw OAMData_14 - dw OAMData_15 - dw OAMData_16 - dw OAMData_17 - dw OAMData_18 - dw OAMData_19 - dw OAMData_1a - dw OAMData_1b - dw OAMData_1c - dw OAMData_1d - dw OAMData_1e - dw OAMData_1f - dw OAMData_20 - dw OAMData_21 - dw OAMData_22 - dw OAMData_23 - dw OAMData_24 - dw OAMData_25 - dw OAMData_26 - dw OAMData_27 - dw OAMData_28 - dw OAMData_29 - dw OAMData_2a - dw OAMData_2b - dw OAMData_2c - dw OAMData_2d - dw OAMData_2e - dw OAMData_2f - dw OAMData_30 - dw OAMData_31 - dw OAMData_32 - dw OAMData_33 - dw OAMData_34 - dw OAMData_35 - dw OAMData_36 - dw OAMData_37 - dw OAMData_38 - dw OAMData_39 - dw OAMData_3a - dw OAMData_3b - dw OAMData_3c - dw OAMData_3d - dw OAMData_3e - dw OAMData_3f - dw OAMData_40 - dw OAMData_41 - dw OAMData_42 - dw OAMData_43 - dw OAMData_44 - dw OAMData_45 - dw OAMData_46 - dw OAMData_47 - dw OAMData_48 - dw OAMData_49 - dw OAMData_4a - dw OAMData_4b - dw OAMData_4c - dw OAMData_4d - dw OAMData_4e - dw OAMData_4f - dw OAMData_50 - dw OAMData_51 - dw OAMData_52 - dw OAMData_53 - dw OAMData_54 - dw OAMData_55 - dw OAMData_56 - dw OAMData_57 - dw OAMData_58 - dw OAMData_59 - dw TitlescreenPikachuBlinkFrame1OAM - dw TitlescreenPikachuBlinkFrame2OAM - dw TitlescreenPikachuBlinkFrame3OAM - dw TitlescreenPokeball1OAM - dw TitlescreenPokeball2OAM - dw TitlescreenPokeball3OAM - dw TitlescreenPokeball4OAM - dw TitlescreenPokeball5OAM - dw OAMData_62 - dw OAMData_63 - dw OAMData_64 - dw OAMData_65 - dw OAMData_66 - dw OAMData_67 - dw OAMData_68 - dw OAMData_69 - dw PokeDexTextOAM - dw OAMData_6b - dw Digit0OAM - dw Digit1OAM - dw Digit2OAM - dw Digit3OAM - dw Digit4OAM - dw Digit5OAM - dw Digit6OAM - dw Digit7OAM - dw Digit8OAM - dw Digit9OAM - dw SlashCharacterOAM - dw OAMData_77 - dw OAMData_78 - dw OAMData_79 - dw OAMData_7a - dw OAMData_7b - dw OAMData_7c - dw OAMData_7d - dw OAMData_7e - dw OAMData_7f - dw OAMData_80 - dw OAMData_81 - dw OAMData_82 - dw OAMData_83 - dw OAMData_84 - dw OAMData_85 - dw OAMData_86 - dw OAMData_87 - dw OAMData_88 - dw OAMData_89 - dw OAMData_8a - dw OAMData_8b - dw OAMData_8c - dw OAMData_8d - dw OAMData_8e - dw SendingHighScoresTextOAM - dw OAMData_90 - dw OAMData_91 - dw OAMData_92 - dw OAMData_93 - dw OAMData_94 - dw HighScoresRightArrowOAM - dw HighScoresLeftArrowOAM - dw OAMData_97 - dw SendHighScoresAnimation1OAM - dw SendHighScoresAnimation2OAM - dw SendHighScoresAnimation3OAM - dw SendHighScoresAnimation4OAM - dw SendHighScoresAnimation5OAM - dw SendHighScoresAnimation6OAM - dw FieldSelectRedStageBorderOAM - dw FieldSelectBlueStageBorderOAM - dw OAMData_a0 - dw OAMData_a1 - dw OAMData_a2 - dw OAMData_a3 - dw OAMData_a4 - dw OAMData_a5 - dw OAMData_a6 - dw OAMData_a7 - dw OAMData_a8 - dw OAMData_a9 - dw OAMData_aa - dw OAMData_ab - dw OAMData_ac - dw OAMData_ad - dw OAMData_ae - dw OAMData_af - dw OAMData_b0 - dw Timer0DigitOAM - dw Timer1DigitOAM - dw Timer2DigitOAM - dw Timer3DigitOAM - dw Timer4DigitOAM - dw Timer5DigitOAM - dw Timer6DigitOAM - dw Timer7DigitOAM - dw Timer8DigitOAM - dw Timer9DigitOAM - dw TimerColonOAM - dw OAMData_bc - dw OAMData_bd - dw OAMData_be - dw OAMData_bf - dw OAMData_c0 - dw OAMData_c1 - dw OAMData_c2 - dw OAMData_c3 - dw OAMData_c4 - dw OAMData_c5 - dw OAMData_c6 - dw OAMData_c7 - dw OAMData_c8 - dw OAMData_c9 - dw OAMData_ca - dw OAMData_cb - dw OAMData_cc - dw OAMData_cd - dw OAMData_ce - dw OAMData_cf - dw OAMData_d0 - dw OAMData_d1 - dw OAMData_d2 - dw OAMData_d3 - dw OAMData_d4 - dw OAMData_d5 - dw OAMData_d6 - dw OAMData_d7 - dw OAMData_d8 - dw OAMData_d9 - dw OAMData_da - dw OAMData_db - dw OAMData_dc - dw OAMData_dd - dw OAMData_de - dw OAMData_df - dw OAMData_e0 - dw OAMData_e1 - dw OAMData_e2 - dw OAMData_e3 - dw OAMData_e4 - dw OAMData_e5 - dw OAMData_e6 - dw OAMData_e7 - dw OAMData_e8 - dw OAMData_e9 - dw OAMData_ea - dw OAMData_eb - dw OAMData_ec - dw OAMData_ed - dw OAMData_ee - dw OAMData_ef - dw OAMData_f0 - dw OAMData_f1 - dw OAMData_f2 - dw OAMData_f3 - dw OAMData_f4 - dw OAMData_f5 - dw OAMData_f6 - dw OAMData_f7 - dw OAMData_f8 - -BallSpin0OAM: ; 0x41f2 - db $08, $08, $42, $00 - db $08, $00, $40, $00 - db $80 ; terminator - -BallSpin1OAM: ; 0x41fb - db $08, $08, $46, $00 - db $08, $00, $44, $00 - db $80 ; terminator - -BallSpin2OAM: ; 0x4204 - db $08, $08, $4a, $00 - db $08, $00, $48, $00 - db $80 ; terminator - -BallSpin3OAM: ; 0x420d - db $08, $08, $4e, $00 - db $08, $00, $4c, $00 - db $80 ; terminator - -BallSpin4OAM: ; 0x4216 - db $08, $08, $52, $00 - db $08, $00, $50, $00 - db $80 ; terminator - -BallSpin5OAM: ; 0x421f - db $08, $08, $56, $00 - db $08, $00, $54, $00 - db $80 ; terminator - -BallSpin6OAM: ; 0x4228 - db $08, $08, $5a, $00 - db $08, $00, $58, $00 - db $80 ; terminator - -BallSpin7OAM: ; 0x4231 - db $08, $08, $5e, $00 - db $08, $00, $5c, $00 - db $80 ; terminator - -OAMData_8: ; 0x423a - db $0c, $05, $64, $02 - db $0a, $fd, $62, $02 - db $14, $f5, $60, $02 - db $80 ; terminator - -OAMData_9: ; 0x4247 - db $0c, $05, $6a, $02 - db $04, $fd, $68, $02 - db $0c, $f5, $66, $02 - db $80 ; terminator - -OAMData_a: ; 0x4254 - db $0a, $05, $70, $02 - db $03, $fd, $6e, $02 - db $fd, $f5, $6c, $02 - db $80 ; terminator - -OAMData_b: ; 0x4261 - db $0c, $03, $64, $22 - db $0a, $0b, $62, $22 - db $14, $13, $60, $22 - db $80 ; terminator - -OAMData_c: ; 0x426e - db $0c, $03, $6a, $22 - db $04, $0b, $68, $22 - db $0c, $13, $66, $22 - db $80 ; terminator - -OAMData_d: ; 0x427b - db $0a, $03, $70, $22 - db $03, $0b, $6e, $22 - db $fd, $13, $6c, $22 - db $80 ; terminator - -OAMData_e: ; 0x4288 - db $00, $09, $74, $04 - db $00, $01, $72, $04 - db $80 ; terminator - -OAMData_f: ; 0x4291 - db $00, $01, $76, $04 - db $00, $09, $78, $04 - db $80 ; terminator - -OAMData_10: ; 0x429a - db $00, $09, $7c, $04 - db $00, $01, $7a, $04 - db $80 ; terminator - -OAMData_11: ; 0x42a3 - db $f5, $01, $3d, $51 - db $f1, $06, $3e, $31 - db $00, $09, $7c, $04 - db $00, $01, $7a, $04 - db $80 ; terminator - -OAMData_12: ; 0x42b4 - db $f1, $07, $3c, $11 - db $f1, $02, $3e, $11 - db $00, $09, $7c, $04 - db $00, $01, $7a, $04 - db $80 ; terminator - -OAMData_13: ; 0x42c5 - db $e9, $06, $3e, $31 - db $e9, $01, $3c, $31 - db $f1, $00, $3e, $31 - db $f1, $08, $3c, $31 - db $00, $09, $7c, $04 - db $00, $01, $7a, $04 - db $80 ; terminator - -OAMData_14: ; 0x42de - db $e8, $01, $3e, $11 - db $e8, $06, $3c, $11 - db $f3, $01, $3c, $31 - db $f3, $05, $3e, $31 - db $00, $09, $7c, $04 - db $00, $01, $7a, $04 - db $80 ; terminator - -OAMData_15: ; 0x42f7 - db $e5, $09, $3e, $11 - db $f1, $07, $3c, $11 - db $e9, $02, $3f, $51 - db $f2, $01, $3c, $31 - db $00, $09, $7c, $04 - db $00, $01, $7a, $04 - db $80 ; terminator - -OAMData_16: ; 0x4310 - db $e8, $01, $3d, $51 - db $f5, $00, $3f, $71 - db $f2, $06, $3e, $31 - db $e6, $07, $3c, $11 - db $00, $09, $7c, $04 - db $00, $01, $7a, $04 - db $80 ; terminator - -OAMData_17: ; 0x4329 - db $0c, $05, $64, $11 - db $0a, $fd, $62, $11 - db $14, $f5, $60, $11 - db $80 ; terminator - -OAMData_18: ; 0x4336 - db $0c, $03, $64, $31 - db $0a, $0b, $62, $31 - db $14, $13, $60, $31 - db $80 ; terminator - -OAMData_19: ; 0x4343 - db $00, $08, $a2, $02 - db $00, $00, $a0, $02 - db $80 ; terminator - -OAMData_1a: ; 0x434c - db $00, $10, $9e, $02 - db $00, $08, $9c, $02 - db $00, $00, $9a, $02 - db $00, $f8, $98, $02 - db $f0, $10, $96, $02 - db $f0, $08, $94, $02 - db $f0, $00, $92, $02 - db $f0, $f8, $90, $02 - db $80 ; terminator - -OAMData_1b: ; 0x436d - db $01, $0f, $a7, $62 - db $ff, $f7, $7f, $62 - db $e7, $07, $7e, $02 - db $e7, $fb, $a6, $02 - db $f3, $f4, $a5, $42 - db $e7, $12, $a6, $22 - db $fd, $fd, $a7, $42 - db $ef, $fa, $a6, $02 - db $ed, $0c, $a6, $22 - db $ef, $13, $a4, $22 - db $e6, $02, $a5, $42 - db $02, $05, $a7, $62 - db $fc, $0b, $a7, $62 - db $f7, $f9, $a4, $02 - db $fb, $10, $a5, $62 - db $f5, $09, $42, $00 - db $f5, $01, $40, $00 - db $80 ; terminator - -OAMData_1c: ; 0x43b2 - db $02, $11, $7f, $42 - db $e6, $f9, $7e, $22 - db $e6, $0f, $7e, $02 - db $f5, $f0, $a5, $42 - db $05, $05, $a7, $62 - db $f0, $09, $42, $00 - db $f0, $01, $40, $00 - db $f5, $17, $a5, $62 - db $01, $f7, $7f, $62 - db $80 ; terminator - -OAMData_1d: ; 0x43d7 - db $ee, $09, $42, $00 - db $ee, $01, $40, $00 - db $80 ; terminator - -OAMData_1e: ; 0x43e0 - db $ed, $09, $42, $00 - db $ed, $01, $40, $00 - db $80 ; terminator - -OAMData_1f: ; 0x43e9 - db $ee, $09, $42, $00 - db $ee, $01, $40, $00 - db $80 ; terminator - -OAMData_20: ; 0x43f2 - db $f0, $09, $42, $00 - db $f0, $01, $40, $00 - db $80 ; terminator - -OAMData_21: ; 0x43fb - db $f5, $09, $42, $00 - db $f5, $01, $40, $00 - db $80 ; terminator - -OAMData_22: ; 0x4404 - db $fb, $09, $42, $00 - db $fb, $01, $40, $00 - db $80 ; terminator - -OAMData_23: ; 0x440d - db $02, $09, $42, $00 - db $02, $01, $40, $00 - db $80 ; terminator - -OAMData_24: ; 0x4416 - db $01, $09, $42, $00 - db $01, $01, $40, $00 - db $80 ; terminator - -OAMData_25: ; 0x441f - db $02, $0a, $3a, $00 - db $02, $02, $38, $00 - db $80 ; terminator - -OAMData_26: ; 0x4428 - db $fb, $0a, $9e, $15 - db $fb, $02, $9c, $15 - db $ff, $15, $9a, $13 - db $ff, $0d, $98, $13 - db $ff, $05, $96, $13 - db $ff, $fd, $94, $13 - db $ef, $08, $92, $13 - db $ef, $00, $90, $13 - db $80 ; terminator - -OAMData_27: ; 0x4449 - db $fc, $0a, $1c, $15 - db $fc, $02, $1a, $15 - db $fe, $15, $9a, $13 - db $ff, $0d, $a8, $13 - db $ff, $05, $a6, $13 - db $ff, $fd, $a4, $13 - db $ef, $08, $a2, $13 - db $ef, $00, $a0, $13 - db $80 ; terminator - -OAMData_28: ; 0x446a - db $ff, $08, $2e, $15 - db $ff, $00, $2c, $15 - db $ff, $10, $2a, $13 - db $ff, $08, $28, $13 - db $ff, $00, $26, $13 - db $ff, $f8, $24, $13 - db $ef, $10, $22, $13 - db $ef, $08, $20, $13 - db $ef, $00, $1e, $13 - db $80 ; terminator - -OAMData_29: ; 0x448f - db $ef, $03, $92, $15 - db $f3, $0b, $94, $15 - db $f3, $fb, $90, $15 - db $0d, $09, $9e, $13 - db $fd, $09, $9c, $13 - db $0d, $01, $9a, $13 - db $fd, $01, $98, $13 - db $00, $11, $a0, $13 - db $00, $f9, $96, $13 - db $80 ; terminator - -OAMData_2a: ; 0x44b4 - db $f0, $04, $a4, $15 - db $f3, $0c, $a6, $15 - db $f3, $fc, $a2, $15 - db $00, $12, $1e, $13 - db $00, $0a, $1c, $13 - db $00, $02, $1a, $13 - db $00, $fa, $a8, $13 - db $80 ; terminator - -OAMData_2b: ; 0x44d1 - db $f8, $10, $26, $15 - db $f3, $08, $24, $15 - db $f3, $00, $22, $15 - db $f8, $f8, $20, $15 - db $00, $10, $2e, $13 - db $00, $08, $2c, $13 - db $00, $00, $2a, $13 - db $00, $f8, $28, $13 - db $80 ; terminator - -OAMData_2c: ; 0x44f2 - db $00, $10, $9e, $13 - db $00, $08, $9c, $13 - db $00, $00, $9a, $13 - db $00, $f8, $98, $13 - db $f0, $10, $96, $13 - db $f0, $08, $94, $13 - db $f0, $00, $92, $13 - db $f0, $f8, $90, $13 - db $80 ; terminator - -OAMData_2d: ; 0x4513 - db $00, $10, $1e, $13 - db $00, $08, $1c, $13 - db $00, $00, $1a, $13 - db $00, $f8, $a8, $13 - db $f0, $10, $a6, $13 - db $f0, $08, $a4, $13 - db $f0, $00, $a2, $13 - db $f0, $f8, $a0, $13 - db $80 ; terminator - -OAMData_2e: ; 0x4534 - db $00, $10, $2e, $13 - db $00, $08, $2c, $13 - db $00, $00, $2a, $13 - db $00, $f8, $28, $13 - db $f0, $10, $26, $13 - db $f0, $08, $24, $13 - db $f0, $00, $22, $13 - db $f0, $f8, $20, $13 - db $80 ; terminator - -OAMData_2f: ; 0x4555 - db $00, $10, $9e, $13 - db $00, $08, $9c, $13 - db $00, $00, $9a, $13 - db $00, $f8, $98, $13 - db $f0, $10, $96, $13 - db $f0, $08, $94, $13 - db $f0, $00, $92, $13 - db $f0, $f8, $90, $13 - db $80 ; terminator - -OAMData_30: ; 0x4576 - db $00, $10, $1e, $13 - db $00, $08, $1c, $13 - db $00, $00, $1a, $13 - db $00, $f8, $a8, $13 - db $f0, $10, $a6, $13 - db $f0, $08, $a4, $13 - db $f0, $00, $a2, $13 - db $f0, $f8, $a0, $13 - db $80 ; terminator - -OAMData_31: ; 0x4597 - db $01, $10, $2e, $13 - db $01, $08, $2c, $13 - db $01, $00, $2a, $13 - db $01, $f8, $28, $13 - db $f1, $10, $26, $13 - db $f1, $08, $24, $13 - db $f1, $00, $22, $13 - db $f1, $f8, $20, $13 - db $80 ; terminator - -OAMData_32: ; 0x45b8 - db $10, $08, $30, $06 - db $80 ; terminator - -OAMData_33: ; 0x45bd - db $10, $08, $30, $26 - db $80 ; terminator - -OAMData_34: ; 0x45c2 - db $10, $08, $32, $06 - db $80 ; terminator - -OAMData_35: ; 0x45c7 - db $10, $08, $32, $26 - db $80 ; terminator - -OAMData_36: ; 0x45cc - db $10, $08, $34, $06 - db $80 ; terminator - -OAMData_37: ; 0x45d1 - db $10, $08, $34, $26 - db $80 ; terminator - -OAMData_38: ; 0x45d6 - db $10, $08, $36, $06 - db $80 ; terminator - -OAMData_39: ; 0x45db - db $08, $08, $37, $46 - db $80 ; terminator - -OAMData_3a: ; 0x45e0 - db $10, $08, $90, $06 - db $80 ; terminator - -OAMData_3b: ; 0x45e5 - db $10, $08, $92, $06 - db $80 ; terminator - -OAMData_3c: ; 0x45ea - db $10, $08, $94, $06 - db $80 ; terminator - -OAMData_3d: ; 0x45ef - db $10, $08, $96, $17 - db $80 ; terminator - -OAMData_3e: ; 0x45f4 - db $10, $08, $98, $17 - db $80 ; terminator - -OAMData_3f: ; 0x45f9 - db $10, $08, $9a, $06 - db $80 ; terminator - -OAMData_40: ; 0x45fe - db $10, $08, $9c, $06 - db $80 ; terminator - -OAMData_41: ; 0x4603 - db $10, $08, $20, $06 - db $80 ; terminator - -OAMData_42: ; 0x4608 - db $10, $08, $22, $06 - db $80 ; terminator - -OAMData_43: ; 0x460d - db $10, $08, $24, $06 - db $80 ; terminator - -OAMData_44: ; 0x4612 - db $10, $08, $26, $17 - db $80 ; terminator - -OAMData_45: ; 0x4617 - db $10, $08, $28, $17 - db $80 ; terminator - -OAMData_46: ; 0x461c - db $10, $08, $2a, $06 - db $80 ; terminator - -OAMData_47: ; 0x4621 - db $10, $08, $2c, $06 - db $80 ; terminator - -OAMData_48: ; 0x4626 - db $10, $08, $60, $06 - db $80 ; terminator - -OAMData_49: ; 0x462b - db $10, $08, $62, $06 - db $80 ; terminator - -OAMData_4a: ; 0x4630 - db $10, $08, $64, $06 - db $80 ; terminator - -OAMData_4b: ; 0x4635 - db $10, $08, $66, $17 - db $80 ; terminator - -OAMData_4c: ; 0x463a - db $10, $08, $68, $17 - db $80 ; terminator - -OAMData_4d: ; 0x463f - db $10, $08, $6a, $06 - db $80 ; terminator - -OAMData_4e: ; 0x4644 - db $10, $08, $6c, $06 - db $80 ; terminator - -OAMData_4f: ; 0x4649 - db $1f, $19, $20, $37 - db $1f, $21, $1e, $37 - db $0f, $19, $1c, $37 - db $0f, $21, $1a, $37 - db $1f, $10, $20, $17 - db $1f, $08, $1e, $17 - db $0f, $10, $1c, $17 - db $0f, $08, $1a, $17 - db $80 ; terminator - -OAMData_50: ; 0x466a - db $1f, $19, $28, $37 - db $1f, $21, $26, $37 - db $0f, $19, $24, $37 - db $0f, $21, $22, $37 - db $1f, $10, $28, $17 - db $1f, $08, $26, $17 - db $0f, $10, $24, $17 - db $0f, $08, $22, $17 - db $80 ; terminator - -OAMData_51: ; 0x468b - db $1f, $19, $38, $37 - db $1f, $10, $38, $17 - db $1f, $21, $2e, $37 - db $0f, $19, $2c, $37 - db $0f, $21, $2a, $37 - db $1f, $08, $2e, $17 - db $0f, $10, $2c, $17 - db $0f, $08, $2a, $17 - db $80 ; terminator - -OAMData_52: ; 0x46ac - db $08, $f8, $60, $00 - db $80 ; terminator - -OAMData_53: ; 0x46b1 - db $08, $08, $60, $00 - db $08, $00, $60, $00 - db $08, $f8, $60, $00 - db $80 ; terminator - -OAMData_54: ; 0x46be - db $08, $20, $60, $00 - db $08, $18, $60, $00 - db $08, $10, $60, $00 - db $08, $08, $60, $00 - db $08, $00, $60, $00 - db $08, $f8, $60, $00 - db $80 ; terminator - -OAMData_55: ; 0x46d7 - db $10, $20, $60, $00 - db $10, $18, $60, $00 - db $10, $10, $60, $00 - db $10, $08, $60, $00 - db $10, $00, $60, $00 - db $10, $f8, $60, $00 - db $08, $20, $60, $00 - db $08, $18, $60, $00 - db $08, $10, $60, $00 - db $08, $08, $60, $00 - db $08, $00, $60, $00 - db $08, $f8, $60, $00 - db $80 ; terminator - -OAMData_56: ; 0x4708 - db $10, $20, $60, $40 - db $10, $18, $60, $40 - db $10, $10, $60, $40 - db $10, $08, $60, $40 - db $10, $00, $60, $40 - db $18, $20, $60, $40 - db $18, $18, $60, $40 - db $18, $10, $60, $40 - db $18, $08, $60, $40 - db $18, $00, $60, $40 - db $18, $f8, $60, $40 - db $10, $f8, $60, $40 - db $08, $f8, $60, $40 - db $08, $20, $59, $00 - db $08, $18, $58, $00 - db $08, $10, $57, $00 - db $08, $08, $56, $00 - db $08, $00, $55, $00 - db $80 ; terminator - -OAMData_57: ; 0x4751 - db $18, $20, $60, $40 - db $18, $18, $60, $40 - db $18, $10, $60, $40 - db $18, $08, $60, $40 - db $18, $00, $60, $40 - db $18, $f8, $60, $40 - db $10, $f8, $60, $40 - db $08, $f8, $60, $40 - db $10, $20, $5f, $00 - db $10, $18, $5e, $00 - db $10, $10, $5d, $00 - db $10, $08, $5c, $00 - db $10, $00, $5b, $00 - db $08, $20, $59, $00 - db $08, $18, $58, $00 - db $08, $10, $57, $00 - db $08, $08, $56, $00 - db $08, $00, $55, $00 - db $80 ; terminator - -OAMData_58: ; 0x479a - db $18, $f8, $60, $40 - db $10, $f8, $5a, $00 - db $08, $f8, $54, $00 - db $18, $20, $65, $00 - db $18, $18, $64, $00 - db $18, $10, $63, $00 - db $18, $08, $62, $00 - db $18, $00, $61, $00 - db $10, $20, $5f, $00 - db $10, $18, $5e, $00 - db $10, $10, $5d, $00 - db $10, $08, $5c, $00 - db $10, $00, $5b, $00 - db $08, $20, $59, $00 - db $08, $18, $58, $00 - db $08, $10, $57, $00 - db $08, $08, $56, $00 - db $08, $00, $55, $00 - db $80 ; terminator - -OAMData_59: ; 0x47e3 - db $08, $f8, $60, $40 - db $18, $f8, $67, $00 - db $10, $f8, $66, $00 - db $18, $20, $65, $00 - db $18, $18, $64, $00 - db $18, $10, $63, $00 - db $18, $08, $62, $00 - db $18, $00, $61, $00 - db $10, $20, $5f, $00 - db $10, $18, $5e, $00 - db $10, $10, $5d, $00 - db $10, $08, $5c, $00 - db $10, $00, $5b, $00 - db $08, $20, $59, $00 - db $08, $18, $58, $00 - db $08, $10, $57, $00 - db $08, $08, $56, $00 - db $08, $00, $55, $00 - db $80 ; terminator - -TitlescreenPikachuBlinkFrame1OAM: ; 0x482c - db $10, $28, $3f, $00 - db $10, $20, $3e, $00 - db $10, $18, $3d, $00 - db $10, $10, $3c, $00 - db $10, $08, $3b, $00 - db $80 ; terminator - -TitlescreenPikachuBlinkFrame2OAM: ; 0x4841 - db $18, $09, $44, $00 - db $10, $10, $41, $00 - db $10, $08, $40, $00 - db $80 ; terminator - -TitlescreenPikachuBlinkFrame3OAM: ; 0x484e - db $18, $09, $45, $00 - db $10, $10, $43, $00 - db $10, $08, $42, $00 - db $80 ; terminator - -; These next 5 OAM entries are for the individual frames of the -; bouncing pokeball on the titlescreen. -TitlescreenPokeball1OAM: ; 0x485b - db $14, $00, $4c, $02 - db $0c, $00, $46, $31 - db $14, $f8, $47, $02 - db $0c, $f8, $46, $11 - db $80 ; terminator - -TitlescreenPokeball2OAM: ; 0x486c - db $15, $00, $4d, $02 - db $0d, $00, $48, $31 - db $15, $f8, $49, $02 - db $0d, $f8, $48, $11 - db $80 ; terminator - -TitlescreenPokeball3OAM: ; 0x487d - db $13, $00, $4c, $02 - db $0b, $00, $46, $31 - db $13, $f8, $47, $02 - db $0b, $f8, $46, $11 - db $80 ; terminator - -TitlescreenPokeball4OAM: ; 0x488e - db $11, $00, $4e, $02 - db $09, $00, $4a, $31 - db $11, $f8, $4b, $02 - db $09, $f8, $4a, $11 - db $80 ; terminator - -TitlescreenPokeball5OAM: ; 0x489f - db $11, $00, $4c, $02 - db $09, $00, $46, $31 - db $11, $f8, $47, $02 - db $09, $f8, $46, $11 - db $80 ; terminator - -OAMData_62: ; 0x48b0 - db $10, $20, $53, $11 - db $10, $18, $52, $11 - db $08, $20, $51, $11 - db $18, $0c, $50, $11 - db $10, $0c, $4f, $11 - db $80 ; terminator - -OAMData_63: ; 0x48c5 - db $10, $08, $70, $11 - db $80 ; terminator - -OAMData_64: ; 0x48ca - db $10, $10, $71, $31 - db $10, $08, $71, $11 - db $80 ; terminator - -OAMData_65: ; 0x48d3 - db $10, $18, $74, $17 - db $10, $10, $73, $00 - db $10, $08, $72, $17 - db $80 ; terminator - -OAMData_66: ; 0x48e0 - db $10, $18, $77, $17 - db $10, $10, $76, $00 - db $10, $08, $75, $17 - db $80 ; terminator - -OAMData_67: ; 0x48ed - db $10, $08, $78, $00 - db $80 ; terminator - -OAMData_68: ; 0x48f2 - db $10, $08, $79, $00 - db $80 ; terminator - -OAMData_69: ; 0x48f7 - db $10, $08, $79, $11 - db $80 ; terminator - -PokeDexTextOAM: ; 0x48fc -; "POKeDEX" in the top-right corner of the Pokedex screen - db $12, $34, $7f, $11 - db $12, $2c, $7e, $11 - db $12, $24, $7d, $11 - db $12, $1c, $7c, $11 - db $12, $14, $7b, $11 - db $12, $0c, $7a, $11 - db $80 ; terminator - -OAMData_6b: ; 0x4915 - db $10, $08, $6f, $11 - db $80 ; terminator - -Digit0OAM: ; 0x491a - db $10, $08, $53, $11 - db $80 ; terminator - -Digit1OAM: ; 0x491f - db $10, $08, $54, $11 - db $80 ; terminator - -Digit2OAM: ; 0x4924 - db $10, $08, $55, $11 - db $80 ; terminator - -Digit3OAM: ; 0x4929 - db $10, $08, $56, $11 - db $80 ; terminator - -Digit4OAM: ; 0x492e - db $10, $08, $57, $11 - db $80 ; terminator - -Digit5OAM: ; 0x4933 - db $10, $08, $58, $11 - db $80 ; terminator - -Digit6OAM: ; 0x4938 - db $10, $08, $59, $11 - db $80 ; terminator - -Digit7OAM: ; 0x493d - db $10, $08, $5a, $11 - db $80 ; terminator - -Digit8OAM: ; 0x4942 - db $10, $08, $5b, $11 - db $80 ; terminator - -Digit9OAM: ; 0x4947 - db $10, $08, $5c, $11 - db $80 ; terminator - -SlashCharacterOAM: ; 0x494c -; "/" (used to separate seen/own count on the pokedex screen) - db $10, $08, $5e, $11 - db $80 ; terminator - -OAMData_77: ; 0x4951 - db $11, $07, $34, $00 - db $80 ; terminator - -OAMData_78: ; 0x4956 - db $0f, $07, $36, $00 - db $80 ; terminator - -OAMData_79: ; 0x495b - db $0f, $07, $38, $00 - db $80 ; terminator - -OAMData_7a: ; 0x4960 - db $f4, $18, $26, $13 - db $f4, $10, $24, $13 - db $f4, $08, $22, $13 - db $10, $00, $3a, $02 - db $09, $10, $3e, $00 - db $08, $08, $3c, $00 - db $80 ; terminator - -OAMData_7b: ; 0x4979 - db $10, $28, $78, $00 - db $10, $08, $5c, $02 - db $10, $10, $5e, $02 - db $10, $18, $60, $02 - db $10, $20, $62, $02 - db $20, $08, $64, $02 - db $20, $10, $66, $02 - db $20, $18, $68, $02 - db $20, $20, $6a, $02 - db $20, $28, $6c, $02 - db $30, $08, $6e, $02 - db $30, $10, $70, $02 - db $30, $18, $72, $02 - db $30, $20, $74, $02 - db $30, $28, $76, $02 - db $80 ; terminator - -OAMData_7c: ; 0x49b6 - db $11, $29, $7a, $02 - db $11, $09, $40, $02 - db $11, $11, $42, $02 - db $11, $19, $44, $02 - db $11, $21, $46, $02 - db $21, $09, $48, $02 - db $21, $11, $4a, $02 - db $21, $19, $4c, $02 - db $21, $21, $4e, $02 - db $21, $29, $50, $02 - db $31, $09, $52, $02 - db $31, $11, $54, $02 - db $31, $19, $56, $02 - db $31, $21, $58, $02 - db $31, $29, $5a, $02 - db $80 ; terminator - -OAMData_7d: ; 0x49f3 - db $0c, $10, $2a, $04 - db $0c, $08, $28, $04 - db $80 ; terminator - -OAMData_7e: ; 0x49fc - db $0d, $10, $2e, $04 - db $0d, $08, $2c, $04 - db $80 ; terminator - -OAMData_7f: ; 0x4a05 - db $0b, $10, $2a, $04 - db $0b, $08, $28, $04 - db $80 ; terminator - -OAMData_80: ; 0x4a0e - db $09, $10, $32, $04 - db $09, $08, $30, $04 - db $80 ; terminator - -OAMData_81: ; 0x4a17 - db $09, $10, $2a, $04 - db $09, $08, $28, $04 - db $80 ; terminator - -OAMData_82: ; 0x4a20 - db $10, $08, $7c, $00 - db $80 ; terminator - -OAMData_83: ; 0x4a25 - db $10, $08, $7c, $20 - db $80 ; terminator - -OAMData_84: ; 0x4a2a - db $10, $08, $7e, $11 - db $80 ; terminator - -OAMData_85: ; 0x4a2f - db $10, $08, $20, $13 - db $80 ; terminator - -OAMData_86: ; 0x4a34 - db $18, $08, $7f, $00 - db $10, $08, $7e, $00 - db $80 ; terminator - -OAMData_87: ; 0x4a3d - db $20, $25, $15, $02 - db $18, $25, $0f, $02 - db $10, $25, $0a, $02 - db $18, $1d, $0e, $02 - db $18, $15, $0d, $02 - db $18, $0d, $0c, $02 - db $18, $05, $0b, $02 - db $10, $1d, $09, $02 - db $10, $15, $08, $02 - db $10, $0d, $07, $02 - db $10, $05, $06, $02 - db $20, $1d, $14, $02 - db $20, $15, $13, $02 - db $20, $0d, $12, $02 - db $20, $05, $11, $02 - db $80 ; terminator - -OAMData_88: ; 0x4a7a - db $20, $f5, $10, $02 - db $18, $f5, $02, $02 - db $10, $f5, $01, $02 - db $80 ; terminator - -OAMData_89: ; 0x4a87 - db $10, $f5, $10, $42 - db $18, $f5, $02, $42 - db $20, $f5, $01, $42 - db $80 ; terminator - -OAMData_8a: ; 0x4a94 - db $20, $fd, $00, $02 - db $18, $fd, $00, $02 - db $10, $fd, $00, $02 - db $80 ; terminator - -OAMData_8b: ; 0x4aa1 - db $20, $fd, $00, $02 - db $18, $fd, $04, $02 - db $10, $fd, $03, $02 - db $80 ; terminator - -OAMData_8c: ; 0x4aae - db $10, $fd, $00, $02 - db $18, $fd, $04, $42 - db $20, $fd, $03, $42 - db $80 ; terminator - -OAMData_8d: ; 0x4abb - db $18, $fd, $05, $02 - db $20, $fd, $03, $42 - db $10, $fd, $03, $02 - db $80 ; terminator - -OAMData_8e: ; 0x4ac8 - db $0e, $2f, $1f, $02 - db $0e, $27, $1e, $02 - db $16, $2f, $29, $02 - db $16, $27, $28, $02 - db $16, $1f, $27, $02 - db $16, $17, $26, $02 - db $16, $0f, $25, $02 - db $16, $07, $24, $02 - db $16, $ff, $23, $02 - db $16, $f7, $22, $02 - db $16, $ef, $21, $02 - db $16, $e7, $20, $02 - db $0e, $1f, $1d, $02 - db $0e, $17, $1c, $02 - db $0e, $0f, $1b, $02 - db $0e, $07, $1a, $02 - db $0e, $ff, $19, $02 - db $0e, $f7, $18, $02 - db $0e, $ef, $17, $02 - db $0e, $e7, $16, $02 - db $80 ; terminator - -SendingHighScoresTextOAM: ; 0x4b19 -; The text "SENDING..." during the sending high scores animation. - db $0e, $2f, $1f, $02 - db $0e, $27, $1e, $02 - db $16, $2f, $3b, $02 - db $16, $27, $3a, $02 - db $16, $1f, $39, $02 - db $16, $17, $38, $02 - db $16, $0f, $37, $02 - db $16, $07, $36, $02 - db $16, $ff, $35, $02 - db $16, $f7, $34, $02 - db $16, $ef, $33, $02 - db $16, $e7, $32, $02 - db $0e, $1f, $31, $02 - db $0e, $17, $30, $02 - db $0e, $0f, $2f, $02 - db $0e, $07, $2e, $02 - db $0e, $ff, $2d, $02 - db $0e, $f7, $2c, $02 - db $0e, $ef, $2b, $02 - db $0e, $e7, $2a, $02 - db $80 ; terminator - -OAMData_90: ; 0x4b6a - db $1d, $14, $48, $02 - db $1d, $0c, $47, $02 - db $15, $1c, $45, $02 - db $15, $14, $44, $02 - db $15, $0c, $43, $02 - db $15, $04, $42, $02 - db $15, $fc, $41, $02 - db $1d, $1c, $00, $02 - db $1d, $fc, $00, $02 - db $25, $1c, $4c, $22 - db $25, $14, $4e, $02 - db $25, $0c, $4e, $02 - db $25, $04, $4d, $02 - db $25, $fc, $4c, $02 - db $1d, $04, $46, $02 - db $0d, $1c, $40, $02 - db $0d, $14, $3f, $02 - db $0d, $0c, $3e, $02 - db $0d, $04, $3d, $02 - db $0d, $fc, $3c, $02 - db $80 ; terminator - -OAMData_91: ; 0x4bbb - db $1d, $14, $49, $02 - db $1d, $0c, $47, $02 - db $15, $1c, $45, $02 - db $15, $14, $44, $02 - db $15, $0c, $43, $02 - db $15, $04, $42, $02 - db $15, $fc, $41, $02 - db $1d, $1c, $00, $02 - db $1d, $fc, $00, $02 - db $25, $1c, $4c, $22 - db $25, $14, $4e, $02 - db $25, $0c, $4e, $02 - db $25, $04, $4d, $02 - db $25, $fc, $4c, $02 - db $1d, $04, $46, $02 - db $0d, $1c, $40, $02 - db $0d, $14, $3f, $02 - db $0d, $0c, $3e, $02 - db $0d, $04, $3d, $02 - db $0d, $fc, $3c, $02 - db $80 ; terminator - -OAMData_92: ; 0x4c0c - db $1d, $14, $4a, $02 - db $1d, $0c, $47, $02 - db $15, $1c, $45, $02 - db $15, $14, $44, $02 - db $15, $0c, $43, $02 - db $15, $04, $42, $02 - db $15, $fc, $41, $02 - db $1d, $1c, $00, $02 - db $1d, $fc, $00, $02 - db $25, $1c, $4c, $22 - db $25, $14, $4e, $02 - db $25, $0c, $4e, $02 - db $25, $04, $4d, $02 - db $25, $fc, $4c, $02 - db $1d, $04, $46, $02 - db $0d, $1c, $40, $02 - db $0d, $14, $3f, $02 - db $0d, $0c, $3e, $02 - db $0d, $04, $3d, $02 - db $0d, $fc, $3c, $02 - db $80 ; terminator - -OAMData_93: ; 0x4c5d - db $1d, $14, $4b, $02 - db $1d, $0c, $47, $02 - db $15, $1c, $45, $02 - db $15, $14, $44, $02 - db $15, $0c, $43, $02 - db $15, $04, $42, $02 - db $15, $fc, $41, $02 - db $1d, $1c, $00, $02 - db $1d, $fc, $00, $02 - db $25, $1c, $4c, $22 - db $25, $14, $4e, $02 - db $25, $0c, $4e, $02 - db $25, $04, $4d, $02 - db $25, $fc, $4c, $02 - db $1d, $04, $46, $02 - db $0d, $1c, $40, $02 - db $0d, $14, $3f, $02 - db $0d, $0c, $3e, $02 - db $0d, $04, $3d, $02 - db $0d, $fc, $3c, $02 - db $80 ; terminator - -OAMData_94: ; 0x4cae - db $28, $eb, $10, $02 - db $20, $2b, $00, $02 - db $20, $eb, $00, $02 - db $28, $33, $58, $42 - db $20, $33, $62, $02 - db $18, $33, $62, $02 - db $18, $2b, $61, $02 - db $10, $33, $58, $02 - db $10, $2b, $57, $02 - db $20, $23, $69, $02 - db $20, $1b, $68, $02 - db $20, $13, $67, $02 - db $20, $0b, $66, $02 - db $20, $03, $65, $02 - db $20, $fb, $64, $02 - db $20, $f3, $63, $02 - db $18, $23, $60, $02 - db $18, $1b, $5f, $02 - db $18, $13, $5e, $02 - db $18, $0b, $5d, $02 - db $18, $03, $5c, $02 - db $18, $fb, $5b, $02 - db $18, $f3, $5a, $02 - db $18, $eb, $59, $02 - db $10, $23, $56, $02 - db $10, $1b, $55, $02 - db $10, $13, $54, $02 - db $10, $0b, $53, $02 - db $10, $03, $52, $02 - db $10, $fb, $51, $02 - db $10, $f3, $50, $02 - db $10, $eb, $4f, $02 - db $28, $2b, $71, $02 - db $28, $23, $70, $02 - db $28, $1b, $6f, $02 - db $28, $13, $6e, $02 - db $28, $0b, $6d, $02 - db $28, $03, $6c, $02 - db $28, $fb, $6b, $02 - db $28, $f3, $6a, $02 - db $80 ; terminator - -HighScoresRightArrowOAM: ; 0x4d4f - db $18, $18, $7d, $11 - db $18, $10, $7c, $11 - db $18, $08, $7b, $11 - db $10, $10, $7a, $11 - db $80 ; terminator - -HighScoresLeftArrowOAM: ; 0x4d60 - db $18, $08, $7d, $31 - db $18, $10, $7c, $31 - db $18, $18, $7b, $31 - db $10, $10, $7a, $31 - db $80 ; terminator - -OAMData_97: ; 0x4d71 - db $16, $30, $8b, $02 - db $16, $28, $8a, $02 - db $16, $20, $89, $02 - db $16, $18, $88, $02 - db $16, $10, $87, $02 - db $16, $08, $86, $02 - db $16, $00, $85, $02 - db $16, $f8, $84, $02 - db $16, $f0, $83, $02 - db $16, $e8, $82, $02 - db $0e, $30, $81, $02 - db $0e, $28, $80, $02 - db $0e, $20, $79, $02 - db $0e, $18, $78, $02 - db $0e, $10, $77, $02 - db $0e, $08, $76, $02 - db $0e, $00, $75, $02 - db $0e, $f8, $74, $02 - db $0e, $f0, $73, $02 - db $0e, $e8, $72, $02 - db $80 ; terminator - -SendHighScoresAnimation1OAM: ; 0x4dc2 - db $18, $10, $8f, $04 - db $18, $08, $8e, $04 - db $10, $10, $8d, $04 - db $10, $08, $8c, $04 - db $80 ; terminator - -SendHighScoresAnimation2OAM: ; 0x4dd3 - db $18, $10, $91, $04 - db $18, $08, $90, $04 - db $10, $10, $8d, $04 - db $10, $08, $8c, $04 - db $80 ; terminator - -SendHighScoresAnimation3OAM: ; 0x4de4 - db $18, $10, $93, $04 - db $18, $08, $92, $04 - db $10, $10, $8d, $04 - db $10, $08, $8c, $04 - db $80 ; terminator - -SendHighScoresAnimation4OAM: ; 0x4df5 - db $10, $10, $95, $04 - db $10, $08, $94, $04 - db $18, $10, $93, $04 - db $18, $08, $92, $04 - db $80 ; terminator - -SendHighScoresAnimation5OAM: ; 0x4e06 - db $18, $10, $97, $04 - db $18, $08, $96, $04 - db $10, $10, $95, $04 - db $10, $08, $94, $04 - db $80 ; terminator - -SendHighScoresAnimation6OAM: ; 0x4e17 - db $18, $10, $8f, $04 - db $18, $08, $8e, $04 - db $10, $10, $95, $04 - db $10, $08, $94, $04 - db $80 ; terminator - -FieldSelectRedStageBorderOAM: ; 0x4e28 - db $36, $1c, $71, $40 - db $26, $24, $72, $60 - db $2e, $24, $72, $60 - db $36, $24, $70, $60 - db $36, $17, $71, $40 - db $36, $0f, $71, $40 - db $36, $07, $71, $40 - db $36, $ff, $71, $40 - db $36, $f7, $71, $40 - db $26, $e8, $72, $40 - db $2e, $e8, $72, $40 - db $36, $f0, $71, $40 - db $36, $e8, $70, $40 - db $22, $e8, $72, $40 - db $22, $24, $72, $60 - db $12, $24, $72, $60 - db $1a, $24, $72, $60 - db $0a, $24, $72, $20 - db $12, $e8, $72, $40 - db $1a, $e8, $72, $40 - db $0a, $e8, $72, $00 - db $e2, $1c, $71, $00 - db $02, $e8, $72, $00 - db $02, $24, $72, $20 - db $fa, $24, $72, $20 - db $f2, $24, $72, $20 - db $ea, $24, $72, $20 - db $e2, $17, $71, $00 - db $e2, $0f, $71, $00 - db $e2, $07, $71, $00 - db $e2, $24, $70, $20 - db $e2, $ff, $71, $00 - db $e2, $f7, $71, $00 - db $fa, $e8, $72, $00 - db $f2, $e8, $72, $00 - db $ea, $e8, $72, $00 - db $e2, $f0, $71, $00 - db $e2, $e8, $70, $00 - db $80 ; terminator - -FieldSelectBlueStageBorderOAM: ; 0x4ec1 - db $36, $1c, $74, $40 - db $26, $24, $75, $60 - db $2e, $24, $75, $60 - db $36, $24, $73, $60 - db $36, $17, $74, $40 - db $36, $0f, $74, $40 - db $36, $07, $74, $40 - db $36, $ff, $74, $40 - db $36, $f7, $74, $40 - db $26, $e8, $75, $40 - db $2e, $e8, $75, $40 - db $36, $f0, $74, $40 - db $36, $e8, $73, $40 - db $22, $e8, $75, $40 - db $22, $24, $75, $60 - db $12, $24, $75, $60 - db $1a, $24, $75, $60 - db $0a, $24, $75, $20 - db $12, $e8, $75, $40 - db $1a, $e8, $75, $40 - db $0a, $e8, $75, $00 - db $e2, $1c, $74, $00 - db $02, $e8, $75, $00 - db $02, $24, $75, $20 - db $fa, $24, $75, $20 - db $f2, $24, $75, $20 - db $ea, $24, $75, $20 - db $e2, $17, $74, $00 - db $e2, $0f, $74, $00 - db $e2, $07, $74, $00 - db $e2, $24, $73, $20 - db $e2, $ff, $74, $00 - db $e2, $f7, $74, $00 - db $fa, $e8, $75, $00 - db $f2, $e8, $75, $00 - db $ea, $e8, $75, $00 - db $e2, $f0, $74, $00 - db $e2, $e8, $73, $00 - db $80 ; terminator - -OAMData_a0: ; 0x4f5a - db $36, $1c, $77, $40 - db $26, $24, $78, $60 - db $2e, $24, $78, $60 - db $36, $24, $76, $60 - db $36, $17, $77, $40 - db $36, $0f, $77, $40 - db $36, $07, $77, $40 - db $36, $ff, $77, $40 - db $36, $f7, $77, $40 - db $26, $e8, $78, $40 - db $2e, $e8, $78, $40 - db $36, $f0, $77, $40 - db $36, $e8, $76, $40 - db $22, $e8, $78, $40 - db $22, $24, $78, $60 - db $12, $24, $78, $60 - db $1a, $24, $78, $60 - db $0a, $24, $78, $20 - db $12, $e8, $78, $40 - db $1a, $e8, $78, $40 - db $0a, $e8, $78, $00 - db $e2, $1c, $77, $00 - db $02, $e8, $78, $00 - db $02, $24, $78, $20 - db $fa, $24, $78, $20 - db $f2, $24, $78, $20 - db $ea, $24, $78, $20 - db $e2, $17, $77, $00 - db $e2, $0f, $77, $00 - db $e2, $07, $77, $00 - db $e2, $24, $76, $20 - db $e2, $ff, $77, $00 - db $e2, $f7, $77, $00 - db $fa, $e8, $78, $00 - db $f2, $e8, $78, $00 - db $ea, $e8, $78, $00 - db $e2, $f0, $77, $00 - db $e2, $e8, $76, $00 - db $80 ; terminator - -OAMData_a1: ; 0x4ff3 - db $10, $08, $7c, $08 - db $80 ; terminator - -OAMData_a2: ; 0x4ff8 - db $08, $08, $7d, $48 - db $80 ; terminator - -OAMData_a3: ; 0x4ffd - db $10, $08, $7e, $08 - db $80 ; terminator - -OAMData_a4: ; 0x5002 - db $10, $08, $7e, $28 - db $80 ; terminator - -OAMData_a5: ; 0x5007 - db $03, $0a, $0f, $1d - db $fb, $0a, $0e, $1d - db $03, $02, $0d, $1d - db $fb, $02, $0c, $1d - db $07, $15, $0b, $1b - db $ff, $15, $0a, $1b - db $07, $0d, $09, $1b - db $ff, $0d, $08, $1b - db $07, $05, $07, $1b - db $ff, $05, $06, $1b - db $07, $fd, $05, $1b - db $ff, $fd, $04, $1b - db $f7, $08, $03, $1b - db $ef, $08, $02, $1b - db $f7, $00, $01, $1b - db $ef, $00, $00, $1b - db $80 ; terminator - -OAMData_a6: ; 0x5048 - db $04, $0a, $1d, $1d - db $fc, $0a, $1c, $1d - db $04, $02, $1b, $1d - db $fc, $02, $1a, $1d - db $06, $15, $0b, $1b - db $fe, $15, $0a, $1b - db $07, $0d, $19, $1b - db $ff, $0d, $18, $1b - db $07, $05, $17, $1b - db $ff, $05, $16, $1b - db $07, $fd, $15, $1b - db $ff, $fd, $14, $1b - db $f7, $08, $13, $1b - db $ef, $08, $12, $1b - db $f7, $00, $11, $1b - db $ef, $00, $10, $1b - db $80 ; terminator - -OAMData_a7: ; 0x5089 - db $07, $08, $2f, $1d - db $ff, $08, $2e, $1d - db $07, $00, $2d, $1d - db $ff, $00, $2c, $1d - db $07, $10, $2b, $1b - db $ff, $10, $2a, $1b - db $07, $08, $29, $1b - db $ff, $08, $28, $1b - db $07, $00, $27, $1b - db $ff, $00, $26, $1b - db $07, $f8, $25, $1b - db $ff, $f8, $24, $1b - db $f7, $10, $23, $1b - db $ef, $10, $22, $1b - db $f7, $08, $21, $1b - db $ef, $08, $20, $1b - db $f7, $00, $1f, $1b - db $ef, $00, $1e, $1b - db $80 ; terminator - -OAMData_a8: ; 0x50d2 - db $15, $01, $0b, $0a - db $ef, $03, $02, $1d - db $f7, $03, $03, $1d - db $fb, $0b, $05, $1d - db $f3, $0b, $04, $1d - db $fb, $fb, $01, $1d - db $f3, $fb, $00, $1d - db $0d, $09, $0e, $1b - db $05, $09, $0d, $1b - db $fd, $09, $0c, $1b - db $0d, $01, $0a, $1b - db $05, $01, $09, $1b - db $fd, $01, $08, $1b - db $08, $11, $11, $1b - db $00, $11, $10, $1b - db $08, $f9, $07, $1b - db $00, $f9, $06, $1b - db $80 ; terminator - -OAMData_a9: ; 0x5117 - db $f8, $04, $15, $1d - db $f0, $04, $14, $1d - db $fb, $0c, $17, $1d - db $f3, $0c, $16, $1d - db $fb, $fc, $13, $1d - db $f3, $fc, $12, $1d - db $08, $12, $1f, $1b - db $00, $12, $1e, $1b - db $08, $0a, $1d, $1b - db $00, $0a, $1c, $1b - db $08, $02, $1b, $1b - db $00, $02, $1a, $1b - db $08, $fa, $19, $1b - db $00, $fa, $18, $1b - db $80 ; terminator - -OAMData_aa: ; 0x5150 - db $00, $10, $27, $1d - db $f8, $10, $26, $1d - db $fb, $08, $25, $1d - db $f3, $08, $24, $1d - db $fb, $00, $23, $1d - db $f3, $00, $22, $1d - db $00, $f8, $21, $1d - db $f8, $f8, $20, $1d - db $08, $10, $2f, $1b - db $00, $10, $2e, $1b - db $08, $08, $2d, $1b - db $00, $08, $2c, $1b - db $08, $00, $2b, $1b - db $00, $00, $2a, $1b - db $08, $f8, $29, $1b - db $00, $f8, $28, $1b - db $80 ; terminator - -OAMData_ab: ; 0x5191 - db $08, $10, $0f, $1b - db $00, $10, $0e, $1b - db $08, $08, $0d, $1b - db $00, $08, $0c, $1b - db $08, $00, $0b, $1b - db $00, $00, $0a, $1b - db $08, $f8, $09, $1b - db $00, $f8, $08, $1b - db $f8, $10, $07, $1b - db $f0, $10, $06, $1b - db $f8, $08, $05, $1b - db $f0, $08, $04, $1b - db $f8, $00, $03, $1b - db $f0, $00, $02, $1b - db $f8, $f8, $01, $1b - db $f0, $f8, $00, $1b - db $80 ; terminator - -OAMData_ac: ; 0x51d2 - db $08, $10, $1f, $1b - db $00, $10, $1e, $1b - db $08, $08, $1d, $1b - db $00, $08, $1c, $1b - db $08, $00, $1b, $1b - db $00, $00, $1a, $1b - db $08, $f8, $19, $1b - db $00, $f8, $18, $1b - db $f8, $10, $17, $1b - db $f0, $10, $16, $1b - db $f8, $08, $15, $1b - db $f0, $08, $14, $1b - db $f8, $00, $13, $1b - db $f0, $00, $12, $1b - db $f8, $f8, $11, $1b - db $f0, $f8, $10, $1b - db $80 ; terminator - -OAMData_ad: ; 0x5213 - db $08, $10, $2f, $1b - db $00, $10, $2e, $1b - db $08, $08, $2d, $1b - db $00, $08, $2c, $1b - db $08, $00, $2b, $1b - db $00, $00, $2a, $1b - db $08, $f8, $29, $1b - db $00, $f8, $28, $1b - db $f8, $10, $27, $1b - db $f0, $10, $26, $1b - db $f8, $08, $25, $1b - db $f0, $08, $24, $1b - db $f8, $00, $23, $1b - db $f0, $00, $22, $1b - db $f8, $f8, $21, $1b - db $f0, $f8, $20, $1b - db $80 ; terminator - -OAMData_ae: ; 0x5254 - db $08, $10, $0f, $1d - db $00, $10, $0e, $1b - db $08, $08, $0d, $1d - db $00, $08, $0c, $1b - db $08, $00, $0b, $1d - db $00, $00, $0a, $1b - db $08, $f8, $09, $1d - db $00, $f8, $08, $1b - db $f8, $10, $07, $1b - db $f0, $10, $06, $1b - db $f8, $08, $05, $1b - db $f0, $08, $04, $1b - db $f8, $00, $03, $1b - db $f0, $00, $02, $1b - db $f8, $f8, $01, $1b - db $f0, $f8, $00, $1b - db $80 ; terminator - -OAMData_af: ; 0x5295 - db $08, $10, $1f, $1d - db $00, $10, $1e, $1b - db $08, $08, $1d, $1d - db $00, $08, $1c, $1b - db $08, $00, $1b, $1d - db $00, $00, $1a, $1b - db $08, $f8, $19, $1d - db $00, $f8, $18, $1b - db $f8, $10, $17, $1b - db $f0, $10, $16, $1b - db $f8, $08, $15, $1b - db $f0, $08, $14, $1b - db $f8, $00, $13, $1b - db $f0, $00, $12, $1b - db $f8, $f8, $11, $1b - db $f0, $f8, $10, $1b - db $80 ; terminator - -OAMData_b0: ; 0x52d6 - db $09, $10, $2f, $1d - db $01, $10, $2e, $1b - db $09, $08, $2d, $1d - db $01, $08, $2c, $1b - db $09, $00, $2b, $1d - db $01, $00, $2a, $1b - db $09, $f8, $29, $1d - db $01, $f8, $28, $1b - db $f9, $10, $27, $1b - db $f1, $10, $26, $1b - db $f9, $08, $25, $1b - db $f1, $08, $24, $1b - db $f9, $00, $23, $1b - db $f1, $00, $22, $1b - db $f9, $f8, $21, $1b - db $f1, $f8, $20, $1b - db $80 ; terminator - -Timer0DigitOAM: ; 0x5317 - db $10, $08, $60, $08 - db $80 ; terminator - -Timer1DigitOAM: ; 0x531c - db $10, $08, $62, $08 - db $80 ; terminator - -Timer2DigitOAM: ; 0x5321 - db $10, $08, $64, $08 - db $80 ; terminator - -Timer3DigitOAM: ; 0x5326 - db $10, $08, $66, $08 - db $80 ; terminator - -Timer4DigitOAM: ; 0x532b - db $10, $08, $68, $08 - db $80 ; terminator - -Timer5DigitOAM: ; 0x5330 - db $10, $08, $6a, $08 - db $80 ; terminator - -Timer6DigitOAM: ; 0x5335 - db $10, $08, $6c, $08 - db $80 ; terminator - -Timer7DigitOAM: ; 0x533a - db $10, $08, $6e, $08 - db $80 ; terminator - -Timer8DigitOAM: ; 0x533f - db $10, $08, $70, $08 - db $80 ; terminator - -Timer9DigitOAM: ; 0x5344 - db $10, $08, $72, $08 - db $80 ; terminator - -TimerColonOAM: ; 0x5349 - db $10, $08, $74, $08 - db $80 ; terminator - -OAMData_bc: ; 0x534e - db $10, $10, $30, $11 - db $10, $08, $2e, $11 - db $80 ; terminator - -OAMData_bd: ; 0x5357 - db $10, $10, $34, $11 - db $10, $08, $32, $11 - db $80 ; terminator - -OAMData_be: ; 0x5360 -; bellsprout? - db $12, $10, $66, $15 - db $02, $10, $64, $15 - db $12, $08, $62, $15 - db $02, $08, $60, $15 - db $80 ; terminator - -OAMData_bf: ; 0x5371 - db $00, $0a, $68, $15 - db $10, $10, $6c, $15 - db $10, $08, $6a, $15 - db $80 ; terminator - -OAMData_c0: ; 0x537e - db $0f, $10, $70, $15 - db $0f, $08, $6e, $15 - db $80 ; terminator - -OAMData_c1: ; 0x5387 - db $00, $0b, $72, $15 - db $10, $10, $76, $15 - db $10, $08, $74, $15 - db $80 ; terminator - -OAMData_c2: ; 0x5394 - db $08, $0f, $78, $22 - db $08, $07, $78, $02 - db $80 ; terminator - -OAMData_c3: ; 0x539d - db $08, $0f, $7b, $62 - db $08, $07, $7b, $42 - db $80 ; terminator - -OAMData_c4: ; 0x53a6 - db $08, $0f, $7d, $62 - db $08, $07, $7d, $42 - db $80 ; terminator - -OAMData_c5: ; 0x53af - db $08, $0f, $7e, $22 - db $08, $07, $7e, $02 - db $80 ; terminator - -OAMData_c6: ; 0x53b8 - db $08, $0f, $7c, $22 - db $08, $07, $7c, $02 - db $80 ; terminator - -OAMData_c7: ; 0x53c1 - db $08, $0f, $7a, $22 - db $08, $07, $7a, $02 - db $80 ; terminator - -OAMData_c8: ; 0x53ca - db $18, $11, $96, $02 - db $20, $29, $a6, $02 - db $30, $21, $a4, $02 - db $20, $21, $a2, $02 - db $38, $19, $a0, $02 - db $28, $19, $9e, $02 - db $18, $19, $9c, $02 - db $38, $11, $9a, $02 - db $28, $11, $98, $02 - db $38, $09, $94, $02 - db $28, $09, $92, $02 - db $18, $09, $90, $02 - db $80 ; terminator - -OAMData_c9: ; 0x53fb - db $18, $21, $2c, $02 - db $18, $19, $28, $02 - db $30, $09, $20, $02 - db $20, $09, $1e, $02 - db $28, $19, $2a, $02 - db $30, $11, $26, $02 - db $20, $11, $24, $02 - db $10, $11, $22, $02 - db $10, $09, $1c, $02 - db $80 ; terminator - -OAMData_ca: ; 0x5420 - db $30, $08, $1a, $02 - db $20, $08, $a8, $02 - db $80 ; terminator - -OAMData_cb: ; 0x5429 - db $10, $18, $06, $1b - db $20, $10, $04, $1b - db $10, $10, $02, $1b - db $10, $08, $00, $1b - db $80 ; terminator - -OAMData_cc: ; 0x543a - db $20, $11, $0e, $0c - db $10, $11, $0c, $0c - db $22, $09, $0a, $0c - db $12, $09, $08, $0c - db $80 ; terminator - -OAMData_cd: ; 0x544b - db $0f, $11, $30, $11 - db $0f, $09, $2e, $11 - db $80 ; terminator - -OAMData_ce: ; 0x5454 - db $10, $0f, $30, $11 - db $10, $07, $2e, $11 - db $80 ; terminator - -OAMData_cf: ; 0x545d - db $11, $11, $30, $11 - db $11, $09, $2e, $11 - db $80 ; terminator - -OAMData_d0: ; 0x5466 - db $10, $17, $16, $1b - db $1f, $0f, $14, $1b - db $0f, $0f, $12, $1b - db $0f, $07, $10, $1b - db $80 ; terminator - -OAMData_d1: ; 0x5477 - db $10, $08, $36, $06 - db $80 ; terminator - -OAMData_d2: ; 0x547c - db $08, $08, $37, $46 - db $80 ; terminator - -OAMData_d3: ; 0x5481 - db $10, $08, $38, $06 - db $80 ; terminator - -OAMData_d4: ; 0x5486 - db $10, $08, $3a, $06 - db $80 ; terminator - -OAMData_d5: ; 0x548b - db $10, $08, $3c, $06 - db $80 ; terminator - -OAMData_d6: ; 0x5490 - db $10, $08, $3e, $06 - db $80 ; terminator - -OAMData_d7: ; 0x5495 - db $10, $08, $b0, $00 - db $80 ; terminator - -OAMData_d8: ; 0x549a - db $10, $08, $b2, $00 - db $80 ; terminator - -OAMData_d9: ; 0x549f - db $10, $08, $b4, $00 - db $80 ; terminator - -OAMData_da: ; 0x54a4 - db $10, $08, $b6, $00 - db $80 ; terminator - -OAMData_db: ; 0x54a9 - db $10, $08, $38, $00 - db $80 ; terminator - -OAMData_dc: ; 0x54ae - db $10, $08, $3a, $00 - db $80 ; terminator - -OAMData_dd: ; 0x54b3 - db $10, $08, $7e, $00 - db $80 ; terminator - -OAMData_de: ; 0x54b8 - db $10, $08, $bc, $00 - db $80 ; terminator - -OAMData_df: ; 0x54bd - db $10, $08, $a8, $00 - db $80 ; terminator - -OAMData_e0: ; 0x54c2 - db $10, $10, $92, $13 - db $10, $08, $90, $13 - db $80 ; terminator - -OAMData_e1: ; 0x54cb - db $10, $10, $96, $13 - db $10, $08, $94, $13 - db $80 ; terminator - -OAMData_e2: ; 0x54d4 - db $20, $18, $1e, $11 - db $20, $10, $1c, $11 - db $20, $08, $1a, $11 - db $10, $18, $9c, $11 - db $10, $10, $9a, $11 - db $10, $08, $98, $11 - db $80 ; terminator - -OAMData_e3: ; 0x54ed - db $10, $18, $a2, $11 - db $10, $10, $a0, $11 - db $10, $08, $9e, $11 - db $20, $18, $1e, $11 - db $20, $10, $1c, $11 - db $20, $08, $1a, $11 - db $80 ; terminator - -OAMData_e4: ; 0x5506 - db $10, $1a, $a8, $11 - db $10, $12, $a6, $11 - db $10, $0a, $a4, $11 - db $20, $18, $1e, $11 - db $20, $10, $1c, $11 - db $20, $08, $1a, $11 - db $80 ; terminator - -OAMData_e5: ; 0x551f - db $20, $18, $2a, $13 - db $20, $10, $28, $13 - db $20, $08, $26, $13 - db $10, $18, $24, $13 - db $10, $10, $22, $13 - db $10, $08, $20, $13 - db $80 ; terminator - -OAMData_e6: ; 0x5538 - db $20, $18, $36, $13 - db $20, $10, $34, $13 - db $20, $08, $32, $13 - db $10, $18, $30, $13 - db $10, $10, $2e, $13 - db $10, $08, $2c, $13 - db $80 ; terminator - -OAMData_e7: ; 0x5551 - db $20, $10, $76, $13 - db $20, $08, $74, $13 - db $10, $10, $72, $13 - db $10, $08, $70, $13 - db $20, $18, $2a, $13 - db $10, $18, $24, $13 - db $80 ; terminator - -OAMData_e8: ; 0x556a - db $10, $10, $78, $22 - db $10, $08, $78, $02 - db $80 ; terminator - -OAMData_e9: ; 0x5573 - db $10, $10, $7b, $62 - db $10, $08, $7b, $42 - db $80 ; terminator - -OAMData_ea: ; 0x557c - db $10, $10, $7d, $62 - db $10, $08, $7d, $42 - db $80 ; terminator - -OAMData_eb: ; 0x5585 - db $10, $10, $7e, $22 - db $10, $08, $7e, $02 - db $80 ; terminator - -OAMData_ec: ; 0x558e - db $10, $10, $7c, $22 - db $10, $08, $7c, $02 - db $80 ; terminator - -OAMData_ed: ; 0x5597 - db $10, $10, $7a, $22 - db $10, $08, $7a, $02 - db $80 ; terminator - -OAMData_ee: ; 0x55a0 - db $10, $08, $38, $06 - db $80 ; terminator - -OAMData_ef: ; 0x55a5 - db $10, $08, $3a, $06 - db $80 ; terminator - -OAMData_f0: ; 0x55aa - db $10, $08, $3a, $26 - db $80 ; terminator - -OAMData_f1: ; 0x55af - db $10, $08, $3c, $06 - db $80 ; terminator - -OAMData_f2: ; 0x55b4 - db $10, $08, $3e, $06 - db $80 ; terminator - -OAMData_f3: ; 0x55b9 - db $10, $08, $3e, $26 - db $80 ; terminator - -OAMData_f4: ; 0x55be - db $08, $08, $39, $46 - db $80 ; terminator - -OAMData_f5: ; 0x55c3 - db $10, $08, $72, $00 - db $80 ; terminator - -OAMData_f6: ; 0x55c8 - db $10, $08, $74, $00 - db $80 ; terminator - -OAMData_f7: ; 0x55cd - db $10, $08, $76, $00 - db $80 ; terminator - -OAMData_f8: ; 0x55d2 - db $10, $08, $78, $00 - db $80 ; terminator - -OAMDataPointers2: ; 0x55d7 - dw OAMData2_0 - dw OAMData2_1 - dw OAMData2_2 - dw OAMData2_3 - dw OAMData2_4 - dw OAMData2_5 - dw OAMData2_6 - dw OAMData2_7 - dw OAMData2_8 - dw OAMData2_9 - dw OAMData2_a - dw OAMData2_b - dw OAMData2_c - dw OAMData2_d - dw OAMData2_e - dw OAMData2_f - dw OAMData2_10 - dw OAMData2_11 - dw OAMData2_12 - dw OAMData2_13 - dw OAMData2_14 - dw OAMData2_15 - dw OAMData2_16 - dw OAMData2_17 - dw OAMData2_18 - dw OAMData2_19 - dw OAMData2_1a - dw OAMData2_1b - dw OAMData2_1c - dw OAMData2_1d - dw OAMData2_1e - dw OAMData2_1f - dw OAMData2_20 - dw OAMData2_21 - dw OAMData2_22 - dw OAMData2_23 - dw OAMData2_24 - dw OAMData2_25 - dw OAMData2_26 - dw OAMData2_27 - dw OAMData2_28 - dw OAMData2_29 - dw OAMData2_2a - dw OAMData2_2b - dw OAMData2_2c - dw OAMData2_2d - dw OAMData2_2e - dw OAMData2_2f - dw OAMData2_30 - dw OAMData2_31 - dw OAMData2_32 - dw OAMData2_33 - dw OAMData2_34 - dw OAMData2_35 - dw OAMData2_36 - dw OAMData2_37 - dw OAMData2_38 - dw OAMData2_39 - dw OAMData2_3a - dw OAMData2_3b - dw OAMData2_3c - dw OAMData2_3d - dw OAMData2_3e - dw OAMData2_3f - dw OAMData2_40 - dw OAMData2_41 - dw OAMData2_42 - dw OAMData2_43 - dw OAMData2_44 - dw OAMData2_45 - dw OAMData2_46 - dw OAMData2_47 - dw OAMData2_48 - dw OAMData2_49 - dw OAMData2_4a - dw OAMData2_4b - dw OAMData2_4c - dw OAMData2_4d - dw OAMData2_4e - dw OAMData2_4f - dw OAMData2_50 - dw OAMData2_51 - dw OAMData2_52 - dw OAMData2_53 - dw OAMData2_54 - dw OAMData2_55 - dw OAMData2_56 - dw OAMData2_57 - dw OAMData2_58 - dw OAMData2_59 - dw OAMData2_5a - dw OAMData2_5b - dw OAMData2_5c - dw OAMData2_5d - dw OAMData2_5e - dw OAMData2_5f - dw OAMData2_60 - dw OAMData2_61 - dw OAMData2_62 - dw OAMData2_63 - dw OAMData2_64 - dw OAMData2_65 - dw OAMData2_66 - dw OAMData2_67 - dw OAMData2_68 - dw OAMData2_69 - dw OAMData2_6a - dw OAMData2_6b - dw OAMData2_6c - dw OAMData2_6d - dw OAMData2_6e - dw OAMData2_6f - dw OAMData2_70 - dw OAMData2_71 - dw OAMData2_72 - dw OAMData2_73 - dw OAMData2_74 - dw OAMData2_75 - dw OAMData2_76 - dw OAMData2_77 - dw OAMData2_78 - dw OAMData2_79 - dw OAMData2_7a - dw OAMData2_7b - dw OAMData2_7c - dw OAMData2_7d - dw OAMData2_7e - dw OAMData2_7f - dw OAMData2_80 - dw OAMData2_81 - dw OAMData2_82 - dw OAMData2_83 - dw OAMData2_84 - -OAMData2_0: ; 0x56e1 - db $20, $20, $9E, $04 - db $20, $18, $9C, $04 - db $20, $10, $9A, $04 - db $20, $08, $98, $04 - db $10, $20, $96, $04 - db $10, $18, $94, $04 - db $10, $10, $92, $04 - db $10, $08, $90, $04 - db $80 ; terminator - -OAMData2_1: ; 0x5702 - db $21, $20, $9E, $04 - db $21, $18, $9C, $04 - db $21, $10, $9A, $04 - db $21, $08, $98, $04 - db $11, $20, $96, $04 - db $11, $18, $94, $04 - db $11, $10, $92, $04 - db $11, $08, $90, $04 - db $80 ; terminator - -OAMData2_2: ; 0x - db $1F, $20, $9E, $04 - db $1F, $18, $9C, $04 - db $1F, $10, $9A, $04 - db $1F, $08, $98, $04 - db $0F, $20, $96, $04 - db $0F, $18, $94, $04 - db $0F, $10, $92, $04 - db $0F, $08, $90, $04 - db $80 ; terminator - -OAMData2_3: ; 0x - db $1F, $18, $A6, $04 - db $1F, $10, $A4, $04 - db $0F, $18, $A2, $04 - db $0F, $10, $A0, $04 - db $1F, $20, $9E, $04 - db $1F, $08, $98, $04 - db $0F, $20, $96, $04 - db $0F, $08, $90, $04 - db $80 ; terminator - -OAMData2_4: ; 0x - db $1A, $21, $1A, $04 - db $1A, $19, $A8, $04 - db $1E, $00, $A2, $24 - db $1E, $08, $A0, $24 - db $30, $10, $9E, $04 - db $20, $18, $9C, $04 - db $20, $10, $9A, $04 - db $20, $08, $98, $04 - db $10, $20, $96, $04 - db $10, $18, $94, $04 - db $10, $10, $92, $04 - db $10, $08, $90, $04 - db $80 ; terminator - -OAMData2_5: ; 0x - db $1E, $02, $A6, $24 - db $1E, $0A, $A4, $24 - db $1C, $23, $A6, $04 - db $1C, $1B, $A4, $04 - db $2E, $11, $9E, $04 - db $1E, $18, $9C, $04 - db $1E, $10, $9A, $04 - db $1E, $08, $98, $04 - db $0E, $20, $96, $04 - db $0E, $18, $94, $04 - db $0E, $10, $92, $04 - db $0E, $08, $90, $04 - db $80 ; terminator - -OAMData2_6: ; 0x - db $1E, $23, $A2, $04 - db $1E, $1B, $A0, $04 - db $1A, $02, $1A, $24 - db $1A, $0A, $A8, $24 - db $2D, $10, $9E, $04 - db $1D, $18, $9C, $04 - db $1D, $10, $9A, $04 - db $1D, $08, $98, $04 - db $0D, $20, $96, $04 - db $0D, $18, $94, $04 - db $0D, $10, $92, $04 - db $0D, $08, $90, $04 - db $80 ; terminator - -OAMData2_7: ; 0x - db $1C, $00, $A6, $24 - db $1C, $08, $A4, $24 - db $1E, $21, $A6, $04 - db $1E, $19, $A4, $04 - db $2E, $0F, $9E, $04 - db $1E, $18, $9C, $04 - db $1E, $10, $9A, $04 - db $1E, $08, $98, $04 - db $0E, $20, $96, $04 - db $0E, $18, $94, $04 - db $0E, $10, $92, $04 - db $0E, $08, $90, $04 - db $80 ; terminator - -OAMData2_8: ; 0x - db $17, $09, $A8, $24 - db $17, $01, $1A, $24 - db $0F, $1E, $A8, $04 - db $0F, $26, $1A, $04 - db $2D, $18, $28, $04 - db $1D, $18, $26, $04 - db $1D, $10, $24, $04 - db $0D, $20, $22, $04 - db $0D, $18, $20, $04 - db $0D, $10, $1E, $04 - db $0E, $08, $1C, $04 - db $80 ; terminator - -OAMData2_9: ; 0x - db $20, $30, $32, $24 - db $30, $30, $3A, $04 - db $10, $30, $38, $04 - db $30, $08, $34, $04 - db $20, $08, $32, $04 - db $10, $08, $30, $04 - db $38, $28, $1E, $04 - db $38, $20, $1C, $04 - db $38, $18, $1A, $04 - db $38, $10, $A8, $04 - db $28, $28, $A6, $04 - db $28, $20, $A4, $04 - db $28, $18, $A2, $04 - db $28, $10, $A0, $04 - db $18, $28, $9E, $04 - db $18, $20, $9C, $04 - db $18, $18, $9A, $04 - db $18, $10, $98, $04 - db $08, $28, $96, $04 - db $08, $20, $94, $04 - db $08, $18, $92, $04 - db $08, $10, $90, $04 - db $80 ; terminator - -OAMData2_a: ; 0x - db $31, $08, $36, $04 - db $39, $28, $26, $04 - db $39, $20, $24, $04 - db $39, $18, $22, $04 - db $39, $10, $20, $04 - db $21, $30, $32, $24 - db $31, $30, $3A, $04 - db $11, $30, $38, $04 - db $21, $08, $32, $04 - db $11, $08, $30, $04 - db $29, $28, $A6, $04 - db $29, $20, $A4, $04 - db $29, $18, $A2, $04 - db $29, $10, $A0, $04 - db $19, $28, $9E, $04 - db $19, $20, $9C, $04 - db $19, $18, $9A, $04 - db $19, $10, $98, $04 - db $09, $28, $96, $04 - db $09, $20, $94, $04 - db $09, $18, $92, $04 - db $09, $10, $90, $04 - db $80 ; terminator - -OAMData2_b: ; 0x - db $39, $28, $2E, $04 - db $39, $20, $2C, $04 - db $39, $18, $2A, $04 - db $39, $10, $28, $04 - db $31, $30, $3C, $04 - db $21, $30, $32, $24 - db $11, $30, $38, $04 - db $31, $08, $34, $04 - db $21, $08, $32, $04 - db $11, $08, $30, $04 - db $29, $28, $A6, $04 - db $29, $20, $A4, $04 - db $29, $18, $A2, $04 - db $29, $10, $A0, $04 - db $19, $28, $9E, $04 - db $19, $20, $9C, $04 - db $19, $18, $9A, $04 - db $19, $10, $98, $04 - db $09, $28, $96, $04 - db $09, $20, $94, $04 - db $09, $18, $92, $04 - db $09, $10, $90, $04 - db $80 ; terminator - -OAMData2_c: ; 0x - db $39, $28, $7E, $04 - db $39, $20, $7C, $04 - db $39, $18, $7A, $04 - db $39, $10, $3E, $04 - db $21, $30, $32, $24 - db $31, $30, $3A, $04 - db $11, $30, $38, $04 - db $31, $08, $34, $04 - db $21, $08, $32, $04 - db $11, $08, $30, $04 - db $29, $28, $A6, $04 - db $29, $20, $A4, $04 - db $29, $18, $A2, $04 - db $29, $10, $A0, $04 - db $19, $28, $9E, $04 - db $19, $20, $9C, $04 - db $19, $18, $9A, $04 - db $19, $10, $98, $04 - db $09, $28, $96, $04 - db $09, $20, $94, $04 - db $09, $18, $92, $04 - db $09, $10, $90, $04 - db $80 ; terminator - -OAMData2_d: ; 0x - db $3A, $28, $B0, $04 - db $3A, $20, $AE, $04 - db $3A, $18, $AC, $04 - db $3A, $10, $AA, $04 - db $22, $30, $32, $24 - db $32, $30, $3A, $04 - db $12, $30, $38, $04 - db $32, $08, $34, $04 - db $22, $08, $32, $04 - db $12, $08, $30, $04 - db $2A, $28, $A6, $04 - db $2A, $20, $A4, $04 - db $2A, $18, $A2, $04 - db $2A, $10, $A0, $04 - db $1A, $28, $9E, $04 - db $1A, $20, $9C, $04 - db $1A, $18, $9A, $04 - db $1A, $10, $98, $04 - db $0A, $28, $96, $04 - db $0A, $20, $94, $04 - db $0A, $18, $92, $04 - db $0A, $10, $90, $04 - db $80 ; terminator - -OAMData2_e: ; 0x - db $23, $04, $B2, $04 - db $27, $2C, $D2, $04 - db $27, $24, $D0, $04 - db $27, $1C, $CE, $04 - db $27, $14, $CC, $04 - db $27, $0C, $CA, $04 - db $17, $2C, $C8, $04 - db $17, $24, $C6, $04 - db $17, $1C, $C4, $04 - db $17, $14, $C2, $04 - db $17, $0C, $C0, $04 - db $07, $2C, $BE, $04 - db $07, $24, $BC, $04 - db $07, $1C, $BA, $04 - db $07, $14, $B8, $04 - db $07, $0C, $B6, $04 - db $23, $34, $B4, $04 - db $37, $28, $1E, $04 - db $37, $20, $1C, $04 - db $37, $18, $1A, $04 - db $37, $10, $A8, $04 - db $80 ; terminator - -OAMData2_f: ; 0x - db $20, $20, $9E, $04 - db $20, $18, $9C, $04 - db $20, $10, $9A, $04 - db $20, $08, $98, $04 - db $10, $20, $96, $04 - db $10, $18, $94, $04 - db $10, $10, $92, $04 - db $10, $08, $90, $04 - db $80 ; terminator - -OAMData2_10: ; 0x - db $20, $08, $22, $04 - db $10, $08, $20, $04 - db $20, $20, $9E, $04 - db $20, $18, $9C, $04 - db $20, $10, $9A, $04 - db $10, $20, $96, $04 - db $10, $18, $94, $04 - db $10, $10, $92, $04 - db $80 ; terminator - -OAMData2_11: ; 0x - db $20, $20, $1E, $04 - db $20, $18, $1C, $04 - db $20, $10, $1A, $04 - db $20, $08, $A8, $04 - db $10, $20, $A6, $04 - db $10, $18, $A4, $04 - db $10, $10, $A2, $04 - db $10, $08, $A0, $04 - db $80 ; terminator - -OAMData2_12: ; 0x - db $20, $20, $2A, $04 - db $10, $20, $28, $04 - db $20, $08, $26, $04 - db $10, $08, $24, $04 - db $20, $18, $9C, $04 - db $20, $10, $9A, $04 - db $10, $18, $94, $04 - db $10, $10, $92, $04 - db $80 ; terminator - -OAMData2_13: ; 0x - db $10, $10, $32, $11 - db $10, $08, $30, $11 - db $80 ; terminator - -OAMData2_14: ; 0x - db $10, $10, $36, $11 - db $10, $08, $34, $11 - db $80 ; terminator - -OAMData2_15: ; 0x - db $10, $10, $3A, $11 - db $10, $08, $38, $11 - db $80 ; terminator - -OAMData2_16: ; 0x - db $10, $10, $3E, $11 - db $10, $08, $3C, $11 - db $80 ; terminator - -OAMData2_17: ; 0x - db $20, $10, $7E, $04 - db $10, $18, $2E, $04 - db $10, $10, $92, $04 - db $20, $20, $AC, $04 - db $20, $18, $AA, $04 - db $20, $08, $7C, $04 - db $10, $20, $7A, $04 - db $10, $08, $2C, $04 - db $80 ; terminator - -OAMData2_18: ; 0x - db $20, $10, $7E, $04 - db $10, $18, $94, $04 - db $10, $10, $92, $04 - db $20, $20, $C4, $04 - db $20, $08, $C2, $04 - db $10, $20, $C0, $04 - db $10, $08, $BE, $04 - db $20, $18, $AA, $04 - db $80 ; terminator - -OAMData2_19: ; 0x - db $1F, $20, $BC, $04 - db $1F, $18, $BA, $04 - db $1F, $10, $B8, $04 - db $1F, $08, $B6, $04 - db $0F, $20, $B4, $04 - db $0F, $18, $B2, $04 - db $0F, $10, $B0, $04 - db $0F, $08, $AE, $04 - db $80 ; terminator - -OAMData2_1a: ; 0x - db $10, $10, $C6, $31 - db $10, $08, $C6, $11 - db $80 ; terminator - -OAMData2_1b: ; 0x - db $10, $10, $C8, $31 - db $10, $08, $C8, $11 - db $80 ; terminator - -OAMData2_1c: ; 0x - db $10, $10, $CA, $31 - db $10, $08, $CA, $11 - db $80 ; terminator - -OAMData2_1d: ; 0x - db $10, $10, $CC, $31 - db $10, $08, $CC, $11 - db $80 ; terminator - -OAMData2_1e: ; 0x - db $10, $10, $CE, $31 - db $10, $08, $CE, $11 - db $80 ; terminator - -OAMData2_1f: ; 0x - db $10, $10, $D0, $31 - db $10, $08, $D0, $11 - db $80 ; terminator - -OAMData2_20: ; 0x - db $10, $10, $D2, $31 - db $10, $08, $D2, $11 - db $80 ; terminator - -OAMData2_21: ; 0x - db $1E, $1F, $9E, $11 - db $1E, $17, $9C, $11 - db $1E, $0F, $9A, $11 - db $1E, $07, $98, $11 - db $0E, $1F, $96, $11 - db $0E, $17, $94, $11 - db $0E, $0F, $92, $11 - db $0E, $07, $90, $11 - db $80 ; terminator - -OAMData2_22: ; 0x - db $20, $20, $1E, $11 - db $20, $18, $1C, $11 - db $20, $10, $1A, $11 - db $20, $08, $A8, $11 - db $10, $20, $A6, $11 - db $10, $18, $A4, $11 - db $10, $10, $A2, $11 - db $10, $08, $A0, $11 - db $80 ; terminator - -OAMData2_23: ; 0x - db $0E, $1F, $96, $11 - db $0E, $17, $94, $11 - db $0E, $0F, $92, $11 - db $0E, $07, $90, $11 - db $1E, $1F, $26, $11 - db $1E, $17, $24, $11 - db $1E, $0F, $22, $11 - db $1E, $07, $20, $11 - db $80 ; terminator - -OAMData2_24: ; 0x - db $1A, $24, $34, $11 - db $1A, $1C, $32, $11 - db $1A, $14, $30, $11 - db $1A, $0C, $2E, $11 - db $0A, $1C, $2C, $11 - db $0A, $14, $2A, $11 - db $0A, $0C, $28, $11 - db $80 ; terminator - -OAMData2_25: ; 0x - db $1E, $07, $9E, $31 - db $1E, $0F, $9C, $31 - db $1E, $17, $9A, $31 - db $1E, $1F, $98, $31 - db $0E, $07, $96, $31 - db $0E, $0F, $94, $31 - db $0E, $17, $92, $31 - db $0E, $1F, $90, $31 - db $80 ; terminator - -OAMData2_26: ; 0x - db $20, $08, $1E, $31 - db $20, $10, $1C, $31 - db $20, $18, $1A, $31 - db $20, $20, $A8, $31 - db $10, $08, $A6, $31 - db $10, $10, $A4, $31 - db $10, $18, $A2, $31 - db $10, $20, $A0, $31 - db $80 ; terminator - -OAMData2_27: ; 0x - db $0E, $07, $96, $31 - db $0E, $0F, $94, $31 - db $0E, $17, $92, $31 - db $0E, $1F, $90, $31 - db $1E, $07, $26, $31 - db $1E, $0F, $24, $31 - db $1E, $17, $22, $31 - db $1E, $1F, $20, $31 - db $80 ; terminator - -OAMData2_28: ; 0x - db $1A, $0C, $34, $31 - db $1A, $14, $32, $31 - db $1A, $1C, $30, $31 - db $1A, $24, $2E, $31 - db $0A, $14, $2C, $31 - db $0A, $1C, $2A, $31 - db $0A, $24, $28, $31 - db $80 ; terminator - -OAMData2_29: ; 0x - db $10, $0C, $36, $13 - db $80 ; terminator - -OAMData2_2a: ; 0x - db $10, $10, $3A, $13 - db $10, $08, $38, $13 - db $80 ; terminator - -OAMData2_2b: ; 0x - db $10, $10, $3E, $13 - db $10, $08, $3C, $13 - db $80 ; terminator - -OAMData2_2c: ; 0x - db $10, $10, $7C, $13 - db $10, $08, $7A, $13 - db $80 ; terminator - -OAMData2_2d: ; 0x - db $10, $10, $AA, $13 - db $10, $08, $7E, $13 - db $80 ; terminator - -OAMData2_2e: ; 0x - db $10, $0F, $AC, $33 - db $10, $08, $AC, $13 - db $80 ; terminator - -OAMData2_2f: ; 0x - db $10, $0F, $AE, $33 - db $10, $08, $AE, $13 - db $80 ; terminator - -OAMData2_30: ; 0x - db $10, $0F, $B0, $33 - db $10, $08, $B0, $13 - db $80 ; terminator - -OAMData2_31: ; 0x - db $10, $0C, $B2, $13 - db $80 ; terminator - -OAMData2_32: ; 0x - db $10, $0C, $B4, $13 - db $80 ; terminator - -OAMData2_33: ; 0x - db $20, $20, $C4, $11 - db $20, $18, $C2, $11 - db $20, $10, $C0, $11 - db $20, $08, $BE, $11 - db $10, $20, $BC, $11 - db $10, $18, $BA, $11 - db $10, $10, $B8, $11 - db $10, $08, $B6, $11 - db $80 ; terminator - -OAMData2_34: ; 0x - db $20, $20, $CE, $11 - db $20, $18, $CC, $11 - db $20, $10, $CA, $11 - db $20, $08, $C8, $11 - db $10, $10, $C6, $11 - db $10, $20, $BC, $11 - db $10, $18, $BA, $11 - db $10, $08, $B6, $11 - db $80 ; terminator - -OAMData2_35: ; 0x - db $0A, $10, $D2, $00 - db $0A, $08, $D0, $00 - db $80 ; terminator - -OAMData2_36: ; 0x - db $08, $10, $D2, $00 - db $08, $08, $D0, $00 - db $80 ; terminator - -OAMData2_37: ; 0x - db $06, $10, $D2, $00 - db $06, $08, $D0, $00 - db $80 ; terminator - -OAMData2_38: ; 0x - db $0A, $10, $D4, $00 - db $0A, $08, $D0, $00 - db $80 ; terminator - -OAMData2_39: ; 0x - db $08, $10, $D4, $00 - db $08, $08, $D0, $00 - db $80 ; terminator - -OAMData2_3a: ; 0x - db $06, $10, $D4, $00 - db $06, $08, $D0, $00 - db $80 ; terminator - -OAMData2_3b: ; 0x - db $0A, $10, $D6, $00 - db $0A, $08, $D0, $00 - db $80 ; terminator - -OAMData2_3c: ; 0x - db $08, $10, $D6, $00 - db $08, $08, $D0, $00 - db $80 ; terminator - -OAMData2_3d: ; 0x - db $05, $10, $D6, $00 - db $05, $08, $D0, $00 - db $80 ; terminator - -OAMData2_3e: ; 0x - db $0A, $10, $D8, $00 - db $0A, $08, $D0, $00 - db $80 ; terminator - -OAMData2_3f: ; 0x - db $08, $10, $D8, $00 - db $08, $08, $D0, $00 - - db $80 ; terminator - -OAMData2_40: ; 0x - db $05, $10, $D8, $00 - db $05, $08, $D0, $00 - db $80 ; terminator - -OAMData2_41: ; 0x - db $0A, $10, $DA, $00 - db $0A, $08, $D0, $00 - db $80 ; terminator - -OAMData2_42: ; 0x - db $08, $10, $DA, $00 - db $08, $08, $D0, $00 - db $80 ; terminator - -OAMData2_43: ; 0x - db $05, $10, $DA, $00 - db $05, $08, $D0, $00 - db $80 ; terminator - -OAMData2_44: ; 0x - db $10, $08, $DC, $00 - db $80 ; terminator - -OAMData2_45: ; 0x - db $10, $08, $DE, $00 - db $80 ; terminator - -OAMData2_46: ; 0x - db $20, $20, $9E, $11 - db $20, $18, $9C, $11 - db $20, $10, $9A, $11 - db $20, $08, $98, $11 - db $10, $20, $96, $11 - db $10, $18, $94, $11 - db $10, $10, $92, $11 - db $10, $08, $90, $11 - db $80 ; terminator - -OAMData2_47: ; 0x - db $20, $20, $1E, $11 - db $20, $18, $1C, $11 - db $20, $10, $1A, $11 - db $20, $08, $A8, $11 - db $10, $20, $A6, $11 - db $10, $18, $A4, $11 - db $10, $10, $A2, $11 - db $10, $08, $A0, $11 - db $80 ; terminator - -OAMData2_48: ; 0x - db $20, $20, $9E, $11 - db $10, $20, $96, $11 - db $20, $10, $1A, $11 - db $20, $08, $A8, $11 - db $10, $08, $A0, $11 - db $20, $18, $24, $11 - db $10, $18, $22, $11 - db $10, $10, $20, $11 - db $80 ; terminator - -OAMData2_49: ; 0x - db $10, $08, $A0, $11 - db $20, $20, $32, $11 - db $20, $18, $30, $11 - db $20, $10, $2E, $11 - db $20, $08, $2C, $11 - db $10, $20, $2A, $11 - db $10, $18, $28, $11 - db $10, $10, $26, $11 - db $80 ; terminator - -OAMData2_4a: ; 0x - db $20, $18, $AA, $11 - db $20, $10, $7E, $11 - db $10, $18, $7C, $11 - db $10, $10, $7A, $11 - db $20, $20, $9E, $11 - db $20, $08, $98, $11 - db $10, $20, $96, $11 - db $10, $08, $90, $11 - db $80 ; terminator - -OAMData2_4b: ; 0x - db $20, $18, $B2, $11 - db $20, $10, $B0, $11 - db $10, $18, $AE, $11 - db $10, $10, $AC, $11 - db $20, $20, $1E, $11 - db $20, $08, $A8, $11 - db $10, $20, $A6, $11 - db $10, $08, $A0, $11 - db $80 ; terminator - -OAMData2_4c: ; 0x - db $20, $10, $B0, $11 - db $10, $10, $AC, $11 - db $20, $18, $AA, $11 - db $10, $18, $7C, $11 - db $20, $20, $9E, $11 - db $10, $20, $96, $11 - db $20, $08, $A8, $11 - db $10, $08, $A0, $11 - db $80 ; terminator - -OAMData2_4d: ; 0x - db $20, $18, $BA, $11 - db $20, $10, $B8, $11 - db $10, $18, $B6, $11 - db $10, $10, $B4, $11 - db $10, $08, $A0, $11 - db $20, $20, $32, $11 - db $20, $08, $2C, $11 - db $10, $20, $2A, $11 - db $80 ; terminator - -OAMData2_4e: ; 0x - db $20, $20, $C2, $11 - db $20, $18, $C0, $11 - db $10, $20, $BE, $11 - db $10, $18, $BC, $11 - db $20, $10, $7E, $11 - db $10, $10, $7A, $11 - db $20, $08, $98, $11 - db $10, $08, $90, $11 - db $80 ; terminator - -OAMData2_4f: ; 0x - db $20, $10, $B0, $11 - db $10, $10, $AC, $11 - db $20, $08, $A8, $11 - db $10, $08, $A0, $11 - db $20, $20, $C2, $11 - db $20, $18, $C0, $11 - db $10, $20, $BE, $11 - db $10, $18, $BC, $11 - db $80 ; terminator - -OAMData2_50: ; 0x - db $20, $10, $B0, $11 - db $10, $10, $AC, $11 - db $20, $08, $A8, $11 - db $10, $08, $A0, $11 - db $20, $20, $C2, $11 - db $20, $18, $C0, $11 - db $10, $20, $BE, $11 - db $10, $18, $BC, $11 - db $80 ; terminator - -OAMData2_51: ; 0x - db $20, $20, $CA, $11 - db $20, $18, $C8, $11 - db $10, $20, $C6, $11 - db $10, $18, $C4, $11 - db $20, $10, $B8, $11 - db $10, $10, $B4, $11 - db $10, $08, $A0, $11 - db $20, $08, $2C, $11 - db $80 ; terminator - -OAMData2_52: ; 0x - db $20, $08, $38, $11 - db $10, $18, $36, $11 - db $10, $10, $34, $11 - db $20, $20, $3E, $11 - db $20, $18, $3C, $11 - db $20, $10, $3A, $11 - db $80 ; terminator - -OAMData2_53: ; 0x - db $20, $10, $CE, $11 - db $20, $08, $CC, $11 - db $20, $20, $C2, $11 - db $20, $18, $C0, $11 - db $10, $20, $BE, $11 - db $10, $18, $BC, $11 - db $10, $10, $7A, $11 - db $10, $08, $90, $11 - db $80 ; terminator - -OAMData2_54: ; 0x - db $20, $20, $9A, $11 - db $20, $18, $98, $11 - db $20, $10, $96, $11 - db $20, $08, $94, $11 - db $10, $18, $92, $11 - db $10, $10, $90, $11 - db $80 ; terminator - -OAMData2_55: ; 0x - db $20, $20, $A6, $11 - db $20, $18, $A4, $11 - db $20, $10, $A2, $11 - db $20, $08, $A0, $11 - db $10, $18, $9E, $11 - db $10, $10, $9C, $11 - db $80 ; terminator - -OAMData2_56: ; 0x - db $20, $20, $22, $11 - db $20, $18, $20, $11 - db $20, $10, $1E, $11 - db $20, $08, $1C, $11 - db $10, $18, $1A, $11 - db $10, $10, $A8, $11 - db $80 ; terminator - -OAMData2_57: ; 0x - db $26, $1E, $2A, $13 - db $26, $16, $28, $13 - db $26, $0E, $26, $13 - db $26, $06, $24, $13 - db $80 ; terminator - -OAMData2_58: ; 0x - db $26, $1E, $32, $13 - db $26, $16, $30, $13 - db $26, $0E, $2E, $13 - db $26, $06, $2C, $13 - db $80 ; terminator - -OAMData2_59: ; 0x - db $26, $1E, $3A, $13 - db $26, $16, $38, $13 - db $26, $0E, $36, $13 - db $26, $06, $34, $13 - db $80 ; terminator - -OAMData2_5a: ; 0x - db $25, $1E, $7C, $13 - db $25, $16, $7A, $13 - db $25, $0E, $3E, $13 - db $25, $06, $3C, $13 - db $80 ; terminator - -OAMData2_5b: ; 0x - db $24, $1B, $AC, $13 - db $24, $13, $AA, $13 - db $24, $0B, $7E, $13 - db $80 ; terminator - -OAMData2_5c: ; 0x - db $24, $18, $B0, $13 - db $24, $10, $AE, $13 - db $80 ; terminator - -OAMData2_5d: ; 0x - db $22, $18, $B4, $13 - db $22, $10, $B2, $13 - db $80 ; terminator - -OAMData2_5e: ; 0x - db $20, $1E, $BA, $13 - db $20, $16, $B8, $13 - db $20, $0E, $B6, $13 - db $80 ; terminator - -OAMData2_5f: ; 0x - db $20, $20, $C6, $11 - db $20, $18, $C4, $11 - db $20, $10, $C2, $11 - db $20, $08, $C0, $11 - db $10, $18, $BE, $11 - db $10, $10, $BC, $11 - db $80 ; terminator - -OAMData2_60: ; 0x - db $20, $20, $D2, $11 - db $20, $18, $D0, $11 - db $20, $10, $CE, $11 - db $1F, $08, $CC, $11 - db $10, $18, $CA, $11 - db $10, $10, $C8, $11 - db $80 ; terminator - -OAMData2_61: ; 0x - db $20, $20, $DE, $11 - db $20, $18, $DC, $11 - db $20, $10, $DA, $11 - db $20, $08, $D8, $11 - db $10, $18, $D6, $11 - db $10, $10, $D4, $11 - db $80 ; terminator - -OAMData2_62: ; 0x - db $25, $1B, $AD, $53 - db $25, $13, $AB, $53 - db $25, $0B, $7F, $53 - db $80 ; terminator - -OAMData2_63: ; 0x - db $25, $1E, $7D, $53 - db $25, $16, $7B, $53 - db $25, $0E, $3F, $53 - db $25, $06, $3D, $53 - db $80 ; terminator - -OAMData2_64: ; 0x - db $26, $09, $2A, $33 - db $26, $11, $28, $33 - db $26, $19, $26, $33 - db $26, $21, $24, $33 - db $80 ; terminator - -OAMData2_65: ; 0x - db $26, $09, $32, $33 - db $26, $11, $30, $33 - db $26, $19, $2E, $33 - db $26, $21, $2C, $33 - db $80 ; terminator - -OAMData2_66: ; 0x - db $26, $09, $3A, $33 - db $26, $11, $38, $33 - db $26, $19, $36, $33 - db $26, $21, $34, $33 - db $80 ; terminator - -OAMData2_67: ; 0x - db $25, $09, $7C, $33 - db $25, $11, $7A, $33 - db $25, $19, $3E, $33 - db $25, $21, $3C, $33 - db $80 ; terminator - -OAMData2_68: ; 0x - db $24, $0E, $AC, $33 - db $24, $16, $AA, $33 - db $24, $1E, $7E, $33 - db $80 ; terminator - -OAMData2_69: ; 0x - db $25, $0E, $AD, $73 - db $25, $16, $AB, $73 - db $25, $1E, $7F, $73 - db $80 ; terminator - -OAMData2_6a: ; 0x - db $25, $09, $7D, $73 - db $25, $11, $7B, $73 - db $25, $19, $3F, $73 - db $25, $21, $3D, $73 - db $80 ; terminator - -OAMData2_6b: ; 0x - db $02, $18, $E4, $00 - db $02, $10, $E0, $00 - db $80 ; terminator - -OAMData2_6c: ; 0x - db $00, $18, $E4, $00 - db $00, $10, $E0, $00 - db $80 ; terminator - -OAMData2_6d: ; 0x - db $FE, $18, $E4, $00 - db $FE, $10, $E0, $00 - db $80 ; terminator - -OAMData2_6e: ; 0x - db $02, $18, $E8, $00 - db $02, $10, $E0, $00 - db $80 ; terminator - -OAMData2_6f: ; 0x - db $00, $18, $E8, $00 - db $00, $10, $E0, $00 - db $80 ; terminator - -OAMData2_70: ; 0x - db $FE, $18, $E8, $00 - db $FE, $10, $E0, $00 - db $80 ; terminator - -OAMData2_71: ; 0x - db $02, $18, $EE, $00 - db $02, $10, $E0, $00 - db $80 ; terminator - -OAMData2_72: ; 0x - db $00, $18, $EE, $00 - db $00, $10, $E0, $00 - db $80 ; terminator - -OAMData2_73: ; 0x - db $FE, $18, $EE, $00 - db $FE, $10, $E0, $00 - db $80 ; terminator - -OAMData2_74: ; 0x - db $02, $1C, $EC, $00 - db $02, $14, $E2, $00 - db $02, $0C, $E0, $00 - db $80 ; terminator - -OAMData2_75: ; 0x - db $00, $1C, $EC, $00 - db $00, $14, $E2, $00 - db $00, $0C, $E0, $00 - db $80 ; terminator - -OAMData2_76: ; 0x - db $FE, $1C, $EC, $00 - db $FE, $14, $E2, $00 - db $FE, $0C, $E0, $00 - db $80 ; terminator - -OAMData2_77: ; 0x - db $02, $1C, $E4, $00 - db $02, $14, $E6, $00 - db $02, $0C, $E0, $00 - db $80 ; terminator - -OAMData2_78: ; 0x - db $00, $1C, $E4, $00 - db $00, $14, $E6, $00 - db $00, $0C, $E0, $00 - db $80 ; terminator - -OAMData2_79: ; 0x - db $FE, $1C, $E4, $00 - db $FE, $14, $E6, $00 - db $FE, $0C, $E0, $00 - db $80 ; terminator - -OAMData2_7a: ; 0x - db $02, $1C, $E8, $00 - db $02, $14, $EC, $00 - db $02, $0C, $E0, $00 - db $80 ; terminator - -OAMData2_7b: ; 0x - db $00, $1C, $E8, $00 - db $00, $14, $EC, $00 - db $00, $0C, $E0, $00 - db $80 ; terminator - -OAMData2_7c: ; 0x - db $FE, $1C, $E8, $00 - db $FE, $14, $EC, $00 - db $FE, $0C, $E0, $00 - db $80 ; terminator - -OAMData2_7d: ; 0x - db $02, $20, $EE, $00 - db $02, $18, $E4, $00 - db $02, $10, $E2, $00 - db $02, $08, $E0, $00 - db $80 ; terminator - -OAMData2_7e: ; 0x - db $00, $20, $EE, $00 - db $00, $18, $E4, $00 - db $00, $10, $E2, $00 - db $00, $08, $E0, $00 - db $80 ; terminator - -OAMData2_7f: ; 0x - db $FE, $20, $EE, $00 - db $FE, $18, $E4, $00 - db $FE, $10, $E2, $00 - db $FE, $08, $E0, $00 - db $80 ; terminator - -OAMData2_80: ; 0x - db $02, $20, $EC, $00 - db $02, $18, $EA, $00 - db $02, $10, $E4, $00 - db $02, $08, $E0, $00 - db $80 ; terminator - -OAMData2_81: ; 0x - db $00, $20, $EC, $00 - db $00, $18, $EA, $00 - db $00, $10, $E4, $00 - db $00, $08, $E0, $00 - db $80 ; terminator - -OAMData2_82: ; 0x - db $FE, $20, $EC, $00 - db $FE, $18, $EA, $00 - db $FE, $10, $E4, $00 - db $FE, $08, $E0, $00 - db $80 ; terminator - -OAMData2_83: ; 0x6258 - db $10, $08, $F0, $00 - db $80 ; terminator - -OAMData2_84: ; 0x625d - db $10, $08, $F2, $00 - db $80 ; terminator - -; Free Space 0x6262 - +INCLUDE "data/oam_frames.asm" SECTION "bank2", ROMX, BANK[$2] Func_8000: ; 0x8000 - ld a, [wScreenState] - rst $18 ; calls JumpToFuncInTable + ld a, [wScreenState] + rst JumpTable ; calls JumpToFuncInTable CallTable_8004: ; 0x8004 - dw Func_800a - dw Func_8104 - dw Func_814e + 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 + xor a + ld [hFFC4], a + ld a, [hJoypadState] + cp D_UP + jr nz, .asm_8018 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_8021 .asm_8018 - ld hl, wCurrentScreen - inc [hl] - xor a - ld [wScreenState], a - ret + ld hl, wCurrentScreen + inc [hl] + xor a + ld [wScreenState], a + ret + .asm_8021 - ld a, $45 - ld [$ff9e], a - ld a, $e4 - ld [$d80c], a - ld [$d80d], a - ld [$d80e], a - xor a - ld [hBoardXShift], a - ld [hBoardYShift], a - call Func_8049 - call ClearOAMBuffer - call Func_b66 - call Func_588 - call Func_bbe - ld hl, wScreenState - inc [hl] - ret + ld a, $45 + ld [hLCDC], a + ld a, $e4 + ld [wd80c], a + ld [wd80d], a + ld [wd80e], a + xor a + ld [hSCX], a + ld [hSCY], a + call Func_8049 + call ClearOAMBuffer + call Func_b66 + call Func_588 + call Func_bbe + ld hl, wScreenState + inc [hl] + ret Func_8049: ; 0x8049 ; This function is unused? - ld a, $1 - ld [$ff4f], a - ld c, $ff - call FillTilesVRAM - call FillBackgroundsVRAM - xor a - ld [$ff4f], a - ld c, $0 - call FillTilesVRAM - call FillBackgroundsVRAM - ; This code makes no sense. - ; It first fills 33 bytes at $ff68, then refills at $ff6a - ld a, $80 - ld de, $ff68 - ld hl, Data_80e4 - call Fill33Bytes - ld a, $80 - ld de, $ff6a - ld hl, Data_80f4 - call Fill33Bytes - ld hl, PointerTable_8089 - xor a - call LoadVideoData - ld a, Bank(UnusedTileListData_8094) - ld bc, UnusedTileListData_8094 - ld de, LoadTileLists - call Func_10c5 - ret + ld a, $1 + ld [rVBK], a + ld c, $ff + call FillTilesVRAM + call FillBackgroundsVRAM + xor a + ld [rVBK], a + ld c, $0 + call FillTilesVRAM + call FillBackgroundsVRAM + ; This code makes no sense. + ; It first fills 33 bytes at $ff68, then refills at rOBPI + ld a, $80 + ld de, rBGPI + ld hl, Data_80e4 + call Fill33Bytes + ld a, $80 + ld de, rOBPI + ld hl, Data_80f4 + call Fill33Bytes + ld hl, PointerTable_8089 + xor a + call LoadVideoData + ld a, Bank(UnusedTileListData_8094) + ld bc, UnusedTileListData_8094 + ld de, LoadTileLists + call Func_10c5 + ret PointerTable_8089: ; 0x8089 - dw UnusedTextVideoData + dw UnusedTextVideoData UnusedTextVideoData: ; 0x808b - VIDEO_DATA_TILES UnusedTextGfx, vTiles1 + $200, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES UnusedTextGfx, vTilesSH + $200, $400 + db $FF, $FF ; terminators UnusedTileListData_8094: ; 0x8094 - db $13 - - dbw $06, $98A3 - db $BC, $AF, $B6, $AF, $AD, $BD - - dbw $06, $98AA - db $BD, $AB, $BB, $B1, $AF, $BD - - dbw $04, $98E3 - db $D0, $AD, $B1, $AC - - dbw $03, $9924 - db $AE, $B7, $B1 - - db $00 ; terminator + db $13 + dbw $06, $98A3 + db $BC, $AF, $B6, $AF, $AD, $BD + dbw $06, $98AA + db $BD, $AB, $BB, $B1, $AF, $BD + dbw $04, $98E3 + db $D0, $AD, $B1, $AC + dbw $03, $9924 + db $AE, $B7, $B1 + db $00 ; terminator FillBackgroundsVRAM: ; 0x80b5 - ld hl, vBGMap0 + ld hl, vBGMap .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 + 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 + ld hl, vTilesOB .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 + ld a, c + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld a, h + cp (vBGMap >> 8) + jr nz, .fillLoop + ret Fill33Bytes: ; 0x80d1 ; First places a in [de]. ; Then, reads 32 bytes from hl and places them in order at de + 1 - ld [de], a - inc de - ld b, $4 + ld [de], a + inc de + ld b, $4 .outerLoop - ld c, $8 - push hl + ld c, $8 + push hl .innerLoop - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - dec c - jr nz, .innerLoop - pop hl - dec b - jr nz, .outerLoop - ret + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + dec c + jr nz, .innerLoop + pop hl + dec b + jr nz, .outerLoop + ret Data_80e4: ; 0x80e4 - db $FF - db $7F - db $B5 - db $56 - db $6B - db $2D - db $00 - db $00 - db $FF - db $7F - db $B5 - db $56 - db $6B - db $2D - db $00 - db $00 + db $FF + db $7F + db $B5 + db $56 + db $6B + db $2D + db $00 + db $00 + db $FF + db $7F + db $B5 + db $56 + db $6B + db $2D + db $00 + db $00 Data_80f4: ; 0x80f4 - db $B5 - db $56 - db $FF - db $7F - db $6B - db $2D - db $00 - db $00 - db $FF - db $7F - db $B5 - db $56 - db $6B - db $2D - db $00 - db $00 + db $B5 + db $56 + db $FF + db $7F + db $6B + db $2D + db $00 + db $00 + db $FF + db $7F + db $B5 + db $56 + db $6B + db $2D + db $00 + db $00 Func_8104: ; 0x8104 - ld a, [hNewlyPressedButtons] - ld b, a - and (D_DOWN | D_UP) - jr z, .asm_8115 - ld a, [hGameBoyColorFlag] - ld [$ffc4], a - xor $1 - ld [hGameBoyColorFlag], a - jr .asm_811d + ld a, [hNewlyPressedButtons] + ld b, a + and (D_DOWN | D_UP) + jr z, .asm_8115 + ld a, [hGameBoyColorFlag] + ld [hFFC4], a + xor $1 + ld [hGameBoyColorFlag], a + jr .asm_811d + .asm_8115 - bit BIT_A_BUTTON, b - ret z - ld hl, wScreenState - inc [hl] - ret + bit BIT_A_BUTTON, b + ret z + ld hl, wScreenState + inc [hl] + ret + .asm_811d - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_812e - ld a, Bank(Data_813a) - ld bc, Data_813a - ld de, LoadTileLists ; todo - call Func_10c5 - ret + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_812e + ld a, Bank(Data_813a) + ld bc, Data_813a + ld de, LoadTileLists + call Func_10c5 + ret + .asm_812e - ld a, Bank(Data_8144) - ld bc, Data_8144 - ld de, LoadTileLists ; todo - call Func_10c5 - ret + ld a, Bank(Data_8144) + ld bc, Data_8144 + ld de, LoadTileLists + call Func_10c5 + ret Data_813a: ; 0x813a - db $02 - - dbw $01, $98E3 - db $D1 - - dbw $01, $9923 - db $D0 - - db $00 ; terminator + db $02 + dbw $01, $98E3 + db $D1 + dbw $01, $9923 + db $D0 + db $00 ; terminator Data_8144: ; 0x8144 - db $02 - - dbw $01, $98E3 - db $D0 - - dbw $01, $9923 - db $D1 - - db $00 ; terminator + db $02 + dbw $01, $98E3 + db $D0 + dbw $01, $9923 + db $D1 + db $00 ; terminator Func_814e: ; 0x414e - call Func_cb5 - call Func_576 - ld hl, wCurrentScreen - inc [hl] - xor a - ld [wScreenState], a - ret + call Func_cb5 + call Func_576 + ld hl, wCurrentScreen + inc [hl] + xor a + ld [wScreenState], a + ret HandleEraseAllDataMenu: ; 0x815d - ld a, [wScreenState] - rst $18 ; calls JumpToFuncInTable + ld a, [wScreenState] + rst JumpTable ; calls JumpToFuncInTable EraseAllDataMenuFunctions: ; 0x8161 - dw CheckForResetButtonCombo - dw HandleEraseAllDataInput - dw ExitEraseAllDataMenu + dw CheckForResetButtonCombo + dw HandleEraseAllDataInput + dw ExitEraseAllDataMenu CheckForResetButtonCombo: ; 0x8167 - ld a, [hJoypadState] - cp (D_UP | D_RIGHT | START | SELECT) - jr z, .heldCorrectButtons - ld hl, wCurrentScreen - inc [hl] - ret + ld a, [hJoypadState] + cp (D_UP | D_RIGHT | START | SELECT) + jr z, .heldCorrectButtons + ld hl, wCurrentScreen + inc [hl] + ret + .heldCorrectButtons - ld a, $41 - ld [$ff9e], a - ld a, $e4 - ld [$d80c], a - xor a - ld [$d80d], a - ld [$d80e], a - ld [hBoardXShift], a - ld [hBoardYShift], a - ld a, [hGameBoyColorFlag] - ld hl, EraseAllDataGfxPointers - call LoadVideoData - call ClearOAMBuffer - call Func_b66 - call Func_588 - call Func_14a4 - call Func_bbe - ld hl, wScreenState - inc [hl] - ret + ld a, $41 + ld [hLCDC], a + ld a, $e4 + ld [wd80c], a + xor a + ld [wd80d], a + ld [wd80e], a + ld [hSCX], a + ld [hSCY], a + ld a, [hGameBoyColorFlag] + ld hl, EraseAllDataGfxPointers + call LoadVideoData + call ClearOAMBuffer + call Func_b66 + call Func_588 + call SGBNormal + call Func_bbe + ld hl, wScreenState + inc [hl] + ret EraseAllDataGfxPointers: ; 0x81a2 - dw EraseAllDataGfx_GameBoy - dw EraseAllDataGfx_GameBoyColor + dw EraseAllDataGfx_GameBoy + dw EraseAllDataGfx_GameBoyColor EraseAllDataGfx_GameBoy: ; 0x81a6 - VIDEO_DATA_TILES EraseAllDataGfx, vTiles2, $300 - VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES EraseAllDataGfx, vTilesBG, $300 + VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap, $400 + db $FF, $FF ; terminators EraseAllDataGfx_GameBoyColor: ; 0x81b6 - VIDEO_DATA_TILES EraseAllDataGfx, vTiles2, $300 - VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap0, $400 - VIDEO_DATA_BGATTR EraseAllDataBGAttributes, vBGMap0, $400 - VIDEO_DATA_PALETTES HighScoresRedStagePalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES EraseAllDataGfx, vTilesBG, $300 + VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap, $400 + VIDEO_DATA_BGATTR EraseAllDataBGAttributes, vBGMap, $400 + VIDEO_DATA_PALETTES HighScoresRedStagePalettes, $80 + db $FF, $FF ; terminators HandleEraseAllDataInput: ; 0x81d4 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .checkForBButton - ld hl, $a000 - xor a - ld b, a + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .checkForBButton + ld hl, $a000 + xor a + ld b, a .eraseSavedDataLoop - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .eraseSavedDataLoop - ld hl, wScreenState - inc [hl] - ret + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + dec b + jr nz, .eraseSavedDataLoop + ld hl, wScreenState + inc [hl] + ret + .checkForBButton - bit BIT_B_BUTTON, a - ret z - ld hl, wScreenState - inc [hl] - ret + bit BIT_B_BUTTON, a + ret z + ld hl, wScreenState + inc [hl] + ret ExitEraseAllDataMenu: ; 0x820f - call Func_cb5 - call Func_576 - ld hl, wCurrentScreen - inc [hl] - xor a - ld [wScreenState], a - ret + call Func_cb5 + call Func_576 + ld hl, wCurrentScreen + inc [hl] + xor a + ld [wScreenState], a + ret HandleCopyrightScreen: ; 0x821e - ld a, [wScreenState] - rst $18 ; calls JumpToFuncInTable + ld a, [wScreenState] + rst JumpTable ; calls JumpToFuncInTable CopyrightScreenFunctions: ; 0x8222 - dw FadeInCopyrightScreen - dw DisplayCopyrightScreen - dw FadeOutCopyrightScreenAndLoadData + dw FadeInCopyrightScreen + dw DisplayCopyrightScreen + dw FadeOutCopyrightScreenAndLoadData FadeInCopyrightScreen: ; 0x8228 - ld a, $41 - ld [$ff9e], a - ld a, $e4 - ld [$d80c], a - xor a - ld [$d80d], a - ld [$d80e], a - ld [hBoardXShift], a - ld [hBoardYShift], a - ld a, [hGameBoyColorFlag] - ld hl, CopyrightTextGfxPointers - call LoadVideoData - call ClearOAMBuffer - call Func_b66 - call Func_588 - call Func_14a4 - ld bc, $0050 - call Func_93f - call Func_bbe - ld hl, wScreenState - inc [hl] - ret + ld a, $41 + ld [hLCDC], a + ld a, $e4 + ld [wd80c], a + xor a + ld [wd80d], a + ld [wd80e], a + ld [hSCX], a + ld [hSCY], a + ld a, [hGameBoyColorFlag] + ld hl, CopyrightTextGfxPointers + call LoadVideoData + call ClearOAMBuffer + call Func_b66 + call Func_588 + call SGBNormal + ld bc, $0050 + call AdvanceFrames + call Func_bbe + ld hl, wScreenState + inc [hl] + ret CopyrightTextGfxPointers: ; 0x825e - dw CopyrightTextGfx_GameBoy - dw CopyrightTextGfx_GameBoyColor + dw CopyrightTextGfx_GameBoy + dw CopyrightTextGfx_GameBoyColor CopyrightTextGfx_GameBoy: ; 0x8262 - VIDEO_DATA_TILES CopyrightTextGfx, vTiles1, $400 - VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES CopyrightTextGfx, vTilesSH, $400 + VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap, $400 + db $FF, $FF ; terminators CopyrightTextGfx_GameBoyColor: ; 0x8272 - VIDEO_DATA_TILES CopyrightTextGfx, vTiles1, $400 - VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap0, $400 - VIDEO_DATA_BGATTR CopyrightScreenBGAttributes, vBGMap0, $400 - VIDEO_DATA_PALETTES CopyrightScreenPalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES CopyrightTextGfx, vTilesSH, $400 + VIDEO_DATA_TILEMAP CopyrightScreenTilemap, vBGMap, $400 + VIDEO_DATA_BGATTR CopyrightScreenBGAttributes, vBGMap, $400 + VIDEO_DATA_PALETTES CopyrightScreenPalettes, $80 + db $FF, $FF ; terminators DisplayCopyrightScreen: ; 0x8290 - ld b, $5a ; number of frames to show the copyright screen + ld b, $5a ; number of frames to show the copyright screen .delayLoop - push bc - rst $10 ; wait for next frame - pop bc - ld a, b - cp $2d ; player can press A button to skip copyright screen once counter is below $2d - jr nc, .decrementCounter - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr nz, .done + push bc + rst AdvanceFrame ; wait for next frame + pop bc + ld a, b + cp $2d ; player can press A button to skip copyright screen once counter is below $2d + jr nc, .decrementCounter + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr nz, .done .decrementCounter - dec b - jr nz, .delayLoop + dec b + jr nz, .delayLoop .done - ld hl, wScreenState - inc [hl] - ret + ld hl, wScreenState + inc [hl] + ret FadeOutCopyrightScreenAndLoadData: ; 0x82a8 - call Func_cb5 - call Func_576 - ld hl, $a000 - ld de, wRedHighScore1Points - ld bc, $0082 - call Func_f0c - jr c, .loadedHighScores - ld [$ff8a], a - ld a, Bank(CopyInitialHighScores) - ld hl, CopyInitialHighScores - call BankSwitch + call Func_cb5 + call Func_576 + ld hl, sHighScores + ld de, wRedHighScore1Points + ld bc, $0082 + call LoadSavedData + jr c, .loadedHighScores + callba CopyInitialHighScores .loadedHighScores - ld hl, $a10c - ld de, wPokedexFlags - ld bc, $0098 - call Func_f0c - jr c, .asm_82de - ld [$ff8a], a - ld a, Bank(ClearPokedexData) - ld hl, ClearPokedexData - call BankSwitch + ld hl, sPokedexFlags + ld de, wPokedexFlags + ld bc, $0098 + call LoadSavedData + jr c, .asm_82de + callba ClearPokedexData .asm_82de - ld hl, $a244 - ld de, wKeyConfigs - ld bc, $000e - call Func_f0c - jr c, .asm_82f6 - ld [$ff8a], a - ld a, Bank(SaveDefaultKeyConfigs) - ld hl, SaveDefaultKeyConfigs - call BankSwitch + ld hl, sKeyConfigs + ld de, wKeyConfigs + ld bc, $000e + call LoadSavedData + jr c, .asm_82f6 + callba SaveDefaultKeyConfigs .asm_82f6 - ld hl, $a268 - ld de, wPartyMons - ld bc, $04c3 ; This is saved game data from when the player saves in the middle of a game. - call Func_f0c - jr c, .asm_8308 - xor a - ld [$d7c2], a ; if this is non-zero, the main menu will prompt for "continue or new game?". + ld hl, sSaveGame + ld de, wPartyMons + ld bc, $04c3 ; This is saved game data from when the player saves in the middle of a game. + call LoadSavedData + jr c, .asm_8308 + xor a + ld [wd7c2], a ; if this is non-zero, the main menu will prompt for "continue or new game?". .asm_8308 - ld hl, wCurrentScreen - inc [hl] - xor a - ld [wScreenState], a - ret + ld hl, wCurrentScreen + inc [hl] + xor a + ld [wScreenState], a + ret InitializeStage: ; 0x8311 - ld hl, wc000 - ld bc, $0a00 - call ClearData - ld a, $1 - ld [$ff4f], a - ld a, [$d805] - and a - jr nz, .asm_8331 - ld hl, vBGMap1 - ld bc, $0400 - ld a, $0 - call Func_63e - jr .asm_833c + ld hl, wc000 + ld bc, $0a00 + call ClearData + ld a, $1 + ld [rVBK], a + ld a, [wd805] + and a + jr nz, .asm_8331 + ld hl, vBGWin + ld bc, $0400 + ld a, $0 + call Func_63e + jr .asm_833c + .asm_8331 - ld hl, vBGMap1 - ld bc, $0400 - ld a, $8 - call Func_63e + ld hl, vBGWin + ld bc, $0400 + ld a, $8 + call Func_63e .asm_833c - xor a - ld [$ff4f], a - call Func_8388 - ld a, [wCurrentStage] - call CallInFollowingTable + xor a + ld [rVBK], a + call Func_8388 + ld a, [wCurrentStage] + call CallInFollowingTable CallTable_8348: ; 0x8348 - ; STAGE_RED_FIELD_TOP - dw InitRedField - db Bank(InitRedField), $00 - - ; STAGE_RED_FIELD_BOTTOM - dw InitRedField - db Bank(InitRedField), $00 - - dw Func_18000 - db Bank(Func_18000), $00 - - dw Func_18000 - db Bank(Func_18000), $00 - - ; STAGE_BLUE_FIELD_TOP - dw InitBlueField - db Bank(InitBlueField), $00 - - ; STAGE_BLUE_FIELD_BOTTOM - dw InitBlueField - db Bank(InitBlueField), $00 - - ; STAGE_GENGAR_BONUS - dw InitGengarBonusStage - db Bank(InitGengarBonusStage), $00 - - ; STAGE_GENGAR_BONUS - dw InitGengarBonusStage - db Bank(InitGengarBonusStage), $00 - - ; STAGE_MEWTWO_BONUS - dw InitMewtwoBonusStage - db Bank(InitMewtwoBonusStage), $00 - - ; STAGE_MEWTWO_BONUS - dw InitMewtwoBonusStage - db Bank(InitMewtwoBonusStage), $00 - - ; STAGE_MEOWTH_BONUS - dw InitMeowthBonusStage - db Bank(InitMeowthBonusStage), $00 - - ; STAGE_MEOWTH_BONUS - dw InitMeowthBonusStage - db Bank(InitMeowthBonusStage), $00 - - ; STAGE_DIGLETT_BONUS - dw InitDiglettBonusStage - db Bank(InitDiglettBonusStage), $00 - - ; STAGE_DIGLETT_BONUS - dw InitDiglettBonusStage - db Bank(InitDiglettBonusStage), $00 - - ; STAGE_SEEL_BONUS - dw InitSeelBonusStage - db Bank(InitSeelBonusStage), $00 - - ; STAGE_SEEL_BONUS - dw InitSeelBonusStage - db Bank(InitSeelBonusStage), $00 + ; STAGE_RED_FIELD_TOP + padded_dab InitRedField + ; STAGE_RED_FIELD_BOTTOM + padded_dab InitRedField + padded_dab Func_18000 + padded_dab Func_18000 + ; STAGE_BLUE_FIELD_TOP + padded_dab InitBlueField + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab InitBlueField + ; STAGE_GENGAR_BONUS + padded_dab InitGengarBonusStage + ; STAGE_GENGAR_BONUS + padded_dab InitGengarBonusStage + ; STAGE_MEWTWO_BONUS + padded_dab InitMewtwoBonusStage + ; STAGE_MEWTWO_BONUS + padded_dab InitMewtwoBonusStage + ; STAGE_MEOWTH_BONUS + padded_dab InitMeowthBonusStage + ; STAGE_MEOWTH_BONUS + padded_dab InitMeowthBonusStage + ; STAGE_DIGLETT_BONUS + padded_dab InitDiglettBonusStage + ; STAGE_DIGLETT_BONUS + padded_dab InitDiglettBonusStage + ; STAGE_SEEL_BONUS + padded_dab InitSeelBonusStage + ; STAGE_SEEL_BONUS + padded_dab InitSeelBonusStage Func_8388: ; 0x8388 - ld a, [$d7c1] - and a - jr z, .asm_8398 - ld hl, wSubTileBallXPos - ld bc, $0037 - call ClearData - ret + ld a, [wd7c1] + and a + jr z, .asm_8398 + ld hl, wSubTileBallXPos + ld bc, $0037 + call ClearData + ret + .asm_8398 - ld a, [wCurrentStage] - cp $6 - ret nc - ld hl, wPartyMons - ld bc, $0170 - call ClearData - ld hl, $d473 ; todo - ld bc, $0039 - call ClearData - ld hl, $d4ad - ld bc, $034d - call ClearData - ret + ld a, [wCurrentStage] + cp $6 + ret nc + ld hl, wPartyMons + ld bc, $0170 + call ClearData + ld hl, wd473 + ld bc, $0039 + call ClearData + ld hl, wd4ad + ld bc, $034d + call ClearData + ret StartBallForStage: ; 0x83ba - ld a, [$d7c1] - and a - jr z, .asm_83c7 - call Func_8444 - call Func_8461 - ret + ld a, [wd7c1] + and a + jr z, .asm_83c7 + call Func_8444 + call Func_8461 + ret + .asm_83c7 - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [$d7ae], a - ld [$d7af], a - ld [$d7b2], a - ld [$d7b3], a - ld [$d7b0], a - ld [$d7b1], a - ld [$d7b4], a - ld [$d7b5], a - ld [wBallSpin], a - ld [wBallRotation], a - inc a - ld [$d548], a - ld [$d549], a - ld a, $20 - ld [$d7ab], a - ld a, [wCurrentStage] - call CallInFollowingTable + xor a + ld [wBallXVelocity], a + ld [wBallXVelocity + 1], a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + ld [wd7ae], a + ld [wd7af], a + ld [wd7b2], a + ld [wd7b3], a + ld [wd7b0], a + ld [wd7b1], a + ld [wd7b4], a + ld [wd7b5], a + ld [wBallSpin], a + ld [wBallRotation], a + inc a + ld [wd548], a + ld [wd549], a + ld a, $20 + ld [wd7ab], a + ld a, [wCurrentStage] + call CallInFollowingTable CallTable_8404: ; 0x8404 - ; STAGE_RED_FIELD_TOP - dw StartBallRedField - db Bank(StartBallRedField), $00 - - ; STAGE_RED_FIELD_BOTTOM - dw StartBallRedField - db Bank(StartBallRedField), $00 - - dw Func_1804a - db Bank(Func_1804a), $00 - - dw Func_1804a - db Bank(Func_1804a), $00 - - ; STAGE_BLUE_FIELD_TOP - dw StartBallBlueField - db Bank(StartBallBlueField), $00 - - ; STAGE_BLUE_FIELD_BOTTOM - dw StartBallBlueField - db Bank(StartBallBlueField), $00 - - ; STAGE_GENGAR_BONUS - dw StartBallGengarBonusStage - db Bank(StartBallGengarBonusStage), $00 - - ; STAGE_GENGAR_BONUS - dw StartBallGengarBonusStage - db Bank(StartBallGengarBonusStage), $00 - - ; STAGE_MEWTWO_BONUS - dw StartBallMewtwoBonusStage - db Bank(StartBallMewtwoBonusStage), $00 - - ; STAGE_MEWTWO_BONUS - dw StartBallMewtwoBonusStage - db Bank(StartBallMewtwoBonusStage), $00 - - ; STAGE_MEOWTH_BONUS - dw StartBallMeowthBonusStage - db Bank(StartBallMeowthBonusStage), $00 - - ; STAGE_MEOWTH_BONUS - dw StartBallMeowthBonusStage - db Bank(StartBallMeowthBonusStage), $00 - - ; STAGE_DIGLETT_BONUS - dw StartBallDiglettBonusStage - db Bank(StartBallDiglettBonusStage), $00 - - ; STAGE_DIGLETT_BONUS - dw StartBallDiglettBonusStage - db Bank(StartBallDiglettBonusStage), $00 - - ; STAGE_SEEL_BONUS - dw StartBallSeelBonusStage - db Bank(StartBallSeelBonusStage), $00 - - ; STAGE_SEEL_BONUS - dw StartBallSeelBonusStage - db Bank(StartBallSeelBonusStage), $00 + ; STAGE_RED_FIELD_TOP + padded_dab StartBallRedField + ; STAGE_RED_FIELD_BOTTOM + padded_dab StartBallRedField + padded_dab Func_1804a + padded_dab Func_1804a + ; STAGE_BLUE_FIELD_TOP + padded_dab StartBallBlueField + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab StartBallBlueField + ; STAGE_GENGAR_BONUS + padded_dab StartBallGengarBonusStage + ; STAGE_GENGAR_BONUS + padded_dab StartBallGengarBonusStage + ; STAGE_MEWTWO_BONUS + padded_dab StartBallMewtwoBonusStage + ; STAGE_MEWTWO_BONUS + padded_dab StartBallMewtwoBonusStage + ; STAGE_MEOWTH_BONUS + padded_dab StartBallMeowthBonusStage + ; STAGE_MEOWTH_BONUS + padded_dab StartBallMeowthBonusStage + ; STAGE_DIGLETT_BONUS + padded_dab StartBallDiglettBonusStage + ; STAGE_DIGLETT_BONUS + padded_dab StartBallDiglettBonusStage + ; STAGE_SEEL_BONUS + padded_dab StartBallSeelBonusStage + ; STAGE_SEEL_BONUS + padded_dab StartBallSeelBonusStage Func_8444: ; 0x8444 - ld a, [wInSpecialMode] - and a - jr z, .asm_8460 - ld a, [wSpecialMode] - and a - jr nz, .asm_8460 - ld a, [$d5bb] - and a - jr z, .asm_8460 - ld [$ff8a], a - ld a, Bank(Func_10464) - ld hl, Func_10464 - call BankSwitch + ld a, [wInSpecialMode] + and a + jr z, .asm_8460 + ld a, [wSpecialMode] + and a + jr nz, .asm_8460 + ld a, [wd5bb] + and a + jr z, .asm_8460 + callba Func_10464 .asm_8460 - ret + ret Func_8461: ; 0x8461 - ld a, [$d7c0] - call SetSongBank - ld a, [$d7bf] - ld e, a - ld d, $0 - call PlaySong - ret + ld a, [wd7c0] + call SetSongBank + ld a, [wd7bf] + ld e, a + ld d, $0 + call PlaySong + ret Func_8471: ; 0x8471 - ld a, [wCurrentStage] - call CallInFollowingTable + ld a, [wCurrentStage] + call CallInFollowingTable CallTable_8477: ; 0x8477 - ; STAGE_RED_FIELD_TOP - dw Func_14000 - db Bank(Func_14000), $00 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_1401c - db Bank(Func_1401c), $00 - - dw Func_1805f - db Bank(Func_1805f), $00 - - dw Func_18060 - db Bank(Func_18060), $00 - - ; STAGE_BLUE_FIELD_TOP - dw Func_1c165 - db Bank(Func_1c165), $00 - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_1c191 - db Bank(Func_1c191), $00 - - ; STAGE_GENGAR_BONUS - dw Func_1818b - db Bank(Func_1818b), $00 - - ; STAGE_GENGAR_BONUS - dw Func_1818b - db Bank(Func_1818b), $00 - - ; STAGE_MEWTWO_BONUS - dw Func_19310 - db Bank(Func_19310), $00 - - ; STAGE_MEWTWO_BONUS - dw Func_19310 - db Bank(Func_19310), $00 - - ; STAGE_MEOWTH_BONUS - dw Func_24128 - db Bank(Func_24128), $00 - - ; STAGE_MEOWTH_BONUS - dw Func_24128 - db Bank(Func_24128), $00 - - ; STAGE_DIGLETT_BONUS - dw Func_19a76 - db Bank(Func_19a76), $00 - - ; STAGE_DIGLETT_BONUS - dw Func_19a76 - db Bank(Func_19a76), $00 - - ; STAGE_SEEL_BONUS - dw Func_25b97 - db Bank(Func_25b97), $00 - - ; STAGE_SEEL_BONUS - dw Func_25b97 - db Bank(Func_25b97), $00 + ; STAGE_RED_FIELD_TOP + padded_dab Func_14000 + ; STAGE_RED_FIELD_BOTTOM + padded_dab Func_1401c + padded_dab Func_1805f + padded_dab Func_18060 + ; STAGE_BLUE_FIELD_TOP + padded_dab Func_1c165 + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab Func_1c191 + ; STAGE_GENGAR_BONUS + padded_dab Func_1818b + ; STAGE_GENGAR_BONUS + padded_dab Func_1818b + ; STAGE_MEWTWO_BONUS + padded_dab Func_19310 + ; STAGE_MEWTWO_BONUS + padded_dab Func_19310 + ; STAGE_MEOWTH_BONUS + padded_dab Func_24128 + ; STAGE_MEOWTH_BONUS + padded_dab Func_24128 + ; STAGE_DIGLETT_BONUS + padded_dab Func_19a76 + ; STAGE_DIGLETT_BONUS + padded_dab Func_19a76 + ; STAGE_SEEL_BONUS + padded_dab Func_25b97 + ; STAGE_SEEL_BONUS + padded_dab Func_25b97 Func_84b7: ; 0x84b7 - ld a, [wCurrentStage] - call CallInFollowingTable + ld a, [wCurrentStage] + call CallInFollowingTable PointerTable_84bd: ; 0x84bd - ; STAGE_RED_FIELD_TOP - dw Func_1755c - db Bank(Func_1755c), $00 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_1757e - db Bank(Func_1757e), $00 - - dw Func_18079 - db Bank(Func_18079), $00 - - dw Func_18084 - db Bank(Func_18084), $00 - - ; STAGE_BLUE_FIELD_TOP - dw Func_1f330 - db Bank(Func_1f330), $00 - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_1f35a - db Bank(Func_1f35a), $00 - - ; STAGE_GENGAR_BONUS - dw Func_18faf - db Bank(Func_18faf), $00 - - ; STAGE_GENGAR_BONUS - dw Func_18faf - db Bank(Func_18faf), $00 - - ; STAGE_MEWTWO_BONUS - dw Func_1994e - db Bank(Func_1994e), $00 - - ; STAGE_MEWTWO_BONUS - dw Func_1994e - db Bank(Func_1994e), $00 - - ; STAGE_MEOWTH_BONUS - dw Func_2583b - db Bank(Func_2583b), $00 - - ; STAGE_MEOWTH_BONUS - dw Func_2583b - db Bank(Func_2583b), $00 - - ; STAGE_DIGLETT_BONUS - dw Func_1ac98 - db Bank(Func_1ac98), $00 - - ; STAGE_DIGLETT_BONUS - dw Func_1ac98 - db Bank(Func_1ac98), $00 - - ; STAGE_SEEL_BONUS - dw Func_26b7e - db Bank(Func_26b7e), $00 - - ; STAGE_SEEL_BONUS - dw Func_26b7e - db Bank(Func_26b7e), $00 - -INCBIN "baserom.gbc",$84fd,$8524 - $84fd + ; STAGE_RED_FIELD_TOP + padded_dab Func_1755c + ; STAGE_RED_FIELD_BOTTOM + padded_dab Func_1757e + padded_dab Func_18079 + padded_dab Func_18084 + ; STAGE_BLUE_FIELD_TOP + padded_dab Func_1f330 + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab Func_1f35a + ; STAGE_GENGAR_BONUS + padded_dab Func_18faf + ; STAGE_GENGAR_BONUS + padded_dab Func_18faf + ; STAGE_MEWTWO_BONUS + padded_dab Func_1994e + ; STAGE_MEWTWO_BONUS + padded_dab Func_1994e + ; STAGE_MEOWTH_BONUS + padded_dab Func_2583b + ; STAGE_MEOWTH_BONUS + padded_dab Func_2583b + ; STAGE_DIGLETT_BONUS + padded_dab Func_1ac98 + ; STAGE_DIGLETT_BONUS + padded_dab Func_1ac98 + ; STAGE_SEEL_BONUS + padded_dab Func_26b7e + ; STAGE_SEEL_BONUS + padded_dab Func_26b7e + +Func_84fd: + ld a, [hGameBoyColorFlag] + and a + jr z, .not_cgb + ld a, $1 + ld [rVBK], a + xor a + call .FillAttrsOrBGMap + xor a + ld [rVBK], a +.not_cgb + ld a, $81 + call .FillAttrsOrBGMap + ld de, wc600 + $47 + call Func_8524 + ret + +.FillAttrsOrBGMap: ; 8519 (2:4519) + hlCoord 0, 0, vBGWin + ld b, $20 +.loop + ld [hli], a + ld [hli], a + dec b + jr nz, .loop + ret Func_8524: ; 0x8524 - ld hl, $d46f - ld bc, $0c01 -.asm_852a - ld a, [hl] - swap a - and $f - call Func_8543 - inc de - dec b - ld a, [hld] - and $f - call Func_8543 - inc de - dec b - jr nz, .asm_852a - ld a, $86 - ld [de], a - inc de - ret - -Func_8543: ; 0x8543 - jr nz, .asm_854c - ld a, b - dec a - jr z, .asm_854c - ld a, c - and a - ret nz -.asm_854c - add $86 - ld [de], a - ld c, $0 - ld a, b - cp $c - jr z, .asm_8561 - cp $9 - jr z, .asm_8561 - cp $6 - jr z, .asm_8561 - cp $3 - ret nz -.asm_8561 - set 7, e - ld a, $82 - ld [de], a - res 7, e - ret - -INCBIN "baserom.gbc",$8569,$8576 - $8569 - -Func_8576: ; 0x8576 - ld h, b - ld l, c - ld a, [$d477] - ld e, a - ld d, $d4 - ld a, [wBallType] - and a - jr nz, .asm_8585 - inc a + ld hl, wScore + $5 + lb bc, $0c, $01 +.loop + ld a, [hl] + swap a + and $f + call .GetDigit + inc de + dec b + ld a, [hld] + and $f + call .GetDigit + inc de + dec b + jr nz, .loop + ld a, $86 + ld [de], a + inc de + ret + +.GetDigit: ; 0x8543 + jr nz, .okay + ld a, b + dec a + jr z, .okay + ld a, c + and a + ret nz +.okay + add $86 ; 0 + ld [de], a + ld c, $0 + ld a, b + cp $c + jr z, .load_tile_82 + cp $9 + jr z, .load_tile_82 + cp $6 + jr z, .load_tile_82 + cp $3 + ret nz +.load_tile_82 + set 7, e + ld a, $82 ; , + ld [de], a + res 7, e + ret + +Func_8569: + xor a + ld hl, wAddScoreQueue + ld b, $31 +.asm_856f + ld [hli], a + ld [hli], a + dec b + jr nz, .asm_856f + ld [hli], a + ret + +AddBigBCD6FromQueueWithBallMultiplier: ; 0x8576 + ld h, b + ld l, c + ld a, [wAddScoreQueueOffset] + ld e, a + ld d, wAddScoreQueue / $100 + ld a, [wBallType] + and a + jr nz, .asm_8585 + inc a .asm_8585 - ld b, a - jr asm_8592 - -Func_8588: ; 0x8588 - ld h, b - ld l, c - ld a, [$d477] - ld e, a - ld d, $d4 - ld b, $1 + ld b, a + jr asm_8592 + +AddBigBCD6FromQueue: ; 0x8588 +; bc - Points to BCD buffer + ld h, b + ld l, c + ld a, [wAddScoreQueueOffset] + ld e, a + ld d, wAddScoreQueue / $100 + ld b, $1 asm_8592: - push hl - ld a, [de] - add [hl] - daa - ld [de], a - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - inc de - inc hl - ld a, e - cp $60 - jr nz, .asm_85be - ld e, $0 -.asm_85be - pop hl - dec b - jr nz, asm_8592 - ld a, e - ld [$d477], a - ret + push hl +x = 0 +rept 6 + ld a, [de] +if x == 0 + add [hl] +else + adc [hl] +endc + daa + ld [de], a + inc de + inc hl +x = x + 1 +endr + ld a, e + cp wAddScoreQueueEnd % $100 + jr nz, .okay + ld e, wAddScoreQueue % $100 +.okay + pop hl + dec b + jr nz, asm_8592 + ld a, e + ld [wAddScoreQueueOffset], a + ret Func_85c7: ; 0x85c7 - ld a, [$ffb3] - and $3 - ret nz - ld a, [$d478] - ld l, a - ld h, $d4 - ld de, wScore - ld a, [$d477] - cp l - jr nz, .asm_85de - ld [$d479], a + ld a, [hNumFramesDropped] + and $3 + ret nz + ld a, [wd478] + ld l, a + ld h, wAddScoreQueue / $100 + ld de, wScore + ld a, [wAddScoreQueueOffset] + cp l + jr nz, .asm_85de + ld [wd479], a .asm_85de - push hl - ld a, [hli] - or [hl] - inc hl - or [hl] - inc hl - or [hl] - inc hl - or [hl] - inc hl - or [hl] - pop hl - jr nz, .asm_85f3 - ld a, [$d479] - ld [$d478], a - ret -.asm_85f3 - ld a, [de] - add [hl] - daa - ld [de], a - ld [hl], $0 - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - ld [hl], $0 - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - ld [hl], $0 - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - ld [hl], $0 - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - ld [hl], $0 - inc de - inc hl - ld a, [de] - adc [hl] - daa - ld [de], a - ld [hl], $0 - call c, SetMaxScore - inc de - inc hl - ld a, l - cp $60 - jr nz, .asm_862d - ld l, $0 + push hl + ld a, [hli] + or [hl] + inc hl + or [hl] + inc hl + or [hl] + inc hl + or [hl] + inc hl + or [hl] + pop hl + jr nz, .value_is_nonzero + ld a, [wd479] + ld [wd478], a + ret + +.value_is_nonzero + ld a, [de] + add [hl] + daa + ld [de], a + ld [hl], $0 + inc de + inc hl + ld a, [de] + adc [hl] + daa + ld [de], a + ld [hl], $0 + inc de + inc hl + ld a, [de] + adc [hl] + daa + ld [de], a + ld [hl], $0 + inc de + inc hl + ld a, [de] + adc [hl] + daa + ld [de], a + ld [hl], $0 + inc de + inc hl + ld a, [de] + adc [hl] + daa + ld [de], a + ld [hl], $0 + inc de + inc hl + ld a, [de] + adc [hl] + daa + ld [de], a + ld [hl], $0 + call c, SetMaxScore + inc de + inc hl + ld a, l + cp $60 + jr nz, .asm_862d + ld l, $0 .asm_862d - ld a, l - ld [$d478], a - ld a, $1 - ld [$d49f], a - ret + ld a, l + ld [wd478], a + ld a, $1 + ld [wd49f], a + ret SetMaxScore: ; 0x8637 - push hl - ld hl, wScore - ld a, $99 - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - pop hl - ret + push hl + ld hl, wScore + ld a, $99 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + pop hl + ret Func_8645: ; 0x8645 - xor a - ld [$d49f], a - ld de, $c647 - call Func_8524 - ret + xor a + ld [wd49f], a + ld de, wc600 + $47 + call Func_8524 + ret Func_8650: ; 0x8650 - ld a, [wCurrentStage] - bit 0, a - jr nz, .bottomStage - ld a, $86 - ld [$ffa6], a - ret + ld a, [wCurrentStage] + bit 0, a + jr nz, .bottomStage + ld a, $86 + ld [hWY], a + ret + .bottomStage - ld a, [wBallYPos + 1] - cp $84 - jr nc, .asm_8670 - ld a, [$ffa6] - sub $3 - cp $86 - jr nc, .asm_866d - ld a, $86 + ld a, [wBallYPos + 1] + cp $84 + jr nc, .asm_8670 + ld a, [hWY] + sub $3 + cp $86 + jr nc, .asm_866d + ld a, $86 .asm_866d - ld [$ffa6], a - ret + ld [hWY], a + ret + .asm_8670 - ld a, [$ffa6] - add $3 - cp $90 - jr c, .asm_867a - ld a, $90 + ld a, [hWY] + add $3 + cp $90 + jr c, .asm_867a + ld a, $90 .asm_867a - ld [$ffa6], a - ret + ld [hWY], a + ret StartTimer: ; 0x867d ; Starts the timer that counts down with the specified starting time when things ; like CatchEm Mode starts. ; input: b = minutes ; c = seconds - ld a, c - ld [wTimerSeconds], a - ld a, b - ld [wTimerMinutes], a - xor a - ld [wTimerFrames], a - ld [$d57e], a - ld [$d57f], a - ld a, $1 - ld [$d57d], a - ld a, $1 - ld [$d580], a - ld [$ff8a], a - ld a, Bank(Func_1404a) - ld hl, Func_1404a - call BankSwitch - ret + ld a, c + ld [wTimerSeconds], a + ld a, b + ld [wTimerMinutes], a + xor a + ld [wTimerFrames], a + ld [wd57e], a + ld [wd57f], a + ld a, $1 + ld [wd57d], a + ld a, $1 + ld [wd580], a + callba Func_1404a + ret Func_86a4: ; 0x86a4 - ld a, [$d57f] - and a - ret nz - ld a, [wTimerFrames] - inc a - cp $3c - jr c, .asm_86b2 - xor a + ld a, [wd57f] + and a + ret nz + ld a, [wTimerFrames] + inc a + cp $3c + jr c, .asm_86b2 + xor a .asm_86b2 - ld [wTimerFrames], a - ret c - ld hl, wTimerMinutes - ld a, [hld] - or [hl] - jr nz, .asm_86c3 - ld a, $1 - ld [$d57e], a - ret + ld [wTimerFrames], a + ret c + ld hl, wTimerMinutes + ld a, [hld] + or [hl] + jr nz, .asm_86c3 + ld a, $1 + ld [wd57e], a + ret + .asm_86c3 - ld a, [hl] - sub $1 - daa - jr nc, .asm_86cb - ld a, $59 + ld a, [hl] + sub $1 + daa + jr nc, .asm_86cb + ld a, $59 .asm_86cb - ld [hli], a - ld a, [hl] - sbc $0 - daa - ld [hl], a - ret + ld [hli], a + ld a, [hl] + sbc $0 + daa + ld [hl], a + ret Func_86d2: ; 0x86d2 - xor a - ld [$d57d], a - ret + xor a + ld [wd57d], a + ret HandleInGameMenu: ; 0x86d7 ; Routine responsible for the "SAVE"/"CANCEL" menu. - ld a, [$d917] - push af - ld a, $1 - ld [$d917], a - call Func_30e8 - xor a - ld [$d4aa], a - ld hl, wcBottomMessageText - ld a, $81 - ld b, $30 + ld a, [wd917] + push af + ld a, $1 + ld [wd917], a + call Fillwc600WithBlackTile + xor a + ld [wd4aa], a + ld hl, wBottomMessageText + ld a, $81 + ld b, $30 .clearLoop - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .clearLoop - ld de, $c524 - ld hl, SaveText - call Func_8797 - ld de, $c564 - ld hl, CancelText - call Func_8797 - ld a, Bank(InGameMenuSymbolsGfx) - ld hl, InGameMenuSymbolsGfx - ld de, vTiles1 + $60 - ld bc, $0010 - call LoadVRAMData - ld a, $0 - ld hl, wcBottomMessageText - ld de, vBGMap1 - ld bc, $00c0 - call LoadVRAMData - ld a, $60 - ld [$ffa6], a - dec a - ld [$ffa2], a - ld a, $fd - ld [$ffaf], a - call HandleInGameMenuSelection - ld a, [wInGameMenuIndex] - and a - jr nz, .pickedCancel - ld a, $1 - ld [$d7c2], a - ld hl, wPartyMons - ld de, $a268 - ld bc, $04c3 - call SaveData - xor a - ld [$d803], a - ld [$d804], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + dec b + jr nz, .clearLoop + ld de, wBottomMessageText + $24 + ld hl, SaveText + call Func_8797 + ld de, wBottomMessageText + $64 + ld hl, CancelText + call Func_8797 + ld a, Bank(InGameMenuSymbolsGfx) + ld hl, InGameMenuSymbolsGfx + ld de, vTilesSH + $60 + ld bc, $0010 + call LoadVRAMData + ld a, $0 + ld hl, wBottomMessageText + ld de, vBGWin + ld bc, $00c0 + call LoadVRAMData + ld a, $60 + ld [hWY], a + dec a + ld [hLYC], a + ld a, $fd + ld [hLCDCMask], a + call HandleInGameMenuSelection + ld a, [wInGameMenuIndex] + and a + jr nz, .pickedCancel + ld a, $1 + ld [wd7c2], a + ld hl, wPartyMons + ld de, sSaveGame + ld bc, $04c3 + call SaveData + xor a + ld [wd803], a + ld [wd804], a .pickedCancel - ld bc, $003c - call Func_93f - ld a, $86 - ld [$ffa6], a - ld a, $83 - ld [$ffa2], a - ld [$ffa8], a - ld a, $ff - ld [$ffaf], a - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_8778 - ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy) - ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoy + $60 - ld de, vTiles1 + $60 - ld bc, $0010 - call LoadVRAMData - jr .asm_8786 + ld bc, $003c + call AdvanceFrames + ld a, $86 + ld [hWY], a + ld a, $83 + ld [hLYC], a + ld [hLastLYC], a + ld a, $ff + ld [hLCDCMask], a + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_8778 + ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy) + ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoy + $60 + ld de, vTilesSH + $60 + ld bc, $0010 + call LoadVRAMData + jr .asm_8786 + .asm_8778 - ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor) - ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + $60 - ld de, vTiles1 + $60 - ld bc, $0010 - call LoadVRAMData + ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor) + ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + $60 + ld de, vTilesSH + $60 + ld bc, $0010 + call LoadVRAMData .asm_8786 - call Func_30e8 - pop af - ld [$d917], a - ld a, $1 - ld [$d4aa], a - ld a, [wInGameMenuIndex] - and a - ret + call Fillwc600WithBlackTile + pop af + ld [wd917], a + ld a, $1 + ld [wd4aa], a + ld a, [wInGameMenuIndex] + and a + ret Func_8797: ; 0x8797 - ld a, [hli] - and a - ret z - add $bf - ld [de], a - inc de - jr Func_8797 + ld a, [hli] + and a + ret z + add $bf + ld [de], a + inc de + jr Func_8797 SaveText: ; 0x87a0 - db "SAVE@" + db "SAVE@" CancelText: ; 0x87a5 - db "CANCEL@" + db "CANCEL@" HandleInGameMenuSelection: ; 0x87ac - ld a, $1 - ld [wInGameMenuIndex], a + ld a, $1 + ld [wInGameMenuIndex], a .waitForAButton - call MoveInGameMenuCursor - call DrawInGameMenu - rst $10 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .waitForAButton - ld de, $0001 - call PlaySoundEffect - ret + call MoveInGameMenuCursor + call DrawInGameMenu + rst AdvanceFrame + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .waitForAButton + lb de, $00, $01 + call PlaySoundEffect + ret MoveInGameMenuCursor: ; 0x87c5 ; Moves the cursor up or down in the "SAVE"/"CANCEL" in-game menu - ld a, [hNewlyPressedButtons] - ld b, a - ld a, [wInGameMenuIndex] - bit BIT_D_UP, b - jr z, .didntPressUp - and a ; is the cursor already on "SAVE"? - ret z - dec a - ld [wInGameMenuIndex], a - ld de, $0003 - call PlaySoundEffect - ret + ld a, [hNewlyPressedButtons] + ld b, a + ld a, [wInGameMenuIndex] + bit BIT_D_UP, b + jr z, .didntPressUp + and a ; is the cursor already on "SAVE"? + ret z + dec a + ld [wInGameMenuIndex], a + lb de, $00, $03 + call PlaySoundEffect + ret + .didntPressUp - bit BIT_D_DOWN, b - ret z - cp $1 ; is the cursor already on "CANCEL"? - ret z - inc a - ld [wInGameMenuIndex], a - ld de, $0003 - call PlaySoundEffect - ret + bit BIT_D_DOWN, b + ret z + cp $1 ; is the cursor already on "CANCEL"? + ret z + inc a + ld [wInGameMenuIndex], a + lb de, $00, $03 + call PlaySoundEffect + ret DrawInGameMenu: ; 0x87ed - ld a, $81 - ld [$c523], a - ld [$c563], a - ld a, [wInGameMenuIndex] - ld c, a - swap c - sla c - sla c - ld b, $0 - ld hl, $c523 - add hl, bc - ld a, $86 - ld [hl], a - ld a, $0 - ld hl, wcBottomMessageText - ld de, vBGMap1 - ld bc, $00c0 - call LoadVRAMData - ret + ld a, $81 + ld [wBottomMessageText + $23], a + ld [wBottomMessageText + $63], a + ld a, [wInGameMenuIndex] + ld c, a + swap c + sla c + sla c + ld b, $0 + ld hl, wBottomMessageText + $23 + add hl, bc + ld a, $86 + ld [hl], a + ld a, $0 + ld hl, wBottomMessageText + ld de, vBGWin + ld bc, $00c0 + call LoadVRAMData + ret Data_8817: ; 0x8817 ; This data has something to do with collisions. - db $C0 - db $C5 - db $D0 - db $DB - db $E0 - db $E5 - db $F0 - db $FB - db $00 - db $05 - db $10 - db $1B - db $20 - db $25 - db $30 - db $3B - db $45 - db $CA - db $D5 - db $E0 - db $E5 - db $EA - db $F5 - db $00 - db $05 - db $0A - db $15 - db $20 - db $25 - db $2A - db $35 - db $40 - db $50 - db $55 - db $E0 - db $EB - db $F0 - db $F5 - db $00 - db $0B - db $10 - db $15 - db $20 - db $2B - db $30 - db $35 - db $40 - db $4B - db $5B - db $60 - db $6B - db $F6 - db $FB - db $00 - db $0B - db $16 - db $1B - db $20 - db $2B - db $36 - db $3B - db $40 - db $4B - db $56 - db $60 - db $65 - db $70 - db $7B - db $00 - db $05 - db $10 - db $1B - db $20 - db $25 - db $30 - db $3B - db $40 - db $45 - db $50 - db $5B - db $65 - db $6A - db $75 - db $80 - db $85 - db $0A - db $15 - db $20 - db $25 - db $2A - db $35 - db $40 - db $45 - db $4A - db $55 - db $60 - db $70 - db $75 - db $80 - db $8B - db $90 - db $95 - db $20 - db $2B - db $30 - db $35 - db $40 - db $4B - db $50 - db $55 - db $60 - db $6B - db $7B - db $80 - db $8B - db $96 - db $9B - db $A0 - db $AB - db $36 - db $3B - db $40 - db $4B - db $56 - db $5B - db $60 - db $6B - db $76 - db $80 - db $85 - db $90 - db $9B - db $A0 - db $A5 - db $B0 - db $BB - db $40 - db $45 - db $50 - db $5B - db $60 - db $65 - db $70 - db $7B - db $85 - db $8A - db $95 - db $A0 - db $A5 - db $AA - db $B5 - db $C0 - db $C5 - db $4A - db $55 - db $60 - db $65 - db $6A - db $75 - db $80 - db $90 - db $95 - db $A0 - db $AB - db $B0 - db $B5 - db $C0 - db $CB - db $D0 - db $D5 - db $60 - db $6B - db $70 - db $75 - db $80 - db $8B - db $9B - db $A0 - db $AB - db $B6 - db $BB - db $C0 - db $CB - db $D6 - db $DB - db $E0 - db $EB - db $76 - db $7B - db $80 - db $8B - db $96 - db $A0 - db $A5 - db $B0 - db $BB - db $C0 - db $C5 - db $D0 - db $DB - db $E0 - db $E5 - db $F0 - db $FB - db $80 - db $85 - db $90 - db $9B - db $A5 - db $AA - db $B5 - db $C0 - db $C5 - db $CA - db $D5 - db $E0 - db $E5 - db $EA - db $F5 - db $00 - db $05 - db $8A - db $95 - db $A0 - db $B0 - db $B5 - db $C0 - db $CB - db $D0 - db $D5 - db $E0 - db $EB - db $F0 - db $F5 - db $00 - db $0B - db $10 - db $15 - db $A0 - db $AB - db $BB - db $C0 - db $CB - db $D6 - db $DB - db $E0 - db $EB - db $F6 - db $FB - db $00 - db $0B - db $16 - db $1B - db $20 - db $2B - db $B6 + db $C0 + db $C5 + db $D0 + db $DB + db $E0 + db $E5 + db $F0 + db $FB + db $00 + db $05 + db $10 + db $1B + db $20 + db $25 + db $30 + db $3B + db $45 + db $CA + db $D5 + db $E0 + db $E5 + db $EA + db $F5 + db $00 + db $05 + db $0A + db $15 + db $20 + db $25 + db $2A + db $35 + db $40 + db $50 + db $55 + db $E0 + db $EB + db $F0 + db $F5 + db $00 + db $0B + db $10 + db $15 + db $20 + db $2B + db $30 + db $35 + db $40 + db $4B + db $5B + db $60 + db $6B + db $F6 + db $FB + db $00 + db $0B + db $16 + db $1B + db $20 + db $2B + db $36 + db $3B + db $40 + db $4B + db $56 + db $60 + db $65 + db $70 + db $7B + db $00 + db $05 + db $10 + db $1B + db $20 + db $25 + db $30 + db $3B + db $40 + db $45 + db $50 + db $5B + db $65 + db $6A + db $75 + db $80 + db $85 + db $0A + db $15 + db $20 + db $25 + db $2A + db $35 + db $40 + db $45 + db $4A + db $55 + db $60 + db $70 + db $75 + db $80 + db $8B + db $90 + db $95 + db $20 + db $2B + db $30 + db $35 + db $40 + db $4B + db $50 + db $55 + db $60 + db $6B + db $7B + db $80 + db $8B + db $96 + db $9B + db $A0 + db $AB + db $36 + db $3B + db $40 + db $4B + db $56 + db $5B + db $60 + db $6B + db $76 + db $80 + db $85 + db $90 + db $9B + db $A0 + db $A5 + db $B0 + db $BB + db $40 + db $45 + db $50 + db $5B + db $60 + db $65 + db $70 + db $7B + db $85 + db $8A + db $95 + db $A0 + db $A5 + db $AA + db $B5 + db $C0 + db $C5 + db $4A + db $55 + db $60 + db $65 + db $6A + db $75 + db $80 + db $90 + db $95 + db $A0 + db $AB + db $B0 + db $B5 + db $C0 + db $CB + db $D0 + db $D5 + db $60 + db $6B + db $70 + db $75 + db $80 + db $8B + db $9B + db $A0 + db $AB + db $B6 + db $BB + db $C0 + db $CB + db $D6 + db $DB + db $E0 + db $EB + db $76 + db $7B + db $80 + db $8B + db $96 + db $A0 + db $A5 + db $B0 + db $BB + db $C0 + db $C5 + db $D0 + db $DB + db $E0 + db $E5 + db $F0 + db $FB + db $80 + db $85 + db $90 + db $9B + db $A5 + db $AA + db $B5 + db $C0 + db $C5 + db $CA + db $D5 + db $E0 + db $E5 + db $EA + db $F5 + db $00 + db $05 + db $8A + db $95 + db $A0 + db $B0 + db $B5 + db $C0 + db $CB + db $D0 + db $D5 + db $E0 + db $EB + db $F0 + db $F5 + db $00 + db $0B + db $10 + db $15 + db $A0 + db $AB + db $BB + db $C0 + db $CB + db $D6 + db $DB + db $E0 + db $EB + db $F6 + db $FB + db $00 + db $0B + db $16 + db $1B + db $20 + db $2B + db $B6 Data_8917: ; 0x8917 ; This has to do with y-collision data - dw $0000 - dw $FFE0 - dw $FF81 - dw $FEDE - dw $FE77 - dw $FE00 - dw $FCCC - dw $FB87 - dw $FB01 - dw $FA8E - dw $F9F8 - dw $FA1F - dw $FA77 - dw $FAFC - dw $FCAD - dw $FEE7 - dw $0119 - dw $FFC2 - dw $FF70 - dw $FEE4 - dw $FE8C - dw $FE24 - dw $FD15 - dw $FBF9 - dw $FB87 - dw $FB27 - dw $FAB9 - dw $FB03 - dw $FB69 - dw $FBFA - dw $FDBD - dw $0000 - dw $0353 - dw $045D - dw $FF4B - dw $FF01 - dw $FECC - dw $FE8A - dw $FDD5 - dw $FD15 - dw $FCCC - dw $FC94 - dw $FC77 - dw $FD03 - dw $FD81 - dw $FE24 - dw $0000 - dw $0243 - dw $0504 - dw $05F6 - dw $07B4 - dw $FF08 - dw $FEFB - dw $FEE2 - dw $FE8A - dw $FE24 - dw $FE00 - dw $FDEC - dw $FE10 - dw $FEC9 - dw $FF54 - dw $0000 - dw $01DC - dw $0406 - dw $0589 - dw $066D - dw $0808 - dw $08E7 - dw $FF00 - dw $FEFB - dw $FECC - dw $FE8C - dw $FE77 - dw $FE71 - dw $FEAD - dw $FF73 - dw $0000 - dw $00AC - dw $027F - dw $0497 - dw $05E1 - dw $06B6 - dw $082C - dw $08E1 - dw $08E7 - dw $FF08 - dw $FF01 - dw $FEE4 - dw $FEDE - dw $FEE3 - dw $FF32 - dw $0000 - dw $008D - dw $0137 - dw $02FD - dw $04FD - dw $0608 - dw $06B8 - dw $07D4 - dw $082C - dw $0808 - dw $07B4 - dw $FF4B - dw $FF70 - dw $FF81 - dw $FF99 - dw $0000 - dw $00CE - dw $0153 - dw $01F0 - dw $0389 - dw $0547 - dw $0572 - dw $05F8 - dw $06B8 - dw $06B6 - dw $066D - dw $05F6 - dw $045D - dw $FFC2 - dw $FFE0 - dw $0000 - dw $0067 - dw $011D - dw $018F - dw $0214 - dw $036C - dw $04D9 - dw $04FF - dw $0572 - dw $0608 - dw $05E1 - dw $0589 - dw $0504 - dw $0353 - dw $0119 - dw $0000 - dw $0020 - dw $007F - dw $0122 - dw $0189 - dw $0200 - dw $0334 - dw $0479 - dw $0479 - dw $04D9 - dw $0547 - dw $04FD - dw $0497 - dw $0406 - dw $0243 - dw $0000 - dw $FEE7 - dw $003E - dw $0090 - dw $011C - dw $0174 - dw $01DC - dw $02EB - dw $0407 - dw $0334 - dw $036C - dw $0389 - dw $02FD - dw $027F - dw $01DC - dw $0000 - dw $FDBD - dw $FCAD - dw $FBA3 - dw $00B5 - dw $00FF - dw $0134 - dw $0176 - dw $022B - dw $02EB - dw $0200 - dw $0214 - dw $01F0 - dw $0137 - dw $00AC - dw $0000 - dw $FE24 - dw $FBFA - dw $FAFC - dw $FA0A - dw $F84C - dw $00F8 - dw $0105 - dw $011E - dw $0176 - dw $01DC - dw $0189 - dw $018F - dw $0153 - dw $008D - dw $0000 - dw $FF54 - dw $FD81 - dw $FB69 - dw $FA77 - dw $F993 - dw $F7F8 - dw $F719 - dw $0100 - dw $0105 - dw $0134 - dw $0174 - dw $0122 - dw $011D - dw $00CE - dw $0000 - dw $FF73 - dw $FEC9 - dw $FD03 - dw $FB03 - dw $FA1F - dw $F94A - dw $F7D4 - dw $F71F - dw $F719 - dw $00F8 - dw $00FF - dw $011C - dw $007F - dw $0067 - dw $0000 - dw $FF32 - dw $FEAD - dw $FE10 - dw $FC77 - dw $FAB9 - dw $F9F8 - dw $F948 - dw $F82C - dw $F7D4 - dw $F7F8 - dw $F84C - dw $00B5 - dw $0090 - dw $0020 - dw $0000 - dw $FF99 - dw $FEE3 - dw $FE71 - dw $FDEC - dw $FC94 - dw $FB27 - dw $FA8E - dw $FA08 - dw $F948 - dw $F94A - dw $F993 - dw $FA0A - dw $FBA3 - dw $003E + dw $0000 + dw $FFE0 + dw $FF81 + dw $FEDE + dw $FE77 + dw $FE00 + dw $FCCC + dw $FB87 + dw $FB01 + dw $FA8E + dw $F9F8 + dw $FA1F + dw $FA77 + dw $FAFC + dw $FCAD + dw $FEE7 + dw $0119 + dw $FFC2 + dw $FF70 + dw $FEE4 + dw $FE8C + dw $FE24 + dw $FD15 + dw $FBF9 + dw $FB87 + dw $FB27 + dw $FAB9 + dw $FB03 + dw $FB69 + dw $FBFA + dw $FDBD + dw $0000 + dw $0353 + dw $045D + dw $FF4B + dw $FF01 + dw $FECC + dw $FE8A + dw $FDD5 + dw $FD15 + dw $FCCC + dw $FC94 + dw $FC77 + dw $FD03 + dw $FD81 + dw $FE24 + dw $0000 + dw $0243 + dw $0504 + dw $05F6 + dw $07B4 + dw $FF08 + dw $FEFB + dw $FEE2 + dw $FE8A + dw $FE24 + dw $FE00 + dw $FDEC + dw $FE10 + dw $FEC9 + dw $FF54 + dw $0000 + dw $01DC + dw $0406 + dw $0589 + dw $066D + dw $0808 + dw $08E7 + dw $FF00 + dw $FEFB + dw $FECC + dw $FE8C + dw $FE77 + dw $FE71 + dw $FEAD + dw $FF73 + dw $0000 + dw $00AC + dw $027F + dw $0497 + dw $05E1 + dw $06B6 + dw $082C + dw $08E1 + dw $08E7 + dw $FF08 + dw $FF01 + dw $FEE4 + dw $FEDE + dw $FEE3 + dw $FF32 + dw $0000 + dw $008D + dw $0137 + dw $02FD + dw $04FD + dw $0608 + dw $06B8 + dw $07D4 + dw $082C + dw $0808 + dw $07B4 + dw $FF4B + dw $FF70 + dw $FF81 + dw $FF99 + dw $0000 + dw $00CE + dw $0153 + dw $01F0 + dw $0389 + dw $0547 + dw $0572 + dw $05F8 + dw $06B8 + dw $06B6 + dw $066D + dw $05F6 + dw $045D + dw $FFC2 + dw $FFE0 + dw $0000 + dw $0067 + dw $011D + dw $018F + dw $0214 + dw $036C + dw $04D9 + dw $04FF + dw $0572 + dw $0608 + dw $05E1 + dw $0589 + dw $0504 + dw $0353 + dw $0119 + dw $0000 + dw $0020 + dw $007F + dw $0122 + dw $0189 + dw $0200 + dw $0334 + dw $0479 + dw $0479 + dw $04D9 + dw $0547 + dw $04FD + dw $0497 + dw $0406 + dw $0243 + dw $0000 + dw $FEE7 + dw $003E + dw $0090 + dw $011C + dw $0174 + dw $01DC + dw $02EB + dw $0407 + dw $0334 + dw $036C + dw $0389 + dw $02FD + dw $027F + dw $01DC + dw $0000 + dw $FDBD + dw $FCAD + dw $FBA3 + dw $00B5 + dw $00FF + dw $0134 + dw $0176 + dw $022B + dw $02EB + dw $0200 + dw $0214 + dw $01F0 + dw $0137 + dw $00AC + dw $0000 + dw $FE24 + dw $FBFA + dw $FAFC + dw $FA0A + dw $F84C + dw $00F8 + dw $0105 + dw $011E + dw $0176 + dw $01DC + dw $0189 + dw $018F + dw $0153 + dw $008D + dw $0000 + dw $FF54 + dw $FD81 + dw $FB69 + dw $FA77 + dw $F993 + dw $F7F8 + dw $F719 + dw $0100 + dw $0105 + dw $0134 + dw $0174 + dw $0122 + dw $011D + dw $00CE + dw $0000 + dw $FF73 + dw $FEC9 + dw $FD03 + dw $FB03 + dw $FA1F + dw $F94A + dw $F7D4 + dw $F71F + dw $F719 + dw $00F8 + dw $00FF + dw $011C + dw $007F + dw $0067 + dw $0000 + dw $FF32 + dw $FEAD + dw $FE10 + dw $FC77 + dw $FAB9 + dw $F9F8 + dw $F948 + dw $F82C + dw $F7D4 + dw $F7F8 + dw $F84C + dw $00B5 + dw $0090 + dw $0020 + dw $0000 + dw $FF99 + dw $FEE3 + dw $FE71 + dw $FDEC + dw $FC94 + dw $FB27 + dw $FA8E + dw $FA08 + dw $F948 + dw $F94A + dw $F993 + dw $FA0A + dw $FBA3 + dw $003E Data_8b17: ; 0x8b17 ; This data has to do with x-collision data - dw $FF00 - dw $FEFB - dw $FECC - dw $FE8C - dw $FE77 - dw $FE71 - dw $FEAD - dw $FF73 - dw $0000 - dw $00AC - dw $027F - dw $0497 - dw $0589 - dw $066D - dw $0808 - dw $08E7 - dw $08E7 - dw $FF08 - dw $FF01 - dw $FEE4 - dw $FEDE - dw $FEE3 - dw $FF32 - dw $0000 - dw $008D - dw $0137 - dw $02FD - dw $04FD - dw $05E1 - dw $06B6 - dw $082C - dw $08E1 - dw $0808 - dw $07B4 - dw $FF4B - dw $FF70 - dw $FF81 - dw $FF99 - dw $0000 - dw $00CE - dw $0153 - dw $01F0 - dw $0389 - dw $0547 - dw $0608 - dw $06B8 - dw $07D4 - dw $082C - dw $066D - dw $05F6 - dw $045D - dw $FFC2 - dw $FFE0 - dw $0000 - dw $0067 - dw $011D - dw $018F - dw $0214 - dw $036C - dw $04D9 - dw $0572 - dw $05F8 - dw $06B8 - dw $06B6 - dw $0589 - dw $0504 - dw $0353 - dw $0119 - dw $0000 - dw $0020 - dw $007F - dw $0122 - dw $0189 - dw $0200 - dw $0334 - dw $0479 - dw $04FF - dw $0572 - dw $0608 - dw $05E1 - dw $0497 - dw $0406 - dw $0243 - dw $0000 - dw $FEE7 - dw $003E - dw $0090 - dw $011C - dw $0174 - dw $01DC - dw $02EB - dw $0407 - dw $0479 - dw $04D9 - dw $0547 - dw $04FD - dw $027F - dw $01DC - dw $0000 - dw $FDBD - dw $FCAD - dw $FBA3 - dw $00B5 - dw $00FF - dw $0134 - dw $0176 - dw $022B - dw $02EB - dw $0334 - dw $036C - dw $0389 - dw $02FD - dw $00AC - dw $0000 - dw $FE24 - dw $FBFA - dw $FAFC - dw $FA0A - dw $F84C - dw $00F8 - dw $0105 - dw $011E - dw $0176 - dw $01DC - dw $0200 - dw $0214 - dw $01F0 - dw $0137 - dw $0000 - dw $FF54 - dw $FD81 - dw $FB69 - dw $FA77 - dw $F993 - dw $F7F8 - dw $F719 - dw $0100 - dw $0105 - dw $0134 - dw $0174 - dw $0189 - dw $018F - dw $0153 - dw $008D - dw $FF73 - dw $FEC9 - dw $FD03 - dw $FB03 - dw $FA1F - dw $F94A - dw $F7D4 - dw $F71F - dw $F719 - dw $00F8 - dw $00FF - dw $011C - dw $0122 - dw $011D - dw $00CE - dw $0000 - dw $FEAD - dw $FE10 - dw $FC77 - dw $FAB9 - dw $F9F8 - dw $F948 - dw $F82C - dw $F7D4 - dw $F7F8 - dw $F84C - dw $00B5 - dw $0090 - dw $007F - dw $0067 - dw $0000 - dw $FF32 - dw $FE71 - dw $FDEC - dw $FC94 - dw $FB27 - dw $FA8E - dw $FA08 - dw $F948 - dw $F94A - dw $F993 - dw $FA0A - dw $FBA3 - dw $003E - dw $0020 - dw $0000 - dw $FF99 - dw $FEE3 - dw $FE77 - dw $FE00 - dw $FCCC - dw $FB87 - dw $FB01 - dw $FA8E - dw $F9F8 - dw $FA1F - dw $FA77 - dw $FAFC - dw $FCAD - dw $FEE7 - dw $0000 - dw $FFE0 - dw $FF81 - dw $FEDE - dw $FE8C - dw $FE24 - dw $FD15 - dw $FBF9 - dw $FB87 - dw $FB27 - dw $FAB9 - dw $FB03 - dw $FB69 - dw $FBFA - dw $FDBD - dw $0000 - dw $0119 - dw $FFC2 - dw $FF70 - dw $FEE4 - dw $FECC - dw $FE8A - dw $FDD5 - dw $FD15 - dw $FCCC - dw $FC94 - dw $FC77 - dw $FD03 - dw $FD81 - dw $FE24 - dw $0000 - dw $0243 - dw $0353 - dw $045D - dw $FF4B - dw $FF01 - dw $FEFB - dw $FEE2 - dw $FE8A - dw $FE24 - dw $FE00 - dw $FDEC - dw $FE10 - dw $FEC9 - dw $FF54 - dw $0000 - dw $01DC - dw $0406 - dw $0504 - dw $05F6 - dw $07B4 - dw $FF08 + dw $FF00 + dw $FEFB + dw $FECC + dw $FE8C + dw $FE77 + dw $FE71 + dw $FEAD + dw $FF73 + dw $0000 + dw $00AC + dw $027F + dw $0497 + dw $0589 + dw $066D + dw $0808 + dw $08E7 + dw $08E7 + dw $FF08 + dw $FF01 + dw $FEE4 + dw $FEDE + dw $FEE3 + dw $FF32 + dw $0000 + dw $008D + dw $0137 + dw $02FD + dw $04FD + dw $05E1 + dw $06B6 + dw $082C + dw $08E1 + dw $0808 + dw $07B4 + dw $FF4B + dw $FF70 + dw $FF81 + dw $FF99 + dw $0000 + dw $00CE + dw $0153 + dw $01F0 + dw $0389 + dw $0547 + dw $0608 + dw $06B8 + dw $07D4 + dw $082C + dw $066D + dw $05F6 + dw $045D + dw $FFC2 + dw $FFE0 + dw $0000 + dw $0067 + dw $011D + dw $018F + dw $0214 + dw $036C + dw $04D9 + dw $0572 + dw $05F8 + dw $06B8 + dw $06B6 + dw $0589 + dw $0504 + dw $0353 + dw $0119 + dw $0000 + dw $0020 + dw $007F + dw $0122 + dw $0189 + dw $0200 + dw $0334 + dw $0479 + dw $04FF + dw $0572 + dw $0608 + dw $05E1 + dw $0497 + dw $0406 + dw $0243 + dw $0000 + dw $FEE7 + dw $003E + dw $0090 + dw $011C + dw $0174 + dw $01DC + dw $02EB + dw $0407 + dw $0479 + dw $04D9 + dw $0547 + dw $04FD + dw $027F + dw $01DC + dw $0000 + dw $FDBD + dw $FCAD + dw $FBA3 + dw $00B5 + dw $00FF + dw $0134 + dw $0176 + dw $022B + dw $02EB + dw $0334 + dw $036C + dw $0389 + dw $02FD + dw $00AC + dw $0000 + dw $FE24 + dw $FBFA + dw $FAFC + dw $FA0A + dw $F84C + dw $00F8 + dw $0105 + dw $011E + dw $0176 + dw $01DC + dw $0200 + dw $0214 + dw $01F0 + dw $0137 + dw $0000 + dw $FF54 + dw $FD81 + dw $FB69 + dw $FA77 + dw $F993 + dw $F7F8 + dw $F719 + dw $0100 + dw $0105 + dw $0134 + dw $0174 + dw $0189 + dw $018F + dw $0153 + dw $008D + dw $FF73 + dw $FEC9 + dw $FD03 + dw $FB03 + dw $FA1F + dw $F94A + dw $F7D4 + dw $F71F + dw $F719 + dw $00F8 + dw $00FF + dw $011C + dw $0122 + dw $011D + dw $00CE + dw $0000 + dw $FEAD + dw $FE10 + dw $FC77 + dw $FAB9 + dw $F9F8 + dw $F948 + dw $F82C + dw $F7D4 + dw $F7F8 + dw $F84C + dw $00B5 + dw $0090 + dw $007F + dw $0067 + dw $0000 + dw $FF32 + dw $FE71 + dw $FDEC + dw $FC94 + dw $FB27 + dw $FA8E + dw $FA08 + dw $F948 + dw $F94A + dw $F993 + dw $FA0A + dw $FBA3 + dw $003E + dw $0020 + dw $0000 + dw $FF99 + dw $FEE3 + dw $FE77 + dw $FE00 + dw $FCCC + dw $FB87 + dw $FB01 + dw $FA8E + dw $F9F8 + dw $FA1F + dw $FA77 + dw $FAFC + dw $FCAD + dw $FEE7 + dw $0000 + dw $FFE0 + dw $FF81 + dw $FEDE + dw $FE8C + dw $FE24 + dw $FD15 + dw $FBF9 + dw $FB87 + dw $FB27 + dw $FAB9 + dw $FB03 + dw $FB69 + dw $FBFA + dw $FDBD + dw $0000 + dw $0119 + dw $FFC2 + dw $FF70 + dw $FEE4 + dw $FECC + dw $FE8A + dw $FDD5 + dw $FD15 + dw $FCCC + dw $FC94 + dw $FC77 + dw $FD03 + dw $FD81 + dw $FE24 + dw $0000 + dw $0243 + dw $0353 + dw $045D + dw $FF4B + dw $FF01 + dw $FEFB + dw $FEE2 + dw $FE8A + dw $FE24 + dw $FE00 + dw $FDEC + dw $FE10 + dw $FEC9 + dw $FF54 + dw $0000 + dw $01DC + dw $0406 + dw $0504 + dw $05F6 + dw $07B4 + dw $FF08 Func_8d17: ; 0x8d17 - ld a, [$ff92] - cp $80 - jp c, Func_8e01 - ld a, [$ff90] - ld c, a - ld a, [$ff91] - ld b, a - ld a, [$ff93] - ld l, a - ld h, $0 - add hl, bc - ld a, [$ff8e] - cp h - jr nz, .asm_8d32 - ld a, [$ff8d] - cp l + ld a, [$ff92] + cp $80 + jp c, Func_8e01 + ld a, [$ff90] + ld c, a + ld a, [$ff91] + ld b, a + ld a, [$ff93] + ld l, a + ld h, $0 + add hl, bc + ld a, [$ff8e] + cp h + jr nz, .asm_8d32 + ld a, [$ff8d] + cp l .asm_8d32 - jr nc, .asm_8d5c - ld a, [$ff8d] - ld [$ff90], a - ld a, [$ff8e] - ld [$ff91], a - ld a, [$ff8d] - ld c, a - ld a, [$ff8e] - ld b, a - ld a, [$ff8c] - ld l, a - ld h, $0 - add hl, bc - ld a, l - ld [$ff8d], a - ld a, h - ld [$ff8e], a - srl h - rr l - srl h - rr l - ld a, [$ff8f] - cp l - jp c, Func_8df7 + jr nc, .asm_8d5c + ld a, [$ff8d] + ld [$ff90], a + ld a, [$ff8e] + ld [$ff91], a + ld a, [$ff8d] + ld c, a + ld a, [$ff8e] + ld b, a + ld a, [$ff8c] + ld l, a + ld h, $0 + add hl, bc + ld a, l + ld [$ff8d], a + ld a, h + ld [$ff8e], a + srl h + rr l + srl h + rr l + ld a, [$ff8f] + cp l + jp c, Func_8df7 .asm_8d5c - ld a, [$ff90] - and $f8 - ld c, a - ld a, [$ff91] - ld b, a - sla c - rl b - sla c - rl b - ld hl, $c010 - add hl, bc - ld d, h - ld e, l - ld a, [$ff92] - swap a - ld c, a - and $f - ld b, a - ld a, c - and $f0 - ld c, a - sla c - rl b - ld hl, PokedexCharactersGfx - add hl, bc - push hl - ld a, [$ff90] - and $7 - ld c, a - ld b, $0 - ld hl, Data_8df9 - add hl, bc - ld a, [hl] - ld [$d85e], a - cpl - ld [$d85f], a - ld a, c - add $58 - ld b, a - pop hl - push hl - ld c, $10 + ld a, [$ff90] + and $f8 + ld c, a + ld a, [$ff91] + ld b, a + sla c + rl b + sla c + rl b + ld hl, wc010 + add hl, bc + ld d, h + ld e, l + ld a, [$ff92] + swap a + ld c, a + and $f + ld b, a + ld a, c + and $f0 + ld c, a + sla c + rl b + ld hl, PokedexCharactersGfx + add hl, bc + push hl + ld a, [$ff90] + and $7 + ld c, a + ld b, $0 + ld hl, Data_8df9 + add hl, bc + ld a, [hl] + ld [wd85e], a + cpl + ld [wd85f], a + ld a, c + add $58 + ld b, a + pop hl + push hl + ld c, $10 .asm_8da2 - push bc - ld a, [hli] - ld c, a - ld a, [bc] - ld c, a - ld a, [$d85e] - and c - ld c, a - ld a, [$d860] - ld b, a - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - inc hl - pop bc - dec c - jr nz, .asm_8da2 - pop hl - ld c, $10 + push bc + ld a, [hli] + ld c, a + ld a, [bc] + ld c, a + ld a, [wd85e] + and c + ld c, a + ld a, [wd860] + ld b, a + ld a, [de] + xor b + or c + xor b + ld [de], a + inc de + ld a, [de] + xor b + or c + xor b + ld [de], a + inc de + inc hl + pop bc + dec c + jr nz, .asm_8da2 + pop hl + ld c, $10 .asm_8dc4 - push bc - ld a, [hli] - ld c, a - ld a, [bc] - ld c, a - ld a, [$d85f] - and c - ld c, a - ld a, [$d860] - ld b, a - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - inc hl - pop bc - dec c - jr nz, .asm_8dc4 - ld a, [$ff90] - ld c, a - ld a, [$ff91] - ld b, a - ld a, [$ff93] - ld l, a - ld h, $0 - add hl, bc - ld a, l - ld [$ff90], a - ld a, h - ld [$ff91], a - and a - ret + push bc + ld a, [hli] + ld c, a + ld a, [bc] + ld c, a + ld a, [wd85f] + and c + ld c, a + ld a, [wd860] + ld b, a + ld a, [de] + xor b + or c + xor b + ld [de], a + inc de + ld a, [de] + xor b + or c + xor b + ld [de], a + inc de + inc hl + pop bc + dec c + jr nz, .asm_8dc4 + ld a, [$ff90] + ld c, a + ld a, [$ff91] + ld b, a + ld a, [$ff93] + ld l, a + ld h, $0 + add hl, bc + ld a, l + ld [$ff90], a + ld a, h + ld [$ff91], a + and a + ret Func_8df7: ; 0x8df7 - scf - ret + scf + ret Data_8df9: ; 0x8df9 - db $FF, $7F, $3F, $1F, $0F, $07, $03, $01 + db $FF, $7F, $3F, $1F, $0F, $07, $03, $01 Func_8e01: ; 0x8e01 - ld a, [$ff90] - ld c, a - ld a, [$ff91] - ld b, a - ld a, [$ff93] - ld l, a - ld h, $0 - add hl, bc - ld a, [$ff8e] - cp h - jr nz, .asm_8e15 - ld a, [$ff8d] - cp l + ld a, [$ff90] + ld c, a + ld a, [$ff91] + ld b, a + ld a, [$ff93] + ld l, a + ld h, $0 + add hl, bc + ld a, [$ff8e] + cp h + jr nz, .asm_8e15 + ld a, [$ff8d] + cp l .asm_8e15 - jr nc, .asm_8e3f - ld a, [$ff8d] - ld [$ff90], a - ld a, [$ff8e] - ld [$ff91], a - ld a, [$ff8d] - ld c, a - ld a, [$ff8e] - ld b, a - ld a, [$ff8c] - ld l, a - ld h, $0 - add hl, bc - ld a, l - ld [$ff8d], a - ld a, h - ld [$ff8e], a - srl h - rr l - srl h - rr l - ld a, [$ff8f] - cp l - jp c, Func_8ed6 + jr nc, .asm_8e3f + ld a, [$ff8d] + ld [$ff90], a + ld a, [$ff8e] + ld [$ff91], a + ld a, [$ff8d] + ld c, a + ld a, [$ff8e] + ld b, a + ld a, [$ff8c] + ld l, a + ld h, $0 + add hl, bc + ld a, l + ld [$ff8d], a + ld a, h + ld [$ff8e], a + srl h + rr l + srl h + rr l + ld a, [$ff8f] + cp l + jp c, Func_8ed6 .asm_8e3f - ld a, [$ff90] - and $f8 - ld c, a - ld a, [$ff91] - ld b, a - sla c - rl b - ld hl, $c010 - add hl, bc - ld d, h - ld e, l - ld a, [$ff92] - swap a - ld c, a - and $f - ld b, a - ld a, c - and $f0 - ld c, a - sla c - rl b - ld hl, PokedexCharactersGfx + $8 - add hl, bc - push hl - ld a, [$ff90] - and $7 - ld c, a - ld b, $0 - ld hl, Data_8ed8 - add hl, bc - ld a, [hl] - ld [$d85e], a - cpl - ld [$d85f], a - ld a, c - add $58 - ld b, a - pop hl - push hl - ld c, $8 + ld a, [$ff90] + and $f8 + ld c, a + ld a, [$ff91] + ld b, a + sla c + rl b + ld hl, wc010 + add hl, bc + ld d, h + ld e, l + ld a, [$ff92] + swap a + ld c, a + and $f + ld b, a + ld a, c + and $f0 + ld c, a + sla c + rl b + ld hl, PokedexCharactersGfx + $8 + add hl, bc + push hl + ld a, [$ff90] + and $7 + ld c, a + ld b, $0 + ld hl, Data_8ed8 + add hl, bc + ld a, [hl] + ld [wd85e], a + cpl + ld [wd85f], a + ld a, c + add $58 + ld b, a + pop hl + push hl + ld c, $8 .asm_8e81 - push bc - ld a, [hli] - ld c, a - ld a, [bc] - ld c, a - ld a, [$d85e] - and c - ld c, a - ld a, [$d860] - ld b, a - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - inc hl - pop bc - dec c - jr nz, .asm_8e81 - pop hl - ld c, $8 + push bc + ld a, [hli] + ld c, a + ld a, [bc] + ld c, a + ld a, [wd85e] + and c + ld c, a + ld a, [wd860] + ld b, a + ld a, [de] + xor b + or c + xor b + ld [de], a + inc de + ld a, [de] + xor b + or c + xor b + ld [de], a + inc de + inc hl + pop bc + dec c + jr nz, .asm_8e81 + pop hl + ld c, $8 .asm_8ea3 - push bc - ld a, [hli] - ld c, a - ld a, [bc] - ld c, a - ld a, [$d85f] - and c - ld c, a - ld a, [$d860] - ld b, a - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - ld a, [de] - xor b - or c - xor b - ld [de], a - inc de - inc hl - pop bc - dec c - jr nz, .asm_8ea3 - ld a, [$ff90] - ld c, a - ld a, [$ff91] - ld b, a - ld a, [$ff93] - ld l, a - ld h, $0 - add hl, bc - ld a, l - ld [$ff90], a - ld a, h - ld [$ff91], a - and a - ret + push bc + ld a, [hli] + ld c, a + ld a, [bc] + ld c, a + ld a, [wd85f] + and c + ld c, a + ld a, [wd860] + ld b, a + ld a, [de] + xor b + or c + xor b + ld [de], a + inc de + ld a, [de] + xor b + or c + xor b + ld [de], a + inc de + inc hl + pop bc + dec c + jr nz, .asm_8ea3 + ld a, [$ff90] + ld c, a + ld a, [$ff91] + ld b, a + ld a, [$ff93] + ld l, a + ld h, $0 + add hl, bc + ld a, l + ld [$ff90], a + ld a, h + ld [$ff91], a + and a + ret Func_8ed6: ; 0x8ed6 - scf - ret + scf + ret Data_8ed8: ; 0x8ed8 - db $FF, $7F, $3F, $1F, $0F, $07, $03, $01 + db $FF, $7F, $3F, $1F, $0F, $07, $03, $01 Func_8ee0: ; 0x8ee0 - ld a, [$ff8d] - ld [$ff90], a - ld a, [$ff8e] - ld [$ff91], a - ld a, [$ff8d] - ld c, a - ld a, [$ff8e] - ld b, a - ld a, [$ff8c] - ld l, a - ld h, $0 - add hl, bc - ld a, l - ld [$ff8d], a - ld a, h - ld [$ff8e], a - srl h - rr l - srl h - rr l - ld a, [$ff8f] - cp l - ret - -INCBIN "baserom.gbc",$8f06,$a000 - $8f06 + ld a, [$ff8d] + ld [$ff90], a + ld a, [$ff8e] + ld [$ff91], a + ld a, [$ff8d] + ld c, a + ld a, [$ff8e] + ld b, a + ld a, [$ff8c] + ld l, a + ld h, $0 + add hl, bc + ld a, l + ld [$ff8d], a + ld a, h + ld [$ff8e], a + srl h + rr l + srl h + rr l + ld a, [$ff8f] + cp l + ret + +Data_8f06: + +SECTION "bank2.2", ROMX [$5800], BANK[$2] +Data_9800: + +macro_9800: MACRO +x = 0 +rept \1 +y = 0 +rept $100 / \1 + db (x + y) & $ff +y = y + \1 +endr +x = x + 1 +endr +endm + +w = $100 +rept 8 + macro_9800 w +w = w >> 1 +endr PokedexCharactersGfx: ; 0xa000 - INCBIN "gfx/pokedex/characters.interleave.2bpp" - + INCBIN "gfx/pokedex/characters.interleave.2bpp" SECTION "bank3", ROMX, BANK[$3] HandleTitlescreen: ; 0xc000 - ld a, [wScreenState] - rst $18 ; calls JumpToFuncInTable + ld a, [wScreenState] + rst JumpTable ; calls JumpToFuncInTable TitlescreenFunctions: ; 0xc004 - dw FadeInTitlescreen - dw TitlescreenLoop ; titlescreen loop - dw Func_c10e ; previously saved game menu - dw Func_c1cb ; game start, pokedex, option - dw GoToHighScoresFromTitlescreen ; go to high scores + dw FadeInTitlescreen + dw TitlescreenLoop ; titlescreen loop + dw Func_c10e ; previously saved game menu + dw Func_c1cb ; game start, pokedex, option + dw GoToHighScoresFromTitlescreen ; go to high scores FadeInTitlescreen: ; 0xc00e - ld a, $43 - ld [$ff9e], a - ld a, $e4 - ld [$d80c], a - ld a, $d2 - ld [$d80d], a - ld a, $e1 - ld [$d80e], a - xor a - ld [hBoardXShift], a - ld [hBoardYShift], a - ld hl, TitlescreenFadeInGfxPointers - ld a, [hGameBoyColorFlag] - call LoadVideoData - ld a, $1 - ld [wTitleScreenGameStartCursorSelection], a - call ClearOAMBuffer - ld a, $2 - ld [wTitleScreenPokeballAnimationCounter], a - call HandleTitlescreenAnimations - call Func_b66 - ld a, $11 - call SetSongBank - ld de, $0004 - call PlaySong - call Func_588 - call Func_bbe ; this does the fading - ld hl, wScreenState - inc [hl] - ret + ld a, $43 + ld [hLCDC], a + ld a, $e4 + ld [wd80c], a + ld a, $d2 + ld [wd80d], a + ld a, $e1 + ld [wd80e], a + xor a + ld [hSCX], a + ld [hSCY], a + ld hl, TitlescreenFadeInGfxPointers + ld a, [hGameBoyColorFlag] + call LoadVideoData + ld a, $1 + ld [wTitleScreenGameStartCursorSelection], a + call ClearOAMBuffer + ld a, $2 + ld [wTitleScreenPokeballAnimationCounter], a + call HandleTitlescreenAnimations + call Func_b66 + ld a, $11 + call SetSongBank + ld de, $0004 + call PlaySong + call Func_588 + call Func_bbe ; this does the fading + ld hl, wScreenState + inc [hl] + ret TitlescreenFadeInGfxPointers: ; 0xc057 - dw TitlescreenFadeInGfx_GameBoy - dw TitlescreenFadeInGfx_GameBoyColor + dw TitlescreenFadeInGfx_GameBoy + dw TitlescreenFadeInGfx_GameBoyColor TitlescreenFadeInGfx_GameBoy: ; 0xc05b - VIDEO_DATA_TILES TitlescreenGfx, vTiles0, $1800 - VIDEO_DATA_TILEMAP TitlescreenTilemap, vBGMap0, $240 - db $FF, $FF ; terminators + VIDEO_DATA_TILES TitlescreenGfx, vTilesOB, $1800 + VIDEO_DATA_TILEMAP TitlescreenTilemap, vBGMap, $240 + db $FF, $FF ; terminators TitlescreenFadeInGfx_GameBoyColor: ; 0xc06b - VIDEO_DATA_TILES TitlescreenFadeInGfx, vTiles0, $1800 - VIDEO_DATA_TILEMAP TitlescreenTilemap, vBGMap0, $240 - VIDEO_DATA_BGATTR TitlescreenBGAttributes, vBGMap0, $240 - VIDEO_DATA_PALETTES TitlescreenPalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES TitlescreenFadeInGfx, vTilesOB, $1800 + VIDEO_DATA_TILEMAP TitlescreenTilemap, vBGMap, $240 + VIDEO_DATA_BGATTR TitlescreenBGAttributes, vBGMap, $240 + VIDEO_DATA_PALETTES TitlescreenPalettes, $80 + db $FF, $FF ; terminators TitlescreenLoop: ; 0xc089 - call Func_c0ee - call HandleTitlescreenAnimations - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a ; was A button pressed? - jr z, .AButtonNotPressed - ld a, [wTitleScreenCursorSelection] - and a - jr nz, .asm_c0d3 - ; player chose "Game Start" - ld a, [$d7c2] ; if this is non-zero, the main menu will prompt for "continue or new game?". - and a - jr z, .noPreviouslySavedGame - ld de, $0001 - call PlaySoundEffect - xor a - ld [$d910], a - ld a, $2 - ld [$d911], a - ld a, $1 - ld [wTitleScreenGameStartCursorSelection], a - ld hl, wScreenState - inc [hl] - ret + 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, [wd7c2] ; if this is non-zero, the main menu will prompt for "continue or new game?". + and a + jr z, .noPreviouslySavedGame + lb de, $00, $01 + call PlaySoundEffect + xor a + ld [wd910], a + ld a, $2 + ld [wd911], a + ld a, $1 + ld [wTitleScreenGameStartCursorSelection], a + ld hl, wScreenState + inc [hl] + ret + .noPreviouslySavedGame - ld de, $0000 - call PlaySong - rst $10 - ld de, $0027 - call PlaySoundEffect - ld bc, $0037 - call Func_93f - ld a, $3 - ld [wScreenState], a - ret + ld de, $0000 + call PlaySong + rst AdvanceFrame + lb de, $00, $27 + call PlaySoundEffect + ld bc, $0037 + call AdvanceFrames + ld a, $3 + ld [wScreenState], a + ret + .asm_c0d3 - ld de, $0001 - call PlaySoundEffect - ld a, $3 - ld [wScreenState], a - ret + lb de, $00, $01 + call PlaySoundEffect + ld a, $3 + ld [wScreenState], a + ret + .AButtonNotPressed - bit BIT_B_BUTTON, a ; was B button pressed? - ret z - ld de, $0001 - call PlaySoundEffect - ld a, $4 - ld [wScreenState], a - ret + bit BIT_B_BUTTON, a ; was B button pressed? + ret z + lb de, $00, $01 + call PlaySoundEffect + ld a, $4 + ld [wScreenState], a + ret Func_c0ee: ; 0xc0ee - ld hl, wTitleScreenCursorSelection - ld c, $2 - call Func_c1fc - ret + 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 + 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 + call Func_c21d ; does nothing... + call HandleTitlescreenPikachuBlinkingAnimation + call HandleTitlescreenPokeballAnimation + ret Func_c10e: ; 0xc10e - call Func_c1a2 - call Func_c1b1 - ld a, [$d910] - cp $6 - ret nz - ld a, [hNewlyPressedButtons] - bit 0, a - jr z, .asm_c17c - ld de, $0000 - call PlaySong - rst $10 - ld de, $0027 - call PlaySoundEffect - ld bc, $0041 - call Func_93f - ld a, [wTitleScreenGameStartCursorSelection] - and a - jr z, .asm_c177 - call Func_cb5 - call Func_576 - ld a, [$d7c2] - and a - jr z, .asm_c173 - ld hl, $a268 - ld de, wPartyMons - ld bc, $04c3 - call Func_f0c - jr nc, .asm_c173 - xor a - ld [$d7c2], a - ld hl, wPartyMons - ld de, $a268 - ld bc, $04c3 - call SaveData - ld a, $1 - ld [$d7c1], a - ld a, $4 - ld [wCurrentScreen], a - ld a, $0 - ld [wScreenState], a - ret + call Func_c1a2 + call Func_c1b1 + ld a, [wd910] + cp $6 + ret nz + ld a, [hNewlyPressedButtons] + bit 0, a + jr z, .asm_c17c + ld de, $0000 + call PlaySong + rst AdvanceFrame + lb de, $00, $27 + call PlaySoundEffect + ld bc, $0041 + call AdvanceFrames + ld a, [wTitleScreenGameStartCursorSelection] + and a + jr z, .asm_c177 + call Func_cb5 + call Func_576 + ld a, [wd7c2] + and a + jr z, .asm_c173 + ld hl, sSaveGame + ld de, wPartyMons + ld bc, $04c3 + call LoadSavedData + jr nc, .asm_c173 + xor a + ld [wd7c2], a + ld hl, wPartyMons + ld de, sSaveGame + ld bc, $04c3 + call SaveData + ld a, $1 + ld [wd7c1], a + ld a, SCREEN_PINBALL_GAME + ld [wCurrentScreen], a + ld a, $0 + ld [wScreenState], a + ret + .asm_c173 - xor a - ld [$d7c1], a + xor a + ld [wd7c1], a .asm_c177 - ld hl, wScreenState - inc [hl] - ret + ld hl, wScreenState + inc [hl] + ret + .asm_c17c - bit 1, a - ret z - ld de, $0001 - call PlaySoundEffect - ld a, $8 - ld [$d910], a - ld a, $2 - ld [$d911], a + bit 1, a + ret z + lb de, $00, $01 + call PlaySoundEffect + ld a, $8 + ld [wd910], a + ld a, $2 + ld [wd911], a .asm_c18f - call Func_926 - rst $10 - call Func_c1b1 - ld a, [$d910] - cp $e - jr nz, .asm_c18f - ld hl, wScreenState - dec [hl] - ret + call Func_926 + rst AdvanceFrame + call Func_c1b1 + ld a, [wd910] + cp $e + jr nz, .asm_c18f + ld hl, wScreenState + dec [hl] + ret Func_c1a2: ; 0xc1a2 - ld a, [$d910] - cp $6 - ret nz - ld hl, wTitleScreenGameStartCursorSelection - ld c, $1 - call Func_c1fc - ret + ld a, [wd910] + 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 + 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 + call Func_c21d + call HandleTitlescreenPikachuBlinkingAnimation + call HandleTitlescreenPokeballAnimation + ret Func_c1cb: ; 0c1cb - call Func_cb5 - call Func_576 - ld a, [wTitleScreenCursorSelection] - ld c, a - ld b, $0 - ld hl, Data_c1e4 - add hl, bc - ld a, [hl] - ld [wCurrentScreen], a - xor a - ld [wScreenState], a - ret + call Func_cb5 + call Func_576 + ld a, [wTitleScreenCursorSelection] + ld c, a + ld b, $0 + ld hl, Data_c1e4 + add hl, bc + ld a, [hl] + ld [wCurrentScreen], a + xor a + ld [wScreenState], a + ret Data_c1e4: ; 0xc1e4 - db SCREEN_FIELD_SELECT, SCREEN_POKEDEX, SCREEN_OPTIONS + db SCREEN_FIELD_SELECT, SCREEN_POKEDEX, SCREEN_OPTIONS GoToHighScoresFromTitlescreen: ; 0xc1e7 - call Func_cb5 - call Func_576 - ld a, SCREEN_HIGH_SCORES - ld [wCurrentScreen], a - ld a, $1 - ld [wScreenState], a - xor a - ld [$da7f], a - ret + call Func_cb5 + call Func_576 + ld a, SCREEN_HIGH_SCORES + ld [wCurrentScreen], a + ld a, $1 + ld [wScreenState], a + xor a + ld [wda7f], a + ret Func_c1fc: ; 0xc1fc - ld a, [hPressedButtons] - ld b, a - ld a, [hl] - bit 6, b - jr z, .asm_c20f - and a - ret z - dec a - ld [hl], a - ld de, $0003 - call PlaySoundEffect - ret + ld a, [hPressedButtons] + ld b, a + ld a, [hl] + bit 6, b + jr z, .asm_c20f + and a + ret z + dec a + ld [hl], a + lb de, $00, $03 + 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 + bit 7, b + ret z + cp c + ret z + inc a + ld [hl], a + lb de, $00, $03 + call PlaySoundEffect + ret Func_c21d: ; 0xc21d ; World's greatest function. - ret + 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 + ld a, [wTitleScreenBlinkAnimationFrame] + sla a + ld c, a + ld b, $0 + ld hl, TitleScreenBlinkAnimation + add hl, bc + lb bc, $38, $10 + ld a, [hl] + cp $5a ; blink animation frame 1 OAM id + call nz, LoadOAMData + ld a, [wTitleScreenBlinkAnimationCounter] + dec a + jr nz, .done + inc hl + inc hl ; hl points to next frame in TitleScreenBlinkAnimation array + ld a, [hl] + and a ; reached the end of the animation frames? + jr z, .saveAnimationFrame + ld a, [wTitleScreenBlinkAnimationFrame] + inc a .saveAnimationFrame - ld [wTitleScreenBlinkAnimationFrame], a - sla a - ld c, a - ld b, $0 - ld hl, (TitleScreenBlinkAnimation + 1) - add hl, bc - ld a, [hl] ; a contains second byte in the current animation frame data - cp $3c ; is this a long-duration animation frame? - jr c, .done - ld c, a - call GenRandom - and $1f - add c + ld [wTitleScreenBlinkAnimationFrame], a + sla a + ld c, a + ld b, $0 + ld hl, (TitleScreenBlinkAnimation + 1) + add hl, bc + ld a, [hl] ; a contains second byte in the current animation frame data + cp $3c ; is this a long-duration animation frame? + jr c, .done + ld c, a + call GenRandom + and $1f + add c .done - ld [wTitleScreenBlinkAnimationCounter], a - ret + 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 + db $5a, $c8 + db $5b, $04 + db $5c, $04 + db $5b, $04 + db $5a, $3c + db $5b, $03 + db $5c, $03 + db $5b, $03 + db $5a, $03 + db $5b, $03 + db $5c, $03 + db $5b, $03 + db $00 ; terminator HandleTitlescreenPokeballAnimation: ; 0xc278 - ld a, [wTitleScreenCursorSelection] - sla a - ld c, a - ld b, $0 - ld hl, TitleScreenPokeballCoordOffsets - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld e, $0 - ld a, [wScreenState] ; TODO: I think this is the "titlescreen state" byte. - cp $1 - jr nz, .loadOAM ; skip getting the correct animation frame - ld a, [wTitleScreenBouncingBallAnimationFrame] - sla a - ld e, a + ld a, [wTitleScreenCursorSelection] + sla a + ld c, a + ld b, $0 + ld hl, TitleScreenPokeballCoordOffsets + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld e, $0 + ld a, [wScreenState] ; TODO: I think this is the "titlescreen state" byte. + cp $1 + jr nz, .loadOAM ; skip getting the correct animation frame + ld a, [wTitleScreenBouncingBallAnimationFrame] + sla a + ld e, a .loadOAM - ld d, $0 - ld hl, TitleScreenPokeballAnimation - add hl, de - ld a, [hl] ; a contains OAM id - call LoadOAMData - ld a, [wTitleScreenPokeballAnimationCounter] - dec a - jr nz, .done - ld a, [wTitleScreenBouncingBallAnimationFrame] - sla a - ld c, a - ld b, $0 - ld hl, (TitleScreenPokeballAnimation + 2) ; first frame of actual animation - add hl, bc - ld a, [hl] - and a - jr z, .saveAnimationFrame ; end of list? - ld a, [wTitleScreenBouncingBallAnimationFrame] - inc a + 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] + 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 + 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 + 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 + db $67, $15 + db $73, $15 + db $7F, $15 Func_c2df: ; 0xc2df - ld bc, $4446 ; pixel offsets, not data - ld a, [$d910] - cp $6 - jr nz, .asm_c2f0 - ld a, [wTitleScreenGameStartCursorSelection] - add $58 - jr .asm_c2fd + ld bc, $4446 ; pixel offsets, not data + ld a, [wd910] + cp $6 + jr nz, .asm_c2f0 + ld a, [wTitleScreenGameStartCursorSelection] + add $58 + jr .asm_c2fd + .asm_c2f0 - ld a, [$d910] - sla a - ld e, a - ld d, $0 - ld hl, Data_c32b - add hl, de - ld a, [hl] + ld a, [wd910] + sla a + ld e, a + ld d, $0 + ld hl, Data_c32b + add hl, de + ld a, [hl] .asm_c2fd - call LoadOAMData - ld a, [$d911] - dec a - jr nz, .asm_c327 - ld a, [$d910] - sla a - ld c, a - ld b, $0 - ld hl, Data_c32b + 2 - add hl, bc - ld a, [hl] - and a - ld a, [$d910] - jr z, .asm_c31d - inc a - ld [$d910], a + call LoadOAMData + ld a, [wd911] + dec a + jr nz, .asm_c327 + ld a, [wd910] + sla a + ld c, a + ld b, $0 + ld hl, Data_c32b + 2 + add hl, bc + ld a, [hl] + and a + ld a, [wd910] + jr z, .asm_c31d + inc a + ld [wd910], a .asm_c31d - sla a - ld c, a - ld b, $0 - ld hl, Data_c32b + 1 - add hl, bc - ld a, [hl] + sla a + ld c, a + ld b, $0 + ld hl, Data_c32b + 1 + add hl, bc + ld a, [hl] .asm_c327 - ld [$d911], a - ret + ld [wd911], a + ret Data_c32b: ; 0xc32b - db $52, $02 - db $53, $02 - db $54, $02 - db $55, $02 - db $56, $02 - db $57, $02 - db $57, $02 - db $00, $00 - db $57, $02 - db $56, $02 - db $55, $02 - db $54, $02 - db $53, $02 - db $52, $02 - db $52, $02 - db $00 + db $52, $02 + db $53, $02 + db $54, $02 + db $55, $02 + db $56, $02 + db $57, $02 + db $57, $02 + db $00, $00 + db $57, $02 + db $56, $02 + db $55, $02 + db $54, $02 + db $53, $02 + db $52, $02 + db $52, $02 + db $00 HandleOptionsScreen: ; 0xc34a - ld a, [wScreenState] - rst $18 ; calls JumpToFuncInTable + ld a, [wScreenState] + rst JumpTable ; calls JumpToFuncInTable OptionsScreenFunctions: ; 0xc34e - dw Func_c35a - dw Func_c400 - dw Func_c483 - dw Func_c493 - dw Func_c506 - dw Func_c691 + dw Func_c35a + dw Func_c400 + dw Func_c483 + dw Func_c493 + dw Func_c506 + dw Func_c691 Func_c35a: ; 0xc35a - ld a, $47 - ld [$ff9e], a - ld a, $e4 - ld [$d80c], a - ld [$d80d], a - ld a, $d2 - ld [$d80e], a - xor a - ld [hBoardXShift], a - ld [hBoardYShift], a - ld hl, OptionsScreenVideoDataPointers - ld a, [hGameBoyColorFlag] - call LoadVideoData - call ClearOAMBuffer - ld a, $2 - ld [$d921], a - ld [$d91d], a - ld a, $9 - ld [$d91f], a - call Func_c43a - call Func_c948 - call Func_b66 - ld a, $12 - call SetSongBank - ld de, $0002 - call PlaySong - call Func_588 - ld a, [wSoundTestCurrentBackgroundMusic] - ld hl, $9967 - call RedrawSoundTestID - ld a, [wSoundTextCurrentSoundEffect] - ld hl, $99a7 - call RedrawSoundTestID - call Func_bbe - ld hl, wScreenState - inc [hl] - ret + ld a, $47 + ld [hLCDC], a + ld a, $e4 + ld [wd80c], a + ld [wd80d], a + ld a, $d2 + ld [wd80e], a + xor a + ld [hSCX], a + ld [hSCY], a + ld hl, OptionsScreenVideoDataPointers + ld a, [hGameBoyColorFlag] + call LoadVideoData + call ClearOAMBuffer + ld a, $2 + ld [wd921], a + ld [wd91d], a + ld a, $9 + ld [wd91f], a + call Func_c43a + call Func_c948 + call Func_b66 + ld a, $12 + call SetSongBank + ld de, $0002 + call PlaySong + call Func_588 + ld a, [wSoundTestCurrentBackgroundMusic] + hlCoord 7, 11, vBGMap + call RedrawSoundTestID + ld a, [wSoundTextCurrentSoundEffect] + hlCoord 7, 13, vBGMap + call RedrawSoundTestID + call Func_bbe + ld hl, wScreenState + inc [hl] + ret OptionsScreenVideoDataPointers: ; 0xc3b9 - dw OptionsScreenVideoData_GameBoy - dw OptionsScreenVideoData_GameBoyColor + dw OptionsScreenVideoData_GameBoy + dw OptionsScreenVideoData_GameBoyColor OptionsScreenVideoData_GameBoy: ; 0xc3bd - VIDEO_DATA_TILES OptionMenuAndKeyConfigGfx, vTiles0, $1400 - VIDEO_DATA_TILEMAP OptionMenuTilemap, vBGMap0, $240 - VIDEO_DATA_TILEMAP OptionMenuTilemap2, vBGMap1, $240 - db $FF, $FF ; terminators + VIDEO_DATA_TILES OptionMenuAndKeyConfigGfx, vTilesOB, $1400 + VIDEO_DATA_TILEMAP OptionMenuTilemap, vBGMap, $240 + VIDEO_DATA_TILEMAP OptionMenuTilemap2, vBGWin, $240 + db $FF, $FF ; terminators OptionsScreenVideoData_GameBoyColor: ; 0xc3d4 - VIDEO_DATA_TILES OptionMenuAndKeyConfigGfx, vTiles0, $1400 - VIDEO_DATA_TILEMAP OptionMenuTilemap, vBGMap0, $240 - VIDEO_DATA_TILEMAP_BANK2 OptionMenuTilemap3, vBGMap0, $240 - VIDEO_DATA_TILEMAP OptionMenuTilemap2, vBGMap1, $240 - VIDEO_DATA_TILEMAP_BANK2 OptionMenuTilemap4, vBGMap1, $240 - VIDEO_DATA_PALETTES OptionMenuPalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES OptionMenuAndKeyConfigGfx, vTilesOB, $1400 + VIDEO_DATA_TILEMAP OptionMenuTilemap, vBGMap, $240 + VIDEO_DATA_TILEMAP_BANK2 OptionMenuTilemap3, vBGMap, $240 + VIDEO_DATA_TILEMAP OptionMenuTilemap2, vBGWin, $240 + VIDEO_DATA_TILEMAP_BANK2 OptionMenuTilemap4, vBGWin, $240 + VIDEO_DATA_PALETTES OptionMenuPalettes, $80 + db $FF, $FF ; terminators Func_c400: ; 0xc400 - call Func_c41a - call Func_c43a - call Func_c447 - ld a, [hNewlyPressedButtons] - bit 1, a - ret z - ld de, $0001 - call PlaySoundEffect - ld a, $2 - ld [wScreenState], a - ret + call Func_c41a + call Func_c43a + call Func_c447 + ld a, [hNewlyPressedButtons] + bit 1, a + ret z + lb de, $00, $01 + call PlaySoundEffect + ld a, $2 + ld [wScreenState], a + ret Func_c41a: ; 0xc41a - ld a, [hPressedButtons] - ld b, a - ld a, [$d916] - bit 6, b - jr z, .asm_c429 - and a - ret z - dec a - jr .asm_c430 + ld a, [hPressedButtons] + ld b, a + ld a, [wd916] + bit 6, b + jr z, .asm_c429 + and a + ret z + dec a + jr .asm_c430 + .asm_c429 - bit 7, b - ret z - cp $2 - ret z - inc a + bit 7, b + ret z + cp $2 + ret z + inc a .asm_c430 - ld [$d916], a - ld de, $0003 - call PlaySoundEffect - ret + ld [wd916], a + lb de, $00, $03 + call PlaySoundEffect + ret Func_c43a: ; 0xc43a - call Func_c7ac - call Func_c80b - call Func_c88a - call Func_c92e - ret + call Func_c7ac + call Func_c80b + call Func_c88a + call Func_c92e + ret Func_c447: ; 0xc447 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - ret z - ld de, $0001 - call PlaySoundEffect - ld a, [$d916] - and a - jr nz, .asm_c465 - ld a, [$fffb] - and a - ret nz - call Func_c4f4 - ld a, $3 - ld [wScreenState], a - ret + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + ret z + lb de, $00, $01 + call PlaySoundEffect + ld a, [wd916] + and a + jr nz, .asm_c465 + ld a, [hSGBFlag] + and a + ret nz + call Func_c4f4 + ld a, $3 + ld [wScreenState], a + ret + .asm_c465 - cp $1 - jr nz, .asm_c477 - call ClearOAMBuffer - ld hl, $ff9e - set 3, [hl] - ld a, $4 - ld [wScreenState], a - ret + cp $1 + jr nz, .asm_c477 + call ClearOAMBuffer + ld hl, hLCDC + set 3, [hl] + ld a, $4 + ld [wScreenState], a + ret + .asm_c477 - ld de, $0000 - call PlaySong - ld a, $5 - ld [wScreenState], a - ret + ld de, $0000 + call PlaySong + ld a, $5 + ld [wScreenState], a + ret Func_c483: ; 0xc483 - call Func_cb5 - call Func_576 - ld a, SCREEN_TITLESCREEN - ld [wCurrentScreen], a - xor a - ld [wScreenState], a - ret + call Func_cb5 + call Func_576 + ld a, SCREEN_TITLESCREEN + ld [wCurrentScreen], a + xor a + ld [wScreenState], a + ret Func_c493: ; 0xc493 - call Func_c4b4 - call Func_c4e6 - call Func_c869 - ld a, [hNewlyPressedButtons] - bit BIT_B_BUTTON, a - ret z - ld de, $0001 - call PlaySoundEffect - xor a - ld [$d803], a - ld [$d804], a - ld a, $1 - ld [wScreenState], a - ret + call Func_c4b4 + call Func_c4e6 + call Func_c869 + ld a, [hNewlyPressedButtons] + bit BIT_B_BUTTON, a + ret z + lb de, $00, $01 + call PlaySoundEffect + xor a + ld [wd803], a + ld [wd804], a + ld a, $1 + ld [wScreenState], a + ret Func_c4b4: ; 0xc4b4 - ld a, [hNewlyPressedButtons] - ld b, a - ld a, [$d917] - bit BIT_D_LEFT, b - jr z, .asm_c4ce - and a - ret z - dec a - ld [$d917], a - call Func_c4f4 - ld de, $0003 - call PlaySoundEffect - ret + ld a, [hNewlyPressedButtons] + ld b, a + ld a, [wd917] + bit BIT_D_LEFT, b + jr z, .asm_c4ce + and a + ret z + dec a + ld [wd917], a + call Func_c4f4 + lb de, $00, $03 + call PlaySoundEffect + ret + .asm_c4ce - bit BIT_D_RIGHT, b - ret z - cp $1 - ret z - inc a - ld [$d917], a - xor a - ld [$d803], a - ld [$d804], a - ld de, $0003 - call PlaySoundEffect - ret + bit BIT_D_RIGHT, b + ret z + cp $1 + ret z + inc a + ld [wd917], a + xor a + ld [wd803], a + ld [wd804], a + lb de, $00, $03 + call PlaySoundEffect + ret Func_c4e6: ; 0xc4e6 - call Func_c7ac - call Func_c80b - call Func_c88a - xor a - call Func_c8f1 - ret + call Func_c7ac + call Func_c80b + call Func_c88a + xor a + call Func_c8f1 + ret Func_c4f4: ; 0xc4f4 - xor a - ld [$d91c], a - ld [$d91e], a - ld a, $2 - ld [$d91d], a - ld a, $9 - ld [$d91f], a - ret + xor a + ld [wd91c], a + ld [wd91e], a + ld a, $2 + ld [wd91d], a + ld a, $9 + ld [wd91f], a + ret Func_c506: ; 0xc506 - call Func_c534 - call Func_c554 - call Func_c55a - ld a, [hNewlyPressedButtons] - bit BIT_B_BUTTON, a - ret z - ld de, $0001 - call PlaySoundEffect - call ClearOAMBuffer - ld hl, $ff9e - res 3, [hl] - ld hl, wKeyConfigBallStart - ld de, $a244 - ld bc, $000e - call SaveData - ld a, $1 - ld [wScreenState], a - ret + call Func_c534 + call Func_c554 + call Func_c55a + ld a, [hNewlyPressedButtons] + bit BIT_B_BUTTON, a + ret z + lb de, $00, $01 + call PlaySoundEffect + call ClearOAMBuffer + ld hl, hLCDC + res 3, [hl] + ld hl, wKeyConfigBallStart + ld de, sKeyConfigs + ld bc, $000e + call SaveData + ld a, $1 + ld [wScreenState], a + ret Func_c534: ; 0xc534 - ld a, [hNewlyPressedButtons] - ld b, a - ld a, [$d918] - bit BIT_D_UP, b - jr z, .asm_c543 - and a - ret z - dec a - jr .asm_c54a + ld a, [hNewlyPressedButtons] + ld b, a + ld a, [wd918] + bit BIT_D_UP, b + jr z, .asm_c543 + and a + ret z + dec a + jr .asm_c54a + .asm_c543 - bit BIT_D_DOWN, b - ret z - cp $7 - ret z - inc a + bit BIT_D_DOWN, b + ret z + cp $7 + ret z + inc a .asm_c54a - ld [$d918], a - ld de, $0003 - call PlaySoundEffect - ret + ld [wd918], a + lb de, $00, $03 + call PlaySoundEffect + ret Func_c554: ; 0xc554 - ld a, $1 - call Func_c8f1 - ret + ld a, $1 + call Func_c8f1 + ret Func_c55a: ; 0xc55a - ld a, [$d918] - and a - jr nz, .asm_c572 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - ret z - ld de, $0001 - call PlaySoundEffect - call SaveDefaultKeyConfigs - call Func_c948 - ret + ld a, [wd918] + and a + jr nz, .asm_c572 + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + ret z + lb de, $00, $01 + call PlaySoundEffect + call SaveDefaultKeyConfigs + call Func_c948 + ret + .asm_c572 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - ret z - ld de, $0001 - call PlaySoundEffect - ld bc, $001e - call Func_93f - ld a, [$d918] - dec a - sla a - ld c, a - ld b, $0 - ld hl, PointerTable_c65f - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d918] - dec a - sla a - call Func_c644 - ld bc, $00ff + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + ret z + lb de, $00, $01 + call PlaySoundEffect + ld bc, $001e + call AdvanceFrames + ld a, [wd918] + dec a + sla a + ld c, a + ld b, $0 + ld hl, PointerTable_c65f + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd918] + dec a + sla a + call Func_c644 + ld bc, $00ff .asm_c59f - push bc - push hl - ld a, [$d918] - dec a - sla a - call Func_c621 - call Func_c554 - call Func_926 - rst $10 - pop hl - pop bc - ld a, [hJoypadState] - and a - jr z, .asm_c5c2 - ld c, $0 - call Func_c9be - call Func_c95f - jr .asm_c59f + push bc + push hl + ld a, [wd918] + dec a + sla a + call Func_c621 + call Func_c554 + call Func_926 + rst AdvanceFrame + pop hl + pop bc + ld a, [hJoypadState] + and a + jr z, .asm_c5c2 + ld c, $0 + call Func_c9be + call Func_c95f + jr .asm_c59f + .asm_c5c2 - or c - jr nz, .asm_c59f - ld a, [$d918] - dec a - sla a - call Func_c639 - push hl - ld bc, $001e - call Func_93f - pop hl - ld bc, $0020 - add hl, bc - ld a, [$d918] - dec a - sla a - inc a - call Func_c644 - ld bc, $00ff - ld d, $5a + or c + jr nz, .asm_c59f + ld a, [wd918] + dec a + sla a + call Func_c639 + push hl + ld bc, $001e + call AdvanceFrames + pop hl + ld bc, $0020 + add hl, bc + ld a, [wd918] + dec a + sla a + inc a + call Func_c644 + ld bc, $00ff + ld d, $5a .asm_c5e9 - push bc - push de - push hl - ld a, [$d918] - dec a - sla a - inc a - call Func_c621 - call Func_c554 - call Func_926 - rst $10 - pop hl - pop de - pop bc - dec d - ret z - ld a, [hJoypadState] - and a - jr z, .asm_c613 - ld d, $ff - ld c, $0 - call Func_c9be - call Func_c95f - jr .asm_c5e9 + push bc + push de + push hl + ld a, [wd918] + dec a + sla a + inc a + call Func_c621 + call Func_c554 + call Func_926 + rst AdvanceFrame + pop hl + pop de + pop bc + dec d + ret z + ld a, [hJoypadState] + and a + jr z, .asm_c613 + ld d, $ff + ld c, $0 + call Func_c9be + call Func_c95f + jr .asm_c5e9 + .asm_c613 - or c - jr nz, .asm_c5e9 - ld a, [$d918] - dec a - sla a - inc a - call Func_c639 - ret + or c + jr nz, .asm_c5e9 + ld a, [wd918] + dec a + sla a + inc a + call Func_c639 + ret Func_c621: ; 0xc621 - sla a - ld c, a - ld b, $0 - ld hl, OAMPixelOffsetData_c66d - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - ld a, [$ffb3] - bit 2, a - ret z - ld a, $84 - call LoadOAMData - ret + sla a + ld c, a + ld b, $0 + ld hl, OAMPixelOffsetData_c66d + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + ld a, [hNumFramesDropped] + bit 2, a + ret z + ld a, $84 + call LoadOAMData + ret Func_c639: ; 0xc639 - push hl - ld e, a - ld d, $0 - ld hl, wKeyConfigBallStart - add hl, de - ld [hl], b - pop hl - ret + push hl + ld e, a + ld d, $0 + ld hl, wKeyConfigBallStart + add hl, de + ld [hl], b + pop hl + ret Func_c644: ; 0xc644 - push hl - ld c, a - ld b, $0 - ld hl, wKeyConfigBallStart - add hl, bc - ld [hl], $0 - pop hl - push hl - ld d, h - ld e, l - ld hl, Data_c689 - ld a, Bank(Data_c689) - ld bc, $0008 - call LoadVRAMData - pop hl - ret + push hl + ld c, a + ld b, $0 + ld hl, wKeyConfigBallStart + add hl, bc + ld [hl], $0 + pop hl + push hl + ld d, h + ld e, l + ld hl, Data_c689 + ld a, Bank(Data_c689) + ld bc, $0008 + call LoadVRAMData + pop hl + ret PointerTable_c65f: ; 0xc65f - dw $9C6D - dw $9CAD - dw $9CED - dw $9D2D - dw $9D6D - dw $9DAD - dw $9DED + dw $9C6D + dw $9CAD + dw $9CED + dw $9D2D + dw $9D6D + dw $9DAD + dw $9DED OAMPixelOffsetData_c66d: ; 0xc66d - dw $6018 - dw $6020 - dw $6028 - dw $6030 - dw $6038 - dw $6040 - dw $6048 - dw $6050 - dw $6058 - dw $6060 - dw $6068 - dw $6070 - dw $6078 - dw $6080 + dw $6018 + dw $6020 + dw $6028 + dw $6030 + dw $6038 + dw $6040 + dw $6048 + dw $6050 + dw $6058 + dw $6060 + dw $6068 + dw $6070 + dw $6078 + dw $6080 Data_c689: ; 0xc689 - db $81, $81, $81, $81, $81, $81, $81, $81 + db $81, $81, $81, $81, $81, $81, $81, $81 Func_c691: ; 0xc91 - call Func_c6bf - call Func_c6d9 - call Func_c6e8 - ld a, [hNewlyPressedButtons] - bit BIT_B_BUTTON, a - ret z - ld de, $0000 - call PlaySong - rst $10 - rst $10 - rst $10 - ld a, $12 - call SetSongBank - ld de, $0002 - call PlaySong - ld de, $0001 - call PlaySoundEffect - ld a, $1 - ld [wScreenState], a - ret + call Func_c6bf + call Func_c6d9 + call Func_c6e8 + ld a, [hNewlyPressedButtons] + bit BIT_B_BUTTON, a + ret z + ld de, $0000 + call PlaySong + rst AdvanceFrame + rst AdvanceFrame + rst AdvanceFrame + ld a, $12 + call SetSongBank + ld de, $0002 + call PlaySong + lb de, $00, $01 + call PlaySoundEffect + ld a, $1 + ld [wScreenState], a + ret Func_c6bf: ; 0xc6bf - ld a, [hNewlyPressedButtons] - ld b, a - ld a, [$d919] - bit BIT_D_UP, b - jr z, .asm_c6ce - and a - ret z - dec a - jr .asm_c6d5 + ld a, [hNewlyPressedButtons] + ld b, a + ld a, [wd919] + bit BIT_D_UP, b + jr z, .asm_c6ce + and a + ret z + dec a + jr .asm_c6d5 + .asm_c6ce - bit BIT_D_DOWN, b - ret z - cp $1 - ret z - inc a + bit BIT_D_DOWN, b + ret z + cp $1 + ret z + inc a .asm_c6d5 - ld [$d919], a - ret + ld [wd919], a + ret Func_c6d9: ; 0xc6d9 - call Func_c7ac - call Func_c80b - call Func_c88a - ld a, $2 - call Func_c8f1 - ret + call Func_c7ac + call Func_c80b + call Func_c88a + ld a, $2 + call Func_c8f1 + ret Func_c6e8: ; 0xc6e8 - ld a, [$d919] - and a - jr nz, UpdateSoundTestSoundEffectSelection - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, UpdateSoundTestBackgroundMusicSelection - ld de, $0000 - call PlaySong - rst $10 - rst $10 - rst $10 - ld a, [wSoundTestCurrentBackgroundMusic] - sla a - ld c, a - ld b, $0 - ld hl, SongBanks - add hl, bc - ld a, [hli] - ld e, a - ld d, $0 - ld a, [hl] - call SetSongBank - call PlaySong - ret + ld a, [wd919] + and a + jr nz, UpdateSoundTestSoundEffectSelection + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, UpdateSoundTestBackgroundMusicSelection + ld de, $0000 + call PlaySong + rst AdvanceFrame + rst AdvanceFrame + rst AdvanceFrame + ld a, [wSoundTestCurrentBackgroundMusic] + sla a + ld c, a + ld b, $0 + ld hl, SongBanks + add hl, bc + ld a, [hli] + ld e, a + ld d, $0 + ld a, [hl] + call SetSongBank + call PlaySong + ret UpdateSoundTestBackgroundMusicSelection: ; 0xc715 - ld a, [hPressedButtons] ; joypad state - ld b, a - ld a, [wSoundTestCurrentBackgroundMusic] - bit BIT_D_LEFT, b ; was the left dpad button pressed? - jr z, .checkIfRightPressed - dec a ; decrement background music id - bit 7, a ; did it wrap around to $ff? - jr z, .saveBackgroundMusicID - ld a, NUM_SONGS - 1 - jr .saveBackgroundMusicID + ld a, [hPressedButtons] ; joypad state + ld b, a + ld a, [wSoundTestCurrentBackgroundMusic] + bit BIT_D_LEFT, b ; was the left dpad button pressed? + jr z, .checkIfRightPressed + dec a ; decrement background music id + bit 7, a ; did it wrap around to $ff? + jr z, .saveBackgroundMusicID + ld a, NUM_SONGS - 1 + jr .saveBackgroundMusicID + .checkIfRightPressed - bit BIT_D_RIGHT, b ; was the right dpad button pressed? - ret z - inc a ; increment background music id - cp NUM_SONGS ; should it wrap around to 0? - jr nz, .saveBackgroundMusicID - xor a + 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 + ld [wSoundTestCurrentBackgroundMusic], a + hlCoord 7, 11, vBGMap + 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 + ld a, [hNewlyPressedButtons] ; joypad state + bit BIT_A_BUTTON, a + jr z, .didntPressAButton + ld a, [wSoundTextCurrentSoundEffect] + ld e, a + ld d, $0 + call PlaySoundEffect + ret + .didntPressAButton - ld a, [hPressedButtons] ; joypad state - ld b, a - ld a, [wSoundTextCurrentSoundEffect] - bit BIT_D_LEFT, b ; was the left dpad button pressed? - jr z, .checkIfRightPressed - dec a ; decrement sound effect id - bit 7, a ; did it wrap around to $ff? - jr z, .saveSoundEffectID - ld a, NUM_SOUND_EFFECTS - 1 - jr .saveSoundEffectID + ld a, [hPressedButtons] ; joypad state + ld b, a + ld a, [wSoundTextCurrentSoundEffect] + bit BIT_D_LEFT, b ; was the left dpad button pressed? + jr z, .checkIfRightPressed + dec a ; decrement sound effect id + bit 7, a ; did it wrap around to $ff? + jr z, .saveSoundEffectID + ld a, NUM_SOUND_EFFECTS - 1 + jr .saveSoundEffectID + .checkIfRightPressed - bit BIT_D_RIGHT, b ; was the right dpad button pressed? - ret z - inc a ; increment background music id - cp NUM_SOUND_EFFECTS ; should it wrap around to 0? - jr nz, .saveSoundEffectID - xor a + 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 + ld [wSoundTextCurrentSoundEffect], a + hlCoord 7, 13, vBGMap + ; fall through RedrawSoundTestID: ; 0xc76c ; Redraws the 2-digit id number for the sound test's current background music or sound effect id. ; input: a = id number ; hl = pointer to bg map location where the new 2-digit id should be drawn - push af ; save music or sound effect id number - swap a - and $f ; a contains high nybble of music id - call .drawDigit - pop af - and $f ; a contains low nybble of music id + 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 + add $b7 ; hexadecimal digit tiles start at tile number $b7 + call PutTileInVRAM + inc hl + ret SongBanks: ; 0xc77e db MUSIC_NOTHING_0F,BANK(Music_Nothing0F) @@ -13593,9745 +3449,8872 @@ SongBanks: ; 0xc77e db MUSIC_NAME_ENTRY,BANK(Music_NameEntry) Func_c7ac: ; 0xc7ac - ld c, $0 - ld a, [wScreenState] - cp $1 - jr z, .asm_c7cc - ld a, [$d916] - and a - jr nz, .asm_c7cc - ld a, [$d917] - and a - jr nz, .asm_c7cc - ld a, [$d91e] - cp $4 - jr nz, .asm_c7cc - ld a, [$d91c] - ld c, a + ld c, $0 + ld a, [wScreenState] + cp $1 + jr z, .asm_c7cc + ld a, [wd916] + and a + jr nz, .asm_c7cc + ld a, [wd917] + and a + jr nz, .asm_c7cc + ld a, [wd91e] + cp $4 + jr nz, .asm_c7cc + ld a, [wd91c] + ld c, a .asm_c7cc - sla c - ld b, $0 - ld hl, Data_c806 - add hl, bc - ld a, [hl] - ld bc, $5050 - call LoadOAMData - ld a, [$d91d] - dec a - jr nz, .asm_c802 - ld a, [$d91c] - sla a - ld c, a - ld b, $0 - ld hl, Data_c806 + 2 - add hl, bc - ld a, [hl] - and a - jr z, .asm_c7f5 - ld a, [$d91c] - inc a + sla c + ld b, $0 + ld hl, Data_c806 + add hl, bc + ld a, [hl] + ld bc, $5050 + call LoadOAMData + ld a, [wd91d] + dec a + jr nz, .asm_c802 + ld a, [wd91c] + sla a + ld c, a + ld b, $0 + ld hl, Data_c806 + 2 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c7f5 + ld a, [wd91c] + inc a .asm_c7f5 - ld [$d91c], a - sla a - ld c, a - ld b, $0 - ld hl, Data_c806 + 1 - add hl, bc - ld a, [hl] + ld [wd91c], a + sla a + ld c, a + ld b, $0 + ld hl, Data_c806 + 1 + add hl, bc + ld a, [hl] .asm_c802 - ld [$d91d], a - ret + ld [wd91d], a + ret Data_c806: ; 0xc806 - db $7B, $02, $7C, $02, $00 + db $7B, $02, $7C, $02, $00 Func_c80b: ; 0xc80b - ld c, $0 - ld a, [wScreenState] - cp $1 - jr z, .asm_c824 - ld a, [$d916] - and a - jr nz, .asm_c824 - ld a, [$d917] - and a - jr nz, .asm_c824 - ld a, [$d91e] - ld c, a + ld c, $0 + ld a, [wScreenState] + cp $1 + jr z, .asm_c824 + ld a, [wd916] + and a + jr nz, .asm_c824 + ld a, [wd917] + and a + jr nz, .asm_c824 + ld a, [wd91e] + ld c, a .asm_c824 - sla c - ld b, $0 - ld hl, Data_c85e - add hl, bc - ld bc, $7870 - ld a, [hl] - call LoadOAMData - ld a, [$d91f] - dec a - jr nz, .asm_c85a - ld a, [$d91e] - sla a - ld c, a - ld b, $0 - ld hl, Data_c85e + 2 - add hl, bc - ld a, [hl] - and a - ld a, [$d91e] - jr z, .asm_c850 - inc a - ld [$d91e], a + sla c + ld b, $0 + ld hl, Data_c85e + add hl, bc + ld bc, $7870 + ld a, [hl] + call LoadOAMData + ld a, [wd91f] + dec a + jr nz, .asm_c85a + ld a, [wd91e] + sla a + ld c, a + ld b, $0 + ld hl, Data_c85e + 2 + add hl, bc + ld a, [hl] + and a + ld a, [wd91e] + jr z, .asm_c850 + inc a + ld [wd91e], a .asm_c850 - sla a - ld c, a - ld b, $0 - ld hl, Data_c85e + 1 - add hl, bc - ld a, [hl] + sla a + ld c, a + ld b, $0 + ld hl, Data_c85e + 1 + add hl, bc + ld a, [hl] .asm_c85a - ld [$d91f], a - ret + ld [wd91f], a + ret Data_c85e: ; 0xc85e - db $77, $09, $78, $09, $79, $09, $7A, $0D, $7A, $01, $00 + db $77, $09, $78, $09, $79, $09, $7A, $0D, $7A, $01, $00 Func_c869: ; 0xc869 - ld a, [$d916] - and a - ret nz - ld a, [$d917] - and a - ret nz - ld a, [$d91e] - cp $3 - ret nz - ld a, [$d91f] - cp $1 - ret nz - ld a, $55 - ld [$d803], a - ld a, $40 - ld [$d804], a - ret + ld a, [wd916] + and a + ret nz + ld a, [wd917] + and a + ret nz + ld a, [wd91e] + cp $3 + ret nz + ld a, [wd91f] + cp $1 + ret nz + ld a, $55 + ld [wd803], a + ld a, $40 + ld [wd804], a + ret Func_c88a: ; 0xc88a - ld a, [$d916] - sla a - ld c, a - ld b, $0 - ld hl, Data_c8eb - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld e, $0 - ld a, [wScreenState] - cp $1 - jr nz, .asm_c8a9 - ld a, [$d920] - sla a - ld e, a + ld a, [wd916] + sla a + ld c, a + ld b, $0 + ld hl, Data_c8eb + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld e, $0 + ld a, [wScreenState] + cp $1 + jr nz, .asm_c8a9 + ld a, [wd920] + sla a + ld e, a .asm_c8a9 - ld d, $0 - ld hl, Data_c8de - add hl, de - ld a, [hl] - call LoadOAMData - ld a, [$d921] - dec a - jr nz, .asm_c8da - ld a, [$d920] - sla a - ld c, a - ld b, $0 - ld hl, Data_c8de + 2 - add hl, bc - ld a, [hl] - and a - jr z, .asm_c8cd - ld a, [$d920] - inc a + ld d, $0 + ld hl, Data_c8de + add hl, de + ld a, [hl] + call LoadOAMData + ld a, [wd921] + dec a + jr nz, .asm_c8da + ld a, [wd920] + sla a + ld c, a + ld b, $0 + ld hl, Data_c8de + 2 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c8cd + ld a, [wd920] + inc a .asm_c8cd - ld [$d920], a - sla a - ld c, a - ld b, $0 - ld hl, Data_c8de + 1 - add hl, bc - ld a, [hl] + ld [wd920], a + sla a + ld c, a + ld b, $0 + ld hl, Data_c8de + 1 + add hl, bc + ld a, [hl] .asm_c8da - ld [$d921], a - ret + ld [wd921], a + ret Data_c8de: ; 0xc8de - db $7D, $02, $7E, $06, $7F, $02, $80, $04, $81, $06, $7F, $04, $00 + db $7D, $02, $7E, $06, $7F, $02, $80, $04, $81, $06, $7F, $04, $00 Data_c8eb: ; 0xc8eb - db $18, $08, $30, $08, $48, $08 + db $18, $08, $30, $08, $48, $08 Func_c8f1: ; 0xc8f1 - ld c, a - ld b, $0 - ld hl, $d917 - add hl, bc - ld e, [hl] - sla c - ld hl, PointerTable_c910 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld c, e - sla c - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - ld a, $82 - call LoadOAMData - ret + ld c, a + ld b, $0 + ld hl, wd917 + add hl, bc + ld e, [hl] + sla c + ld hl, PointerTable_c910 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld c, e + sla c + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + ld a, $82 + call LoadOAMData + ret PointerTable_c910: ; 0xc910 - dw OAMPixelOffsetData_c916 - dw OAMPixelOffsetData_c91a - dw OAMPixelOffsetData_c92a + dw OAMPixelOffsetData_c916 + dw OAMPixelOffsetData_c91a + dw OAMPixelOffsetData_c92a OAMPixelOffsetData_c916: ; 0xc916 - dw $5018 - dw $7018 + dw $5018 + dw $7018 OAMPixelOffsetData_c91a: ; 0xc91a - dw $0808 - dw $0818 - dw $0828 - dw $0838 - dw $0848 - dw $0858 - dw $0868 - dw $0878 + dw $0808 + dw $0818 + dw $0828 + dw $0838 + dw $0848 + dw $0858 + dw $0868 + dw $0878 OAMPixelOffsetData_c92a: ; 0xc92a - dw $1058 - dw $1068 + dw $1058 + dw $1068 Func_c92e: ; 0xc92e - ld a, [$d917] - sla a - ld c, a - ld b, $0 - ld hl, OAMPixelOffsetData_c944 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, $85 - call LoadOAMData - ret + ld a, [wd917] + sla a + ld c, a + ld b, $0 + ld hl, OAMPixelOffsetData_c944 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, $85 + call LoadOAMData + ret OAMPixelOffsetData_c944: ; 0xc944 - dw $5018 - dw $7018 + dw $5018 + dw $7018 Func_c948: ; 0xc948 - ld hl, $9c6d - ld de, wKeyConfigBallStart - ld b, $e + hlCoord 13, 3, vBGWin + ld de, wKeyConfigBallStart + ld b, $e .asm_c950 - push bc - ld a, [de] - call Func_c95f - inc de - ld bc, $0020 - add hl, bc - pop bc - dec b - jr nz, .asm_c950 - ret + push bc + ld a, [de] + call Func_c95f + inc de + ld bc, $0020 + add hl, bc + pop bc + dec b + jr nz, .asm_c950 + ret Func_c95f: ; 0xc95f - push bc - push de - push hl - push hl - push af - ld hl, $d922 - ld a, $81 - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - pop af - ld hl, $d922 - ld de, Data_c9ae - ld b, $8 + push bc + push de + push hl + push hl + push af + ld hl, wd922 + ld a, $81 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + pop af + ld hl, wd922 + ld de, Data_c9ae + ld b, $8 .asm_c979 - srl a - push af - jr nc, .asm_c994 - ld a, [de] - inc de - call Func_c9aa - ld a, [de] - inc de - call Func_c9aa - pop af - push af - and a - jr z, .asm_c996 - ld a, $1a - call Func_c9aa - jr .asm_c996 + srl a + push af + jr nc, .asm_c994 + ld a, [de] + inc de + call Func_c9aa + ld a, [de] + inc de + call Func_c9aa + pop af + push af + and a + jr z, .asm_c996 + ld a, $1a + call Func_c9aa + jr .asm_c996 + .asm_c994 - inc de - inc de + inc de + inc de .asm_c996 - pop af - dec b - jr nz, .asm_c979 - pop de - ld hl, $d922 - ld a, $0 - ld bc, $0008 - call Func_735 - pop hl - pop de - pop bc - ret + pop af + dec b + jr nz, .asm_c979 + pop de + ld hl, wd922 + ld a, $0 + ld bc, $0008 + call LoadOrCopyVRAMData + pop hl + pop de + pop bc + ret Func_c9aa: ; 0xc9aa - and a - ret z - ld [hli], a - ret + and a + ret z + ld [hli], a + ret Data_c9ae: ; 0xc9ae - db $14, $00, $15, $00, $18, $19, $16, $17, $13, $00, $12, $00, $10, $00, $11, $00 + db $14, $00, $15, $00, $18, $19, $16, $17, $13, $00, $12, $00, $10, $00, $11, $00 Func_c9be: ; 0xc9be - push af - push bc - push hl - ld c, a - xor b - and c - ld hl, $d936 - call Func_c9ff - ld a, b - ld hl, $d93f - call Func_c9ff - ld a, [$d947] - cp $3 - jr nc, .asm_c9f3 - ld hl, $d93e - add [hl] - sub $4 - ld hl, $d936 - call nc, Func_ca15 - ld de, $d936 - ld hl, $d93f - ld b, $8 + push af + push bc + push hl + ld c, a + xor b + and c + ld hl, wd936 + call Func_c9ff + ld a, b + ld hl, wd93f + call Func_c9ff + ld a, [wd947] + cp $3 + jr nc, .asm_c9f3 + ld hl, wd93e + add [hl] + sub $4 + ld hl, wd936 + call nc, Func_ca15 + ld de, wd936 + ld hl, wd93f + ld b, $8 .asm_c9ec - ld a, [de] - or [hl] - ld [hli], a - inc de - dec b - jr nz, .asm_c9ec + ld a, [de] + or [hl] + ld [hli], a + inc de + dec b + jr nz, .asm_c9ec .asm_c9f3 - ld hl, $d93f - call Func_ca29 - pop hl - pop bc - ld b, a - pop af - ld a, b - ret + ld hl, wd93f + call Func_ca29 + pop hl + pop bc + ld b, a + pop af + ld a, b + ret Func_c9ff: ; 0xc9ff - push bc - ld bc, $0800 + push bc + ld bc, $0800 .asm_ca03 - sla a - jr nc, .asm_ca0c - ld [hl], $ff - inc c - jr .asm_ca0e + sla a + jr nc, .asm_ca0c + ld [hl], $ff + inc c + jr .asm_ca0e + .asm_ca0c - ld [hl], $0 + ld [hl], $0 .asm_ca0e - inc hl - dec b - jr nz, .asm_ca03 - ld [hl], c - pop bc - ret + inc hl + dec b + jr nz, .asm_ca03 + ld [hl], c + pop bc + ret Func_ca15: ; 0xca15 - push bc - inc a - ld c, a - ld b, $8 + push bc + inc a + ld c, a + ld b, $8 .asm_ca1a - ld a, [hl] - and a - jr z, .asm_ca23 - ld [hl], $0 - dec c - jr z, .asm_ca27 + ld a, [hl] + and a + jr z, .asm_ca23 + ld [hl], $0 + dec c + jr z, .asm_ca27 .asm_ca23 - inc hl - dec b - jr nz, .asm_ca1a + inc hl + dec b + jr nz, .asm_ca1a .asm_ca27 - pop bc - ret + pop bc + ret Func_ca29: ; 0ca29 - push bc - ld bc, $0800 + push bc + ld bc, $0800 .asm_ca2d - ld a, [hli] - and a - jr z, .asm_ca32 - scf + ld a, [hli] + and a + jr z, .asm_ca32 + scf .asm_ca32 - rl c - dec b - jr nz, .asm_ca2d - ld a, c - pop bc - ret + rl c + dec b + jr nz, .asm_ca2d + ld a, c + pop bc + ret SaveDefaultKeyConfigs: ; 0ca3a - ld hl, DefaultKeyConfigs - ld de, wKeyConfigs - ld b, $e + ld hl, DefaultKeyConfigs + ld de, wKeyConfigs + ld b, $e .loop - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .loop - ld hl, wKeyConfigs - ld de, $a244 - ld bc, $000e - call SaveData - ret + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .loop + ld hl, wKeyConfigs + ld de, sKeyConfigs + ld bc, $000e + call SaveData + ret DefaultKeyConfigs: ; 0xca55 - db A_BUTTON, $00 ; wKeyConfigBallStart - db D_LEFT, $00 ; wKeyConfigLeftFlipper - db A_BUTTON, $00 ; wKeyConfigRightFlipper - db D_DOWN, $00 ; wKeyConfigLeftTilt - db B_BUTTON, $00 ; wKeyConfigRightTilt - db SELECT, $00 ; wKeyConfigUpperTilt - db START, $00 ; wKeyConfigMenu - -INCBIN "baserom.gbc",$ca63,$ca7f - $ca63 + db A_BUTTON, $00 ; wKeyConfigBallStart + db D_LEFT, $00 ; wKeyConfigLeftFlipper + db A_BUTTON, $00 ; wKeyConfigRightFlipper + db D_DOWN, $00 ; wKeyConfigLeftTilt + db B_BUTTON, $00 ; wKeyConfigRightTilt + db SELECT, $00 ; wKeyConfigUpperTilt + db START, $00 ; wKeyConfigMenu + +Data_ca63: + db A_BUTTON, $00 ; wKeyConfigBallStart + db D_LEFT, $00 ; wKeyConfigLeftFlipper + db A_BUTTON, $00 ; wKeyConfigRightFlipper + db D_DOWN, $00 ; wKeyConfigLeftTilt + db B_BUTTON, $00 ; wKeyConfigRightTilt + db START, $04 ; wKeyConfigUpperTilt + db D_UP | D_RIGHT, $00 ; wKeyConfigMenu + +Data_ca71: + db A_BUTTON, $00 ; wKeyConfigBallStart + db D_LEFT, $00 ; wKeyConfigLeftFlipper + db A_BUTTON, $00 ; wKeyConfigRightFlipper + db D_DOWN, $00 ; wKeyConfigLeftTilt + db B_BUTTON, $00 ; wKeyConfigRightTilt + db START, $00 ; wKeyConfigUpperTilt + db D_UP | START | SELECT, $00 ; wKeyConfigMenu HandleHighScoresScreen: ; 0xca7f - ld a, [wScreenState] - rst $18 ; calls JumpToFuncInTable + ld a, [wScreenState] + rst JumpTable ; calls JumpToFuncInTable HighScoresScreenFunctions: ; 0xca83 - dw Func_ca8f - dw Func_cb14 - dw Func_ccac - dw Func_ccb6 - dw Func_cd6c - dw ExitHighScoresScreen + dw Func_ca8f + dw Func_cb14 + dw Func_ccac + dw Func_ccb6 + dw Func_cd6c + dw ExitHighScoresScreen Func_ca8f: ; 0xca8f - ld hl, $d473 - call GenRandom - ld [hli], a - call GenRandom - ld [hli], a - call GenRandom - ld [hli], a - call GenRandom - ld [hli], a - ld hl, $da36 - ld a, [wHighScoresStage] - and a - jr z, .asm_caae - ld hl, $da77 + ld hl, wd473 + call GenRandom + ld [hli], a + call GenRandom + ld [hli], a + call GenRandom + ld [hli], a + call GenRandom + ld [hli], a + ld hl, wRedHighScore5Points + $5 + ld a, [wHighScoresStage] + and a + jr z, .asm_caae + ld hl, wBlueHighScore5Points + $5 .asm_caae - ld b, $5 + ld b, $5 .asm_cab0 - ld de, $d46f - ld c, $6 + ld de, wScore + $5 + ld c, $6 .asm_cab5 - ld a, [de] - cp [hl] - jr c, .asm_cad0 - jr nz, .asm_cac2 - dec de - dec hl - dec c - jr nz, .asm_cab5 - jr .asm_cad0 + ld a, [de] + cp [hl] + jr c, .asm_cad0 + jr nz, .asm_cac2 + dec de + dec hl + dec c + jr nz, .asm_cab5 + jr .asm_cad0 + .asm_cac2 - dec hl - dec c - jr nz, .asm_cac2 - ld a, l - sub $7 - ld l, a - jr nc, .asm_cacd - dec h + dec hl + dec c + jr nz, .asm_cac2 + ld a, l + sub $7 + ld l, a + jr nc, .asm_cacd + dec h .asm_cacd - dec b - jr nz, .asm_cab0 + dec b + jr nz, .asm_cab0 .asm_cad0 - ld a, b - ld [$da81], a - xor a - ld [$da80], a - inc b - ld hl, $da30 - ld de, $da3d - ld a, [wHighScoresStage] - and a - jr z, .asm_caeb - ld hl, $da71 - ld de, $da7e + ld a, b + ld [wda81], a + xor a + ld [wda80], a + inc b + ld hl, wRedHighScore4Unknown0x09 + 3 + ld de, wRedHighScore5Unknown0x09 + 3 + ld a, [wHighScoresStage] + and a + jr z, .asm_caeb + ld hl, wBlueHighScore4Unknown0x09 + 3 + ld de, wBlueHighScore5Unknown0x09 + 3 .asm_caeb - ld a, $5 + ld a, $5 .asm_caed - cp b - jr c, .asm_cb02 - push af - jr nz, .asm_caf6 - ld hl, $d476 + cp b + jr c, .asm_cb02 + push af + jr nz, .asm_caf6 + ld hl, wd473 + $3 .asm_caf6 - ld c, $d + ld c, $d .asm_caf8 - ld a, [hld] - ld [de], a - dec de - dec c - jr nz, .asm_caf8 - pop af - dec a - jr nz, .asm_caed + ld a, [hld] + ld [de], a + dec de + dec c + jr nz, .asm_caf8 + pop af + dec a + jr nz, .asm_caed .asm_cb02 - ld a, [$da81] - cp $5 - ld a, $1 - jr nz, .asm_cb0c - xor a + ld a, [wda81] + cp $5 + ld a, $1 + jr nz, .asm_cb0c + xor a .asm_cb0c - ld [$da7f], a - ld hl, wScreenState - inc [hl] - ret + ld [wda7f], a + ld hl, wScreenState + inc [hl] + ret Func_cb14: ; 0xcb14 - ld a, $43 - ld [$ff9e], a - ld a, $e0 - ld [$d80c], a - ld a, $e1 - ld [$d80d], a - ld [$d80e], a - xor a - ld [hBoardXShift], a - ld [$ffab], a - ld [hBoardYShift], a - ld [$ffad], a - ld a, $e - ld [$ffa2], a - ld [$ffa8], a - ld a, $82 - ld [$ffa9], a - ld [$ffaa], a - ld hl, $ff9f - set 6, [hl] - ld hl, $ffff - set 1, [hl] - ld a, $3 - ld [$ffb0], a - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_cb51 - ld a, [wHighScoresStage] - inc a + ld a, $43 + ld [hLCDC], a + ld a, $e0 + ld [wd80c], a + ld a, $e1 + ld [wd80d], a + ld [wd80e], a + xor a + ld [hSCX], a + ld [hNextFrameHBlankSCX], a + ld [hSCY], a + ld [hNextFrameHBlankSCY], a + ld a, $e + ld [hLYC], a + ld [hLastLYC], a + ld a, $82 + ld [hNextLYCSub], a + ld [hLYCSub], a + ld hl, hSTAT + set 6, [hl] + ld hl, rIE + set 1, [hl] + ld a, $3 + ld [hHBlankRoutine], a + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_cb51 + ld a, [wHighScoresStage] + inc a .asm_cb51 - ld hl, HighScoresVideoDataPointers - call LoadVideoData - call ClearOAMBuffer - ld a, $20 - ld [$da82], a - call Func_d211 - ld hl, $99c0 - ld de, $da3d - call Func_d2cb - ld hl, $9dc0 - ld de, $da7e - call Func_d2cb - ld a, [wHighScoresStage] - and a - jr z, .asm_cb7f - ld hl, $ff9e - set 3, [hl] + ld hl, HighScoresVideoDataPointers + call LoadVideoData + call ClearOAMBuffer + ld a, $20 + ld [wda82], a + call Func_d211 + hlCoord 0, 14, vBGMap + ld de, wRedHighScore5Unknown0x09 + $3 + call Func_d2cb + hlCoord 0, 14, vBGWin + ld de, wBlueHighScore5Unknown0x09 + $3 + call Func_d2cb + ld a, [wHighScoresStage] + and a + jr z, .asm_cb7f + ld hl, hLCDC + set 3, [hl] .asm_cb7f - call Func_b66 - ld a, [$da7f] - and a - jr z, .asm_cbbd - ld a, [$da81] - and a - jr nz, .asm_cb9b - ld a, $13 - call SetSongBank - ld de, $0001 - call PlaySong - jr .asm_cba6 + call Func_b66 + ld a, [wda7f] + and a + jr z, .asm_cbbd + ld a, [wda81] + and a + jr nz, .asm_cb9b + ld a, $13 + call SetSongBank + ld de, $0001 + call PlaySong + jr .asm_cba6 + .asm_cb9b - ld a, $13 - call SetSongBank - ld de, $0002 - call PlaySong + ld a, $13 + call SetSongBank + ld de, $0002 + call PlaySong .asm_cba6 - call Func_588 - ld bc, $0009 - call Func_d68a - ld bc, $03c9 - call Func_d68a - call Func_bbe - ld hl, wScreenState - inc [hl] - ret + call Func_588 + ld bc, $0009 + call Func_d68a + ld bc, $03c9 + call Func_d68a + call Func_bbe + ld hl, wScreenState + inc [hl] + ret + .asm_cbbd - ld a, $10 - call SetSongBank - ld de, $0004 - call PlaySong - call Func_588 - ld bc, $0009 - call Func_d68a - ld bc, $03c9 - call Func_d68a - call Func_bbe - ld hl, wScreenState - inc [hl] - ld hl, wScreenState - inc [hl] - ret + ld a, $10 + call SetSongBank + ld de, $0004 + call PlaySong + call Func_588 + ld bc, $0009 + call Func_d68a + ld bc, $03c9 + call Func_d68a + call Func_bbe + ld hl, wScreenState + inc [hl] + ld hl, wScreenState + inc [hl] + ret HighScoresVideoDataPointers: ; 0xcbe3 - dw HighScoresVideoData_GameBoy - dw HighScoresRedStageVideoData_GameBoyColor - dw HighScoresBlueStageVideoData_GameBoyColor + dw HighScoresVideoData_GameBoy + dw HighScoresRedStageVideoData_GameBoyColor + dw HighScoresBlueStageVideoData_GameBoyColor HighScoresVideoData_GameBoy: ; 0xcbe9 - VIDEO_DATA_TILES HighScoresBaseGameBoyGfx, vTiles0, $1800 - VIDEO_DATA_TILEMAP HighScoresTilemap, vBGMap0, $400 - VIDEO_DATA_TILEMAP HighScoresTilemap2, vBGMap1, $400 - - dw HighScoresTilemap + $3c0 - db Bank(HighScoresTilemap) - dw vBGMap0 - dw ($40 << 2) - - dw HighScoresTilemap + $280 - db Bank(HighScoresTilemap) - dw vBGMap0 + $200 - dw ($40 << 2) - - dw HighScoresTilemap2 + $3c0 - db Bank(HighScoresTilemap2) - dw vBGMap1 - dw ($40 << 2) - - dw HighScoresTilemap2 + $280 - db Bank(HighScoresTilemap2) - dw vBGMap1 + $200 - dw ($40 << 2) - - db $FF, $FF ; terminators + VIDEO_DATA_TILES HighScoresBaseGameBoyGfx, vTilesOB, $1800 + VIDEO_DATA_TILEMAP HighScoresTilemap, vBGMap, $400 + VIDEO_DATA_TILEMAP HighScoresTilemap2, vBGWin, $400 + dw HighScoresTilemap + $3c0 + db Bank(HighScoresTilemap) + dw vBGMap + dw ($40 << 2) + dw HighScoresTilemap + $280 + db Bank(HighScoresTilemap) + dw vBGMap + $200 + dw ($40 << 2) + dw HighScoresTilemap2 + $3c0 + db Bank(HighScoresTilemap2) + dw vBGWin + dw ($40 << 2) + dw HighScoresTilemap2 + $280 + db Bank(HighScoresTilemap2) + dw vBGWin + $200 + dw ($40 << 2) + db $FF, $FF ; terminators HighScoresRedStageVideoData_GameBoyColor: ; 0xcc1c - VIDEO_DATA_TILES HighScoresBaseGameBoyGfx, vTiles0, $1800 - VIDEO_DATA_TILEMAP HighScoresTilemap, vBGMap0, $400 - VIDEO_DATA_TILEMAP HighScoresTilemap2, vBGMap1, $400 - VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap4, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap5, vBGMap1, $400 - - dw HighScoresTilemap + $3c0 - db Bank(HighScoresTilemap) - dw vBGMap0 - dw ($40 << 2) - - dw HighScoresTilemap + $280 - db Bank(HighScoresTilemap) - dw vBGMap0 + $200 - dw ($40 << 2) - - dw HighScoresTilemap2 + $3c0 - db Bank(HighScoresTilemap2) - dw vBGMap1 - dw ($40 << 2) - - dw HighScoresTilemap2 + $280 - db Bank(HighScoresTilemap2) - dw vBGMap1 + $200 - dw ($40 << 2) - - VIDEO_DATA_PALETTES HighScoresRedStagePalettes, $80 - db $FF, $FF + VIDEO_DATA_TILES HighScoresBaseGameBoyGfx, vTilesOB, $1800 + VIDEO_DATA_TILEMAP HighScoresTilemap, vBGMap, $400 + VIDEO_DATA_TILEMAP HighScoresTilemap2, vBGWin, $400 + VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap4, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap5, vBGWin, $400 + dw HighScoresTilemap + $3c0 + db Bank(HighScoresTilemap) + dw vBGMap + dw ($40 << 2) + dw HighScoresTilemap + $280 + db Bank(HighScoresTilemap) + dw vBGMap + $200 + dw ($40 << 2) + dw HighScoresTilemap2 + $3c0 + db Bank(HighScoresTilemap2) + dw vBGWin + dw ($40 << 2) + dw HighScoresTilemap2 + $280 + db Bank(HighScoresTilemap2) + dw vBGWin + $200 + dw ($40 << 2) + VIDEO_DATA_PALETTES HighScoresRedStagePalettes, $80 + db $FF, $FF HighScoresBlueStageVideoData_GameBoyColor: ; 0xcc64 - VIDEO_DATA_TILES HighScoresBaseGameBoyGfx, vTiles0, $1800 - VIDEO_DATA_TILEMAP HighScoresTilemap, vBGMap0, $400 - VIDEO_DATA_TILEMAP HighScoresTilemap2, vBGMap1, $400 - VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap4, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap5, vBGMap1, $400 - - dw HighScoresTilemap + $3c0 - db Bank(HighScoresTilemap) - dw vBGMap0 - dw ($40 << 2) - - dw HighScoresTilemap + $280 - db Bank(HighScoresTilemap) - dw vBGMap0 + $200 - dw ($40 << 2) - - dw HighScoresTilemap2 + $3c0 - db Bank(HighScoresTilemap2) - dw vBGMap1 - dw ($40 << 2) - - dw HighScoresTilemap2 + $280 - db Bank(HighScoresTilemap2) - dw vBGMap1 + $200 - dw ($40 << 2) - - VIDEO_DATA_PALETTES HighScoresBlueStagePalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES HighScoresBaseGameBoyGfx, vTilesOB, $1800 + VIDEO_DATA_TILEMAP HighScoresTilemap, vBGMap, $400 + VIDEO_DATA_TILEMAP HighScoresTilemap2, vBGWin, $400 + VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap4, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 HighScoresTilemap5, vBGWin, $400 + dw HighScoresTilemap + $3c0 + db Bank(HighScoresTilemap) + dw vBGMap + dw ($40 << 2) + dw HighScoresTilemap + $280 + db Bank(HighScoresTilemap) + dw vBGMap + $200 + dw ($40 << 2) + dw HighScoresTilemap2 + $3c0 + db Bank(HighScoresTilemap2) + dw vBGWin + dw ($40 << 2) + dw HighScoresTilemap2 + $280 + db Bank(HighScoresTilemap2) + dw vBGWin + $200 + dw ($40 << 2) + VIDEO_DATA_PALETTES HighScoresBlueStagePalettes, $80 + db $FF, $FF ; terminators Func_ccac: ; 0xccac - call Func_d18b - call Func_d1d2 - call Func_d211 - ret + call Func_d18b + call Func_d1d2 + call Func_d211 + ret Func_ccb6: ; 0xccb6 - call Func_d4cf - call AnimateHighScoresArrow - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_ccd1 - ld de, $0001 - call PlaySoundEffect - ld hl, wScreenState - inc [hl] - ld hl, wScreenState - inc [hl] - ret + call Func_d4cf + call AnimateHighScoresArrow + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_ccd1 + lb de, $00, $01 + call PlaySoundEffect + ld hl, wScreenState + inc [hl] + ld hl, wScreenState + inc [hl] + ret + .asm_ccd1 - bit 1, a - jr z, .asm_cce4 - ld de, $0001 - call PlaySoundEffect - ld hl, wScreenState - inc [hl] - ld hl, wScreenState - inc [hl] - ret + bit 1, a + jr z, .asm_cce4 + lb de, $00, $01 + call PlaySoundEffect + ld hl, wScreenState + inc [hl] + ld hl, wScreenState + inc [hl] + ret + .asm_cce4 - bit 3, a - jr z, .asm_ccfb - call Func_1a43 - ld a, [hGameBoyColorFlag] - ld [$d8f0], a - ld de, $0001 - call PlaySoundEffect - ld hl, wScreenState - inc [hl] - ret + bit 3, a + jr z, .asm_ccfb + call Func_1a43 + ld a, [hGameBoyColorFlag] + ld [wd8f0], a + lb de, $00, $01 + call PlaySoundEffect + ld hl, wScreenState + inc [hl] + ret + .asm_ccfb - ld a, [hJoypadState] - cp (SELECT | D_UP) - ret nz - ld a, [hNewlyPressedButtons] - and (SELECT | D_UP) - ret z - ld de, $0001 - call PlaySoundEffect - call ClearOAMBuffer - ld bc, $473b - ld a, $94 - call LoadOAMData + ld a, [hJoypadState] + cp (SELECT | D_UP) + ret nz + ld a, [hNewlyPressedButtons] + and (SELECT | D_UP) + ret z + lb de, $00, $01 + call PlaySoundEffect + call ClearOAMBuffer + ld bc, $473b + ld a, $94 + call LoadOAMData .asm_cd16 - rst $10 - ld a, [hNewlyPressedButtons] - bit BIT_B_BUTTON, a - jr z, .asm_cd24 - ld de, $0001 - call PlaySoundEffect - ret + rst AdvanceFrame + ld a, [hNewlyPressedButtons] + bit BIT_B_BUTTON, a + jr z, .asm_cd24 + lb de, $00, $01 + call PlaySoundEffect + ret + .asm_cd24 - bit 0, a - jr z, .asm_cd16 - ld de, $0001 - call PlaySoundEffect - call CopyInitialHighScores - ld a, $30 - ld hl, $6040 ; todo - ld de, $9840 - ld bc, $01c0 - call LoadVRAMData - ld a, $30 - ld hl, $5840 ; todo - ld de, $9c40 - ld bc, $01c0 - call LoadVRAMData - ld hl, $99c0 ; todo - ld de, $da3d - call Func_d361 - ld hl, $9dc0 - ld de, $da7e - call Func_d361 - ld hl, wRedHighScore1Points - ld de, $a000 - ld bc, $0082 - call SaveData - ret + bit 0, a + jr z, .asm_cd16 + lb de, $00, $01 + call PlaySoundEffect + call CopyInitialHighScores + ld a, BANK(HighScoresTilemap) + ld hl, HighScoresTilemap + $40 + deCoord 0, 2, vBGMap + ld bc, $01c0 + call LoadVRAMData + ld a, BANK(HighScoresTilemap2) + ld hl, HighScoresTilemap2 + $40 + deCoord 0, 2, vBGWin + ld bc, $01c0 + call LoadVRAMData + hlCoord 0, 14, vBGMap + ld de, wRedHighScore5Unknown0x09 + $3 + call Func_d361 + hlCoord 0, 14, vBGWin + ld de, wBlueHighScore5Unknown0x09 + $3 + call Func_d361 + ld hl, wRedHighScore1Points + ld de, $a000 + ld bc, $0082 + call SaveData + ret Func_cd6c: ; 0xcd6c - ld a, [$ffb3] - and $1f - call z, Func_1a43 - call Func_cf7d - call Func_cfa6 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_cdbb - ld de, $0001 - call PlaySoundEffect - ld a, [$da85] - and a - jr nz, .asm_cda1 - ld a, [$d86e] - and a - jr z, .asm_cdbb - call ClearOAMBuffer - ld bc, $473b - ld a, $8e - call LoadOAMData - call Func_d042 - jr .asm_cdc6 + ld a, [hNumFramesDropped] + and $1f + call z, Func_1a43 + call Func_cf7d + call Func_cfa6 + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_cdbb + lb de, $00, $01 + call PlaySoundEffect + ld a, [wda85] + and a + jr nz, .asm_cda1 + ld a, [wd86e] + and a + jr z, .asm_cdbb + call ClearOAMBuffer + ld bc, $473b + ld a, $8e + call LoadOAMData + call Func_d042 + jr .asm_cdc6 + .asm_cda1 - ld a, [$d8f0] - and a - jr z, .asm_cdbb - ld de, $0000 - call PlaySong - rst $10 - call Func_cdce - push af - ld de, $0004 - call PlaySong - pop af - jr nc, .asm_cdc6 + ld a, [wd8f0] + and a + jr z, .asm_cdbb + ld de, $0000 + call PlaySong + rst AdvanceFrame + call Func_cdce + push af + ld de, $0004 + call PlaySong + pop af + jr nc, .asm_cdc6 .asm_cdbb - ld a, [hNewlyPressedButtons] - bit BIT_B_BUTTON, a - ret z - ld de, $0001 - call PlaySoundEffect + ld a, [hNewlyPressedButtons] + bit BIT_B_BUTTON, a + ret z + lb de, $00, $01 + call PlaySoundEffect .asm_cdc6 - xor a - ld [$ff56], a - ld hl, wScreenState - dec [hl] - ret + xor a + ld [rRP], a + ld hl, wScreenState + dec [hl] + ret Func_cdce: ; 0xcdce - push af - ld a, $0 - ld [$abf6], a - pop af - call ClearOAMBuffer - call Func_1be3 - call SendHighScores - push af - ld a, $1 - ld [$abf6], a - pop af - di - ld a, [$d8ea] - cp $0 - jp nz, .asm_ceb6 - ld a, [$d8e9] - cp $1 - jr z, .asm_ce23 - push af - ld a, $2 - ld [$abf6], a - pop af - ld b, $82 - ld hl, wRedHighScore1Points - call Func_1cf8 - ld a, [$d8ea] - cp $0 - jp nz, .asm_ceb6 - push af - ld a, $3 - ld [$abf6], a - pop af - ld hl, $c4c0 - call Func_1dda - ld a, [$d8ea] - cp $0 - jp nz, .asm_ceb6 - jr .asm_ce4d + push af + ld a, $0 + ld [$abf6], a + pop af + call ClearOAMBuffer + call Func_1be3 + call SendHighScores + push af + ld a, $1 + ld [$abf6], a + pop af + di + ld a, [wd8ea] + cp $0 + jp nz, .asm_ceb6 + ld a, [wd8e9] + cp $1 + jr z, .asm_ce23 + push af + ld a, $2 + ld [$abf6], a + pop af + ld b, $82 + ld hl, wRedHighScore1Points + call Func_1cf8 + ld a, [wd8ea] + cp $0 + jp nz, .asm_ceb6 + push af + ld a, $3 + ld [$abf6], a + pop af + ld hl, wc4c0 + call Func_1dda + ld a, [wd8ea] + cp $0 + jp nz, .asm_ceb6 + jr .asm_ce4d + .asm_ce23 - push af - ld a, $4 - ld [$abf6], a - pop af - ld hl, $c4c0 - call Func_1dda - ld a, [$d8ea] - cp $0 - jr nz, .asm_ceb6 - push af - ld a, $5 - ld [$abf6], a - pop af - ld b, $82 - ld hl, wRedHighScore1Points - call Func_1cf8 - ld a, [$d8ea] - cp $0 - jr nz, .asm_ceb6 + push af + ld a, $4 + ld [$abf6], a + pop af + ld hl, wc4c0 + call Func_1dda + ld a, [wd8ea] + cp $0 + jr nz, .asm_ceb6 + push af + ld a, $5 + ld [$abf6], a + pop af + ld b, $82 + ld hl, wRedHighScore1Points + call Func_1cf8 + ld a, [wd8ea] + cp $0 + jr nz, .asm_ceb6 .asm_ce4d - push af - ld a, $6 - ld [$abf6], a - pop af - call Func_ceca - rst $10 - ld hl, $c4cc - ld b, $5 + push af + ld a, $6 + ld [$abf6], a + pop af + call Func_ceca + rst AdvanceFrame + ld hl, wc4cc + ld b, $5 .asm_ce5d - push bc - push hl - ld d, h - ld e, l - ld hl, $da3d - call Func_cfcb - pop hl - pop bc - ld de, $000d - add hl, de - dec b - jr nz, .asm_ce5d - push af - ld a, $7 - ld [$abf6], a - pop af - ld hl, $c50d - ld b, $5 + push bc + push hl + ld d, h + ld e, l + ld hl, wRedHighScore5Unknown0x09 + $3 + call Func_cfcb + pop hl + pop bc + ld de, $000d + add hl, de + dec b + jr nz, .asm_ce5d + push af + ld a, $7 + ld [$abf6], a + pop af + ld hl, wBottomMessageText + $0d + ld b, $5 .asm_ce7c - push bc - push hl - ld d, h - ld e, l - ld hl, $da7e - call Func_cfcb - pop hl - pop bc - ld de, $000d - add hl, de - dec b - jr nz, .asm_ce7c - push af - ld a, $8 - ld [$abf6], a - pop af - ld hl, $99c0 - ld de, $da3d - call Func_d361 - ld hl, $9dc0 - ld de, $da7e - call Func_d361 - ld hl, wRedHighScore1Points - ld de, $a000 - ld bc, $0082 - call SaveData - and a - ret + push bc + push hl + ld d, h + ld e, l + ld hl, wBlueHighScore5Unknown0x09 + $3 + call Func_cfcb + pop hl + pop bc + ld de, $000d + add hl, de + dec b + jr nz, .asm_ce7c + push af + ld a, $8 + ld [$abf6], a + pop af + hlCoord 0, 14, vBGMap + ld de, wRedHighScore5Unknown0x09 + $3 + call Func_d361 + hlCoord 0, 14, vBGWin + ld de, wBlueHighScore5Unknown0x09 + $3 + call Func_d361 + ld hl, wRedHighScore1Points + ld de, $a000 + ld bc, $0082 + call SaveData + and a + ret + .asm_ceb6 - push af - ld a, $9 - ld [$abf6], a - pop af - call Func_ceca - rst $10 - push af - ld a, $a - ld [$abf6], a - pop af - scf - ret + push af + ld a, $9 + ld [$abf6], a + pop af + call Func_ceca + rst AdvanceFrame + push af + ld a, $a + ld [$abf6], a + pop af + scf + ret Func_ceca: ; 0xceca - ld a, [$ff44] - and a - jr nz, Func_ceca - ei - ret + ld a, [rLY] + and a + jr nz, Func_ceca + ei + ret SendHighScores: ; 0xced1 ; Sends high scores, and plays the animation for sending the high scores. - ld hl, SendHighScoresAnimationData - ld de, wSendHighScoresAnimationFrameCounter - call CopyHLToDE - ld bc, $4800 - ld a, [wSendHighScoresAnimationFrame] - call LoadOAMData - ld bc, $473b - ld a, $8f - call LoadOAMData - call Func_926 - rst $10 - ld a, $1 - ld [$d8e9], a - ld b, $b4 ; maximum attempts to send high scores + ld hl, SendHighScoresAnimationData + ld de, wSendHighScoresAnimationFrameCounter + call CopyHLToDE + ld bc, $4800 + ld a, [wSendHighScoresAnimationFrame] + call LoadOAMData + ld bc, $473b + ld a, $8f + call LoadOAMData + call Func_926 + rst AdvanceFrame + ld a, $1 + ld [wd8e9], a + ld b, $b4 ; maximum attempts to send high scores .attemptToSendHighScoresLoop - push bc - xor a - ld [$ffb2], a + push bc + xor a + ld [hNumFramesSinceLastVBlank], a .asm_cefa - ld b, $2 - ld c, $56 - ld a, [$ff00+c] - and b - jr z, .asm_cf09 - ld a, [$ffb2] - and a - jr z, .asm_cefa - jr .asm_cf0e + ld b, $2 + ld c, $56 + ld a, [$ff00+c] + and b + jr z, .asm_cf09 + ld a, [hNumFramesSinceLastVBlank] + and a + jr z, .asm_cefa + jr .asm_cf0e + .asm_cf09 - call Func_1c50 - jr .continueAttempts + call Func_1c50 + jr .continueAttempts + .asm_cf0e - ld hl, SendHighScoresAnimationData - ld de, wSendHighScoresAnimationFrameCounter - call UpdateAnimation - jr nc, .continueAttempts - ld bc, $4800 - ld a, [wSendHighScoresAnimationFrame] - call LoadOAMData - ld bc, $473b - ld a, $8f - call LoadOAMData - call Func_926 - call Func_1ca1 - ld a, [wSendHighScoresAnimationFrameIndex] - cp $6 - jr nz, .continueAttempts - ld hl, SendHighScoresAnimationData - ld de, wSendHighScoresAnimationFrameCounter - call CopyHLToDE + ld hl, SendHighScoresAnimationData + ld de, wSendHighScoresAnimationFrameCounter + call UpdateAnimation + jr nc, .continueAttempts + ld bc, $4800 + ld a, [wSendHighScoresAnimationFrame] + call LoadOAMData + ld bc, $473b + ld a, $8f + call LoadOAMData + call Func_926 + call Func_1ca1 + ld a, [wSendHighScoresAnimationFrameIndex] + cp $6 + jr nz, .continueAttempts + ld hl, SendHighScoresAnimationData + ld de, wSendHighScoresAnimationFrameCounter + call CopyHLToDE .continueAttempts - pop bc - ld a, [$d8ea] - cp $0 - ret z - dec b - jr nz, .attemptToSendHighScoresLoop - ret + pop bc + ld a, [wd8ea] + cp $0 + ret z + dec b + jr nz, .attemptToSendHighScoresLoop + ret SendHighScoresAnimationData: ; 0xcf4b ; Each entry is [OAM id][duration] - db $0C, $98 - db $06, $99 - db $0A, $9A - db $0C, $9B - db $0A, $9C - db $06, $9D - db $00 ; terminator + db $0C, $98 + db $06, $99 + db $0A, $9A + db $0C, $9B + db $0A, $9C + db $06, $9D + db $00 ; terminator Func_cf58: ; 0xcf58 - cp $5 - ret z - push af - ld de, $0002 - call PlaySoundEffect - call ClearOAMBuffer - rst $10 - pop af - ld bc, $473b ; todo - add $8f - call LoadOAMData + cp $5 + ret z + push af + lb de, $00, $02 + call PlaySoundEffect + call ClearOAMBuffer + rst AdvanceFrame + pop af + ld bc, $473b + add $8f + call LoadOAMData .asm_cf6f - rst $10 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_cf6f - ld de, $0001 - call PlaySoundEffect - ret + rst AdvanceFrame + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_cf6f + lb de, $00, $01 + call PlaySoundEffect + ret Func_cf7d: ; 0xcf7d - ld a, [$d809] - ld b, a - ld a, [$da85] - bit 6, b - jr z, .asm_cf95 - and a - ret z - dec a - ld [$da85], a - ld de, $0003 - call PlaySoundEffect - ret + ld a, [wd809] + ld b, a + ld a, [wda85] + bit 6, b + jr z, .asm_cf95 + and a + ret z + dec a + ld [wda85], a + lb de, $00, $03 + call PlaySoundEffect + ret + .asm_cf95 - bit 7, b - ret z - cp $1 - ret z - inc a - ld [$da85], a - ld de, $0003 - call PlaySoundEffect - ret + bit 7, b + ret z + cp $1 + ret z + inc a + ld [wda85], a + lb de, $00, $03 + call PlaySoundEffect + ret Func_cfa6: ; 0xcfa6 - ld bc, $473b - ld a, $87 - call LoadOAMData - ld a, [$d8f0] - and a - jr z, .asm_cfb6 - ld a, $2 + ld bc, $473b + ld a, $87 + call LoadOAMData + ld a, [wd8f0] + and a + jr z, .asm_cfb6 + ld a, $2 .asm_cfb6 - ld e, a - ld a, [$d86e] - add e - xor $3 - add $8a - call LoadOAMData - ld a, [$da85] - add $88 - call LoadOAMData - ret + ld e, a + ld a, [wd86e] + add e + xor $3 + add $8a + call LoadOAMData + ld a, [wda85] + add $88 + call LoadOAMData + ret Func_cfcb: ; 0xcfcb - ld a, e - ld [$ff8c], a - ld a, d - ld [$ff8d], a - push hl - ld b, $5 + ld a, e + ld [$ff8c], a + ld a, d + ld [$ff8d], a + push hl + ld b, $5 .asm_cfd4 - ld a, [$ff8c] - ld e, a - ld a, [$ff8d] - ld d, a - call Func_d005 - call Func_d017 - jr c, .asm_cfe5 - dec b - jr nz, .asm_cfd4 + ld a, [$ff8c] + ld e, a + ld a, [$ff8d] + ld d, a + call Func_d005 + call Func_d017 + jr c, .asm_cfe5 + dec b + jr nz, .asm_cfd4 .asm_cfe5 - inc b - pop de - ld hl, $fff3 - add hl, de - ld a, $5 + inc b + pop de + ld hl, $fff3 + add hl, de + ld a, $5 .asm_cfed - cp b - ret c - push af - jr nz, .asm_cff8 - ld a, [$ff8c] - ld l, a - ld a, [$ff8d] - ld h, a + cp b + ret c + push af + jr nz, .asm_cff8 + ld a, [$ff8c] + ld l, a + ld a, [$ff8d] + ld h, a .asm_cff8 - ld c, $d + ld c, $d .asm_cffa - ld a, [hld] - ld [de], a - dec de - dec c - jr nz, .asm_cffa - pop af - dec a - jr nz, .asm_cfed - ret + ld a, [hld] + ld [de], a + dec de + dec c + jr nz, .asm_cffa + pop af + dec a + jr nz, .asm_cfed + ret Func_d005: ; 0xd005 - ld c, $7 + ld c, $7 .asm_d007 - ld a, [de] - cp [hl] - jr nz, .asm_d010 - dec de - dec hl - dec c - jr nz, .asm_d007 + ld a, [de] + cp [hl] + jr nz, .asm_d010 + dec de + dec hl + dec c + jr nz, .asm_d007 .asm_d010 - ld a, c - ld [$ff8e], a - call Func_d035 - ret + ld a, c + ld [$ff8e], a + call Func_d035 + ret Func_d017: ; 0xd017 - ld c, $6 + ld c, $6 .asm_d019 - ld a, [de] - cp [hl] - jr c, .asm_d02b - jr nz, .asm_d030 - dec de - dec hl - dec c - jr nz, .asm_d019 - ld a, [$ff8e] - and a - jr nz, .asm_d02b - ld b, $5 + ld a, [de] + cp [hl] + jr c, .asm_d02b + jr nz, .asm_d030 + dec de + dec hl + dec c + jr nz, .asm_d019 + ld a, [$ff8e] + and a + jr nz, .asm_d02b + ld b, $5 .asm_d02b - call Func_d035 - scf - ret + call Func_d035 + scf + ret + .asm_d030 - call Func_d035 - and a - ret + call Func_d035 + and a + ret Func_d035: ; 0xd035 - ld a, e - sub c - ld e, a - jr nc, .asm_d03b - dec d + ld a, e + sub c + ld e, a + jr nc, .asm_d03b + dec d .asm_d03b - ld a, l - sub c - ld l, a - jr nc, .asm_d041 - dec h + ld a, l + sub c + ld l, a + jr nc, .asm_d041 + dec h .asm_d041 - ret + ret Func_d042: ; 0xd042 - ld a, [hJoypadState] - ld [$da86], a - ld b, a - ld a, $80 - bit BIT_D_LEFT, b - jr z, .asm_d052 - ld a, $7f - jr .asm_d058 + ld a, [hJoypadState] + ld [wda86], a + ld b, a + ld a, $80 + bit BIT_D_LEFT, b + jr z, .asm_d052 + ld a, $7f + jr .asm_d058 + .asm_d052 - bit BIT_D_RIGHT, b - jr z, .asm_d058 - ld a, $10 + bit BIT_D_RIGHT, b + jr z, .asm_d058 + ld a, $10 .asm_d058 - ld [$d8a7], a - ld a, $e0 - ld [$d8aa], a - ld a, $30 - ld hl, $63c0 - ld de, $c280 - ld bc, $0040 - call CopyDataToRAM - ld a, $0 - ld hl, $9840 - ld de, $c2c0 - ld bc, $01c0 - call LoadVRAMData - ld a, $30 - ld hl, $6280 - ld de, $c480 - ld bc, $0040 - call CopyDataToRAM - call Func_d6b6 - call Func_d0e3 - ret c - ld a, [$da86] - bit 2, a - jr z, .asm_d0a2 - ld de, $da06 - call Func_d107 - call Func_d0f5 - ret c + ld [wd8a7], a + ld a, $e0 + ld [wd8aa], a + ld a, BANK(HighScoresTilemap) + ld hl, HighScoresTilemap + $3c0 + ld de, wc280 + ld bc, $0040 + call FarCopyData + ld a, $0 + hlCoord 0, 2, vBGMap + ld de, wc2c0 + ld bc, $01c0 + call LoadVRAMData + ld a, BANK(HighScoresTilemap) + ld hl, HighScoresTilemap + $280 + ld de, wc480 + ld bc, $0040 + call FarCopyData + call Func_d6b6 + call Func_d0e3 + ret c + ld a, [wda86] + bit 2, a + jr z, .asm_d0a2 + ld de, wRedHighScore1Unknown0x09 + call Func_d107 + call Func_d0f5 + ret c .asm_d0a2 - ld a, $30 - ld hl, $5bc0 ; todo - ld de, $c280 - ld bc, $0040 - call CopyDataToRAM - ld a, $0 - ld hl, $9c40 - ld de, $c2c0 - ld bc, $01c0 - call LoadVRAMData - ld a, $30 - ld hl, $5a80 ; todo - ld de, $c480 - ld bc, $0040 - call CopyDataToRAM - call Func_d6b6 - call Func_d0e3 - ret c - ld a, [$da86] - bit 2, a - ret z - ld de, $da47 - call Func_d107 - call Func_d0f5 - ret + ld a, BANK(HighScoresTilemap2) + ld hl, HighScoresTilemap2 + $3c0 + ld de, wc280 + ld bc, $0040 + call FarCopyData + ld a, $0 + hlCoord 0, 2, vBGWin + ld de, wc2c0 + ld bc, $01c0 + call LoadVRAMData + ld a, BANK(HighScoresTilemap2) + ld hl, HighScoresTilemap2 + $280 + ld de, wc480 + ld bc, $0040 + call FarCopyData + call Func_d6b6 + call Func_d0e3 + ret c + ld a, [wda86] + bit 2, a + ret z + ld de, wBlueHighScore1Unknown0x09 + call Func_d107 + call Func_d0f5 + ret Func_d0e3: ; 0xd0e3 - ld a, $2a - ld hl, $6200 - call Func_1a21 - ld a, [$d86d] - and a - ret z - call Func_cf58 - scf - ret + ld a, BANK(HighScoresBaseGameBoyGfx) + ld hl, HighScoresBaseGameBoyGfx + $800 + call Func_1a21 + ld a, [wd86d] + and a + ret z + call Func_cf58 + scf + ret Func_d0f5: ; 0xd0f5 - ld a, $29 - ld hl, $7b00 - call Func_1a21 - ld a, [$d86d] - and a - ret z - call Func_cf58 - scf - ret + ld a, BANK(GFX_a7b00) + ld hl, GFX_a7b00 + call Func_1a21 + ld a, [wd86d] + and a + ret z + call Func_cf58 + scf + ret Func_d107: ; 0xd107 - ld hl, $c280 - ld a, $c0 - ld b, $20 -.asm_d10e - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .asm_d10e - ld hl, $c280 - ld b, $5 -.asm_d136 - ld c, $4 -.asm_d138 - ld a, [de] - swap a - call Func_d159 - ld a, [de] - call Func_d159 - inc de - inc hl - dec c - jr nz, .asm_d138 - ld a, l - add $4c - ld l, a - jr nc, .asm_d14e - inc h -.asm_d14e - ld a, e - add $9 - ld e, a - jr nc, .asm_d155 - inc d -.asm_d155 - dec b - jr nz, .asm_d136 - ret + ld hl, wc280 + ld a, $c0 + ld b, $20 +.clear +rept 32 + ld [hli], a +endr + dec b + jr nz, .clear + ld hl, wc280 + ld b, $5 +.loop + ld c, $4 +.inner + ld a, [de] + swap a + call Func_d159 + ld a, [de] + call Func_d159 + inc de + inc hl + dec c + jr nz, .inner + ld a, l + add $4c + ld l, a + jr nc, .no_carry_1 + inc h +.no_carry_1 + ld a, e + add $9 + ld e, a + jr nc, .no_carry_2 + inc d +.no_carry_2 + dec b + jr nz, .loop + ret Func_d159: ; 0xd159 - and $f - sla a - sla a - xor $80 - ld [hli], a - inc a - ld [hli], a - inc a - push bc - push hl - ld bc, $001e - add hl, bc - ld [hli], a - inc a - ld [hli], a - pop hl - pop bc - ret + and $f + sla a + sla a + xor $80 + ld [hli], a + inc a + ld [hli], a + inc a + push bc + push hl + ld bc, $001e + add hl, bc + ld [hli], a + inc a + ld [hli], a + pop hl + pop bc + ret ExitHighScoresScreen: ; 0xd171 - call Func_cb5 - call Func_576 - ld hl, $ff9f - res 6, [hl] - ld hl, $ffff - res 1, [hl] - ld a, SCREEN_TITLESCREEN - ld [wCurrentScreen], a - xor a - ld [wScreenState], a - ret + call Func_cb5 + call Func_576 + ld hl, hSTAT + res 6, [hl] + ld hl, rIE + res 1, [hl] + ld a, SCREEN_TITLESCREEN + ld [wCurrentScreen], a + xor a + ld [wScreenState], a + ret Func_d18b: ; 0xd18b - ld a, [hPressedButtons] - ld b, a - ld a, [$da81] - ld e, a - sla e - sla e - add e - sla e - add e - ld e, a - ld a, [$da80] - add e - ld e, a - ld d, $0 - ld hl, wRedHighScore1Name - ld a, [wHighScoresStage] - and a - jr z, .asm_d1ae - ld hl, wBlueHighScore1Name + ld a, [hPressedButtons] + ld b, a + ld a, [wda81] + ld e, a + sla e + sla e + add e + sla e + add e + ld e, a + ld a, [wda80] + add e + ld e, a + ld d, $0 + ld hl, wRedHighScore1Name + ld a, [wHighScoresStage] + and a + jr z, .asm_d1ae + ld hl, wBlueHighScore1Name .asm_d1ae - add hl, de - ld a, [hl] - bit 4, b - jr z, .asm_d1bd - inc a - cp $38 - jr nz, .asm_d1c7 - ld a, $a - jr .asm_d1c7 + add hl, de + ld a, [hl] + bit 4, b + jr z, .asm_d1bd + inc a + cp $38 + jr nz, .asm_d1c7 + ld a, $a + jr .asm_d1c7 + .asm_d1bd - bit 5, b - ret z - dec a - cp $9 - jr nz, .asm_d1c7 - ld a, $37 + bit 5, b + ret z + dec a + cp $9 + jr nz, .asm_d1c7 + ld a, $37 .asm_d1c7 - ld [hl], a - call Func_d46f - ld de, $0003 - call PlaySoundEffect - ret + ld [hl], a + call Func_d46f + lb de, $00, $03 + call PlaySoundEffect + ret Func_d1d2: ; 0xd1d2 - ld a, [hNewlyPressedButtons] - ld b, a - ld a, [$da80] - bit BIT_A_BUTTON, b - jr z, .asm_d1fc - inc a - cp $3 - jr nz, .asm_d202 - ld de, $0745 - call PlaySoundEffect - xor a - ld [$da7f], a - ld hl, wScreenState - inc [hl] - ld hl, wRedHighScore1Points - ld de, $a000 - ld bc, $0082 - call SaveData - ret + ld a, [hNewlyPressedButtons] + ld b, a + ld a, [wda80] + bit BIT_A_BUTTON, b + jr z, .asm_d1fc + inc a + cp $3 + jr nz, .asm_d202 + lb de, $07, $45 + call PlaySoundEffect + xor a + ld [wda7f], a + ld hl, wScreenState + inc [hl] + ld hl, wRedHighScore1Points + ld de, $a000 + ld bc, $0082 + call SaveData + ret + .asm_d1fc - bit 1, b - ret z - and a - ret z - dec a + bit 1, b + ret z + and a + ret z + dec a .asm_d202 - ld [$da80], a - ld a, $20 - ld [$da82], a - ld de, $0001 - call PlaySoundEffect - ret + ld [wda80], a + ld a, $20 + ld [wda82], a + lb de, $00, $01 + call PlaySoundEffect + ret Func_d211: ; 0xd211 ; related to high scores name entry? - ld a, [$da7f] - and a - ret z - ld a, [hJoypadState] - and (D_RIGHT | D_LEFT) - jr z, .asm_d221 - xor a - ld [$da82], a - ret + ld a, [wda7f] + and a + ret z + ld a, [hJoypadState] + and (D_RIGHT | D_LEFT) + jr z, .asm_d221 + xor a + ld [wda82], a + ret + .asm_d221 - ld a, [$da82] - inc a - ld [$da82], a - bit 5, a - ret z - ld a, [$da81] - ld e, a - ld d, $0 - ld hl, OAMPixelYOffsets_d247 - add hl, de - ld c, [hl] - ld a, [$da80] - ld e, a - ld d, $0 - ld hl, OAMPixelXOffsets_d24c - add hl, de - ld b, [hl] - ld a, $86 - call LoadOAMData - ret + ld a, [wda82] + inc a + ld [wda82], a + bit 5, a + ret z + ld a, [wda81] + ld e, a + ld d, $0 + ld hl, OAMPixelYOffsets_d247 + add hl, de + ld c, [hl] + ld a, [wda80] + ld e, a + ld d, $0 + ld hl, OAMPixelXOffsets_d24c + add hl, de + ld b, [hl] + ld a, $86 + call LoadOAMData + ret OAMPixelYOffsets_d247: ; 0xd247 - db $10, $28, $40, $58, $70 + db $10, $28, $40, $58, $70 OAMPixelXOffsets_d24c: ; 0xd24c - db $18, $20, $28 + db $18, $20, $28 AnimateHighScoresArrow: ; 0xd24f ; Handles the animation of the arrow in the bottom ; corner of the high scores screens. - ld a, [wHighScoresArrowAnimationCounter] - inc a - cp $28 - jr c, .noOverflow - xor a + ld a, [wHighScoresArrowAnimationCounter] + inc a + cp $28 + jr c, .noOverflow + xor a .noOverflow - ld [wHighScoresArrowAnimationCounter], a - ld a, [wHighScoresStage] - and a - ld c, $77 - ld a, $95 - ld hl, HighScoresRightArrowOAMPixelXOffsets - jr z, .asm_d26d - ld a, $96 - ld hl, HighScoresLeftArrowOAMPixelXOffsets + ld [wHighScoresArrowAnimationCounter], a + ld a, [wHighScoresStage] + and a + ld c, $77 + ld a, $95 + ld hl, HighScoresRightArrowOAMPixelXOffsets + jr z, .asm_d26d + ld a, $96 + ld hl, HighScoresLeftArrowOAMPixelXOffsets .asm_d26d - push af - ld a, [wHighScoresArrowAnimationCounter] - ld e, a - ld d, $0 - add hl, de - ld b, [hl] - pop af - call LoadOAMData - ret + push af + ld a, [wHighScoresArrowAnimationCounter] + ld e, a + ld d, $0 + add hl, de + ld b, [hl] + pop af + call LoadOAMData + ret HighScoresRightArrowOAMPixelXOffsets: ; 0xd27b ; Controls the animation of the right-arrow in the bottom corner of the ; high scores screen. - db $87, $87, $8A, $8A, $8A, $8A, $8A, $8A - db $89, $89, $88, $88, $88, $88, $88, $88 - db $88, $88, $88, $88, $88, $88, $88, $88 - db $88, $88, $88, $88, $88, $88, $88, $88 - db $88, $88, $88, $88, $88, $88, $88, $88 + db $87, $87, $8A, $8A, $8A, $8A, $8A, $8A + db $89, $89, $88, $88, $88, $88, $88, $88 + db $88, $88, $88, $88, $88, $88, $88, $88 + db $88, $88, $88, $88, $88, $88, $88, $88 + db $88, $88, $88, $88, $88, $88, $88, $88 HighScoresLeftArrowOAMPixelXOffsets: ; 0xd2a3 - db $02, $02, $FF, $FF, $FF, $FF, $FF, $FF - db $00, $00, $01, $01, $01, $01, $01, $01 - db $01, $01, $01, $01, $01, $01, $01, $01 - db $01, $01, $01, $01, $01, $01, $01, $01 - db $01, $01, $01, $01, $01, $01, $01, $01 + db $02, $02, $FF, $FF, $FF, $FF, $FF, $FF + db $00, $00, $01, $01, $01, $01, $01, $01 + db $01, $01, $01, $01, $01, $01, $01, $01 + db $01, $01, $01, $01, $01, $01, $01, $01 + db $01, $01, $01, $01, $01, $01, $01, $01 Func_d2cb: ; 0xd2cb - ld b, $5 + ld b, $5 .asm_d2cd - push bc - push hl - dec de - dec de - dec de - dec de - ld a, l - add $5 - ld l, a - ld b, $3 + push bc + push hl + dec de + dec de + dec de + dec de + ld a, l + add $5 + ld l, a + ld b, $3 .asm_d2d9 - ld a, [de] - call Func_d348 - dec de - dec hl - dec b - jr nz, .asm_d2d9 - pop hl - push hl - ld a, l - add $6 - ld l, a - ld bc, $0c01 + ld a, [de] + call Func_d348 + dec de + dec hl + dec b + jr nz, .asm_d2d9 + pop hl + push hl + ld a, l + add $6 + ld l, a + ld bc, $0c01 .asm_d2eb - ld a, [de] - swap a - and $f - call Func_d30e - inc hl - dec b - ld a, [de] - and $f - call Func_d30e - dec de - inc hl - dec b - jr nz, .asm_d2eb - xor a - call Func_d317 - pop hl - ld bc, hBoardYShift - add hl, bc - pop bc - dec b - jr nz, .asm_d2cd - ret + ld a, [de] + swap a + and $f + call Func_d30e + inc hl + dec b + ld a, [de] + and $f + call Func_d30e + dec de + inc hl + dec b + jr nz, .asm_d2eb + xor a + call Func_d317 + pop hl + ld bc, hSCY + add hl, bc + pop bc + dec b + jr nz, .asm_d2cd + ret Func_d30e: ; 0xd30e - jr nz, Func_d317 - ld a, b - dec a - jr z, Func_d317 - ld a, c - and a - ret nz - ; fall through + jr nz, Func_d317 + ld a, b + dec a + jr z, Func_d317 + ld a, c + and a + ret nz + ; fall through Func_d317: ; 0xd317 - push de - push af - call Func_d336 - pop af - ld c, $0 - sla a - add e - ld [hl], a - cp $fe - jr z, .asm_d328 - inc a + push de + push af + call Func_d336 + pop af + ld c, $0 + sla a + add e + ld [hl], a + cp $fe + jr z, .asm_d328 + inc a .asm_d328 - push hl - push af - ld a, l - add $20 - ld l, a - jr nc, .asm_d331 - inc h + push hl + push af + ld a, l + add $20 + ld l, a + jr nc, .asm_d331 + inc h .asm_d331 - pop af - ld [hl], a - pop hl - pop de - ret + pop af + ld [hl], a + pop hl + pop de + ret Func_d336: ; 0xd336 - ld e, $6c - ld a, b - cp $3 - ret z - cp $6 - ret z - cp $9 - ret z - cp $c - ret z - ld e, $58 - ret + ld e, $6c + ld a, b + cp $3 + ret z + cp $6 + ret z + cp $9 + ret z + cp $c + ret z + ld e, $58 + ret Func_d348: ; 0xd348 - ld c, $0 - sla a - add $90 - ld [hl], a - cp $fe - jr z, .asm_d354 - inc a + ld c, $0 + sla a + add $90 + ld [hl], a + cp $fe + jr z, .asm_d354 + inc a .asm_d354 - push hl - push af - ld a, l - add $20 - ld l, a - jr nc, .asm_d35d - inc h + push hl + push af + ld a, l + add $20 + ld l, a + jr nc, .asm_d35d + inc h .asm_d35d - pop af - ld [hl], a - pop hl - ret + pop af + ld [hl], a + pop hl + ret Func_d361: ; 0xd361 - ld b, $5 + ld b, $5 .asm_d363 - push bc - push hl - dec de - dec de - dec de - dec de - ld a, l - add $5 - ld l, a - ld b, $3 + push bc + push hl + dec de + dec de + dec de + dec de + ld a, l + add $5 + ld l, a + ld b, $3 .asm_d36f - ld a, [de] - call Func_d3e2 - dec de - dec hl - dec b - jr nz, .asm_d36f - pop hl - push hl - ld a, l - add $6 - ld l, a - ld bc, $0c01 + ld a, [de] + call Func_d3e2 + dec de + dec hl + dec b + jr nz, .asm_d36f + pop hl + push hl + ld a, l + add $6 + ld l, a + ld bc, $0c01 .asm_d381 - ld a, [de] - swap a - and $f - call Func_d3a4 - inc hl - dec b - ld a, [de] - and $f - call Func_d3a4 - dec de - inc hl - dec b - jr nz, .asm_d381 - xor a - call Func_d3ad - pop hl - ld bc, hBoardYShift - add hl, bc - pop bc - dec b - jr nz, .asm_d363 - ret + ld a, [de] + swap a + and $f + call Func_d3a4 + inc hl + dec b + ld a, [de] + and $f + call Func_d3a4 + dec de + inc hl + dec b + jr nz, .asm_d381 + xor a + call Func_d3ad + pop hl + ld bc, hSCY + add hl, bc + pop bc + dec b + jr nz, .asm_d363 + ret Func_d3a4: ; 0xd3a4 - jr nz, Func_d3ad - ld a, b - dec a - jr z, Func_d3ad - ld a, c - and a - ret nz - ; fall through + jr nz, Func_d3ad + ld a, b + dec a + jr z, Func_d3ad + ld a, c + and a + ret nz + ; fall through Func_d3ad: ; 0xd3ad - push de - push af - call Func_d3d0 - pop af - ld c, $0 - sla a - add e - call PutTileInVRAM - cp $fe - jr z, .asm_d3c0 - inc a + push de + push af + call Func_d3d0 + pop af + ld c, $0 + sla a + add e + call PutTileInVRAM + cp $fe + jr z, .asm_d3c0 + inc a .asm_d3c0 - push hl - push af - ld a, l - add $20 - ld l, a - jr nc, .asm_d3c9 - inc h + push hl + push af + ld a, l + add $20 + ld l, a + jr nc, .asm_d3c9 + inc h .asm_d3c9 - pop af - call PutTileInVRAM - pop hl - pop de - ret + pop af + call PutTileInVRAM + pop hl + pop de + ret Func_d3d0: ; 0xd3d0 - ld e, $6c - ld a, b - cp $3 - ret z - cp $6 - ret z - cp $9 - ret z - cp $c - ret z - ld e, $58 - ret + ld e, $6c + ld a, b + cp $3 + ret z + cp $6 + ret z + cp $9 + ret z + cp $c + ret z + ld e, $58 + ret Func_d3e2: ; 0xd3e2 - ld c, $0 - sla a - add $90 - call PutTileInVRAM - cp $fe - jr z, .asm_d3f0 - inc a + ld c, $0 + sla a + add $90 + call PutTileInVRAM + cp $fe + jr z, .asm_d3f0 + inc a .asm_d3f0 - push hl - push af - ld a, l - add $20 - ld l, a - jr nc, .asm_d3f9 - inc h + push hl + push af + ld a, l + add $20 + ld l, a + jr nc, .asm_d3f9 + inc h .asm_d3f9 - pop af - call PutTileInVRAM - pop hl - ret + pop af + call PutTileInVRAM + pop hl + ret CopyInitialHighScores: ; 0xd3ff - ld hl, InitialHighScores - ld de, wRedHighScore1Points - call CopyInitialHighScoresForStage - ld hl, InitialHighScores - ld de, wBlueHighScore1Points + 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 + ld b, $5 ; 5 high score entries to copy .copyHighScoreEntry - ld c, $6 ; high score points are 6 bytes long + 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 + 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 + 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 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_d424 + dec b + jr nz, .copyHighScoreEntry + ret INCLUDE "data/initial_high_scores.asm" ; 0xd42e Func_d46f: ; 0xd46f - ld a, [$da81] - ld d, a - sla a - add d - ld d, a - ld e, $0 - srl d - rr e - srl d - rr e - srl d - rr e - ld a, [$da80] - add e - ld e, a - ld hl, $9843 - ld a, [wHighScoresStage] - and a - jr z, .asm_d496 - ld hl, $9c43 + ld a, [wda81] + ld d, a + sla a + add d + ld d, a + ld e, $0 + srl d + rr e + srl d + rr e + srl d + rr e + ld a, [wda80] + add e + ld e, a + hlCoord 3, 2, vBGMap + ld a, [wHighScoresStage] + and a + jr z, .asm_d496 + hlCoord 3, 2, vBGWin .asm_d496 - add hl, de - push hl - ld a, [$da81] - ld e, a - sla e - sla e - add e - sla e - add e - ld e, a - ld a, [$da80] - add e - ld e, a - ld d, $0 - ld hl, wRedHighScore1Name - ld a, [wHighScoresStage] - and a - jr z, .asm_d4b8 - ld hl, wBlueHighScore1Name + add hl, de + push hl + ld a, [wda81] + ld e, a + sla e + sla e + add e + sla e + add e + ld e, a + ld a, [wda80] + add e + ld e, a + ld d, $0 + ld hl, wRedHighScore1Name + ld a, [wHighScoresStage] + and a + jr z, .asm_d4b8 + ld hl, wBlueHighScore1Name .asm_d4b8 - add hl, de - ld a, [hl] - sla a - add $90 - pop hl - call PutTileInVRAM - ld de, $0020 - add hl, de - cp $fe - jr z, .asm_d4cb - inc a + add hl, de + ld a, [hl] + sla a + add $90 + pop hl + call PutTileInVRAM + ld de, $0020 + add hl, de + cp $fe + jr z, .asm_d4cb + inc a .asm_d4cb - call PutTileInVRAM - ret + call PutTileInVRAM + ret Func_d4cf: ; 0xd4cf - ld a, [hNewlyPressedButtons] - ld b, a - ld a, [wHighScoresStage] - bit 4, b - jr z, .asm_d4e3 - and a - ret nz - ld de, $0003 - call PlaySoundEffect - jr .asm_d4f0 + ld a, [hNewlyPressedButtons] + ld b, a + ld a, [wHighScoresStage] + bit 4, b + jr z, .asm_d4e3 + and a + ret nz + lb de, $00, $03 + call PlaySoundEffect + jr .asm_d4f0 + .asm_d4e3 - bit 5, b - ret z - and a - ret z - ld de, $0003 - call PlaySoundEffect - jr .asm_d537 + bit 5, b + ret z + and a + ret z + lb de, $00, $03 + call PlaySoundEffect + jr .asm_d537 + .asm_d4f0 - call ClearOAMBuffer - call Func_d57b - ld a, $a5 - ld [$ffa7], a - xor a - ld [$ffa6], a - ld a, $2 - ld [hBoardXShift], a - ld hl, $ff9e - set 5, [hl] - ld b, $27 + call ClearOAMBuffer + call Func_d57b + ld a, $a5 + ld [hWX], a + xor a + ld [hWY], a + ld a, $2 + ld [hSCX], a + ld hl, hLCDC + set 5, [hl] + ld b, $27 .asm_d508 - push bc - ld a, $27 - sub b - bit 0, b - call nz, Func_d626 - ld hl, $ffa7 - dec [hl] - dec [hl] - dec [hl] - dec [hl] - ld hl, hBoardXShift - inc [hl] - inc [hl] - inc [hl] - inc [hl] - rst $10 - pop bc - dec b - jr nz, .asm_d508 - xor a - ld [hBoardXShift], a - ld hl, $ff9e - res 5, [hl] - set 3, [hl] - ld a, $1 - ld [wHighScoresStage], a - call Func_d5d0 - ret + push bc + ld a, $27 + sub b + bit 0, b + call nz, Func_d626 + ld hl, hWX + dec [hl] + dec [hl] + dec [hl] + dec [hl] + ld hl, hSCX + inc [hl] + inc [hl] + inc [hl] + inc [hl] + rst AdvanceFrame + pop bc + dec b + jr nz, .asm_d508 + xor a + ld [hSCX], a + ld hl, hLCDC + res 5, [hl] + set 3, [hl] + ld a, $1 + ld [wHighScoresStage], a + call Func_d5d0 + ret + .asm_d537 - call ClearOAMBuffer - call Func_d57b - ld a, $7 - ld [$ffa7], a - xor a - ld [$ffa6], a - ld a, $a0 - ld [hBoardXShift], a - ld hl, $ff9e - set 5, [hl] - res 3, [hl] - ld b, $27 + call ClearOAMBuffer + call Func_d57b + ld a, $7 + ld [hWX], a + xor a + ld [hWY], a + ld a, $a0 + ld [hSCX], a + ld hl, hLCDC + set 5, [hl] + res 3, [hl] + ld b, $27 .asm_d551 - push bc - ld a, b - bit 0, b - call nz, Func_d626 - ld hl, $ffa7 - inc [hl] - inc [hl] - inc [hl] - inc [hl] - ld hl, hBoardXShift - dec [hl] - dec [hl] - dec [hl] - dec [hl] - rst $10 - pop bc - dec b - jr nz, .asm_d551 - xor a - ld [hBoardXShift], a - ld hl, $ff9e - res 5, [hl] - xor a - ld [wHighScoresStage], a - call Func_d5d0 - ret + push bc + ld a, b + bit 0, b + call nz, Func_d626 + ld hl, hWX + inc [hl] + inc [hl] + inc [hl] + inc [hl] + ld hl, hSCX + dec [hl] + dec [hl] + dec [hl] + dec [hl] + rst AdvanceFrame + pop bc + dec b + jr nz, .asm_d551 + xor a + ld [hSCX], a + ld hl, hLCDC + res 5, [hl] + xor a + ld [wHighScoresStage], a + call Func_d5d0 + ret Func_d57b: ; 0xd57b - ld a, $f0 - ld [hBoardYShift], a - xor a - ld [$ffab], a - ld a, $10 - ld [$ffad], a - rst $10 - ld a, $30 - ld hl, $6000 - ld de, $9800 - ld bc, $0040 - call LoadVRAMData - ld a, $30 - ld hl, $6200 - ld de, $9a00 - ld bc, $0040 - call LoadVRAMData - ld a, $30 - ld hl, $5800 - ld de, $9c00 - ld bc, $0040 - call LoadVRAMData - ld a, $30 - ld hl, $5a00 - ld de, $9e00 - ld bc, $0040 - call LoadVRAMData - ld b, $10 + ld a, $f0 + ld [hSCY], a + xor a + ld [hNextFrameHBlankSCX], a + ld a, $10 + ld [hNextFrameHBlankSCY], a + rst AdvanceFrame + ld a, BANK(HighScoresTilemap) + ld hl, HighScoresTilemap + deCoord 0, 0, vBGMap + ld bc, $0040 + call LoadVRAMData + ld a, BANK(HighScoresTilemap) + ld hl, HighScoresTilemap + $200 + deCoord 0, 16, vBGMap + ld bc, $0040 + call LoadVRAMData + ld a, BANK(HighScoresTilemap2) + ld hl, HighScoresTilemap2 + deCoord 0, 0, vBGWin + ld bc, $0040 + call LoadVRAMData + ld a, BANK(HighScoresTilemap2) + ld hl, HighScoresTilemap2 + $200 + deCoord 0, 16, vBGWin + ld bc, $0040 + call LoadVRAMData + ld b, $10 .asm_d5c1 - push bc - ld hl, hBoardYShift - inc [hl] - ld hl, $ffad - dec [hl] - rst $10 - pop bc - dec b - jr nz, .asm_d5c1 - ret + push bc + ld hl, hSCY + inc [hl] + ld hl, hNextFrameHBlankSCY + dec [hl] + rst AdvanceFrame + pop bc + dec b + jr nz, .asm_d5c1 + ret Func_d5d0: ; 0xd5d0 - ld b, $10 + ld b, $10 .asm_d5d2 - push bc - ld hl, hBoardYShift - dec [hl] - ld hl, $ffad - inc [hl] - rst $10 - pop bc - dec b - jr nz, .asm_d5d2 - ld a, $30 - ld hl, $63c0 - ld de, $9800 - ld bc, $0040 - call LoadVRAMData - ld a, $30 - ld hl, $6280 - ld de, $9a00 - ld bc, $0040 - call LoadVRAMData - ld a, $30 - ld hl, $5bc0 - ld de, $9c00 - ld bc, $0040 - call LoadVRAMData - ld a, $30 - ld hl, $5a80 - ld de, $9e00 - ld bc, $0040 - call LoadVRAMData - ld bc, $0009 - call Func_d68a - xor a - ld [hBoardYShift], a - ld [$ffab], a - ld [$ffad], a - ret - -INCBIN "baserom.gbc",$d626,$d626 - $d626 + push bc + ld hl, hSCY + dec [hl] + ld hl, hNextFrameHBlankSCY + inc [hl] + rst AdvanceFrame + pop bc + dec b + jr nz, .asm_d5d2 + ld a, BANK(HighScoresTilemap) + ld hl, HighScoresTilemap + $3c0 + deCoord 0, 0, vBGMap + ld bc, $0040 + call LoadVRAMData + ld a, BANK(HighScoresTilemap) + ld hl, HighScoresTilemap + $280 + deCoord 0, 16, vBGMap + ld bc, $0040 + call LoadVRAMData + ld a, BANK(HighScoresTilemap2) + ld hl, HighScoresTilemap2 + $3c0 + deCoord 0, 0, vBGWin + ld bc, $0040 + call LoadVRAMData + ld a, BANK(HighScoresTilemap2) + ld hl, HighScoresTilemap2 + $280 + deCoord 0, 16, vBGWin + ld bc, $0040 + call LoadVRAMData + ld bc, $0009 + call Func_d68a + xor a + ld [hSCY], a + ld [hNextFrameHBlankSCX], a + ld [hNextFrameHBlankSCY], a + ret Func_d626: ; 0xd626 - ld c, a - ld a, [hGameBoyColorFlag] - and a - ret z - ld a, c - srl a - sub $2 - cp $10 - ret nc - ld c, a - ld b, $0 - sla c - add c - ld c, a - ld hl, PointerTable_d65a - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld h, b - ld l, c - ld de, $0008 - ld bc, $0038 - push af - call Func_7dc - pop af - ld de, $0040 - ld bc, $0008 - call Func_7dc - ret + ld c, a + ld a, [hGameBoyColorFlag] + and a + ret z + ld a, c + srl a + sub $2 + cp $10 + ret nc + ld c, a + ld b, $0 + sla c + add c + ld c, a + ld hl, PointerTable_d65a + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hl] + ld h, b + ld l, c + ld de, $0008 + ld bc, $0038 + push af + call Func_7dc + pop af + ld de, $0040 + ld bc, $0008 + call Func_7dc + ret PointerTable_d65a: ; 0xd65a - dwb $7D00, $23 - dwb $7D40, $23 - dwb $7D80, $23 - dwb $7DC0, $23 - dwb $7E00, $23 - dwb $7E40, $23 - dwb $7E80, $23 - dwb $7EC0, $23 - dwb $7E00, $35 - dwb $7E40, $35 - dwb $7E80, $35 - dwb $7EC0, $35 - dwb $7F00, $35 - dwb $7F40, $35 - dwb $7F80, $35 - dwb $7FC0, $35 + dwb $7D00, $23 + dwb $7D40, $23 + dwb $7D80, $23 + dwb $7DC0, $23 + dwb $7E00, $23 + dwb $7E40, $23 + dwb $7E80, $23 + dwb $7EC0, $23 + dwb $7E00, $35 + dwb $7E40, $35 + dwb $7E80, $35 + dwb $7EC0, $35 + dwb $7F00, $35 + dwb $7F40, $35 + dwb $7F80, $35 + dwb $7FC0, $35 Func_d68a: ; 0xd68a - push bc - ld hl, wPokedexFlags - ld bc, (NUM_POKEMON << 8) + push bc + ld hl, wPokedexFlags + ld bc, (NUM_POKEMON << 8) .asm_d691 - bit 1, [hl] - jr z, .asm_d696 - inc c + bit 1, [hl] + jr z, .asm_d696 + inc c .asm_d696 - inc hl - dec b - jr nz, .asm_d691 - ld a, c - pop bc - cp NUM_POKEMON - ret nz - ld hl, vBGMap0 - add hl, bc - call Func_d6aa - ld hl, vBGMap1 - add hl, bc - ; fall through + inc hl + dec b + jr nz, .asm_d691 + ld a, c + pop bc + cp NUM_POKEMON + ret nz + ld hl, vBGMap + add hl, bc + call Func_d6aa + ld hl, vBGWin + add hl, bc + ; fall through Func_d6aa: ; 0xd6aa - ld a, $56 - call PutTileInVRAM - inc hl - ld a, $57 - call PutTileInVRAM - ret + ld a, $56 + call PutTileInVRAM + inc hl + ld a, $57 + call PutTileInVRAM + ret Func_d6b6: ; 0xd6b6 - ld hl, wPokedexFlags - ld bc, (NUM_POKEMON << 8) + ld hl, wPokedexFlags + ld bc, (NUM_POKEMON << 8) .asm_d6bc - bit 1, [hl] - jr z, .asm_d6c1 - inc c + bit 1, [hl] + jr z, .asm_d6c1 + inc c .asm_d6c1 - inc hl - dec b - jr nz, .asm_d6bc - ld a, c - cp NUM_POKEMON - ret nz - ld hl, $c289 - ld a, $56 - ld [hli], a - ld a, $57 - ld [hli], a - ret + inc hl + dec b + jr nz, .asm_d6bc + ld a, c + cp NUM_POKEMON + ret nz + ld hl, wc289 + ld a, $56 + ld [hli], a + ld a, $57 + ld [hli], a + ret HandleFieldSelectScreen: ; 0xd6d3 - ld a, [wScreenState] - rst $18 ; calls JumpToFuncInTable + ld a, [wScreenState] + rst JumpTable ; calls JumpToFuncInTable FieldSelectScreenFunctions: ; 0xd6d7 - dw LoadFieldSelectScreen - dw ChooseFieldToPlay - dw ExitFieldSelectScreen + dw LoadFieldSelectScreen + dw ChooseFieldToPlay + dw ExitFieldSelectScreen LoadFieldSelectScreen: ; 0xd6dd - ld a, $43 - ld [$ff9e], a - ld a, $e4 - ld [$d80c], a - ld a, $d2 - ld [$d80d], a - ld [$d80e], a - xor a - ld [hBoardXShift], a - ld [hBoardYShift], a - ld hl, FieldSelectGfxPointers - ld a, [hGameBoyColorFlag] - call LoadVideoData - call ClearOAMBuffer - ld a, $8 - ld [wFieldSelectBlinkingBorderFrame], a - call Func_b66 - ld a, $12 - call SetSongBank - ld de, $0003 - call PlaySong - call Func_588 - call Func_bbe - ld hl, wScreenState - inc [hl] - ret + ld a, $43 + ld [hLCDC], a + ld a, $e4 + ld [wd80c], a + ld a, $d2 + ld [wd80d], a + ld [wd80e], a + xor a + ld [hSCX], a + ld [hSCY], a + ld hl, FieldSelectGfxPointers + ld a, [hGameBoyColorFlag] + call LoadVideoData + call ClearOAMBuffer + ld a, $8 + ld [wFieldSelectBlinkingBorderFrame], a + call Func_b66 + ld a, $12 + call SetSongBank + ld de, $0003 + call PlaySong + call Func_588 + call Func_bbe + ld hl, wScreenState + inc [hl] + ret FieldSelectGfxPointers: ; 0xd71c - dw FieldSelectGfx_GameBoy - dw FieldSelectGfx_GameBoyColor + dw FieldSelectGfx_GameBoy + dw FieldSelectGfx_GameBoyColor FieldSelectGfx_GameBoy: ; 0xd720 - VIDEO_DATA_TILES FieldSelectScreenGfx, vTiles1 - $100, $d00 - VIDEO_DATA_TILEMAP FieldSelectTilemap, vBGMap0, $240 - db $FF, $FF ; terminators + VIDEO_DATA_TILES FieldSelectScreenGfx, vTilesSH - $100, $d00 + VIDEO_DATA_TILEMAP FieldSelectTilemap, vBGMap, $240 + db $FF, $FF ; terminators FieldSelectGfx_GameBoyColor: ; 0xd730 - VIDEO_DATA_TILES FieldSelectScreenGfx, vTiles1 - $100, $d00 - VIDEO_DATA_TILEMAP FieldSelectTilemap, vBGMap0, $240 - VIDEO_DATA_BGATTR FieldSelectBGAttributes, vBGMap0, $240 - VIDEO_DATA_PALETTES FieldSelectScreenPalettes, $48 - db $FF, $FF ; terminators + VIDEO_DATA_TILES FieldSelectScreenGfx, vTilesSH - $100, $d00 + VIDEO_DATA_TILEMAP FieldSelectTilemap, vBGMap, $240 + VIDEO_DATA_BGATTR FieldSelectBGAttributes, vBGMap, $240 + VIDEO_DATA_PALETTES FieldSelectScreenPalettes, $48 + db $FF, $FF ; terminators ChooseFieldToPlay: ; 0xd74e - call MoveFieldSelectCursor - ld hl, $583d ; todo - call AnimateBlinkingFieldSelectBorder - ld a, [hNewlyPressedButtons] - and (A_BUTTON | B_BUTTON) - ret z - ld [$d8f6], a - ld a, $18 ; number of frames to blink the border after selecting the Field - ld [wFieldSelectBlinkingBorderTimer], a - ld a, $1 - ld [wFieldSelectBlinkingBorderFrame], a - ld de, $0001 - call PlaySoundEffect - ld hl, wScreenState - inc [hl] - ret + call MoveFieldSelectCursor + ld hl, Data_d83d + call AnimateBlinkingFieldSelectBorder + ld a, [hNewlyPressedButtons] + and (A_BUTTON | B_BUTTON) + ret z + ld [wd8f6], a + ld a, $18 ; number of frames to blink the border after selecting the Field + ld [wFieldSelectBlinkingBorderTimer], a + ld a, $1 + ld [wFieldSelectBlinkingBorderFrame], a + lb de, $00, $01 + call PlaySoundEffect + ld hl, wScreenState + inc [hl] + ret ExitFieldSelectScreen: ; 0xd774 - ld a, [$d8f6] ; this holds the button that was pressed (A or B) - bit BIT_A_BUTTON, a - jr z, .didntPressA - ld hl, $5846 - call AnimateBlinkingFieldSelectBorder - ld a, [wFieldSelectBlinkingBorderTimer] - dec a - ld [wFieldSelectBlinkingBorderTimer], a - ret nz + ld a, [wd8f6] ; this holds the button that was pressed (A or B) + bit BIT_A_BUTTON, a + jr z, .didntPressA + ld hl, Data_d846 + call AnimateBlinkingFieldSelectBorder + ld a, [wFieldSelectBlinkingBorderTimer] + dec a + ld [wFieldSelectBlinkingBorderTimer], a + ret nz .didntPressA - ld a, [hJoypadState] - push af - call Func_cb5 - call Func_576 - ld a, [$d8f6] - bit BIT_A_BUTTON, a - jr z, .pressedB - ld a, [wSelectedFieldIndex] - ld c, a - ld b, $0 - ld hl, StartingStages - add hl, bc - ld a, [hl] - ld [wCurrentStage], a - pop af - xor a - ld [$d7c2], a - ld hl, wPartyMons - ld de, $a268 - ld bc, $04c3 - call SaveData - xor a - ld [$d7c1], a - ; Start a round of Pinball! Yayy - ld a, SCREEN_PINBALL_GAME - ld [wCurrentScreen], a - xor a - ld [wScreenState], a - ret + ld a, [hJoypadState] + push af + call Func_cb5 + call Func_576 + ld a, [wd8f6] + bit BIT_A_BUTTON, a + jr z, .pressedB + ld a, [wSelectedFieldIndex] + ld c, a + ld b, $0 + ld hl, StartingStages + add hl, bc + ld a, [hl] + ld [wCurrentStage], a + pop af + xor a + ld [wd7c2], a + ld hl, wPartyMons + ld de, sSaveGame + ld bc, $04c3 + call SaveData + xor a + ld [wd7c1], a + ; Start a round of Pinball! Yayy + ld a, SCREEN_PINBALL_GAME + ld [wCurrentScreen], a + xor a + ld [wScreenState], a + ret + .pressedB - pop af - ld a, SCREEN_TITLESCREEN - ld [wCurrentScreen], a - xor a - ld [wScreenState], a - ret + pop af + ld a, SCREEN_TITLESCREEN + ld [wCurrentScreen], a + xor a + ld [wScreenState], a + ret StartingStages: ; 0xd7d1 ; wSelectedFieldIndex is used to index this array - db STAGE_RED_FIELD_BOTTOM, STAGE_BLUE_FIELD_BOTTOM + db STAGE_RED_FIELD_BOTTOM, STAGE_BLUE_FIELD_BOTTOM MoveFieldSelectCursor: ; 0xd7d3 ; When the player presses Right or Left, the stage is ; illuminated with a blinking border. This function keeps tracks ; of which field is currently selected. - ld a, [hPressedButtons] - ld b, a - ld a, [wSelectedFieldIndex] - bit BIT_D_LEFT, b - jr z, .didntPressLeft - and a - ret z ; if cursor is already hovering over Red stage, don't do anything - dec a ; move cursor over Red stage - ld [wSelectedFieldIndex], a - ld de, $003c - call PlaySoundEffect - ret + ld a, [hPressedButtons] + ld b, a + ld a, [wSelectedFieldIndex] + bit BIT_D_LEFT, b + jr z, .didntPressLeft + and a + ret z ; if cursor is already hovering over Red stage, don't do anything + dec a ; move cursor over Red stage + ld [wSelectedFieldIndex], a + lb de, $00, $3c + call PlaySoundEffect + ret + .didntPressLeft - bit BIT_D_RIGHT, b - ret z - cp $1 - ret z ; if cursor is already hovering over Blue stage, don't do anything - inc a ; move cursor over Red stage - ld [wSelectedFieldIndex], a - ld de, $003d - call PlaySoundEffect - ret + bit BIT_D_RIGHT, b + ret z + cp $1 + ret z ; if cursor is already hovering over Blue stage, don't do anything + inc a ; move cursor over Red stage + ld [wSelectedFieldIndex], a + lb de, $00, $3d + call PlaySoundEffect + ret AnimateBlinkingFieldSelectBorder: ; 0xd7fb ; This makes the border of the currently-selected Field blink in the Field Select screen. - push hl - ld a, [wSelectedFieldIndex] - sla a - ld c, a - ld b, $0 - ld hl, $584f ; todo - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [$d915] - sla a - ld e, a - ld d, $0 - pop hl - push hl - add hl, de - ld a, [hl] - call LoadOAMData - ld a, [wFieldSelectBlinkingBorderFrame] - dec a - jr nz, .asm_d838 - inc hl - inc hl - ld a, [hl] - and a - jr z, .asm_d82b - ld a, [$d915] - inc a + push hl + ld a, [wSelectedFieldIndex] + sla a + ld c, a + ld b, $0 + ld hl, Data_d84f + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [wd915] + sla a + ld e, a + ld d, $0 + pop hl + push hl + add hl, de + ld a, [hl] + call LoadOAMData + ld a, [wFieldSelectBlinkingBorderFrame] + dec a + jr nz, .asm_d838 + inc hl + inc hl + ld a, [hl] + and a + jr z, .asm_d82b + ld a, [wd915] + inc a .asm_d82b - ld [$d915], a - sla a - ld c, a - ld b, $0 - pop hl - push hl - inc hl - add hl, bc - ld a, [hl] + ld [wd915], a + sla a + ld c, a + ld b, $0 + pop hl + push hl + inc hl + add hl, bc + ld a, [hl] .asm_d838 - ld [wFieldSelectBlinkingBorderFrame], a - pop hl - ret + ld [wFieldSelectBlinkingBorderFrame], a + pop hl + ret + +Data_d83d: + dr $d83d, $d846 -INCBIN "baserom.gbc",$d83d,$d853 - $d83d +Data_d846: + dr $d846, $d84f + +Data_d84f: + dr $d84f, $d853 HandlePinballGame: ; 0xd853 - ld a, [wScreenState] - rst $18 ; calls JumpToFuncInTable + ld a, [wScreenState] + rst JumpTable ; calls JumpToFuncInTable PinballGameScreenFunctions: ; 0xd857 - dw Func_d861 - dw Func_d87f - dw Func_d909 - dw Func_da36 - dw Func_dab2 + dw Func_d861 + dw Func_d87f + dw Func_d909 + dw Func_da36 + dw Func_dab2 Func_d861: ; 0xd861 - xor a - ld [$d908], a - ld [$ff8a], a - ld a, Bank(InitializeStage) - ld hl, InitializeStage - call BankSwitch - call Func_30e8 - ld a, $1 - ld [$d85d], a - ld [$d4aa], a - ld hl, wScreenState - inc [hl] - ret + xor a + ld [wd908], a + callba InitializeStage + call Fillwc600WithBlackTile + ld a, $1 + ld [wd85d], a + ld [wd4aa], a + ld hl, wScreenState + inc [hl] + ret Func_d87f: ; 0xd87f - ld a, $67 - ld [$ff9e], a - ld a, $e4 - ld [$d80c], a - ld a, $e1 - ld [$d80d], a - ld a, $e4 - ld [$d80e], a - ld a, [$d7ab] - ld [hBoardXShift], a - xor a - ld [hBoardYShift], a - ld a, $7 - ld [$ffa7], a - ld a, $83 - ld [$ffa2], a - ld [$ffa8], a - ld a, $ff - ld [$ffaf], a - ld hl, $ff9f - set 6, [hl] - ld hl, $ffff - set 1, [hl] - ld a, $1 - ld [$ffb0], a - ld [$ff8a], a - ld a, Bank(StartBallForStage) - ld hl, StartBallForStage - call BankSwitch - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_e6c2) - ld hl, Func_e6c2 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_ed5e) - ld hl, Func_ed5e - call BankSwitch - call ClearOAMBuffer - ld [$ff8a], a - ld a, Bank(Func_84b7) - ld hl, Func_84b7 - call BankSwitch - ld a, [$d849] - and a - call nz, Func_e5d - ld a, $1 - ld [$d4aa], a - xor a - ld [$d7c1], a - call Func_b66 - call Func_588 - call Func_bbe - ld hl, wScreenState - inc [hl] - ret + ld a, $67 + ld [hLCDC], a + ld a, $e4 + ld [wd80c], a + ld a, $e1 + ld [wd80d], a + ld a, $e4 + ld [wd80e], a + ld a, [wd7ab] + ld [hSCX], a + xor a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $83 + ld [hLYC], a + ld [hLastLYC], a + ld a, $ff + ld [hLCDCMask], a + ld hl, hSTAT + set 6, [hl] + ld hl, rIE + set 1, [hl] + ld a, $1 + ld [hHBlankRoutine], a + callba StartBallForStage + callba LoadStageCollisionAttributes + callba Func_e6c2 + callba Func_ed5e + call ClearOAMBuffer + callba Func_84b7 + ld a, [wd849] + and a + call nz, Func_e5d + ld a, $1 + ld [wd4aa], a + xor a + ld [wd7c1], a + call Func_b66 + call Func_588 + call Func_bbe + ld hl, wScreenState + inc [hl] + ret Func_d909: ; 0xd909 ; main loop for stage logic - xor a - ld [wFlipperCollision], a - ld [$d7eb], a - call ApplyGravityToBall - call LimitBallVelocity - xor a - ld [$d7e9], a - call HandleTilts - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(HandleFlippers) - ld hl, HandleFlippers - call nz, BankSwitch ; only perform flipper routines on the lower-half of stages - ld a, [wFlipperCollision] - and a - ld a, [$d7ea] - push af - call Func_22b5 ; collision stuff - pop af - jr z, .noFlipperCollision - ld [$d7ea], a + xor a + ld [wFlipperCollision], a + ld [wd7eb], a + call ApplyGravityToBall + call LimitBallVelocity + xor a + ld [wd7e9], a + call HandleTilts + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(HandleFlippers) + ld hl, HandleFlippers + call nz, BankSwitch ; only perform flipper routines on the lower-half of stages + ld a, [wFlipperCollision] + and a + ld a, [wd7ea] + push af + call Func_22b5 ; collision stuff + pop af + jr z, .noFlipperCollision + ld [wd7ea], a .noFlipperCollision - call Func_2720 ; not collision-related - call Func_281c ; not collision-related - ld hl, wKeyConfigMenu - call IsKeyPressed - jr z, .didntPressMenuKey - ld de, $034c - call PlaySoundEffect - ld [$ff8a], a - ld a, Bank(HandleInGameMenu) - ld hl, HandleInGameMenu - call BankSwitch - jp z, SaveGame + call Func_2720 ; not collision-related + call Func_281c ; not collision-related + ld hl, wKeyConfigMenu + call IsKeyPressed + jr z, .didntPressMenuKey + lb de, $03, $4c + call PlaySoundEffect + callba HandleInGameMenu + jp z, SaveGame .didntPressMenuKey - ld a, [$d7e9] ; check for collision flag - and a - jr z, .asm_d9a2 - call ApplyTiltForces - call LoadBallVelocity - ld a, [$d7ea] - call Func_21e7 - call Func_222b - ld a, [wFlipperCollision] - and a - jr z, .asm_d993 - ld hl, $d7bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, e - sub l - ld e, a - ld a, d - sbc h - ld d, a - ld hl, $d7ba - ld a, [hli] - ld h, [hl] - ld l, a - ld a, c - add l - ld c, a - ld a, b - adc h - ld b, a - jr .asm_d999 + ld a, [wd7e9] ; check for collision flag + and a + jr z, .asm_d9a2 + call ApplyTiltForces + call LoadBallVelocity + ld a, [wd7ea] + call Func_21e7 + call Func_222b + ld a, [wFlipperCollision] + and a + jr z, .asm_d993 + ld hl, wd7bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, e + sub l + ld e, a + ld a, d + sbc h + ld d, a + ld hl, wd7ba + ld a, [hli] + ld h, [hl] + ld l, a + ld a, c + add l + ld c, a + ld a, b + adc h + ld b, a + jr .asm_d999 + .asm_d993 - ld a, [$d7f8] - and a - jr nz, .asm_d9a2 + ld a, [wd7f8] + and a + jr nz, .asm_d9a2 .asm_d999 - ld a, [$d7ea] - call Func_21e5 - call SetBallVelocity + ld a, [wd7ea] + call Func_21e5 + call SetBallVelocity .asm_d9a2 - call MoveBallPosition - ld [$ff8a], a - ld a, Bank(Func_ece9) - ld hl, Func_ece9 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_84b7) - ld hl, Func_84b7 - call BankSwitch - call Func_33e3 - ld a, [$d5cb] - and a - jr nz, .asm_d9e9 - ld [$ff8a], a - ld a, Bank(Func_85c7) - ld hl, Func_85c7 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_8650) - ld hl, Func_8650 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_8645) - ld hl, Func_8645 - call BankSwitch - call Func_dba9 - call Func_dc7c - call Func_dcb4 + call MoveBallPosition + callba CheckStageTransition + callba Func_84b7 + call Func_33e3 + ld a, [wd5cb] + and a + jr nz, .asm_d9e9 + callba Func_85c7 + callba Func_8650 + callba Func_8645 + call Func_dba9 + call Func_dc7c + call Func_dcb4 .asm_d9e9 - ld a, [$d57d] - and a - ld [$ff8a], a - ld a, Bank(Func_86a4) - ld hl, Func_86a4 - call nz, BankSwitch - ld a, [$d4ae] - and a - ret z - xor a - ld [$d4ae], a - ld hl, wScreenState - inc [hl] - ret + ld a, [wd57d] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_86a4) + ld hl, Func_86a4 + call nz, BankSwitch + ld a, [wd4ae] + and a + ret z + xor a + ld [wd4ae], a + ld hl, wScreenState + inc [hl] + ret SaveGame: ; 0xda05 - ld de, $0000 - call PlaySong - ld bc, $0004 - call Func_93f - call Func_cb5 - ld a, [$d849] - and a - call nz, Func_e5d - call Func_576 - ld hl, $ff9f - res 6, [hl] - ld hl, $ffff - res 1, [hl] - xor a - ld [$d4aa], a - ld a, SCREEN_TITLESCREEN - ld [wCurrentScreen], a - xor a - ld [wScreenState], a - ret + ld de, $0000 + call PlaySong + ld bc, $0004 + call AdvanceFrames + call Func_cb5 + ld a, [wd849] + and a + call nz, Func_e5d + call Func_576 + ld hl, hSTAT + res 6, [hl] + ld hl, rIE + res 1, [hl] + xor a + ld [wd4aa], a + ld a, SCREEN_TITLESCREEN + ld [wCurrentScreen], a + xor a + ld [wScreenState], a + ret Func_da36: ; 0xda36 - xor a - ld [hJoypadState], a - ld [hNewlyPressedButtons], a - ld [hPressedButtons], a - ld [wFlipperCollision], a - ld [$d7eb], a - xor a - ld [$d7e9], a - ld [$d548], a - ld [$d549], a - call HandleTilts - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(HandleFlippers) - ld hl, HandleFlippers - call nz, BankSwitch - ld [$ff8a], a - ld a, Bank(Func_84b7) - ld hl, Func_84b7 - call BankSwitch - call Func_33e3 - ld [$ff8a], a - ld a, Bank(Func_85c7) - ld hl, Func_85c7 - call BankSwitch - ld a, [$d5ca] - and a - ret nz - ld a, [$d4c9] - and a - jr z, .asm_daa9 - ld a, [$d49c] - cp $2 - jr z, .asm_daa9 - call Func_f533 - ld a, [$d49c] - and a - jr z, .asm_daa9 - ld a, $2 - ld [$d49c], a - ld [$d4aa], a - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $28db - call Func_32aa - ret + xor a + ld [hJoypadState], a + ld [hNewlyPressedButtons], a + ld [hPressedButtons], a + ld [wFlipperCollision], a + ld [wd7eb], a + xor a + ld [wd7e9], a + ld [wd548], a + ld [wd549], a + call HandleTilts + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(HandleFlippers) + ld hl, HandleFlippers + call nz, BankSwitch + callba Func_84b7 + call Func_33e3 + callba Func_85c7 + ld a, [wd5ca] + and a + ret nz + ld a, [wd4c9] + and a + jr z, .asm_daa9 + ld a, [wd49c] + cp $2 + jr z, .asm_daa9 + call Func_f533 + ld a, [wd49c] + and a + jr z, .asm_daa9 + ld a, $2 + ld [wd49c], a + ld [wd4aa], a + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, ShootAgainText + call LoadTextHeader + ret + .asm_daa9 - xor a - ld [$d49c], a - ld hl, wScreenState - inc [hl] - ret + xor a + ld [wd49c], a + ld hl, wScreenState + inc [hl] + ret Func_dab2: ; 0xdab2 - xor a - ld [$d803], a - ld a, [$d616] - and a - jp nz, TransitionToHighScoresScreen - ld a, [$d495] - and a - jr nz, .asm_dae6 - ld a, [$d496] - and a - jr nz, .asm_db28 - call Func_cb5 - ld a, [$d849] - and a - call z, Func_e5d - call Func_576 - ld hl, $ff9f - res 6, [hl] - ld hl, $ffff - res 1, [hl] - ld a, $1 - ld [wScreenState], a - ret + xor a + ld [wd803], a + ld a, [wGameOver] + and a + jp nz, TransitionToHighScoresScreen + ld a, [wd495] + and a + jr nz, .asm_dae6 + ld a, [wd496] + and a + jr nz, .asm_db28 + call Func_cb5 + ld a, [wd849] + and a + call z, Func_e5d + call Func_576 + ld hl, hSTAT + res 6, [hl] + ld hl, rIE + res 1, [hl] + ld a, $1 + ld [wScreenState], a + ret + .asm_dae6 - ld de, $0000 - call PlaySong - ld bc, $0004 - call Func_93f - call Func_cb5 - ld a, [$d849] - and a - call nz, Func_e5d - call Func_576 - ld hl, $ff9f - res 6, [hl] - ld hl, $ffff - res 1, [hl] - ld a, [wCurrentStage] - ld [$d4ad], a - ld a, [wStageCollisionState] - ld [$d4b0], a - ld a, [$d497] - ld [wCurrentStage], a - xor a - ld [$d496], a - ld [$d495], a - ld a, $0 - ld [wScreenState], a - ret + ld de, $0000 + call PlaySong + ld bc, $0004 + call AdvanceFrames + call Func_cb5 + ld a, [wd849] + and a + call nz, Func_e5d + call Func_576 + ld hl, hSTAT + res 6, [hl] + ld hl, rIE + res 1, [hl] + ld a, [wCurrentStage] + ld [wd4ad], a + ld a, [wStageCollisionState] + ld [wd4b0], a + ld a, [wd497] + ld [wCurrentStage], a + xor a + ld [wd496], a + ld [wd495], a + ld a, $0 + ld [wScreenState], a + ret + .asm_db28 - ld de, $0000 - call PlaySong - ld bc, $0004 - call Func_93f - call Func_cb5 - ld a, [$d849] - and a - call nz, Func_e5d - call Func_576 - ld hl, $ff9f - res 6, [hl] - ld hl, $ffff - res 1, [hl] - ld a, [$d4ad] - ld [wCurrentStage], a - ld a, [$d4b0] - ld [wStageCollisionState], a - ld a, $1 - ld [wScreenState], a - ret + ld de, $0000 + call PlaySong + ld bc, $0004 + call AdvanceFrames + call Func_cb5 + ld a, [wd849] + and a + call nz, Func_e5d + call Func_576 + ld hl, hSTAT + res 6, [hl] + ld hl, rIE + res 1, [hl] + ld a, [wd4ad] + ld [wCurrentStage], a + ld a, [wd4b0] + ld [wStageCollisionState], a + ld a, $1 + ld [wScreenState], a + ret TransitionToHighScoresScreen: ; 0xdb5d - xor a - ld [$d616], a - ld de, $0000 - call PlaySong - ld bc, $0004 - call Func_93f - call Func_cb5 - call Func_576 - ld hl, $ff9f - res 6, [hl] - ld hl, $ffff - res 1, [hl] - xor a - ld [$d4aa], a - ld a, [wCurrentStage] - ld c, a - ld b, $0 - ld hl, HighScoresStageMapping - add hl, bc - ld a, [hl] - ld [wHighScoresStage], a - ld a, SCREEN_HIGH_SCORES - ld [wCurrentScreen], a - xor a - ld [wScreenState], a - ret + xor a + ld [wGameOver], a + ld de, $0000 + call PlaySong + ld bc, $0004 + call AdvanceFrames + call Func_cb5 + call Func_576 + ld hl, hSTAT + res 6, [hl] + ld hl, rIE + res 1, [hl] + xor a + ld [wd4aa], a + ld a, [wCurrentStage] + ld c, a + ld b, $0 + ld hl, HighScoresStageMapping + add hl, bc + ld a, [hl] + ld [wHighScoresStage], a + ld a, SCREEN_HIGH_SCORES + ld [wCurrentScreen], a + xor a + ld [wScreenState], a + ret HighScoresStageMapping: ; 0xdb99 ; Determines which stage the high scores screen will start in, ; based on the map the player ended in. ; See wHighScoresStage for more info. - db $00 ; STAGE_RED_FIELD_TOP - db $00 ; STAGE_RED_FIELD_BOTTOM - db $00 - db $00 - db $01 ; STAGE_BLUE_FIELD_TOP - db $01 ; STAGE_BLUE_FIELD_BOTTOM - db $00 ; STAGE_GENGAR_BONUS - db $00 ; STAGE_GENGAR_BONUS - db $00 ; STAGE_MEWTWO_BONUS - db $00 ; STAGE_MEWTWO_BONUS - db $00 ; STAGE_MEOWTH_BONUS - db $00 ; STAGE_MEOWTH_BONUS - db $00 ; STAGE_DIGLETT_BONUS - db $00 ; STAGE_DIGLETT_BONUS - db $00 ; STAGE_SEEL_BONUS - db $00 ; STAGE_SEEL_BONUS + db $00 ; STAGE_RED_FIELD_TOP + db $00 ; STAGE_RED_FIELD_BOTTOM + db $00 + db $00 + db $01 ; STAGE_BLUE_FIELD_TOP + db $01 ; STAGE_BLUE_FIELD_BOTTOM + db $00 ; STAGE_GENGAR_BONUS + db $00 ; STAGE_GENGAR_BONUS + db $00 ; STAGE_MEWTWO_BONUS + db $00 ; STAGE_MEWTWO_BONUS + db $00 ; STAGE_MEOWTH_BONUS + db $00 ; STAGE_MEOWTH_BONUS + db $00 ; STAGE_DIGLETT_BONUS + db $00 ; STAGE_DIGLETT_BONUS + db $00 ; STAGE_SEEL_BONUS + db $00 ; STAGE_SEEL_BONUS Func_dba9: ; 0xdba9 - ld a, $85 - ld [$c644], a - ld a, [$d49d] - xor $3 - inc a - add $86 - ld [$c645], a - ret - -Func_dbba: ; 0xdbba - ld a, $1 - ld [wBallSaverIconOn], a - ld a, $ff - ld [$d4a2], a - ld a, $3b - ld [wBallSaverTimerFrames], a - ld a, $14 - ld [wBallSaverTimerSeconds], a - ld a, $2 - ld [$d4a5], a - ret + ld a, $85 + ld [wc600 + $44], a + ld a, [wd49d] + xor $3 + inc a + add $86 + ld [wc600 + $45], a + ret + +Start20SecondSaverTimer: ; 0xdbba + ld a, $1 + ld [wBallSaverIconOn], a + ld a, $ff + ld [wd4a2], a + ld a, 59 + ld [wBallSaverTimerFrames], a + ld a, 20 + ld [wBallSaverTimerSeconds], a + ld a, $2 + ld [wNumTimesBallSavedTextWillDisplay], a + ret InitBallSaverForCatchEmMode: ; 0xdbd4 - ld a, [wBallSaverTimerFrames] - ld [wBallSaverTimerFramesBackup], a - ld a, [wBallSaverTimerSeconds] - ld [wBallSaverTimerSecondsBackup], a - ld a, [$d4a5] - ld [$d4a8], a - ld a, $0 - ld [wBallSaverIconOn], a - ld a, $ff - ld [$d4a2], a - ld a, 59 - ld [wBallSaverTimerFrames], a - ld a, 60 - ld [wBallSaverTimerSeconds], a - ld a, $ff - ld [$d4a5], a - ret - -Func_dc00: ; 0xdc00 - ld a, [wBallSaverTimerFramesBackup] - ld [wBallSaverTimerFrames], a - ld a, [wBallSaverTimerSecondsBackup] - ld [wBallSaverTimerSeconds], a - ld a, [$d4a8] - ld [$d4a5], a - ld a, [wBallSaverTimerSeconds] - and a - jr z, .asm_dc1a - ld a, $1 + ld a, [wBallSaverTimerFrames] + ld [wBallSaverTimerFramesBackup], a + ld a, [wBallSaverTimerSeconds] + ld [wBallSaverTimerSecondsBackup], a + ld a, [wNumTimesBallSavedTextWillDisplay] + ld [wd4a8], a + ld a, $0 + ld [wBallSaverIconOn], a + ld a, $ff + ld [wd4a2], a + ld a, 59 + ld [wBallSaverTimerFrames], a + ld a, 60 + ld [wBallSaverTimerSeconds], a + ld a, $ff + ld [wNumTimesBallSavedTextWillDisplay], a + ret + +RestoreBallSaverAfterCatchEmMode: ; 0xdc00 + ld a, [wBallSaverTimerFramesBackup] + ld [wBallSaverTimerFrames], a + ld a, [wBallSaverTimerSecondsBackup] + ld [wBallSaverTimerSeconds], a + ld a, [wd4a8] + ld [wNumTimesBallSavedTextWillDisplay], a + ld a, [wBallSaverTimerSeconds] + and a + jr z, .asm_dc1a + ld a, $1 .asm_dc1a - ld [wBallSaverIconOn], a - ld a, [wBallSaverTimerSeconds] - ld c, $0 - cp $2 - jr c, .asm_dc34 - ld c, $4 - cp $6 - jr c, .asm_dc34 - ld c, $10 - cp $b - jr c, .asm_dc34 - ld c, $ff + ld [wBallSaverIconOn], a + ld a, [wBallSaverTimerSeconds] + ld c, $0 + cp $2 + jr c, .asm_dc34 + ld c, $4 + cp $6 + jr c, .asm_dc34 + ld c, $10 + cp $b + jr c, .asm_dc34 + ld c, $ff .asm_dc34 - ld a, c - ld [$d4a2], a - ld a, [wCurrentStage] - bit 0, a - ret z - ld [$ff8a], a - ld a, Bank(Func_14707) - ld hl, Func_14707 - call BankSwitch - ret - -INCBIN "baserom.gbc",$dc49,$dc49 - $dc49 - -Func_dc49: ; 0xdc49 - ld a, [wCurrentStage] - rst $18 ; calls JumpToFuncInTable + ld a, c + ld [wd4a2], a + ld a, [wCurrentStage] + bit 0, a + ret z + callba Func_14707 + ret + +HandleBallLoss: ; 0xdc49 + ld a, [wCurrentStage] + rst JumpTable ; calls JumpToFuncInTable CallTable_dc4d: ; 0xdc4d - ; STAGE_RED_FIELD_TOP - dw Func_dd76 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_dd76 - - dw Func_de4e - - dw Func_de4e - - ; STAGE_BLUE_FIELD_TOP - dw Func_de4f - - ; STAGE_BLUE_FIELD_TOP - dw Func_de4f - - ; STAGE_GENGAR_BONUS - dw Func_df1a - - ; STAGE_GENGAR_BONUS - dw Func_df1a - - ; STAGE_MEWTWO_BONUS - dw Func_df7e - - ; STAGE_MEWTWO_BONUS - dw Func_df7e - - ; STAGE_MEOWTH_BONUS - dw Func_dfe2 - - ; STAGE_MEOWTH_BONUS - dw Func_dfe2 - - ; STAGE_DIGLETT_BONUS - dw Func_e056 - - ; STAGE_DIGLETT_BONUS - dw Func_e056 - - ; STAGE_SEEL_BONUS - dw Func_e08b - - ; STAGE_SEEL_BONUS - dw Func_e08b + ; STAGE_RED_FIELD_TOP + dw RedField_HandleBallLoss + ; STAGE_RED_FIELD_BOTTOM + dw RedField_HandleBallLoss + dw Func_de4e + dw Func_de4e + ; STAGE_BLUE_FIELD_TOP + dw BlueField_HandleBallLoss + ; STAGE_BLUE_FIELD_TOP + dw BlueField_HandleBallLoss + ; STAGE_GENGAR_BONUS + dw Func_df1a + ; STAGE_GENGAR_BONUS + dw Func_df1a + ; STAGE_MEWTWO_BONUS + dw Func_df7e + ; STAGE_MEWTWO_BONUS + dw Func_df7e + ; STAGE_MEOWTH_BONUS + dw Func_dfe2 + ; STAGE_MEOWTH_BONUS + dw Func_dfe2 + ; STAGE_DIGLETT_BONUS + dw Func_e056 + ; STAGE_DIGLETT_BONUS + dw Func_e056 + ; STAGE_SEEL_BONUS + dw Func_e08b + ; STAGE_SEEL_BONUS + dw Func_e08b Func_dc6d: ; 0xdc6d - push de - call Func_30e8 - call Func_30db - ld hl, $d5dc - pop de - call Func_32aa - ret - -INCBIN "baserom.gbc",$dc7c,$dc7c - $dc7c + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + pop de + call LoadTextHeader + ret Func_dc7c: ; 0xdc7c - ld hl, $c640 - ld a, $83 - ld [hli], a - ld a, $81 - ld [hli], a - ld a, $81 - ld [hl], a - ld a, [wNumPartyMons] - call ConvertHexByteToDecWord - ld hl, $c641 - ld c, $1 - ld a, d - call .asm_dca0 - ld a, e - swap a - call .asm_dca0 - ld a, e - ld c, $0 + ld hl, wc600 + $40 + ld a, $83 + ld [hli], a + ld a, $81 + ld [hli], a + ld a, $81 + ld [hl], a + ld a, [wNumPartyMons] + call ConvertHexByteToDecWord + ld hl, wc600 + $41 + ld c, $1 + ld a, d + call .asm_dca0 + ld a, e + swap a + call .asm_dca0 + ld a, e + ld c, $0 .asm_dca0 - and $f - jr nz, .asm_dca7 - ld a, c - and a - ret nz + and $f + jr nz, .asm_dca7 + ld a, c + and a + ret nz .asm_dca7 - ld c, $0 - add $86 - ld [hli], a - ret + ld c, $0 + add $86 + ld [hli], a + ret -INCBIN "baserom.gbc",$dcad,$dcb4 - $dcad +Data_dcad: +; BCD powers of 2 + db $01, $02, $04, $08, $16, $32, $64 Func_dcb4: ; 0xdcb4 - ld a, [$d517] - cp $f - ld a, $81 - jr nz, .asm_dcbf - ld a, $84 + ld a, [wd517] + cp $f + ld a, $81 + jr nz, .asm_dcbf + ld a, $84 .asm_dcbf - ld [$c646], a - ret + ld [wc600 + $46], a + ret LoadBallGfx: ; 0xdcc3 - xor a - ld [$d4c8], a - ld a, [wBallType] - cp GREAT_BALL - jr nc, .notPokeBall - ld a, Bank(PinballPokeballGfx) - ld hl, PinballPokeballGfx - ld de, $8400 - ld bc, $0200 - call Func_735 - ret + xor a + ld [wd4c8], a + ld a, [wBallType] + cp GREAT_BALL + jr nc, .notPokeBall + ld a, Bank(PinballPokeballGfx) + ld hl, PinballPokeballGfx + ld de, vTilesOB tile $40 + ld bc, $0200 + call LoadOrCopyVRAMData + ret + .notPokeBall - cp ULTRA_BALL - jr nc, .notGreatBall - ld a, Bank(PinballGreatballGfx) - ld hl, PinballGreatballGfx - ld de, $8400 - ld bc, $0200 - call Func_735 - ret + cp ULTRA_BALL + jr nc, .notGreatBall + ld a, Bank(PinballGreatballGfx) + ld hl, PinballGreatballGfx + ld de, vTilesOB tile $40 + ld bc, $0200 + call LoadOrCopyVRAMData + ret + .notGreatBall - cp MASTER_BALL - jr nc, .notUltraBall - ld a, Bank(PinballUltraballGfx) - ld hl, PinballUltraballGfx - ld de, $8400 - ld bc, $0200 - call Func_735 - ret + cp MASTER_BALL + jr nc, .notUltraBall + ld a, Bank(PinballUltraballGfx) + ld hl, PinballUltraballGfx + ld de, vTilesOB tile $40 + ld bc, $0200 + call LoadOrCopyVRAMData + ret + .notUltraBall - ld a, Bank(PinballMasterballGfx) - ld hl, PinballMasterballGfx - ld de, $8400 - ld bc, $0200 - call Func_735 - ret + ld a, Bank(PinballMasterballGfx) + ld hl, PinballMasterballGfx + ld de, vTilesOB tile $40 + ld bc, $0200 + call LoadOrCopyVRAMData + ret LoadMiniBallGfx: ; 0xdd12 - ld a, $1 - ld [$d4c8], a - ld a, [wBallType] - cp GREAT_BALL - jr nc, .notPokeBall - ld a, Bank(PinballPokeballMiniGfx) - ld hl, PinballPokeballMiniGfx - ld de, $8400 - ld bc, $0200 - call Func_735 - ret + ld a, $1 + ld [wd4c8], a + ld a, [wBallType] + cp GREAT_BALL + jr nc, .notPokeBall + ld a, Bank(PinballPokeballMiniGfx) + ld hl, PinballPokeballMiniGfx + ld de, vTilesOB tile $40 + ld bc, $0200 + call LoadOrCopyVRAMData + ret + .notPokeBall - cp ULTRA_BALL - jr nc, .notGreatBall - ld a, Bank(PinballGreatballMiniGfx) - ld hl, PinballGreatballMiniGfx - ld de, $8400 - ld bc, $0200 - call Func_735 - ret + cp ULTRA_BALL + jr nc, .notGreatBall + ld a, Bank(PinballGreatballMiniGfx) + ld hl, PinballGreatballMiniGfx + ld de, vTilesOB tile $40 + ld bc, $0200 + call LoadOrCopyVRAMData + ret + .notGreatBall - cp MASTER_BALL - jr nc, .notUltraBall - ld a, Bank(PinballUltraballMiniGfx) - ld hl, PinballUltraballMiniGfx - ld de, $8400 - ld bc, $0200 - call Func_735 - ret + cp MASTER_BALL + jr nc, .notUltraBall + ld a, Bank(PinballUltraballMiniGfx) + ld hl, PinballUltraballMiniGfx + ld de, vTilesOB tile $40 + ld bc, $0200 + call LoadOrCopyVRAMData + ret + .notUltraBall - ld a, Bank(PinballMasterballMiniGfx) - ld hl, PinballMasterballMiniGfx - ld de, $8400 - ld bc, $0200 - call Func_735 - ret + ld a, Bank(PinballMasterballMiniGfx) + ld hl, PinballMasterballMiniGfx + ld de, vTilesOB tile $40 + ld bc, $0200 + call LoadOrCopyVRAMData + ret Func_dd62: ; 0xdd62 - ld a, $2 - ld [$d4c8], a - ld a, $2a - ld hl, $5800 - ld de, $8400 - ld bc, $0200 - call Func_735 - ret - -Func_dd76: ; 0xdd76 - ld a, [wBallSaverTimerFrames] - ld hl, wBallSaverTimerSeconds - or [hl] - jr z, .asm_dda3 - ld a, [$d4a5] - bit 7, a - jr nz, .asm_dd9c - dec a - ld [$d4a5], a - push af - ld de, $28c9 - call Func_dc6d - pop af - jr nz, .asm_dd9c - ld a, $1 - ld [wBallSaverTimerFrames], a - ld [wBallSaverTimerSeconds], a -.asm_dd9c - ld de, $1502 - call PlaySoundEffect - ret -.asm_dda3 - ld de, $0000 - call PlaySong - ld bc, $001e - call Func_93f - ld de, $2524 - call PlaySoundEffect - call Func_dbba - ld a, $1 - ld [$d4c9], a - xor a - ld [$d4de], a - ld [$d4df], a - call Func_ddfd - ld a, [$d49b] - and a - jr z, .asm_dddd - dec a - ld [$d49b], a - ld a, $1 - ld [$d49c], a - ld de, $28ee - call Func_dc6d - ret + ld a, $2 + ld [wd4c8], a + ld a, $2a + ld hl, PinballBallMiniGfx + ld de, vTilesOB tile $40 + ld bc, $0200 + call LoadOrCopyVRAMData + ret + +RedField_HandleBallLoss: ; 0xdd76 + ld a, [wBallSaverTimerFrames] + ld hl, wBallSaverTimerSeconds + or [hl] + jr z, .rip + ld a, [wNumTimesBallSavedTextWillDisplay] + bit 7, a + jr nz, .skip_save_text + dec a + ld [wNumTimesBallSavedTextWillDisplay], a + push af + ld de, BallSavedText + call Func_dc6d + pop af + jr nz, .skip_save_text + ld a, $1 + ld [wBallSaverTimerFrames], a + ld [wBallSaverTimerSeconds], a +.skip_save_text + lb de, $15, $02 + call PlaySoundEffect + ret + +.rip + ld de, $0000 + call PlaySong + ld bc, $001e + call AdvanceFrames + lb de, $25, $24 + call PlaySoundEffect + call Start20SecondSaverTimer + ld a, $1 + ld [wd4c9], a + xor a + ld [wd4de], a + ld [wd4df], a + call Func_ddfd + ld a, [wd49b] + and a + jr z, .asm_dddd + dec a + ld [wd49b], a + ld a, $1 + ld [wd49c], a + ld de, EndOfBallBonusText + call Func_dc6d + ret + .asm_dddd - ld a, [$d49d] - ld hl, $d49e - cp [hl] - jr z, .asm_ddf1 - inc a - ld [$d49d], a - ld de, $28ee - call Func_dc6d - ret + ld a, [wd49d] + ld hl, wd49e + cp [hl] + jr z, .asm_ddf1 + inc a + ld [wd49d], a + ld de, EndOfBallBonusText + call Func_dc6d + ret + .asm_ddf1 - ld de, $28ee - call Func_dc6d - ld a, $1 - ld [$d616], a - ret + ld de, EndOfBallBonusText + call Func_dc6d + ld a, $1 + ld [wGameOver], a + ret Func_ddfd: ; 0xddfd - ld a, [wInSpecialMode] - and a - ret z - ld a, [wSpecialMode] - and a - jr nz, .asm_de14 - ld [$ff8a], a - ld a, Bank(Func_10157) - ld hl, Func_10157 - call BankSwitch - jr .asm_de40 + ld a, [wInSpecialMode] + and a + ret z + ld a, [wSpecialMode] + and a + jr nz, .asm_de14 + callba Func_10157 + jr .asm_de40 + .asm_de14 - cp $1 - jr nz, .asm_de2d - xor a - ld [$d604], a - ld a, $1e - ld [$d607], a - ld [$ff8a], a - ld a, Bank(Func_10ac8) - ld hl, Func_10ac8 - call BankSwitch - jr .asm_de40 + cp $1 + jr nz, .asm_de2d + xor a + ld [wd604], a + ld a, $1e + ld [wd607], a + callba Func_10ac8 + jr .asm_de40 + .asm_de2d - xor a - ld [$d604], a - ld a, $1e - ld [$d607], a - ld [$ff8a], a - ld a, Bank(Func_3022b) - ld hl, Func_3022b - call BankSwitch + xor a + ld [wd604], a + ld a, $1e + ld [wd607], a + callba Func_3022b .asm_de40 - ld a, [$d7ad] - ld c, a - ld a, [wStageCollisionState] - and $1 - or c - ld [wStageCollisionState], a - ret + ld a, [wd7ad] + ld c, a + ld a, [wStageCollisionState] + and $1 + or c + ld [wStageCollisionState], a + ret Func_de4e: ; 0xde4e - ret - -Func_de4f: ; 0xde4f - ld a, [wBallSaverTimerFrames] - ld hl, wBallSaverTimerSeconds - or [hl] - jr z, .asm_de7c - ld a, [$d4a5] - bit 7, a - jr nz, .asm_de75 - dec a - ld [$d4a5], a - push af - ld de, $28c9 - call Func_dc6d - pop af - jr nz, .asm_de75 - ld a, $1 - ld [wBallSaverTimerFrames], a - ld [wBallSaverTimerSeconds], a -.asm_de75 - ld de, $1502 - call PlaySoundEffect - ret -.asm_de7c - ld de, $0000 - call PlaySong - ld bc, $001e - call Func_93f - ld de, $2524 - call PlaySoundEffect - call Func_dbba - ld a, $1 - ld [$d4c9], a - xor a - ld [$d4de], a - ld [$d4df], a - call Func_ded6 - ld a, [$d49b] - and a - jr z, .asm_deb6 - dec a - ld [$d49b], a - ld a, $1 - ld [$d49c], a - ld de, $28ee - call Func_dc6d - ret + ret + +BlueField_HandleBallLoss: ; 0xde4f + ld a, [wBallSaverTimerFrames] + ld hl, wBallSaverTimerSeconds + or [hl] + jr z, .rip + ld a, [wNumTimesBallSavedTextWillDisplay] + bit 7, a + jr nz, .skip_save_text + dec a + ld [wNumTimesBallSavedTextWillDisplay], a + push af + ld de, BallSavedText + call Func_dc6d + pop af + jr nz, .skip_save_text + ld a, $1 + ld [wBallSaverTimerFrames], a + ld [wBallSaverTimerSeconds], a +.skip_save_text + lb de, $15, $02 + call PlaySoundEffect + ret + +.rip + ld de, $0000 + call PlaySong + ld bc, $001e + call AdvanceFrames + lb de, $25, $24 + call PlaySoundEffect + call Start20SecondSaverTimer + ld a, $1 + ld [wd4c9], a + xor a + ld [wd4de], a + ld [wd4df], a + call Func_ded6 + ld a, [wd49b] + and a + jr z, .asm_deb6 + dec a + ld [wd49b], a + ld a, $1 + ld [wd49c], a + ld de, EndOfBallBonusText + call Func_dc6d + ret + .asm_deb6 - ld a, [$d49d] - ld hl, $d49e - cp [hl] - jr z, .asm_deca - inc a - ld [$d49d], a - ld de, $28ee - call Func_dc6d - ret + ld a, [wd49d] + ld hl, wd49e + cp [hl] + jr z, .asm_deca + inc a + ld [wd49d], a + ld de, EndOfBallBonusText + call Func_dc6d + ret + .asm_deca - ld de, $28ee - call Func_dc6d - ld a, $1 - ld [$d616], a - ret + ld de, EndOfBallBonusText + call Func_dc6d + ld a, $1 + ld [wGameOver], a + ret Func_ded6: ; 0xded6 - ld a, [wInSpecialMode] - and a - ret z - ld a, [wSpecialMode] - and a - jr nz, .asm_deec - ld [$ff8a], a - ld a, Bank(Func_10157) - ld hl, Func_10157 - call BankSwitch - ret + ld a, [wInSpecialMode] + and a + ret z + ld a, [wSpecialMode] + and a + jr nz, .asm_deec + callba Func_10157 + ret + .asm_deec - cp $1 - jr nz, .asm_df05 - ld a, $0 - ld [$d604], a - ld a, $1e - ld [$d607], a - ld [$ff8a], a - ld a, Bank(Func_10ac8) - ld hl, Func_10ac8 - call BankSwitch - ret + cp $1 + jr nz, .asm_df05 + ld a, $0 + ld [wd604], a + ld a, $1e + ld [wd607], a + callba Func_10ac8 + ret + .asm_df05 - ld a, $0 - ld [$d604], a - ld a, $1e - ld [$d607], a - ld [$ff8a], a - ld a, Bank(Func_3022b) - ld hl, Func_3022b - call BankSwitch - ret + ld a, $0 + ld [wd604], a + ld a, $1e + ld [wd607], a + callba Func_3022b + ret Func_df1a: ; 0xdf1a - ld a, [$d4ad] - ld hl, wCurrentStage - cp [hl] - ret z - ld a, [$d6a8] - and a - jr nz, .asm_df57 - ld a, [$d6a2] - cp $5 - jr c, .asm_df50 - xor a - ld [$d4ae], a - ld a, [$d6a7] - and a - ret nz - ld [$d548], a - ld [$d549], a - ld [wBallSpin], a - ld [wBallRotation], a - ld hl, wBallXVelocity - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld a, $1 - ld [$d6a7], a + ld a, [wd4ad] + ld hl, wCurrentStage + cp [hl] + ret z + ld a, [wd6a8] + and a + jr nz, .asm_df57 + ld a, [wd6a2] + cp $5 + jr c, .asm_df50 + xor a + ld [wd4ae], a + ld a, [wd6a7] + and a + ret nz + ld [wd548], a + ld [wd549], a + ld [wBallSpin], a + ld [wBallRotation], a + ld hl, wBallXVelocity + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld a, $1 + ld [wd6a7], a .asm_df50 - ld de, $0002 - call PlaySoundEffect - ret + lb de, $00, $02 + call PlaySoundEffect + ret + .asm_df57 - xor a - ld [$d495], a - ld a, $1 - ld [$d496], a - ld a, $2 - ld [$d4c8], a - xor a - ld [$d7ac], a - ld a, [$d49a] - and a - ret nz - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $2f04 - call Func_32aa - ret + xor a + ld [wd495], a + ld a, $1 + ld [wd496], a + ld a, $2 + ld [wd4c8], a + xor a + ld [wd7ac], a + ld a, [wd49a] + and a + ret nz + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, Data_2f04 + call LoadTextHeader + ret Func_df7e: ; 0xdf7e - ld a, [$d4ad] - ld hl, wCurrentStage - cp [hl] - ret z - ld a, [$d6b3] - and a - jr nz, .asm_dfbb - ld a, [$d6b1] - cp $8 - jr c, .asm_dfb4 - xor a - ld [$d4ae], a - ld a, [$d6b2] - and a - ret nz - ld [$d548], a - ld [$d549], a - ld [wBallSpin], a - ld [wBallRotation], a - ld hl, wBallXVelocity - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld a, $1 - ld [$d6b2], a + ld a, [wd4ad] + ld hl, wCurrentStage + cp [hl] + ret z + ld a, [wd6b3] + and a + jr nz, .asm_dfbb + ld a, [wd6b1] + cp $8 + jr c, .asm_dfb4 + xor a + ld [wd4ae], a + ld a, [wd6b2] + and a + ret nz + ld [wd548], a + ld [wd549], a + ld [wBallSpin], a + ld [wBallRotation], a + ld hl, wBallXVelocity + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld a, $1 + ld [wd6b2], a .asm_dfb4 - ld de, $000b - call PlaySoundEffect - ret + lb de, $00, $0b + call PlaySoundEffect + ret + .asm_dfbb - xor a - ld [$d495], a - ld a, $1 - ld [$d496], a - ld a, $2 - ld [$d4c8], a - xor a - ld [$d7ac], a - ld a, [$d49a] - and a - ret nz - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $2f1c - call Func_32aa - ret + xor a + ld [wd495], a + ld a, $1 + ld [wd496], a + ld a, $2 + ld [wd4c8], a + xor a + ld [wd7ac], a + ld a, [wd49a] + and a + ret nz + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, Data_2f1c + call LoadTextHeader + ret Func_dfe2: ; 0xdfe2 - xor a - ld [$d64e], a - ld a, [$d7be] - and a - jr z, .asm_dff2 - ld a, [$d49a] - and a - jr z, .asm_e00f + xor a + ld [wd64e], a + ld a, [wd7be] + and a + jr z, .asm_dff2 + ld a, [wd49a] + and a + jr z, .asm_e00f .asm_dff2 - ld a, [wMeowthStageScore] - cp $14 - jr nc, .asm_e00f - cp $5 - jr c, .asm_e001 - sub $4 - jr .asm_e002 + ld a, [wMeowthStageScore] + cp $14 + jr nc, .asm_e00f + cp $5 + jr c, .asm_e001 + sub $4 + jr .asm_e002 + .asm_e001 - xor a + xor a .asm_e002 - ld [wMeowthStageScore], a - ld [$ff8a], a - ld a, Bank(Func_24fa3) - ld hl, Func_24fa3 - call BankSwitch + ld [wMeowthStageScore], a + callba Func_24fa3 .asm_e00f - ld a, [$d4ad] - ld hl, wCurrentStage - cp [hl] - ret z - ld a, [$d712] - cp $0 - jr nz, .asm_e025 - ld de, $0002 - call PlaySoundEffect - ret + ld a, [wd4ad] + ld hl, wCurrentStage + cp [hl] + ret z + ld a, [wd712] + cp $0 + jr nz, .asm_e025 + lb de, $00, $02 + call PlaySoundEffect + ret + .asm_e025 - xor a - ld [$d57e], a - ld [$d57d], a - xor a - ld [$d495], a - ld a, $1 - ld [$d496], a - ld a, $2 - ld [$d4c8], a - xor a - ld [$d7ac], a - ld [$d712], a - ld a, [$d49a] - and a - ret nz - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $2f4d - call Func_32aa - ret + xor a + ld [wd57e], a + ld [wd57d], a + xor a + ld [wd495], a + ld a, $1 + ld [wd496], a + ld a, $2 + ld [wd4c8], a + xor a + ld [wd7ac], a + ld [wd712], a + ld a, [wd49a] + and a + ret nz + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, Data_2f4d + call LoadTextHeader + ret Func_e056: ; 0xe056 - ld a, [$d4ad] - ld hl, wCurrentStage - cp [hl] - ret z - ld de, $000b - call PlaySoundEffect - xor a - ld [$d495], a - ld a, $1 - ld [$d496], a - ld a, $2 - ld [$d4c8], a - xor a - ld [$d7ac], a - ld a, [$d49a] - and a - ret nz - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $2f34 - call Func_32aa - ret + ld a, [wd4ad] + ld hl, wCurrentStage + cp [hl] + ret z + lb de, $00, $0b + call PlaySoundEffect + xor a + ld [wd495], a + ld a, $1 + ld [wd496], a + ld a, $2 + ld [wd4c8], a + xor a + ld [wd7ac], a + ld a, [wd49a] + and a + ret nz + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, Data_2f34 + call LoadTextHeader + ret Func_e08b: ; 0xe08b - xor a - ld [$d64e], a - ld a, [$d7be] - and a - jr z, .asm_e09b - ld a, [$d49a] - and a - jr z, .asm_e0b8 + xor a + ld [wd64e], a + ld a, [wd7be] + and a + jr z, .asm_e09b + ld a, [wd49a] + and a + jr z, .asm_e0b8 .asm_e09b - ld a, [$d793] - cp $14 - jr nc, .asm_e0b8 - cp $5 - jr c, .asm_e0aa - sub $4 - jr .asm_e0ab + ld a, [wd793] + cp $14 + jr nc, .asm_e0b8 + cp $5 + jr c, .asm_e0aa + sub $4 + jr .asm_e0ab + .asm_e0aa - xor a + xor a .asm_e0ab - ld [$d793], a - ld [$ff8a], a - ld a, Bank(Func_262f4) - ld hl, Func_262f4 - call BankSwitch + ld [wd793], a + callba Func_262f4 .asm_e0b8 - ld a, [$d4ad] - ld hl, wCurrentStage - cp [hl] - ret z - ld a, [$d794] - cp $0 - jr nz, .asm_e0c8 - ret + ld a, [wd4ad] + ld hl, wCurrentStage + cp [hl] + ret z + ld a, [wd794] + cp $0 + jr nz, .asm_e0c8 + ret + .asm_e0c8 - ld de, $0002 - call PlaySoundEffect - xor a - ld [$d57d], a - ld [$d57d], a - ld [$d495], a - ld a, $1 - ld [$d496], a - ld a, $2 - ld [$d4c8], a - xor a - ld [$d7ac], a - ld [$d794], a - ld a, [$d49a] - and a - ret nz - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $2f65 - call Func_32aa - ret + lb de, $00, $02 + call PlaySoundEffect + xor a + ld [wd57d], a + ld [wd57d], a + ld [wd495], a + ld a, $1 + ld [wd496], a + ld a, $2 + ld [wd4c8], a + xor a + ld [wd7ac], a + ld [wd794], a + ld a, [wd49a] + and a + ret nz + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, Data_2f65 + call LoadTextHeader + ret HandleFlippers: ; 0xe0fe - xor a - ld [wFlipperCollision], a - ld [hFlipperYCollisionAttribute], a - ld [$d7ba], a - ld [$d7bb], a - call Func_e118 - call CheckFlipperCollision - ld a, [wFlipperCollision] - and a - call nz, HandleFlipperCollision - ret + xor a + ld [wFlipperCollision], a + ld [hFlipperYCollisionAttribute], a + ld [wd7ba], a + ld [wd7bb], a + call Func_e118 + call CheckFlipperCollision + ld a, [wFlipperCollision] + and a + call nz, HandleFlipperCollision + ret Func_e118: ; 0xe118 - call PlayFlipperSoundIfPressed - ld a, [$d7af] - ld [wLeftFlipperAnimationState], a - ld a, [$d7b3] - ld [wRightFlipperAnimationState], a - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed2 - ld hl, $fccd - jr z, .asm_e13b - ld a, [$d7be] - and a - jr nz, .asm_e13b - ld hl, $0333 + call PlayFlipperSoundIfPressed + ld a, [wd7af] + ld [wLeftFlipperAnimationState], a + ld a, [wd7b3] + ld [wRightFlipperAnimationState], a + ld hl, wKeyConfigLeftFlipper + call IsKeyPressed2 + ld hl, -$0333 + jr z, .asm_e13b + ld a, [wd7be] + and a + jr nz, .asm_e13b + ld hl, $0333 .asm_e13b - ld a, [$d7af] - and a - jr nz, .asm_e145 - bit 7, h - jr nz, .asm_e14d + ld a, [wd7af] + and a + jr nz, .asm_e145 + bit 7, h + jr nz, .asm_e14d .asm_e145 - cp $f - jr nz, .asm_e150 - bit 7, h - jr nz, .asm_e150 + cp $f + jr nz, .asm_e150 + bit 7, h + jr nz, .asm_e150 .asm_e14d - ld hl, $0000 + ld hl, $0000 .asm_e150 - ld a, l - ld [$d7b0], a - ld a, h - ld [$d7b1], a - ld a, [$d7ae] - ld c, a - ld a, [$d7af] - ld b, a - add hl, bc - bit 7, h - jr nz, .asm_e16f - ld a, h - cp $10 - jr c, .asm_e172 - ld hl, $0f00 - jr .asm_e172 + ld a, l + ld [wd7b0], a + ld a, h + ld [wd7b1], a + ld a, [wd7ae] + ld c, a + ld a, [wd7af] + ld b, a + add hl, bc + bit 7, h + jr nz, .asm_e16f + ld a, h + cp $10 + jr c, .asm_e172 + ld hl, $0f00 + jr .asm_e172 + .asm_e16f - ld hl, $0000 + ld hl, $0000 .asm_e172 - ld a, l - ld [$d7ae], a - ld a, h - ld [$d7af], a - ld hl, wKeyConfigRightFlipper - call IsKeyPressed2 - ld hl, $fccd - jr z, .asm_e18e - ld a, [$d7be] - and a - jr nz, .asm_e18e - ld hl, $0333 + ld a, l + ld [wd7ae], a + ld a, h + ld [wd7af], a + ld hl, wKeyConfigRightFlipper + call IsKeyPressed2 + ld hl, -$0333 + jr z, .asm_e18e + ld a, [wd7be] + and a + jr nz, .asm_e18e + ld hl, $0333 .asm_e18e - ld a, [$d7b3] - and a - jr nz, .asm_e198 - bit 7, h - jr nz, .asm_e1a0 + ld a, [wd7b3] + and a + jr nz, .asm_e198 + bit 7, h + jr nz, .asm_e1a0 .asm_e198 - cp $f - jr nz, .asm_e1a3 - bit 7, h - jr nz, .asm_e1a3 + cp $f + jr nz, .asm_e1a3 + bit 7, h + jr nz, .asm_e1a3 .asm_e1a0 - ld hl, $0000 + ld hl, $0000 .asm_e1a3 - ld a, l - ld [$d7b4], a - ld a, h - ld [$d7b5], a - ld a, [$d7b2] - ld c, a - ld a, [$d7b3] - ld b, a - add hl, bc - bit 7, h - jr nz, .asm_e1c2 - ld a, h - cp $10 - jr c, .asm_e1c5 - ld hl, $0f00 - jr .asm_e1c5 + ld a, l + ld [wd7b4], a + ld a, h + ld [wd7b5], a + ld a, [wd7b2] + ld c, a + ld a, [wd7b3] + ld b, a + add hl, bc + bit 7, h + jr nz, .asm_e1c2 + ld a, h + cp $10 + jr c, .asm_e1c5 + ld hl, $0f00 + jr .asm_e1c5 + .asm_e1c2 - ld hl, $0000 + ld hl, $0000 .asm_e1c5 - ld a, l - ld [$d7b2], a - ld a, h - ld [$d7b3], a - ret + ld a, l + ld [wd7b2], a + ld a, h + ld [wd7b3], a + ret PlayFlipperSoundIfPressed: ; 0xe1ce - ld a, [$d7be] - and a - ret nz - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed - jr z, .asm_e1e2 - ld de, $000c - call PlaySoundEffect - ret + ld a, [wd7be] + and a + ret nz + ld hl, wKeyConfigLeftFlipper + call IsKeyPressed + jr z, .asm_e1e2 + lb de, $00, $0c + call PlaySoundEffect + ret + .asm_e1e2 - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - ret z - ld de, $000c - call PlaySoundEffect - ret + ld hl, wKeyConfigRightFlipper + call IsKeyPressed + ret z + lb de, $00, $0c + call PlaySoundEffect + ret CheckFlipperCollision: ; 0xe1f0 - ld a, [wBallXPos + 1] - cp $50 ; which half of the screen is the ball in? - jp nc, CheckRightFlipperCollision ; right half of screen - ; fall through + ld a, [wBallXPos + 1] + cp $50 ; which half of the screen is the ball in? + jp nc, CheckRightFlipperCollision ; right half of screen + ; fall through CheckLeftFlipperCollision: - ld hl, wBallXPos - ld c, $ba - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [wLeftFlipperAnimationState] - ld [$ffc2], a - ld a, [$d7af] - ld [$ffc3], a - call ReadFlipperCollisionAttributes - ld a, [wFlipperCollision] - and a - ret z - ld a, [$d7b0] - ld [$ffc0], a - ld a, [$d7b1] - ld [$ffc1], a - ret + ld hl, wBallXPos + ld c, $ba + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [wLeftFlipperAnimationState] + ld [$ffc2], a + ld a, [wd7af] + ld [$ffc3], a + call ReadFlipperCollisionAttributes + ld a, [wFlipperCollision] + and a + ret z + ld a, [wd7b0] + ld [$ffc0], a + ld a, [wd7b1] + ld [$ffc1], a + ret CheckRightFlipperCollision: ; 0xe226 ; ball is in right half of screen - ld hl, wBallXPos - ld c, $ba - ld a, [hli] - sub $1 - cpl - ld [$ff00+c], a - inc c - ld a, [hli] - sbc $a0 - cpl - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [hli] - ld [$ff00+c], a - inc c - ld a, [wRightFlipperAnimationState] - ld [$ffc2], a - ld a, [$d7b3] - ld [$ffc3], a - call ReadFlipperCollisionAttributes - ld a, [wFlipperCollision] - and a - ret z - ; collision with flipper occurred - ld a, [$d7b4] - ld [$ffc0], a - ld a, [$d7b5] - ld [$ffc1], a - ret + ld hl, wBallXPos + ld c, $ba + ld a, [hli] + sub $1 + cpl + ld [$ff00+c], a + inc c + ld a, [hli] + sbc $a0 + cpl + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [hli] + ld [$ff00+c], a + inc c + ld a, [wRightFlipperAnimationState] + ld [$ffc2], a + ld a, [wd7b3] + ld [$ffc3], a + call ReadFlipperCollisionAttributes + ld a, [wFlipperCollision] + and a + ret z + ; collision with flipper occurred + ld a, [wd7b4] + ld [$ffc0], a + ld a, [wd7b5] + ld [$ffc1], a + ret ReadFlipperCollisionAttributes: ; 0xe25a - ld a, [$ffbb] ; ball x-position high byte - sub $2b ; check if ball is in x-position range of flippers - ret c - cp $30 - ret nc - ; ball is in x-position range of flippers - ld [$ffbb], a ; x offset of flipper horizontal range - ld a, [$ffbd] ; ball y-position high byte - sub $7b ; check if ball is in y-position range of flippers - ret c - cp $20 - ret nc - ; ball is in potential collision with flippers - ld [$ffbd], a ; y offset of flipper vertical range - ld a, [$ffc2] ; flipper animation state + ld a, [$ffbb] ; ball x-position high byte + sub $2b ; check if ball is in x-position range of flippers + ret c + cp $30 + ret nc + ; ball is in x-position range of flippers + ld [$ffbb], a ; x offset of flipper horizontal range + ld a, [$ffbd] ; ball y-position high byte + sub $7b ; check if ball is in y-position range of flippers + ret c + cp $20 + ret nc + ; ball is in potential collision with flippers + ld [$ffbd], a ; y offset of flipper vertical range + ld a, [$ffc2] ; flipper animation state .asm_e270 - push af - ld l, $0 - ld h, a ; multiply a by 0x600 - sla a - sla h - sla h - add h - ld h, a ; hl = a * 0x600 (this is the length of the flipper collision attributes) - ld a, [$ffbb] ; x offset of flipper horizontal range - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b ; bc = (x offset of flipper horizontal range) * 32 - ; Each row of the flipper collision attributes is 32 bytes long. - add hl, bc ; hl points to the start of the row in the flipper collisoin attributes - ld a, [$ffbd] ; y offset of flipper vertical range - ld c, a - ld b, $0 - add hl, bc ; hl points to the attribute byte in the flipper collision attributes - ld d, h - ld e, l ; de points to the attribute byte in the flipper collision attributes - ld a, h - cp $40 - jr nc, .secondBank - add $40 - ld h, a - ld a, Bank(FlipperHorizontalCollisionAttributes) - jr .readAttributeByte + push af + ld l, $0 + ld h, a ; multiply a by 0x600 + sla a + sla h + sla h + add h + ld h, a ; hl = a * 0x600 (this is the length of the flipper collision attributes) + ld a, [$ffbb] ; x offset of flipper horizontal range + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b ; bc = (x offset of flipper horizontal range) * 32 + ; Each row of the flipper collision attributes is 32 bytes long. + add hl, bc ; hl points to the start of the row in the flipper collisoin attributes + ld a, [$ffbd] ; y offset of flipper vertical range + ld c, a + ld b, $0 + add hl, bc ; hl points to the attribute byte in the flipper collision attributes + ld d, h + ld e, l ; de points to the attribute byte in the flipper collision attributes + ld a, h + cp $40 + jr nc, .secondBank + add $40 + ld h, a + ld a, Bank(FlipperHorizontalCollisionAttributes) + jr .readAttributeByte + .secondBank - ld a, Bank(FlipperHorizontalCollisionAttributes2) + ld a, Bank(FlipperHorizontalCollisionAttributes2) .readAttributeByte - call ReadByteFromBank - ld b, a - and a - jr nz, .collision - ; no collision - pop af ; a = flipper animation state(?) - ld hl, $ffc3 - cp [hl] - ret z - jr c, .asm_e2be - dec a - jr .asm_e270 + call ReadByteFromBank + ld b, a + and a + jr nz, .collision + ; no collision + pop af ; a = flipper animation state(?) + ld hl, $ffc3 + cp [hl] + ret z + jr c, .asm_e2be + dec a + jr .asm_e270 + .asm_e2be - inc a - jr .asm_e270 + inc a + jr .asm_e270 + .collision - pop af ; a = flipper animation state(?) - ld a, b ; a = collision attribute - ld [hFlipperYCollisionAttribute], a - ld h, d - ld l, e - ld a, h - cp $20 - jr nc, .asm_e2d3 - add $60 - ld h, a - ld a, Bank(FlipperVerticalCollisionAttributes) - jr .asm_e2d8 + pop af ; a = flipper animation state(?) + ld a, b ; a = collision attribute + ld [hFlipperYCollisionAttribute], a + ld h, d + ld l, e + ld a, h + cp $20 + jr nc, .asm_e2d3 + add $60 + ld h, a + ld a, Bank(FlipperVerticalCollisionAttributes) + jr .asm_e2d8 + .asm_e2d3 - add $20 - ld h, a - ld a, Bank(FlipperVerticalCollisionAttributes2) + add $20 + ld h, a + ld a, Bank(FlipperVerticalCollisionAttributes2) .asm_e2d8 - call ReadByteFromBank - ld [wFlipperXCollisionAttribute], a - ld a, $1 - ld [wFlipperCollision], a - ret - -INCBIN "baserom.gbc",$e2e4,$e379 - $e2e4 + call ReadByteFromBank + ld [wFlipperXCollisionAttribute], a + ld a, $1 + ld [wFlipperCollision], a + ret + +Func_e2e4: + ld a, c + or b + or l + or h + or e + or d + jr nz, .asm_e2f3 + ld a, [$ffba] + ld e, a + ld a, [$ffbb] + ld d, a + ret + +.asm_e2f3 + ld a, d + xor h + push af + bit 7, d + jr z, .asm_e301 + ld a, e + cpl + ld e, a + ld a, d + cpl + ld d, a + inc de +.asm_e301 + bit 7, h + jr z, .asm_e317 + ld a, c + cpl + ld c, a + ld a, b + cpl + ld b, a + ld a, l + cpl + ld l, a + ld a, h + cpl + ld h, a + inc bc + ld a, b + or c + jr nz, .asm_e317 + inc hl +.asm_e317 + push bc + ld c, $11 + ld a, d + or e + jr nz, .asm_e324 + pop bc + ld de, $7fff + jr .asm_e36a + +.asm_e324 + bit 7, d + jr nz, .asm_e32f + sla e + rl d + inc c + jr .asm_e324 + +.asm_e32f + ld a, c + ld [$ff8c], a + pop bc + xor a + ld [$ff8d], a + ld [$ff8e], a +.asm_e338 + jr c, .asm_e344 + ld a, d + cp h + jr nz, .asm_e342 + ld a, e + cp l + jr z, .asm_e344 +.asm_e342 + jr nc, .asm_e34b +.asm_e344 + ld a, l + sub e + ld l, a + ld a, h + sbc d + ld h, a + scf +.asm_e34b + ld a, [$ff8d] + rla + ld [$ff8d], a + ld a, [$ff8e] + rla + ld [$ff8e], a + sla c + rl b + rl l + rl h + ld a, [$ff8c] + dec a + ld [$ff8c], a + jr nz, .asm_e338 + ld a, [$ff8d] + ld e, a + ld a, [$ff8e] + ld d, a +.asm_e36a + pop af + bit 7, a + ret z + ld a, e + sub $1 + cpl + ld e, a + ld a, d + sbc $0 + cpl + ld d, a + ret Func_e379: ; 0xe379 - ld a, b - xor d - ld [$ffbe], a - bit 7, b - jr z, .asm_e388 - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc + ld a, b + xor d + ld [$ffbe], a + bit 7, b + jr z, .asm_e388 + ld a, c + cpl + ld c, a + ld a, b + cpl + ld b, a + inc bc .asm_e388 - bit 7, d - jr z, .asm_e393 - ld a, e - cpl - ld e, a - ld a, d - cpl - ld d, a - inc de + bit 7, d + jr z, .asm_e393 + ld a, e + cpl + ld e, a + ld a, d + cpl + ld d, a + inc de .asm_e393 - push bc - push de - ld c, d - call Func_e410 - pop de - pop bc - push hl - push bc - push de - ld c, e - call Func_e410 - pop de - pop bc - push hl - push bc - push de - ld b, d - call Func_e410 - pop de - pop bc - push hl - ld b, e - call Func_e410 - ld c, l - ld l, h - xor a - ld h, a - pop de - add hl, de - rl a - pop de - add hl, de - jr nc, .asm_e3bf - inc a + push bc + push de + ld c, d + call Func_e410 + pop de + pop bc + push hl + push bc + push de + ld c, e + call Func_e410 + pop de + pop bc + push hl + push bc + push de + ld b, d + call Func_e410 + pop de + pop bc + push hl + ld b, e + call Func_e410 + ld c, l + ld l, h + xor a + ld h, a + pop de + add hl, de + rl a + pop de + add hl, de + jr nc, .asm_e3bf + inc a .asm_e3bf - ld b, l - ld l, h - ld h, a - pop de - add hl, de - ld a, [$ffbe] - bit 7, a - ret z - ld a, c - sub $1 - cpl - ld c, a - ld a, b - sbc $0 - cpl - ld b, a - ld a, l - sbc $0 - cpl - ld l, a - ld a, h - sbc $0 - cpl - ld h, a - ret - -INCBIN "baserom.gbc",$e3de,$e410 - $e3de + ld b, l +Data_e3c0: + ld l, h + ld h, a + pop de + add hl, de + ld a, [$ffbe] + bit 7, a + ret z + ld a, c + sub $1 + cpl + ld c, a + ld a, b + sbc $0 + cpl + ld b, a + ld a, l + sbc $0 + cpl + ld l, a + ld a, h + sbc $0 + cpl + ld h, a + ret + +Func_e3de: + push bc + push de + ld c, d + call Func_e410 + pop de + pop bc + push hl + push bc + push de + ld c, e + call Func_e410 + pop de + pop bc + push hl + push bc + push de + ld b, d + call Func_e410 + pop de + pop bc + push hl + ld b, e + call Func_e410 + ld c, l + ld l, h + xor a + ld h, a + pop de + add hl, de + rl a + pop de + add hl, de + jr nc, .asm_e40a + inc a +.asm_e40a + ld b, l + ld l, h + ld h, a + pop de + add hl, de + ret Func_e410: ; 0xe410 - ld a, b - cp c - jr nc, .asm_e416 - ld b, c - ld c, a + ld a, b + cp c + jr nc, .asm_e416 + ld b, c + ld c, a .asm_e416 - ld h, $3e - ld l, c - ld e, [hl] - inc h - ld d, [hl] - ld l, b - ld a, [hl] - dec h - ld l, [hl] - ld h, a - add hl, de - push af - ld d, $3e - ld a, b - sub c - ld e, a - ld a, [de] - ld c, a - inc d - ld a, [de] - ld b, a - ld a, l - sub c - ld l, a - ld a, h - sbc b - ld h, a - jr nc, .asm_e43c - pop af - ccf - rr h - rr l - ret + ld h, $3e + ld l, c + ld e, [hl] + inc h + ld d, [hl] + ld l, b + ld a, [hl] + dec h + ld l, [hl] + ld h, a + add hl, de + push af + ld d, $3e + ld a, b + sub c + ld e, a + ld a, [de] + ld c, a + inc d + ld a, [de] + ld b, a + ld a, l + sub c + ld l, a + ld a, h + sbc b + ld h, a + jr nc, .asm_e43c + pop af + ccf + rr h + rr l + ret + .asm_e43c - pop af - rr h - rr l - ret + pop af + rr h + rr l + ret HandleFlipperCollision: ; 0xe442 ; This is called when the ball is colliding with either the ; right or left flipper. - ld a, $1 - ld [$d7e9], a - xor a - ld [$d7f3], a - ld [$d7f4], a - ld [$d7f5], a - ld [$d7f6], a - ld [$d7f7], a - ld a, [hFlipperYCollisionAttribute] - sla a - ld c, a - ld b, $0 - ld hl, Data_e538 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - ld a, [$ffc0] - ld e, a - ld a, [$ffc1] - ld d, a - sla e - rl d - sla e - rl d ; multiplied de by 4 - call Func_e379 - ld a, b - ld [$d7bc], a - ld a, l - ld [$d7bd], a - ld a, [wBallXPos + 1] - cp $50 ; which flipper did the ball hit? - ld a, [wFlipperXCollisionAttribute] - jr c, .asm_e48b - cpl ; invert the x collision attribute - inc a + ld a, $1 + ld [wd7e9], a + xor a + ld [wd7f3], a + ld [wd7f4], a + ld [wd7f5], a + ld [wd7f6], a + ld [wd7f7], a + ld a, [hFlipperYCollisionAttribute] + sla a + ld c, a + ld b, $0 + ld hl, Data_e538 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + ld a, [$ffc0] + ld e, a + ld a, [$ffc1] + ld d, a + sla e + rl d + sla e + rl d ; multiplied de by 4 + call Func_e379 + ld a, b + ld [wd7bc], a + ld a, l + ld [wd7bd], a + ld a, [wBallXPos + 1] + cp $50 ; which flipper did the ball hit? + ld a, [wFlipperXCollisionAttribute] + jr c, .asm_e48b + cpl ; invert the x collision attribute + inc a .asm_e48b - ld [$d7ea], a - ld a, $1 - ld [$d7eb], a - ld a, [$d7bd] - bit 7, a - ret z - xor a - ld [$d7bc], a - ld [$d7bd], a - ret + ld [wd7ea], a + ld a, $1 + ld [wd7eb], a + ld a, [wd7bd] + bit 7, a + ret z + xor a + ld [wd7bc], a + ld [wd7bd], a + ret Func_e4a1: ; 0xe4a1 - ld a, [wCurrentStage] - and a - ret z - ld hl, $650a - ld a, [hBoardXShift] - ld d, a - ld a, [hBoardYShift] - ld e, a - ld a, [hli] - sub d - ld b, a - ld a, [hli] - sub e - ld c, a - push hl - ld hl, $650e - ld a, [$d7af] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - cp $b - jr nz, .asm_e4d6 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_e4d4 - ld a, [$d7be] - and a - jr z, .asm_e4d4 - ld a, $18 - jr .asm_e4d6 + ld a, [wCurrentStage] + and a + ret z + ld hl, Data_e50a + ld a, [hSCX] + ld d, a + ld a, [hSCY] + ld e, a + ld a, [hli] + sub d + ld b, a + ld a, [hli] + sub e + ld c, a + push hl + ld hl, Data_e50e + ld a, [wd7af] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + cp $b + jr nz, .asm_e4d6 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_e4d4 + ld a, [wd7be] + and a + jr z, .asm_e4d4 + ld a, $18 + jr .asm_e4d6 + .asm_e4d4 - ld a, $b + ld a, $b .asm_e4d6 - call LoadOAMData - pop hl - ld a, [hBoardXShift] - ld d, a - ld a, [hBoardYShift] - ld e, a - ld a, [hli] - sub d - ld b, a - ld a, [hli] - sub e - ld c, a - ld hl, $6523 - ld a, [$d7b3] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - cp $8 - jr nz, .asm_e506 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_e504 - ld a, [$d7be] - and a - jr z, .asm_e504 - ld a, $17 - jr .asm_e506 + call LoadOAMData + pop hl + ld a, [hSCX] + ld d, a + ld a, [hSCY] + ld e, a + ld a, [hli] + sub d + ld b, a + ld a, [hli] + sub e + ld c, a + ld hl, Data_e523 + ld a, [wd7b3] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + cp $8 + jr nz, .asm_e506 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_e504 + ld a, [wd7be] + and a + jr z, .asm_e504 + ld a, $17 + jr .asm_e506 + .asm_e504 - ld a, $8 + ld a, $8 .asm_e506 - call LoadOAMData - ret + call LoadOAMData + ret -INCBIN "baserom.gbc",$e50a,$e538 - $e50a +Data_e50a: + dr $e50a, $e50e + +Data_e50e: + dr $e50e, $e523 + +Data_e523: + dr $e523, $e538 Data_e538: ; 0xe538 - dw $0000 - dw $000C - dw $001C - dw $0030 - dw $0038 - dw $0048 - dw $005C - dw $006C - dw $0070 - dw $0080 - dw $0094 - dw $00A4 - dw $00B4 - dw $00C4 - dw $00D4 - dw $00E4 - dw $00F8 - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC - dw $00FC + dw $0000 + dw $000C + dw $001C + dw $0030 + dw $0038 + dw $0048 + dw $005C + dw $006C + dw $0070 + dw $0080 + dw $0094 + dw $00A4 + dw $00B4 + dw $00C4 + dw $00D4 + dw $00E4 + dw $00F8 + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC + dw $00FC LoadStageCollisionAttributes: ; 0xe578 - ld a, [wCurrentStage] - sla a - ld c, a - ld b, $0 - ld hl, StageCollisionAttributesPointers - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] - and a - jr z, .asm_e598 - ld a, [wStageCollisionState] - sla a - ld c, a - sla a - add c - ld c, a - ld b, $0 ; bc = 6 * [wStageCollisionState] - add hl, bc + ld a, [wCurrentStage] + sla a + ld c, a + ld b, $0 + ld hl, StageCollisionAttributesPointers + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + and a + jr z, .asm_e598 + ld a, [wStageCollisionState] + sla a + ld c, a + sla a + add c + ld c, a + ld b, $0 ; bc = 6 * [wStageCollisionState] + add hl, bc .asm_e598 - ld de, wStageCollisionMapPointer - ld b, $6 + ld de, wStageCollisionMapPointer + ld b, $6 .asm_e59d - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_e59d - call LoadCollisionAttributes - ret + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_e59d + call LoadCollisionAttributes + ret StageCollisionAttributesPointers: ; 0xe5a7 - dw StageRedFieldTopCollisionAttributesPointers - dw StageRedFieldBottomCollisionAttributesPointers - dw StageUnusedCollisionAttributesPointers - dw StageUnused2CollisionAttributesPointers - dw StageBlueFieldTopCollisionAttributesPointers - dw StageBlueFieldBottomCollisionAttributesPointers - dw StageGengarBonusCollisionAttributesPointers - dw StageGengarBonusCollisionAttributesPointers - dw StageMewtwoBonusCollisionAttributesPointers - dw StageMewtwoBonusCollisionAttributesPointers - dw StageMeowthBonusCollisionAttributesPointers - dw StageMeowthBonusCollisionAttributesPointers - dw StageDiglettBonusCollisionAttributesPointers - dw StageDiglettBonusCollisionAttributesPointers - dw StageSeelBonusCollisionAttributesPointers - dw StageSeelBonusCollisionAttributesPointers + dw StageRedFieldTopCollisionAttributesPointers + dw StageRedFieldBottomCollisionAttributesPointers + dw StageUnusedCollisionAttributesPointers + dw StageUnused2CollisionAttributesPointers + dw StageBlueFieldTopCollisionAttributesPointers + dw StageBlueFieldBottomCollisionAttributesPointers + dw StageGengarBonusCollisionAttributesPointers + dw StageGengarBonusCollisionAttributesPointers + dw StageMewtwoBonusCollisionAttributesPointers + dw StageMewtwoBonusCollisionAttributesPointers + dw StageMeowthBonusCollisionAttributesPointers + dw StageMeowthBonusCollisionAttributesPointers + dw StageDiglettBonusCollisionAttributesPointers + dw StageDiglettBonusCollisionAttributesPointers + dw StageSeelBonusCollisionAttributesPointers + dw StageSeelBonusCollisionAttributesPointers StageRedFieldTopCollisionAttributesPointers: ; 0xe5c7 - db $01 ; multiple pair entries - dwb StageRedFieldTopCollisionAttributes0, Bank(StageRedFieldTopCollisionAttributes0) - dwb StageRedFieldTopCollisionMasks0, Bank(StageRedFieldTopCollisionMasks0) - - dwb StageRedFieldTopCollisionAttributes1, Bank(StageRedFieldTopCollisionAttributes1) - dwb StageRedFieldTopCollisionMasks0, Bank(StageRedFieldTopCollisionMasks0) - - dwb StageRedFieldTopCollisionAttributes2, Bank(StageRedFieldTopCollisionAttributes2) - dwb StageRedFieldTopCollisionMasks1, Bank(StageRedFieldTopCollisionMasks1) - - dwb StageRedFieldTopCollisionAttributes3, Bank(StageRedFieldTopCollisionAttributes3) - dwb StageRedFieldTopCollisionMasks1, Bank(StageRedFieldTopCollisionMasks1) - - dwb StageRedFieldTopCollisionAttributes4, Bank(StageRedFieldTopCollisionAttributes4) - dwb StageRedFieldTopCollisionMasks2, Bank(StageRedFieldTopCollisionMasks2) - - dwb StageRedFieldTopCollisionAttributes5, Bank(StageRedFieldTopCollisionAttributes5) - dwb StageRedFieldTopCollisionMasks2, Bank(StageRedFieldTopCollisionMasks2) - - dwb StageRedFieldTopCollisionAttributes6, Bank(StageRedFieldTopCollisionAttributes6) - dwb StageRedFieldTopCollisionMasks3, Bank(StageRedFieldTopCollisionMasks3) - - dwb StageRedFieldTopCollisionAttributes7, Bank(StageRedFieldTopCollisionAttributes7) - dwb StageRedFieldTopCollisionMasks3, Bank(StageRedFieldTopCollisionMasks3) + db $01 ; multiple pair entries + dwb StageRedFieldTopCollisionAttributes0, Bank(StageRedFieldTopCollisionAttributes0) + dwb StageRedFieldTopCollisionMasks0, Bank(StageRedFieldTopCollisionMasks0) + dwb StageRedFieldTopCollisionAttributes1, Bank(StageRedFieldTopCollisionAttributes1) + dwb StageRedFieldTopCollisionMasks0, Bank(StageRedFieldTopCollisionMasks0) + dwb StageRedFieldTopCollisionAttributes2, Bank(StageRedFieldTopCollisionAttributes2) + dwb StageRedFieldTopCollisionMasks1, Bank(StageRedFieldTopCollisionMasks1) + dwb StageRedFieldTopCollisionAttributes3, Bank(StageRedFieldTopCollisionAttributes3) + dwb StageRedFieldTopCollisionMasks1, Bank(StageRedFieldTopCollisionMasks1) + dwb StageRedFieldTopCollisionAttributes4, Bank(StageRedFieldTopCollisionAttributes4) + dwb StageRedFieldTopCollisionMasks2, Bank(StageRedFieldTopCollisionMasks2) + dwb StageRedFieldTopCollisionAttributes5, Bank(StageRedFieldTopCollisionAttributes5) + dwb StageRedFieldTopCollisionMasks2, Bank(StageRedFieldTopCollisionMasks2) + dwb StageRedFieldTopCollisionAttributes6, Bank(StageRedFieldTopCollisionAttributes6) + dwb StageRedFieldTopCollisionMasks3, Bank(StageRedFieldTopCollisionMasks3) + dwb StageRedFieldTopCollisionAttributes7, Bank(StageRedFieldTopCollisionAttributes7) + dwb StageRedFieldTopCollisionMasks3, Bank(StageRedFieldTopCollisionMasks3) StageRedFieldBottomCollisionAttributesPointers: ; 0xe5f8 - db $00 ; single pair entry - dwb StageRedFieldBottomCollisionAttributes, Bank(StageRedFieldBottomCollisionAttributes) - dwb StageRedFieldBottomCollisionMasks, Bank(StageRedFieldBottomCollisionMasks) + db $00 ; single pair entry + dwb StageRedFieldBottomCollisionAttributes, Bank(StageRedFieldBottomCollisionAttributes) + dwb StageRedFieldBottomCollisionMasks, Bank(StageRedFieldBottomCollisionMasks) StageUnusedCollisionAttributesPointers: ; 0xe5ff ; This entry is never used - db $00 + db $00 StageUnused2CollisionAttributesPointers: ; 0xe600 ; This entry is never used - db $00 + db $00 StageBlueFieldTopCollisionAttributesPointers: ; 0xe601 - db $01 ; multiple pair entries - dwb StageBlueFieldTopCollisionAttributesBallEntrance, Bank(StageBlueFieldTopCollisionAttributesBallEntrance) - dwb StageBlueFieldTopCollisionMasks, Bank(StageBlueFieldTopCollisionMasks) - - dwb StageBlueFieldTopCollisionAttributes, Bank(StageBlueFieldTopCollisionAttributes) - dwb StageBlueFieldTopCollisionMasks, Bank(StageBlueFieldTopCollisionMasks) + db $01 ; multiple pair entries + dwb StageBlueFieldTopCollisionAttributesBallEntrance, Bank(StageBlueFieldTopCollisionAttributesBallEntrance) + dwb StageBlueFieldTopCollisionMasks, Bank(StageBlueFieldTopCollisionMasks) + dwb StageBlueFieldTopCollisionAttributes, Bank(StageBlueFieldTopCollisionAttributes) + dwb StageBlueFieldTopCollisionMasks, Bank(StageBlueFieldTopCollisionMasks) StageBlueFieldBottomCollisionAttributesPointers: ; 0xe60e - db $00 ; single pair entry - dwb StageBlueFieldBottomCollisionAttributes, Bank(StageBlueFieldBottomCollisionAttributes) - dwb StageBlueFieldBottomCollisionMasks, Bank(StageBlueFieldBottomCollisionMasks) + db $00 ; single pair entry + dwb StageBlueFieldBottomCollisionAttributes, Bank(StageBlueFieldBottomCollisionAttributes) + dwb StageBlueFieldBottomCollisionMasks, Bank(StageBlueFieldBottomCollisionMasks) StageGengarBonusCollisionAttributesPointers: ; 0xe615 - db $01 ; multiple pair entries - dwb StageGengarBonusCollisionAttributesBallEntrance, Bank(StageGengarBonusCollisionAttributesBallEntrance) - dwb StageGengarBonusCollisionMasks, Bank(StageGengarBonusCollisionMasks) - - dwb StageGengarBonusCollisionAttributes, Bank(StageGengarBonusCollisionAttributes) - dwb StageGengarBonusCollisionMasks, Bank(StageGengarBonusCollisionMasks) + db $01 ; multiple pair entries + dwb StageGengarBonusCollisionAttributesBallEntrance, Bank(StageGengarBonusCollisionAttributesBallEntrance) + dwb StageGengarBonusCollisionMasks, Bank(StageGengarBonusCollisionMasks) + dwb StageGengarBonusCollisionAttributes, Bank(StageGengarBonusCollisionAttributes) + dwb StageGengarBonusCollisionMasks, Bank(StageGengarBonusCollisionMasks) StageMewtwoBonusCollisionAttributesPointers: ; 0xe622 - db $01 ; multiple pair entries - dwb StageMewtwoBonusCollisionAttributesBallEntrance, Bank(StageMewtwoBonusCollisionAttributesBallEntrance) - dwb StageMewtwoBonusCollisionMasks, Bank(StageMewtwoBonusCollisionMasks) - - dwb StageMewtwoBonusCollisionAttributes, Bank(StageMewtwoBonusCollisionAttributes) - dwb StageMewtwoBonusCollisionMasks, Bank(StageMewtwoBonusCollisionMasks) + db $01 ; multiple pair entries + dwb StageMewtwoBonusCollisionAttributesBallEntrance, Bank(StageMewtwoBonusCollisionAttributesBallEntrance) + dwb StageMewtwoBonusCollisionMasks, Bank(StageMewtwoBonusCollisionMasks) + dwb StageMewtwoBonusCollisionAttributes, Bank(StageMewtwoBonusCollisionAttributes) + dwb StageMewtwoBonusCollisionMasks, Bank(StageMewtwoBonusCollisionMasks) StageMeowthBonusCollisionAttributesPointers: ; 0xe62f - db $01 ; multiple pair entries - dwb StageMeowthBonusCollisionAttributesBallEntrance, Bank(StageMeowthBonusCollisionAttributesBallEntrance) - dwb StageMeowthBonusCollisionMasks, Bank(StageMeowthBonusCollisionMasks) - - dwb StageMeowthBonusCollisionAttributes, Bank(StageMeowthBonusCollisionAttributes) - dwb StageMeowthBonusCollisionMasks, Bank(StageMeowthBonusCollisionMasks) + db $01 ; multiple pair entries + dwb StageMeowthBonusCollisionAttributesBallEntrance, Bank(StageMeowthBonusCollisionAttributesBallEntrance) + dwb StageMeowthBonusCollisionMasks, Bank(StageMeowthBonusCollisionMasks) + dwb StageMeowthBonusCollisionAttributes, Bank(StageMeowthBonusCollisionAttributes) + dwb StageMeowthBonusCollisionMasks, Bank(StageMeowthBonusCollisionMasks) StageDiglettBonusCollisionAttributesPointers: ; 0xe63c - db $01 ; multiple pair entries - dwb StageDiglettBonusCollisionAttributesBallEntrance, Bank(StageDiglettBonusCollisionAttributesBallEntrance) - dwb StageDiglettBonusCollisionMasks, Bank(StageDiglettBonusCollisionMasks) - - dwb StageDiglettBonusCollisionAttributes, Bank(StageDiglettBonusCollisionAttributes) - dwb StageDiglettBonusCollisionMasks, Bank(StageDiglettBonusCollisionMasks) + db $01 ; multiple pair entries + dwb StageDiglettBonusCollisionAttributesBallEntrance, Bank(StageDiglettBonusCollisionAttributesBallEntrance) + dwb StageDiglettBonusCollisionMasks, Bank(StageDiglettBonusCollisionMasks) + dwb StageDiglettBonusCollisionAttributes, Bank(StageDiglettBonusCollisionAttributes) + dwb StageDiglettBonusCollisionMasks, Bank(StageDiglettBonusCollisionMasks) StageSeelBonusCollisionAttributesPointers: ; 0xe649 - db $01 ; multiple pair entries - dwb StageSeelBonusCollisionAttributesBallEntrance, Bank(StageSeelBonusCollisionAttributesBallEntrance) - dwb StageSeelBonusCollisionMasks, Bank(StageSeelBonusCollisionMasks) - - dwb StageSeelBonusCollisionAttributes, Bank(StageSeelBonusCollisionAttributes) - dwb StageSeelBonusCollisionMasks, Bank(StageSeelBonusCollisionMasks) + db $01 ; multiple pair entries + dwb StageSeelBonusCollisionAttributesBallEntrance, Bank(StageSeelBonusCollisionAttributesBallEntrance) + dwb StageSeelBonusCollisionMasks, Bank(StageSeelBonusCollisionMasks) + dwb StageSeelBonusCollisionAttributes, Bank(StageSeelBonusCollisionAttributes) + dwb StageSeelBonusCollisionMasks, Bank(StageSeelBonusCollisionMasks) LoadCollisionAttributes: ; 0xe656 ; Loads the stage's collision attributes into RAM ; Input: [wStageCollisionMapPointer] = pointer to collision attributes map ; [wStageCollisionMapBank] = ROM bank of collision attributes map - ld hl, wStageCollisionMapPointer - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wStageCollisionMapBank] - ld de, wStageCollisionMap - ld bc, $0300 - call CopyDataToRAM - ld hl, wStageCollisionMapPointer - ld [hl], (wStageCollisionMap & $ff) - inc hl - ld [hl], (wStageCollisionMap >> 8) - inc hl - ld [hl], $0 ; Bank 0, because the data is in WRAM, so it doesn't matter which bank is saved - ret - -Func_e674: ; 0xe674 - push af - ld a, [$d548] - push af - xor a - ld [$d548], a - ld [$d803], a - ld [$ff8a], a - ld a, Bank(Func_84b7) - ld hl, Func_84b7 - call BankSwitch - call Func_926 - pop af - ld [$d548], a - pop af - ld [wCurrentStage], a - xor a - ld [$ffa3], a - ld [$ffa4], a - ld [$ffa5], a - rst $10 - call Func_e5d - call Func_576 - call ClearOAMBuffer - call Func_1129 - call LoadStageCollisionAttributes - call Func_e6c2 - call Func_e5d - call Func_588 - ld a, $e4 - ld [$ffa3], a - ld a, $e1 - ld [$ffa4], a - ld a, $e4 - ld [$ffa5], a - ret + ld hl, wStageCollisionMapPointer + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wStageCollisionMapBank] + ld de, wStageCollisionMap + ld bc, $0300 + call FarCopyData + ld hl, wStageCollisionMapPointer + ld [hl], (wStageCollisionMap & $ff) + inc hl + ld [hl], (wStageCollisionMap >> 8) + inc hl + ld [hl], $0 ; Bank 0, because the data is in WRAM, so it doesn't matter which bank is saved + ret + +FieldVerticalTransition: ; 0xe674 + push af + ld a, [wd548] + push af + xor a + ld [wd548], a + ld [wd803], a + callba Func_84b7 + call Func_926 + pop af + ld [wd548], a + pop af + ld [wCurrentStage], a + xor a + ld [hBGP], a + ld [hOBP0], a + ld [hOBP1], a + rst AdvanceFrame + call Func_e5d + call Func_576 + call ClearOAMBuffer + call Func_1129 + call LoadStageCollisionAttributes + call Func_e6c2 + call Func_e5d + call Func_588 + ld a, $e4 + ld [hBGP], a + ld a, $e1 + ld [hOBP0], a + ld a, $e4 + ld [hOBP1], a + ret Func_e6c2: ; 0xe6c2 - ld a, [wCurrentStage] - bit 0, a - ld a, $86 - jr z, .asm_e6d5 - ld a, [$d5ca] - and a - ld a, $86 - jr nz, .asm_e6d5 - ld a, $90 + ld a, [wCurrentStage] + bit 0, a + ld a, $86 + jr z, .asm_e6d5 + ld a, [wd5ca] + and a + ld a, $86 + jr nz, .asm_e6d5 + ld a, $90 .asm_e6d5 - ld [$ffa6], a - ld hl, StageGfxPointers_GameBoy - ld a, [hGameBoyColorFlag] - and a - jr z, .loadData - ld hl, StageGfxPointers_GameBoyColor + ld [hWY], a + ld hl, StageGfxPointers_GameBoy + ld a, [hGameBoyColorFlag] + and a + jr z, .loadData + ld hl, StageGfxPointers_GameBoyColor .loadData - ld a, [wCurrentStage] - call LoadVideoData - xor a - ld [$d7f2], a - ld [$ff8a], a - ld a, Bank(Func_8471) - ld hl, Func_8471 - call BankSwitch - ret + ld a, [wCurrentStage] + call LoadVideoData + xor a + ld [wd7f2], a + callba Func_8471 + ret StageGfxPointers_GameBoy: ; 0xe6f7 - dw StageRedFieldTopGfx_GameBoy - dw StageRedFieldBottomGfx_GameBoy - dw VideoData_e896 - dw VideoData_e8bd - dw StageBlueFieldTopGfx_GameBoy - dw StageBlueFieldBottomGfx_GameBoy - dw StageGengarBonusGfx_GameBoy - dw StageGengarBonusGfx_GameBoy - dw StageMewtwoBonusGfx_GameBoy - dw StageMewtwoBonusGfx_GameBoy - dw StageMeowthBonusGfx_GameBoy - dw StageMeowthBonusGfx_GameBoy - dw StageDiglettBonusGfx_GameBoy - dw StageDiglettBonusGfx_GameBoy - dw StageSeelBonusGfx_GameBoy - dw StageSeelBonusGfx_GameBoy + dw StageRedFieldTopGfx_GameBoy + dw StageRedFieldBottomGfx_GameBoy + dw VideoData_e896 + dw VideoData_e8bd + dw StageBlueFieldTopGfx_GameBoy + dw StageBlueFieldBottomGfx_GameBoy + dw StageGengarBonusGfx_GameBoy + dw StageGengarBonusGfx_GameBoy + dw StageMewtwoBonusGfx_GameBoy + dw StageMewtwoBonusGfx_GameBoy + dw StageMeowthBonusGfx_GameBoy + dw StageMeowthBonusGfx_GameBoy + dw StageDiglettBonusGfx_GameBoy + dw StageDiglettBonusGfx_GameBoy + dw StageSeelBonusGfx_GameBoy + dw StageSeelBonusGfx_GameBoy StageGfxPointers_GameBoyColor: ; 0xe717 - dw StageRedFieldTopGfx_GameBoyColor - dw StageRedFieldBottomGfx_GameBoyColor - dw VideoData_e8a6 - dw VideoData_e8d4 - dw StageBlueFieldTopGfx_GameBoyColor - dw StageBlueFieldBottomGfx_GameBoyColor - dw StageGengarBonusGfx_GameBoyColor - dw StageGengarBonusGfx_GameBoyColor - dw StageMewtwoBonusGfx_GameBoyColor - dw StageMewtwoBonusGfx_GameBoyColor - dw StageMeowthBonusGfx_GameBoyColor - dw StageMeowthBonusGfx_GameBoyColor - dw StageDiglettBonusGfx_GameBoyColor - dw StageDiglettBonusGfx_GameBoyColor - dw StageSeelBonusGfx_GameBoyColor - dw StageSeelBonusGfx_GameBoyColor + dw StageRedFieldTopGfx_GameBoyColor + dw StageRedFieldBottomGfx_GameBoyColor + dw VideoData_e8a6 + dw VideoData_e8d4 + dw StageBlueFieldTopGfx_GameBoyColor + dw StageBlueFieldBottomGfx_GameBoyColor + dw StageGengarBonusGfx_GameBoyColor + dw StageGengarBonusGfx_GameBoyColor + dw StageMewtwoBonusGfx_GameBoyColor + dw StageMewtwoBonusGfx_GameBoyColor + dw StageMeowthBonusGfx_GameBoyColor + dw StageMeowthBonusGfx_GameBoyColor + dw StageDiglettBonusGfx_GameBoyColor + dw StageDiglettBonusGfx_GameBoyColor + dw StageSeelBonusGfx_GameBoyColor + dw StageSeelBonusGfx_GameBoyColor StageRedFieldTopGfx_GameBoy: ; 0xe737 - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES StageRedFieldTopGfx1, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 - VIDEO_DATA_TILES StageRedFieldTopGfx2, vTiles0 + $600, $200 - VIDEO_DATA_TILES StageRedFieldTopStatusBarSymbolsGfx_GameBoy, vTiles1, $100 - VIDEO_DATA_TILES StageRedFieldTopGfx3, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES StageRedFieldTopBaseGameBoyGfx, vTiles1 + $2a0, $d60 - VIDEO_DATA_TILEMAP StageRedFieldTopTilemap_GameBoy, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES StageRedFieldTopGfx1, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $200 + VIDEO_DATA_TILES StageRedFieldTopGfx2, vTilesOB + $600, $200 + VIDEO_DATA_TILES StageRedFieldTopStatusBarSymbolsGfx_GameBoy, vTilesSH, $100 + VIDEO_DATA_TILES StageRedFieldTopGfx3, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES StageRedFieldTopBaseGameBoyGfx, vTilesSH + $2a0, $d60 + VIDEO_DATA_TILEMAP StageRedFieldTopTilemap_GameBoy, vBGMap, $400 + db $FF, $FF ; terminators StageRedFieldTopGfx_GameBoyColor: ; 0xe771 - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES StageRedFieldTopGfx1, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 - VIDEO_DATA_TILES StageRedFieldTopGfx2, vTiles0 + $600, $200 - VIDEO_DATA_TILES StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor, vTiles1, $100 - VIDEO_DATA_TILES StageRedFieldTopGfx3, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES StageRedFieldTopBaseGameBoyColorGfx, vTiles1 + $2a0, $d60 - VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx4, vTiles1, $1000 - VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx5, vTiles0, $200 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx, vTiles0 + $200, $400 - VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx2, vTiles1 + $100, $200 - VIDEO_DATA_TILES_BANK2 StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor, vTiles1, $100 - VIDEO_DATA_TILEMAP StageRedFieldTopTilemap_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 StageRedFieldTopTilemap2_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_PALETTES StageRedFieldTopPalettes, $80 - VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx6, vTiles0 + $7c0, $40 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES StageRedFieldTopGfx1, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $200 + VIDEO_DATA_TILES StageRedFieldTopGfx2, vTilesOB + $600, $200 + VIDEO_DATA_TILES StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor, vTilesSH, $100 + VIDEO_DATA_TILES StageRedFieldTopGfx3, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES StageRedFieldTopBaseGameBoyColorGfx, vTilesSH + $2a0, $d60 + VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx4, vTilesSH, $1000 + VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx5, vTilesOB, $200 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx, vTilesOB + $200, $400 + VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx2, vTilesSH + $100, $200 + VIDEO_DATA_TILES_BANK2 StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor, vTilesSH, $100 + VIDEO_DATA_TILEMAP StageRedFieldTopTilemap_GameBoyColor, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 StageRedFieldTopTilemap2_GameBoyColor, vBGMap, $400 + VIDEO_DATA_PALETTES StageRedFieldTopPalettes, $80 + VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx6, vTilesOB + $7c0, $40 + db $FF, $FF ; terminators StageRedFieldBottomGfx_GameBoy: ; 0xe7ea - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160 - VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80 - VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20 - VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 - VIDEO_DATA_TILES StageRedFieldBottomBaseGameBoyGfx, vTiles1, $1000 - VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 - VIDEO_DATA_TILEMAP StageRedFieldBottomTilemap_GameBoy, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTilesOB + $1a0, $160 + VIDEO_DATA_TILES StageSharedArrowsGfx, vTilesOB + $300, $80 + VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTilesOB + $380, $20 + VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTilesOB + $3c0, $440 + VIDEO_DATA_TILES StageRedFieldBottomBaseGameBoyGfx, vTilesSH, $1000 + VIDEO_DATA_TILES SaverTextOffGfx, vTilesSH + $2a0, $40 + VIDEO_DATA_TILEMAP StageRedFieldBottomTilemap_GameBoy, vBGMap, $400 + db $FF, $FF ; terminators StageRedFieldBottomGfx_GameBoyColor: ; 0xe824 - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160 - VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80 - VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20 - VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 - VIDEO_DATA_TILES StageRedFieldBottomBaseGameBoyColorGfx, vTiles1, $1000 - VIDEO_DATA_TILES_BANK2 StageRedFieldBottomGfx5, vTiles1, $1000 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 - VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx, vTiles0 + $200, $400 - VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx2, vTiles1 + $100, $200 - VIDEO_DATA_TILES_BANK2 StageRedFieldBottomBaseGameBoyColorGfx, vTiles1, $100 - VIDEO_DATA_TILEMAP StageRedFieldBottomTilemap_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 StageRedFieldBottomTilemap2_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_PALETTES StageRedFieldBottomPalettes, $80 - VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx6, vTiles0 + $7c0, $40 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTilesOB + $1a0, $160 + VIDEO_DATA_TILES StageSharedArrowsGfx, vTilesOB + $300, $80 + VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTilesOB + $380, $20 + VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTilesOB + $3c0, $440 + VIDEO_DATA_TILES StageRedFieldBottomBaseGameBoyColorGfx, vTilesSH, $1000 + VIDEO_DATA_TILES_BANK2 StageRedFieldBottomGfx5, vTilesSH, $1000 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILES SaverTextOffGfx, vTilesSH + $2a0, $40 + VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx, vTilesOB + $200, $400 + VIDEO_DATA_TILES_BANK2 StageRedJapaneseCharactersGfx2, vTilesSH + $100, $200 + VIDEO_DATA_TILES_BANK2 StageRedFieldBottomBaseGameBoyColorGfx, vTilesSH, $100 + VIDEO_DATA_TILEMAP StageRedFieldBottomTilemap_GameBoyColor, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 StageRedFieldBottomTilemap2_GameBoyColor, vBGMap, $400 + VIDEO_DATA_PALETTES StageRedFieldBottomPalettes, $80 + VIDEO_DATA_TILES_BANK2 StageRedFieldTopGfx6, vTilesOB + $7c0, $40 + db $FF, $FF ; terminators VideoData_e896: ; 0xe896 - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $200 + db $FF, $FF ; terminators VideoData_e8a6: ; 0xe8a6 - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $200 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + db $FF, $FF ; terminators VideoData_e8bd: ; 0xe8bd - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES PinballPokeballShakeGfx, vTiles0 + $380, $480 - VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES PinballPokeballShakeGfx, vTilesOB + $380, $480 + VIDEO_DATA_TILES SaverTextOffGfx, vTilesSH + $2a0, $40 + db $FF, $FF ; terminators VideoData_e8d4: ; 0xe8d4 - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES PinballPokeballShakeGfx, vTiles0 + $380, $480 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES PinballPokeballShakeGfx, vTilesOB + $380, $480 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILES SaverTextOffGfx, vTilesSH + $2a0, $40 + db $FF, $FF ; terminators StageBlueFieldTopGfx_GameBoy: ; 0xe8f2 - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES StageBlueFieldTopGfx1, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 - VIDEO_DATA_TILES StageBlueFieldTopGfx2, vTiles0 + $600, $200 - VIDEO_DATA_TILES StageBlueFieldTopStatusBarSymbolsGfx_GameBoy, vTiles1, $100 - VIDEO_DATA_TILES StageBlueFieldTopGfx3, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES StageBlueFieldTopBaseGameBoyGfx, vTiles1 + $2a0, $d60 - VIDEO_DATA_TILEMAP StageBlueFieldTopTilemap_GameBoy, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES StageBlueFieldTopGfx1, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $200 + VIDEO_DATA_TILES StageBlueFieldTopGfx2, vTilesOB + $600, $200 + VIDEO_DATA_TILES StageBlueFieldTopStatusBarSymbolsGfx_GameBoy, vTilesSH, $100 + VIDEO_DATA_TILES StageBlueFieldTopGfx3, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES StageBlueFieldTopBaseGameBoyGfx, vTilesSH + $2a0, $d60 + VIDEO_DATA_TILEMAP StageBlueFieldTopTilemap_GameBoy, vBGMap, $400 + db $FF, $FF ; terminators StageBlueFieldTopGfx_GameBoyColor: ; 0xe92c - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES StageBlueFieldTopGfx1, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $200 - VIDEO_DATA_TILES StageBlueFieldTopGfx2, vTiles0 + $600, $200 - VIDEO_DATA_TILES StageBlueFieldTopStatusBarSymbolsGfx_GameBoyColor, vTiles1, $100 - VIDEO_DATA_TILES StageBlueFieldTopGfx3, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES StageBlueFieldTopBaseGameBoyColorGfx, vTiles1 + $2a0, $d60 - VIDEO_DATA_TILES_BANK2 StageBlueFieldTopGfx4, vTiles1, $1000 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILEMAP StageBlueFieldTopTilemap_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 StageBlueFieldTopTilemap2_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_PALETTES StageBlueFieldTopPalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES StageBlueFieldTopGfx1, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $200 + VIDEO_DATA_TILES StageBlueFieldTopGfx2, vTilesOB + $600, $200 + VIDEO_DATA_TILES StageBlueFieldTopStatusBarSymbolsGfx_GameBoyColor, vTilesSH, $100 + VIDEO_DATA_TILES StageBlueFieldTopGfx3, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES StageBlueFieldTopBaseGameBoyColorGfx, vTilesSH + $2a0, $d60 + VIDEO_DATA_TILES_BANK2 StageBlueFieldTopGfx4, vTilesSH, $1000 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILEMAP StageBlueFieldTopTilemap_GameBoyColor, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 StageBlueFieldTopTilemap2_GameBoyColor, vBGMap, $400 + VIDEO_DATA_PALETTES StageBlueFieldTopPalettes, $80 + db $FF, $FF ; terminators StageBlueFieldBottomGfx_GameBoy: ; 0xe982 - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160 - VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80 - VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20 - VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 - VIDEO_DATA_TILES StageBlueFieldBottomBaseGameBoyGfx, vTiles1, $1000 - VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 - VIDEO_DATA_TILEMAP StageBlueFieldBottomTilemap_GameBoy, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTilesOB + $1a0, $160 + VIDEO_DATA_TILES StageSharedArrowsGfx, vTilesOB + $300, $80 + VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTilesOB + $380, $20 + VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTilesOB + $3c0, $440 + VIDEO_DATA_TILES StageBlueFieldBottomBaseGameBoyGfx, vTilesSH, $1000 + VIDEO_DATA_TILES SaverTextOffGfx, vTilesSH + $2a0, $40 + VIDEO_DATA_TILEMAP StageBlueFieldBottomTilemap_GameBoy, vBGMap, $400 + db $FF, $FF ; terminators StageBlueFieldBottomGfx_GameBoyColor: ; 0xe9bc - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTiles0 + $1a0, $160 - VIDEO_DATA_TILES StageSharedArrowsGfx, vTiles0 + $300, $80 - VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTiles0 + $380, $20 - VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 - VIDEO_DATA_TILES StageBlueFieldBottomBaseGameBoyColorGfx, vTiles1, $1000 - VIDEO_DATA_TILES_BANK2 StageBlueFieldBottomGfx1, vTiles1, $1000 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILES SaverTextOffGfx, vTiles1 + $2a0, $40 - VIDEO_DATA_TILEMAP StageBlueFieldBottomTilemap_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 StageBlueFieldBottomTilemap2_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_PALETTES StageBlueFieldBottomPalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES StageSharedBonusSlotGlowGfx, vTilesOB + $1a0, $160 + VIDEO_DATA_TILES StageSharedArrowsGfx, vTilesOB + $300, $80 + VIDEO_DATA_TILES StageSharedBonusSlotGlow2Gfx, vTilesOB + $380, $20 + VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTilesOB + $3c0, $440 + VIDEO_DATA_TILES StageBlueFieldBottomBaseGameBoyColorGfx, vTilesSH, $1000 + VIDEO_DATA_TILES_BANK2 StageBlueFieldBottomGfx1, vTilesSH, $1000 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILES SaverTextOffGfx, vTilesSH + $2a0, $40 + VIDEO_DATA_TILEMAP StageBlueFieldBottomTilemap_GameBoyColor, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 StageBlueFieldBottomTilemap2_GameBoyColor, vBGMap, $400 + VIDEO_DATA_PALETTES StageBlueFieldBottomPalettes, $80 + db $FF, $FF ; terminators StageGengarBonusGfx_GameBoy: ; 0xea12 - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 - VIDEO_DATA_TILES GengarBonusBaseGameBoyGfx, vTiles1, $1000 - VIDEO_DATA_TILES GengarBonusGastlyGfx, vTiles1 + $100, $180 - VIDEO_DATA_TILES GengarBonusHaunter1Gfx, vTiles1 + $280, $20 - VIDEO_DATA_TILES GengarBonusHaunter2Gfx, vTiles0 + $1a0, $100 - VIDEO_DATA_TILES GengarBonusGengar1Gfx, vTiles0 + $2a0, $160 - VIDEO_DATA_TILES GengarBonusGengar2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES GengarBonusGengar3Gfx, vTiles1 + $2a0, $2a0 - VIDEO_DATA_TILEMAP GengarBonusTilemap_GameBoy, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $320 + VIDEO_DATA_TILES GengarBonusBaseGameBoyGfx, vTilesSH, $1000 + VIDEO_DATA_TILES GengarBonusGastlyGfx, vTilesSH + $100, $180 + VIDEO_DATA_TILES GengarBonusHaunter1Gfx, vTilesSH + $280, $20 + VIDEO_DATA_TILES GengarBonusHaunter2Gfx, vTilesOB + $1a0, $100 + VIDEO_DATA_TILES GengarBonusGengar1Gfx, vTilesOB + $2a0, $160 + VIDEO_DATA_TILES GengarBonusGengar2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES GengarBonusGengar3Gfx, vTilesSH + $2a0, $2a0 + VIDEO_DATA_TILEMAP GengarBonusTilemap_GameBoy, vBGMap, $400 + db $FF, $FF ; terminators StageGengarBonusGfx_GameBoyColor: ; 0xea5a - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTiles0 + $3c0, $440 - VIDEO_DATA_TILES GengarBonusBaseGameBoyColorGfx, vTiles1, $1000 - VIDEO_DATA_TILES GengarBonusGastlyGfx, vTiles1 + $100, $180 - VIDEO_DATA_TILES GengarBonusHaunter1Gfx, vTiles1 + $280, $20 - VIDEO_DATA_TILES GengarBonusHaunter2Gfx, vTiles0 + $1a0, $100 - VIDEO_DATA_TILES GengarBonusGengar1Gfx, vTiles0 + $2a0, $160 - VIDEO_DATA_TILES GengarBonusGengar2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES GengarBonusGengar3Gfx, vTiles1 + $2a0, $2a0 - VIDEO_DATA_TILES_BANK2 GengarBonus1Gfx, vTiles1, $1000 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILEMAP GengarBonusBottomTilemap_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 GengarBonusBottomTilemap2_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_PALETTES GengarBonusPalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES StageSharedPikaBoltGfx, vTilesOB + $3c0, $440 + VIDEO_DATA_TILES GengarBonusBaseGameBoyColorGfx, vTilesSH, $1000 + VIDEO_DATA_TILES GengarBonusGastlyGfx, vTilesSH + $100, $180 + VIDEO_DATA_TILES GengarBonusHaunter1Gfx, vTilesSH + $280, $20 + VIDEO_DATA_TILES GengarBonusHaunter2Gfx, vTilesOB + $1a0, $100 + VIDEO_DATA_TILES GengarBonusGengar1Gfx, vTilesOB + $2a0, $160 + VIDEO_DATA_TILES GengarBonusGengar2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES GengarBonusGengar3Gfx, vTilesSH + $2a0, $2a0 + VIDEO_DATA_TILES_BANK2 GengarBonus1Gfx, vTilesSH, $1000 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILEMAP GengarBonusBottomTilemap_GameBoyColor, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 GengarBonusBottomTilemap2_GameBoyColor, vBGMap, $400 + VIDEO_DATA_PALETTES GengarBonusPalettes, $80 + db $FF, $FF ; terminators StageMewtwoBonusGfx_GameBoy: ; 0xeabe - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES MewtwoBonus1Gfx, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 - VIDEO_DATA_TILES MewtwoBonus2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES MewtwoBonusBaseGameBoyGfx, vTiles1, $1000 - VIDEO_DATA_TILES MewtwoBonus3Gfx, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES MewtwoBonus4Gfx, vTiles1 + $2a0, $2a0 - VIDEO_DATA_TILEMAP MewtwoBonusTilemap_GameBoy, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES MewtwoBonus1Gfx, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $320 + VIDEO_DATA_TILES MewtwoBonus2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES MewtwoBonusBaseGameBoyGfx, vTilesSH, $1000 + VIDEO_DATA_TILES MewtwoBonus3Gfx, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES MewtwoBonus4Gfx, vTilesSH + $2a0, $2a0 + VIDEO_DATA_TILEMAP MewtwoBonusTilemap_GameBoy, vBGMap, $400 + db $FF, $FF ; terminators StageMewtwoBonusGfx_GameBoyColor: ; 0xeaf8 - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES MewtwoBonus1Gfx, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 - VIDEO_DATA_TILES MewtwoBonus2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES MewtwoBonusBaseGameBoyColorGfx, vTiles1, $1000 - VIDEO_DATA_TILES MewtwoBonus3Gfx, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES MewtwoBonus4Gfx, vTiles1 + $2a0, $2a0 - - ; Can't use a macro here because it's copying the tiles from VRAM, not ROM. - dw vTiles0 - db $20 ; This is an arbitrary bank, since the data is in VRAM, not ROM. - dw vTiles1 - dw $4002 - - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILEMAP MewtoBonusBottomTilemap_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 MewtoBonusBottomTilemap2_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_PALETTES MewtwoBonusPalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES MewtwoBonus1Gfx, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $320 + VIDEO_DATA_TILES MewtwoBonus2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES MewtwoBonusBaseGameBoyColorGfx, vTilesSH, $1000 + VIDEO_DATA_TILES MewtwoBonus3Gfx, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES MewtwoBonus4Gfx, vTilesSH + $2a0, $2a0 + ; Can't use a macro here because it's copying the tiles from VRAM, not ROM. + dw vTilesOB + db $20 ; This is an arbitrary bank, since the data is in VRAM, not ROM. + dw vTilesSH + dw $4002 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILEMAP MewtoBonusBottomTilemap_GameBoyColor, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 MewtoBonusBottomTilemap2_GameBoyColor, vBGMap, $400 + VIDEO_DATA_PALETTES MewtwoBonusPalettes, $80 + db $FF, $FF ; terminators StageMeowthBonusGfx_GameBoy: ; 0xeb4e - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES MeowthBonusMeowth1Gfx, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 - VIDEO_DATA_TILES MeowthBonusMeowth2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES MeowthBonusBaseGameBoyGfx, vTiles1, $a00 - VIDEO_DATA_TILES MeowthBonusMeowth3Gfx, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES MeowthBonusMeowth4Gfx, vTiles1 + $2a0, $360 - VIDEO_DATA_TILEMAP MeowthBonusTilemap_GameBoy, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES MeowthBonusMeowth1Gfx, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $320 + VIDEO_DATA_TILES MeowthBonusMeowth2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES MeowthBonusBaseGameBoyGfx, vTilesSH, $a00 + VIDEO_DATA_TILES MeowthBonusMeowth3Gfx, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES MeowthBonusMeowth4Gfx, vTilesSH + $2a0, $360 + VIDEO_DATA_TILEMAP MeowthBonusTilemap_GameBoy, vBGMap, $400 + db $FF, $FF ; terminators StageMeowthBonusGfx_GameBoyColor: ; 0xeb88 - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES MeowthBonusMeowth1Gfx, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 - VIDEO_DATA_TILES MeowthBonusMeowth2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES MeowthBonusBaseGameBoyColorGfx, vTiles1, $900 - VIDEO_DATA_TILES MeowthBonusMeowth3Gfx, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES MeowthBonusMeowth4Gfx, vTiles1 + $2a0, $360 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILEMAP MeowthBonusTilemap_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 MeowthBonusTilemap2_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_PALETTES MeowthBonusPalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES MeowthBonusMeowth1Gfx, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $320 + VIDEO_DATA_TILES MeowthBonusMeowth2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES MeowthBonusBaseGameBoyColorGfx, vTilesSH, $900 + VIDEO_DATA_TILES MeowthBonusMeowth3Gfx, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES MeowthBonusMeowth4Gfx, vTilesSH + $2a0, $360 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILEMAP MeowthBonusTilemap_GameBoyColor, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 MeowthBonusTilemap2_GameBoyColor, vBGMap, $400 + VIDEO_DATA_PALETTES MeowthBonusPalettes, $80 + db $FF, $FF ; terminators StageDiglettBonusGfx_GameBoy: ; 0xebd7 - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES DiglettBonusDugtrio1Gfx, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 - VIDEO_DATA_TILES DiglettBonusDugtrio2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES DiglettBonusBaseGameBoyGfx, vTiles1, $e00 ; $e00 is actually $100 too many bytes. Should only be $d00. This accidentally loads palette data after the tile graphics. - VIDEO_DATA_TILES DiglettBonusDugtrio3Gfx, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES DiglettBonusDugtrio4Gfx, vTiles1 + $2a0, $280 - VIDEO_DATA_TILEMAP DiglettBonusTilemap_GameBoy, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES DiglettBonusDugtrio1Gfx, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $320 + VIDEO_DATA_TILES DiglettBonusDugtrio2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES DiglettBonusBaseGameBoyGfx, vTilesSH, $e00 ; $e00 is actually $100 too many bytes. Should only be $d00. This accidentally loads palette data after the tile graphics. + VIDEO_DATA_TILES DiglettBonusDugtrio3Gfx, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES DiglettBonusDugtrio4Gfx, vTilesSH + $2a0, $280 + VIDEO_DATA_TILEMAP DiglettBonusTilemap_GameBoy, vBGMap, $400 + db $FF, $FF ; terminators StageDiglettBonusGfx_GameBoyColor: ; 0xec11 - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES DiglettBonusDugtrio1Gfx, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 - VIDEO_DATA_TILES DiglettBonusDugtrio2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES DiglettBonusBaseGameBoyColorGfx, vTiles1, $e00 - VIDEO_DATA_TILES DiglettBonusDugtrio3Gfx, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES DiglettBonusDugtrio4Gfx, vTiles1 + $2a0, $280 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILEMAP DiglettBonusTilemap_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 DiglettBonusTilemap2_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_PALETTES DiglettBonusPalettes, $80 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES DiglettBonusDugtrio1Gfx, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $320 + VIDEO_DATA_TILES DiglettBonusDugtrio2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES DiglettBonusBaseGameBoyColorGfx, vTilesSH, $e00 + VIDEO_DATA_TILES DiglettBonusDugtrio3Gfx, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES DiglettBonusDugtrio4Gfx, vTilesSH + $2a0, $280 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILEMAP DiglettBonusTilemap_GameBoyColor, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 DiglettBonusTilemap2_GameBoyColor, vBGMap, $400 + VIDEO_DATA_PALETTES DiglettBonusPalettes, $80 + db $FF, $FF ; terminators StageSeelBonusGfx_GameBoy: ; 0xec60 - VIDEO_DATA_TILES Alphabet1Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES SeelBonusSeel1Gfx, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 - VIDEO_DATA_TILES SeelBonusSeel2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES SeelBonusBaseGameBoyGfx, vTiles1, $d00 ; $d00 is actually $100 too many bytes. Should only be $c00. This accidentally loads palette data after the tile graphics. - VIDEO_DATA_TILES SeelBonusSeel3Gfx, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES SeelBonusSeel4Gfx, vTiles1 + $2a0, $4a0 - VIDEO_DATA_TILEMAP SeelBonusTilemap_GameBoy, vBGMap0, $400 - db $FF, $FF ; terminators + VIDEO_DATA_TILES Alphabet1Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES SeelBonusSeel1Gfx, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $320 + VIDEO_DATA_TILES SeelBonusSeel2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES SeelBonusBaseGameBoyGfx, vTilesSH, $d00 ; $d00 is actually $100 too many bytes. Should only be $c00. This accidentally loads palette data after the tile graphics. + VIDEO_DATA_TILES SeelBonusSeel3Gfx, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES SeelBonusSeel4Gfx, vTilesSH + $2a0, $4a0 + VIDEO_DATA_TILEMAP SeelBonusTilemap_GameBoy, vBGMap, $400 + db $FF, $FF ; terminators StageSeelBonusGfx_GameBoyColor: ; 0xec9a - VIDEO_DATA_TILES Alphabet2Gfx, vTiles0, $1a0 - VIDEO_DATA_TILES SeelBonusSeel1Gfx, vTiles0 + $1a0, $260 - VIDEO_DATA_TILES PinballPokeballGfx, vTiles0 + $400, $320 - VIDEO_DATA_TILES SeelBonusSeel2Gfx, vTiles0 + $7a0, $60 - VIDEO_DATA_TILES SeelBonusBaseGameBoyColorGfx, vTiles1, $b00 ; Should actually be $a00 bytes, not $b00 - VIDEO_DATA_TILES SeelBonusSeel3Gfx, vTiles1 + $100, $1a0 - VIDEO_DATA_TILES SeelBonusSeel4Gfx, vTiles1 + $2a0, $4a0 - VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTiles0 + $600, $160 - VIDEO_DATA_TILEMAP SeelBonusTilemap_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_TILEMAP_BANK2 SeelBonusTilemap2_GameBoyColor, vBGMap0, $400 - VIDEO_DATA_PALETTES SeelBonusPalettes, $80 - db $FF, $FF ; terminators - -Func_ece9: ; 0xece9 - call Func_ed5e - ld a, [wBallYPos + 1] - add $10 - cp $18 - jr c, .asm_ed13 - cp $b8 - ret c - ld a, [wCurrentStage] - ld c, a - ld b, $0 - ld hl, BallMovingDownStageTransitions - add hl, bc - ld a, [hl] - cp $ff - jr z, .asm_ed2e - call Func_e674 - ld a, [wBallYPos + 1] - sub $88 - ld [wBallYPos + 1], a - ret -.asm_ed13 - ld a, [wCurrentStage] - ld c, a - ld b, $0 - ld hl, BallMovingUpStageTransitions - add hl, bc - ld a, [hl] - cp $ff - jr z, .asm_ed2e - call Func_e674 - ld a, [wBallYPos + 1] - add $88 - ld [wBallYPos + 1], a - ret -.asm_ed2e - ld a, $1 - ld [$d4ae], a - ld [$ff8a], a - ld a, Bank(Func_dc49) - ld hl, Func_dc49 - call BankSwitch - ret + VIDEO_DATA_TILES Alphabet2Gfx, vTilesOB, $1a0 + VIDEO_DATA_TILES SeelBonusSeel1Gfx, vTilesOB + $1a0, $260 + VIDEO_DATA_TILES PinballPokeballGfx, vTilesOB + $400, $320 + VIDEO_DATA_TILES SeelBonusSeel2Gfx, vTilesOB + $7a0, $60 + VIDEO_DATA_TILES SeelBonusBaseGameBoyColorGfx, vTilesSH, $b00 ; Should actually be $a00 bytes, not $b00 + VIDEO_DATA_TILES SeelBonusSeel3Gfx, vTilesSH + $100, $1a0 + VIDEO_DATA_TILES SeelBonusSeel4Gfx, vTilesSH + $2a0, $4a0 + VIDEO_DATA_TILES_BANK2 TimerDigitsGfx, vTilesOB + $600, $160 + VIDEO_DATA_TILEMAP SeelBonusTilemap_GameBoyColor, vBGMap, $400 + VIDEO_DATA_TILEMAP_BANK2 SeelBonusTilemap2_GameBoyColor, vBGMap, $400 + VIDEO_DATA_PALETTES SeelBonusPalettes, $80 + db $FF, $FF ; terminators + +CheckStageTransition: ; 0xece9 + call Func_ed5e + ld a, [wBallYPos + 1] + add $10 + cp $18 + jr c, .moving_up + cp $b8 + ret c + ld a, [wCurrentStage] + ld c, a + ld b, $0 + ld hl, BallMovingDownStageTransitions + add hl, bc + ld a, [hl] + cp $ff + jr z, .rip + call FieldVerticalTransition + ld a, [wBallYPos + 1] + sub $88 + ld [wBallYPos + 1], a + ret + +.moving_up + ld a, [wCurrentStage] + ld c, a + ld b, $0 + ld hl, BallMovingUpStageTransitions + add hl, bc + ld a, [hl] + cp $ff + jr z, .rip + call FieldVerticalTransition + ld a, [wBallYPos + 1] + add $88 + ld [wBallYPos + 1], a + ret + +.rip + ld a, $1 + ld [wd4ae], a + callba HandleBallLoss + ret BallMovingUpStageTransitions: ; 0xed3e ; Maps the relationship between stages when ; the ball moves out of the screen upward. - db $FF ; STAGE_RED_FIELD_TOP - db STAGE_RED_FIELD_TOP ; STAGE_RED_FIELD_BOTTOM - db $FF - db $02 - db $FF ; STAGE_BLUE_FIELD_TOP - db STAGE_BLUE_FIELD_TOP ; STAGE_BLUE_FIELD_BOTTOM - db $FF ; STAGE_GENGAR_BONUS - db $FF ; STAGE_GENGAR_BONUS - db $FF ; STAGE_MEWTWO_BONUS - db $FF ; STAGE_MEWTWO_BONUS - db $FF ; STAGE_MEOWTH_BONUS - db $FF ; STAGE_MEOWTH_BONUS - db $FF ; STAGE_DIGLETT_BONUS - db $FF ; STAGE_DIGLETT_BONUS - db $FF ; STAGE_SEEL_BONUS - db $FF ; STAGE_SEEL_BONUS + db $FF ; STAGE_RED_FIELD_TOP + db STAGE_RED_FIELD_TOP ; STAGE_RED_FIELD_BOTTOM + db $FF + db $02 + db $FF ; STAGE_BLUE_FIELD_TOP + db STAGE_BLUE_FIELD_TOP ; STAGE_BLUE_FIELD_BOTTOM + db $FF ; STAGE_GENGAR_BONUS + db $FF ; STAGE_GENGAR_BONUS + db $FF ; STAGE_MEWTWO_BONUS + db $FF ; STAGE_MEWTWO_BONUS + db $FF ; STAGE_MEOWTH_BONUS + db $FF ; STAGE_MEOWTH_BONUS + db $FF ; STAGE_DIGLETT_BONUS + db $FF ; STAGE_DIGLETT_BONUS + db $FF ; STAGE_SEEL_BONUS + db $FF ; STAGE_SEEL_BONUS BallMovingDownStageTransitions: ; 0xed4e ; Maps the relationship between stages when ; the ball moves out of the screen downward. - db STAGE_RED_FIELD_BOTTOM ; STAGE_RED_FIELD_TOP - db $FF ; STAGE_RED_FIELD_BOTTOM - db $03 - db $FF - db STAGE_BLUE_FIELD_BOTTOM ; STAGE_BLUE_FIELD_TOP - db $FF ; STAGE_BLUE_FIELD_BOTTOM - db $FF ; STAGE_GENGAR_BONUS - db $FF ; STAGE_GENGAR_BONUS - db $FF ; STAGE_MEWTWO_BONUS - db $FF ; STAGE_MEWTWO_BONUS - db $FF ; STAGE_MEOWTH_BONUS - db $FF ; STAGE_MEOWTH_BONUS - db $FF ; STAGE_DIGLETT_BONUS - db $FF ; STAGE_DIGLETT_BONUS - db $FF ; STAGE_SEEL_BONUS - db $FF ; STAGE_SEEL_BONUS + db STAGE_RED_FIELD_BOTTOM ; STAGE_RED_FIELD_TOP + db $FF ; STAGE_RED_FIELD_BOTTOM + db $03 + db $FF + db STAGE_BLUE_FIELD_BOTTOM ; STAGE_BLUE_FIELD_TOP + db $FF ; STAGE_BLUE_FIELD_BOTTOM + db $FF ; STAGE_GENGAR_BONUS + db $FF ; STAGE_GENGAR_BONUS + db $FF ; STAGE_MEWTWO_BONUS + db $FF ; STAGE_MEWTWO_BONUS + db $FF ; STAGE_MEOWTH_BONUS + db $FF ; STAGE_MEOWTH_BONUS + db $FF ; STAGE_DIGLETT_BONUS + db $FF ; STAGE_DIGLETT_BONUS + db $FF ; STAGE_SEEL_BONUS + db $FF ; STAGE_SEEL_BONUS Func_ed5e: ; 0xed5e - ld hl, $d7ab - ld a, [$d7ac] - and a - jr nz, .asm_ed7f - ld a, [wBallXPos + 1] - cp $9a - ld a, $2 - jr nc, .asm_ed72 - ld a, $fe -.asm_ed72 - ld [$d7aa], a - add [hl] - cp $22 - jr z, .asm_ed7f - bit 7, a - jr nz, .asm_ed7f - ld [hl], a -.asm_ed7f - ld a, [hl] - ld hl, $d79f - sub [hl] - ld [hBoardXShift], a - xor a - ld hl, $d7a0 - sub [hl] - ld [hBoardYShift], a - ret + ld hl, wd7ab + ld a, [wd7ac] + and a + jr nz, .modify_scx_and_scy + ld a, [wBallXPos + 1] + cp $9a + ld a, 2 + jr nc, .okay1 + ld a, -2 +.okay1 + ld [wd7aa], a + add [hl] + cp $22 + jr z, .modify_scx_and_scy + bit 7, a + jr nz, .modify_scx_and_scy + ld [hl], a +.modify_scx_and_scy + ld a, [hl] + ld hl, wd79f + sub [hl] + ld [hSCX], a + xor a + ld hl, wd7a0 + sub [hl] + ld [hSCY], a + ret Func_ed8e: ; 0xed8e - xor a - ld [$d803], a - ld [$d804], a - ld [$d622], a - ld a, [wNumPartyMons] - ld [$d620], a - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeMultipliers - add hl, bc - ld a, [hl] - ld [$d621], a + xor a + ld [wd803], a + ld [wd804], a + ld [wd622], a + ld a, [wNumPartyMons] + ld [wd620], a + ld a, [wBallType] + ld c, a + ld b, $0 + ld hl, BallTypeMultipliers + add hl, bc + ld a, [hl] + ld [wd621], a .asm_edac - xor a - ld [hJoypadState], a - ld [hNewlyPressedButtons], a - ld [hPressedButtons], a - call HandleTilts - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, $3 - ld hl, HandleFlippers - call nz, BankSwitch - ld [$ff8a], a - ld a, Bank(Func_84b7) - ld hl, Func_84b7 - call BankSwitch - call Func_33e3 - call Func_926 - rst $10 - ld a, [$d7af] - and a - jr nz, .asm_edac - ld a, [$d7b3] - and a - jr nz, .asm_edac - ld a, [hGameBoyColorFlag] - and a - call nz, Func_f269 - call GenRandom - and $f0 - ld [$d61a], a - xor a - ld [$d61b], a - ld [$d61e], a + xor a + ld [hJoypadState], a + ld [hNewlyPressedButtons], a + ld [hPressedButtons], a + call HandleTilts + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, $3 + ld hl, HandleFlippers + call nz, BankSwitch + callba Func_84b7 + call Func_33e3 + call Func_926 + rst AdvanceFrame + ld a, [wd7af] + and a + jr nz, .asm_edac + ld a, [wd7b3] + and a + jr nz, .asm_edac + ld a, [hGameBoyColorFlag] + and a + call nz, Func_f269 + call GenRandom + and $f0 + ld [wd61a], a + xor a + ld [wd61b], a + ld [wd61e], a .asm_6df7 - ld a, [$d61a] - ld c, a - ld b, $0 - ld hl, Data_f339 - add hl, bc - ld a, [$d619] - add [hl] - ld c, a - ld hl, Data_f439 - add hl, bc - ld a, [hli] - bit 7, a - jr nz, .asm_ee56 - call Func_eef9 - ld [$d61d], a - push af - ld de, $0009 - call PlaySoundEffect - pop af - call LoadBillboardOffPicture - ld a, [$d61b] - cp $a - jr nc, .asm_ee29 - ld a, $a + ld a, [wd61a] + ld c, a + ld b, $0 + ld hl, Data_f339 + add hl, bc + ld a, [wd619] + add [hl] + ld c, a + ld hl, Data_f439 + add hl, bc + ld a, [hli] + bit 7, a + jr nz, .asm_ee56 + call Func_eef9 + ld [wd61d], a + push af + lb de, $00, $09 + call PlaySoundEffect + pop af + call LoadBillboardOffPicture + ld a, [wd61b] + cp $a + jr nc, .asm_ee29 + ld a, $a .asm_ee29 - ld b, a + ld b, a .asm_ee2a - push bc - call Func_eeee - ld a, [$d61e] - and a - jr nz, .asm_ee47 - call Func_ef1e - jr z, .asm_ee47 - ld [$d61e], a - ld a, $32 - ld [$d61b], a - ld de, $0728 - call PlaySoundEffect + push bc + call Func_eeee + ld a, [wd61e] + and a + jr nz, .asm_ee47 + call Func_ef1e + jr z, .asm_ee47 + ld [wd61e], a + ld a, $32 + ld [wd61b], a + lb de, $07, $28 + call PlaySoundEffect .asm_ee47 - pop bc - dec b - jr nz, .asm_ee2a - ld a, [$d61b] - inc a - ld [$d61b], a - cp $3c - jr z, .asm_ee69 + pop bc + dec b + jr nz, .asm_ee2a + ld a, [wd61b] + inc a + ld [wd61b], a + cp $3c + jr z, .asm_ee69 .asm_ee56 - ld a, [$d61a] - and $f0 - ld b, a - ld a, [$d61a] - inc a - and $f - or b - ld [$d61a], a - jp .asm_6df7 + ld a, [wd61a] + and $f0 + ld b, a + ld a, [wd61a] + inc a + and $f + or b + ld [wd61a], a + jp .asm_6df7 + .asm_ee69 - ld a, [$d61d] - cp $5 - jr nz, .asm_ee78 - ld de, $0c42 - call PlaySoundEffect - jr .asm_ee7e + ld a, [wd61d] + cp $5 + jr nz, .asm_ee78 + lb de, $0c, $42 + call PlaySoundEffect + jr .asm_ee7e + .asm_ee78 - ld de, $0c43 - call PlaySoundEffect + lb de, $0c, $43 + call PlaySoundEffect .asm_ee7e - ld b, $28 + ld b, $28 .asm_ee80 - push bc - rst $10 - pop bc - call Func_ef1e - jr nz, .asm_ee8b - dec b - jr nz, .asm_ee80 + push bc + rst AdvanceFrame + pop bc + call Func_ef1e + jr nz, .asm_ee8b + dec b + jr nz, .asm_ee80 .asm_ee8b - ld a, [hGameBoyColorFlag] - and a - ld a, [$d61d] - call nz, Func_f2a0 - ld b, $80 + ld a, [hGameBoyColorFlag] + and a + ld a, [wd61d] + call nz, Func_f2a0 + ld b, $80 .asm_ee96 - push bc - ld a, b - and $f - jr nz, .asm_eeae - bit 4, b - jr z, .asm_eea8 - ld a, [$d61d] - call LoadBillboardPicture - jr .asm_eeae + push bc + ld a, b + and $f + jr nz, .asm_eeae + bit 4, b + jr z, .asm_eea8 + ld a, [wd61d] + call LoadBillboardPicture + jr .asm_eeae + .asm_eea8 - ld a, [$d61d] - call LoadBillboardOffPicture + ld a, [wd61d] + call LoadBillboardOffPicture .asm_eeae - rst $10 - pop bc - call Func_ef1e - jr nz, .asm_eeb8 - dec b - jr nz, .asm_ee96 + rst AdvanceFrame + pop bc + call Func_ef1e + jr nz, .asm_eeb8 + dec b + jr nz, .asm_ee96 .asm_eeb8 - ld a, [$d619] - add $a - cp $fa - jr nz, .asm_eec3 - ld a, $64 + ld a, [wd619] + add $a + cp $fa + jr nz, .asm_eec3 + ld a, $64 .asm_eec3 - ld [$d619], a - ld a, [$d61d] - rst $18 ; calls JumpToFuncInTable + ld [wd619], a + ld a, [wd61d] + rst JumpTable ; calls JumpToFuncInTable CallTable_eeca: ; 0xeeca - dw Func_ef35 - dw Func_ef4f - dw Func_ef69 - dw Func_ef83 - dw Func_efa7 - dw Func_efb2 - dw Func_eff3 - dw Func_f034 - dw Func_f03a - dw UpgradeBallBlueField - dw UpgradeBallBlueField - dw UpgradeBallBlueField - dw Func_f0c1 - dw Func_f172 - dw Func_f172 - dw Func_f172 - dw Func_f172 - dw Func_f172 + dw Start30SecondSaverTimer + dw Start60SecondSaverTimer + dw Start90SecondSaverTimer + dw Func_ef83 + dw Func_efa7 + dw Func_efb2 + dw Func_eff3 + dw Func_f034 + dw Func_f03a + dw UpgradeBallBlueField + dw UpgradeBallBlueField + dw UpgradeBallBlueField + dw SlotBonusMultiplier + dw Func_f172 + dw Func_f172 + dw Func_f172 + dw Func_f172 + dw Func_f172 Func_eeee: ; 0xeeee - push bc - ld bc, $0200 + push bc + ld bc, $0200 .asm_eef2 - dec bc - ld a, b - or c - jr nz, .asm_eef2 - pop bc - ret + dec bc + ld a, b + or c + jr nz, .asm_eef2 + pop bc + ret Func_eef9: ; 0xeef9 - cp $8 - jr nz, .asm_ef09 - ld a, [$d620] - and a - jr nz, .asm_ef06 - ld a, $7 - ret + cp $8 + jr nz, .asm_ef09 + ld a, [wd620] + and a + jr nz, .asm_ef06 + ld a, $7 + ret + .asm_ef06 - ld a, $8 - ret + ld a, $8 + ret + .asm_ef09 - cp $9 - jr nz, .asm_ef14 - push hl - ld hl, $d621 - add [hl] - pop hl - ret + cp $9 + jr nz, .asm_ef14 + push hl + ld hl, wd621 + add [hl] + pop hl + ret + .asm_ef14 - cp $d - ret nz - push hl - ld hl, $d498 - add [hl] - pop hl - ret + cp $d + ret nz + push hl + ld hl, wd498 + add [hl] + pop hl + ret Func_ef1e: ; 0xef1e - push bc - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - jr nz, .asm_ef2d - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed + push bc + ld hl, wKeyConfigRightFlipper + call IsKeyPressed + jr nz, .asm_ef2d + ld hl, wKeyConfigLeftFlipper + call IsKeyPressed .asm_ef2d - pop bc - ret + pop bc + ret BallTypeMultipliers: ; 0xef2f ; Score multiplier for each ball type. - db $00 ; POKE_BALL - db $00 - db $01 ; GREAT_BALL - db $02 ; ULTRA_BALL - db $02 - db $02 ; MASTER_BALL - -Func_ef35: ; 0xef35 - ld a, $0 - ld [wBallSaverIconOn], a - ld a, $ff - ld [$d4a2], a - ld a, $3b - ld [wBallSaverTimerFrames], a - ld a, $1e - ld [wBallSaverTimerSeconds], a - ld a, $2 - ld [$d4a5], a - ret - -Func_ef4f: ; 0xef4f - ld a, $0 - ld [wBallSaverIconOn], a - ld a, $ff - ld [$d4a2], a - ld a, $3b - ld [wBallSaverTimerFrames], a - ld a, $3c - ld [wBallSaverTimerSeconds], a - ld a, $2 - ld [$d4a5], a - ret - -Func_ef69: ; 0xef69 - ld a, $0 - ld [wBallSaverIconOn], a - ld a, $ff - ld [$d4a2], a - ld a, $3b - ld [wBallSaverTimerFrames], a - ld a, $5a - ld [wBallSaverTimerSeconds], a - ld a, $2 - ld [$d4a5], a - ret + db $00 ; POKE_BALL + db $00 + db $01 ; GREAT_BALL + db $02 ; ULTRA_BALL + db $02 + db $02 ; MASTER_BALL + +Start30SecondSaverTimer: ; 0xef35 + ld a, $0 + ld [wBallSaverIconOn], a + ld a, $ff + ld [wd4a2], a + ld a, 59 + ld [wBallSaverTimerFrames], a + ld a, 30 + ld [wBallSaverTimerSeconds], a + ld a, $2 + ld [wNumTimesBallSavedTextWillDisplay], a + ret + +Start60SecondSaverTimer: ; 0xef4f + ld a, $0 + ld [wBallSaverIconOn], a + ld a, $ff + ld [wd4a2], a + ld a, 59 + ld [wBallSaverTimerFrames], a + ld a, 60 + ld [wBallSaverTimerSeconds], a + ld a, $2 + ld [wNumTimesBallSavedTextWillDisplay], a + ret + +Start90SecondSaverTimer: ; 0xef69 + ld a, $0 + ld [wBallSaverIconOn], a + ld a, $ff + ld [wd4a2], a + ld a, 59 + ld [wBallSaverTimerFrames], a + ld a, 90 + ld [wBallSaverTimerSeconds], a + ld a, $2 + ld [wNumTimesBallSavedTextWillDisplay], a + ret Func_ef83: ; 0xef83 - ld a, $1 - ld [$d51d], a - ld a, $f - ld [$d517], a - xor a - ld [$d85d], a - call Func_310a - rst $10 - ld a, $0 - ld [$ff8a], a - ld a, Bank(PlayPikachuSoundClip) - ld hl, PlayPikachuSoundClip - call BankSwitch - ld a, $1 - ld [$d85d], a - ret + ld a, $1 + ld [wd51d], a + ld a, $f + ld [wd517], a + xor a + ld [wd85d], a + call Func_310a + rst AdvanceFrame + ld a, $0 + callba PlayPikachuSoundClip + ld a, $1 + ld [wd85d], a + ret Func_efa7: ; 0xefa7 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call BankSwitch - ret + callba Func_30164 + ret Func_efb2: ; 0xefb2 - ld a, $8 - call Func_a21 - ld [$d61f], a - ld b, $80 + ld a, $8 + call Func_a21 + ld [wCurSlotBonus], a + ld b, $80 .asm_efbc - push bc - ld a, b - and $f - jr nz, .asm_efd8 - bit 4, b - jr z, .asm_efd0 - ld a, [$d61f] - add $12 - call LoadBillboardPicture - jr .asm_efd8 + push bc + ld a, b + and $f + jr nz, .asm_efd8 + bit 4, b + jr z, .asm_efd0 + ld a, [wCurSlotBonus] + add (SmallReward100PointsOnPic_Pointer - BillboardPicturePointers) / 3 + call LoadBillboardPicture + jr .asm_efd8 + .asm_efd0 - ld a, [$d61f] - add $12 - call LoadBillboardOffPicture + ld a, [wCurSlotBonus] + add (SmallReward100PointsOnPic_Pointer - BillboardPicturePointers) / 3 + call LoadBillboardOffPicture .asm_efd8 - rst $10 - pop bc - ld a, [hNewlyPressedButtons] - and $21 - jr nz, .asm_efe3 - dec b - jr nz, .asm_efbc + rst AdvanceFrame + pop bc + ld a, [hNewlyPressedButtons] + and FLIPPERS + jr nz, .asm_efe3 + dec b + jr nz, .asm_efbc .asm_efe3 - ld a, [$d61f] - inc a - swap a - ld e, a - ld d, $0 - ld bc, $0000 - call Func_351c - ret + ld a, [wCurSlotBonus] + inc a + swap a + ld e, a + ld d, $0 + ld bc, $0000 + call AddBCDEToCurBufferValue + ret Func_eff3: ; 0xeff3 - ld a, $8 - call Func_a21 - ld [$d61f], a - ld b, $80 + ld a, $8 + call Func_a21 + ld [wCurSlotBonus], a + ld b, $80 .asm_effd - push bc - ld a, b - and $f - jr nz, .asm_f019 - bit 4, b - jr z, .asm_f011 - ld a, [$d61f] - add $1b - call LoadBillboardPicture - jr .asm_f019 + push bc + ld a, b + and $f + jr nz, .asm_f019 + bit 4, b + jr z, .asm_f011 + ld a, [wCurSlotBonus] + add (BigReward1000000PointsOnPic_Pointer - BillboardPicturePointers) / 3 + call LoadBillboardPicture + jr .asm_f019 + .asm_f011 - ld a, [$d61f] - add $1b - call LoadBillboardOffPicture + ld a, [wCurSlotBonus] + add (BigReward1000000PointsOnPic_Pointer - BillboardPicturePointers) / 3 + call LoadBillboardOffPicture .asm_f019 - rst $10 - pop bc - ld a, [hNewlyPressedButtons] - and $21 - jr nz, .asm_f024 - dec b - jr nz, .asm_effd + rst AdvanceFrame + pop bc + ld a, [hNewlyPressedButtons] + and FLIPPERS + jr nz, .asm_f024 + dec b + jr nz, .asm_effd .asm_f024 - ld a, [$d61f] - inc a - swap a - ld c, a - ld b, $0 - ld de, $0000 - call Func_351c - ret + ld a, [wCurSlotBonus] + inc a + swap a + ld c, a + ld b, $0 + ld de, $0000 + call AddBCDEToCurBufferValue + ret Func_f034: ; 0xf034 - ld a, $1 - ld [$d622], a - ret + ld a, $1 + ld [wd622], a + ret Func_f03a: ; 0xf03a - ld a, $2 - ld [$d622], a - ret + ld a, $2 + ld [wd622], a + ret UpgradeBallBlueField: ; 0xf040 - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a - ld a, [wBallType] - cp MASTER_BALL - jr z, .masterBall - ld de, $063a - call PlaySoundEffect - call Func_30e8 - call Func_30db - ld de, $2907 - ld hl, $d5cc - call Func_32aa - ; upgrade ball type - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeProgressionBlueField - add hl, bc - ld a, [hl] - ld [wBallType], a - add $30 - ld [$c512], a - jr .asm_f0b0 + ; load approximately 1 minute of frames into wBallTypeCounter + ld a, $10 + ld [wBallTypeCounter], a + ld a, $e + ld [wBallTypeCounter + 1], a + ld a, [wBallType] + cp MASTER_BALL + jr z, .masterBall + lb de, $06, $3a + call PlaySoundEffect + call Fillwc600WithBlackTile + call Func_30db + ld de, FieldMultiplierText + ld hl, wd5cc + call LoadTextHeader + ; upgrade ball type + ld a, [wBallType] + ld c, a + ld b, $0 + ld hl, BallTypeProgressionBlueField + add hl, bc + ld a, [hl] + ld [wBallType], a + add $30 + ld [wBottomMessageText + $12], a + jr .asm_f0b0 + .masterBall - ld de, $0f4d - call PlaySoundEffect - ld bc, $34e8 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld bc, $100 - ld de, $0000 - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5d4 - ld de, $2948 - call Func_32cc - pop de - pop bc - ld hl, $d5cc - ld de, $2922 - call Func_32aa + lb de, $0f, $4d + call PlaySoundEffect + ld bc, OneMillionPoints + callba AddBigBCD6FromQueue + ld bc, $100 + ld de, $0000 + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5d4 + ld de, DigitsText1to8 + call Func_32cc + pop de + pop bc + ld hl, wd5cc + ld de, FieldMultiplierSpecialBonusText + call LoadTextHeader .asm_f0b0 - ld [$ff8a], a - ld a, Bank(Func_155bb) - ld hl, Func_155bb - call BankSwitch - ret + callba Func_155bb + ret BallTypeProgressionBlueField: ; 0xf0bb ; Determines the next upgrade for the Ball. - db GREAT_BALL ; POKE_BALL -> GREAT_BALL - db GREAT_BALL ; unused - db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL - db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL - db MASTER_BALL ; unused - db MASTER_BALL ; MASTER_BALL -> MASTER_BALL - -Func_f0c1: ; 0xf0c1 - ld a, $4 - call Func_a21 - ld [$d61f], a - ld b, $80 + db GREAT_BALL ; POKE_BALL -> GREAT_BALL + db GREAT_BALL ; unused + db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL + db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL + db MASTER_BALL ; unused + db MASTER_BALL ; MASTER_BALL -> MASTER_BALL + +SlotBonusMultiplier: ; 0xf0c1 + ld a, $4 + call Func_a21 + ld [wCurSlotBonus], a + ld b, $80 .asm_f0cb - push bc - ld a, b - and $f - jr nz, .asm_f0e7 - bit 4, b - jr z, .asm_f0df - ld a, [$d61f] - add $24 - call LoadBillboardPicture - jr .asm_f0e7 + push bc + ld a, b + and $f + jr nz, .asm_f0e7 + bit 4, b + jr z, .asm_f0df + ld a, [wCurSlotBonus] + add (BonusMultiplierX1OnPic_Pointer - BillboardPicturePointers) / 3 + call LoadBillboardPicture + jr .asm_f0e7 + .asm_f0df - ld a, [$d61f] - add $24 - call LoadBillboardOffPicture + ld a, [wCurSlotBonus] + add (BonusMultiplierX1OnPic_Pointer - BillboardPicturePointers) / 3 + call LoadBillboardOffPicture .asm_f0e7 - rst $10 - pop bc - ld a, [hNewlyPressedButtons] - and $21 - jr nz, .asm_f0f2 - dec b - jr nz, .asm_f0cb + rst AdvanceFrame + pop bc + ld a, [hNewlyPressedButtons] + and FLIPPERS + jr nz, .asm_f0f2 + dec b + jr nz, .asm_f0cb .asm_f0f2 - ld a, $3 - ld [$d610], a - xor a - ld [$d611], a - ld [$d612], a - ld a, [$d482] - call Func_f14a - ld b, c - ld a, [$d61f] - inc a - ld hl, $d482 - add [hl] - cp $64 - jr c, .asm_f113 - ld a, $63 + ld a, $3 + ld [wd610], a + xor a + ld [wd611], a + ld [wd612], a + ld a, [wd482] + call .DivideBy25 + ld b, c + ld a, [wCurSlotBonus] + inc a + ld hl, wd482 + add [hl] + cp 100 + jr c, .asm_f113 + ld a, 99 .asm_f113 - ld [hl], a - call Func_f14a - ld a, c - cp b - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call nz, BankSwitch - ld [$ff8a], a - ld a, Bank(Func_16f95) - ld hl, Func_16f95 - call BankSwitch - ld a, [$d60c] - ld [$ff8a], a - ld a, Bank(Func_f154) - ld hl, Func_f154 - call BankSwitch ; no need for BankSwitch here... - ld a, [$d60d] - add $14 - ld [$ff8a], a - ld a, Bank(Func_f154) - ld hl, Func_f154 - call BankSwitch ; no need for BankSwitch here... - ret - -Func_f14a: ; 0xf14a - ld c, $0 -.asm_f14c - cp $19 - ret c - sub $19 - inc c - jr .asm_f14c + ld [hl], a + call .DivideBy25 + ld a, c + cp b + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call nz, BankSwitch + callba Func_16f95 + ld a, [wd60c] + callba Func_f154 ; no need for BankSwitch here... + ld a, [wd60d] + add $14 + callba Func_f154 ; no need for BankSwitch here... + ret + +.DivideBy25: ; 0xf14a + ld c, $0 +.div_25 + cp 25 + ret c + sub 25 + inc c + jr .div_25 Func_f154: ; 0xf154 - ld a, [wCurrentStage] - call CallInFollowingTable + ld a, [wCurrentStage] + call CallInFollowingTable CallTable_f15a: ; 0xf15a - dw Func_16f28 - db Bank(Func_16f28), $00 - - dw Func_16f28 - db Bank(Func_16f28), $00 - - dw Func_16f28 - db Bank(Func_16f28), $00 - - dw Func_16f28 - db Bank(Func_16f28), $00 - - dw Func_1d5f2 - db Bank(Func_1d5f2), $00 - - dw Func_1d5f2 - db Bank(Func_1d5f2), $00 + padded_dab Func_16f28 + padded_dab Func_16f28 + padded_dab Func_16f28 + padded_dab Func_16f28 + padded_dab Func_1d5f2 + padded_dab Func_1d5f2 Func_f172: ; 0xf172 - ld a, $1 - ld [$d623], a - ret + ld a, $1 + ld [wd623], a + ret LoadBillboardPicture: ; 0xf178 ; Loads a billboard picture's tiles into VRAM ; input: a = billboard picture id - push hl - ld c, a - ld b, $0 - sla c - add c ; a has been multplied by 3 becuase entires in BillboardPicturePointers are 3 bytes long - ld c, a - ld hl, BillboardPicturePointers - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld h, b - ld l, c - ld de, $8900 ; destination address to copy the tiles - ld bc, $180 ; billboard pictures are $180 bytes - call LoadVRAMData ; loads the tiles into VRAM - pop hl - ret + 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, vTilesSH tile $10 ; destination address to copy the tiles + ld bc, $180 ; billboard pictures are $180 bytes + call LoadVRAMData ; loads the tiles into VRAM + pop hl + ret LoadBillboardOffPicture: ; 0xf196 ; Loads the dimly-lit "off" version of a billboard picture into VRAM ; Input: a = billboard picture id - push hl - ld c, a - ld b, $0 - sla c - add c - ld c, a - ld hl, BillboardPicturePointers - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld h, b - ld l, c - ld bc, $0180 ; get the address of the "off" version of the picture - add hl, bc - ld de, $8900 - ld bc, $0180 - call LoadVRAMData - pop hl - ret + push hl + ld c, a + ld b, $0 + sla c + add c + ld c, a + ld hl, BillboardPicturePointers + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hl] + ld h, b + ld l, c + ld bc, $0180 ; get the address of the "off" version of the picture + add hl, bc + ld de, vTilesSH tile $10 + ld bc, $0180 + call LoadVRAMData + pop hl + ret BillboardPicturePointers: ; 0xf1b8 - dw BallSaver30SecondsOnPic - db Bank(BallSaver30SecondsOnPic) - - dw BallSaver60SecondsOnPic - db Bank(BallSaver60SecondsOnPic) - - dw BallSaver90SecondsOnPic - db Bank(BallSaver90SecondsOnPic) - - dw PikachuSaverOnPic - db Bank(PikachuSaverOnPic) - - dw ExtraBallOnPic - db Bank(ExtraBallOnPic) - - dw SmallRewardOnPic - db Bank(SmallRewardOnPic) - - dw BigRewardOnPic - db Bank(BigRewardOnPic) - - dw CatchEmModeOnPic - db Bank(CatchEmModeOnPic) - - dw EvolutionModeOnPic - db Bank(EvolutionModeOnPic) - - dw GreatBallOnPic - db Bank(GreatBallOnPic) - - dw UltraBallOnPic - db Bank(UltraBallOnPic) - - dw MasterBallOnPic - db Bank(MasterBallOnPic) - - dw BonusMultiplierOnPic - db Bank(BonusMultiplierOnPic) - - dw GoToGengarBonusOnPic - db Bank(GoToGengarBonusOnPic) - - dw GoToMewtwoBonusOnPic - db Bank(GoToMewtwoBonusOnPic) - - dw GoToMeowthBonusOnPic - db Bank(GoToMeowthBonusOnPic) - - dw GoToDiglettBonusOnPic - db Bank(GoToDiglettBonusOnPic) - - dw GoToSeelBonusOnPic - db Bank(GoToSeelBonusOnPic) - - dw SmallReward100PointsOnPic - db Bank(SmallReward100PointsOnPic) - - dw SmallReward200PointsOnPic - db Bank(SmallReward200PointsOnPic) - - dw SmallReward300PointsOnPic - db Bank(SmallReward300PointsOnPic) - - dw SmallReward400PointsOnPic - db Bank(SmallReward400PointsOnPic) - - dw SmallReward500PointsOnPic - db Bank(SmallReward500PointsOnPic) - - dw SmallReward600PointsOnPic - db Bank(SmallReward600PointsOnPic) - - dw SmallReward700PointsOnPic - db Bank(SmallReward700PointsOnPic) - - dw SmallReward800PointsOnPic - db Bank(SmallReward800PointsOnPic) - - dw SmallReward900PointsOnPic - db Bank(SmallReward900PointsOnPic) - - dw BigReward1000000PointsOnPic - db Bank(BigReward1000000PointsOnPic) - - dw BigReward2000000PointsOnPic - db Bank(BigReward2000000PointsOnPic) - - dw BigReward3000000PointsOnPic - db Bank(BigReward3000000PointsOnPic) - - dw BigReward4000000PointsOnPic - db Bank(BigReward4000000PointsOnPic) - - dw BigReward5000000PointsOnPic - db Bank(BigReward5000000PointsOnPic) - - dw BigReward6000000PointsOnPic - db Bank(BigReward6000000PointsOnPic) - - dw BigReward7000000PointsOnPic - db Bank(BigReward7000000PointsOnPic) - - dw BigReward8000000PointsOnPic - db Bank(BigReward8000000PointsOnPic) - - dw BigReward9000000PointsOnPic - db Bank(BigReward9000000PointsOnPic) - - dw BonusMultiplierX1OnPic - db Bank(BonusMultiplierX1OnPic) - - dw BonusMultiplierX2OnPic - db Bank(BonusMultiplierX2OnPic) - - dw BonusMultiplierX3OnPic - db Bank(BonusMultiplierX3OnPic) - - dw BonusMultiplierX4OnPic - db Bank(BonusMultiplierX4OnPic) - - dw BonusMultiplierX5OnPic - db Bank(BonusMultiplierX5OnPic) - - dw PalletTownPic - db Bank(PalletTownPic) - - dw ViridianCityPic - db Bank(ViridianCityPic) - - dw ViridianForestPic - db Bank(ViridianForestPic) - - dw PewterCityPic - db Bank(PewterCityPic) - - dw MtMoonPic - db Bank(MtMoonPic) - - dw CeruleanCityPic - db Bank(CeruleanCityPic) - - dw VermilionCitySeasidePic - db Bank(VermilionCitySeasidePic) - - dw VermilionCityStreetsPic - db Bank(VermilionCityStreetsPic) - - dw RockMountainPic - db Bank(RockMountainPic) - - dw LavenderTownPic - db Bank(LavenderTownPic) - - dw CeladonCityPic - db Bank(CeladonCityPic) - - dw CyclingRoadPic - db Bank(CyclingRoadPic) - - dw FuchsiaCityPic - db Bank(FuchsiaCityPic) - - dw SafariZonePic - db Bank(SafariZonePic) - - dw SaffronCityPic - db Bank(SaffronCityPic) - - dw SeafoamIslandsPic - db Bank(SeafoamIslandsPic) - - dw CinnabarIslandPic - db Bank(CinnabarIslandPic) - - dw IndigoPlateauPic - db Bank(IndigoPlateauPic) +BillboardPicturePointer: MACRO +\1_Pointer: dab \1 +ENDM + BillboardPicturePointer BallSaver30SecondsOnPic + BillboardPicturePointer BallSaver60SecondsOnPic + BillboardPicturePointer BallSaver90SecondsOnPic + BillboardPicturePointer PikachuSaverOnPic + BillboardPicturePointer ExtraBallOnPic + BillboardPicturePointer SmallRewardOnPic + BillboardPicturePointer BigRewardOnPic + BillboardPicturePointer CatchEmModeOnPic + BillboardPicturePointer EvolutionModeOnPic + BillboardPicturePointer GreatBallOnPic + BillboardPicturePointer UltraBallOnPic + BillboardPicturePointer MasterBallOnPic + BillboardPicturePointer BonusMultiplierOnPic + BillboardPicturePointer GoToGengarBonusOnPic + BillboardPicturePointer GoToMewtwoBonusOnPic + BillboardPicturePointer GoToMeowthBonusOnPic + BillboardPicturePointer GoToDiglettBonusOnPic + BillboardPicturePointer GoToSeelBonusOnPic + BillboardPicturePointer SmallReward100PointsOnPic + BillboardPicturePointer SmallReward200PointsOnPic + BillboardPicturePointer SmallReward300PointsOnPic + BillboardPicturePointer SmallReward400PointsOnPic + BillboardPicturePointer SmallReward500PointsOnPic + BillboardPicturePointer SmallReward600PointsOnPic + BillboardPicturePointer SmallReward700PointsOnPic + BillboardPicturePointer SmallReward800PointsOnPic + BillboardPicturePointer SmallReward900PointsOnPic + BillboardPicturePointer BigReward1000000PointsOnPic + BillboardPicturePointer BigReward2000000PointsOnPic + BillboardPicturePointer BigReward3000000PointsOnPic + BillboardPicturePointer BigReward4000000PointsOnPic + BillboardPicturePointer BigReward5000000PointsOnPic + BillboardPicturePointer BigReward6000000PointsOnPic + BillboardPicturePointer BigReward7000000PointsOnPic + BillboardPicturePointer BigReward8000000PointsOnPic + BillboardPicturePointer BigReward9000000PointsOnPic + BillboardPicturePointer BonusMultiplierX1OnPic + BillboardPicturePointer BonusMultiplierX2OnPic + BillboardPicturePointer BonusMultiplierX3OnPic + BillboardPicturePointer BonusMultiplierX4OnPic + BillboardPicturePointer BonusMultiplierX5OnPic + BillboardPicturePointer PalletTownPic + BillboardPicturePointer ViridianCityPic + BillboardPicturePointer ViridianForestPic + BillboardPicturePointer PewterCityPic + BillboardPicturePointer MtMoonPic + BillboardPicturePointer CeruleanCityPic + BillboardPicturePointer VermilionCitySeasidePic + BillboardPicturePointer VermilionCityStreetsPic + BillboardPicturePointer RockMountainPic + BillboardPicturePointer LavenderTownPic + BillboardPicturePointer CeladonCityPic + BillboardPicturePointer CyclingRoadPic + BillboardPicturePointer FuchsiaCityPic + BillboardPicturePointer SafariZonePic + BillboardPicturePointer SaffronCityPic + BillboardPicturePointer SeafoamIslandsPic + BillboardPicturePointer CinnabarIslandPic + BillboardPicturePointer IndigoPlateauPic Func_f269: ; 0xf269 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_f27c - ld a, $37 - ld hl, $4aa8 - ld de, $0030 - ld bc, $0008 - call Func_7dc + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_f27c + ld a, BANK(StageRedFieldBottomBGPalette5) + ld hl, StageRedFieldBottomBGPalette5 + ld de, $0030 + ld bc, $0008 + call Func_7dc .asm_f27c - ld a, $3 - ld de, $7288 - ld hl, $9887 - call Func_86f - ret + ld a, BANK(Data_f288) + ld de, Data_f288 + hlCoord 7, 4, vBGMap + call Func_86f + ret -INCBIN "baserom.gbc",$f288,$f2a0 - $f288 +Data_f288: + dr $f288, $f2a0 Func_f2a0: ; 0xf2a0 - push hl - ld c, a - ld b, $0 - sla c - add c - ld c, a - ld hl, PaletteDataPointerTable_f2be - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld h, b - ld l, c - ld de, $0030 - ld bc, $0010 - call Func_7dc - pop hl - ret + push hl + ld c, a + ld b, $0 + sla c + add c + ld c, a + ld hl, PaletteDataPointerTable_f2be + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hl] + ld h, b + ld l, c + ld de, $0030 + ld bc, $0010 + call Func_7dc + pop hl + ret PaletteDataPointerTable_f2be: ; 0xf2be - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc08, Bank(PaletteData_dcc08) - dwb PaletteData_dcc08, Bank(PaletteData_dcc08) - dwb PaletteData_dcc10, Bank(PaletteData_dcc10) - dwb PaletteData_dcc18, Bank(PaletteData_dcc18) - dwb PaletteData_dcc20, Bank(PaletteData_dcc20) - dwb PaletteData_dcc08, Bank(PaletteData_dcc08) - dwb PaletteData_dcc28, Bank(PaletteData_dcc28) - dwb PaletteData_dcc08, Bank(PaletteData_dcc08) - dwb PaletteData_dcc30, Bank(PaletteData_dcc30) - dwb PaletteData_dcc38, Bank(PaletteData_dcc38) - dwb PaletteData_dcc40, Bank(PaletteData_dcc40) - dwb PaletteData_dcc48, Bank(PaletteData_dcc48) - dwb PaletteData_dcc50, Bank(PaletteData_dcc50) - dwb PaletteData_dcc58, Bank(PaletteData_dcc58) - dwb PaletteData_dcc60, Bank(PaletteData_dcc60) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) - dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc08, Bank(PaletteData_dcc08) + dwb PaletteData_dcc08, Bank(PaletteData_dcc08) + dwb PaletteData_dcc10, Bank(PaletteData_dcc10) + dwb PaletteData_dcc18, Bank(PaletteData_dcc18) + dwb PaletteData_dcc20, Bank(PaletteData_dcc20) + dwb PaletteData_dcc08, Bank(PaletteData_dcc08) + dwb PaletteData_dcc28, Bank(PaletteData_dcc28) + dwb PaletteData_dcc08, Bank(PaletteData_dcc08) + dwb PaletteData_dcc30, Bank(PaletteData_dcc30) + dwb PaletteData_dcc38, Bank(PaletteData_dcc38) + dwb PaletteData_dcc40, Bank(PaletteData_dcc40) + dwb PaletteData_dcc48, Bank(PaletteData_dcc48) + dwb PaletteData_dcc50, Bank(PaletteData_dcc50) + dwb PaletteData_dcc58, Bank(PaletteData_dcc58) + dwb PaletteData_dcc60, Bank(PaletteData_dcc60) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) + dwb PaletteData_dcc00, Bank(PaletteData_dcc00) Data_f339: ; 0xf339 - db $02, $06, $00, $08, $04, $02, $06, $08, $04, $00, $06, $02, $04, $08, $00, $02 - db $06, $02, $04, $08, $00, $06, $04, $08, $02, $00, $06, $08, $02, $00, $06, $08 - db $02, $04, $00, $08, $06, $04, $00, $02, $06, $04, $00, $08, $06, $04, $02, $08 - db $00, $08, $02, $04, $00, $08, $06, $02, $04, $00, $06, $08, $04, $00, $06, $02 - db $00, $08, $02, $04, $00, $08, $06, $04, $02, $08, $00, $06, $02, $08, $00, $06 - db $02, $00, $06, $04, $02, $00, $06, $08, $02, $04, $00, $06, $08, $04, $02, $06 - db $00, $02, $08, $04, $00, $02, $06, $04, $08, $02, $06, $00, $04, $08, $06, $02 - db $04, $08, $06, $02, $00, $08, $04, $06, $00, $02, $04, $06, $00, $02, $04, $08 - db $02, $00, $04, $06, $02, $00, $08, $04, $02, $00, $06, $04, $08, $00, $06, $04 - db $04, $00, $02, $08, $04, $06, $00, $08, $02, $04, $06, $08, $00, $04, $06, $02 - db $06, $08, $04, $02, $06, $00, $08, $02, $04, $00, $06, $02, $08, $04, $06, $02 - db $04, $06, $02, $00, $08, $04, $06, $00, $08, $02, $06, $00, $08, $02, $04, $00 - db $02, $00, $06, $04, $02, $08, $06, $00, $04, $08, $02, $00, $04, $06, $08, $00 - db $08, $06, $04, $00, $08, $06, $02, $00, $08, $06, $04, $00, $08, $06, $04, $02 - db $02, $00, $06, $04, $08, $02, $00, $04, $08, $02, $00, $04, $06, $02, $08, $00 - db $04, $06, $08, $02, $00, $06, $04, $08, $02, $06, $00, $08, $04, $06, $02, $08 + db $02, $06, $00, $08, $04, $02, $06, $08, $04, $00, $06, $02, $04, $08, $00, $02 + db $06, $02, $04, $08, $00, $06, $04, $08, $02, $00, $06, $08, $02, $00, $06, $08 + db $02, $04, $00, $08, $06, $04, $00, $02, $06, $04, $00, $08, $06, $04, $02, $08 + db $00, $08, $02, $04, $00, $08, $06, $02, $04, $00, $06, $08, $04, $00, $06, $02 + db $00, $08, $02, $04, $00, $08, $06, $04, $02, $08, $00, $06, $02, $08, $00, $06 + db $02, $00, $06, $04, $02, $00, $06, $08, $02, $04, $00, $06, $08, $04, $02, $06 + db $00, $02, $08, $04, $00, $02, $06, $04, $08, $02, $06, $00, $04, $08, $06, $02 + db $04, $08, $06, $02, $00, $08, $04, $06, $00, $02, $04, $06, $00, $02, $04, $08 + db $02, $00, $04, $06, $02, $00, $08, $04, $02, $00, $06, $04, $08, $00, $06, $04 + db $04, $00, $02, $08, $04, $06, $00, $08, $02, $04, $06, $08, $00, $04, $06, $02 + db $06, $08, $04, $02, $06, $00, $08, $02, $04, $00, $06, $02, $08, $04, $06, $02 + db $04, $06, $02, $00, $08, $04, $06, $00, $08, $02, $06, $00, $08, $02, $04, $00 + db $02, $00, $06, $04, $02, $08, $06, $00, $04, $08, $02, $00, $04, $06, $08, $00 + db $08, $06, $04, $00, $08, $06, $02, $00, $08, $06, $04, $00, $08, $06, $04, $02 + db $02, $00, $06, $04, $08, $02, $00, $04, $08, $02, $00, $04, $06, $02, $08, $00 + db $04, $06, $08, $02, $00, $06, $04, $08, $02, $06, $00, $08, $04, $06, $02, $08 Data_f439: ; 0xf439 - db $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C, $00, $4C - db $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16, $05, $19 - db $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $4C, $06, $66, $0D, $4C, $FF, $00 - db $FF, $00, $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C - db $00, $4C, $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16 - db $05, $19, $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $3F, $06, $3F, $0D, $3F - db $09, $3F, $FF, $00, $05, $11, $0C, $4F, $00, $4F, $03, $4F, $FF, $00, $05, $11 - db $0C, $4F, $01, $4F, $07, $4F, $FF, $00, $05, $11, $0C, $44, $00, $44, $03, $44 - db $06, $1E, $05, $11, $0C, $4F, $01, $4F, $08, $4F, $FF, $00, $02, $66, $06, $4C - db $0D, $4C, $FF, $00, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51, $FF, $00 - db $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44, $00, $44 - db $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00, $01, $3F - db $06, $3F, $0D, $3F, $09, $3F, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51 - db $FF, $00, $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44 - db $00, $44, $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00 - db $01, $26, $06, $26, $0D, $26, $04, $8C, $FF, $00 + db $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C, $00, $4C + db $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16, $05, $19 + db $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $4C, $06, $66, $0D, $4C, $FF, $00 + db $FF, $00, $05, $19, $0C, $4C, $00, $4C, $03, $4C, $FF, $00, $05, $19, $0C, $4C + db $00, $4C, $07, $4C, $FF, $00, $05, $19, $0C, $44, $00, $44, $03, $44, $06, $16 + db $05, $19, $0C, $4C, $00, $4C, $08, $4C, $FF, $00, $01, $3F, $06, $3F, $0D, $3F + db $09, $3F, $FF, $00, $05, $11, $0C, $4F, $00, $4F, $03, $4F, $FF, $00, $05, $11 + db $0C, $4F, $01, $4F, $07, $4F, $FF, $00, $05, $11, $0C, $44, $00, $44, $03, $44 + db $06, $1E, $05, $11, $0C, $4F, $01, $4F, $08, $4F, $FF, $00, $02, $66, $06, $4C + db $0D, $4C, $FF, $00, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51, $FF, $00 + db $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44, $00, $44 + db $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00, $01, $3F + db $06, $3F, $0D, $3F, $09, $3F, $FF, $00, $05, $0A, $0C, $51, $00, $51, $03, $51 + db $FF, $00, $05, $0A, $0C, $51, $01, $51, $07, $51, $FF, $00, $05, $0A, $0C, $44 + db $00, $44, $03, $44, $06, $26, $05, $0A, $0C, $51, $01, $51, $08, $51, $FF, $00 + db $01, $26, $06, $26, $0D, $26, $04, $8C, $FF, $00 Func_f533: ; 0xf533 - call Func_30e8 - call Func_f55c - call Func_f57f - ld a, $60 - ld [$ffa6], a - dec a - ld [$ffa2], a - ld a, $fd - ld [$ffaf], a - call Func_f5a0 - ld a, $90 - ld [$ffa6], a - ld a, $83 - ld [$ffa2], a - ld [$ffa8], a - ld a, $ff - ld [$ffaf], a - call Func_30e8 - ret + call Fillwc600WithBlackTile + call Func_f55c + call Func_f57f + ld a, $60 + ld [hWY], a + dec a + ld [hLYC], a + ld a, $fd + ld [hLCDCMask], a + call Func_f5a0 + ld a, $90 + ld [hWY], a + ld a, $83 + ld [hLYC], a + ld [hLastLYC], a + ld a, $ff + ld [hLCDCMask], a + call Fillwc600WithBlackTile + ret Func_f55c: ; 0xf55c - ld a, [hGameBoyColorFlag] - and a - jr nz, .gameboyColor - ld a, $35 - ld hl, $61c0 - ld de, $8830 - ld bc, $0010 - call LoadVRAMData - ret + ld a, [hGameBoyColorFlag] + and a + jr nz, .gameboyColor + ld a, BANK(GFX_d61c0) + ld hl, GFX_d61c0 + ld de, vTilesSH tile $03 + ld bc, $0010 + call LoadVRAMData + ret + .gameboyColor - ld a, $35 - ld hl, $63c0 - ld de, $8830 - ld bc, $0010 - call LoadVRAMData - ret + ld a, BANK(GFX_d63c0) + ld hl, GFX_d63c0 + ld de, vTilesSH tile $03 + ld bc, $0010 + call LoadVRAMData + ret Func_f57f: ; 0xf57f - xor a - ld [$d4aa], a - ld hl, wcBottomMessageText - ld a, $81 - ld b, $40 + xor a + ld [wd4aa], a + ld hl, wBottomMessageText + ld a, $81 + ld b, $40 .clearLoop - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .clearLoop - ld a, $0 - ld hl, wcBottomMessageText - ld de, vBGMap1 - ld bc, $00c0 - call LoadVRAMData - ret + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + dec b + jr nz, .clearLoop + ld a, $0 + ld hl, wBottomMessageText + ld de, vBGWin + ld bc, $00c0 + call LoadVRAMData + ret Func_f5a0: ; 0xf5a0 - ld de, $c540 - ld hl, $3069 ; todo - call Func_f7b1 - ld de, $c580 - ld hl, $3070 - call Func_f7b1 - ld hl, $d489 - call Func_f8b5 - ld hl, $d48f - call Func_f8b5 - ld a, $1 - ld [$d4ab], a - call Func_f626 - call Func_f64e - call Func_f60a - call Func_f676 - ld a, $1 - ld [$d4ab], a - call Func_f70d - ld a, [$d616] - and a - ret z - ld a, $10 - call SetSongBank - ld de, $0005 - call PlaySong - ld hl, wcBottomMessageText - ld bc, $0040 - call Func_f81b - ld de, $c520 - ld hl, $3094 - call Func_f7b1 - ld bc, $0040 - ld de, $0000 - call Func_f80d + ld de, wBottomMessageText + $40 + ld hl, Data_3069 + call PrintTextNoHeader + ld de, wBottomMessageText + $80 + ld hl, Data_3070 + call PrintTextNoHeader + ld hl, wd489 + call Func_f8b5 + ld hl, wd48f + call Func_f8b5 + ld a, $1 + ld [wd4ab], a + call ValidateSignature6 + call Func_f64e + call Func_f60a + call Func_f676 + ld a, $1 + ld [wd4ab], a + call Func_f70d + ld a, [wGameOver] + and a + ret z + ld a, $10 + call SetSongBank + ld de, $0005 + call PlaySong + ld hl, wBottomMessageText + ld bc, $0040 + call Func_f81b + ld de, wBottomMessageText + $20 + ld hl, Data_3094 + call PrintTextNoHeader + ld bc, $0040 + ld de, $0000 + call Func_f80d .asm_f602 - rst $10 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_f602 - ret + rst AdvanceFrame + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_f602 + ret Func_f60a: ; 0xf60a - ld a, [wCurrentStage] - rst $18 ; calls JumpToFuncInTable + ld a, [wCurrentStage] + rst JumpTable ; calls JumpToFuncInTable CallTable_f60d: ; 0xf60d - ; STAGE_RED_FIELD_TOP - dw Func_f945 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_f945 - - dw Func_f9f2 - - dw Func_f9f2 - - ; STAGE_BLUE_FIELD_TOP - dw Func_f9f3 - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_f9f3 - - ; STAGE_GENGAR_BONUS - dw Func_faf6 - - ; STAGE_GENGAR_BONUS - dw Func_faf6 - - ; STAGE_MEWTWO_BONUS - dw Func_faf7 - - ; STAGE_MEWTWO_BONUS - dw Func_faf7 - - ; STAGE_MEOWTH_BONUS - dw Func_faf8 - - ; STAGE_MEOWTH_BONUS - dw Func_faf8 - -Func_f626: ; 0xf626 - ld de, $c501 - ld hl, $3006 ; todo - call Func_f7b1 - ld hl, $c501 - ld a, [$d628] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d628 - ld de, PointsData_f921 - call Func_f853 - call Func_f824 - ret + ; STAGE_RED_FIELD_TOP + dw Func_f945 + ; STAGE_RED_FIELD_BOTTOM + dw Func_f945 + dw Func_f9f2 + dw Func_f9f2 + ; STAGE_BLUE_FIELD_TOP + dw Func_f9f3 + ; STAGE_BLUE_FIELD_BOTTOM + dw Func_f9f3 + ; STAGE_GENGAR_BONUS + dw Func_faf6 + ; STAGE_GENGAR_BONUS + dw Func_faf6 + ; STAGE_MEWTWO_BONUS + dw Func_faf7 + ; STAGE_MEWTWO_BONUS + dw Func_faf7 + ; STAGE_MEOWTH_BONUS + dw Func_faf8 + ; STAGE_MEOWTH_BONUS + dw Func_faf8 + +ValidateSignature6: ; 0xf626 + ld de, wBottomMessageText + $01 + ld hl, Data_3006 + call PrintTextNoHeader + ld hl, wBottomMessageText + $01 + ld a, [wd628] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd628 + ld de, PointsData_f921 + call Func_f853 + call Func_f824 + ret Func_f64e: ; 0xf64e - ld de, wcBottomMessageText - ld hl, $3019 ; todo - call Func_f7b1 - ld hl, wcBottomMessageText - ld a, [$d629] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d629 - ld de, PointsData_f927 - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + ld hl, Data_3019 + call PrintTextNoHeader + ld hl, wBottomMessageText + ld a, [wd629] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd629 + ld de, PointsData_f927 + call Func_f853 + call Func_f824 + ret Func_f676: ; 0xf676 - ld b, $4 + ld b, $4 .asm_f678 - push bc - ld hl, $c520 - ld de, wcBottomMessageText - ld bc, $00e0 - call Func_65d - ld bc, $00c0 - ld de, $0000 - call Func_f80d - ld a, [$d4ab] - and a - jr z, .asm_f69f - rst $10 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_f69f - xor a - ld [$d4ab], a + push bc + ld hl, wBottomMessageText + $20 + ld de, wBottomMessageText + ld bc, $00e0 + call LocalCopyData + ld bc, $00c0 + ld de, $0000 + call Func_f80d + ld a, [wd4ab] + and a + jr z, .asm_f69f + rst AdvanceFrame + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_f69f + xor a + ld [wd4ab], a .asm_f69f - pop bc - dec b - jr nz, .asm_f678 - ld de, $c540 - ld hl, $307a ; todo - call Func_f7b1 - ld de, $c580 - ld hl, $3086 ; todo - call Func_f7b1 - ld hl, $c550 - ld a, [$d482] - call Func_f78e - ld bc, $0040 - ld de, $0040 - call Func_f80d + pop bc + dec b + jr nz, .asm_f678 + ld de, wBottomMessageText + $40 + ld hl, Data_307a + call PrintTextNoHeader + ld de, wBottomMessageText + $80 + ld hl, Data_3086 + call PrintTextNoHeader + ld hl, wBottomMessageText + $50 + ld a, [wd482] + call Func_f78e + ld bc, $0040 + ld de, $0040 + call Func_f80d .asm_f6c7 - push de - push hl - ld hl, $d494 - ld de, $c586 - call Func_f8bd - ld bc, $0040 - ld de, $0080 - call Func_f80d - ld de, $003e - call PlaySoundEffect - ld a, [$d4ab] - and a - jr z, .asm_f6f2 - rst $10 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_f6f2 - xor a - ld [$d4ab], a + push de + push hl + ld hl, wd494 + ld de, wBottomMessageText + $86 + call Func_f8bd + ld bc, $0040 + ld de, $0080 + call Func_f80d + lb de, $00, $3e + call PlaySoundEffect + ld a, [wd4ab] + and a + jr z, .asm_f6f2 + rst AdvanceFrame + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_f6f2 + xor a + ld [wd4ab], a .asm_f6f2 - pop hl - pop de - ld a, [$d482] - and a - jr z, .asm_f709 - dec a - ld [$d482], a - ld hl, $d48f - ld de, $d489 - call Func_f902 - jr .asm_f6c7 + pop hl + pop de + ld a, [wd482] + and a + jr z, .asm_f709 + dec a + ld [wd482], a + ld hl, wd48f + ld de, wd489 + call AddBigBCD6 + jr .asm_f6c7 + .asm_f709 - call Func_f83a - ret + call Func_f83a + ret Func_f70d: ; 0xf70d - ld b, $4 + ld b, $4 .asm_f70f - push bc - ld hl, $c520 - ld de, wcBottomMessageText - ld bc, $00e0 - call Func_65d - ld bc, $00c0 - ld de, $0000 - call Func_f80d - ld a, [$d4ab] - and a - jr z, .asm_f736 - rst $10 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_f736 - xor a - ld [$d4ab], a + push bc + ld hl, wBottomMessageText + $20 + ld de, wBottomMessageText + ld bc, $00e0 + call LocalCopyData + ld bc, $00c0 + ld de, $0000 + call Func_f80d + ld a, [wd4ab] + and a + jr z, .asm_f736 + rst AdvanceFrame + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_f736 + xor a + ld [wd4ab], a .asm_f736 - pop bc - dec b - jr nz, .asm_f70f - ld de, $c560 - ld hl, $308d - call Func_f7b1 - ld hl, $d46f - ld de, $c566 - call Func_f8bd - ld bc, $0040 - ld de, $0060 - call Func_f80d - ld de, $003e - call PlaySoundEffect - ld a, [$d4ab] - and a - jr z, .asm_f76c - rst $10 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_f76c - xor a - ld [$d4ab], a + pop bc + dec b + jr nz, .asm_f70f + ld de, wBottomMessageText + $60 + ld hl, Data_308d + call PrintTextNoHeader + ld hl, wScore + $5 + ld de, wBottomMessageText + $66 + call Func_f8bd + ld bc, $0040 + ld de, $0060 + call Func_f80d + lb de, $00, $3e + call PlaySoundEffect + ld a, [wd4ab] + and a + jr z, .asm_f76c + rst AdvanceFrame + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_f76c + xor a + ld [wd4ab], a .asm_f76c - ld hl, wScore - ld de, $d48f - call Func_f902 - ld hl, $d46f - ld de, $c566 - call Func_f8bd - ld bc, $0040 - ld de, $0060 - call Func_f80d - call Func_f83a - call Func_f83a - ret + ld hl, wScore + ld de, wd48f + call AddBigBCD6 + ld hl, wScore + $5 + ld de, wBottomMessageText + $66 + call Func_f8bd + ld bc, $0040 + ld de, $0060 + call Func_f80d + call Func_f83a + call Func_f83a + ret Func_f78e: ; 0xf78e - push hl - call ConvertHexByteToDecWord - pop hl - ld c, $1 - ld a, d - call .asm_f7a4 - inc hl - ld a, e - swap a - call .asm_f7a4 - inc hl - ld c, $0 - ld a, e - ; fall through + push hl + call ConvertHexByteToDecWord + pop hl + ld c, $1 + ld a, d + call .asm_f7a4 + inc hl + ld a, e + swap a + call .asm_f7a4 + inc hl + ld c, $0 + ld a, e + ; fall through .asm_f7a4 - and $f - jr nz, .asm_f7ab - ld a, c - and a - ret nz + and $f + jr nz, .asm_f7ab + ld a, c + and a + ret nz .asm_f7ab - add $86 - ld [hl], a - ld c, $0 - ret - -Func_f7b1: ; 0xf7b1 - ld a, [$d805] - and a - jr nz, .asm_f7e0 -.asm_f7b7 - ld a, [hli] - and a - ret z - cp $30 - jr c, .asm_f7c6 - cp $3a - jr nc, .asm_f7c6 - add $56 - jr .asm_f7dc + add $86 + ld [hl], a + ld c, $0 + ret + +PrintTextNoHeader: ; 0xf7b1 + ld a, [wd805] + and a + jr nz, .asm_f7e0 +.loop + ld a, [hli] + and a + ret z + cp "0" + jr c, .asm_f7c6 + cp "9" + 1 + jr nc, .asm_f7c6 + add $56 + jr .asm_f7dc + .asm_f7c6 - cp $41 - jr c, .asm_f7d2 - cp $5b - jr nc, .asm_f7d2 - add $bf - jr .asm_f7dc + cp "A" + jr c, .asm_f7d2 + cp "Z" + 1 + jr nc, .asm_f7d2 + add $bf + jr .asm_f7dc + .asm_f7d2 - cp $65 - jr nz, .asm_f7da - ld a, $83 - jr .asm_f7dc + cp "e" + jr nz, .asm_f7da + ld a, $83 + jr .asm_f7dc + .asm_f7da - ld a, $81 + ld a, $81 .asm_f7dc - ld [de], a - inc de - jr .asm_f7b7 + ld [de], a + inc de + jr .loop + .asm_f7e0 - ld a, [hli] - and a - ret z - cp $30 - jr c, .asm_f7ef - cp $3a - jr nc, .asm_f7ef - add $56 - jr .asm_f809 + ld a, [hli] + and a + ret z + cp "0" + jr c, .asm_f7ef + cp "9" + 1 + jr nc, .asm_f7ef + add $56 + jr .asm_f809 + .asm_f7ef - cp $a0 - jr c, .asm_f7fb - cp $e0 - jr nc, .asm_f7fb - sub $80 - jr .asm_f809 + cp $a0 + jr c, .asm_f7fb + cp $e0 + jr nc, .asm_f7fb + sub $80 + jr .asm_f809 + .asm_f7fb - cp $e0 - jr c, .asm_f807 - cp $f4 - jr nc, .asm_f807 - sub $50 - jr .asm_f809 + cp $e0 + jr c, .asm_f807 + cp $f4 + jr nc, .asm_f807 + sub $50 + jr .asm_f809 + .asm_f807 - ld a, $81 + ld a, $81 .asm_f809 - ld [de], a - inc de - jr .asm_f7e0 + ld [de], a + inc de + jr .asm_f7e0 Func_f80d: ; 0xf80d - ld hl, $9c00 - add hl, de - push hl - ld hl, wcBottomMessageText - add hl, de - pop de - call LoadVRAMData - ret + hlCoord 0, 0, vBGWin + add hl, de + push hl + ld hl, wBottomMessageText + add hl, de + pop de + call LoadVRAMData + ret Func_f81b: ; 0xf81b - ld a, $81 - ld [hli], a - dec bc - ld a, b - or c - jr nz, Func_f81b - ret + ld a, $81 + ld [hli], a + dec bc + ld a, b + or c + jr nz, Func_f81b + ret Func_f824: ; 0xf824 - call Func_f83a - ld hl, wcBottomMessageText - ld bc, $0040 - call Func_f81b - ld hl, $c548 - ld bc, $0038 - call Func_f81b - ret + call Func_f83a + ld hl, wBottomMessageText + ld bc, $0040 + call Func_f81b + ld hl, wBottomMessageText + $48 + ld bc, $0038 + call Func_f81b + ret Func_f83a: ; 0xf83a - ld a, [$d4ab] - and a - ret z - ld b, $46 + ld a, [wd4ab] + and a + ret z + ld b, $46 .asm_f841 - push bc - rst $10 - pop bc - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr nz, .asm_f84e - dec b - jr nz, .asm_f841 - ret + push bc + rst AdvanceFrame + pop bc + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr nz, .asm_f84e + dec b + jr nz, .asm_f841 + ret + .asm_f84e - xor a - ld [$d4ab], a - ret + xor a + ld [wd4ab], a + ret Func_f853: ; 0xf853 - push hl - ld hl, $d483 - call Func_f8b5 - pop hl + push hl + ld hl, wd483 + call Func_f8b5 + pop hl .asm_f85b - push de - push hl - ld hl, $d488 - ld de, $c546 - call Func_f8bd - ld bc, $0040 - ld de, $0040 - call Func_f80d - ld de, $003e - call PlaySoundEffect - ld a, [$d4ab] - and a - jr z, .asm_f886 - rst $10 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_f886 - xor a - ld [$d4ab], a + push de + push hl + ld hl, wd488 + ld de, wBottomMessageText + $46 + call Func_f8bd + ld bc, $0040 + ld de, $0040 + call Func_f80d + lb de, $00, $3e + call PlaySoundEffect + ld a, [wd4ab] + and a + jr z, .asm_f886 + rst AdvanceFrame + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_f886 + xor a + ld [wd4ab], a .asm_f886 - pop hl - pop de - ld a, [hl] - and a - jr z, .asm_f899 - dec [hl] - push de - push hl - ld hl, $d483 - call Func_f902 - pop hl - pop de - jr .asm_f85b + pop hl + pop de + ld a, [hl] + and a + jr z, .asm_f899 + dec [hl] + push de + push hl + ld hl, wd483 + call AddBigBCD6 + pop hl + pop de + jr .asm_f85b + .asm_f899 - ld hl, $d489 - ld de, $d483 - call Func_f902 - ld hl, $d48e - ld de, $c586 - call Func_f8bd - ld bc, $0040 - ld de, $0080 - call Func_f80d - ret + ld hl, wd489 + ld de, wd483 + call AddBigBCD6 + ld hl, wd48e + ld de, wBottomMessageText + $86 + call Func_f8bd + ld bc, $0040 + ld de, $0080 + call Func_f80d + ret Func_f8b5: ; 0xf8b5 - xor a - ld b, $6 + xor a + ld b, $6 .asm_f8b8 - ld [hli], a - dec b - jr nz, .asm_f8b8 - ret + ld [hli], a + dec b + jr nz, .asm_f8b8 + ret Func_f8bd: ; 0xf8bd - ld bc, $0c01 + ld bc, $0c01 .asm_f8c0 - ld a, [hl] - swap a - call Func_f8d5 - inc de - dec b - ld a, [hld] - call Func_f8d5 - inc de - dec b - jr nz, .asm_f8c0 - ld a, $86 - ld [de], a - inc de - ret + ld a, [hl] + swap a + call Func_f8d5 + inc de + dec b + ld a, [hld] + call Func_f8d5 + inc de + dec b + jr nz, .asm_f8c0 + ld a, $86 + ld [de], a + inc de + ret Func_f8d5: ; 0xf8d5 - and $f - jr nz, .asm_f8e0 - ld a, b - dec a - jr z, .asm_f8e0 - ld a, c - and a - ret nz + and $f + jr nz, .asm_f8e0 + ld a, b + dec a + jr z, .asm_f8e0 + ld a, c + and a + ret nz .asm_f8e0 - add $86 - ld [de], a - ld c, $0 - ld a, b - cp $c - jr z, .asm_f8f5 - cp $9 - jr z, .asm_f8f5 - cp $6 - jr z, .asm_f8f5 - cp $3 - ret nz + add $86 + ld [de], a + ld c, $0 + ld a, b + cp $c + jr z, .asm_f8f5 + cp $9 + jr z, .asm_f8f5 + cp $6 + jr z, .asm_f8f5 + cp $3 + ret nz .asm_f8f5 - push de - ld a, e - add $20 - ld e, a - jr nc, .asm_f8fd - inc d + push de + ld a, e + add $20 + ld e, a + jr nc, .asm_f8fd + inc d .asm_f8fd - ld a, $82 - ld [de], a - pop de - ret - -Func_f902: ; 0xf902 - ld a, [de] - add [hl] - daa - ld [hli], a - inc de - ld a, [de] - adc [hl] - daa - ld [hli], a - inc de - ld a, [de] - adc [hl] - daa - ld [hli], a - inc de - ld a, [de] - adc [hl] - daa - ld [hli], a - inc de - ld a, [de] - adc [hl] - daa - ld [hli], a - inc de - ld a, [de] - adc [hl] - daa - ld [hli], a - inc de - ret + ld a, $82 + ld [de], a + pop de + ret + +AddBigBCD6: ; 0xf902 +x = 0 +rept 6 + ld a, [de] +if x == 0 + add [hl] +else + adc [hl] +endc +x = x + 1 + daa + ld [hli], a + inc de +endr + ret PointsData_f921: ; 0xf921 - bigBCD6 50000 + bigBCD6 50000 PointsData_f927: ; 0xf927 - bigBCD6 75000 + bigBCD6 75000 PointsData_f92d: ; 0xf92d - bigBCD6 7500 + bigBCD6 7500 PointsData_f933: ; 0xf933 - bigBCD6 5000 + bigBCD6 5000 PointsData_f939: ; 0xf939 - bigBCD6 2500 + bigBCD6 2500 PointsData_f93f: ; 0xf93f - bigBCD6 1000 + bigBCD6 1000 Func_f945: ; 0xf945 - call Func_f952 - call Func_f97a - call Func_f9a2 - call Func_f9ca - ret + call Func_f952 + call Func_f97a + call Func_f9a2 + call Func_f9ca + ret Func_f952: ; 0xf952 - ld de, $c503 - ld hl, $302d - call Func_f7b1 - ld hl, $c503 - ld a, [$d62a] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d62a - ld de, PointsData_f92d - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $03 + ld hl, BellsproutCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $03 + ld a, [wd62a] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd62a + ld de, PointsData_f92d + call Func_f853 + call Func_f824 + ret Func_f97a: ; 0xf97a - ld de, $c504 - ld hl, $303c - call Func_f7b1 - ld hl, $c504 - ld a, [$d62b] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d62b - ld de, PointsData_f933 - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $04 + ld hl, DugtrioCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $04 + ld a, [wd62b] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd62b + ld de, PointsData_f933 + call Func_f853 + call Func_f824 + ret Func_f9a2: ; 0xf9a2 - ld de, $c503 - ld hl, $3048 - call Func_f7b1 - ld hl, $c503 - ld a, [$d62c] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d62c - ld de, PointsData_f939 - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $03 + ld hl, CaveShotCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $03 + ld a, [wd62c] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd62c + ld de, PointsData_f939 + call Func_f853 + call Func_f824 + ret Func_f9ca: ; 0xf9ca - ld de, $c501 - ld hl, $3057 - call Func_f7b1 - ld hl, $c501 - ld a, [$d62d] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d62d - ld de, PointsData_f93f - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $01 + ld hl, SpinnerTurnsCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $01 + ld a, [wd62d] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd62d + ld de, PointsData_f93f + call Func_f853 + call Func_f824 + ret Func_f9f2: ; 0xf9f2 - ret + ret Func_f9f3: ; 0xf9f3 - call Func_fa06 - call Func_fa2e - call Func_fa56 - call Func_fa7e - call Func_faa6 - call Func_face - ret + call Func_fa06 + call Func_fa2e + call Func_fa56 + call Func_fa7e + call Func_faa6 + call Func_face + ret Func_fa06: ; 0xfa06 - ld de, $c504 - ld hl, $30c1 - call Func_f7b1 - ld hl, $c504 - ld a, [$d63b] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d63b - ld de, PointsData_f92d - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $04 + ld hl, CloysterCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $04 + ld a, [wd63b] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd63b + ld de, PointsData_f92d + call Func_f853 + call Func_f824 + ret Func_fa2e: ; 0xfa2e - ld de, $c504 - ld hl, $30ce - call Func_f7b1 - ld hl, $c504 - ld a, [$d63a] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d63a - ld de, PointsData_f92d - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $04 + ld hl, SlowpokeCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $04 + ld a, [wd63a] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd63a + ld de, PointsData_f92d + call Func_f853 + call Func_f824 + ret Func_fa56: ; 0xfa56 - ld de, $c504 - ld hl, $30b5 - call Func_f7b1 - ld hl, $c504 - ld a, [$d63d] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d63d - ld de, PointsData_f933 - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $04 + ld hl, PoliwagCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $04 + ld a, [wd63d] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd63d + ld de, PointsData_f933 + call Func_f853 + call Func_f824 + ret Func_fa7e: ; 0xfa7e - ld de, $c504 - ld hl, $30a9 - call Func_f7b1 - ld hl, $c504 - ld a, [$d63c] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d63c - ld de, PointsData_f933 - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $04 + ld hl, PsyduckCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $04 + ld a, [wd63c] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd63c + ld de, PointsData_f933 + call Func_f853 + call Func_f824 + ret Func_faa6: ; 0xfaa6 - ld de, $c503 - ld hl, $3048 - call Func_f7b1 - ld hl, $c503 - ld a, [$d62c] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d62c - ld de, PointsData_f939 - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $03 + ld hl, CaveShotCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $03 + ld a, [wd62c] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd62c + ld de, PointsData_f939 + call Func_f853 + call Func_f824 + ret Func_face: ; 0xface :) - ld de, $c501 - ld hl, $3057 - call Func_f7b1 - ld hl, $c501 - ld a, [$d62d] - call Func_f78e - ld bc, $0040 - ld de, $0000 - call Func_f80d - ld hl, $d62d - ld de, PointsData_f93f - call Func_f853 - call Func_f824 - ret + ld de, wBottomMessageText + $01 + ld hl, SpinnerTurnsCounterText + call PrintTextNoHeader + ld hl, wBottomMessageText + $01 + ld a, [wd62d] + call Func_f78e + ld bc, $0040 + ld de, $0000 + call Func_f80d + ld hl, wd62d + ld de, PointsData_f93f + call Func_f853 + call Func_f824 + ret Func_faf6: ; 0xfaf6 - ret + ret Func_faf7: ; 0xfaf7 - ret + ret Func_faf8: ; 0xfaf8 - ret + ret -INCBIN "baserom.gbc",$faf9,$10000 - $faf9 +; XXX + ret +; XXX + ret SECTION "bank4", ROMX, BANK[$4] Func_10000: ; 0x10000 - ld c, a - ld a, [wInSpecialMode] - and a - ret z - ld a, c - ld [$d54c], a - ld a, [wSpecialMode] - cp $1 - jp z, Func_10a95 - cp $2 - jr nz, .asm_10021 - ld [$ff8a], a - ld a, Bank(Func_301ce) - ld hl, Func_301ce - call BankSwitch - ret + ld c, a + ld a, [wInSpecialMode] + and a + ret z + ld a, c + ld [wd54c], a + ld a, [wSpecialMode] + cp $1 + jp z, Func_10a95 + cp $2 + jr nz, .asm_10021 + callba Func_301ce + ret + .asm_10021 - ld a, [wCurrentStage] - call CallInFollowingTable + ld a, [wCurrentStage] + call CallInFollowingTable CallTable_10027: ; 0x10027 - ; STAGE_RED_FIELD_TOP - dw Func_20000 - db Bank(Func_20000), $00 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_20000 - db Bank(Func_20000), $00 - - dw Func_20000 - db Bank(Func_20000), $00 - - dw Func_20000 - db Bank(Func_20000), $00 - - ; STAGE_BLUE_FIELD_TOP - dw Func_202bc - db Bank(Func_202bc), $00 - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_202bc - db Bank(Func_202bc), $00 + ; STAGE_RED_FIELD_TOP + padded_dab Func_20000 + ; STAGE_RED_FIELD_BOTTOM + padded_dab Func_20000 + padded_dab Func_20000 + padded_dab Func_20000 + ; STAGE_BLUE_FIELD_TOP + padded_dab Func_202bc + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab Func_202bc StartCatchEmMode: ; 0x1003f - ld a, [wInSpecialMode] ; current game mode? - and a - ret nz ; don't start catch 'em mode if we're already doing something like Map Move mode - ld a, $1 - ld [wInSpecialMode], a ; set special mode flag - xor a - ld [wSpecialMode], a - ld [$d54d], a - ld a, [wCurrentStage] - sla a - ld c, a - ld b, $0 - push bc - ld hl, WildMonOffsetsPointers - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wCurrentMap] - sla a - ld c, a - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - pop de - ld hl, WildMonPointers - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - add hl, bc - call GenRandom - and $f - call CheckForMew - ld c, a - ld b, $0 - add hl, bc - ld a, [wRareMonsFlag] ; this gets set to $08 when the rare mons should be used. - sla a - ld c, a - add hl, bc - ld a, [hl] ; a contains mon id - dec a - ld [wCurrentCatchEmMon], a - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - ld hl, EvolutionLineIds - add hl, bc - ld c, [hl] - ld h, b - ld l, c - add hl, bc - add hl, bc ; multiply the evolution line id by 3 - ld bc, Data_13685 - add hl, bc - ld a, [hli] - ld [$d5c1], a - ld [$d5be], a - ld a, [hli] - ld [$d5c2], a - ld a, [hli] - ld [$d5c3], a - ld hl, $d586 - ld a, [$d5b6] - ld c, a - and a - ld b, $18 - jr z, .asm_100c7 + ld a, [wInSpecialMode] ; current game mode? + and a + ret nz ; don't start catch 'em mode if we're already doing something like Map Move mode + ld a, $1 + ld [wInSpecialMode], a ; set special mode flag + xor a + ld [wSpecialMode], a + ld [wd54d], a + ld a, [wCurrentStage] + sla a + ld c, a + ld b, $0 + push bc + ld hl, WildMonOffsetsPointers + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wCurrentMap] + sla a + ld c, a + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + pop de + ld hl, WildMonPointers + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + add hl, bc + call GenRandom + and $f + call CheckForMew + ld c, a + ld b, $0 + add hl, bc + ld a, [wRareMonsFlag] ; this gets set to $08 when the rare mons should be used. + sla a + ld c, a + add hl, bc + ld a, [hl] ; a contains mon id + dec a + ld [wCurrentCatchEmMon], a + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + ld hl, EvolutionLineIds + add hl, bc + ld c, [hl] + ld h, b + ld l, c + add hl, bc + add hl, bc ; multiply the evolution line id by 3 + ld bc, Data_13685 + add hl, bc + ld a, [hli] + ld [wd5c1], a + ld [wd5be], a + ld a, [hli] + ld [wd5c2], a + ld a, [hli] + ld [wd5c3], a + ld hl, wd586 + ld a, [wd5b6] + 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 + 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 + xor a + ld [hli], a + inc a + ld [hli], a + dec b + jr nz, .asm_100c7 .asm_100ce - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - ld hl, CatchEmTimerData - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - ld [$ff8a], a - ld a, Bank(StartTimer) - ld hl, StartTimer - call BankSwitch - ld [$ff8a], a - ld a, Bank(InitBallSaverForCatchEmMode) - ld hl, InitBallSaverForCatchEmMode - call BankSwitch - call Func_10696 - call Func_3579 - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1011d - ld a, $28 - ld hl, $6300 - ld de, $8ae0 - ld bc, $0020 - call Func_735 - ld a, $0 - ld hl, $2898 - ld de, $9906 - ld bc, $0008 - call Func_735 + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + sla c + rl b + ld hl, CatchEmTimerData + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + callba StartTimer + callba InitBallSaverForCatchEmMode + call Func_10696 + call Func_3579 + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_1011d + ld a, BANK(StageRedFieldBottomBaseGameBoyColorGfx) + ld hl, StageRedFieldBottomBaseGameBoyColorGfx + $300 + ld de, vTilesSH tile $2e + ld bc, $0020 + call LoadOrCopyVRAMData + ld a, $0 + ld hl, Data_2898 + deCoord 6, 8, vBGMap + ld bc, $0008 + call LoadOrCopyVRAMData .asm_1011d - call SetPokemonSeenFlag - ld a, [wCurrentStage] - rst $18 ; calls JumpToFuncInTable + call SetPokemonSeenFlag + ld a, [wCurrentStage] + rst JumpTable ; calls JumpToFuncInTable CallTable_10124: ; 0x10124 - ; STAGE_RED_FIELD_TOP - dw Func_10871 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_10871 - - dw Func_1098a - - dw Func_1098a - - ; STAGE_BLUE_FIELD_TOP - dw Func_1098c - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_1098c + ; STAGE_RED_FIELD_TOP + dw Func_10871 + ; STAGE_RED_FIELD_BOTTOM + dw Func_10871 + dw Func_1098a + dw Func_1098a + ; STAGE_BLUE_FIELD_TOP + dw Func_1098c + ; STAGE_BLUE_FIELD_BOTTOM + dw Func_1098c CheckForMew: ; Sets the encountered mon to Mew if the following conditions are met: ; 1. Random number in register a equals $f -; 2. The current map is Indigo Plateu (it does a roundabout way of checking this) +; 2. The current map is Indigo Plateau (it does a roundabout way of checking this) ; 3. The right alley has been hit three times ; 4. The Mewtwo Bonus Stage completion counter equals 2. - push af - cp $f ; random number equals $f - jr nz, .asm_10155 - ld a, c - cp $60 ; check if low-byte of map mons offset is Indigo Plateau - jr nz, .asm_10155 - ld a, b - cp $1 ; check if high-byte of map mons offset is Indigo Plateau - jr nz, .asm_10155 - ld a, [wRareMonsFlag] - cp $8 - jr nz, .asm_10155 - ld a, [wNumMewtwoBonusCompletions] - cp $2 - jr nz, .asm_10155 - pop af - xor a - ld [wNumMewtwoBonusCompletions], a - ld a, $10 - ret + push af + cp $f ; random number equals $f + jr nz, .asm_10155 + ld a, c + cp $60 ; check if low-byte of map mons offset is Indigo Plateau + jr nz, .asm_10155 + ld a, b + cp $1 ; check if high-byte of map mons offset is Indigo Plateau + jr nz, .asm_10155 + ld a, [wRareMonsFlag] + cp $8 + jr nz, .asm_10155 + ld a, [wNumMewtwoBonusCompletions] + cp $2 + jr nz, .asm_10155 + pop af + xor a + ld [wNumMewtwoBonusCompletions], a + ld a, $10 + ret + .asm_10155 - pop af - ret + pop af + ret Func_10157: ; 0x10157 - xor a - ld [wInSpecialMode], a - ld [$d5bb], a - ld [$d5c6], a - ld [$d5b6], a - ld [wNumMonHits], a - call Func_10488 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld a, [wCurrentStage] - rst $18 ; calls JumpToFuncInTable + xor a + ld [wInSpecialMode], a + ld [wd5bb], a + ld [wd5c6], a + ld [wd5b6], a + ld [wNumMonHits], a + call Func_10488 + callba Func_86d2 + ld a, [wCurrentStage] + rst JumpTable ; calls JumpToFuncInTable CallTable_10178: ; 0x10178 - ; STAGE_RED_FIELD_TOP - dw Func_108f5 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_108f5 - - dw Func_1098b - - dw Func_1098b - - ; STAGE_BLUE_FIELD_TOP - dw Func_109fc - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_109fc + ; STAGE_RED_FIELD_TOP + dw Func_108f5 + ; STAGE_RED_FIELD_BOTTOM + dw Func_108f5 + dw Func_1098b + dw Func_1098b + ; STAGE_BLUE_FIELD_TOP + dw Func_109fc + ; STAGE_BLUE_FIELD_BOTTOM + dw Func_109fc Func_10184: ; 0x10184 - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_10199 - inc b + ld a, [wCurrentStage] + bit 0, a + ret z + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_10199 + inc b .asm_10199 - ld hl, MonBillboardPicPointers - add hl, bc - ld a, [hli] - ld [$ff8c], a - ld a, [hli] - ld [$ff8d], a - ld a, [hl] - ld [$ff8e], a - ld hl, MonBillboardPaletteMapPointers - add hl, bc - ld a, [hli] - ld [$ff8f], a - ld a, [hli] - ld [$ff90], a - ld a, [hli] - ld [$ff91], a - ld de, wc000 - ld hl, $d586 - ld c, $0 + ld hl, MonBillboardPicPointers + add hl, bc + ld a, [hli] + ld [$ff8c], a + ld a, [hli] + ld [$ff8d], a + ld a, [hl] + ld [$ff8e], a + ld hl, MonBillboardPaletteMapPointers + add hl, bc + ld a, [hli] + ld [$ff8f], a + ld a, [hli] + ld [$ff90], a + ld a, [hli] + ld [$ff91], a + ld de, wc000 + ld hl, wd586 + ld c, $0 .asm_101bb - ld a, [hli] - cp [hl] - ld [hli], a - jr z, .asm_101d2 - ld b, a - call nz, Func_101d9 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_101d2 - ld a, [wCurrentStage] - bit 0, a - ld a, b - call nz, Func_10230 + ld a, [hli] + cp [hl] + ld [hli], a + jr z, .asm_101d2 + ld b, a + call nz, Func_101d9 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_101d2 + ld a, [wCurrentStage] + bit 0, a + ld a, b + call nz, Func_10230 .asm_101d2 - inc c - ld a, c - cp $18 - jr nz, .asm_101bb - ret + inc c + ld a, c + cp $18 + jr nz, .asm_101bb + ret Func_101d9: ; 0x101d9 - push bc - push hl - push de - push af - ld a, $10 - ld [de], a - inc de - ld a, $1 - ld [de], a - inc de - ld b, $0 - ld hl, Data_102a4 - add hl, bc - ld c, [hl] - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - ld hl, $8900 - add hl, bc - ld a, l - ld [de], a - inc de - ld a, h - ld [de], a - inc de - ld a, [$ff8c] - ld l, a - ld a, [$ff8d] - ld h, a - add hl, bc - pop af - and a - jr nz, .asm_10215 - ld bc, $0180 - add hl, bc + push bc + push hl + push de + push af + ld a, $10 + ld [de], a + inc de + ld a, $1 + ld [de], a + inc de + ld b, $0 + ld hl, Data_102a4 + add hl, bc + ld c, [hl] + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + ld hl, vTilesSH tile $10 + add hl, bc + ld a, l + ld [de], a + inc de + ld a, h + ld [de], a + inc de + ld a, [$ff8c] + ld l, a + ld a, [$ff8d] + ld h, a + add hl, bc + pop af + and a + jr nz, .asm_10215 + ld bc, $0180 + add hl, bc .asm_10215 - ld a, l - ld [de], a - inc de - ld a, h - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $0 - ld [de], a - inc de - pop bc - push de - xor a - ld de, $11d2 - call Func_10c5 - pop de - pop hl - pop bc - ret + ld a, l + ld [de], a + inc de + ld a, h + ld [de], a + inc de + ld a, [$ff8e] + ld [de], a + inc de + ld a, $0 + ld [de], a + inc de + pop bc + push de + xor a + ld de, Func_11d2 + call Func_10c5 + pop de + pop hl + pop bc + ret Func_10230: ; 0x10230 - push bc - push hl - push de - push af - ld a, $1 - ld [de], a - inc de - ld [de], a - inc de - ld b, $0 - ld hl, Data_102a4 - add hl, bc - ld c, [hl] - sla c - ld hl, PointerTable_10274 - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - srl c - ld a, [$ff8f] - ld l, a - ld a, [$ff90] - ld h, a - add hl, bc - pop af - and a - ld a, [$ff91] - call ReadByteFromBank - jr nz, .asm_10261 - ld a, $5 + push bc + push hl + push de + push af + ld a, $1 + ld [de], a + inc de + ld [de], a + inc de + ld b, $0 + ld hl, Data_102a4 + add hl, bc + ld c, [hl] + sla c + ld hl, PointerTable_10274 + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + srl c + ld a, [$ff8f] + ld l, a + ld a, [$ff90] + ld h, a + add hl, bc + pop af + and a + ld a, [$ff91] + call ReadByteFromBank + jr nz, .asm_10261 + ld a, $5 .asm_10261 - ld [de], a - inc de - ld a, $0 - ld [de], a - inc de - pop bc - push de - xor a - ld de, $118d - call Func_10c5 - pop de - pop hl - pop bc - ret + ld [de], a + inc de + ld a, $0 + ld [de], a + inc de + pop bc + push de + xor a + ld de, LoadTileListsBank1 + call Func_10c5 + pop de + pop hl + pop bc + ret PointerTable_10274: ; 0x10274 - dw $9887 - dw $9888 - dw $9889 - dw $988A - dw $988B - dw $988C - dw $98A7 - dw $98A8 - dw $98A9 - dw $98AA - dw $98AB - dw $98AC - dw $98C7 - dw $98C8 - dw $98C9 - dw $98CA - dw $98CB - dw $98CC - dw $98E7 - dw $98E8 - dw $98E9 - dw $98EA - dw $98EB - dw $98EC + dw $9887 + dw $9888 + dw $9889 + dw $988A + dw $988B + dw $988C + dw $98A7 + dw $98A8 + dw $98A9 + dw $98AA + dw $98AB + dw $98AC + dw $98C7 + dw $98C8 + dw $98C9 + dw $98CA + dw $98CB + dw $98CC + dw $98E7 + dw $98E8 + dw $98E9 + dw $98EA + dw $98EB + dw $98EC Data_102a4: ; 0x102a4 - db $00, $07, $06, $01, $0E, $15, $14, $0F, $04, $0B, $0A, $05, $0C, $13, $12, $0D, $02, $09, $08, $03, $10, $17, $16, $11 + db $00, $07, $06, $01, $0E, $15, $14, $0F, $04, $0B, $0A, $05, $0C, $13, $12, $0D, $02, $09, $08, $03, $10, $17, $16, $11 Func_102bc: ; 0x102bc - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_102cb - inc b + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_102cb + inc b .asm_102cb - ld hl, MonBillboardPalettePointers - add hl, bc - ld a, [hli] - ld [$ff8c], a - ld a, [hli] - ld [$ff8d], a - ld a, [hl] - ld [$ff8e], a - ld de, $c1b8 - ld a, $10 - ld [de], a - inc de - ld a, $8 - ld [de], a - inc de - ld a, $30 - ld [de], a - inc de - ld a, [$ff8c] - ld [de], a - inc de - ld a, [$ff8d] - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $0 - ld [de], a - xor a - ld bc, $c1b8 - ld de, $1266 - call Func_10c5 - ret + ld hl, MonBillboardPalettePointers + add hl, bc + ld a, [hli] + ld [$ff8c], a + ld a, [hli] + ld [$ff8d], a + ld a, [hl] + ld [$ff8e], a + ld de, wc1b8 + ld a, $10 + ld [de], a + inc de + ld a, $8 + ld [de], a + inc de + ld a, $30 + ld [de], a + inc de + ld a, [$ff8c] + ld [de], a + inc de + ld a, [$ff8d] + ld [de], a + inc de + ld a, [$ff8e] + ld [de], a + inc de + ld a, $0 + ld [de], a + xor a + ld bc, wc1b8 + ld de, Func_1266 + call Func_10c5 + ret Func_10301: ; 0x10301 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_10310 - inc b + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_10310 + inc b .asm_10310 - ld hl, MonAnimatedPalettePointers - add hl, bc - ld a, [hli] - ld [$ff8c], a - ld a, [hli] - ld [$ff8d], a - ld a, [hl] - ld [$ff8e], a - ld de, $c1b8 - ld a, $10 - ld [de], a - inc de - ld a, $4 - ld [de], a - inc de - ld a, $58 - ld [de], a - inc de - ld a, [$ff8c] - ld [de], a - inc de - ld a, [$ff8d] - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $4 - ld [de], a - inc de - ld a, $68 - ld [de], a - inc de - ld a, [$ff8c] - ld l, a - ld a, [$ff8d] - ld h, a - ld bc, $0008 - add hl, bc - ld a, l - ld [de], a - inc de - ld a, h - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $0 - ld [de], a - xor a - ld bc, $c1b8 - ld de, $1266 - call Func_10c5 - ret + ld hl, MonAnimatedPalettePointers + add hl, bc + ld a, [hli] + ld [$ff8c], a + ld a, [hli] + ld [$ff8d], a + ld a, [hl] + ld [$ff8e], a + ld de, wc1b8 + ld a, $10 + ld [de], a + inc de + ld a, $4 + ld [de], a + inc de + ld a, $58 + ld [de], a + inc de + ld a, [$ff8c] + ld [de], a + inc de + ld a, [$ff8d] + ld [de], a + inc de + ld a, [$ff8e] + ld [de], a + inc de + ld a, $4 + ld [de], a + inc de + ld a, $68 + ld [de], a + inc de + ld a, [$ff8c] + ld l, a + ld a, [$ff8d] + ld h, a + ld bc, $0008 + add hl, bc + ld a, l + ld [de], a + inc de + ld a, h + ld [de], a + inc de + ld a, [$ff8e] + ld [de], a + inc de + ld a, $0 + ld [de], a + xor a + ld bc, wc1b8 + ld de, Func_1266 + call Func_10c5 + ret Func_10362: ; 0x10362 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_10371 - inc b + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_10371 + inc b .asm_10371 - ld hl, MonAnimatedPicPointers - add hl, bc - ld a, [hli] - ld [$ff8c], a - ld a, [hli] - ld [$ff8d], a - ld a, [hl] - ld [$ff8e], a - ld de, $c150 - ld bc, $0000 + ld hl, MonAnimatedPicPointers + add hl, bc + ld a, [hli] + ld [$ff8c], a + ld a, [hli] + ld [$ff8d], a + ld a, [hl] + ld [$ff8e], a + ld de, wc150 + ld bc, $0000 .asm_10384 - call Func_1038e - inc c - ld a, c - cp $d - jr nz, .asm_10384 - ret + call Func_1038e + inc c + ld a, c + cp $d + jr nz, .asm_10384 + ret Func_1038e: ; 0x1038e - push bc - push de - ld a, c - sla a - add c - ld c, a - sla c - ld hl, Data_103c6 - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [$ff8c] - add [hl] - ld [de], a - inc hl - inc de - ld a, [$ff8d] - adc [hl] - ld [de], a - inc de - ld a, [$ff8e] - ld [de], a - inc de - ld a, $0 - ld [de], a - inc de - pop bc - push de - xor a - ld de, $11d2 - call Func_10c5 - pop de - pop bc - ret + push bc + push de + ld a, c + sla a + add c + ld c, a + sla c + ld hl, Data_103c6 + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [$ff8c] + add [hl] + ld [de], a + inc hl + inc de + ld a, [$ff8d] + adc [hl] + ld [de], a + inc de + ld a, [$ff8e] + ld [de], a + inc de + ld a, $0 + ld [de], a + inc de + pop bc + push de + xor a + ld de, Func_11d2 + call Func_10c5 + pop de + pop bc + ret Data_103c6: ; 0x103c6 ; TODO: this might have pointers in it - db $40, $04, $00, $89, $00, $00 - db $40, $04, $40, $89, $40, $00 - db $40, $04, $80, $89, $80, $00 - db $40, $04, $C0, $89, $C0, $00 - db $40, $04, $00, $8A, $00, $01 - db $40, $04, $40, $8A, $40, $01 - db $20, $02, $80, $8A, $80, $01 - db $20, $02, $A0, $81, $A0, $01 - db $40, $04, $C0, $81, $C0, $01 - db $40, $04, $00, $82, $00, $02 - db $40, $04, $40, $82, $40, $02 - db $40, $04, $80, $82, $80, $02 - db $40, $04, $C0, $82, $C0, $02 + db $40, $04, $00, $89, $00, $00 + db $40, $04, $40, $89, $40, $00 + db $40, $04, $80, $89, $80, $00 + db $40, $04, $C0, $89, $C0, $00 + db $40, $04, $00, $8A, $00, $01 + db $40, $04, $40, $8A, $40, $01 + db $20, $02, $80, $8A, $80, $01 + db $20, $02, $A0, $81, $A0, $01 + db $40, $04, $C0, $81, $C0, $01 + db $40, $04, $00, $82, $00, $02 + db $40, $04, $40, $82, $40, $02 + db $40, $04, $80, $82, $80, $02 + db $40, $04, $C0, $82, $C0, $02 Func_10414: ; 0x10414 - ld a, $4 - ld bc, $4420 - ld de, $11b5 - call Func_10c5 - ret - -INCBIN "baserom.gbc",$10420,$10432 - $10420 + ld a, BANK(Data_10420) + ld bc, Data_10420 + ld de, Func_11b5 + call Func_10c5 + ret + +Data_10420: + db $18 + db $06 + dw $9887 + db $80 + db $06 + dw $98a7 + db $80 + db $06 + dw $98c7 + db $80 + db $06 + dw $98e7 + db $80 + db $00 Func_10432: ; 0x10432 - ld a, $4 - ld bc, $443e - ld de, LoadTileLists - call Func_10c5 - ret - -INCBIN "baserom.gbc",$1043e,$10464 - $1043e + ld a, BANK(Data_1043e) + ld bc, Data_1043e + ld de, LoadTileLists + call Func_10c5 + ret + +Data_1043e: + db $18 + db $06 + dw $9887 + db $90, $91, $92, $93, $94, $95 + db $06 + dw $98a7 + db $96, $97, $98, $99, $9a, $9b + db $06 + dw $98c7 + db $9c, $9d, $9e, $9f, $a0, $a1 + db $06 + dw $98e7 + db $a2, $a3, $a4, $a5, $a6, $a7 + db $00 Func_10464: ; 0x10464 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .noCarry - inc b + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .noCarry + inc b .noCarry - ld hl, MonAnimatedCollisionMaskPointers - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld h, b - ld l, c - ld de, wMonAnimatedCollisionMask - ld bc, $0080 - call CopyDataToRAM - ret + ld hl, MonAnimatedCollisionMaskPointers + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hl] + ld h, b + ld l, c + ld de, wMonAnimatedCollisionMask + ld bc, $0080 + call FarCopyData + ret Func_10488: ; 0x10488 - xor a - ld hl, wMonAnimatedCollisionMask - ld b, $20 + xor a + ld hl, wMonAnimatedCollisionMask + ld b, $20 .asm_1048e - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .asm_1048e - ret + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + dec b + jr nz, .asm_1048e + ret Func_10496: ; 0x10496 - xor a - ld [$d5c6], a - ld a, $2a - ld hl, $47e0 - ld de, $87e0 - ld bc, $0020 - call LoadVRAMData - ld a, $2a - ld hl, $4800 - ld de, $8900 - ld bc, $0180 - call LoadVRAMData - call LoadShakeBallGfx - ld hl, BallCaptureAnimationData - ld de, wBallCaptureAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [$d5f3], a - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - xor a - ld [$d548], a - ld [$d549], a - ld de, $000b - call PlaySoundEffect - ret + xor a + ld [wd5c6], a + ld a, BANK(PikachuSaverGfx) + ld hl, PikachuSaverGfx + $c0 + ld de, vTilesOB tile $7e + ld bc, $0020 + call LoadVRAMData + ld a, BANK(GFX_a8800) + ld hl, GFX_a8800 + ld de, vTilesSH tile $10 + ld bc, $0180 + call LoadVRAMData + call LoadShakeBallGfx + ld hl, BallCaptureAnimationData + ld de, wBallCaptureAnimationFrameCounter + call CopyHLToDE + ld a, $1 + ld [wd5f3], a + xor a + ld [wBallXVelocity], a + ld [wBallXVelocity + 1], a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + xor a + ld [wd548], a + ld [wd549], a + lb de, $00, $0b + call PlaySoundEffect + ret LoadShakeBallGfx: ; 0x104e2 ; Loads the graphics for the ball shaking after a pokemon is caught. - ld a, [wBallType] - cp GREAT_BALL - jr nc, .notPokeball - ld a, Bank(PinballPokeballShakeGfx) - ld hl, PinballPokeballShakeGfx - ld de, $8380 - ld bc, $0040 - call LoadVRAMData - ret + ld a, [wBallType] + cp GREAT_BALL + jr nc, .notPokeball + ld a, Bank(PinballPokeballShakeGfx) + ld hl, PinballPokeballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call LoadVRAMData + ret + .notPokeball - cp ULTRA_BALL - jr nc, .notGreatball - ld a, Bank(PinballGreatballShakeGfx) - ld hl, PinballGreatballShakeGfx - ld de, $8380 - ld bc, $0040 - call LoadVRAMData - ret + cp ULTRA_BALL + jr nc, .notGreatball + ld a, Bank(PinballGreatballShakeGfx) + ld hl, PinballGreatballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call LoadVRAMData + ret + .notGreatball - cp MASTER_BALL - jr nc, .notUltraBall - ld a, Bank(PinballUltraballShakeGfx) - ld hl, PinballUltraballShakeGfx - ld de, $8380 - ld bc, $0040 - call LoadVRAMData - ret + cp MASTER_BALL + jr nc, .notUltraBall + ld a, Bank(PinballUltraballShakeGfx) + ld hl, PinballUltraballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call LoadVRAMData + ret + .notUltraBall - ld a, Bank(PinballMasterballShakeGfx) - ld hl, PinballMasterballShakeGfx - ld de, $8380 - ld bc, $0040 - call LoadVRAMData - ret + ld a, Bank(PinballMasterballShakeGfx) + ld hl, PinballMasterballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call LoadVRAMData + ret CapturePokemon: ; 0x1052d - ld a, [wBallCaptureAnimationFrame] - cp $c - jr nz, .asm_10541 - ld a, [wBallCaptureAnimationFrameCounter] - cp $1 - jr nz, .asm_10541 - ld de, $0041 - call PlaySoundEffect + ld a, [wBallCaptureAnimationFrame] + cp $c + jr nz, .asm_10541 + ld a, [wBallCaptureAnimationFrameCounter] + cp $1 + jr nz, .asm_10541 + lb de, $00, $41 + call PlaySoundEffect .asm_10541 - ld hl, BallCaptureAnimationData - ld de, wBallCaptureAnimationFrameCounter - call UpdateAnimation - ld a, [wBallCaptureAnimationFrameIndex] - cp $1 - jr nz, .asm_1055d - ld a, [wBallCaptureAnimationFrameCounter] - cp $1 - jr nz, .asm_1055d - xor a - ld [$d5bb], a - ret + ld hl, BallCaptureAnimationData + ld de, wBallCaptureAnimationFrameCounter + call UpdateAnimation + ld a, [wBallCaptureAnimationFrameIndex] + cp $1 + jr nz, .asm_1055d + ld a, [wBallCaptureAnimationFrameCounter] + cp $1 + jr nz, .asm_1055d + xor a + ld [wd5bb], a + ret + .asm_1055d - ld a, [wBallCaptureAnimationFrameIndex] - cp $15 - ret nz - ld a, [wBallCaptureAnimationFrameCounter] - cp $1 - ret nz - call Func_3475 - ld de, $0000 - call PlaySong - rst $10 - ld de, $2329 - call PlaySoundEffect - call Func_10825 - call Func_3475 - ld a, [wNumPartyMons] - and a - call z, Func_10848 - ld a, $50 - ld [$d4b4], a - ld a, $40 - ld [$d4b6], a - ld a, $80 - ld [wBallXVelocity], a - xor a - ld [wBallXPos], a - ld [wBallYPos], a - ld [$d5f3], a - ld a, $1 - ld [$d548], a - ld [$d549], a - ld [$ff8a], a - ld a, Bank(Func_dc00) - ld hl, Func_dc00 - call BankSwitch - call Func_10157 - ld de, $0001 - call PlaySong - ld hl, $d628 - call Func_e4a - jr nc, .asm_105d1 - ld c, $a - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch + ld a, [wBallCaptureAnimationFrameIndex] + cp $15 + ret nz + ld a, [wBallCaptureAnimationFrameCounter] + cp $1 + ret nz + call Func_3475 + ld de, $0000 + call PlaySong + rst AdvanceFrame + lb de, $23, $29 + call PlaySoundEffect + call Func_10825 + call Func_3475 + ld a, [wNumPartyMons] + and a + call z, Func_10848 + ld a, $50 + ld [wd4b4], a + ld a, $40 + ld [wd4b6], a + ld a, $80 + ld [wBallXVelocity], a + xor a + ld [wBallXPos], a + ld [wBallYPos], a + ld [wd5f3], a + ld a, $1 + ld [wd548], a + ld [wd549], a + callba RestoreBallSaverAfterCatchEmMode + call Func_10157 + ld de, $0001 + call PlaySong + ld hl, wd628 + call Func_e4a + jr nc, .asm_105d1 + ld c, $a + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch .asm_105d1 - call SetPokemonOwnedFlag - ld a, [$d624] - cp $3 - ret z - inc a - ld [$d625], a - ld a, $80 - ld [$d626], a - ret + call SetPokemonOwnedFlag + ld a, [wd624] + cp $3 + ret z + inc a + ld [wd625], a + ld a, $80 + ld [wd626], a + ret BallCaptureAnimationData: ; 0x105e4 ; Each entry is [OAM id][duration] - db $05, $00 - db $05, $01 - db $05, $02 - db $04, $03 - db $06, $04 - db $08, $05 - db $07, $06 - db $05, $07 - db $04, $08 - db $04, $09 - db $04, $0A - db $04, $0B - db $24, $0A - db $09, $0C - db $09, $0A - db $09, $0C - db $27, $0A - db $09, $0C - db $09, $0A - db $09, $0C - db $24, $0A - db $01, $0A - db $00 ; terminator + db $05, $00 + db $05, $01 + db $05, $02 + db $04, $03 + db $06, $04 + db $08, $05 + db $07, $06 + db $05, $07 + db $04, $08 + db $04, $09 + db $04, $0A + db $04, $0B + db $24, $0A + db $09, $0C + db $09, $0A + db $09, $0C + db $27, $0A + db $09, $0C + db $09, $0A + db $09, $0C + db $24, $0A + db $01, $0A + db $00 ; terminator Func_10611: ; 0x10611 - and a - ret z - dec a - sla a - ld c, a - ld b, $0 - ld hl, $462a - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - ld a, $4 - ld de, $11d2 - call Func_10c5 - ret - -INCBIN "baserom.gbc",$1062a,$10648 - $1062a + and a + ret z + dec a + sla a + ld c, a + ld b, $0 + ld hl, Data_1062a + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + ld a, BANK(Data_1062a) + ld de, Func_11d2 + call Func_10c5 + ret + +Data_1062a: + dw Data_10630 + dw Data_10638 + dw Data_10640 + +Data_10630: + db $20 + db $02 + dw $8ae0 + dw CatchTextGfx + $00 + db BANK(CatchTextGfx) + db $00 + +Data_10638: + db $20 + db $02 + dw $8b00 + dw CatchTextGfx + $20 + db BANK(CatchTextGfx) + db $00 + +Data_10640: + db $20 + db $02 + dw $8b20 + dw CatchTextGfx + $40 + db BANK(CatchTextGfx) + db $00 Func_10648: ; 0x10648 - call Func_10184 - ld a, [$d54e] - dec a - ld [$d54e], a - jr nz, .asm_10677 - ld a, $14 - ld [$d54e], a - ld hl, $d586 - ld b, $18 + call Func_10184 + ld a, [wd54e] + dec a + ld [wd54e], a + jr nz, .asm_10677 + ld a, $14 + ld [wd54e], a + ld hl, wd586 + ld b, $18 .asm_1065e - ld a, [$d54f] - and $1 - ld [hli], a - xor $1 - ld [hli], a - dec b - jr nz, .asm_1065e - ld a, [$d54f] - dec a - ld [$d54f], a - jr nz, .asm_10677 - ld hl, $d54d - inc [hl] + ld a, [wd54f] + and $1 + ld [hli], a + xor $1 + ld [hli], a + dec b + jr nz, .asm_1065e + ld a, [wd54f] + dec a + ld [wd54f], a + jr nz, .asm_10677 + ld hl, wd54d + inc [hl] .asm_10677 - ret + ret Func_10678: ; 0x10678 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - ld hl, MonAnimatedSpriteTypes - add hl, bc - ld a, [hl] - ld [$d5bc], a - ld [$d5bd], a - ld a, $1 - ld [$d5bb], a - xor a - ld [$d5bf], a - ld [wNumMonHits], a - ret + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + ld hl, MonAnimatedSpriteTypes + add hl, bc + ld a, [hl] + ld [wd5bc], a + ld [wd5bd], a + ld a, $1 + ld [wd5bb], a + xor a + ld [wBallHitWildMon], a + ld [wNumMonHits], a + ret Func_10696: ; 0x10696 - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $29b7 - call Func_32aa - ret + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, LetsGetPokemonText + call LoadTextHeader + ret Func_106a6: ; 0x106a6 - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $29d0 - call Func_32aa - ret + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, PokemonRanAwayText + call LoadTextHeader + ret Func_106b6: ; 0x106b6 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b ; bc was just multiplied by 16 - ld hl, PokemonNames + 1 - add hl, bc - ld de, $2a67 ; todo "You got an" - ld bc, $2a91 ; todo - ld a, [hl] - ; check if mon's name starts with a vowel, so it can print "an", instead of "a" - cp "A" - jr z, .asm_106f1 - cp "I" - jr z, .asm_106f1 - cp "U" - jr z, .asm_106f1 - cp "E" - jr z, .asm_106f1 - cp "O" - jr z, .asm_106f1 - ld de, $2a56 ; todo "You got a" - ld bc, $2a79 + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b ; bc was just multiplied by 16 + ld hl, PokemonNames + 1 + add hl, bc + ld de, YouGotAnText ; "You got an" + ld bc, Data_2a91 + ld a, [hl] + ; check if mon's name starts with a vowel, so it can print "an", instead of "a" + cp "A" + jr z, .asm_106f1 + cp "I" + jr z, .asm_106f1 + cp "U" + jr z, .asm_106f1 + cp "E" + jr z, .asm_106f1 + cp "O" + jr z, .asm_106f1 + ld de, YouGotAText ; "You got a" + ld bc, Data_2a79 .asm_106f1 - push hl - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5cc - pop de - call Func_32aa - ld hl, $d5d4 - pop de - call Func_32aa - pop hl - ld de, $c520 - ld b, $0 ; count the number of letters in mon's name in register b + push hl + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + pop de + call LoadTextHeader + ld hl, wd5d4 + pop de + call LoadTextHeader + pop hl + ld de, wBottomMessageText + $20 + ld b, $0 ; count the number of letters in mon's name in register b .readLetter - ld a, [hli] - and a - jr z, .endOfName - ld [de], a - inc de - inc b - jr .readLetter + ld a, [hli] + and a + jr z, .endOfName + ld [de], a + inc de + inc b + jr .readLetter + .endOfName - ld a, $20 - ld [de], a - inc de - xor a - ld [de], a - ld a, [$d5db] - add b - ld [$d5db], a - ld a, $14 - sub b - srl a - ld b, a - ld a, [$d5d8] - add b - ld [$d5d8], a - ret + ld a, $20 + ld [de], a + inc de + xor a + ld [de], a + ld a, [wd5db] + add b + ld [wd5db], a + ld a, $14 + sub b + srl a + ld b, a + ld a, [wd5d8] + add b + ld [wd5d8], a + ret Func_10732: ; 0x10732 - ld a, [wCurrentCatchEmMon] - inc a - ld e, a - ld d, $0 - call PlayCry - ret + ld a, [wCurrentCatchEmMon] + inc a + ld e, a + ld d, $0 + call PlayCry + ret AddCaughtPokemonToParty: ; 0x1073d - ld a, [wNumPartyMons] - ld c, a - ld b, $0 - ld hl, wPartyMons - add hl, bc - ld a, [wCurrentCatchEmMon] - ld [hl], a - ld a, [wNumPartyMons] - inc a - ld [wNumPartyMons], a - ret + ld a, [wNumPartyMons] + ld c, a + ld b, $0 + ld hl, wPartyMons + add hl, bc + ld a, [wCurrentCatchEmMon] + ld [hl], a + ld a, [wNumPartyMons] + inc a + ld [wNumPartyMons], a + ret SetPokemonSeenFlag: ; 0x10753 - ld a, [wSpecialMode] - and a - ld a, [wCurrentCatchEmMon] - jr z, .asm_10766 - ld a, [wCurrentEvolutionMon] - cp $ff - jr nz, .asm_10766 - ld a, [wCurrentCatchEmMon] + ld a, [wSpecialMode] + and a + ld a, [wCurrentCatchEmMon] + jr z, .asm_10766 + ld a, [wCurrentEvolutionMon] + cp $ff + jr nz, .asm_10766 + ld a, [wCurrentCatchEmMon] .asm_10766 - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - set 0, [hl] - ld hl, wPokedexFlags - ld de, $a10c - ld bc, $0098 - call SaveData - ret + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + set 0, [hl] + ld hl, wPokedexFlags + ld de, sPokedexFlags + ld bc, $0098 + call SaveData + ret SetPokemonOwnedFlag: ; 0x1077c - ld a, [wSpecialMode] - and a - ld a, [wCurrentCatchEmMon] - jr z, .asm_1078f - ld a, [wCurrentEvolutionMon] - cp $ff - jr nz, .asm_1078f - ld a, [wCurrentCatchEmMon] + ld a, [wSpecialMode] + and a + ld a, [wCurrentCatchEmMon] + jr z, .asm_1078f + ld a, [wCurrentEvolutionMon] + cp $ff + jr nz, .asm_1078f + ld a, [wCurrentCatchEmMon] .asm_1078f - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - set 1, [hl] - ld hl, wPokedexFlags - ld de, $a10c - ld bc, $0098 - call SaveData - ret + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + set 1, [hl] + ld hl, wPokedexFlags + ld de, sPokedexFlags + ld bc, $0098 + call SaveData + ret Func_107a5: ; 0x107a5 - xor a - ld hl, wIndicatorStates - ld b, $13 + xor a + ld hl, wIndicatorStates + ld b, $13 .asm_107ab - ld [hli], a - dec b - jr nz, .asm_107ab - ret + ld [hli], a + dec b + jr nz, .asm_107ab + ret Func_107b0: ; 0x107b0 - xor a - ld [$d604], a - ld [wIndicatorStates + 4], a - ld [$ff8a], a - ld a, Bank(Func_16425) - ld hl, Func_16425 - call BankSwitch - ret + xor a + ld [wd604], a + ld [wIndicatorStates + 4], a + callba Func_16425 + ret Func_107c2: ; 0x107c2 - ld a, $1e - ld [$d607], a - ret + ld a, $1e + ld [wd607], a + ret Func_107c8: ; 0x107c8 - ld a, [wRightAlleyCount] - cp $3 - jr z, .asm_107d1 - set 7, a + ld a, [wRightAlleyCount] + cp $3 + jr z, .asm_107d1 + set 7, a .asm_107d1 - ld [wIndicatorStates + 1], a - ld a, [wRightAlleyCount] - cp $2 - jr c, .asm_107e0 - ld a, $80 - ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 1], a + ld a, [wRightAlleyCount] + cp $2 + jr c, .asm_107e0 + ld a, $80 + ld [wIndicatorStates + 3], a .asm_107e0 - ld a, [wLeftAlleyCount] - set 7, a - ld [wIndicatorStates], a - ret + ld a, [wLeftAlleyCount] + set 7, a + ld [wIndicatorStates], a + ret Func_107e9: ; 0x107e9 - ld a, [wLeftAlleyCount] - cp $3 - ld a, $4 - jr nz, .asm_107f4 - ld a, $6 + ld a, [wLeftAlleyCount] + cp $3 + ld a, $4 + jr nz, .asm_107f4 + ld a, $6 .asm_107f4 - ld [$d7ad], a - ret + ld [wd7ad], a + ret Func_107f8: ; 0x107f8 - ld a, [wTimerFrames] - and a - ret nz - ld a, [wTimerMinutes] - and a - ret nz - ld a, [wTimerSeconds] - cp $20 - jr nz, .asm_10810 - ld de, $0749 - call PlaySoundEffect - ret + ld a, [wTimerFrames] + and a + ret nz + ld a, [wTimerMinutes] + and a + ret nz + ld a, [wTimerSeconds] + cp $20 + jr nz, .asm_10810 + lb de, $07, $49 + call PlaySoundEffect + ret + .asm_10810 - cp $10 - jr nz, .asm_1081b - ld de, $0a4a - call PlaySoundEffect - ret + cp $10 + jr nz, .asm_1081b + lb de, $0a, $4a + call PlaySoundEffect + ret + .asm_1081b - cp $5 - ret nz - ld de, $0d4b - call PlaySoundEffect - ret + cp $5 + ret nz + lb de, $0d, $4b + call PlaySoundEffect + ret Func_10825: ; 0x10825 - call Func_3556 - push bc - push de - call Func_351c - call Func_30e8 - call Func_30db - ld hl, $d5e9 - ld de, $2a50 - call Func_3372 - pop de - pop bc - ld hl, $d5e4 - ld de, $2a43 - call Func_3357 - ret + call Retrieve8DigitBCDValueAtwd47a + push bc + push de + call AddBCDEToCurBufferValue + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5e9 + ld de, Data_2a50 + call Func_3372 + pop de + pop bc + ld hl, wd5e4 + ld de, JackpotText + call Func_3357 + ret Func_10848: ; 0x10848 - ld bc, $34fa - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - call Func_30e8 - call Func_30db - ld hl, $d5d4 - ld de, $2a0c - call Func_32aa - ld hl, $d5cc - ld de, $29e8 - call Func_32aa - call Func_3475 - ret + ld bc, OneHundredMillionPoints + callba AddBigBCD6FromQueue + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5d4 + ld de, OneBillionText + call LoadTextHeader + ld hl, wd5cc + ld de, PokemonCaughtSpecialBonusText + call LoadTextHeader + call Func_3475 + ret Func_10871: ; 0x10871 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - ld hl, EvolutionLineIds - add hl, bc - ld a, [hl] ; a contains evolution line id - ld c, a - ld b, $0 - ld l, c - ld h, b - sla l - rl h - sla l - rl h - sla l - rl h - sla l - rl h - add hl, bc - add hl, bc - add hl, bc - ld c, l - ld b, h - ld hl, CatchEmModeInitialIndicatorStates - add hl, bc - ld de, wIndicatorStates - ld b, $13 ; number of indicators + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + ld hl, EvolutionLineIds + add hl, bc + ld a, [hl] ; a contains evolution line id + ld c, a + ld b, $0 + ld l, c + ld h, b + sla l + rl h + sla l + rl h + sla l + rl h + sla l + rl h + add hl, bc + add hl, bc + add hl, bc + ld c, l + ld b, h + ld hl, CatchEmModeInitialIndicatorStates + add hl, bc + ld de, wIndicatorStates + ld b, $13 ; number of indicators .loop - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .loop - xor a - ld [wRightAlleyCount], a - call Func_107b0 - ld a, $4 - ld [$d7ad], a - ld de, $0002 - call PlaySong - ld a, [wCurrentStage] - bit 0, a - jr nz, .asm_108d3 - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_159f4) - ld hl, Func_159f4 - call BankSwitch - ret + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .loop + xor a + ld [wRightAlleyCount], a + call Func_107b0 + ld a, $4 + ld [wd7ad], a + ld de, $0002 + call PlaySong + ld a, [wCurrentStage] + bit 0, a + jr nz, .asm_108d3 + callba LoadStageCollisionAttributes + callba Func_159f4 + ret + .asm_108d3 - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10184) - ld hl, Func_10184 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_102bc) - ld hl, Func_102bc - call nz, BankSwitch - ret + callba Func_14135 + callba Func_10184 + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_102bc) + ld hl, Func_102bc + call nz, BankSwitch + ret Func_108f5: ; 0x108f5 - call Func_107a5 - call Func_107c2 - call Func_107c8 - call Func_107e9 - ld a, [wCurrentStage] - bit 0, a - ret z - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call BankSwitch - call Func_10432 - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ld a, $36 - ld hl, $6c00 - ld de, $81a0 - ld bc, $0160 - call LoadVRAMData - ld a, $36 - ld hl, $6de0 - ld de, $8380 - ld bc, $0020 - call LoadVRAMData - ld hl, $4958 - ld a, $4 - call Func_10aa - ld a, [$d624] - ld [$ff8a], a - ld a, Bank(Func_174d4) - ld hl, Func_174d4 - call BankSwitch - ld hl, $497d - ld a, $4 - call Func_10aa - ret - -INCBIN "baserom.gbc",$10958,$1098a - $10958 + call Func_107a5 + call Func_107c2 + call Func_107c8 + call Func_107e9 + ld a, [wCurrentStage] + bit 0, a + ret z + callba Func_14135 + call Func_10432 + callba Func_30253 + ld a, Bank(StageSharedBonusSlotGlowGfx) + ld hl, StageSharedBonusSlotGlowGfx + ld de, vTilesOB tile $1a + ld bc, $0160 + call LoadVRAMData + ld a, BANK(StageSharedBonusSlotGlow2Gfx) + ld hl, StageSharedBonusSlotGlow2Gfx + ld de, vTilesOB tile $38 + ld bc, $0020 + call LoadVRAMData + ld hl, Data_10958 + ld a, BANK(Data_10958) + call Func_10aa + ld a, [wd624] + callba Func_174d4 + ld hl, Data_1097d + ld a, BANK(Data_1097d) + call Func_10aa + ret + +Data_10958: + db 3 + dw Data_1095f + dw Data_10969 + dw Data_10973 + +Data_1095f: + dr $1095f, $10969 +Data_10969: + dr $10969, $10973 +Data_10973: + dr $10973, $1097d + +Data_1097d: + db 1 + dw Data_10980 + +Data_10980: + dr $10980, $1098a Func_1098a: ; 0x1098a - ret + ret Func_1098b: ; 0x1098b - ret - -INCBIN "baserom.gbc",$1098c,$1098c - $1098c + ret Func_1098c: ; 0x1098c - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - ld hl, EvolutionLineIds - add hl, bc - ld a, [hl] - ld c, a - ld b, $0 - ld l, c - ld h, b - sla l - rl h - sla l - rl h - sla l - rl h - sla l - rl h - add hl, bc - add hl, bc - add hl, bc - ld c, l - ld b, h - ld hl, CatchEmModeInitialIndicatorStates - add hl, bc - ld de, wIndicatorStates - ld b, $13 ; number of indicators + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + ld hl, EvolutionLineIds + add hl, bc + ld a, [hl] + ld c, a + ld b, $0 + ld l, c + ld h, b + sla l + rl h + sla l + rl h + sla l + rl h + sla l + rl h + add hl, bc + add hl, bc + add hl, bc + ld c, l + ld b, h + ld hl, CatchEmModeInitialIndicatorStates + add hl, bc + ld de, wIndicatorStates + ld b, $13 ; number of indicators .loop - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .loop - xor a - ld [wRightAlleyCount], a - ld [$ff8a], a - ld a, Bank(Func_1f2ed) - ld hl, Func_1f2ed - call BankSwitch - ld de, $0002 - call PlaySong - ld a, [wCurrentStage] - bit 0, a - ret z - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call BankSwitch - ld [$ff8a], a - ld a, $4 - ld hl, Func_10184 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_102bc) - ld hl, Func_102bc - call nz, BankSwitch - ret + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .loop + xor a + ld [wRightAlleyCount], a + callba Func_1f2ed + ld de, $0002 + call PlaySong + ld a, [wCurrentStage] + bit 0, a + ret z + callba Func_1c2cb + ld [hFarCallTempA], a + ld a, $4 + ld hl, Func_10184 + call BankSwitch + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_102bc) + ld hl, Func_102bc + call nz, BankSwitch + ret Func_109fc: ; 0x109fc - call Func_107a5 - call Func_107c2 - ld [$ff8a], a - ld a, Bank(Func_1f2ff) - ld hl, Func_1f2ff - call BankSwitch - ld a, [wCurrentStage] - bit 0, a - ret z - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call BankSwitch - call Func_10432 - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ld a, $36 - ld hl, $6c00 - ld de, $81a0 - ld bc, $0160 - call LoadVRAMData - ld a, $36 - ld hl, $6de0 - ld de, $8380 - ld bc, $0020 - call LoadVRAMData - ld hl, $4a63 - ld a, $4 - call Func_10aa - ld a, [$d624] - ld [$ff8a], a - ld a, Bank(Func_174d4) - ld hl, Func_174d4 - call BankSwitch - ld hl, $4a88 - ld a, $4 - call Func_10aa - ret - -INCBIN "baserom.gbc",$10a63,$10a95 - $10a63 + call Func_107a5 + call Func_107c2 + callba Func_1f2ff + ld a, [wCurrentStage] + bit 0, a + ret z + callba Func_1c2cb + call Func_10432 + callba Func_30253 + ld a, BANK(StageSharedBonusSlotGlowGfx) + ld hl, StageSharedBonusSlotGlowGfx + ld de, vTilesOB tile $1a + ld bc, $0160 + call LoadVRAMData + ld a, BANK(StageSharedBonusSlotGlow2Gfx) + ld hl, StageSharedBonusSlotGlow2Gfx + ld de, vTilesOB tile $38 + ld bc, $0020 + call LoadVRAMData + ld hl, Data_10a63 + ld a, BANK(Data_10a63) + call Func_10aa + ld a, [wd624] + callba Func_174d4 + ld hl, Data_10a88 + ld a, BANK(Data_10a88) + call Func_10aa + ret + +Data_10a63: + db 3 + dw Data_10a6a + dw Data_10a74 + dw Data_10a7e + +Data_10a6a: + dr $10a6a, $10a74 +Data_10a74: + dr $10a74, $10a7e +Data_10a7e: + dr $10a7e, $10a88 + +Data_10a88: + db 1 + dw Data_10a8b + +Data_10a8b: + dr $10a8b, $10a95 Func_10a95: ; 0x19a95 - ld a, [wCurrentStage] - call CallInFollowingTable + ld a, [wCurrentStage] + call CallInFollowingTable PointerTable_10a9b: ; 0x10a9b - ; STAGE_RED_FIELD_TOP - dw Func_20581 - db Bank(Func_20581), $00 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_20581 - db Bank(Func_20581), $00 - - dw Func_20581 - db Bank(Func_20581), $00 - - dw Func_20581 - db Bank(Func_20581), $00 - - ; STAGE_BLUE_FIELD_TOP - dw Func_20bae - db Bank(Func_20bae), $00 - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_20bae - db Bank(Func_20bae), $00 + ; STAGE_RED_FIELD_TOP + padded_dab Func_20581 + ; STAGE_RED_FIELD_BOTTOM + padded_dab Func_20581 + padded_dab Func_20581 + padded_dab Func_20581 + ; STAGE_BLUE_FIELD_TOP + padded_dab Func_20bae + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab Func_20bae Func_10ab3: ; 0x10ab3 - ld a, [wInSpecialMode] - and a - ret nz - ld a, [wCurrentStage] - rst $18 ; calls JumpToFuncInTable + ld a, [wInSpecialMode] + and a + ret nz + ld a, [wCurrentStage] + rst JumpTable ; calls JumpToFuncInTable CallTable_10abc: ; 0x10abc - ; STAGE_RED_FIELD_TOP - dw Func_10ebb - - ; STAGE_RED_FIELD_BOTTOM - dw Func_10ebb - - dw Func_11054 - - dw Func_11054 - - ; STAGE_BLUE_FIELD_TOP - dw Func_11061 - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_11061 + ; STAGE_RED_FIELD_TOP + dw Func_10ebb + ; STAGE_RED_FIELD_BOTTOM + dw Func_10ebb + dw Func_11054 + dw Func_11054 + ; STAGE_BLUE_FIELD_TOP + dw Func_11061 + ; STAGE_BLUE_FIELD_BOTTOM + dw Func_11061 Func_10ac8: ; 0x10ac8 - xor a - ld [$d5ca], a - call Func_30e8 - xor a - ld [wInSpecialMode], a - ld [$d5bb], a - ld [$d5b6], a - ld [wNumMonHits], a - ld [$d551], a - ld [$d554], a - call Func_10488 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld a, [wCurrentStage] - rst $18 ; calls JumpToFuncInTable + xor a + ld [wd5ca], a + call Fillwc600WithBlackTile + xor a + ld [wInSpecialMode], a + ld [wd5bb], a + ld [wd5b6], a + ld [wNumMonHits], a + ld [wd551], a + ld [wd554], a + call Func_10488 + callba Func_86d2 + ld a, [wCurrentStage] + rst JumpTable ; calls JumpToFuncInTable CallTable_10af3: ; 0x10af3 - ; STAGE_RED_FIELD_TOP - dw Func_10fe3 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_10fe3 - - dw Func_11060 - - dw Func_11060 - - ; STAGE_BLUE_FIELD_TOP - dw Func_11195 - - ; STAGE_BLUE_FIELD_TOP - dw Func_11195 + ; STAGE_RED_FIELD_TOP + dw Func_10fe3 + ; STAGE_RED_FIELD_BOTTOM + dw Func_10fe3 + dw Func_11060 + dw Func_11060 + ; STAGE_BLUE_FIELD_TOP + dw Func_11195 + ; STAGE_BLUE_FIELD_TOP + dw Func_11195 Func_10aff: ; 0x10aff - ld a, [wCurrentStage] - res 0, a - ld c, a - ld b, $0 - srl c - sla a - sla a - sla a - sub c - ld c, a - ld hl, VideoData_10b2a - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - push af - push bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - pop hl - pop af - call LoadVRAMData - ret + ld a, [wCurrentStage] + res 0, a + ld c, a + ld b, $0 + srl c + sla a + sla a + sla a + sub c + ld c, a + ld hl, VideoData_10b2a + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + push af + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + pop hl + pop af + call LoadVRAMData + ret VideoData_10b2a: ; 0x10b2a - dwb $7A00, $25 - dw $8900 - dw $E0 - - dwb $7A00, $25 - dw $8900 - dw $E0 - - dwb $7A00, $25 - dw $8900 - dw $E0 - + dab StageRedFieldTopGfx3 + dw $8900 + dw $E0 + dab StageRedFieldTopGfx3 + dw $8900 + dw $E0 + dab StageRedFieldTopGfx3 + dw $8900 + dw $E0 Func_10b3f: ; 0x10b3f - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld a, [wCurrentEvolutionType] - cp EVO_EXPERIENCE - ld de, $2aa9 - jr z, .asm_10b55 - ld de, $2abf + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld a, [wCurrentEvolutionType] + cp EVO_EXPERIENCE + ld de, StartTrainingText + jr z, .asm_10b55 + ld de, FindItemsText .asm_10b55 - call Func_32aa - ret + call LoadTextHeader + ret Func_10b59: ; 0x10b59 - xor a - ld [$d4aa], a - ld hl, wcBottomMessageText - ld a, $81 - ld b, $30 + xor a + ld [wd4aa], a + ld hl, wBottomMessageText + ld a, $81 + ld b, $30 .asm_10b64 - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - dec b - jr nz, .asm_10b64 - ld hl, wPartyMons - call Func_10b8e - ld a, $35 - ld hl, $6450 - ld de, $8880 - ld bc, $0030 - call LoadVRAMData - ld a, $0 - ld hl, wcBottomMessageText - ld de, $9c00 - ld bc, $00c0 - call LoadVRAMData - ret + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + dec b + jr nz, .asm_10b64 + ld hl, wPartyMons + call Func_10b8e + ld a, BANK(InGameMenuSymbolsGfx) + ld hl, InGameMenuSymbolsGfx + ld de, vTilesSH tile $08 + ld bc, $0030 + call LoadVRAMData + ld a, $0 + ld hl, wBottomMessageText + deCoord 0, 0, vBGWin + ld bc, $00c0 + call LoadVRAMData + ret Func_10b8e: ; 0x10b8e - ld a, [wNumPartyMons] - ld c, $0 - ld b, a + ld a, [wNumPartyMons] + ld c, $0 + ld b, a .asm_10b94 - ld a, [hli] - call Func_10ba2 - inc c - ld a, c - cp $6 - jr z, .asm_10ba1 - dec b - jr nz, .asm_10b94 + ld a, [hli] + call Func_10ba2 + inc c + ld a, c + cp $6 + jr z, .asm_10ba1 + dec b + jr nz, .asm_10b94 .asm_10ba1 - ret + ret Func_10ba2: ; 0x10ba2 - push bc - push hl - swap c - sla c - ld b, $0 - ld hl, wcBottomMessageText - add hl, bc - ld d, h - ld e, l - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - ld hl, PokemonNames - add hl, bc - ld a, $81 - ld [de], a - inc de - ld a, $81 - ld [de], a - inc de - ld a, $81 - ld [de], a - inc de - ld a, $81 - ld [de], a - inc de - call Func_3125 + push bc + push hl + swap c + sla c + ld b, $0 + ld hl, wBottomMessageText + add hl, bc + ld d, h + ld e, l + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + ld hl, PokemonNames + add hl, bc + ld a, $81 + ld [de], a + inc de + ld a, $81 + ld [de], a + inc de + ld a, $81 + ld [de], a + inc de + ld a, $81 + ld [de], a + inc de + call Func_3125 .asm_10bda - ld a, e - and $1f - cp $14 - jr nc, .asm_10be7 - ld a, $81 - ld [de], a - inc de - jr .asm_10bda + ld a, e + and $1f + cp $14 + jr nc, .asm_10be7 + ld a, $81 + ld [de], a + inc de + jr .asm_10bda + .asm_10be7 - pop hl - pop bc - ret + pop hl + pop bc + ret Func_10bea: ; 0x10bea - xor a - ld [$d461], a - ld [$d462], a - ld [$d463], a + xor a + ld [wd461], a + ld [wd462], a + ld [wd463], a .asm_10bf4 - call Func_10c0c - call Func_b2e - call Func_10c38 - rst $10 - ld a, [$d809] - bit 0, a - jr z, .asm_10bf4 - ld de, $0001 - call PlaySoundEffect - ret + call Func_10c0c + call Func_b2e + call Func_10c38 + rst AdvanceFrame + ld a, [wd809] + bit 0, a + jr z, .asm_10bf4 + lb de, $00, $01 + call PlaySoundEffect + ret Func_10c0c: ; 0x10c0c - ld a, [$d80a] - ld b, a - ld a, [wNumPartyMons] - ld c, a - ld a, [$d461] - bit 6, b - jr z, .asm_10c28 - and a - ret z - dec a - ld [$d461], a - ld de, $0003 - call PlaySoundEffect - ret + ld a, [wd80a] + ld b, a + ld a, [wNumPartyMons] + ld c, a + ld a, [wd461] + bit 6, b + jr z, .asm_10c28 + and a + ret z + dec a + ld [wd461], a + lb de, $00, $03 + call PlaySoundEffect + ret + .asm_10c28 - bit 7, b - ret z - inc a - cp c - ret z - ld [$d461], a - ld de, $0003 - call PlaySoundEffect - ret + bit 7, b + ret z + inc a + cp c + ret z + ld [wd461], a + lb de, $00, $03 + call PlaySoundEffect + ret Func_10c38: ; 0x10c38 - ld a, [$d461] - ld hl, $d462 - sub [hl] - jr nc, .asm_10c45 - dec [hl] - xor a - jr .asm_10c4c + ld a, [wd461] + ld hl, wd462 + sub [hl] + jr nc, .asm_10c45 + dec [hl] + xor a + jr .asm_10c4c + .asm_10c45 - cp $6 - jr c, .asm_10c4c - inc [hl] - ld a, $5 + cp $6 + jr c, .asm_10c4c + inc [hl] + ld a, $5 .asm_10c4c - ld c, a - push bc - ld a, [hl] - ld c, a - ld b, $0 - ld hl, wPartyMons - add hl, bc - call Func_10b8e - ld a, [hJoypadState] - and a - ld a, [$d463] - jr z, .asm_10c62 - xor a + ld c, a + push bc + ld a, [hl] + ld c, a + ld b, $0 + ld hl, wPartyMons + add hl, bc + call Func_10b8e + ld a, [hJoypadState] + and a + ld a, [wd463] + jr z, .asm_10c62 + xor a .asm_10c62 - inc a - ld [$d463], a - bit 3, a - pop bc - jr nz, .asm_10c78 - swap c - sla c - ld b, $0 - ld hl, $c503 - add hl, bc - ld a, $88 - ld [hl], a + inc a + ld [wd463], a + bit 3, a + pop bc + jr nz, .asm_10c78 + swap c + sla c + ld b, $0 + ld hl, wBottomMessageText + $03 + add hl, bc + ld a, $88 + ld [hl], a .asm_10c78 - ld a, [$d462] - and a - jr z, .asm_10c83 - ld a, $8a - ld [$c511], a + ld a, [wd462] + and a + jr z, .asm_10c83 + ld a, $8a + ld [wBottomMessageText + $11], a .asm_10c83 - ld a, [$d462] - add $7 - jr z, .asm_10c96 - ld c, a - ld a, [wNumPartyMons] - cp c - jr c, .asm_10c96 - ld a, $89 - ld [$c5b1], a + ld a, [wd462] + add $7 + jr z, .asm_10c96 + ld c, a + ld a, [wNumPartyMons] + cp c + jr c, .asm_10c96 + ld a, $89 + ld [wBottomMessageText + $b1], a .asm_10c96 - ld a, $0 - ld hl, wcBottomMessageText - ld de, $9c00 - ld bc, $00c0 - call LoadVRAMData - ret + ld a, $0 + ld hl, wBottomMessageText + deCoord 0, 0, vBGWin + ld bc, $00c0 + call LoadVRAMData + ret Func_10ca5: ; 0x10ca5 - ld a, [$d461] - ld c, a - ld b, $0 - ld hl, wPartyMons - add hl, bc - ld a, [wCurrentEvolutionMon] - cp $ff - ret z - ld [hl], a - ret + ld a, [wd461] + ld c, a + ld b, $0 + ld hl, wPartyMons + add hl, bc + ld a, [wCurrentEvolutionMon] + cp $ff + ret z + ld [hl], a + ret Func_10cb7: ; 0x10cb7 - call Func_30e8 - call Func_10b59 - ld a, $60 - ld [$ffa6], a - dec a - ld [$ffa2], a - ld a, $fd - ld [$ffaf], a - call Func_10bea - ld a, $86 - ld [$ffa6], a - ld a, $83 - ld [$ffa2], a - ld [$ffa8], a - ld a, $ff - ld [$ffaf], a - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_10cee - ld a, $18 - ld hl, $7080 - ld de, $8880 - ld bc, $0030 - call LoadVRAMData - jr .asm_10cfc + call Fillwc600WithBlackTile + call Func_10b59 + ld a, $60 + ld [hWY], a + dec a + ld [hLYC], a + ld a, $fd + ld [hLCDCMask], a + call Func_10bea + ld a, $86 + ld [hWY], a + ld a, $83 + ld [hLYC], a + ld [hLastLYC], a + ld a, $ff + ld [hLCDCMask], a + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_10cee + ld a, BANK(StageRedFieldTopStatusBarSymbolsGfx_GameBoy) + ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoy + $80 + ld de, vTilesSH tile $08 + ld bc, $0030 + call LoadVRAMData + jr .asm_10cfc + .asm_10cee - ld a, $27 - ld hl, $4080 - ld de, $8880 - ld bc, $0030 - call LoadVRAMData + ld a, BANK(StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor) + ld hl, StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor + $80 + ld de, vTilesSH tile $08 + ld bc, $0030 + call LoadVRAMData .asm_10cfc - call Func_30e8 - ld a, $1 - ld [$d4aa], a - ld [wInSpecialMode], a - ld [wSpecialMode], a - xor a - ld [$d54d], a - ld a, [$d461] - ld c, a - ld b, $0 - ld hl, wPartyMons - add hl, bc - ld a, [hl] - ld [wCurrentCatchEmMon], a - ret + call Fillwc600WithBlackTile + ld a, $1 + ld [wd4aa], a + ld [wInSpecialMode], a + ld [wSpecialMode], a + xor a + ld [wd54d], a + ld a, [wd461] + ld c, a + ld b, $0 + ld hl, wPartyMons + add hl, bc + ld a, [hl] + ld [wCurrentCatchEmMon], a + ret Func_10d1d: ; 0x10d1d - ld hl, $d586 - ld b, $18 + ld hl, wd586 + ld b, $18 .asm_10d22 - ld a, $1 - ld [hli], a - xor a - ld [hli], a - dec b - jr nz, .asm_10d22 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - ld hl, Data_1298b - add hl, bc - ld a, [hl] - add $2 - ld [$d555], a - xor a - ld hl, $d566 - ld b, $13 + ld a, $1 + ld [hli], a + xor a + ld [hli], a + dec b + jr nz, .asm_10d22 + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + ld hl, Data_1298b + add hl, bc + ld a, [hl] + add $2 + ld [wd555], a + xor a + ld hl, wd566 + ld b, $13 .asm_10d40 - ld [hli], a - dec b - jr nz, .asm_10d40 - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c - rl b - ld hl, CatchEmTimerData - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - ld [$ff8a], a - ld a, Bank(StartTimer) - ld hl, StartTimer - call BankSwitch - ld a, [wCurrentCatchEmMon] - ld c, a - ld b, $0 - sla c ; multiply mon id by 6 - rl b - add c - ld c, a - jr nc, .noCarry - inc b + ld [hli], a + dec b + jr nz, .asm_10d40 + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + sla c + rl b + ld hl, CatchEmTimerData + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + callba StartTimer + ld a, [wCurrentCatchEmMon] + ld c, a + ld b, $0 + sla c ; multiply mon id by 6 + rl b + add c + ld c, a + jr nc, .noCarry + inc b .noCarry - sla c - rl b - ld hl, MonEvolutions - add hl, bc - push hl - ld bc, $03ff + sla c + rl b + ld hl, MonEvolutions + add hl, bc + push hl + ld bc, $03ff .countMonEvolutionsLoop - ld a, [hli] - and a - jr z, .noEvolution - inc c + ld a, [hli] + and a + jr z, .noEvolution + inc c .noEvolution - inc hl - dec b - jr nz, .countMonEvolutionsLoop - ld a, c - cp $ff - jr nz, .asm_10d8a - xor a + inc hl + dec b + jr nz, .countMonEvolutionsLoop + ld a, c + cp $ff + jr nz, .asm_10d8a + xor a .asm_10d8a - call Func_a21 - sla a - ld c, a - pop hl - add hl, bc ; hl points to one of three entries in mon's evolution data - ld a, [hli] ; a = mon id of evolution - dec a - ld [wCurrentEvolutionMon], a - ld a, [hl] ; a = evoluion type id - ld [wCurrentEvolutionType], a - xor a - ld [$d554], a - ld [$d556], a - ld [$d557], a - ld hl, $d55c - ld a, $1 - ld b, $3 + call Func_a21 + sla a + ld c, a + pop hl + add hl, bc ; hl points to one of three entries in mon's evolution data + ld a, [hli] ; a = mon id of evolution + dec a + ld [wCurrentEvolutionMon], a + ld a, [hl] ; a = evoluion type id + ld [wCurrentEvolutionType], a + xor a + ld [wd554], a + ld [wd556], a + ld [wd557], a + ld hl, wd55c + ld a, $1 + ld b, $3 .asm_10dac - ld [hli], a - dec b - jr nz, .asm_10dac - xor a - ld b, $7 + ld [hli], a + dec b + jr nz, .asm_10dac + xor a + ld b, $7 .asm_10db3 - ld [hli], a - dec b - jr nz, .asm_10db3 - ld de, $d55c - ld a, [$d555] - ld c, a - inc a - ld b, a + ld [hli], a + dec b + jr nz, .asm_10db3 + ld de, wd55c + ld a, [wd555] + ld c, a + inc a + ld b, a .asm_10dc0 - push bc - ld a, c - call Func_a21 - ld c, a - ld b, $0 - ld hl, $d55c - add hl, bc - ld c, [hl] - ld a, [de] - ld [hl], a - ld a, c - ld [de], a - pop bc - inc de - dec b - jr nz, .asm_10dc0 - ld [$ff8a], a - ld a, Bank(InitBallSaverForCatchEmMode) - ld hl, InitBallSaverForCatchEmMode - call BankSwitch - call Func_10b3f - call Func_3579 - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_10e09 - ld a, $28 - ld hl, $6300 - ld de, $8ae0 - ld bc, $0020 - call Func_735 - ld a, $0 - ld hl, $2898 - ld de, $9906 - ld bc, $0008 - call Func_735 + push bc + ld a, c + call Func_a21 + ld c, a + ld b, $0 + ld hl, wd55c + add hl, bc + ld c, [hl] + ld a, [de] + ld [hl], a + ld a, c + ld [de], a + pop bc + inc de + dec b + jr nz, .asm_10dc0 + callba InitBallSaverForCatchEmMode + call Func_10b3f + call Func_3579 + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_10e09 + ld a, BANK(StageRedFieldBottomBaseGameBoyColorGfx) + ld hl, StageRedFieldBottomBaseGameBoyColorGfx + $300 + ld de, vTilesSH tile $2e + ld bc, $0020 + call LoadOrCopyVRAMData + ld a, $0 + ld hl, Data_2898 + deCoord 6, 8, vBGMap + ld bc, $0008 + call LoadOrCopyVRAMData .asm_10e09 - ret + ret Func_10e0a: ; 0x10e0a - ld a, [wCurrentEvolutionMon] - cp $ff - jp z, Func_10e8b - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - ld hl, PokemonNames + 1 - add hl, bc - ld de, $2b02 ; "It evolved into an" - ld bc, $2b34 - ld a, [hl] - ; check if mon's name starts with a vowel, so it can print "an", instead of "a" - cp "A" - jr z, .nameStartsWithVowel - cp "I" - jr z, .nameStartsWithVowel - cp "U" - jr z, .nameStartsWithVowel - cp "E" - jr z, .nameStartsWithVowel - cp "O" - jr z, .nameStartsWithVowel - ld de, $2ae9 ; "It evolved into a" - ld bc, $2b1c + ld a, [wCurrentEvolutionMon] + cp $ff + jp z, Func_10e8b + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + ld hl, PokemonNames + 1 + add hl, bc + ld de, ItEvolvedIntoAnText ; "It evolved into an" + ld bc, Data_2b34 + ld a, [hl] + ; check if mon's name starts with a vowel, so it can print "an", instead of "a" + cp "A" + jr z, .nameStartsWithVowel + cp "I" + jr z, .nameStartsWithVowel + cp "U" + jr z, .nameStartsWithVowel + cp "E" + jr z, .nameStartsWithVowel + cp "O" + jr z, .nameStartsWithVowel + ld de, ItEvolvedIntoAText ; "It evolved into a" + ld bc, Data_2b1c .nameStartsWithVowel - push hl - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5cc - pop de - call Func_32aa - ld hl, $d5d4 - pop de - call Func_32aa - pop hl - ld de, $c520 - ld b, $0 + push hl + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + pop de + call LoadTextHeader + ld hl, wd5d4 + pop de + call LoadTextHeader + pop hl + ld de, wBottomMessageText + $20 + ld b, $0 .asm_10e67 - ld a, [hli] - and a - jr z, .asm_10e70 - ld [de], a - inc de - inc b - jr .asm_10e67 + ld a, [hli] + and a + jr z, .asm_10e70 + ld [de], a + inc de + inc b + jr .asm_10e67 + .asm_10e70 - ld a, $20 - ld [de], a - inc de - xor a - ld [de], a - ld a, [$d5db] - add b - ld [$d5db], a - ld a, $14 - sub b - srl a - ld b, a - ld a, [$d5d8] - add b - ld [$d5d8], a - ret + ld a, $20 + ld [de], a + inc de + xor a + ld [de], a + ld a, [wd5db] + add b + ld [wd5db], a + ld a, $14 + sub b + srl a + ld b, a + ld a, [wd5d8] + add b + ld [wd5d8], a + ret Func_10e8b: ; 0x10e8b - ld bc, $34e8 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld bc, $0100 - ld de, $0000 - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5d4 - ld de, $2b6b - call Func_32cc - pop de - pop bc - ld hl, $d5cc - ld de, $2b4c - call Func_32aa - ret + ld bc, OneMillionPoints + callba AddBigBCD6FromQueue + ld bc, $0100 + ld de, $0000 + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5d4 + ld de, Data_2b6b + call Func_32cc + pop de + pop bc + ld hl, wd5cc + ld de, EvolutionSpecialBonusText + call LoadTextHeader + ret Func_10ebb: ; 0x10ebb - ld a, [wNumPartyMons] - and a - ret z - call Func_10cb7 - call Func_10d1d - ld a, [$d555] - sub $2 - ld c, a - sla c - ld hl, IndicatorStatesPointerTable_10f3b - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wIndicatorStates - ld b, $13 + ld a, [wNumPartyMons] + and a + ret z + call Func_10cb7 + call Func_10d1d + ld a, [wd555] + sub $2 + ld c, a + sla c + ld hl, IndicatorStatesPointerTable_10f3b + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wIndicatorStates + ld b, $13 .asm_10eda - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_10eda - xor a - ld [wLeftAlleyCount], a - call Func_107b0 - ld a, $2 - ld [$d7ad], a - ld de, $0002 - call PlaySong - call SetPokemonSeenFlag - ld a, [wCurrentStage] - bit 0, a - jr nz, .asm_10f0b - ld a, $36 - ld hl, $7e80 - ld de, $8900 - ld bc, $00e0 - call Func_735 - ret + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_10eda + xor a + ld [wLeftAlleyCount], a + call Func_107b0 + ld a, $2 + ld [wd7ad], a + ld de, $0002 + call PlaySong + call SetPokemonSeenFlag + ld a, [wCurrentStage] + bit 0, a + jr nz, .asm_10f0b + ld a, BANK(Data_dbe80) + ld hl, Data_dbe80 + ld de, vTilesSH tile $10 + ld bc, $00e0 + call LoadOrCopyVRAMData + ret + .asm_10f0b - ld a, $36 - ld hl, $7e80 - ld de, $8200 - ld bc, $00e0 - call Func_735 - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10184) - ld hl, Func_10184 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_102bc) - ld hl, Func_102bc - call nz, BankSwitch - ret + ld a, BANK(Data_dbe80) + ld hl, Data_dbe80 + ld de, vTilesOB tile $20 + ld bc, $00e0 + call LoadOrCopyVRAMData + callba Func_14135 + callba Func_10184 + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_102bc) + ld hl, Func_102bc + call nz, BankSwitch + ret IndicatorStatesPointerTable_10f3b: ; 0x10f3b - dw IndicatorStates_10f4b - dw IndicatorStates_10f5e - dw IndicatorStates_10f71 - dw IndicatorStates_10f84 - dw IndicatorStates_10f97 - dw IndicatorStates_10faa - dw IndicatorStates_10fbd - dw IndicatorStates_10fd0 + dw IndicatorStates_10f4b + dw IndicatorStates_10f5e + dw IndicatorStates_10f71 + dw IndicatorStates_10f84 + dw IndicatorStates_10f97 + dw IndicatorStates_10faa + dw IndicatorStates_10fbd + dw IndicatorStates_10fd0 IndicatorStates_10f4b: ; 0x10f4b - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00 IndicatorStates_10f5e: ; 0x10f5e - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00 IndicatorStates_10f71: ; 0x10f71 - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10f84: ; 0x10f84 - db $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10f97: ; 0x10f97 - db $00, $00, $00, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $00, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10faa: ; 0x10faa - db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10fbd: ; 0x10fbd - db $00, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_10fd0: ; 0x10fd0 - db $00, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 Func_10fe3: ; 0x10fe3 - call Func_107a5 - call Func_107c2 - call Func_107c8 - call Func_107e9 - ld a, [wCurrentStage] - bit 0, a - jp z, Func_10aff - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_16425) - ld hl, Func_16425 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ld a, $36 - ld hl, $6c60 - ld de, $8200 - ld bc, $00e0 - call LoadVRAMData - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_11036 - ld a, $37 - ld hl, $4af8 - ld de, $0078 - ld bc, $0008 - call Func_7dc + call Func_107a5 + call Func_107c2 + call Func_107c8 + call Func_107e9 + ld a, [wCurrentStage] + bit 0, a + jp z, Func_10aff + callba Func_14135 + callba Func_16425 + callba Func_30253 + ld a, BANK(StageSharedBonusSlotGlowGfx) + ld hl, StageSharedBonusSlotGlowGfx + $60 + ld de, vTilesOB tile $20 + ld bc, $00e0 + call LoadVRAMData + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_11036 + ld a, BANK(StageRedFieldBottomOBJPalette7) + ld hl, StageRedFieldBottomOBJPalette7 + ld de, $0078 + ld bc, $0008 + call Func_7dc .asm_11036 - ld hl, $4958 - ld a, $4 - call Func_10aa - ld a, [$d624] - ld [$ff8a], a - ld a, Bank(Func_174d4) - ld hl, Func_174d4 - call BankSwitch - ld hl, $497d - ld a, $4 - call Func_10aa - ret + ld hl, Data_10958 + ld a, BANK(Data_10958) + call Func_10aa + ld a, [wd624] + callba Func_174d4 + ld hl, Data_1097d + ld a, BANK(Data_1097d) + call Func_10aa + ret Func_11054: ; 0x11054 - ld a, [wNumPartyMons] - and a - ret z - call Func_10cb7 - call Func_10d1d - ret + ld a, [wNumPartyMons] + and a + ret z + call Func_10cb7 + call Func_10d1d + ret Func_11060: ; 0x11060 - ret + ret Func_11061: ; 0x11061 - ld a, [wNumPartyMons] - and a - ret z - call Func_10cb7 - call Func_10d1d - ld a, $1 - ld [$d643], a - ld a, [$d555] - sub $2 - ld c, a - sla c - ld hl, IndicatorStatesPointerTable_110ed - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wIndicatorStates - ld b, $13 + ld a, [wNumPartyMons] + and a + ret z + call Func_10cb7 + call Func_10d1d + ld a, $1 + ld [wd643], a + ld a, [wd555] + sub $2 + ld c, a + sla c + ld hl, IndicatorStatesPointerTable_110ed + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wIndicatorStates + ld b, $13 .asm_11085 - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_11085 - xor a - ld [wLeftAlleyCount], a - ld [$ff8a], a - ld a, Bank(Func_1f2ed) - ld hl, Func_1f2ed - call BankSwitch - ld a, $2 - ld [$d7ad], a - ld de, $0002 - call PlaySong - call SetPokemonSeenFlag - ld a, [wCurrentStage] - bit 0, a - jr nz, .asm_110bd - ld a, $36 - ld hl, $7e80 - ld de, $8600 - ld bc, $00e0 - call Func_735 - ret + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_11085 + xor a + ld [wLeftAlleyCount], a + callba Func_1f2ed + ld a, $2 + ld [wd7ad], a + ld de, $0002 + call PlaySong + call SetPokemonSeenFlag + ld a, [wCurrentStage] + bit 0, a + jr nz, .asm_110bd + ld a, BANK(Data_dbe80) + ld hl, Data_dbe80 + ld de, vTilesOB tile $60 + ld bc, $00e0 + call LoadOrCopyVRAMData + ret + .asm_110bd - ld a, $36 - ld hl, $7e80 - ld de, $8200 - ld bc, $00e0 - call Func_735 - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10184) - ld hl, Func_10184 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_102bc) - ld hl, Func_102bc - call nz, BankSwitch - ret + ld a, BANK(Data_dbe80) + ld hl, Data_dbe80 + ld de, vTilesOB tile $20 + ld bc, $00e0 + call LoadOrCopyVRAMData + callba Func_1c2cb + callba Func_10184 + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_102bc) + ld hl, Func_102bc + call nz, BankSwitch + ret IndicatorStatesPointerTable_110ed: ; 0x110ed - dw IndicatorStates_110fd - dw IndicatorStates_11110 - dw IndicatorStates_11123 - dw IndicatorStates_11136 - dw IndicatorStates_11149 - dw IndicatorStates_1115c - dw IndicatorStates_1116f - dw IndicatorStates_11182 + dw IndicatorStates_110fd + dw IndicatorStates_11110 + dw IndicatorStates_11123 + dw IndicatorStates_11136 + dw IndicatorStates_11149 + dw IndicatorStates_1115c + dw IndicatorStates_1116f + dw IndicatorStates_11182 IndicatorStates_110fd: ; 0x110fd - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $01, $01, $00, $00, $00, $00 IndicatorStates_11110: ; 0x11110 - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $01, $01, $00, $00, $00, $00 IndicatorStates_11123: ; 0x11123 - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_11136: ; 0x11136 - db $00, $00, $80, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $80, $00, $00, $00, $00, $00, $01, $01, $00, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_11149: ; 0x11149 - db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_1115c: ; 0x1115c - db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 + db $00, $00, $80, $80, $00, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_1116f: ; 0x1116f - db $80, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 + db $80, $00, $80, $80, $00, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 IndicatorStates_11182: ; 0x11182 - db $80, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 + db $80, $00, $80, $80, $00, $00, $01, $01, $01, $01, $01, $01, $01, $01, $01, $00, $00, $00, $00 Func_11195: ; 0x11195 - xor a - ld [$d643], a - call Func_107a5 - call Func_107c2 - ld [$ff8a], a - ld a, Bank(Func_1f2ff) - ld hl, Func_1f2ff - call BankSwitch - ld a, [wCurrentStage] - bit 0, a - jp z, Func_1120e - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_1e8f6) - ld hl, Func_1e8f6 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ld a, $36 - ld hl, $6c60 - ld de, $8200 - ld bc, $00e0 - call LoadVRAMData - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_111f0 - ld a, $37 - ld hl, $4bf8 - ld de, $0078 - ld bc, $0008 - call Func_7dc + xor a + ld [wd643], a + call Func_107a5 + call Func_107c2 + callba Func_1f2ff + ld a, [wCurrentStage] + bit 0, a + jp z, Func_1120e + callba Func_1c2cb + callba Func_1e8f6 + callba Func_30253 + ld a, Bank(StageSharedBonusSlotGlowGfx) + ld hl, StageSharedBonusSlotGlowGfx + $60 + ld de, vTilesOB tile $20 + ld bc, $00e0 + call LoadVRAMData + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_111f0 + ld a, BANK(StageBlueFieldBottomOBJPalette7) + ld hl, StageBlueFieldBottomOBJPalette7 + ld de, $0078 + ld bc, $0008 + call Func_7dc .asm_111f0 - ld hl, $4a63 - ld a, $4 - call Func_10aa - ld a, [$d624] - ld [$ff8a], a - ld a, Bank(Func_174d4) - ld hl, Func_174d4 - call BankSwitch - ld hl, $4a88 - ld a, $4 - call Func_10aa - ret + ld hl, Data_10a63 + ld a, BANK(Data_10a63) + call Func_10aa + ld a, [wd624] + callba Func_174d4 + ld hl, Data_10a88 + ld a, BANK(Data_10a88) + call Func_10aa + ret Func_1120e: ; 0x1120e - ld a, [wCurrentStage] - sub $4 - res 0, a - ld c, a - ld b, $0 - srl c - sla a - sla a - sla a - sub c - ld c, a - ld hl, VRAMData_1123b - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - push af - push bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - pop hl - pop af - call LoadVRAMData - ret + ld a, [wCurrentStage] + sub $4 + res 0, a + ld c, a + ld b, $0 + srl c + sla a + sla a + sla a + sub c + ld c, a + ld hl, VRAMData_1123b + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + push af + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + pop hl + pop af + call LoadVRAMData + ret VRAMData_1123b: ; 0x1123b - dwb $6600, $35 - dw $8600, $E0 - - dwb $6600, $35 - dw $8600, $E0 - - dwb $6600, $35 - dw $8600, $E0 - - dwb $6600, $35 - dw $8600, $E0 - - dwb $6600, $35 - dw $8600, $E0 - - dwb $6600, $35 - dw $8600, $E0 - - dwb $6600, $35 - dw $8600, $E0 + dab StageBlueFieldTopGfx3 + dw $8600, $E0 + dab StageBlueFieldTopGfx3 + dw $8600, $E0 + dab StageBlueFieldTopGfx3 + dw $8600, $E0 + dab StageBlueFieldTopGfx3 + dw $8600, $E0 + dab StageBlueFieldTopGfx3 + dw $8600, $E0 + dab StageBlueFieldTopGfx3 + dw $8600, $E0 + dab StageBlueFieldTopGfx3 + dw $8600, $E0 WildMonOffsetsPointers: ; 0x1126c - dw RedStageWildMonDataOffsets - dw RedStageWildMonDataOffsets - dw RedStageWildMonDataOffsets - dw RedStageWildMonDataOffsets - dw BlueStageWildMonDataOffsets - dw BlueStageWildMonDataOffsets + 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 + 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 + 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 + 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_line_starts.asm" INCLUDE "data/evolution_lines.asm" - -MonEvolutions: ; 0x116b3 -; Lists the possible evolution types for each pokemon -; Each pokemon has three entries becuase Eevee has three -; evolution possibilities. - ; BULBASAUR - db IVYSAUR, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; IVYSAUR - db VENUSAUR, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; VENUSAUR - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; CHARMANDER - db CHARMELEON, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; CHARMELEON - db CHARIZARD, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; CHARIZARD - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SQUIRTLE - db WARTORTLE, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; WARTORTLE - db BLASTOISE, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; BLASTOISE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; CATERPIE - db METAPOD, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; METAPOD - db BUTTERFREE, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; BUTTERFREE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; WEEDLE - db KAKUNA, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; KAKUNA - db BEEDRILL, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; BEEDRILL - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PIDGEY - db PIDGEOTTO, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PIDGEOTTO - db PIDGEOT, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PIDGEOT - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; RATTATA - db RATICATE, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; RATICATE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SPEAROW - db FEAROW, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; FEAROW - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; EKANS - db ARBOK, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ARBOK - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PIKACHU - db RAICHU, EVO_THUNDER_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; RAICHU - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SANDSHREW - db SANDSLASH, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SANDSLASH - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; NIDORAN_F - db NIDORINA, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; NIDORINA - db NIDOQUEEN, EVO_MOON_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; NIDOQUEEN - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; NIDORAN_M - db NIDORINO, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; NIDORINO - db NIDOKING, EVO_MOON_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; NIDOKING - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; CLEFAIRY - db CLEFABLE, EVO_MOON_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; CLEFABLE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; VULPIX - db NINETALES, EVO_FIRE_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; NINETALES - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; JIGGLYPUFF - db WIGGLYTUFF, EVO_MOON_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; WIGGLYTUFF - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ZUBAT - db GOLBAT, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GOLBAT - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ODDISH - db GLOOM, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GLOOM - db VILEPLUME, EVO_LEAF_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; VILEPLUME - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PARAS - db PARASECT, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PARASECT - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; VENONAT - db VENOMOTH, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; VENOMOTH - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DIGLETT - db DUGTRIO, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DUGTRIO - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MEOWTH - db PERSIAN, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PERSIAN - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PSYDUCK - db GOLDUCK, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GOLDUCK - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MANKEY - db PRIMEAPE, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PRIMEAPE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GROWLITHE - db ARCANINE, EVO_FIRE_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ARCANINE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; POLIWAG - db POLIWHIRL, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; POLIWHIRL - db POLIWRATH, EVO_WATER_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; POLIWRATH - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ABRA - db KADABRA, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; KADABRA - db ALAKAZAM, EVO_LINK_CABLE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ALAKAZAM - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MACHOP - db MACHOKE, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MACHOKE - db MACHAMP, EVO_LINK_CABLE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MACHAMP - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; BELLSPROUT - db WEEPINBELL, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; WEEPINBELL - db VICTREEBEL, EVO_LEAF_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; VICTREEBEL - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; TENTACOOL - db TENTACRUEL, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; TENTACRUEL - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GEODUDE - db GRAVELER, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GRAVELER - db GOLEM, EVO_LINK_CABLE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GOLEM - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PONYTA - db RAPIDASH, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; RAPIDASH - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SLOWPOKE - db SLOWBRO, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SLOWBRO - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MAGNEMITE - db MAGNETON, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MAGNETON - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; FARFETCH_D - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DODUO - db DODRIO, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DODRIO - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SEEL - db DEWGONG, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DEWGONG - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GRIMER - db MUK, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MUK - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SHELLDER - db CLOYSTER, EVO_WATER_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; CLOYSTER - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GASTLY - db HAUNTER, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; HAUNTER - db GENGAR, EVO_LINK_CABLE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GENGAR - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ONIX - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DROWZEE - db HYPNO, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; HYPNO - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; KRABBY - db KINGLER, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; KINGLER - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; VOLTORB - db ELECTRODE, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ELECTRODE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; EXEGGCUTE - db EXEGGUTOR, EVO_LEAF_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; EXEGGUTOR - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; CUBONE - db MAROWAK, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MAROWAK - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; HITMONLEE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; HITMONCHAN - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; LICKITUNG - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; KOFFING - db WEEZING, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; WEEZING - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; RHYHORN - db RHYDON, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; RHYDON - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; CHANSEY - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; TANGELA - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; KANGASKHAN - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; HORSEA - db SEADRA, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SEADRA - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GOLDEEN - db SEAKING, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SEAKING - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; STARYU - db STARMIE, EVO_WATER_STONE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; STARMIE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MR_MIME - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SCYTHER - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; JYNX - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ELECTABUZZ - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MAGMAR - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PINSIR - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; TAUROS - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MAGIKARP - db GYARADOS, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; GYARADOS - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; LAPRAS - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DITTO - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; EEVEE - db VAPOREON, EVO_WATER_STONE - db JOLTEON, EVO_THUNDER_STONE - db FLAREON, EVO_FIRE_STONE - - ; VAPOREON - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; JOLTEON - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; FLAREON - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; PORYGON - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; OMANYTE - db OMASTAR, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; OMASTAR - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; KABUTO - db KABUTOPS, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; KABUTOPS - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; AERODACTYL - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; SNORLAX - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ARTICUNO - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; ZAPDOS - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MOLTRES - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DRATINI - db DRAGONAIR, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DRAGONAIR - db DRAGONITE, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; DRAGONITE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MEWTWO - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - ; MEW - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - db $00, EVO_EXPERIENCE - - +INCLUDE "data/evolution_methods.asm" INCLUDE "data/mon_names.asm" CatchEmModeInitialIndicatorStates: ; 0x123ae @@ -23339,24925 +12322,25113 @@ CatchEmModeInitialIndicatorStates: ; 0x123ae ; For some reason, each pokemon evolution line has its own entry, but ; they're all exactly the same. ; See wIndicatorStates, for a description of indicators. - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_BULBASAUR - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CHARMANDER - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SQUIRTLE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CATERPIE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_WEEDLE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PIDGEY - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_RATTATA - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SPEAROW - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EKANS - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PIKACHU - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SANDSHREW - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_NIDORAN_F - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_NIDORAN_M - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CLEFAIRY - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VULPIX - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_JIGGLYPUFF - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ZUBAT - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ODDISH - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PARAS - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VENONAT - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DIGLETT - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEOWTH - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PSYDUCK - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MANKEY - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GROWLITHE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_POLIWAG - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ABRA - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MACHOP - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_BELLSPROUT - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TENTACOOL - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GEODUDE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PONYTA - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SLOWPOKE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGNEMITE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_FARFETCH_D - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DODUO - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SEEL - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GRIMER - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SHELLDER - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GASTLY - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ONIX - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DROWZEE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KRABBY - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VOLTORB - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EXEGGCUTE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CUBONE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HITMONLEE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HITMONCHAN - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_LICKITUNG - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KOFFING - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_RHYHORN - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CHANSEY - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TANGELA - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KANGASKHAN - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HORSEA - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GOLDEEN - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_STARYU - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MR_MIME - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SCYTHER - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_JYNX - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ELECTABUZZ - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGMAR - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PINSIR - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TAUROS - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGIKARP - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_LAPRAS - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DITTO - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EEVEE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PORYGON - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_OMANYTE - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KABUTO - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_AERODACTYL - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SNORLAX - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ARTICUNO - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ZAPDOS - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MOLTRES - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DRATINI - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEWTWO - db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEW + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_BULBASAUR + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CHARMANDER + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SQUIRTLE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CATERPIE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_WEEDLE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PIDGEY + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_RATTATA + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SPEAROW + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EKANS + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PIKACHU + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SANDSHREW + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_NIDORAN_F + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_NIDORAN_M + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CLEFAIRY + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VULPIX + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_JIGGLYPUFF + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ZUBAT + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ODDISH + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PARAS + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VENONAT + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DIGLETT + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEOWTH + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PSYDUCK + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MANKEY + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GROWLITHE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_POLIWAG + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ABRA + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MACHOP + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_BELLSPROUT + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TENTACOOL + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GEODUDE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PONYTA + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SLOWPOKE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGNEMITE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_FARFETCH_D + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DODUO + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SEEL + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GRIMER + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SHELLDER + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GASTLY + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ONIX + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DROWZEE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KRABBY + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_VOLTORB + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EXEGGCUTE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CUBONE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HITMONLEE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HITMONCHAN + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_LICKITUNG + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KOFFING + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_RHYHORN + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_CHANSEY + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TANGELA + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KANGASKHAN + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_HORSEA + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_GOLDEEN + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_STARYU + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MR_MIME + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SCYTHER + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_JYNX + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ELECTABUZZ + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGMAR + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PINSIR + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_TAUROS + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MAGIKARP + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_LAPRAS + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DITTO + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_EEVEE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_PORYGON + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_OMANYTE + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_KABUTO + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_AERODACTYL + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_SNORLAX + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ARTICUNO + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_ZAPDOS + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MOLTRES + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_DRATINI + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEWTWO + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; EVOLINE_MEW Data_1298b: ; 0x1298b - db $01 ; BULBASAUR - db $02 ; IVYSAUR - db $03 ; VENUSAUR - db $01 ; CHARMANDER - db $02 ; CHARMELEON - db $03 ; CHARIZARD - db $01 ; SQUIRTLE - db $02 ; WARTORTLE - db $03 ; BLASTOISE - db $01 ; CATERPIE - db $02 ; METAPOD - db $03 ; BUTTERFREE - db $01 ; WEEDLE - db $02 ; KAKUNA - db $03 ; BEEDRILL - db $01 ; PIDGEY - db $02 ; PIDGEOTTO - db $03 ; PIDGEOT - db $01 ; RATTATA - db $03 ; RATICATE - db $01 ; SPEAROW - db $03 ; FEAROW - db $01 ; EKANS - db $03 ; ARBOK - db $01 ; PIKACHU - db $03 ; RAICHU - db $01 ; SANDSHREW - db $03 ; SANDSLASH - db $01 ; NIDORAN_F - db $02 ; NIDORINA - db $04 ; NIDOQUEEN - db $01 ; NIDORAN_M - db $02 ; NIDORINO - db $04 ; NIDOKING - db $02 ; CLEFAIRY - db $03 ; CLEFABLE - db $02 ; VULPIX - db $03 ; NINETALES - db $02 ; JIGGLYPUFF - db $03 ; WIGGLYTUFF - db $02 ; ZUBAT - db $03 ; GOLBAT - db $01 ; ODDISH - db $02 ; GLOOM - db $04 ; VILEPLUME - db $02 ; PARAS - db $03 ; PARASECT - db $02 ; VENONAT - db $03 ; VENOMOTH - db $02 ; DIGLETT - db $03 ; DUGTRIO - db $02 ; MEOWTH - db $03 ; PERSIAN - db $02 ; PSYDUCK - db $03 ; GOLDUCK - db $02 ; MANKEY - db $03 ; PRIMEAPE - db $02 ; GROWLITHE - db $03 ; ARCANINE - db $01 ; POLIWAG - db $02 ; POLIWHIRL - db $04 ; POLIWRATH - db $01 ; ABRA - db $02 ; KADABRA - db $04 ; ALAKAZAM - db $01 ; MACHOP - db $02 ; MACHOKE - db $04 ; MACHAMP - db $01 ; BELLSPROUT - db $02 ; WEEPINBELL - db $04 ; VICTREEBEL - db $02 ; TENTACOOL - db $03 ; TENTACRUEL - db $01 ; GEODUDE - db $02 ; GRAVELER - db $04 ; GOLEM - db $02 ; PONYTA - db $03 ; RAPIDASH - db $02 ; SLOWPOKE - db $03 ; SLOWBRO - db $02 ; MAGNEMITE - db $03 ; MAGNETON - db $04 ; FARFETCH_D - db $02 ; DODUO - db $03 ; DODRIO - db $02 ; SEEL - db $03 ; DEWGONG - db $02 ; GRIMER - db $03 ; MUK - db $02 ; SHELLDER - db $03 ; CLOYSTER - db $01 ; GASTLY - db $02 ; HAUNTER - db $04 ; GENGAR - db $04 ; ONIX - db $02 ; DROWZEE - db $03 ; HYPNO - db $02 ; KRABBY - db $03 ; KINGLER - db $02 ; VOLTORB - db $03 ; ELECTRODE - db $02 ; EXEGGCUTE - db $03 ; EXEGGUTOR - db $02 ; CUBONE - db $03 ; MAROWAK - db $04 ; HITMONLEE - db $04 ; HITMONCHAN - db $04 ; LICKITUNG - db $02 ; KOFFING - db $03 ; WEEZING - db $02 ; RHYHORN - db $03 ; RHYDON - db $04 ; CHANSEY - db $04 ; TANGELA - db $04 ; KANGASKHAN - db $04 ; HORSEA - db $04 ; SEADRA - db $02 ; GOLDEEN - db $03 ; SEAKING - db $02 ; STARYU - db $03 ; STARMIE - db $04 ; MR_MIME - db $04 ; SCYTHER - db $04 ; JYNX - db $04 ; ELECTABUZZ - db $04 ; MAGMAR - db $04 ; PINSIR - db $04 ; TAUROS - db $02 ; MAGIKARP - db $03 ; GYARADOS - db $04 ; LAPRAS - db $04 ; DITTO - db $02 ; EEVEE - db $03 ; VAPOREON - db $03 ; JOLTEON - db $03 ; FLAREON - db $04 ; PORYGON - db $02 ; OMANYTE - db $03 ; OMASTAR - db $02 ; KABUTO - db $03 ; KABUTOPS - db $04 ; AERODACTYL - db $04 ; SNORLAX - db $04 ; ARTICUNO - db $04 ; ZAPDOS - db $04 ; MOLTRES - db $01 ; DRATINI - db $02 ; DRAGONAIR - db $04 ; DRAGONITE - db $04 ; MEWTWO - db $06 ; MEW + db $01 ; BULBASAUR + db $02 ; IVYSAUR + db $03 ; VENUSAUR + db $01 ; CHARMANDER + db $02 ; CHARMELEON + db $03 ; CHARIZARD + db $01 ; SQUIRTLE + db $02 ; WARTORTLE + db $03 ; BLASTOISE + db $01 ; CATERPIE + db $02 ; METAPOD + db $03 ; BUTTERFREE + db $01 ; WEEDLE + db $02 ; KAKUNA + db $03 ; BEEDRILL + db $01 ; PIDGEY + db $02 ; PIDGEOTTO + db $03 ; PIDGEOT + db $01 ; RATTATA + db $03 ; RATICATE + db $01 ; SPEAROW + db $03 ; FEAROW + db $01 ; EKANS + db $03 ; ARBOK + db $01 ; PIKACHU + db $03 ; RAICHU + db $01 ; SANDSHREW + db $03 ; SANDSLASH + db $01 ; NIDORAN_F + db $02 ; NIDORINA + db $04 ; NIDOQUEEN + db $01 ; NIDORAN_M + db $02 ; NIDORINO + db $04 ; NIDOKING + db $02 ; CLEFAIRY + db $03 ; CLEFABLE + db $02 ; VULPIX + db $03 ; NINETALES + db $02 ; JIGGLYPUFF + db $03 ; WIGGLYTUFF + db $02 ; ZUBAT + db $03 ; GOLBAT + db $01 ; ODDISH + db $02 ; GLOOM + db $04 ; VILEPLUME + db $02 ; PARAS + db $03 ; PARASECT + db $02 ; VENONAT + db $03 ; VENOMOTH + db $02 ; DIGLETT + db $03 ; DUGTRIO + db $02 ; MEOWTH + db $03 ; PERSIAN + db $02 ; PSYDUCK + db $03 ; GOLDUCK + db $02 ; MANKEY + db $03 ; PRIMEAPE + db $02 ; GROWLITHE + db $03 ; ARCANINE + db $01 ; POLIWAG + db $02 ; POLIWHIRL + db $04 ; POLIWRATH + db $01 ; ABRA + db $02 ; KADABRA + db $04 ; ALAKAZAM + db $01 ; MACHOP + db $02 ; MACHOKE + db $04 ; MACHAMP + db $01 ; BELLSPROUT + db $02 ; WEEPINBELL + db $04 ; VICTREEBEL + db $02 ; TENTACOOL + db $03 ; TENTACRUEL + db $01 ; GEODUDE + db $02 ; GRAVELER + db $04 ; GOLEM + db $02 ; PONYTA + db $03 ; RAPIDASH + db $02 ; SLOWPOKE + db $03 ; SLOWBRO + db $02 ; MAGNEMITE + db $03 ; MAGNETON + db $04 ; FARFETCH_D + db $02 ; DODUO + db $03 ; DODRIO + db $02 ; SEEL + db $03 ; DEWGONG + db $02 ; GRIMER + db $03 ; MUK + db $02 ; SHELLDER + db $03 ; CLOYSTER + db $01 ; GASTLY + db $02 ; HAUNTER + db $04 ; GENGAR + db $04 ; ONIX + db $02 ; DROWZEE + db $03 ; HYPNO + db $02 ; KRABBY + db $03 ; KINGLER + db $02 ; VOLTORB + db $03 ; ELECTRODE + db $02 ; EXEGGCUTE + db $03 ; EXEGGUTOR + db $02 ; CUBONE + db $03 ; MAROWAK + db $04 ; HITMONLEE + db $04 ; HITMONCHAN + db $04 ; LICKITUNG + db $02 ; KOFFING + db $03 ; WEEZING + db $02 ; RHYHORN + db $03 ; RHYDON + db $04 ; CHANSEY + db $04 ; TANGELA + db $04 ; KANGASKHAN + db $04 ; HORSEA + db $04 ; SEADRA + db $02 ; GOLDEEN + db $03 ; SEAKING + db $02 ; STARYU + db $03 ; STARMIE + db $04 ; MR_MIME + db $04 ; SCYTHER + db $04 ; JYNX + db $04 ; ELECTABUZZ + db $04 ; MAGMAR + db $04 ; PINSIR + db $04 ; TAUROS + db $02 ; MAGIKARP + db $03 ; GYARADOS + db $04 ; LAPRAS + db $04 ; DITTO + db $02 ; EEVEE + db $03 ; VAPOREON + db $03 ; JOLTEON + db $03 ; FLAREON + db $04 ; PORYGON + db $02 ; OMANYTE + db $03 ; OMASTAR + db $02 ; KABUTO + db $03 ; KABUTOPS + db $04 ; AERODACTYL + db $04 ; SNORLAX + db $04 ; ARTICUNO + db $04 ; ZAPDOS + db $04 ; MOLTRES + db $01 ; DRATINI + db $02 ; DRAGONAIR + db $04 ; DRAGONITE + db $04 ; MEWTWO + db $06 ; MEW INCLUDE "data/catchem_timer_values.asm" MonBillboardPicPointers: ; 0x12b50 - dwb BulbasaurPic, Bank(BulbasaurPic) - dwb IvysaurPic, Bank(IvysaurPic) - dwb VenusaurPic, Bank(VenusaurPic) - dwb CharmanderPic, Bank(CharmanderPic) - dwb CharmeleonPic, Bank(CharmeleonPic) - dwb CharizardPic, Bank(CharizardPic) - dwb SquirtlePic, Bank(SquirtlePic) - dwb WartortlePic, Bank(WartortlePic) - dwb BlastoisePic, Bank(BlastoisePic) - dwb CaterpiePic, Bank(CaterpiePic) - dwb MetapodPic, Bank(MetapodPic) - dwb ButterfreePic, Bank(ButterfreePic) - dwb WeedlePic, Bank(WeedlePic) - dwb KakunaPic, Bank(KakunaPic) - dwb BeedrillPic, Bank(BeedrillPic) - dwb PidgeyPic, Bank(PidgeyPic) - dwb PidgeottoPic, Bank(PidgeottoPic) - dwb PidgeotPic, Bank(PidgeotPic) - dwb RattataPic, Bank(RattataPic) - dwb RaticatePic, Bank(RaticatePic) - dwb SpearowPic, Bank(SpearowPic) - dwb FearowPic, Bank(FearowPic) - dwb EkansPic, Bank(EkansPic) - dwb ArbokPic, Bank(ArbokPic) - dwb PikachuPic, Bank(PikachuPic) - dwb RaichuPic, Bank(RaichuPic) - dwb SandshrewPic, Bank(SandshrewPic) - dwb SandslashPic, Bank(SandslashPic) - dwb Nidoran_FPic, Bank(Nidoran_FPic) - dwb NidorinaPic, Bank(NidorinaPic) - dwb NidoqueenPic, Bank(NidoqueenPic) - dwb Nidoran_MPic, Bank(Nidoran_MPic) - dwb NidorinoPic, Bank(NidorinoPic) - dwb NidokingPic, Bank(NidokingPic) - dwb ClefairyPic, Bank(ClefairyPic) - dwb ClefablePic, Bank(ClefablePic) - dwb VulpixPic, Bank(VulpixPic) - dwb NinetalesPic, Bank(NinetalesPic) - dwb JigglypuffPic, Bank(JigglypuffPic) - dwb WigglytuffPic, Bank(WigglytuffPic) - dwb ZubatPic, Bank(ZubatPic) - dwb GolbatPic, Bank(GolbatPic) - dwb OddishPic, Bank(OddishPic) - dwb GloomPic, Bank(GloomPic) - dwb VileplumePic, Bank(VileplumePic) - dwb ParasPic, Bank(ParasPic) - dwb ParasectPic, Bank(ParasectPic) - dwb VenonatPic, Bank(VenonatPic) - dwb VenomothPic, Bank(VenomothPic) - dwb DiglettPic, Bank(DiglettPic) - dwb DugtrioPic, Bank(DugtrioPic) - dwb MeowthPic, Bank(MeowthPic) - dwb PersianPic, Bank(PersianPic) - dwb PsyduckPic, Bank(PsyduckPic) - dwb GolduckPic, Bank(GolduckPic) - dwb MankeyPic, Bank(MankeyPic) - dwb PrimeapePic, Bank(PrimeapePic) - dwb GrowlithePic, Bank(GrowlithePic) - dwb ArcaninePic, Bank(ArcaninePic) - dwb PoliwagPic, Bank(PoliwagPic) - dwb PoliwhirlPic, Bank(PoliwhirlPic) - dwb PoliwrathPic, Bank(PoliwrathPic) - dwb AbraPic, Bank(AbraPic) - dwb KadabraPic, Bank(KadabraPic) - dwb AlakazamPic, Bank(AlakazamPic) - dwb MachopPic, Bank(MachopPic) - dwb MachokePic, Bank(MachokePic) - dwb MachampPic, Bank(MachampPic) - dwb BellsproutPic, Bank(BellsproutPic) - dwb WeepinbellPic, Bank(WeepinbellPic) - dwb VictreebellPic, Bank(VictreebellPic) - dwb TentacoolPic, Bank(TentacoolPic) - dwb TentacruelPic, Bank(TentacruelPic) - dwb GeodudePic, Bank(GeodudePic) - dwb GravelerPic, Bank(GravelerPic) - dwb GolemPic, Bank(GolemPic) - dwb PonytaPic, Bank(PonytaPic) - dwb RapidashPic, Bank(RapidashPic) - dwb SlowpokePic, Bank(SlowpokePic) - dwb SlowbroPic, Bank(SlowbroPic) - dwb MagnemitePic, Bank(MagnemitePic) - dwb MagnetonPic, Bank(MagnetonPic) - dwb Farfetch_dPic, Bank(Farfetch_dPic) - dwb DoduoPic, Bank(DoduoPic) - dwb DodrioPic, Bank(DodrioPic) - dwb SeelPic, Bank(SeelPic) - dwb DewgongPic, Bank(DewgongPic) - dwb GrimerPic, Bank(GrimerPic) - dwb MukPic, Bank(MukPic) - dwb ShellderPic, Bank(ShellderPic) - dwb CloysterPic, Bank(CloysterPic) - dwb GastlyPic, Bank(GastlyPic) - dwb HaunterPic, Bank(HaunterPic) - dwb GengarPic, Bank(GengarPic) - dwb OnixPic, Bank(OnixPic) - dwb DrowzeePic, Bank(DrowzeePic) - dwb HypnoPic, Bank(HypnoPic) - dwb KrabbyPic, Bank(KrabbyPic) - dwb KinglerPic, Bank(KinglerPic) - dwb VoltorbPic, Bank(VoltorbPic) - dwb ElectrodePic, Bank(ElectrodePic) - dwb ExeggcutePic, Bank(ExeggcutePic) - dwb ExeggutorPic, Bank(ExeggutorPic) - dwb CubonePic, Bank(CubonePic) - dwb MarowakPic, Bank(MarowakPic) - dwb HitmonleePic, Bank(HitmonleePic) - dwb HitmonchanPic, Bank(HitmonchanPic) - dwb LickitungPic, Bank(LickitungPic) - dwb KoffingPic, Bank(KoffingPic) - dwb WeezingPic, Bank(WeezingPic) - dwb RhyhornPic, Bank(RhyhornPic) - dwb RhydonPic, Bank(RhydonPic) - dwb ChanseyPic, Bank(ChanseyPic) - dwb TangelaPic, Bank(TangelaPic) - dwb KangaskhanPic, Bank(KangaskhanPic) - dwb HorseaPic, Bank(HorseaPic) - dwb SeadraPic, Bank(SeadraPic) - dwb GoldeenPic, Bank(GoldeenPic) - dwb SeakingPic, Bank(SeakingPic) - dwb StaryuPic, Bank(StaryuPic) - dwb StarmiePic, Bank(StarmiePic) - dwb Mr_MimePic, Bank(Mr_MimePic) - dwb ScytherPic, Bank(ScytherPic) - dwb JynxPic, Bank(JynxPic) - dwb ElectabuzzPic, Bank(ElectabuzzPic) - dwb MagmarPic, Bank(MagmarPic) - dwb PinsirPic, Bank(PinsirPic) - dwb TaurosPic, Bank(TaurosPic) - dwb MagikarpPic, Bank(MagikarpPic) - dwb GyaradosPic, Bank(GyaradosPic) - dwb LaprasPic, Bank(LaprasPic) - dwb DittoPic, Bank(DittoPic) - dwb EeveePic, Bank(EeveePic) - dwb VaporeonPic, Bank(VaporeonPic) - dwb JolteonPic, Bank(JolteonPic) - dwb FlareonPic, Bank(FlareonPic) - dwb PorygonPic, Bank(PorygonPic) - dwb OmanytePic, Bank(OmanytePic) - dwb OmastarPic, Bank(OmastarPic) - dwb KabutoPic, Bank(KabutoPic) - dwb KabutopsPic, Bank(KabutopsPic) - dwb AerodactylPic, Bank(AerodactylPic) - dwb SnorlaxPic, Bank(SnorlaxPic) - dwb ArticunoPic, Bank(ArticunoPic) - dwb ZapdosPic, Bank(ZapdosPic) - dwb MoltresPic, Bank(MoltresPic) - dwb DratiniPic, Bank(DratiniPic) - dwb DragonairPic, Bank(DragonairPic) - dwb DragonitePic, Bank(DragonitePic) - dwb MewtwoPic, Bank(MewtwoPic) - dwb MewPic, Bank(MewPic) + dwb BulbasaurPic, Bank(BulbasaurPic) + dwb IvysaurPic, Bank(IvysaurPic) + dwb VenusaurPic, Bank(VenusaurPic) + dwb CharmanderPic, Bank(CharmanderPic) + dwb CharmeleonPic, Bank(CharmeleonPic) + dwb CharizardPic, Bank(CharizardPic) + dwb SquirtlePic, Bank(SquirtlePic) + dwb WartortlePic, Bank(WartortlePic) + dwb BlastoisePic, Bank(BlastoisePic) + dwb CaterpiePic, Bank(CaterpiePic) + dwb MetapodPic, Bank(MetapodPic) + dwb ButterfreePic, Bank(ButterfreePic) + dwb WeedlePic, Bank(WeedlePic) + dwb KakunaPic, Bank(KakunaPic) + dwb BeedrillPic, Bank(BeedrillPic) + dwb PidgeyPic, Bank(PidgeyPic) + dwb PidgeottoPic, Bank(PidgeottoPic) + dwb PidgeotPic, Bank(PidgeotPic) + dwb RattataPic, Bank(RattataPic) + dwb RaticatePic, Bank(RaticatePic) + dwb SpearowPic, Bank(SpearowPic) + dwb FearowPic, Bank(FearowPic) + dwb EkansPic, Bank(EkansPic) + dwb ArbokPic, Bank(ArbokPic) + dwb PikachuPic, Bank(PikachuPic) + dwb RaichuPic, Bank(RaichuPic) + dwb SandshrewPic, Bank(SandshrewPic) + dwb SandslashPic, Bank(SandslashPic) + dwb Nidoran_FPic, Bank(Nidoran_FPic) + dwb NidorinaPic, Bank(NidorinaPic) + dwb NidoqueenPic, Bank(NidoqueenPic) + dwb Nidoran_MPic, Bank(Nidoran_MPic) + dwb NidorinoPic, Bank(NidorinoPic) + dwb NidokingPic, Bank(NidokingPic) + dwb ClefairyPic, Bank(ClefairyPic) + dwb ClefablePic, Bank(ClefablePic) + dwb VulpixPic, Bank(VulpixPic) + dwb NinetalesPic, Bank(NinetalesPic) + dwb JigglypuffPic, Bank(JigglypuffPic) + dwb WigglytuffPic, Bank(WigglytuffPic) + dwb ZubatPic, Bank(ZubatPic) + dwb GolbatPic, Bank(GolbatPic) + dwb OddishPic, Bank(OddishPic) + dwb GloomPic, Bank(GloomPic) + dwb VileplumePic, Bank(VileplumePic) + dwb ParasPic, Bank(ParasPic) + dwb ParasectPic, Bank(ParasectPic) + dwb VenonatPic, Bank(VenonatPic) + dwb VenomothPic, Bank(VenomothPic) + dwb DiglettPic, Bank(DiglettPic) + dwb DugtrioPic, Bank(DugtrioPic) + dwb MeowthPic, Bank(MeowthPic) + dwb PersianPic, Bank(PersianPic) + dwb PsyduckPic, Bank(PsyduckPic) + dwb GolduckPic, Bank(GolduckPic) + dwb MankeyPic, Bank(MankeyPic) + dwb PrimeapePic, Bank(PrimeapePic) + dwb GrowlithePic, Bank(GrowlithePic) + dwb ArcaninePic, Bank(ArcaninePic) + dwb PoliwagPic, Bank(PoliwagPic) + dwb PoliwhirlPic, Bank(PoliwhirlPic) + dwb PoliwrathPic, Bank(PoliwrathPic) + dwb AbraPic, Bank(AbraPic) + dwb KadabraPic, Bank(KadabraPic) + dwb AlakazamPic, Bank(AlakazamPic) + dwb MachopPic, Bank(MachopPic) + dwb MachokePic, Bank(MachokePic) + dwb MachampPic, Bank(MachampPic) + dwb BellsproutPic, Bank(BellsproutPic) + dwb WeepinbellPic, Bank(WeepinbellPic) + dwb VictreebellPic, Bank(VictreebellPic) + dwb TentacoolPic, Bank(TentacoolPic) + dwb TentacruelPic, Bank(TentacruelPic) + dwb GeodudePic, Bank(GeodudePic) + dwb GravelerPic, Bank(GravelerPic) + dwb GolemPic, Bank(GolemPic) + dwb PonytaPic, Bank(PonytaPic) + dwb RapidashPic, Bank(RapidashPic) + dwb SlowpokePic, Bank(SlowpokePic) + dwb SlowbroPic, Bank(SlowbroPic) + dwb MagnemitePic, Bank(MagnemitePic) + dwb MagnetonPic, Bank(MagnetonPic) + dwb Farfetch_dPic, Bank(Farfetch_dPic) + dwb DoduoPic, Bank(DoduoPic) + dwb DodrioPic, Bank(DodrioPic) + dwb SeelPic, Bank(SeelPic) + dwb DewgongPic, Bank(DewgongPic) + dwb GrimerPic, Bank(GrimerPic) + dwb MukPic, Bank(MukPic) + dwb ShellderPic, Bank(ShellderPic) + dwb CloysterPic, Bank(CloysterPic) + dwb GastlyPic, Bank(GastlyPic) + dwb HaunterPic, Bank(HaunterPic) + dwb GengarPic, Bank(GengarPic) + dwb OnixPic, Bank(OnixPic) + dwb DrowzeePic, Bank(DrowzeePic) + dwb HypnoPic, Bank(HypnoPic) + dwb KrabbyPic, Bank(KrabbyPic) + dwb KinglerPic, Bank(KinglerPic) + dwb VoltorbPic, Bank(VoltorbPic) + dwb ElectrodePic, Bank(ElectrodePic) + dwb ExeggcutePic, Bank(ExeggcutePic) + dwb ExeggutorPic, Bank(ExeggutorPic) + dwb CubonePic, Bank(CubonePic) + dwb MarowakPic, Bank(MarowakPic) + dwb HitmonleePic, Bank(HitmonleePic) + dwb HitmonchanPic, Bank(HitmonchanPic) + dwb LickitungPic, Bank(LickitungPic) + dwb KoffingPic, Bank(KoffingPic) + dwb WeezingPic, Bank(WeezingPic) + dwb RhyhornPic, Bank(RhyhornPic) + dwb RhydonPic, Bank(RhydonPic) + dwb ChanseyPic, Bank(ChanseyPic) + dwb TangelaPic, Bank(TangelaPic) + dwb KangaskhanPic, Bank(KangaskhanPic) + dwb HorseaPic, Bank(HorseaPic) + dwb SeadraPic, Bank(SeadraPic) + dwb GoldeenPic, Bank(GoldeenPic) + dwb SeakingPic, Bank(SeakingPic) + dwb StaryuPic, Bank(StaryuPic) + dwb StarmiePic, Bank(StarmiePic) + dwb Mr_MimePic, Bank(Mr_MimePic) + dwb ScytherPic, Bank(ScytherPic) + dwb JynxPic, Bank(JynxPic) + dwb ElectabuzzPic, Bank(ElectabuzzPic) + dwb MagmarPic, Bank(MagmarPic) + dwb PinsirPic, Bank(PinsirPic) + dwb TaurosPic, Bank(TaurosPic) + dwb MagikarpPic, Bank(MagikarpPic) + dwb GyaradosPic, Bank(GyaradosPic) + dwb LaprasPic, Bank(LaprasPic) + dwb DittoPic, Bank(DittoPic) + dwb EeveePic, Bank(EeveePic) + dwb VaporeonPic, Bank(VaporeonPic) + dwb JolteonPic, Bank(JolteonPic) + dwb FlareonPic, Bank(FlareonPic) + dwb PorygonPic, Bank(PorygonPic) + dwb OmanytePic, Bank(OmanytePic) + dwb OmastarPic, Bank(OmastarPic) + dwb KabutoPic, Bank(KabutoPic) + dwb KabutopsPic, Bank(KabutopsPic) + dwb AerodactylPic, Bank(AerodactylPic) + dwb SnorlaxPic, Bank(SnorlaxPic) + dwb ArticunoPic, Bank(ArticunoPic) + dwb ZapdosPic, Bank(ZapdosPic) + dwb MoltresPic, Bank(MoltresPic) + dwb DratiniPic, Bank(DratiniPic) + dwb DragonairPic, Bank(DragonairPic) + dwb DragonitePic, Bank(DragonitePic) + dwb MewtwoPic, Bank(MewtwoPic) + dwb MewPic, Bank(MewPic) MonBillboardPaletteMapPointers: ; 0x12d15 - dwb BulbasaurBillboardBGPaletteMap, Bank(BulbasaurBillboardBGPaletteMap) - dwb IvysaurBillboardBGPaletteMap, Bank(IvysaurBillboardBGPaletteMap) - dwb VenusaurBillboardBGPaletteMap, Bank(VenusaurBillboardBGPaletteMap) - dwb CharmanderBillboardBGPaletteMap, Bank(CharmanderBillboardBGPaletteMap) - dwb CharmeleonBillboardBGPaletteMap, Bank(CharmeleonBillboardBGPaletteMap) - dwb CharizardBillboardBGPaletteMap, Bank(CharizardBillboardBGPaletteMap) - dwb SquirtleBillboardBGPaletteMap, Bank(SquirtleBillboardBGPaletteMap) - dwb WartortleBillboardBGPaletteMap, Bank(WartortleBillboardBGPaletteMap) - dwb BlastoiseBillboardBGPaletteMap, Bank(BlastoiseBillboardBGPaletteMap) - dwb CaterpieBillboardBGPaletteMap, Bank(CaterpieBillboardBGPaletteMap) - dwb MetapodBillboardBGPaletteMap, Bank(MetapodBillboardBGPaletteMap) - dwb ButterfreeBillboardBGPaletteMap, Bank(ButterfreeBillboardBGPaletteMap) - dwb WeedleBillboardBGPaletteMap, Bank(WeedleBillboardBGPaletteMap) - dwb KakunaBillboardBGPaletteMap, Bank(KakunaBillboardBGPaletteMap) - dwb BeedrillBillboardBGPaletteMap, Bank(BeedrillBillboardBGPaletteMap) - dwb PidgeyBillboardBGPaletteMap, Bank(PidgeyBillboardBGPaletteMap) - dwb PidgeottoBillboardBGPaletteMap, Bank(PidgeottoBillboardBGPaletteMap) - dwb PidgeotBillboardBGPaletteMap, Bank(PidgeotBillboardBGPaletteMap) - dwb RattataBillboardBGPaletteMap, Bank(RattataBillboardBGPaletteMap) - dwb RaticateBillboardBGPaletteMap, Bank(RaticateBillboardBGPaletteMap) - dwb SpearowBillboardBGPaletteMap, Bank(SpearowBillboardBGPaletteMap) - dwb FearowBillboardBGPaletteMap, Bank(FearowBillboardBGPaletteMap) - dwb EkansBillboardBGPaletteMap, Bank(EkansBillboardBGPaletteMap) - dwb ArbokBillboardBGPaletteMap, Bank(ArbokBillboardBGPaletteMap) - dwb PikachuBillboardBGPaletteMap, Bank(PikachuBillboardBGPaletteMap) - dwb RaichuBillboardBGPaletteMap, Bank(RaichuBillboardBGPaletteMap) - dwb SandshrewBillboardBGPaletteMap, Bank(SandshrewBillboardBGPaletteMap) - dwb SandslashBillboardBGPaletteMap, Bank(SandslashBillboardBGPaletteMap) - dwb NidoranFBillboardBGPaletteMap, Bank(NidoranFBillboardBGPaletteMap) - dwb NidorinaBillboardBGPaletteMap, Bank(NidorinaBillboardBGPaletteMap) - dwb NidoqueenBillboardBGPaletteMap, Bank(NidoqueenBillboardBGPaletteMap) - dwb NidoranMBillboardBGPaletteMap, Bank(NidoranMBillboardBGPaletteMap) - dwb NidorinoBillboardBGPaletteMap, Bank(NidorinoBillboardBGPaletteMap) - dwb NidokingBillboardBGPaletteMap, Bank(NidokingBillboardBGPaletteMap) - dwb ClefairyBillboardBGPaletteMap, Bank(ClefairyBillboardBGPaletteMap) - dwb ClefableBillboardBGPaletteMap, Bank(ClefableBillboardBGPaletteMap) - dwb VulpixBillboardBGPaletteMap, Bank(VulpixBillboardBGPaletteMap) - dwb NinetalesBillboardBGPaletteMap, Bank(NinetalesBillboardBGPaletteMap) - dwb JigglypuffBillboardBGPaletteMap, Bank(JigglypuffBillboardBGPaletteMap) - dwb WigglytuffBillboardBGPaletteMap, Bank(WigglytuffBillboardBGPaletteMap) - dwb ZubatBillboardBGPaletteMap, Bank(ZubatBillboardBGPaletteMap) - dwb GolbatBillboardBGPaletteMap, Bank(GolbatBillboardBGPaletteMap) - dwb OddishBillboardBGPaletteMap, Bank(OddishBillboardBGPaletteMap) - dwb GloomBillboardBGPaletteMap, Bank(GloomBillboardBGPaletteMap) - dwb VileplumeBillboardBGPaletteMap, Bank(VileplumeBillboardBGPaletteMap) - dwb ParasBillboardBGPaletteMap, Bank(ParasBillboardBGPaletteMap) - dwb ParasectBillboardBGPaletteMap, Bank(ParasectBillboardBGPaletteMap) - dwb VenonatBillboardBGPaletteMap, Bank(VenonatBillboardBGPaletteMap) - dwb VenomothBillboardBGPaletteMap, Bank(VenomothBillboardBGPaletteMap) - dwb DiglettBillboardBGPaletteMap, Bank(DiglettBillboardBGPaletteMap) - dwb DugtrioBillboardBGPaletteMap, Bank(DugtrioBillboardBGPaletteMap) - dwb MeowthBillboardBGPaletteMap, Bank(MeowthBillboardBGPaletteMap) - dwb PersianBillboardBGPaletteMap, Bank(PersianBillboardBGPaletteMap) - dwb PsyduckBillboardBGPaletteMap, Bank(PsyduckBillboardBGPaletteMap) - dwb GolduckBillboardBGPaletteMap, Bank(GolduckBillboardBGPaletteMap) - dwb MankeyBillboardBGPaletteMap, Bank(MankeyBillboardBGPaletteMap) - dwb PrimeapeBillboardBGPaletteMap, Bank(PrimeapeBillboardBGPaletteMap) - dwb GrowlitheBillboardBGPaletteMap, Bank(GrowlitheBillboardBGPaletteMap) - dwb ArcanineBillboardBGPaletteMap, Bank(ArcanineBillboardBGPaletteMap) - dwb PoliwagBillboardBGPaletteMap, Bank(PoliwagBillboardBGPaletteMap) - dwb PoliwhirlBillboardBGPaletteMap, Bank(PoliwhirlBillboardBGPaletteMap) - dwb PoliwrathBillboardBGPaletteMap, Bank(PoliwrathBillboardBGPaletteMap) - dwb AbraBillboardBGPaletteMap, Bank(AbraBillboardBGPaletteMap) - dwb KadabraBillboardBGPaletteMap, Bank(KadabraBillboardBGPaletteMap) - dwb AlakazamBillboardBGPaletteMap, Bank(AlakazamBillboardBGPaletteMap) - dwb MachopBillboardBGPaletteMap, Bank(MachopBillboardBGPaletteMap) - dwb MachokeBillboardBGPaletteMap, Bank(MachokeBillboardBGPaletteMap) - dwb MachampBillboardBGPaletteMap, Bank(MachampBillboardBGPaletteMap) - dwb BellsproutBillboardBGPaletteMap, Bank(BellsproutBillboardBGPaletteMap) - dwb WeepinbellBillboardBGPaletteMap, Bank(WeepinbellBillboardBGPaletteMap) - dwb VictreebellBillboardBGPaletteMap, Bank(VictreebellBillboardBGPaletteMap) - dwb TentacoolBillboardBGPaletteMap, Bank(TentacoolBillboardBGPaletteMap) - dwb TentacruelBillboardBGPaletteMap, Bank(TentacruelBillboardBGPaletteMap) - dwb GeodudeBillboardBGPaletteMap, Bank(GeodudeBillboardBGPaletteMap) - dwb GravelerBillboardBGPaletteMap, Bank(GravelerBillboardBGPaletteMap) - dwb GolemBillboardBGPaletteMap, Bank(GolemBillboardBGPaletteMap) - dwb PonytaBillboardBGPaletteMap, Bank(PonytaBillboardBGPaletteMap) - dwb RapidashBillboardBGPaletteMap, Bank(RapidashBillboardBGPaletteMap) - dwb SlowpokeBillboardBGPaletteMap, Bank(SlowpokeBillboardBGPaletteMap) - dwb SlowbroBillboardBGPaletteMap, Bank(SlowbroBillboardBGPaletteMap) - dwb MagnemiteBillboardBGPaletteMap, Bank(MagnemiteBillboardBGPaletteMap) - dwb MagnetonBillboardBGPaletteMap, Bank(MagnetonBillboardBGPaletteMap) - dwb FarfetchdBillboardBGPaletteMap, Bank(FarfetchdBillboardBGPaletteMap) - dwb DoduoBillboardBGPaletteMap, Bank(DoduoBillboardBGPaletteMap) - dwb DodrioBillboardBGPaletteMap, Bank(DodrioBillboardBGPaletteMap) - dwb SeelBillboardBGPaletteMap, Bank(SeelBillboardBGPaletteMap) - dwb DewgongBillboardBGPaletteMap, Bank(DewgongBillboardBGPaletteMap) - dwb GrimerBillboardBGPaletteMap, Bank(GrimerBillboardBGPaletteMap) - dwb MukBillboardBGPaletteMap, Bank(MukBillboardBGPaletteMap) - dwb ShellderBillboardBGPaletteMap, Bank(ShellderBillboardBGPaletteMap) - dwb CloysterBillboardBGPaletteMap, Bank(CloysterBillboardBGPaletteMap) - dwb GastlyBillboardBGPaletteMap, Bank(GastlyBillboardBGPaletteMap) - dwb HaunterBillboardBGPaletteMap, Bank(HaunterBillboardBGPaletteMap) - dwb GengarBillboardBGPaletteMap, Bank(GengarBillboardBGPaletteMap) - dwb OnixBillboardBGPaletteMap, Bank(OnixBillboardBGPaletteMap) - dwb DrowzeeBillboardBGPaletteMap, Bank(DrowzeeBillboardBGPaletteMap) - dwb HypnoBillboardBGPaletteMap, Bank(HypnoBillboardBGPaletteMap) - dwb KrabbyBillboardBGPaletteMap, Bank(KrabbyBillboardBGPaletteMap) - dwb KinglerBillboardBGPaletteMap, Bank(KinglerBillboardBGPaletteMap) - dwb VoltorbBillboardBGPaletteMap, Bank(VoltorbBillboardBGPaletteMap) - dwb ElectrodeBillboardBGPaletteMap, Bank(ElectrodeBillboardBGPaletteMap) - dwb ExeggcuteBillboardBGPaletteMap, Bank(ExeggcuteBillboardBGPaletteMap) - dwb ExeggutorBillboardBGPaletteMap, Bank(ExeggutorBillboardBGPaletteMap) - dwb CuboneBillboardBGPaletteMap, Bank(CuboneBillboardBGPaletteMap) - dwb MarowakBillboardBGPaletteMap, Bank(MarowakBillboardBGPaletteMap) - dwb HitmonleeBillboardBGPaletteMap, Bank(HitmonleeBillboardBGPaletteMap) - dwb HitmonchanBillboardBGPaletteMap, Bank(HitmonchanBillboardBGPaletteMap) - dwb LickitungBillboardBGPaletteMap, Bank(LickitungBillboardBGPaletteMap) - dwb KoffingBillboardBGPaletteMap, Bank(KoffingBillboardBGPaletteMap) - dwb WeezingBillboardBGPaletteMap, Bank(WeezingBillboardBGPaletteMap) - dwb RhyhornBillboardBGPaletteMap, Bank(RhyhornBillboardBGPaletteMap) - dwb RhydonBillboardBGPaletteMap, Bank(RhydonBillboardBGPaletteMap) - dwb ChanseyBillboardBGPaletteMap, Bank(ChanseyBillboardBGPaletteMap) - dwb TangelaBillboardBGPaletteMap, Bank(TangelaBillboardBGPaletteMap) - dwb KangaskhanBillboardBGPaletteMap, Bank(KangaskhanBillboardBGPaletteMap) - dwb HorseaBillboardBGPaletteMap, Bank(HorseaBillboardBGPaletteMap) - dwb SeadraBillboardBGPaletteMap, Bank(SeadraBillboardBGPaletteMap) - dwb GoldeenBillboardBGPaletteMap, Bank(GoldeenBillboardBGPaletteMap) - dwb SeakingBillboardBGPaletteMap, Bank(SeakingBillboardBGPaletteMap) - dwb StaryuBillboardBGPaletteMap, Bank(StaryuBillboardBGPaletteMap) - dwb StarmieBillboardBGPaletteMap, Bank(StarmieBillboardBGPaletteMap) - dwb MrMimeBillboardBGPaletteMap, Bank(MrMimeBillboardBGPaletteMap) - dwb ScytherBillboardBGPaletteMap, Bank(ScytherBillboardBGPaletteMap) - dwb JynxBillboardBGPaletteMap, Bank(JynxBillboardBGPaletteMap) - dwb ElectabuzzBillboardBGPaletteMap, Bank(ElectabuzzBillboardBGPaletteMap) - dwb MagmarBillboardBGPaletteMap, Bank(MagmarBillboardBGPaletteMap) - dwb PinsirBillboardBGPaletteMap, Bank(PinsirBillboardBGPaletteMap) - dwb TaurosBillboardBGPaletteMap, Bank(TaurosBillboardBGPaletteMap) - dwb MagikarpBillboardBGPaletteMap, Bank(MagikarpBillboardBGPaletteMap) - dwb GyaradosBillboardBGPaletteMap, Bank(GyaradosBillboardBGPaletteMap) - dwb LaprasBillboardBGPaletteMap, Bank(LaprasBillboardBGPaletteMap) - dwb DittoBillboardBGPaletteMap, Bank(DittoBillboardBGPaletteMap) - dwb EeveeBillboardBGPaletteMap, Bank(EeveeBillboardBGPaletteMap) - dwb VaporeonBillboardBGPaletteMap, Bank(VaporeonBillboardBGPaletteMap) - dwb JolteonBillboardBGPaletteMap, Bank(JolteonBillboardBGPaletteMap) - dwb FlareonBillboardBGPaletteMap, Bank(FlareonBillboardBGPaletteMap) - dwb PorygonBillboardBGPaletteMap, Bank(PorygonBillboardBGPaletteMap) - dwb OmanyteBillboardBGPaletteMap, Bank(OmanyteBillboardBGPaletteMap) - dwb OmastarBillboardBGPaletteMap, Bank(OmastarBillboardBGPaletteMap) - dwb KabutoBillboardBGPaletteMap, Bank(KabutoBillboardBGPaletteMap) - dwb KabutopsBillboardBGPaletteMap, Bank(KabutopsBillboardBGPaletteMap) - dwb AerodactylBillboardBGPaletteMap, Bank(AerodactylBillboardBGPaletteMap) - dwb SnorlaxBillboardBGPaletteMap, Bank(SnorlaxBillboardBGPaletteMap) - dwb ArticunoBillboardBGPaletteMap, Bank(ArticunoBillboardBGPaletteMap) - dwb ZapdosBillboardBGPaletteMap, Bank(ZapdosBillboardBGPaletteMap) - dwb MoltresBillboardBGPaletteMap, Bank(MoltresBillboardBGPaletteMap) - dwb DratiniBillboardBGPaletteMap, Bank(DratiniBillboardBGPaletteMap) - dwb DragonairBillboardBGPaletteMap, Bank(DragonairBillboardBGPaletteMap) - dwb DragoniteBillboardBGPaletteMap, Bank(DragoniteBillboardBGPaletteMap) - dwb MewtwoBillboardBGPaletteMap, Bank(MewtwoBillboardBGPaletteMap) - dwb MewBillboardBGPaletteMap, Bank(MewBillboardBGPaletteMap) + dwb BulbasaurBillboardBGPaletteMap, Bank(BulbasaurBillboardBGPaletteMap) + dwb IvysaurBillboardBGPaletteMap, Bank(IvysaurBillboardBGPaletteMap) + dwb VenusaurBillboardBGPaletteMap, Bank(VenusaurBillboardBGPaletteMap) + dwb CharmanderBillboardBGPaletteMap, Bank(CharmanderBillboardBGPaletteMap) + dwb CharmeleonBillboardBGPaletteMap, Bank(CharmeleonBillboardBGPaletteMap) + dwb CharizardBillboardBGPaletteMap, Bank(CharizardBillboardBGPaletteMap) + dwb SquirtleBillboardBGPaletteMap, Bank(SquirtleBillboardBGPaletteMap) + dwb WartortleBillboardBGPaletteMap, Bank(WartortleBillboardBGPaletteMap) + dwb BlastoiseBillboardBGPaletteMap, Bank(BlastoiseBillboardBGPaletteMap) + dwb CaterpieBillboardBGPaletteMap, Bank(CaterpieBillboardBGPaletteMap) + dwb MetapodBillboardBGPaletteMap, Bank(MetapodBillboardBGPaletteMap) + dwb ButterfreeBillboardBGPaletteMap, Bank(ButterfreeBillboardBGPaletteMap) + dwb WeedleBillboardBGPaletteMap, Bank(WeedleBillboardBGPaletteMap) + dwb KakunaBillboardBGPaletteMap, Bank(KakunaBillboardBGPaletteMap) + dwb BeedrillBillboardBGPaletteMap, Bank(BeedrillBillboardBGPaletteMap) + dwb PidgeyBillboardBGPaletteMap, Bank(PidgeyBillboardBGPaletteMap) + dwb PidgeottoBillboardBGPaletteMap, Bank(PidgeottoBillboardBGPaletteMap) + dwb PidgeotBillboardBGPaletteMap, Bank(PidgeotBillboardBGPaletteMap) + dwb RattataBillboardBGPaletteMap, Bank(RattataBillboardBGPaletteMap) + dwb RaticateBillboardBGPaletteMap, Bank(RaticateBillboardBGPaletteMap) + dwb SpearowBillboardBGPaletteMap, Bank(SpearowBillboardBGPaletteMap) + dwb FearowBillboardBGPaletteMap, Bank(FearowBillboardBGPaletteMap) + dwb EkansBillboardBGPaletteMap, Bank(EkansBillboardBGPaletteMap) + dwb ArbokBillboardBGPaletteMap, Bank(ArbokBillboardBGPaletteMap) + dwb PikachuBillboardBGPaletteMap, Bank(PikachuBillboardBGPaletteMap) + dwb RaichuBillboardBGPaletteMap, Bank(RaichuBillboardBGPaletteMap) + dwb SandshrewBillboardBGPaletteMap, Bank(SandshrewBillboardBGPaletteMap) + dwb SandslashBillboardBGPaletteMap, Bank(SandslashBillboardBGPaletteMap) + dwb NidoranFBillboardBGPaletteMap, Bank(NidoranFBillboardBGPaletteMap) + dwb NidorinaBillboardBGPaletteMap, Bank(NidorinaBillboardBGPaletteMap) + dwb NidoqueenBillboardBGPaletteMap, Bank(NidoqueenBillboardBGPaletteMap) + dwb NidoranMBillboardBGPaletteMap, Bank(NidoranMBillboardBGPaletteMap) + dwb NidorinoBillboardBGPaletteMap, Bank(NidorinoBillboardBGPaletteMap) + dwb NidokingBillboardBGPaletteMap, Bank(NidokingBillboardBGPaletteMap) + dwb ClefairyBillboardBGPaletteMap, Bank(ClefairyBillboardBGPaletteMap) + dwb ClefableBillboardBGPaletteMap, Bank(ClefableBillboardBGPaletteMap) + dwb VulpixBillboardBGPaletteMap, Bank(VulpixBillboardBGPaletteMap) + dwb NinetalesBillboardBGPaletteMap, Bank(NinetalesBillboardBGPaletteMap) + dwb JigglypuffBillboardBGPaletteMap, Bank(JigglypuffBillboardBGPaletteMap) + dwb WigglytuffBillboardBGPaletteMap, Bank(WigglytuffBillboardBGPaletteMap) + dwb ZubatBillboardBGPaletteMap, Bank(ZubatBillboardBGPaletteMap) + dwb GolbatBillboardBGPaletteMap, Bank(GolbatBillboardBGPaletteMap) + dwb OddishBillboardBGPaletteMap, Bank(OddishBillboardBGPaletteMap) + dwb GloomBillboardBGPaletteMap, Bank(GloomBillboardBGPaletteMap) + dwb VileplumeBillboardBGPaletteMap, Bank(VileplumeBillboardBGPaletteMap) + dwb ParasBillboardBGPaletteMap, Bank(ParasBillboardBGPaletteMap) + dwb ParasectBillboardBGPaletteMap, Bank(ParasectBillboardBGPaletteMap) + dwb VenonatBillboardBGPaletteMap, Bank(VenonatBillboardBGPaletteMap) + dwb VenomothBillboardBGPaletteMap, Bank(VenomothBillboardBGPaletteMap) + dwb DiglettBillboardBGPaletteMap, Bank(DiglettBillboardBGPaletteMap) + dwb DugtrioBillboardBGPaletteMap, Bank(DugtrioBillboardBGPaletteMap) + dwb MeowthBillboardBGPaletteMap, Bank(MeowthBillboardBGPaletteMap) + dwb PersianBillboardBGPaletteMap, Bank(PersianBillboardBGPaletteMap) + dwb PsyduckBillboardBGPaletteMap, Bank(PsyduckBillboardBGPaletteMap) + dwb GolduckBillboardBGPaletteMap, Bank(GolduckBillboardBGPaletteMap) + dwb MankeyBillboardBGPaletteMap, Bank(MankeyBillboardBGPaletteMap) + dwb PrimeapeBillboardBGPaletteMap, Bank(PrimeapeBillboardBGPaletteMap) + dwb GrowlitheBillboardBGPaletteMap, Bank(GrowlitheBillboardBGPaletteMap) + dwb ArcanineBillboardBGPaletteMap, Bank(ArcanineBillboardBGPaletteMap) + dwb PoliwagBillboardBGPaletteMap, Bank(PoliwagBillboardBGPaletteMap) + dwb PoliwhirlBillboardBGPaletteMap, Bank(PoliwhirlBillboardBGPaletteMap) + dwb PoliwrathBillboardBGPaletteMap, Bank(PoliwrathBillboardBGPaletteMap) + dwb AbraBillboardBGPaletteMap, Bank(AbraBillboardBGPaletteMap) + dwb KadabraBillboardBGPaletteMap, Bank(KadabraBillboardBGPaletteMap) + dwb AlakazamBillboardBGPaletteMap, Bank(AlakazamBillboardBGPaletteMap) + dwb MachopBillboardBGPaletteMap, Bank(MachopBillboardBGPaletteMap) + dwb MachokeBillboardBGPaletteMap, Bank(MachokeBillboardBGPaletteMap) + dwb MachampBillboardBGPaletteMap, Bank(MachampBillboardBGPaletteMap) + dwb BellsproutBillboardBGPaletteMap, Bank(BellsproutBillboardBGPaletteMap) + dwb WeepinbellBillboardBGPaletteMap, Bank(WeepinbellBillboardBGPaletteMap) + dwb VictreebellBillboardBGPaletteMap, Bank(VictreebellBillboardBGPaletteMap) + dwb TentacoolBillboardBGPaletteMap, Bank(TentacoolBillboardBGPaletteMap) + dwb TentacruelBillboardBGPaletteMap, Bank(TentacruelBillboardBGPaletteMap) + dwb GeodudeBillboardBGPaletteMap, Bank(GeodudeBillboardBGPaletteMap) + dwb GravelerBillboardBGPaletteMap, Bank(GravelerBillboardBGPaletteMap) + dwb GolemBillboardBGPaletteMap, Bank(GolemBillboardBGPaletteMap) + dwb PonytaBillboardBGPaletteMap, Bank(PonytaBillboardBGPaletteMap) + dwb RapidashBillboardBGPaletteMap, Bank(RapidashBillboardBGPaletteMap) + dwb SlowpokeBillboardBGPaletteMap, Bank(SlowpokeBillboardBGPaletteMap) + dwb SlowbroBillboardBGPaletteMap, Bank(SlowbroBillboardBGPaletteMap) + dwb MagnemiteBillboardBGPaletteMap, Bank(MagnemiteBillboardBGPaletteMap) + dwb MagnetonBillboardBGPaletteMap, Bank(MagnetonBillboardBGPaletteMap) + dwb FarfetchdBillboardBGPaletteMap, Bank(FarfetchdBillboardBGPaletteMap) + dwb DoduoBillboardBGPaletteMap, Bank(DoduoBillboardBGPaletteMap) + dwb DodrioBillboardBGPaletteMap, Bank(DodrioBillboardBGPaletteMap) + dwb SeelBillboardBGPaletteMap, Bank(SeelBillboardBGPaletteMap) + dwb DewgongBillboardBGPaletteMap, Bank(DewgongBillboardBGPaletteMap) + dwb GrimerBillboardBGPaletteMap, Bank(GrimerBillboardBGPaletteMap) + dwb MukBillboardBGPaletteMap, Bank(MukBillboardBGPaletteMap) + dwb ShellderBillboardBGPaletteMap, Bank(ShellderBillboardBGPaletteMap) + dwb CloysterBillboardBGPaletteMap, Bank(CloysterBillboardBGPaletteMap) + dwb GastlyBillboardBGPaletteMap, Bank(GastlyBillboardBGPaletteMap) + dwb HaunterBillboardBGPaletteMap, Bank(HaunterBillboardBGPaletteMap) + dwb GengarBillboardBGPaletteMap, Bank(GengarBillboardBGPaletteMap) + dwb OnixBillboardBGPaletteMap, Bank(OnixBillboardBGPaletteMap) + dwb DrowzeeBillboardBGPaletteMap, Bank(DrowzeeBillboardBGPaletteMap) + dwb HypnoBillboardBGPaletteMap, Bank(HypnoBillboardBGPaletteMap) + dwb KrabbyBillboardBGPaletteMap, Bank(KrabbyBillboardBGPaletteMap) + dwb KinglerBillboardBGPaletteMap, Bank(KinglerBillboardBGPaletteMap) + dwb VoltorbBillboardBGPaletteMap, Bank(VoltorbBillboardBGPaletteMap) + dwb ElectrodeBillboardBGPaletteMap, Bank(ElectrodeBillboardBGPaletteMap) + dwb ExeggcuteBillboardBGPaletteMap, Bank(ExeggcuteBillboardBGPaletteMap) + dwb ExeggutorBillboardBGPaletteMap, Bank(ExeggutorBillboardBGPaletteMap) + dwb CuboneBillboardBGPaletteMap, Bank(CuboneBillboardBGPaletteMap) + dwb MarowakBillboardBGPaletteMap, Bank(MarowakBillboardBGPaletteMap) + dwb HitmonleeBillboardBGPaletteMap, Bank(HitmonleeBillboardBGPaletteMap) + dwb HitmonchanBillboardBGPaletteMap, Bank(HitmonchanBillboardBGPaletteMap) + dwb LickitungBillboardBGPaletteMap, Bank(LickitungBillboardBGPaletteMap) + dwb KoffingBillboardBGPaletteMap, Bank(KoffingBillboardBGPaletteMap) + dwb WeezingBillboardBGPaletteMap, Bank(WeezingBillboardBGPaletteMap) + dwb RhyhornBillboardBGPaletteMap, Bank(RhyhornBillboardBGPaletteMap) + dwb RhydonBillboardBGPaletteMap, Bank(RhydonBillboardBGPaletteMap) + dwb ChanseyBillboardBGPaletteMap, Bank(ChanseyBillboardBGPaletteMap) + dwb TangelaBillboardBGPaletteMap, Bank(TangelaBillboardBGPaletteMap) + dwb KangaskhanBillboardBGPaletteMap, Bank(KangaskhanBillboardBGPaletteMap) + dwb HorseaBillboardBGPaletteMap, Bank(HorseaBillboardBGPaletteMap) + dwb SeadraBillboardBGPaletteMap, Bank(SeadraBillboardBGPaletteMap) + dwb GoldeenBillboardBGPaletteMap, Bank(GoldeenBillboardBGPaletteMap) + dwb SeakingBillboardBGPaletteMap, Bank(SeakingBillboardBGPaletteMap) + dwb StaryuBillboardBGPaletteMap, Bank(StaryuBillboardBGPaletteMap) + dwb StarmieBillboardBGPaletteMap, Bank(StarmieBillboardBGPaletteMap) + dwb MrMimeBillboardBGPaletteMap, Bank(MrMimeBillboardBGPaletteMap) + dwb ScytherBillboardBGPaletteMap, Bank(ScytherBillboardBGPaletteMap) + dwb JynxBillboardBGPaletteMap, Bank(JynxBillboardBGPaletteMap) + dwb ElectabuzzBillboardBGPaletteMap, Bank(ElectabuzzBillboardBGPaletteMap) + dwb MagmarBillboardBGPaletteMap, Bank(MagmarBillboardBGPaletteMap) + dwb PinsirBillboardBGPaletteMap, Bank(PinsirBillboardBGPaletteMap) + dwb TaurosBillboardBGPaletteMap, Bank(TaurosBillboardBGPaletteMap) + dwb MagikarpBillboardBGPaletteMap, Bank(MagikarpBillboardBGPaletteMap) + dwb GyaradosBillboardBGPaletteMap, Bank(GyaradosBillboardBGPaletteMap) + dwb LaprasBillboardBGPaletteMap, Bank(LaprasBillboardBGPaletteMap) + dwb DittoBillboardBGPaletteMap, Bank(DittoBillboardBGPaletteMap) + dwb EeveeBillboardBGPaletteMap, Bank(EeveeBillboardBGPaletteMap) + dwb VaporeonBillboardBGPaletteMap, Bank(VaporeonBillboardBGPaletteMap) + dwb JolteonBillboardBGPaletteMap, Bank(JolteonBillboardBGPaletteMap) + dwb FlareonBillboardBGPaletteMap, Bank(FlareonBillboardBGPaletteMap) + dwb PorygonBillboardBGPaletteMap, Bank(PorygonBillboardBGPaletteMap) + dwb OmanyteBillboardBGPaletteMap, Bank(OmanyteBillboardBGPaletteMap) + dwb OmastarBillboardBGPaletteMap, Bank(OmastarBillboardBGPaletteMap) + dwb KabutoBillboardBGPaletteMap, Bank(KabutoBillboardBGPaletteMap) + dwb KabutopsBillboardBGPaletteMap, Bank(KabutopsBillboardBGPaletteMap) + dwb AerodactylBillboardBGPaletteMap, Bank(AerodactylBillboardBGPaletteMap) + dwb SnorlaxBillboardBGPaletteMap, Bank(SnorlaxBillboardBGPaletteMap) + dwb ArticunoBillboardBGPaletteMap, Bank(ArticunoBillboardBGPaletteMap) + dwb ZapdosBillboardBGPaletteMap, Bank(ZapdosBillboardBGPaletteMap) + dwb MoltresBillboardBGPaletteMap, Bank(MoltresBillboardBGPaletteMap) + dwb DratiniBillboardBGPaletteMap, Bank(DratiniBillboardBGPaletteMap) + dwb DragonairBillboardBGPaletteMap, Bank(DragonairBillboardBGPaletteMap) + dwb DragoniteBillboardBGPaletteMap, Bank(DragoniteBillboardBGPaletteMap) + dwb MewtwoBillboardBGPaletteMap, Bank(MewtwoBillboardBGPaletteMap) + dwb MewBillboardBGPaletteMap, Bank(MewBillboardBGPaletteMap) MonBillboardPalettePointers: ; 0x12eda - dwb BulbasaurBillboardBGPalette1, Bank(BulbasaurBillboardBGPalette1) - dwb IvysaurBillboardBGPalette1, Bank(IvysaurBillboardBGPalette1) - dwb VenusaurBillboardBGPalette1, Bank(VenusaurBillboardBGPalette1) - dwb CharmanderBillboardBGPalette1, Bank(CharmanderBillboardBGPalette1) - dwb CharmeleonBillboardBGPalette1, Bank(CharmeleonBillboardBGPalette1) - dwb CharizardBillboardBGPalette1, Bank(CharizardBillboardBGPalette1) - dwb SquirtleBillboardBGPalette1, Bank(SquirtleBillboardBGPalette1) - dwb WartortleBillboardBGPalette1, Bank(WartortleBillboardBGPalette1) - dwb BlastoiseBillboardBGPalette1, Bank(BlastoiseBillboardBGPalette1) - dwb CaterpieBillboardBGPalette1, Bank(CaterpieBillboardBGPalette1) - dwb MetapodBillboardBGPalette1, Bank(MetapodBillboardBGPalette1) - dwb ButterfreeBillboardBGPalette1, Bank(ButterfreeBillboardBGPalette1) - dwb WeedleBillboardBGPalette1, Bank(WeedleBillboardBGPalette1) - dwb KakunaBillboardBGPalette1, Bank(KakunaBillboardBGPalette1) - dwb BeedrillBillboardBGPalette1, Bank(BeedrillBillboardBGPalette1) - dwb PidgeyBillboardBGPalette1, Bank(PidgeyBillboardBGPalette1) - dwb PidgeottoBillboardBGPalette1, Bank(PidgeottoBillboardBGPalette1) - dwb PidgeotBillboardBGPalette1, Bank(PidgeotBillboardBGPalette1) - dwb RattataBillboardBGPalette1, Bank(RattataBillboardBGPalette1) - dwb RaticateBillboardBGPalette1, Bank(RaticateBillboardBGPalette1) - dwb SpearowBillboardBGPalette1, Bank(SpearowBillboardBGPalette1) - dwb FearowBillboardBGPalette1, Bank(FearowBillboardBGPalette1) - dwb EkansBillboardBGPalette1, Bank(EkansBillboardBGPalette1) - dwb ArbokBillboardBGPalette1, Bank(ArbokBillboardBGPalette1) - dwb PikachuBillboardBGPalette1, Bank(PikachuBillboardBGPalette1) - dwb RaichuBillboardBGPalette1, Bank(RaichuBillboardBGPalette1) - dwb SandshrewBillboardBGPalette1, Bank(SandshrewBillboardBGPalette1) - dwb SandslashBillboardBGPalette1, Bank(SandslashBillboardBGPalette1) - dwb NidoranFBillboardBGPalette1, Bank(NidoranFBillboardBGPalette1) - dwb NidorinaBillboardBGPalette1, Bank(NidorinaBillboardBGPalette1) - dwb NidoqueenBillboardBGPalette1, Bank(NidoqueenBillboardBGPalette1) - dwb NidoranMBillboardBGPalette1, Bank(NidoranMBillboardBGPalette1) - dwb NidorinoBillboardBGPalette1, Bank(NidorinoBillboardBGPalette1) - dwb NidokingBillboardBGPalette1, Bank(NidokingBillboardBGPalette1) - dwb ClefairyBillboardBGPalette1, Bank(ClefairyBillboardBGPalette1) - dwb ClefableBillboardBGPalette1, Bank(ClefableBillboardBGPalette1) - dwb VulpixBillboardBGPalette1, Bank(VulpixBillboardBGPalette1) - dwb NinetalesBillboardBGPalette1, Bank(NinetalesBillboardBGPalette1) - dwb JigglypuffBillboardBGPalette1, Bank(JigglypuffBillboardBGPalette1) - dwb WigglytuffBillboardBGPalette1, Bank(WigglytuffBillboardBGPalette1) - dwb ZubatBillboardBGPalette1, Bank(ZubatBillboardBGPalette1) - dwb GolbatBillboardBGPalette1, Bank(GolbatBillboardBGPalette1) - dwb OddishBillboardBGPalette1, Bank(OddishBillboardBGPalette1) - dwb GloomBillboardBGPalette1, Bank(GloomBillboardBGPalette1) - dwb VileplumeBillboardBGPalette1, Bank(VileplumeBillboardBGPalette1) - dwb ParasBillboardBGPalette1, Bank(ParasBillboardBGPalette1) - dwb ParasectBillboardBGPalette1, Bank(ParasectBillboardBGPalette1) - dwb VenonatBillboardBGPalette1, Bank(VenonatBillboardBGPalette1) - dwb VenomothBillboardBGPalette1, Bank(VenomothBillboardBGPalette1) - dwb DiglettBillboardBGPalette1, Bank(DiglettBillboardBGPalette1) - dwb DugtrioBillboardBGPalette1, Bank(DugtrioBillboardBGPalette1) - dwb MeowthBillboardBGPalette1, Bank(MeowthBillboardBGPalette1) - dwb PersianBillboardBGPalette1, Bank(PersianBillboardBGPalette1) - dwb PsyduckBillboardBGPalette1, Bank(PsyduckBillboardBGPalette1) - dwb GolduckBillboardBGPalette1, Bank(GolduckBillboardBGPalette1) - dwb MankeyBillboardBGPalette1, Bank(MankeyBillboardBGPalette1) - dwb PrimeapeBillboardBGPalette1, Bank(PrimeapeBillboardBGPalette1) - dwb GrowlitheBillboardBGPalette1, Bank(GrowlitheBillboardBGPalette1) - dwb ArcanineBillboardBGPalette1, Bank(ArcanineBillboardBGPalette1) - dwb PoliwagBillboardBGPalette1, Bank(PoliwagBillboardBGPalette1) - dwb PoliwhirlBillboardBGPalette1, Bank(PoliwhirlBillboardBGPalette1) - dwb PoliwrathBillboardBGPalette1, Bank(PoliwrathBillboardBGPalette1) - dwb AbraBillboardBGPalette1, Bank(AbraBillboardBGPalette1) - dwb KadabraBillboardBGPalette1, Bank(KadabraBillboardBGPalette1) - dwb AlakazamBillboardBGPalette1, Bank(AlakazamBillboardBGPalette1) - dwb MachopBillboardBGPalette1, Bank(MachopBillboardBGPalette1) - dwb MachokeBillboardBGPalette1, Bank(MachokeBillboardBGPalette1) - dwb MachampBillboardBGPalette1, Bank(MachampBillboardBGPalette1) - dwb BellsproutBillboardBGPalette1, Bank(BellsproutBillboardBGPalette1) - dwb WeepinbellBillboardBGPalette1, Bank(WeepinbellBillboardBGPalette1) - dwb VictreebellBillboardBGPalette1, Bank(VictreebellBillboardBGPalette1) - dwb TentacoolBillboardBGPalette1, Bank(TentacoolBillboardBGPalette1) - dwb TentacruelBillboardBGPalette1, Bank(TentacruelBillboardBGPalette1) - dwb GeodudeBillboardBGPalette1, Bank(GeodudeBillboardBGPalette1) - dwb GravelerBillboardBGPalette1, Bank(GravelerBillboardBGPalette1) - dwb GolemBillboardBGPalette1, Bank(GolemBillboardBGPalette1) - dwb PonytaBillboardBGPalette1, Bank(PonytaBillboardBGPalette1) - dwb RapidashBillboardBGPalette1, Bank(RapidashBillboardBGPalette1) - dwb SlowpokeBillboardBGPalette1, Bank(SlowpokeBillboardBGPalette1) - dwb SlowbroBillboardBGPalette1, Bank(SlowbroBillboardBGPalette1) - dwb MagnemiteBillboardBGPalette1, Bank(MagnemiteBillboardBGPalette1) - dwb MagnetonBillboardBGPalette1, Bank(MagnetonBillboardBGPalette1) - dwb FarfetchdBillboardBGPalette1, Bank(FarfetchdBillboardBGPalette1) - dwb DoduoBillboardBGPalette1, Bank(DoduoBillboardBGPalette1) - dwb DodrioBillboardBGPalette1, Bank(DodrioBillboardBGPalette1) - dwb SeelBillboardBGPalette1, Bank(SeelBillboardBGPalette1) - dwb DewgongBillboardBGPalette1, Bank(DewgongBillboardBGPalette1) - dwb GrimerBillboardBGPalette1, Bank(GrimerBillboardBGPalette1) - dwb MukBillboardBGPalette1, Bank(MukBillboardBGPalette1) - dwb ShellderBillboardBGPalette1, Bank(ShellderBillboardBGPalette1) - dwb CloysterBillboardBGPalette1, Bank(CloysterBillboardBGPalette1) - dwb GastlyBillboardBGPalette1, Bank(GastlyBillboardBGPalette1) - dwb HaunterBillboardBGPalette1, Bank(HaunterBillboardBGPalette1) - dwb GengarBillboardBGPalette1, Bank(GengarBillboardBGPalette1) - dwb OnixBillboardBGPalette1, Bank(OnixBillboardBGPalette1) - dwb DrowzeeBillboardBGPalette1, Bank(DrowzeeBillboardBGPalette1) - dwb HypnoBillboardBGPalette1, Bank(HypnoBillboardBGPalette1) - dwb KrabbyBillboardBGPalette1, Bank(KrabbyBillboardBGPalette1) - dwb KinglerBillboardBGPalette1, Bank(KinglerBillboardBGPalette1) - dwb VoltorbBillboardBGPalette1, Bank(VoltorbBillboardBGPalette1) - dwb ElectrodeBillboardBGPalette1, Bank(ElectrodeBillboardBGPalette1) - dwb ExeggcuteBillboardBGPalette1, Bank(ExeggcuteBillboardBGPalette1) - dwb ExeggutorBillboardBGPalette1, Bank(ExeggutorBillboardBGPalette1) - dwb CuboneBillboardBGPalette1, Bank(CuboneBillboardBGPalette1) - dwb MarowakBillboardBGPalette1, Bank(MarowakBillboardBGPalette1) - dwb HitmonleeBillboardBGPalette1, Bank(HitmonleeBillboardBGPalette1) - dwb HitmonchanBillboardBGPalette1, Bank(HitmonchanBillboardBGPalette1) - dwb LickitungBillboardBGPalette1, Bank(LickitungBillboardBGPalette1) - dwb KoffingBillboardBGPalette1, Bank(KoffingBillboardBGPalette1) - dwb WeezingBillboardBGPalette1, Bank(WeezingBillboardBGPalette1) - dwb RhyhornBillboardBGPalette1, Bank(RhyhornBillboardBGPalette1) - dwb RhydonBillboardBGPalette1, Bank(RhydonBillboardBGPalette1) - dwb ChanseyBillboardBGPalette1, Bank(ChanseyBillboardBGPalette1) - dwb TangelaBillboardBGPalette1, Bank(TangelaBillboardBGPalette1) - dwb KangaskhanBillboardBGPalette1, Bank(KangaskhanBillboardBGPalette1) - dwb HorseaBillboardBGPalette1, Bank(HorseaBillboardBGPalette1) - dwb SeadraBillboardBGPalette1, Bank(SeadraBillboardBGPalette1) - dwb GoldeenBillboardBGPalette1, Bank(GoldeenBillboardBGPalette1) - dwb SeakingBillboardBGPalette1, Bank(SeakingBillboardBGPalette1) - dwb StaryuBillboardBGPalette1, Bank(StaryuBillboardBGPalette1) - dwb StarmieBillboardBGPalette1, Bank(StarmieBillboardBGPalette1) - dwb MrMimeBillboardBGPalette1, Bank(MrMimeBillboardBGPalette1) - dwb ScytherBillboardBGPalette1, Bank(ScytherBillboardBGPalette1) - dwb JynxBillboardBGPalette1, Bank(JynxBillboardBGPalette1) - dwb ElectabuzzBillboardBGPalette1, Bank(ElectabuzzBillboardBGPalette1) - dwb MagmarBillboardBGPalette1, Bank(MagmarBillboardBGPalette1) - dwb PinsirBillboardBGPalette1, Bank(PinsirBillboardBGPalette1) - dwb TaurosBillboardBGPalette1, Bank(TaurosBillboardBGPalette1) - dwb MagikarpBillboardBGPalette1, Bank(MagikarpBillboardBGPalette1) - dwb GyaradosBillboardBGPalette1, Bank(GyaradosBillboardBGPalette1) - dwb LaprasBillboardBGPalette1, Bank(LaprasBillboardBGPalette1) - dwb DittoBillboardBGPalette1, Bank(DittoBillboardBGPalette1) - dwb EeveeBillboardBGPalette1, Bank(EeveeBillboardBGPalette1) - dwb VaporeonBillboardBGPalette1, Bank(VaporeonBillboardBGPalette1) - dwb JolteonBillboardBGPalette1, Bank(JolteonBillboardBGPalette1) - dwb FlareonBillboardBGPalette1, Bank(FlareonBillboardBGPalette1) - dwb PorygonBillboardBGPalette1, Bank(PorygonBillboardBGPalette1) - dwb OmanyteBillboardBGPalette1, Bank(OmanyteBillboardBGPalette1) - dwb OmastarBillboardBGPalette1, Bank(OmastarBillboardBGPalette1) - dwb KabutoBillboardBGPalette1, Bank(KabutoBillboardBGPalette1) - dwb KabutopsBillboardBGPalette1, Bank(KabutopsBillboardBGPalette1) - dwb AerodactylBillboardBGPalette1, Bank(AerodactylBillboardBGPalette1) - dwb SnorlaxBillboardBGPalette1, Bank(SnorlaxBillboardBGPalette1) - dwb ArticunoBillboardBGPalette1, Bank(ArticunoBillboardBGPalette1) - dwb ZapdosBillboardBGPalette1, Bank(ZapdosBillboardBGPalette1) - dwb MoltresBillboardBGPalette1, Bank(MoltresBillboardBGPalette1) - dwb DratiniBillboardBGPalette1, Bank(DratiniBillboardBGPalette1) - dwb DragonairBillboardBGPalette1, Bank(DragonairBillboardBGPalette1) - dwb DragoniteBillboardBGPalette1, Bank(DragoniteBillboardBGPalette1) - dwb MewtwoBillboardBGPalette1, Bank(MewtwoBillboardBGPalette1) - dwb MewBillboardBGPalette1, Bank(MewBillboardBGPalette1) + dwb BulbasaurBillboardBGPalette1, Bank(BulbasaurBillboardBGPalette1) + dwb IvysaurBillboardBGPalette1, Bank(IvysaurBillboardBGPalette1) + dwb VenusaurBillboardBGPalette1, Bank(VenusaurBillboardBGPalette1) + dwb CharmanderBillboardBGPalette1, Bank(CharmanderBillboardBGPalette1) + dwb CharmeleonBillboardBGPalette1, Bank(CharmeleonBillboardBGPalette1) + dwb CharizardBillboardBGPalette1, Bank(CharizardBillboardBGPalette1) + dwb SquirtleBillboardBGPalette1, Bank(SquirtleBillboardBGPalette1) + dwb WartortleBillboardBGPalette1, Bank(WartortleBillboardBGPalette1) + dwb BlastoiseBillboardBGPalette1, Bank(BlastoiseBillboardBGPalette1) + dwb CaterpieBillboardBGPalette1, Bank(CaterpieBillboardBGPalette1) + dwb MetapodBillboardBGPalette1, Bank(MetapodBillboardBGPalette1) + dwb ButterfreeBillboardBGPalette1, Bank(ButterfreeBillboardBGPalette1) + dwb WeedleBillboardBGPalette1, Bank(WeedleBillboardBGPalette1) + dwb KakunaBillboardBGPalette1, Bank(KakunaBillboardBGPalette1) + dwb BeedrillBillboardBGPalette1, Bank(BeedrillBillboardBGPalette1) + dwb PidgeyBillboardBGPalette1, Bank(PidgeyBillboardBGPalette1) + dwb PidgeottoBillboardBGPalette1, Bank(PidgeottoBillboardBGPalette1) + dwb PidgeotBillboardBGPalette1, Bank(PidgeotBillboardBGPalette1) + dwb RattataBillboardBGPalette1, Bank(RattataBillboardBGPalette1) + dwb RaticateBillboardBGPalette1, Bank(RaticateBillboardBGPalette1) + dwb SpearowBillboardBGPalette1, Bank(SpearowBillboardBGPalette1) + dwb FearowBillboardBGPalette1, Bank(FearowBillboardBGPalette1) + dwb EkansBillboardBGPalette1, Bank(EkansBillboardBGPalette1) + dwb ArbokBillboardBGPalette1, Bank(ArbokBillboardBGPalette1) + dwb PikachuBillboardBGPalette1, Bank(PikachuBillboardBGPalette1) + dwb RaichuBillboardBGPalette1, Bank(RaichuBillboardBGPalette1) + dwb SandshrewBillboardBGPalette1, Bank(SandshrewBillboardBGPalette1) + dwb SandslashBillboardBGPalette1, Bank(SandslashBillboardBGPalette1) + dwb NidoranFBillboardBGPalette1, Bank(NidoranFBillboardBGPalette1) + dwb NidorinaBillboardBGPalette1, Bank(NidorinaBillboardBGPalette1) + dwb NidoqueenBillboardBGPalette1, Bank(NidoqueenBillboardBGPalette1) + dwb NidoranMBillboardBGPalette1, Bank(NidoranMBillboardBGPalette1) + dwb NidorinoBillboardBGPalette1, Bank(NidorinoBillboardBGPalette1) + dwb NidokingBillboardBGPalette1, Bank(NidokingBillboardBGPalette1) + dwb ClefairyBillboardBGPalette1, Bank(ClefairyBillboardBGPalette1) + dwb ClefableBillboardBGPalette1, Bank(ClefableBillboardBGPalette1) + dwb VulpixBillboardBGPalette1, Bank(VulpixBillboardBGPalette1) + dwb NinetalesBillboardBGPalette1, Bank(NinetalesBillboardBGPalette1) + dwb JigglypuffBillboardBGPalette1, Bank(JigglypuffBillboardBGPalette1) + dwb WigglytuffBillboardBGPalette1, Bank(WigglytuffBillboardBGPalette1) + dwb ZubatBillboardBGPalette1, Bank(ZubatBillboardBGPalette1) + dwb GolbatBillboardBGPalette1, Bank(GolbatBillboardBGPalette1) + dwb OddishBillboardBGPalette1, Bank(OddishBillboardBGPalette1) + dwb GloomBillboardBGPalette1, Bank(GloomBillboardBGPalette1) + dwb VileplumeBillboardBGPalette1, Bank(VileplumeBillboardBGPalette1) + dwb ParasBillboardBGPalette1, Bank(ParasBillboardBGPalette1) + dwb ParasectBillboardBGPalette1, Bank(ParasectBillboardBGPalette1) + dwb VenonatBillboardBGPalette1, Bank(VenonatBillboardBGPalette1) + dwb VenomothBillboardBGPalette1, Bank(VenomothBillboardBGPalette1) + dwb DiglettBillboardBGPalette1, Bank(DiglettBillboardBGPalette1) + dwb DugtrioBillboardBGPalette1, Bank(DugtrioBillboardBGPalette1) + dwb MeowthBillboardBGPalette1, Bank(MeowthBillboardBGPalette1) + dwb PersianBillboardBGPalette1, Bank(PersianBillboardBGPalette1) + dwb PsyduckBillboardBGPalette1, Bank(PsyduckBillboardBGPalette1) + dwb GolduckBillboardBGPalette1, Bank(GolduckBillboardBGPalette1) + dwb MankeyBillboardBGPalette1, Bank(MankeyBillboardBGPalette1) + dwb PrimeapeBillboardBGPalette1, Bank(PrimeapeBillboardBGPalette1) + dwb GrowlitheBillboardBGPalette1, Bank(GrowlitheBillboardBGPalette1) + dwb ArcanineBillboardBGPalette1, Bank(ArcanineBillboardBGPalette1) + dwb PoliwagBillboardBGPalette1, Bank(PoliwagBillboardBGPalette1) + dwb PoliwhirlBillboardBGPalette1, Bank(PoliwhirlBillboardBGPalette1) + dwb PoliwrathBillboardBGPalette1, Bank(PoliwrathBillboardBGPalette1) + dwb AbraBillboardBGPalette1, Bank(AbraBillboardBGPalette1) + dwb KadabraBillboardBGPalette1, Bank(KadabraBillboardBGPalette1) + dwb AlakazamBillboardBGPalette1, Bank(AlakazamBillboardBGPalette1) + dwb MachopBillboardBGPalette1, Bank(MachopBillboardBGPalette1) + dwb MachokeBillboardBGPalette1, Bank(MachokeBillboardBGPalette1) + dwb MachampBillboardBGPalette1, Bank(MachampBillboardBGPalette1) + dwb BellsproutBillboardBGPalette1, Bank(BellsproutBillboardBGPalette1) + dwb WeepinbellBillboardBGPalette1, Bank(WeepinbellBillboardBGPalette1) + dwb VictreebellBillboardBGPalette1, Bank(VictreebellBillboardBGPalette1) + dwb TentacoolBillboardBGPalette1, Bank(TentacoolBillboardBGPalette1) + dwb TentacruelBillboardBGPalette1, Bank(TentacruelBillboardBGPalette1) + dwb GeodudeBillboardBGPalette1, Bank(GeodudeBillboardBGPalette1) + dwb GravelerBillboardBGPalette1, Bank(GravelerBillboardBGPalette1) + dwb GolemBillboardBGPalette1, Bank(GolemBillboardBGPalette1) + dwb PonytaBillboardBGPalette1, Bank(PonytaBillboardBGPalette1) + dwb RapidashBillboardBGPalette1, Bank(RapidashBillboardBGPalette1) + dwb SlowpokeBillboardBGPalette1, Bank(SlowpokeBillboardBGPalette1) + dwb SlowbroBillboardBGPalette1, Bank(SlowbroBillboardBGPalette1) + dwb MagnemiteBillboardBGPalette1, Bank(MagnemiteBillboardBGPalette1) + dwb MagnetonBillboardBGPalette1, Bank(MagnetonBillboardBGPalette1) + dwb FarfetchdBillboardBGPalette1, Bank(FarfetchdBillboardBGPalette1) + dwb DoduoBillboardBGPalette1, Bank(DoduoBillboardBGPalette1) + dwb DodrioBillboardBGPalette1, Bank(DodrioBillboardBGPalette1) + dwb SeelBillboardBGPalette1, Bank(SeelBillboardBGPalette1) + dwb DewgongBillboardBGPalette1, Bank(DewgongBillboardBGPalette1) + dwb GrimerBillboardBGPalette1, Bank(GrimerBillboardBGPalette1) + dwb MukBillboardBGPalette1, Bank(MukBillboardBGPalette1) + dwb ShellderBillboardBGPalette1, Bank(ShellderBillboardBGPalette1) + dwb CloysterBillboardBGPalette1, Bank(CloysterBillboardBGPalette1) + dwb GastlyBillboardBGPalette1, Bank(GastlyBillboardBGPalette1) + dwb HaunterBillboardBGPalette1, Bank(HaunterBillboardBGPalette1) + dwb GengarBillboardBGPalette1, Bank(GengarBillboardBGPalette1) + dwb OnixBillboardBGPalette1, Bank(OnixBillboardBGPalette1) + dwb DrowzeeBillboardBGPalette1, Bank(DrowzeeBillboardBGPalette1) + dwb HypnoBillboardBGPalette1, Bank(HypnoBillboardBGPalette1) + dwb KrabbyBillboardBGPalette1, Bank(KrabbyBillboardBGPalette1) + dwb KinglerBillboardBGPalette1, Bank(KinglerBillboardBGPalette1) + dwb VoltorbBillboardBGPalette1, Bank(VoltorbBillboardBGPalette1) + dwb ElectrodeBillboardBGPalette1, Bank(ElectrodeBillboardBGPalette1) + dwb ExeggcuteBillboardBGPalette1, Bank(ExeggcuteBillboardBGPalette1) + dwb ExeggutorBillboardBGPalette1, Bank(ExeggutorBillboardBGPalette1) + dwb CuboneBillboardBGPalette1, Bank(CuboneBillboardBGPalette1) + dwb MarowakBillboardBGPalette1, Bank(MarowakBillboardBGPalette1) + dwb HitmonleeBillboardBGPalette1, Bank(HitmonleeBillboardBGPalette1) + dwb HitmonchanBillboardBGPalette1, Bank(HitmonchanBillboardBGPalette1) + dwb LickitungBillboardBGPalette1, Bank(LickitungBillboardBGPalette1) + dwb KoffingBillboardBGPalette1, Bank(KoffingBillboardBGPalette1) + dwb WeezingBillboardBGPalette1, Bank(WeezingBillboardBGPalette1) + dwb RhyhornBillboardBGPalette1, Bank(RhyhornBillboardBGPalette1) + dwb RhydonBillboardBGPalette1, Bank(RhydonBillboardBGPalette1) + dwb ChanseyBillboardBGPalette1, Bank(ChanseyBillboardBGPalette1) + dwb TangelaBillboardBGPalette1, Bank(TangelaBillboardBGPalette1) + dwb KangaskhanBillboardBGPalette1, Bank(KangaskhanBillboardBGPalette1) + dwb HorseaBillboardBGPalette1, Bank(HorseaBillboardBGPalette1) + dwb SeadraBillboardBGPalette1, Bank(SeadraBillboardBGPalette1) + dwb GoldeenBillboardBGPalette1, Bank(GoldeenBillboardBGPalette1) + dwb SeakingBillboardBGPalette1, Bank(SeakingBillboardBGPalette1) + dwb StaryuBillboardBGPalette1, Bank(StaryuBillboardBGPalette1) + dwb StarmieBillboardBGPalette1, Bank(StarmieBillboardBGPalette1) + dwb MrMimeBillboardBGPalette1, Bank(MrMimeBillboardBGPalette1) + dwb ScytherBillboardBGPalette1, Bank(ScytherBillboardBGPalette1) + dwb JynxBillboardBGPalette1, Bank(JynxBillboardBGPalette1) + dwb ElectabuzzBillboardBGPalette1, Bank(ElectabuzzBillboardBGPalette1) + dwb MagmarBillboardBGPalette1, Bank(MagmarBillboardBGPalette1) + dwb PinsirBillboardBGPalette1, Bank(PinsirBillboardBGPalette1) + dwb TaurosBillboardBGPalette1, Bank(TaurosBillboardBGPalette1) + dwb MagikarpBillboardBGPalette1, Bank(MagikarpBillboardBGPalette1) + dwb GyaradosBillboardBGPalette1, Bank(GyaradosBillboardBGPalette1) + dwb LaprasBillboardBGPalette1, Bank(LaprasBillboardBGPalette1) + dwb DittoBillboardBGPalette1, Bank(DittoBillboardBGPalette1) + dwb EeveeBillboardBGPalette1, Bank(EeveeBillboardBGPalette1) + dwb VaporeonBillboardBGPalette1, Bank(VaporeonBillboardBGPalette1) + dwb JolteonBillboardBGPalette1, Bank(JolteonBillboardBGPalette1) + dwb FlareonBillboardBGPalette1, Bank(FlareonBillboardBGPalette1) + dwb PorygonBillboardBGPalette1, Bank(PorygonBillboardBGPalette1) + dwb OmanyteBillboardBGPalette1, Bank(OmanyteBillboardBGPalette1) + dwb OmastarBillboardBGPalette1, Bank(OmastarBillboardBGPalette1) + dwb KabutoBillboardBGPalette1, Bank(KabutoBillboardBGPalette1) + dwb KabutopsBillboardBGPalette1, Bank(KabutopsBillboardBGPalette1) + dwb AerodactylBillboardBGPalette1, Bank(AerodactylBillboardBGPalette1) + dwb SnorlaxBillboardBGPalette1, Bank(SnorlaxBillboardBGPalette1) + dwb ArticunoBillboardBGPalette1, Bank(ArticunoBillboardBGPalette1) + dwb ZapdosBillboardBGPalette1, Bank(ZapdosBillboardBGPalette1) + dwb MoltresBillboardBGPalette1, Bank(MoltresBillboardBGPalette1) + dwb DratiniBillboardBGPalette1, Bank(DratiniBillboardBGPalette1) + dwb DragonairBillboardBGPalette1, Bank(DragonairBillboardBGPalette1) + dwb DragoniteBillboardBGPalette1, Bank(DragoniteBillboardBGPalette1) + dwb MewtwoBillboardBGPalette1, Bank(MewtwoBillboardBGPalette1) + dwb MewBillboardBGPalette1, Bank(MewBillboardBGPalette1) MonAnimatedPalettePointers: ; 0x1309f - dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1) - dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1) - dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1) - dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1) - dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1) - dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1) - dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1) - dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1) - dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1) - dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1) - dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1) - dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1) - dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1) - dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1) - dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1) - dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1) - dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1) - dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1) - dwb RattataAnimatedObjPalette1, Bank(RattataAnimatedObjPalette1) - dwb RattataAnimatedObjPalette1, Bank(RattataAnimatedObjPalette1) - dwb SpearowAnimatedObjPalette1, Bank(SpearowAnimatedObjPalette1) - dwb SpearowAnimatedObjPalette1, Bank(SpearowAnimatedObjPalette1) - dwb EkansAnimatedObjPalette1, Bank(EkansAnimatedObjPalette1) - dwb EkansAnimatedObjPalette1, Bank(EkansAnimatedObjPalette1) - dwb PikachuAnimatedObjPalette1, Bank(PikachuAnimatedObjPalette1) - dwb PikachuAnimatedObjPalette1, Bank(PikachuAnimatedObjPalette1) - dwb SandshrewAnimatedObjPalette1, Bank(SandshrewAnimatedObjPalette1) - dwb SandshrewAnimatedObjPalette1, Bank(SandshrewAnimatedObjPalette1) - dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1) - dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1) - dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1) - dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1) - dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1) - dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1) - dwb ClefairyAnimatedObjPalette1, Bank(ClefairyAnimatedObjPalette1) - dwb ClefairyAnimatedObjPalette1, Bank(ClefairyAnimatedObjPalette1) - dwb VulpixAnimatedObjPalette1, Bank(VulpixAnimatedObjPalette1) - dwb VulpixAnimatedObjPalette1, Bank(VulpixAnimatedObjPalette1) - dwb JigglypuffAnimatedObjPalette1, Bank(JigglypuffAnimatedObjPalette1) - dwb JigglypuffAnimatedObjPalette1, Bank(JigglypuffAnimatedObjPalette1) - dwb ZubatAnimatedObjPalette1, Bank(ZubatAnimatedObjPalette1) - dwb ZubatAnimatedObjPalette1, Bank(ZubatAnimatedObjPalette1) - dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1) - dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1) - dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1) - dwb ParasAnimatedObjPalette1, Bank(ParasAnimatedObjPalette1) - dwb ParasAnimatedObjPalette1, Bank(ParasAnimatedObjPalette1) - dwb VenonatAnimatedObjPalette1, Bank(VenonatAnimatedObjPalette1) - dwb VenonatAnimatedObjPalette1, Bank(VenonatAnimatedObjPalette1) - dwb DiglettAnimatedObjPalette1, Bank(DiglettAnimatedObjPalette1) - dwb DiglettAnimatedObjPalette1, Bank(DiglettAnimatedObjPalette1) - dwb MeowthAnimatedObjPalette1, Bank(MeowthAnimatedObjPalette1) - dwb MeowthAnimatedObjPalette1, Bank(MeowthAnimatedObjPalette1) - dwb PsyduckAnimatedObjPalette1, Bank(PsyduckAnimatedObjPalette1) - dwb PsyduckAnimatedObjPalette1, Bank(PsyduckAnimatedObjPalette1) - dwb MankeyAnimatedObjPalette1, Bank(MankeyAnimatedObjPalette1) - dwb MankeyAnimatedObjPalette1, Bank(MankeyAnimatedObjPalette1) - dwb GrowlitheAnimatedObjPalette1, Bank(GrowlitheAnimatedObjPalette1) - dwb GrowlitheAnimatedObjPalette1, Bank(GrowlitheAnimatedObjPalette1) - dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1) - dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1) - dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1) - dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1) - dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1) - dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1) - dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1) - dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1) - dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1) - dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1) - dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1) - dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1) - dwb TentacoolAnimatedObjPalette1, Bank(TentacoolAnimatedObjPalette1) - dwb TentacoolAnimatedObjPalette1, Bank(TentacoolAnimatedObjPalette1) - dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1) - dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1) - dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1) - dwb PonytaAnimatedObjPalette1, Bank(PonytaAnimatedObjPalette1) - dwb PonytaAnimatedObjPalette1, Bank(PonytaAnimatedObjPalette1) - dwb SlowpokeAnimatedObjPalette1, Bank(SlowpokeAnimatedObjPalette1) - dwb SlowpokeAnimatedObjPalette1, Bank(SlowpokeAnimatedObjPalette1) - dwb MagnemiteAnimatedObjPalette1, Bank(MagnemiteAnimatedObjPalette1) - dwb MagnemiteAnimatedObjPalette1, Bank(MagnemiteAnimatedObjPalette1) - dwb FarfetchdAnimatedObjPalette1, Bank(FarfetchdAnimatedObjPalette1) - dwb DoduoAnimatedObjPalette1, Bank(DoduoAnimatedObjPalette1) - dwb DoduoAnimatedObjPalette1, Bank(DoduoAnimatedObjPalette1) - dwb SeelAnimatedObjPalette1, Bank(SeelAnimatedObjPalette1) - dwb SeelAnimatedObjPalette1, Bank(SeelAnimatedObjPalette1) - dwb GrimerAnimatedObjPalette1, Bank(GrimerAnimatedObjPalette1) - dwb GrimerAnimatedObjPalette1, Bank(GrimerAnimatedObjPalette1) - dwb ShellderAnimatedObjPalette1, Bank(ShellderAnimatedObjPalette1) - dwb ShellderAnimatedObjPalette1, Bank(ShellderAnimatedObjPalette1) - dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1) - dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1) - dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1) - dwb OnixAnimatedObjPalette1, Bank(OnixAnimatedObjPalette1) - dwb DrowzeeAnimatedObjPalette1, Bank(DrowzeeAnimatedObjPalette1) - dwb DrowzeeAnimatedObjPalette1, Bank(DrowzeeAnimatedObjPalette1) - dwb KrabbyAnimatedObjPalette1, Bank(KrabbyAnimatedObjPalette1) - dwb KrabbyAnimatedObjPalette1, Bank(KrabbyAnimatedObjPalette1) - dwb VoltorbAnimatedObjPalette1, Bank(VoltorbAnimatedObjPalette1) - dwb VoltorbAnimatedObjPalette1, Bank(VoltorbAnimatedObjPalette1) - dwb ExeggcuteAnimatedObjPalette1, Bank(ExeggcuteAnimatedObjPalette1) - dwb ExeggcuteAnimatedObjPalette1, Bank(ExeggcuteAnimatedObjPalette1) - dwb CuboneAnimatedObjPalette1, Bank(CuboneAnimatedObjPalette1) - dwb CuboneAnimatedObjPalette1, Bank(CuboneAnimatedObjPalette1) - dwb HitmonleeAnimatedObjPalette1, Bank(HitmonleeAnimatedObjPalette1) - dwb HitmonchanAnimatedObjPalette1, Bank(HitmonchanAnimatedObjPalette1) - dwb LickitungAnimatedObjPalette1, Bank(LickitungAnimatedObjPalette1) - dwb KoffingAnimatedObjPalette1, Bank(KoffingAnimatedObjPalette1) - dwb KoffingAnimatedObjPalette1, Bank(KoffingAnimatedObjPalette1) - dwb RhyhornAnimatedObjPalette1, Bank(RhyhornAnimatedObjPalette1) - dwb RhyhornAnimatedObjPalette1, Bank(RhyhornAnimatedObjPalette1) - dwb ChanseyAnimatedObjPalette1, Bank(ChanseyAnimatedObjPalette1) - dwb TangelaAnimatedObjPalette1, Bank(TangelaAnimatedObjPalette1) - dwb KangaskhanAnimatedObjPalette1, Bank(KangaskhanAnimatedObjPalette1) - dwb HorseaAnimatedObjPalette1, Bank(HorseaAnimatedObjPalette1) - dwb HorseaAnimatedObjPalette1, Bank(HorseaAnimatedObjPalette1) - dwb GoldeenAnimatedObjPalette1, Bank(GoldeenAnimatedObjPalette1) - dwb GoldeenAnimatedObjPalette1, Bank(GoldeenAnimatedObjPalette1) - dwb StaryuAnimatedObjPalette1, Bank(StaryuAnimatedObjPalette1) - dwb StaryuAnimatedObjPalette1, Bank(StaryuAnimatedObjPalette1) - dwb MrMimeAnimatedObjPalette1, Bank(MrMimeAnimatedObjPalette1) - dwb ScytherAnimatedObjPalette1, Bank(ScytherAnimatedObjPalette1) - dwb JynxAnimatedObjPalette1, Bank(JynxAnimatedObjPalette1) - dwb ElectabuzzAnimatedObjPalette1, Bank(ElectabuzzAnimatedObjPalette1) - dwb MagmarAnimatedObjPalette1, Bank(MagmarAnimatedObjPalette1) - dwb PinsirAnimatedObjPalette1, Bank(PinsirAnimatedObjPalette1) - dwb TaurosAnimatedObjPalette1, Bank(TaurosAnimatedObjPalette1) - dwb MagikarpAnimatedObjPalette1, Bank(MagikarpAnimatedObjPalette1) - dwb MagikarpAnimatedObjPalette1, Bank(MagikarpAnimatedObjPalette1) - dwb LaprasAnimatedObjPalette1, Bank(LaprasAnimatedObjPalette1) - dwb DittoAnimatedObjPalette1, Bank(DittoAnimatedObjPalette1) - dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) - dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) - dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) - dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) - dwb PorygonAnimatedObjPalette1, Bank(PorygonAnimatedObjPalette1) - dwb OmanyteAnimatedObjPalette1, Bank(OmanyteAnimatedObjPalette1) - dwb OmanyteAnimatedObjPalette1, Bank(OmanyteAnimatedObjPalette1) - dwb KabutoAnimatedObjPalette1, Bank(KabutoAnimatedObjPalette1) - dwb KabutoAnimatedObjPalette1, Bank(KabutoAnimatedObjPalette1) - dwb AerodactylAnimatedObjPalette1, Bank(AerodactylAnimatedObjPalette1) - dwb SnorlaxAnimatedObjPalette1, Bank(SnorlaxAnimatedObjPalette1) - dwb ArticunoAnimatedObjPalette1, Bank(ArticunoAnimatedObjPalette1) - dwb ZapdosAnimatedObjPalette1, Bank(ZapdosAnimatedObjPalette1) - dwb MoltresAnimatedObjPalette1, Bank(MoltresAnimatedObjPalette1) - dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1) - dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1) - dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1) - dwb MewtwoAnimatedObjPalette1, Bank(MewtwoAnimatedObjPalette1) - dwb MewAnimatedObjPalette1, Bank(MewAnimatedObjPalette1) + dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1) + dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1) + dwb BulbasaurAnimatedObjPalette1, Bank(BulbasaurAnimatedObjPalette1) + dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1) + dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1) + dwb CharmanderAnimatedObjPalette1, Bank(CharmanderAnimatedObjPalette1) + dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1) + dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1) + dwb SquirtleAnimatedObjPalette1, Bank(SquirtleAnimatedObjPalette1) + dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1) + dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1) + dwb CaterpieAnimatedObjPalette1, Bank(CaterpieAnimatedObjPalette1) + dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1) + dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1) + dwb WeedleAnimatedObjPalette1, Bank(WeedleAnimatedObjPalette1) + dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1) + dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1) + dwb PidgeyAnimatedObjPalette1, Bank(PidgeyAnimatedObjPalette1) + dwb RattataAnimatedObjPalette1, Bank(RattataAnimatedObjPalette1) + dwb RattataAnimatedObjPalette1, Bank(RattataAnimatedObjPalette1) + dwb SpearowAnimatedObjPalette1, Bank(SpearowAnimatedObjPalette1) + dwb SpearowAnimatedObjPalette1, Bank(SpearowAnimatedObjPalette1) + dwb EkansAnimatedObjPalette1, Bank(EkansAnimatedObjPalette1) + dwb EkansAnimatedObjPalette1, Bank(EkansAnimatedObjPalette1) + dwb PikachuAnimatedObjPalette1, Bank(PikachuAnimatedObjPalette1) + dwb PikachuAnimatedObjPalette1, Bank(PikachuAnimatedObjPalette1) + dwb SandshrewAnimatedObjPalette1, Bank(SandshrewAnimatedObjPalette1) + dwb SandshrewAnimatedObjPalette1, Bank(SandshrewAnimatedObjPalette1) + dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1) + dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1) + dwb NidoranFAnimatedObjPalette1, Bank(NidoranFAnimatedObjPalette1) + dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1) + dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1) + dwb NidoranMAnimatedObjPalette1, Bank(NidoranMAnimatedObjPalette1) + dwb ClefairyAnimatedObjPalette1, Bank(ClefairyAnimatedObjPalette1) + dwb ClefairyAnimatedObjPalette1, Bank(ClefairyAnimatedObjPalette1) + dwb VulpixAnimatedObjPalette1, Bank(VulpixAnimatedObjPalette1) + dwb VulpixAnimatedObjPalette1, Bank(VulpixAnimatedObjPalette1) + dwb JigglypuffAnimatedObjPalette1, Bank(JigglypuffAnimatedObjPalette1) + dwb JigglypuffAnimatedObjPalette1, Bank(JigglypuffAnimatedObjPalette1) + dwb ZubatAnimatedObjPalette1, Bank(ZubatAnimatedObjPalette1) + dwb ZubatAnimatedObjPalette1, Bank(ZubatAnimatedObjPalette1) + dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1) + dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1) + dwb OddishAnimatedObjPalette1, Bank(OddishAnimatedObjPalette1) + dwb ParasAnimatedObjPalette1, Bank(ParasAnimatedObjPalette1) + dwb ParasAnimatedObjPalette1, Bank(ParasAnimatedObjPalette1) + dwb VenonatAnimatedObjPalette1, Bank(VenonatAnimatedObjPalette1) + dwb VenonatAnimatedObjPalette1, Bank(VenonatAnimatedObjPalette1) + dwb DiglettAnimatedObjPalette1, Bank(DiglettAnimatedObjPalette1) + dwb DiglettAnimatedObjPalette1, Bank(DiglettAnimatedObjPalette1) + dwb MeowthAnimatedObjPalette1, Bank(MeowthAnimatedObjPalette1) + dwb MeowthAnimatedObjPalette1, Bank(MeowthAnimatedObjPalette1) + dwb PsyduckAnimatedObjPalette1, Bank(PsyduckAnimatedObjPalette1) + dwb PsyduckAnimatedObjPalette1, Bank(PsyduckAnimatedObjPalette1) + dwb MankeyAnimatedObjPalette1, Bank(MankeyAnimatedObjPalette1) + dwb MankeyAnimatedObjPalette1, Bank(MankeyAnimatedObjPalette1) + dwb GrowlitheAnimatedObjPalette1, Bank(GrowlitheAnimatedObjPalette1) + dwb GrowlitheAnimatedObjPalette1, Bank(GrowlitheAnimatedObjPalette1) + dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1) + dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1) + dwb PoliwagAnimatedObjPalette1, Bank(PoliwagAnimatedObjPalette1) + dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1) + dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1) + dwb AbraAnimatedObjPalette1, Bank(AbraAnimatedObjPalette1) + dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1) + dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1) + dwb MachopAnimatedObjPalette1, Bank(MachopAnimatedObjPalette1) + dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1) + dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1) + dwb BellsproutAnimatedObjPalette1, Bank(BellsproutAnimatedObjPalette1) + dwb TentacoolAnimatedObjPalette1, Bank(TentacoolAnimatedObjPalette1) + dwb TentacoolAnimatedObjPalette1, Bank(TentacoolAnimatedObjPalette1) + dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1) + dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1) + dwb GeodudeAnimatedObjPalette1, Bank(GeodudeAnimatedObjPalette1) + dwb PonytaAnimatedObjPalette1, Bank(PonytaAnimatedObjPalette1) + dwb PonytaAnimatedObjPalette1, Bank(PonytaAnimatedObjPalette1) + dwb SlowpokeAnimatedObjPalette1, Bank(SlowpokeAnimatedObjPalette1) + dwb SlowpokeAnimatedObjPalette1, Bank(SlowpokeAnimatedObjPalette1) + dwb MagnemiteAnimatedObjPalette1, Bank(MagnemiteAnimatedObjPalette1) + dwb MagnemiteAnimatedObjPalette1, Bank(MagnemiteAnimatedObjPalette1) + dwb FarfetchdAnimatedObjPalette1, Bank(FarfetchdAnimatedObjPalette1) + dwb DoduoAnimatedObjPalette1, Bank(DoduoAnimatedObjPalette1) + dwb DoduoAnimatedObjPalette1, Bank(DoduoAnimatedObjPalette1) + dwb SeelAnimatedObjPalette1, Bank(SeelAnimatedObjPalette1) + dwb SeelAnimatedObjPalette1, Bank(SeelAnimatedObjPalette1) + dwb GrimerAnimatedObjPalette1, Bank(GrimerAnimatedObjPalette1) + dwb GrimerAnimatedObjPalette1, Bank(GrimerAnimatedObjPalette1) + dwb ShellderAnimatedObjPalette1, Bank(ShellderAnimatedObjPalette1) + dwb ShellderAnimatedObjPalette1, Bank(ShellderAnimatedObjPalette1) + dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1) + dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1) + dwb GastlyAnimatedObjPalette1, Bank(GastlyAnimatedObjPalette1) + dwb OnixAnimatedObjPalette1, Bank(OnixAnimatedObjPalette1) + dwb DrowzeeAnimatedObjPalette1, Bank(DrowzeeAnimatedObjPalette1) + dwb DrowzeeAnimatedObjPalette1, Bank(DrowzeeAnimatedObjPalette1) + dwb KrabbyAnimatedObjPalette1, Bank(KrabbyAnimatedObjPalette1) + dwb KrabbyAnimatedObjPalette1, Bank(KrabbyAnimatedObjPalette1) + dwb VoltorbAnimatedObjPalette1, Bank(VoltorbAnimatedObjPalette1) + dwb VoltorbAnimatedObjPalette1, Bank(VoltorbAnimatedObjPalette1) + dwb ExeggcuteAnimatedObjPalette1, Bank(ExeggcuteAnimatedObjPalette1) + dwb ExeggcuteAnimatedObjPalette1, Bank(ExeggcuteAnimatedObjPalette1) + dwb CuboneAnimatedObjPalette1, Bank(CuboneAnimatedObjPalette1) + dwb CuboneAnimatedObjPalette1, Bank(CuboneAnimatedObjPalette1) + dwb HitmonleeAnimatedObjPalette1, Bank(HitmonleeAnimatedObjPalette1) + dwb HitmonchanAnimatedObjPalette1, Bank(HitmonchanAnimatedObjPalette1) + dwb LickitungAnimatedObjPalette1, Bank(LickitungAnimatedObjPalette1) + dwb KoffingAnimatedObjPalette1, Bank(KoffingAnimatedObjPalette1) + dwb KoffingAnimatedObjPalette1, Bank(KoffingAnimatedObjPalette1) + dwb RhyhornAnimatedObjPalette1, Bank(RhyhornAnimatedObjPalette1) + dwb RhyhornAnimatedObjPalette1, Bank(RhyhornAnimatedObjPalette1) + dwb ChanseyAnimatedObjPalette1, Bank(ChanseyAnimatedObjPalette1) + dwb TangelaAnimatedObjPalette1, Bank(TangelaAnimatedObjPalette1) + dwb KangaskhanAnimatedObjPalette1, Bank(KangaskhanAnimatedObjPalette1) + dwb HorseaAnimatedObjPalette1, Bank(HorseaAnimatedObjPalette1) + dwb HorseaAnimatedObjPalette1, Bank(HorseaAnimatedObjPalette1) + dwb GoldeenAnimatedObjPalette1, Bank(GoldeenAnimatedObjPalette1) + dwb GoldeenAnimatedObjPalette1, Bank(GoldeenAnimatedObjPalette1) + dwb StaryuAnimatedObjPalette1, Bank(StaryuAnimatedObjPalette1) + dwb StaryuAnimatedObjPalette1, Bank(StaryuAnimatedObjPalette1) + dwb MrMimeAnimatedObjPalette1, Bank(MrMimeAnimatedObjPalette1) + dwb ScytherAnimatedObjPalette1, Bank(ScytherAnimatedObjPalette1) + dwb JynxAnimatedObjPalette1, Bank(JynxAnimatedObjPalette1) + dwb ElectabuzzAnimatedObjPalette1, Bank(ElectabuzzAnimatedObjPalette1) + dwb MagmarAnimatedObjPalette1, Bank(MagmarAnimatedObjPalette1) + dwb PinsirAnimatedObjPalette1, Bank(PinsirAnimatedObjPalette1) + dwb TaurosAnimatedObjPalette1, Bank(TaurosAnimatedObjPalette1) + dwb MagikarpAnimatedObjPalette1, Bank(MagikarpAnimatedObjPalette1) + dwb MagikarpAnimatedObjPalette1, Bank(MagikarpAnimatedObjPalette1) + dwb LaprasAnimatedObjPalette1, Bank(LaprasAnimatedObjPalette1) + dwb DittoAnimatedObjPalette1, Bank(DittoAnimatedObjPalette1) + dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) + dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) + dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) + dwb EeveeAnimatedObjPalette1, Bank(EeveeAnimatedObjPalette1) + dwb PorygonAnimatedObjPalette1, Bank(PorygonAnimatedObjPalette1) + dwb OmanyteAnimatedObjPalette1, Bank(OmanyteAnimatedObjPalette1) + dwb OmanyteAnimatedObjPalette1, Bank(OmanyteAnimatedObjPalette1) + dwb KabutoAnimatedObjPalette1, Bank(KabutoAnimatedObjPalette1) + dwb KabutoAnimatedObjPalette1, Bank(KabutoAnimatedObjPalette1) + dwb AerodactylAnimatedObjPalette1, Bank(AerodactylAnimatedObjPalette1) + dwb SnorlaxAnimatedObjPalette1, Bank(SnorlaxAnimatedObjPalette1) + dwb ArticunoAnimatedObjPalette1, Bank(ArticunoAnimatedObjPalette1) + dwb ZapdosAnimatedObjPalette1, Bank(ZapdosAnimatedObjPalette1) + dwb MoltresAnimatedObjPalette1, Bank(MoltresAnimatedObjPalette1) + dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1) + dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1) + dwb DratiniAnimatedObjPalette1, Bank(DratiniAnimatedObjPalette1) + dwb MewtwoAnimatedObjPalette1, Bank(MewtwoAnimatedObjPalette1) + dwb MewAnimatedObjPalette1, Bank(MewAnimatedObjPalette1) MonAnimatedPicPointers: ; 0x13264 - dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic) - dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic) - dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic) - dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic) - dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic) - dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic) - dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic) - dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic) - dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic) - dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic) - dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic) - dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic) - dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic) - dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic) - dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic) - dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic) - dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic) - dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic) - dwb RattataAnimatedPic, Bank(RattataAnimatedPic) - dwb RattataAnimatedPic, Bank(RattataAnimatedPic) - dwb SpearowAnimatedPic, Bank(SpearowAnimatedPic) - dwb SpearowAnimatedPic, Bank(SpearowAnimatedPic) - dwb EkansAnimatedPic, Bank(EkansAnimatedPic) - dwb EkansAnimatedPic, Bank(EkansAnimatedPic) - dwb PikachuAnimatedPic, Bank(PikachuAnimatedPic) - dwb PikachuAnimatedPic, Bank(PikachuAnimatedPic) - dwb SandshrewAnimatedPic, Bank(SandshrewAnimatedPic) - dwb SandshrewAnimatedPic, Bank(SandshrewAnimatedPic) - dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic) - dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic) - dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic) - dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic) - dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic) - dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic) - dwb ClefairyAnimatedPic, Bank(ClefairyAnimatedPic) - dwb ClefairyAnimatedPic, Bank(ClefairyAnimatedPic) - dwb VulpixAnimatedPic, Bank(VulpixAnimatedPic) - dwb VulpixAnimatedPic, Bank(VulpixAnimatedPic) - dwb JigglypuffAnimatedPic, Bank(JigglypuffAnimatedPic) - dwb JigglypuffAnimatedPic, Bank(JigglypuffAnimatedPic) - dwb ZubatAnimatedPic, Bank(ZubatAnimatedPic) - dwb ZubatAnimatedPic, Bank(ZubatAnimatedPic) - dwb OddishAnimatedPic, Bank(OddishAnimatedPic) - dwb OddishAnimatedPic, Bank(OddishAnimatedPic) - dwb OddishAnimatedPic, Bank(OddishAnimatedPic) - dwb ParasAnimatedPic, Bank(ParasAnimatedPic) - dwb ParasAnimatedPic, Bank(ParasAnimatedPic) - dwb VenonatAnimatedPic, Bank(VenonatAnimatedPic) - dwb VenonatAnimatedPic, Bank(VenonatAnimatedPic) - dwb DiglettAnimatedPic, Bank(DiglettAnimatedPic) - dwb DiglettAnimatedPic, Bank(DiglettAnimatedPic) - dwb MeowthAnimatedPic, Bank(MeowthAnimatedPic) - dwb MeowthAnimatedPic, Bank(MeowthAnimatedPic) - dwb PsyduckAnimatedPic, Bank(PsyduckAnimatedPic) - dwb PsyduckAnimatedPic, Bank(PsyduckAnimatedPic) - dwb MankeyAnimatedPic, Bank(MankeyAnimatedPic) - dwb MankeyAnimatedPic, Bank(MankeyAnimatedPic) - dwb GrowlitheAnimatedPic, Bank(GrowlitheAnimatedPic) - dwb GrowlitheAnimatedPic, Bank(GrowlitheAnimatedPic) - dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic) - dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic) - dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic) - dwb AbraAnimatedPic, Bank(AbraAnimatedPic) - dwb AbraAnimatedPic, Bank(AbraAnimatedPic) - dwb AbraAnimatedPic, Bank(AbraAnimatedPic) - dwb MachopAnimatedPic, Bank(MachopAnimatedPic) - dwb MachopAnimatedPic, Bank(MachopAnimatedPic) - dwb MachopAnimatedPic, Bank(MachopAnimatedPic) - dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic) - dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic) - dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic) - dwb TentacoolAnimatedPic, Bank(TentacoolAnimatedPic) - dwb TentacoolAnimatedPic, Bank(TentacoolAnimatedPic) - dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic) - dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic) - dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic) - dwb PonytaAnimatedPic, Bank(PonytaAnimatedPic) - dwb PonytaAnimatedPic, Bank(PonytaAnimatedPic) - dwb SlowpokeAnimatedPic, Bank(SlowpokeAnimatedPic) - dwb SlowpokeAnimatedPic, Bank(SlowpokeAnimatedPic) - dwb MagnemiteAnimatedPic, Bank(MagnemiteAnimatedPic) - dwb MagnemiteAnimatedPic, Bank(MagnemiteAnimatedPic) - dwb FarfetchdAnimatedPic, Bank(FarfetchdAnimatedPic) - dwb DoduoAnimatedPic, Bank(DoduoAnimatedPic) - dwb DoduoAnimatedPic, Bank(DoduoAnimatedPic) - dwb SeelAnimatedPic, Bank(SeelAnimatedPic) - dwb SeelAnimatedPic, Bank(SeelAnimatedPic) - dwb GrimerAnimatedPic, Bank(GrimerAnimatedPic) - dwb GrimerAnimatedPic, Bank(GrimerAnimatedPic) - dwb ShellderAnimatedPic, Bank(ShellderAnimatedPic) - dwb ShellderAnimatedPic, Bank(ShellderAnimatedPic) - dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic) - dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic) - dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic) - dwb OnixAnimatedPic, Bank(OnixAnimatedPic) - dwb DrowzeeAnimatedPic, Bank(DrowzeeAnimatedPic) - dwb DrowzeeAnimatedPic, Bank(DrowzeeAnimatedPic) - dwb KrabbyAnimatedPic, Bank(KrabbyAnimatedPic) - dwb KrabbyAnimatedPic, Bank(KrabbyAnimatedPic) - dwb VoltorbAnimatedPic, Bank(VoltorbAnimatedPic) - dwb VoltorbAnimatedPic, Bank(VoltorbAnimatedPic) - dwb ExeggcuteAnimatedPic, Bank(ExeggcuteAnimatedPic) - dwb ExeggcuteAnimatedPic, Bank(ExeggcuteAnimatedPic) - dwb CuboneAnimatedPic, Bank(CuboneAnimatedPic) - dwb CuboneAnimatedPic, Bank(CuboneAnimatedPic) - dwb HitmonleeAnimatedPic, Bank(HitmonleeAnimatedPic) - dwb HitmonchanAnimatedPic, Bank(HitmonchanAnimatedPic) - dwb LickitungAnimatedPic, Bank(LickitungAnimatedPic) - dwb KoffingAnimatedPic, Bank(KoffingAnimatedPic) - dwb KoffingAnimatedPic, Bank(KoffingAnimatedPic) - dwb RhyhornAnimatedPic, Bank(RhyhornAnimatedPic) - dwb RhyhornAnimatedPic, Bank(RhyhornAnimatedPic) - dwb ChanseyAnimatedPic, Bank(ChanseyAnimatedPic) - dwb TangelaAnimatedPic, Bank(TangelaAnimatedPic) - dwb KangaskhanAnimatedPic, Bank(KangaskhanAnimatedPic) - dwb HorseaAnimatedPic, Bank(HorseaAnimatedPic) - dwb HorseaAnimatedPic, Bank(HorseaAnimatedPic) - dwb GoldeenAnimatedPic, Bank(GoldeenAnimatedPic) - dwb GoldeenAnimatedPic, Bank(GoldeenAnimatedPic) - dwb StaryuAnimatedPic, Bank(StaryuAnimatedPic) - dwb StaryuAnimatedPic, Bank(StaryuAnimatedPic) - dwb MrMimeAnimatedPic, Bank(MrMimeAnimatedPic) - dwb ScytherAnimatedPic, Bank(ScytherAnimatedPic) - dwb JynxAnimatedPic, Bank(JynxAnimatedPic) - dwb ElectabuzzAnimatedPic, Bank(ElectabuzzAnimatedPic) - dwb MagmarAnimatedPic, Bank(MagmarAnimatedPic) - dwb PinsirAnimatedPic, Bank(PinsirAnimatedPic) - dwb TaurosAnimatedPic, Bank(TaurosAnimatedPic) - dwb MagikarpAnimatedPic, Bank(MagikarpAnimatedPic) - dwb MagikarpAnimatedPic, Bank(MagikarpAnimatedPic) - dwb LaprasAnimatedPic, Bank(LaprasAnimatedPic) - dwb DittoAnimatedPic, Bank(DittoAnimatedPic) - dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) - dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) - dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) - dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) - dwb PorygonAnimatedPic, Bank(PorygonAnimatedPic) - dwb OmanyteAnimatedPic, Bank(OmanyteAnimatedPic) - dwb OmanyteAnimatedPic, Bank(OmanyteAnimatedPic) - dwb KabutoAnimatedPic, Bank(KabutoAnimatedPic) - dwb KabutoAnimatedPic, Bank(KabutoAnimatedPic) - dwb AerodactylAnimatedPic, Bank(AerodactylAnimatedPic) - dwb SnorlaxAnimatedPic, Bank(SnorlaxAnimatedPic) - dwb ArticunoAnimatedPic, Bank(ArticunoAnimatedPic) - dwb ZapdosAnimatedPic, Bank(ZapdosAnimatedPic) - dwb MoltresAnimatedPic, Bank(MoltresAnimatedPic) - dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic) - dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic) - dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic) - dwb MewtwoAnimatedPic, Bank(MewtwoAnimatedPic) - dwb MewAnimatedPic, Bank(MewAnimatedPic) + dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic) + dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic) + dwb BulbasaurAnimatedPic, Bank(BulbasaurAnimatedPic) + dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic) + dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic) + dwb CharmanderAnimatedPic, Bank(CharmanderAnimatedPic) + dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic) + dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic) + dwb SquirtleAnimatedPic, Bank(SquirtleAnimatedPic) + dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic) + dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic) + dwb CaterpieAnimatedPic, Bank(CaterpieAnimatedPic) + dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic) + dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic) + dwb WeedleAnimatedPic, Bank(WeedleAnimatedPic) + dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic) + dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic) + dwb PidgeyAnimatedPic, Bank(PidgeyAnimatedPic) + dwb RattataAnimatedPic, Bank(RattataAnimatedPic) + dwb RattataAnimatedPic, Bank(RattataAnimatedPic) + dwb SpearowAnimatedPic, Bank(SpearowAnimatedPic) + dwb SpearowAnimatedPic, Bank(SpearowAnimatedPic) + dwb EkansAnimatedPic, Bank(EkansAnimatedPic) + dwb EkansAnimatedPic, Bank(EkansAnimatedPic) + dwb PikachuAnimatedPic, Bank(PikachuAnimatedPic) + dwb PikachuAnimatedPic, Bank(PikachuAnimatedPic) + dwb SandshrewAnimatedPic, Bank(SandshrewAnimatedPic) + dwb SandshrewAnimatedPic, Bank(SandshrewAnimatedPic) + dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic) + dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic) + dwb NidoranFAnimatedPic, Bank(NidoranFAnimatedPic) + dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic) + dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic) + dwb NidoranMAnimatedPic, Bank(NidoranMAnimatedPic) + dwb ClefairyAnimatedPic, Bank(ClefairyAnimatedPic) + dwb ClefairyAnimatedPic, Bank(ClefairyAnimatedPic) + dwb VulpixAnimatedPic, Bank(VulpixAnimatedPic) + dwb VulpixAnimatedPic, Bank(VulpixAnimatedPic) + dwb JigglypuffAnimatedPic, Bank(JigglypuffAnimatedPic) + dwb JigglypuffAnimatedPic, Bank(JigglypuffAnimatedPic) + dwb ZubatAnimatedPic, Bank(ZubatAnimatedPic) + dwb ZubatAnimatedPic, Bank(ZubatAnimatedPic) + dwb OddishAnimatedPic, Bank(OddishAnimatedPic) + dwb OddishAnimatedPic, Bank(OddishAnimatedPic) + dwb OddishAnimatedPic, Bank(OddishAnimatedPic) + dwb ParasAnimatedPic, Bank(ParasAnimatedPic) + dwb ParasAnimatedPic, Bank(ParasAnimatedPic) + dwb VenonatAnimatedPic, Bank(VenonatAnimatedPic) + dwb VenonatAnimatedPic, Bank(VenonatAnimatedPic) + dwb DiglettAnimatedPic, Bank(DiglettAnimatedPic) + dwb DiglettAnimatedPic, Bank(DiglettAnimatedPic) + dwb MeowthAnimatedPic, Bank(MeowthAnimatedPic) + dwb MeowthAnimatedPic, Bank(MeowthAnimatedPic) + dwb PsyduckAnimatedPic, Bank(PsyduckAnimatedPic) + dwb PsyduckAnimatedPic, Bank(PsyduckAnimatedPic) + dwb MankeyAnimatedPic, Bank(MankeyAnimatedPic) + dwb MankeyAnimatedPic, Bank(MankeyAnimatedPic) + dwb GrowlitheAnimatedPic, Bank(GrowlitheAnimatedPic) + dwb GrowlitheAnimatedPic, Bank(GrowlitheAnimatedPic) + dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic) + dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic) + dwb PoliwagAnimatedPic, Bank(PoliwagAnimatedPic) + dwb AbraAnimatedPic, Bank(AbraAnimatedPic) + dwb AbraAnimatedPic, Bank(AbraAnimatedPic) + dwb AbraAnimatedPic, Bank(AbraAnimatedPic) + dwb MachopAnimatedPic, Bank(MachopAnimatedPic) + dwb MachopAnimatedPic, Bank(MachopAnimatedPic) + dwb MachopAnimatedPic, Bank(MachopAnimatedPic) + dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic) + dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic) + dwb BellsproutAnimatedPic, Bank(BellsproutAnimatedPic) + dwb TentacoolAnimatedPic, Bank(TentacoolAnimatedPic) + dwb TentacoolAnimatedPic, Bank(TentacoolAnimatedPic) + dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic) + dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic) + dwb GeodudeAnimatedPic, Bank(GeodudeAnimatedPic) + dwb PonytaAnimatedPic, Bank(PonytaAnimatedPic) + dwb PonytaAnimatedPic, Bank(PonytaAnimatedPic) + dwb SlowpokeAnimatedPic, Bank(SlowpokeAnimatedPic) + dwb SlowpokeAnimatedPic, Bank(SlowpokeAnimatedPic) + dwb MagnemiteAnimatedPic, Bank(MagnemiteAnimatedPic) + dwb MagnemiteAnimatedPic, Bank(MagnemiteAnimatedPic) + dwb FarfetchdAnimatedPic, Bank(FarfetchdAnimatedPic) + dwb DoduoAnimatedPic, Bank(DoduoAnimatedPic) + dwb DoduoAnimatedPic, Bank(DoduoAnimatedPic) + dwb SeelAnimatedPic, Bank(SeelAnimatedPic) + dwb SeelAnimatedPic, Bank(SeelAnimatedPic) + dwb GrimerAnimatedPic, Bank(GrimerAnimatedPic) + dwb GrimerAnimatedPic, Bank(GrimerAnimatedPic) + dwb ShellderAnimatedPic, Bank(ShellderAnimatedPic) + dwb ShellderAnimatedPic, Bank(ShellderAnimatedPic) + dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic) + dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic) + dwb GastlyAnimatedPic, Bank(GastlyAnimatedPic) + dwb OnixAnimatedPic, Bank(OnixAnimatedPic) + dwb DrowzeeAnimatedPic, Bank(DrowzeeAnimatedPic) + dwb DrowzeeAnimatedPic, Bank(DrowzeeAnimatedPic) + dwb KrabbyAnimatedPic, Bank(KrabbyAnimatedPic) + dwb KrabbyAnimatedPic, Bank(KrabbyAnimatedPic) + dwb VoltorbAnimatedPic, Bank(VoltorbAnimatedPic) + dwb VoltorbAnimatedPic, Bank(VoltorbAnimatedPic) + dwb ExeggcuteAnimatedPic, Bank(ExeggcuteAnimatedPic) + dwb ExeggcuteAnimatedPic, Bank(ExeggcuteAnimatedPic) + dwb CuboneAnimatedPic, Bank(CuboneAnimatedPic) + dwb CuboneAnimatedPic, Bank(CuboneAnimatedPic) + dwb HitmonleeAnimatedPic, Bank(HitmonleeAnimatedPic) + dwb HitmonchanAnimatedPic, Bank(HitmonchanAnimatedPic) + dwb LickitungAnimatedPic, Bank(LickitungAnimatedPic) + dwb KoffingAnimatedPic, Bank(KoffingAnimatedPic) + dwb KoffingAnimatedPic, Bank(KoffingAnimatedPic) + dwb RhyhornAnimatedPic, Bank(RhyhornAnimatedPic) + dwb RhyhornAnimatedPic, Bank(RhyhornAnimatedPic) + dwb ChanseyAnimatedPic, Bank(ChanseyAnimatedPic) + dwb TangelaAnimatedPic, Bank(TangelaAnimatedPic) + dwb KangaskhanAnimatedPic, Bank(KangaskhanAnimatedPic) + dwb HorseaAnimatedPic, Bank(HorseaAnimatedPic) + dwb HorseaAnimatedPic, Bank(HorseaAnimatedPic) + dwb GoldeenAnimatedPic, Bank(GoldeenAnimatedPic) + dwb GoldeenAnimatedPic, Bank(GoldeenAnimatedPic) + dwb StaryuAnimatedPic, Bank(StaryuAnimatedPic) + dwb StaryuAnimatedPic, Bank(StaryuAnimatedPic) + dwb MrMimeAnimatedPic, Bank(MrMimeAnimatedPic) + dwb ScytherAnimatedPic, Bank(ScytherAnimatedPic) + dwb JynxAnimatedPic, Bank(JynxAnimatedPic) + dwb ElectabuzzAnimatedPic, Bank(ElectabuzzAnimatedPic) + dwb MagmarAnimatedPic, Bank(MagmarAnimatedPic) + dwb PinsirAnimatedPic, Bank(PinsirAnimatedPic) + dwb TaurosAnimatedPic, Bank(TaurosAnimatedPic) + dwb MagikarpAnimatedPic, Bank(MagikarpAnimatedPic) + dwb MagikarpAnimatedPic, Bank(MagikarpAnimatedPic) + dwb LaprasAnimatedPic, Bank(LaprasAnimatedPic) + dwb DittoAnimatedPic, Bank(DittoAnimatedPic) + dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) + dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) + dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) + dwb EeveeAnimatedPic, Bank(EeveeAnimatedPic) + dwb PorygonAnimatedPic, Bank(PorygonAnimatedPic) + dwb OmanyteAnimatedPic, Bank(OmanyteAnimatedPic) + dwb OmanyteAnimatedPic, Bank(OmanyteAnimatedPic) + dwb KabutoAnimatedPic, Bank(KabutoAnimatedPic) + dwb KabutoAnimatedPic, Bank(KabutoAnimatedPic) + dwb AerodactylAnimatedPic, Bank(AerodactylAnimatedPic) + dwb SnorlaxAnimatedPic, Bank(SnorlaxAnimatedPic) + dwb ArticunoAnimatedPic, Bank(ArticunoAnimatedPic) + dwb ZapdosAnimatedPic, Bank(ZapdosAnimatedPic) + dwb MoltresAnimatedPic, Bank(MoltresAnimatedPic) + dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic) + dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic) + dwb DratiniAnimatedPic, Bank(DratiniAnimatedPic) + dwb MewtwoAnimatedPic, Bank(MewtwoAnimatedPic) + dwb MewAnimatedPic, Bank(MewAnimatedPic) MonAnimatedSpriteTypes: ; 0x13429 ; Each mon has an animated sprite tilemap type. ; $03 is bulbasaur's ; $00 is squirtle's ; All other mon's use $06 - db $03 ; BULBASAUR - db $FF ; IVYSAUR - db $FF ; VENUSAUR - db $06 ; CHARMANDER - db $FF ; CHARMELEON - db $FF ; CHARIZARD - db $00 ; SQUIRTLE - db $FF ; WARTORTLE - db $FF ; BLASTOISE - db $06 ; CATERPIE - db $FF ; METAPOD - db $FF ; BUTTERFREE - db $06 ; WEEDLE - db $FF ; KAKUNA - db $FF ; BEEDRILL - db $06 ; PIDGEY - db $FF ; PIDGEOTTO - db $FF ; PIDGEOT - db $06 ; RATTATA - db $FF ; RATICATE - db $06 ; SPEAROW - db $FF ; FEAROW - db $06 ; EKANS - db $FF ; ARBOK - db $06 ; PIKACHU - db $FF ; RAICHU - db $06 ; SANDSHREW - db $FF ; SANDSLASH - db $06 ; NIDORAN_F - db $FF ; NIDORINA - db $FF ; NIDOQUEEN - db $06 ; NIDORAN_M - db $FF ; NIDORINO - db $FF ; NIDOKING - db $06 ; CLEFAIRY - db $FF ; CLEFABLE - db $06 ; VULPIX - db $FF ; NINETALES - db $06 ; JIGGLYPUFF - db $FF ; WIGGLYTUFF - db $06 ; ZUBAT - db $FF ; GOLBAT - db $06 ; ODDISH - db $FF ; GLOOM - db $FF ; VILEPLUME - db $06 ; PARAS - db $FF ; PARASECT - db $06 ; VENONAT - db $FF ; VENOMOTH - db $06 ; DIGLETT - db $FF ; DUGTRIO - db $06 ; MEOWTH - db $FF ; PERSIAN - db $06 ; PSYDUCK - db $FF ; GOLDUCK - db $06 ; MANKEY - db $FF ; PRIMEAPE - db $06 ; GROWLITHE - db $FF ; ARCANINE - db $06 ; POLIWAG - db $FF ; POLIWHIRL - db $FF ; POLIWRATH - db $06 ; ABRA - db $FF ; KADABRA - db $FF ; ALAKAZAM - db $06 ; MACHOP - db $FF ; MACHOKE - db $FF ; MACHAMP - db $06 ; BELLSPROUT - db $FF ; WEEPINBELL - db $FF ; VICTREEBEL - db $06 ; TENTACOOL - db $FF ; TENTACRUEL - db $06 ; GEODUDE - db $FF ; GRAVELER - db $FF ; GOLEM - db $06 ; PONYTA - db $FF ; RAPIDASH - db $06 ; SLOWPOKE - db $FF ; SLOWBRO - db $06 ; MAGNEMITE - db $FF ; MAGNETON - db $06 ; FARFETCH_D - db $06 ; DODUO - db $FF ; DODRIO - db $06 ; SEEL - db $FF ; DEWGONG - db $06 ; GRIMER - db $FF ; MUK - db $06 ; SHELLDER - db $FF ; CLOYSTER - db $06 ; GASTLY - db $FF ; HAUNTER - db $FF ; GENGAR - db $06 ; ONIX - db $06 ; DROWZEE - db $FF ; HYPNO - db $06 ; KRABBY - db $FF ; KINGLER - db $06 ; VOLTORB - db $FF ; ELECTRODE - db $06 ; EXEGGCUTE - db $FF ; EXEGGUTOR - db $06 ; CUBONE - db $FF ; MAROWAK - db $06 ; HITMONLEE - db $06 ; HITMONCHAN - db $06 ; LICKITUNG - db $06 ; KOFFING - db $FF ; WEEZING - db $06 ; RHYHORN - db $FF ; RHYDON - db $06 ; CHANSEY - db $06 ; TANGELA - db $06 ; KANGASKHAN - db $06 ; HORSEA - db $FF ; SEADRA - db $06 ; GOLDEEN - db $FF ; SEAKING - db $06 ; STARYU - db $FF ; STARMIE - db $06 ; MR_MIME - db $06 ; SCYTHER - db $06 ; JYNX - db $06 ; ELECTABUZZ - db $06 ; MAGMAR - db $06 ; PINSIR - db $06 ; TAUROS - db $06 ; MAGIKARP - db $FF ; GYARADOS - db $06 ; LAPRAS - db $06 ; DITTO - db $06 ; EEVEE - db $FF ; VAPOREON - db $FF ; JOLTEON - db $FF ; FLAREON - db $06 ; PORYGON - db $09 ; OMANYTE - db $FF ; OMASTAR - db $06 ; KABUTO - db $FF ; KABUTOPS - db $06 ; AERODACTYL - db $06 ; SNORLAX - db $06 ; ARTICUNO - db $06 ; ZAPDOS - db $06 ; MOLTRES - db $06 ; DRATINI - db $FF ; DRAGONAIR - db $FF ; DRAGONITE - db $06 ; MEWTWO - db $06 ; MEW + db $03 ; BULBASAUR + db $FF ; IVYSAUR + db $FF ; VENUSAUR + db $06 ; CHARMANDER + db $FF ; CHARMELEON + db $FF ; CHARIZARD + db $00 ; SQUIRTLE + db $FF ; WARTORTLE + db $FF ; BLASTOISE + db $06 ; CATERPIE + db $FF ; METAPOD + db $FF ; BUTTERFREE + db $06 ; WEEDLE + db $FF ; KAKUNA + db $FF ; BEEDRILL + db $06 ; PIDGEY + db $FF ; PIDGEOTTO + db $FF ; PIDGEOT + db $06 ; RATTATA + db $FF ; RATICATE + db $06 ; SPEAROW + db $FF ; FEAROW + db $06 ; EKANS + db $FF ; ARBOK + db $06 ; PIKACHU + db $FF ; RAICHU + db $06 ; SANDSHREW + db $FF ; SANDSLASH + db $06 ; NIDORAN_F + db $FF ; NIDORINA + db $FF ; NIDOQUEEN + db $06 ; NIDORAN_M + db $FF ; NIDORINO + db $FF ; NIDOKING + db $06 ; CLEFAIRY + db $FF ; CLEFABLE + db $06 ; VULPIX + db $FF ; NINETALES + db $06 ; JIGGLYPUFF + db $FF ; WIGGLYTUFF + db $06 ; ZUBAT + db $FF ; GOLBAT + db $06 ; ODDISH + db $FF ; GLOOM + db $FF ; VILEPLUME + db $06 ; PARAS + db $FF ; PARASECT + db $06 ; VENONAT + db $FF ; VENOMOTH + db $06 ; DIGLETT + db $FF ; DUGTRIO + db $06 ; MEOWTH + db $FF ; PERSIAN + db $06 ; PSYDUCK + db $FF ; GOLDUCK + db $06 ; MANKEY + db $FF ; PRIMEAPE + db $06 ; GROWLITHE + db $FF ; ARCANINE + db $06 ; POLIWAG + db $FF ; POLIWHIRL + db $FF ; POLIWRATH + db $06 ; ABRA + db $FF ; KADABRA + db $FF ; ALAKAZAM + db $06 ; MACHOP + db $FF ; MACHOKE + db $FF ; MACHAMP + db $06 ; BELLSPROUT + db $FF ; WEEPINBELL + db $FF ; VICTREEBEL + db $06 ; TENTACOOL + db $FF ; TENTACRUEL + db $06 ; GEODUDE + db $FF ; GRAVELER + db $FF ; GOLEM + db $06 ; PONYTA + db $FF ; RAPIDASH + db $06 ; SLOWPOKE + db $FF ; SLOWBRO + db $06 ; MAGNEMITE + db $FF ; MAGNETON + db $06 ; FARFETCH_D + db $06 ; DODUO + db $FF ; DODRIO + db $06 ; SEEL + db $FF ; DEWGONG + db $06 ; GRIMER + db $FF ; MUK + db $06 ; SHELLDER + db $FF ; CLOYSTER + db $06 ; GASTLY + db $FF ; HAUNTER + db $FF ; GENGAR + db $06 ; ONIX + db $06 ; DROWZEE + db $FF ; HYPNO + db $06 ; KRABBY + db $FF ; KINGLER + db $06 ; VOLTORB + db $FF ; ELECTRODE + db $06 ; EXEGGCUTE + db $FF ; EXEGGUTOR + db $06 ; CUBONE + db $FF ; MAROWAK + db $06 ; HITMONLEE + db $06 ; HITMONCHAN + db $06 ; LICKITUNG + db $06 ; KOFFING + db $FF ; WEEZING + db $06 ; RHYHORN + db $FF ; RHYDON + db $06 ; CHANSEY + db $06 ; TANGELA + db $06 ; KANGASKHAN + db $06 ; HORSEA + db $FF ; SEADRA + db $06 ; GOLDEEN + db $FF ; SEAKING + db $06 ; STARYU + db $FF ; STARMIE + db $06 ; MR_MIME + db $06 ; SCYTHER + db $06 ; JYNX + db $06 ; ELECTABUZZ + db $06 ; MAGMAR + db $06 ; PINSIR + db $06 ; TAUROS + db $06 ; MAGIKARP + db $FF ; GYARADOS + db $06 ; LAPRAS + db $06 ; DITTO + db $06 ; EEVEE + db $FF ; VAPOREON + db $FF ; JOLTEON + db $FF ; FLAREON + db $06 ; PORYGON + db $09 ; OMANYTE + db $FF ; OMASTAR + db $06 ; KABUTO + db $FF ; KABUTOPS + db $06 ; AERODACTYL + db $06 ; SNORLAX + db $06 ; ARTICUNO + db $06 ; ZAPDOS + db $06 ; MOLTRES + db $06 ; DRATINI + db $FF ; DRAGONAIR + db $FF ; DRAGONITE + db $06 ; MEWTWO + db $06 ; MEW MonAnimatedCollisionMaskPointers: ; 0x134c0 ; Pointers to the collision masks of the animated sprites of mons. ; Note only, evolution mons use an arbitrary non-evolved mon entry, since it will never be used. - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb CharmanderAnimatedCollisionMask, Bank(CharmanderAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb SquirtleAnimatedCollisionMask, Bank(SquirtleAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb CaterpieAnimatedCollisionMask, Bank(CaterpieAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb WeedleAnimatedCollisionMask, Bank(WeedleAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb PidgeyAnimatedCollisionMask, Bank(PidgeyAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb RattataAnimatedCollisionMask, Bank(RattataAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb SpearowAnimatedCollisionMask, Bank(SpearowAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb EkansAnimatedCollisionMask, Bank(EkansAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb PikachuAnimatedCollisionMask, Bank(PikachuAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb SandshrewAnimatedCollisionMask, Bank(SandshrewAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb NidoranfAnimatedCollisionMask, Bank(NidoranfAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb NidoranmAnimatedCollisionMask, Bank(NidoranmAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb ClefairyAnimatedCollisionMask, Bank(ClefairyAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb VulpixAnimatedCollisionMask, Bank(VulpixAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb JigglypuffAnimatedCollisionMask, Bank(JigglypuffAnimatedCollisionMask) - dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb OddishAnimatedCollisionMask, Bank(OddishAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb ParasAnimatedCollisionMask, Bank(ParasAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb VenonatAnimatedCollisionMask, Bank(VenonatAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb DiglettAnimatedCollisionMask, Bank(DiglettAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb MeowthAnimatedCollisionMask, Bank(MeowthAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb PsyduckAnimatedCollisionMask, Bank(PsyduckAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb MankeyAnimatedCollisionMask, Bank(MankeyAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb GrowlitheAnimatedCollisionMask, Bank(GrowlitheAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb PoliwagAnimatedCollisionMask, Bank(PoliwagAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb AbraAnimatedCollisionMask, Bank(AbraAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb MachopAnimatedCollisionMask, Bank(MachopAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb BellsproutAnimatedCollisionMask, Bank(BellsproutAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb TentacoolAnimatedCollisionMask, Bank(TentacoolAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb GeodudeAnimatedCollisionMask, Bank(GeodudeAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb PonytaAnimatedCollisionMask, Bank(PonytaAnimatedCollisionMask) - dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb MagnemiteAnimatedCollisionMask, Bank(MagnemiteAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb FarfetchdAnimatedCollisionMask, Bank(FarfetchdAnimatedCollisionMask) - dwb DoduoAnimatedCollisionMask, Bank(DoduoAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb SeelAnimatedCollisionMask, Bank(SeelAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb GrimerAnimatedCollisionMask, Bank(GrimerAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb ShellderAnimatedCollisionMask, Bank(ShellderAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb GastlyAnimatedCollisionMask, Bank(GastlyAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb OnixAnimatedCollisionMask, Bank(OnixAnimatedCollisionMask) - dwb DrowzeeAnimatedCollisionMask, Bank(DrowzeeAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb KrabbyAnimatedCollisionMask, Bank(KrabbyAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb VoltorbAnimatedCollisionMask, Bank(VoltorbAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb ExeggcuteAnimatedCollisionMask, Bank(ExeggcuteAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb CuboneAnimatedCollisionMask, Bank(CuboneAnimatedCollisionMask) - dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) - dwb HitmonleeAnimatedCollisionMask, Bank(HitmonleeAnimatedCollisionMask) - dwb HitmonchanAnimatedCollisionMask, Bank(HitmonchanAnimatedCollisionMask) - dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) - dwb KoffingAnimatedCollisionMask, Bank(KoffingAnimatedCollisionMask) - dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) - dwb RhyhornAnimatedCollisionMask, Bank(RhyhornAnimatedCollisionMask) - dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) - dwb ChanseyAnimatedCollisionMask, Bank(ChanseyAnimatedCollisionMask) - dwb TangelaAnimatedCollisionMask, Bank(TangelaAnimatedCollisionMask) - dwb KangaskhanAnimatedCollisionMask, Bank(KangaskhanAnimatedCollisionMask) - dwb HorseaAnimatedCollisionMask, Bank(HorseaAnimatedCollisionMask) - dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) - dwb GoldeenAnimatedCollisionMask, Bank(GoldeenAnimatedCollisionMask) - dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) - dwb StaryuAnimatedCollisionMask, Bank(StaryuAnimatedCollisionMask) - dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) - dwb MrMimeAnimatedCollisionMask, Bank(MrMimeAnimatedCollisionMask) - dwb ScytherAnimatedCollisionMask, Bank(ScytherAnimatedCollisionMask) - dwb JynxAnimatedCollisionMask, Bank(JynxAnimatedCollisionMask) - dwb ElectabuzzAnimatedCollisionMask, Bank(ElectabuzzAnimatedCollisionMask) - dwb MagmarAnimatedCollisionMask, Bank(MagmarAnimatedCollisionMask) - dwb PinsirAnimatedCollisionMask, Bank(PinsirAnimatedCollisionMask) - dwb TaurosAnimatedCollisionMask, Bank(TaurosAnimatedCollisionMask) - dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) - dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) - dwb LaprasAnimatedCollisionMask, Bank(LaprasAnimatedCollisionMask) - dwb DittoAnimatedCollisionMask, Bank(DittoAnimatedCollisionMask) - dwb EeveeAnimatedCollisionMask, Bank(EeveeAnimatedCollisionMask) - dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) - dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) - dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) - dwb PorygonAnimatedCollisionMask, Bank(PorygonAnimatedCollisionMask) - dwb OmanyteAnimatedCollisionMask, Bank(OmanyteAnimatedCollisionMask) - dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) - dwb KabutoAnimatedCollisionMask, Bank(KabutoAnimatedCollisionMask) - dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) - dwb AerodactylAnimatedCollisionMask, Bank(AerodactylAnimatedCollisionMask) - dwb SnorlaxAnimatedCollisionMask, Bank(SnorlaxAnimatedCollisionMask) - dwb ArticunoAnimatedCollisionMask, Bank(ArticunoAnimatedCollisionMask) - dwb ZapdosAnimatedCollisionMask, Bank(ZapdosAnimatedCollisionMask) - dwb MoltresAnimatedCollisionMask, Bank(MoltresAnimatedCollisionMask) - dwb DratiniAnimatedCollisionMask, Bank(DratiniAnimatedCollisionMask) - dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) - dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) - dwb MewtwoAnimatedCollisionMask, Bank(MewtwoAnimatedCollisionMask) - dwb MewAnimatedCollisionMask, Bank(MewAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb CharmanderAnimatedCollisionMask, Bank(CharmanderAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb SquirtleAnimatedCollisionMask, Bank(SquirtleAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb CaterpieAnimatedCollisionMask, Bank(CaterpieAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb WeedleAnimatedCollisionMask, Bank(WeedleAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb PidgeyAnimatedCollisionMask, Bank(PidgeyAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb RattataAnimatedCollisionMask, Bank(RattataAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb SpearowAnimatedCollisionMask, Bank(SpearowAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb EkansAnimatedCollisionMask, Bank(EkansAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb PikachuAnimatedCollisionMask, Bank(PikachuAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb SandshrewAnimatedCollisionMask, Bank(SandshrewAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb NidoranfAnimatedCollisionMask, Bank(NidoranfAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb NidoranmAnimatedCollisionMask, Bank(NidoranmAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb ClefairyAnimatedCollisionMask, Bank(ClefairyAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb VulpixAnimatedCollisionMask, Bank(VulpixAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb JigglypuffAnimatedCollisionMask, Bank(JigglypuffAnimatedCollisionMask) + dwb BulbasaurAnimatedCollisionMask, Bank(BulbasaurAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb OddishAnimatedCollisionMask, Bank(OddishAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb ParasAnimatedCollisionMask, Bank(ParasAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb VenonatAnimatedCollisionMask, Bank(VenonatAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb DiglettAnimatedCollisionMask, Bank(DiglettAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb MeowthAnimatedCollisionMask, Bank(MeowthAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb PsyduckAnimatedCollisionMask, Bank(PsyduckAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb MankeyAnimatedCollisionMask, Bank(MankeyAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb GrowlitheAnimatedCollisionMask, Bank(GrowlitheAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb PoliwagAnimatedCollisionMask, Bank(PoliwagAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb AbraAnimatedCollisionMask, Bank(AbraAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb MachopAnimatedCollisionMask, Bank(MachopAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb BellsproutAnimatedCollisionMask, Bank(BellsproutAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb TentacoolAnimatedCollisionMask, Bank(TentacoolAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb GeodudeAnimatedCollisionMask, Bank(GeodudeAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb PonytaAnimatedCollisionMask, Bank(PonytaAnimatedCollisionMask) + dwb ZubatAnimatedCollisionMask, Bank(ZubatAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb MagnemiteAnimatedCollisionMask, Bank(MagnemiteAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb FarfetchdAnimatedCollisionMask, Bank(FarfetchdAnimatedCollisionMask) + dwb DoduoAnimatedCollisionMask, Bank(DoduoAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb SeelAnimatedCollisionMask, Bank(SeelAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb GrimerAnimatedCollisionMask, Bank(GrimerAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb ShellderAnimatedCollisionMask, Bank(ShellderAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb GastlyAnimatedCollisionMask, Bank(GastlyAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb OnixAnimatedCollisionMask, Bank(OnixAnimatedCollisionMask) + dwb DrowzeeAnimatedCollisionMask, Bank(DrowzeeAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb KrabbyAnimatedCollisionMask, Bank(KrabbyAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb VoltorbAnimatedCollisionMask, Bank(VoltorbAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb ExeggcuteAnimatedCollisionMask, Bank(ExeggcuteAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb CuboneAnimatedCollisionMask, Bank(CuboneAnimatedCollisionMask) + dwb SlowpokeAnimatedCollisionMask, Bank(SlowpokeAnimatedCollisionMask) + dwb HitmonleeAnimatedCollisionMask, Bank(HitmonleeAnimatedCollisionMask) + dwb HitmonchanAnimatedCollisionMask, Bank(HitmonchanAnimatedCollisionMask) + dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) + dwb KoffingAnimatedCollisionMask, Bank(KoffingAnimatedCollisionMask) + dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) + dwb RhyhornAnimatedCollisionMask, Bank(RhyhornAnimatedCollisionMask) + dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) + dwb ChanseyAnimatedCollisionMask, Bank(ChanseyAnimatedCollisionMask) + dwb TangelaAnimatedCollisionMask, Bank(TangelaAnimatedCollisionMask) + dwb KangaskhanAnimatedCollisionMask, Bank(KangaskhanAnimatedCollisionMask) + dwb HorseaAnimatedCollisionMask, Bank(HorseaAnimatedCollisionMask) + dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) + dwb GoldeenAnimatedCollisionMask, Bank(GoldeenAnimatedCollisionMask) + dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) + dwb StaryuAnimatedCollisionMask, Bank(StaryuAnimatedCollisionMask) + dwb LickitungAnimatedCollisionMask, Bank(LickitungAnimatedCollisionMask) + dwb MrMimeAnimatedCollisionMask, Bank(MrMimeAnimatedCollisionMask) + dwb ScytherAnimatedCollisionMask, Bank(ScytherAnimatedCollisionMask) + dwb JynxAnimatedCollisionMask, Bank(JynxAnimatedCollisionMask) + dwb ElectabuzzAnimatedCollisionMask, Bank(ElectabuzzAnimatedCollisionMask) + dwb MagmarAnimatedCollisionMask, Bank(MagmarAnimatedCollisionMask) + dwb PinsirAnimatedCollisionMask, Bank(PinsirAnimatedCollisionMask) + dwb TaurosAnimatedCollisionMask, Bank(TaurosAnimatedCollisionMask) + dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) + dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) + dwb LaprasAnimatedCollisionMask, Bank(LaprasAnimatedCollisionMask) + dwb DittoAnimatedCollisionMask, Bank(DittoAnimatedCollisionMask) + dwb EeveeAnimatedCollisionMask, Bank(EeveeAnimatedCollisionMask) + dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) + dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) + dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) + dwb PorygonAnimatedCollisionMask, Bank(PorygonAnimatedCollisionMask) + dwb OmanyteAnimatedCollisionMask, Bank(OmanyteAnimatedCollisionMask) + dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) + dwb KabutoAnimatedCollisionMask, Bank(KabutoAnimatedCollisionMask) + dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) + dwb AerodactylAnimatedCollisionMask, Bank(AerodactylAnimatedCollisionMask) + dwb SnorlaxAnimatedCollisionMask, Bank(SnorlaxAnimatedCollisionMask) + dwb ArticunoAnimatedCollisionMask, Bank(ArticunoAnimatedCollisionMask) + dwb ZapdosAnimatedCollisionMask, Bank(ZapdosAnimatedCollisionMask) + dwb MoltresAnimatedCollisionMask, Bank(MoltresAnimatedCollisionMask) + dwb DratiniAnimatedCollisionMask, Bank(DratiniAnimatedCollisionMask) + dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) + dwb MagikarpAnimatedCollisionMask, Bank(MagikarpAnimatedCollisionMask) + dwb MewtwoAnimatedCollisionMask, Bank(MewtwoAnimatedCollisionMask) + dwb MewAnimatedCollisionMask, Bank(MewAnimatedCollisionMask) Data_13685: ; 0x13685 ; Each 3-byte entry is related to an evolution line. Don't know what this is for, yet. - db $12, $12, $10 - db $10, $10, $10 - db $12, $12, $0E - db $14, $14, $12 - db $14, $14, $10 - db $0A, $0A, $0E - db $11, $13, $10 - db $0B, $0B, $10 - db $12, $12, $0E - db $12, $14, $0E - db $10, $12, $10 - db $11, $12, $0E - db $11, $12, $0E - db $12, $13, $10 - db $11, $11, $10 - db $12, $12, $10 - db $08, $08, $10 - db $10, $10, $10 - db $10, $10, $10 - db $11, $11, $0E - db $10, $10, $0E - db $14, $14, $0E - db $30, $30, $10 - db $12, $12, $10 - db $12, $12, $10 - db $10, $10, $10 - db $10, $10, $10 - db $12, $14, $10 - db $10, $12, $10 - db $0C, $0C, $12 - db $12, $14, $0C - db $12, $14, $0E - db $30, $30, $10 - db $14, $14, $10 - db $12, $12, $0E - db $12, $12, $0E - db $14, $14, $0E - db $12, $12, $10 - db $14, $14, $0E - db $10, $10, $0E - db $12, $12, $10 - db $14, $14, $10 - db $14, $12, $10 - db $02, $02, $10 - db $12, $12, $10 - db $12, $12, $10 - db $14, $10, $10 - db $14, $10, $10 - db $14, $12, $10 - db $11, $11, $10 - db $14, $14, $10 - db $12, $12, $10 - db $10, $10, $10 - db $12, $12, $10 - db $0F, $0F, $0E - db $12, $12, $0E - db $23, $23, $10 - db $13, $13, $10 - db $13, $13, $10 - db $12, $12, $10 - db $12, $14, $10 - db $14, $14, $0E - db $12, $12, $0E - db $12, $14, $10 - db $18, $18, $0C - db $16, $16, $0C - db $14, $14, $10 - db $12, $12, $10 - db $10, $10, $0E - db $12, $12, $0E - db $12, $12, $0E - db $0C, $0C, $12 - db $26, $36, $12 - db $13, $13, $10 - db $13, $13, $10 - db $13, $13, $10 - db $12, $12, $0E - db $14, $14, $0E - db $14, $14, $0E - + db $12, $12, $10 ; EVOLINE_BULBASAUR + db $10, $10, $10 ; EVOLINE_CHARMANDER + db $12, $12, $0E ; EVOLINE_SQUIRTLE + db $14, $14, $12 ; EVOLINE_CATERPIE + db $14, $14, $10 ; EVOLINE_WEEDLE + db $0A, $0A, $0E ; EVOLINE_PIDGEY + db $11, $13, $10 ; EVOLINE_RATTATA + db $0B, $0B, $10 ; EVOLINE_SPEAROW + db $12, $12, $0E ; EVOLINE_EKANS + db $12, $14, $0E ; EVOLINE_PIKACHU + db $10, $12, $10 ; EVOLINE_SANDSHREW + db $11, $12, $0E ; EVOLINE_NIDORAN_F + db $11, $12, $0E ; EVOLINE_NIDORAN_M + db $12, $13, $10 ; EVOLINE_CLEFAIRY + db $11, $11, $10 ; EVOLINE_VULPIX + db $12, $12, $10 ; EVOLINE_JIGGLYPUFF + db $08, $08, $10 ; EVOLINE_ZUBAT + db $10, $10, $10 ; EVOLINE_ODDISH + db $10, $10, $10 ; EVOLINE_PARAS + db $11, $11, $0E ; EVOLINE_VENONAT + db $10, $10, $0E ; EVOLINE_DIGLETT + db $14, $14, $0E ; EVOLINE_MEOWTH + db $30, $30, $10 ; EVOLINE_PSYDUCK + db $12, $12, $10 ; EVOLINE_MANKEY + db $12, $12, $10 ; EVOLINE_GROWLITHE + db $10, $10, $10 ; EVOLINE_POLIWAG + db $10, $10, $10 ; EVOLINE_ABRA + db $12, $14, $10 ; EVOLINE_MACHOP + db $10, $12, $10 ; EVOLINE_BELLSPROUT + db $0C, $0C, $12 ; EVOLINE_TENTACOOL + db $12, $14, $0C ; EVOLINE_GEODUDE + db $12, $14, $0E ; EVOLINE_PONYTA + db $30, $30, $10 ; EVOLINE_SLOWPOKE + db $14, $14, $10 ; EVOLINE_MAGNEMITE + db $12, $12, $0E ; EVOLINE_FARFETCH_D + db $12, $12, $0E ; EVOLINE_DODUO + db $14, $14, $0E ; EVOLINE_SEEL + db $12, $12, $10 ; EVOLINE_GRIMER + db $14, $14, $0E ; EVOLINE_SHELLDER + db $10, $10, $0E ; EVOLINE_GASTLY + db $12, $12, $10 ; EVOLINE_ONIX + db $14, $14, $10 ; EVOLINE_DROWZEE + db $14, $12, $10 ; EVOLINE_KRABBY + db $02, $02, $10 ; EVOLINE_VOLTORB + db $12, $12, $10 ; EVOLINE_EXEGGCUTE + db $12, $12, $10 ; EVOLINE_CUBONE + db $14, $10, $10 ; EVOLINE_HITMONLEE + db $14, $10, $10 ; EVOLINE_HITMONCHAN + db $14, $12, $10 ; EVOLINE_LICKITUNG + db $11, $11, $10 ; EVOLINE_KOFFING + db $14, $14, $10 ; EVOLINE_RHYHORN + db $12, $12, $10 ; EVOLINE_CHANSEY + db $10, $10, $10 ; EVOLINE_TANGELA + db $12, $12, $10 ; EVOLINE_KANGASKHAN + db $0F, $0F, $0E ; EVOLINE_HORSEA + db $12, $12, $0E ; EVOLINE_GOLDEEN + db $23, $23, $10 ; EVOLINE_STARYU + db $13, $13, $10 ; EVOLINE_MR_MIME + db $13, $13, $10 ; EVOLINE_SCYTHER + db $12, $12, $10 ; EVOLINE_JYNX + db $12, $14, $10 ; EVOLINE_ELECTABUZZ + db $14, $14, $0E ; EVOLINE_MAGMAR + db $12, $12, $0E ; EVOLINE_PINSIR + db $12, $14, $10 ; EVOLINE_TAUROS + db $18, $18, $0C ; EVOLINE_MAGIKARP + db $16, $16, $0C ; EVOLINE_LAPRAS + db $14, $14, $10 ; EVOLINE_DITTO + db $12, $12, $10 ; EVOLINE_EEVEE + db $10, $10, $0E ; EVOLINE_PORYGON + db $12, $12, $0E ; EVOLINE_OMANYTE + db $12, $12, $0E ; EVOLINE_KABUTO + db $0C, $0C, $12 ; EVOLINE_AERODACTYL + db $26, $36, $12 ; EVOLINE_SNORLAX + db $13, $13, $10 ; EVOLINE_ARTICUNO + db $13, $13, $10 ; EVOLINE_ZAPDOS + db $13, $13, $10 ; EVOLINE_MOLTRES + db $12, $12, $0E ; EVOLINE_DRATINI + db $14, $14, $0E ; EVOLINE_MEWTWO + db $14, $14, $0E ; EVOLINE_MEW SECTION "bank5", ROMX, BANK[$5] Func_14000: ; 0x14000 - call Func_14091 - call Func_159f4 - call Func_15450 - call Func_16859 - call Func_14ece - call Func_14234 - call Func_16425 - call Func_142fc - call Func_1404a - ret + call Func_14091 + call Func_159f4 + call Func_15450 + call Func_16859 + call Func_14ece + call Func_14234 + call Func_16425 + call Func_142fc + call Func_1404a + ret Func_1401c: ; 0x1401c - call Func_14091 - call Func_14377 - call Func_14135 - call Func_asm_1522d - call Func_14282 - call Func_1414b - call Func_14234 - call Func_14746 - call Func_14707 - call Func_140f9 - call Func_16878 - call Func_140e2 - call Func_16425 - call Func_142fc - call Func_1404a - ret + call Func_14091 + call Func_14377 + call Func_14135 + call Func_asm_1522d + call Func_14282 + call Func_1414b + call Func_14234 + call Func_14746 + call Func_14707 + call Func_140f9 + call Func_16878 + call Func_140e2 + call Func_16425 + call Func_142fc + call Func_1404a + ret Func_1404a: ; 0x1404a - ld a, [$d57d] - and a - ret z - ld a, [hGameBoyColorFlag] - and a - ret nz - ld a, [$d580] - and a - ret z - ld a, $f - ld [$d581], a - call Func_1762f - ld hl, $d582 - ld a, $ff - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - ld hl, $d582 - ld a, [wTimerMinutes] - and $f - call Func_1764f - ld a, [wTimerSeconds] - swap a - and $f - call Func_1764f - ld a, [wTimerSeconds] - and $f - call Func_1764f - ld a, e - srl a - srl a - ld d, $90 - call Func_1764f - ret + ld a, [wd57d] + and a + ret z + ld a, [hGameBoyColorFlag] + and a + ret nz + ld a, [wd580] + and a + ret z + ld a, $f + ld [wd581], a + call Func_1762f + ld hl, wd582 + ld a, $ff + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, wd582 + ld a, [wTimerMinutes] + and $f + call Func_1764f + ld a, [wTimerSeconds] + swap a + and $f + call Func_1764f + ld a, [wTimerSeconds] + and $f + call Func_1764f + ld a, e + srl a + srl a + ld d, $90 + call Func_1764f + ret Func_14091: ; 0x14091 - ld a, $ff - ld [$d4d7], a - ld [$d4db], a - ld a, [$d4b4] - ld [$d4c5], a - ld a, [$d4b6] - ld [$d4c6], a - ld a, [wBallRotation] - ld [$d4c7], a - ld a, [$d503] - and a - ret z - xor a - ld [$d503], a - ld a, [$d502] - res 1, a - ld [$d502], a - and $1 - ld c, a - ld a, [wStageCollisionState] - and $fe - or c - ld [wStageCollisionState], a - ld de, $0007 - call PlaySoundEffect - ld a, [wCurrentStage] - bit 0, a - ret nz - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - call Func_159f4 - ret + ld a, $ff + ld [wd4d7], a + ld [wd4db], a + ld a, [wd4b4] + ld [wd4c5], a + ld a, [wd4b6] + ld [wd4c6], a + ld a, [wBallRotation] + ld [wd4c7], a + ld a, [wd503] + and a + ret z + xor a + ld [wd503], a + ld a, [wd502] + res 1, a + ld [wd502], a + and $1 + ld c, a + ld a, [wStageCollisionState] + and $fe + or c + ld [wStageCollisionState], a + lb de, $00, $07 + call PlaySoundEffect + ld a, [wCurrentStage] + bit 0, a + ret nz + callba LoadStageCollisionAttributes + call Func_159f4 + ret Func_140e2: ; 0x140e2 - ld a, $ff - ld [$d60e], a - ld [$d60f], a - ld a, [$d60c] - call Func_16f28 - ld a, [$d60d] - add $14 - call Func_16f28 - ret + ld a, $ff + ld [wd60e], a + ld [wd60f], a + ld a, [wd60c] + call Func_16f28 + ld a, [wd60d] + add $14 + call Func_16f28 + ret Func_140f9: ; 0x140f9 - ld a, [$d4ef] - and a - jr z, .asm_1410c - xor a - ld a, $66 - ld [$c7e3], a - ld a, $67 - ld [$c803], a - ld a, $2 + ld a, [wd4ef] + and a + jr z, .asm_1410c + xor a + ld a, $66 + ld [wc7e3], a + ld a, $67 + ld [wc803], a + ld a, $2 .asm_1410c - call Func_149d9 - ld a, [wLeftMapMoveCounter] - call Func_149f5 - ld a, [$d4f1] - and a - jr z, .asm_14127 - ld a, $6a - ld [$c7f0], a - ld a, $6b - ld [$c810], a - ld a, $2 + call Func_149d9 + ld a, [wLeftMapMoveCounter] + call Func_149f5 + ld a, [wd4f1] + and a + jr z, .asm_14127 + ld a, $6a + ld [wc7f0], a + ld a, $6b + ld [wc810], a + ld a, $2 .asm_14127 - add $3 - call Func_149d9 - ld a, [wRightMapMoveCounter] - add $4 - call Func_149f5 - ret + add $3 + call Func_149d9 + ld a, [wRightMapMoveCounter] + add $4 + call Func_149f5 + ret Func_14135: ; 0x14135 - ld bc, $0000 + ld bc, $0000 .asm_14138 - push bc - ld hl, wIndicatorStates - add hl, bc - ld a, [hl] - res 7, a - call Func_169cd - pop bc - inc c - ld a, c - cp $5 - jr nz, .asm_14138 - ret + push bc + ld hl, wIndicatorStates + add hl, bc + ld a, [hl] + res 7, a + call Func_169cd + pop bc + inc c + ld a, c + cp $5 + jr nz, .asm_14138 + ret Func_1414b: ; 0x1414b - ld a, [wInSpecialMode] - and a - ret z - ld a, [wSpecialMode] - cp $2 - ret z - ld a, [$d5c6] - and a - jr nz, .asm_14165 - ld a, [$d5f3] - and a - jr nz, .asm_14165 - jp Func_14210 + ld a, [wInSpecialMode] + and a + ret z + ld a, [wSpecialMode] + cp $2 + ret z + ld a, [wd5c6] + and a + jr nz, .asm_14165 + ld a, [wd5f3] + and a + jr nz, .asm_14165 + jp Func_14210 + .asm_14165 - ld [$ff8a], a - ld a, Bank(Func_141f2) - ld hl, Func_141f2 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10362) - ld hl, Func_10362 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_10301) - ld hl, Func_10301 - call nz, BankSwitch - ld a, [$d5f3] - and a - ret z - ld a, $2a - ld hl, $47e0 - ld de, $87e0 - ld bc, $0020 - call CopyDataToRAM - ld a, $2a - ld hl, $4800 - ld de, $8900 - ld bc, $0180 - call CopyDataToRAM - ld a, [wBallType] - cp GREAT_BALL - jr nc, .notPokeball - ld a, Bank(PinballPokeballShakeGfx) - ld hl, PinballPokeballShakeGfx - ld de, $8380 - ld bc, $0040 - call CopyDataToRAM - ret + callba Func_141f2 + callba Func_10362 + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_10301) + ld hl, Func_10301 + call nz, BankSwitch + ld a, [wd5f3] + and a + ret z + ld a, BANK(PikachuSaverGfx) + ld hl, PikachuSaverGfx + $c0 + ld de, vTilesOB tile $7e + ld bc, $0020 + call FarCopyData + ld a, BANK(GFX_a8800) + ld hl, GFX_a8800 + ld de, vTilesSH tile $10 + ld bc, $0180 + call FarCopyData + ld a, [wBallType] + cp GREAT_BALL + jr nc, .notPokeball + ld a, Bank(PinballPokeballShakeGfx) + ld hl, PinballPokeballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call FarCopyData + ret + .notPokeball - cp ULTRA_BALL - jr nc, .notGreatball - ld a, Bank(PinballGreatballShakeGfx) - ld hl, PinballGreatballShakeGfx - ld de, $8380 - ld bc, $0040 - call CopyDataToRAM - ret + cp ULTRA_BALL + jr nc, .notGreatball + ld a, Bank(PinballGreatballShakeGfx) + ld hl, PinballGreatballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call FarCopyData + ret + .notGreatball - cp MASTER_BALL - jr nc, .notUltraball - ld a, Bank(PinballUltraballShakeGfx) - ld hl, PinballUltraballShakeGfx - ld de, $8380 - ld bc, $0040 - call CopyDataToRAM - ret + cp MASTER_BALL + jr nc, .notUltraball + ld a, Bank(PinballUltraballShakeGfx) + ld hl, PinballUltraballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call FarCopyData + ret + .notUltraball - ld a, Bank(PinballMasterballShakeGfx) - ld hl, PinballMasterballShakeGfx - ld de, $8380 - ld bc, $0040 - call CopyDataToRAM - ret + ld a, Bank(PinballMasterballShakeGfx) + ld hl, PinballMasterballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call FarCopyData + ret Func_141f2: ; 0x141f2 - ld a, $80 - ld hl, $9887 - call Func_14209 - ld hl, $98a7 - call Func_14209 - ld hl, $98c7 - call Func_14209 - ld hl, $98e7 - ; fall through + ld a, $80 + hlCoord 7, 4, vBGMap + call Func_14209 + hlCoord 7, 5, vBGMap + call Func_14209 + hlCoord 7, 6, vBGMap + call Func_14209 + hlCoord 7, 7, vBGMap + ; fall through Func_14209: ; 0x14209 - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ret + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ret Func_14210: ; 0x14210 - ld hl, $d586 - ld b, $18 + ld hl, wd586 + ld b, $18 .asm_14215 - ld a, [hli] - xor $1 - ld [hli], a - dec b - jr nz, .asm_14215 - ld [$ff8a], a - ld a, Bank(Func_10184) - ld hl, Func_10184 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_102bc) - ld hl, Func_102bc - call nz, BankSwitch - ret + ld a, [hli] + xor $1 + ld [hli], a + dec b + jr nz, .asm_14215 + callba Func_10184 + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_102bc) + ld hl, Func_102bc + call nz, BankSwitch + ret Func_14234: ; 0x14234 - ld a, [wInSpecialMode] - and a - ret z - ld a, [wSpecialMode] - cp $1 - ret nz - ld a, [$d554] - cp $3 - ret z - ld a, [wCurrentStage] - bit 0, a - jr nz, .asm_1425c - ld a, $36 - ld hl, $7e80 - ld de, $8900 - ld bc, $00e0 - call CopyDataToRAM - jr .asm_1426a + ld a, [wInSpecialMode] + and a + ret z + ld a, [wSpecialMode] + cp $1 + ret nz + ld a, [wd554] + cp $3 + ret z + ld a, [wCurrentStage] + bit 0, a + jr nz, .asm_1425c + ld a, BANK(Data_dbe80) + ld hl, Data_dbe80 + ld de, vTilesSH tile $10 + ld bc, $00e0 + call FarCopyData + jr .asm_1426a + .asm_1425c - ld a, $36 - ld hl, $7e80 - ld de, $8200 - ld bc, $00e0 - call CopyDataToRAM + ld a, BANK(Data_dbe80) + ld hl, Data_dbe80 + ld de, vTilesOB tile $20 + ld bc, $00e0 + call FarCopyData .asm_1426a - ld a, [$d551] - and a - ret z - ld a, [hGameBoyColorFlag] - and a - ret z - ld a, $37 - ld hl, $5188 - ld de, $0070 - ld bc, $0010 - call Func_6fd - ret + ld a, [wd551] + and a + ret z + ld a, [hGameBoyColorFlag] + and a + ret z + ld a, BANK(Data_dd188) + ld hl, Data_dd188 + ld de, $0070 + ld bc, $0010 + call Func_6fd + ret Func_14282: ; 0x14282 - ld a, [wInSpecialMode] - and a - jr z, .asm_1429e - ld a, [wSpecialMode] - and a - jr nz, .asm_14296 - ld a, [wNumMonHits] - and a - call nz, Func_142b3 - ret + ld a, [wInSpecialMode] + and a + jr z, .asm_1429e + ld a, [wSpecialMode] + and a + jr nz, .asm_14296 + ld a, [wNumMonHits] + and a + call nz, Func_142b3 + ret + .asm_14296 - cp $1 - jr nz, .asm_1429e - call Func_142c3 - ret + cp $1 + jr nz, .asm_1429e + call Func_142c3 + ret + .asm_1429e - ld a, [$d624] - call Func_174d4 - ld a, $36 - ld hl, $4f60 - ld de, $8ae0 - ld bc, $0020 - call CopyDataToRAM - ret + ld a, [wd624] + call Func_174d4 + ld a, BANK(Data_d8f60) + ld hl, Data_d8f60 + ld de, vTilesSH tile $2e + ld bc, $0020 + call FarCopyData + ret Func_142b3: ; 0x142b3 - push af - ld [$ff8a], a - ld a, Bank(Func_10611) - ld hl, Func_10611 - call BankSwitch - pop af - dec a - jr nz, Func_142b3 - ret + push af + callba Func_10611 + pop af + dec a + jr nz, Func_142b3 + ret Func_142c3: ; 0x142c3 - ld de, $0000 - ld a, [$d554] - and a - ret z - ld b, a + ld de, $0000 + ld a, [wd554] + and a + ret z + ld b, a .asm_142cc - ld a, [wCurrentEvolutionType] - call Func_142d7 - inc de - dec b - jr nz, .asm_142cc - ret + ld a, [wCurrentEvolutionType] + call Func_142d7 + inc de + dec b + jr nz, .asm_142cc + ret Func_142d7: ; 0x142d7 - push bc - push de - dec a - ld c, a - ld b, $0 - swap c - sla c - ld hl, $4e80 - add hl, bc - swap e - sla e - push hl - ld hl, $8ae0 - add hl, de - ld d, h - ld e, l - pop hl - ld bc, $0020 - ld a, $36 - call CopyDataToRAM - pop de - pop bc - ret + push bc + push de + dec a + ld c, a + ld b, $0 + swap c + sla c + ld hl, Data_d8e80 + add hl, bc + swap e + sla e + push hl + ld hl, vTilesSH tile $2e + add hl, de + ld d, h + ld e, l + pop hl + ld bc, $0020 + ld a, BANK(Data_d8e80) + call FarCopyData + pop de + pop bc + ret Func_142fc: ; 0x142fc - ld a, [$d4c8] - and a - jr nz, .asm_1430e - ld [$ff8a], a - ld a, Bank(LoadBallGfx) - ld hl, LoadBallGfx - call BankSwitch - jr .asm_14328 + ld a, [wd4c8] + and a + jr nz, .asm_1430e + callba LoadBallGfx + jr .asm_14328 + .asm_1430e - cp $1 - jr nz, .asm_1431e - ld [$ff8a], a - ld a, Bank(LoadMiniBallGfx) - ld hl, LoadMiniBallGfx - call BankSwitch - jr .asm_14328 + cp $1 + jr nz, .asm_1431e + callba LoadMiniBallGfx + jr .asm_14328 + .asm_1431e - ld [$ff8a], a - ld a, Bank(Func_dd62) - ld hl, Func_dd62 - call BankSwitch + callba Func_dd62 .asm_14328 - ld a, [hGameBoyColorFlag] - and a - ret z - ld a, [wBallType] - cp GREAT_BALL - jr nc, .notPokeball - ld a, $37 - ld hl, $5168 - ld de, $0040 - ld bc, $0008 - call Func_6fd - ret + ld a, [hGameBoyColorFlag] + and a + ret z + ld a, [wBallType] + cp GREAT_BALL + jr nc, .notPokeball + ld a, BANK(PokeBallObjPalette) + ld hl, PokeBallObjPalette + ld de, $0040 + ld bc, $0008 + call Func_6fd + ret + .notPokeball - cp ULTRA_BALL - jr nc, .notGreatball - ld a, $37 - ld hl, $5170 - ld de, $0040 - ld bc, $0008 - call Func_6fd - ret + cp ULTRA_BALL + jr nc, .notGreatball + ld a, BANK(GreatBallObjPalette) + ld hl, GreatBallObjPalette + ld de, $0040 + ld bc, $0008 + call Func_6fd + ret + .notGreatball - cp MASTER_BALL - jr nc, .notUltraball - ld a, $37 - ld hl, $5178 - ld de, $0040 - ld bc, $0008 - call Func_6fd - ret + cp MASTER_BALL + jr nc, .notUltraball + ld a, BANK(UltraBallObjPalette) + ld hl, UltraBallObjPalette + ld de, $0040 + ld bc, $0008 + call Func_6fd + ret + .notUltraball - ld a, $37 - ld hl, $5180 - ld de, $0040 - ld bc, $0008 - call Func_6fd - ret + ld a, BANK(MasterBallObjPalette) + ld hl, MasterBallObjPalette + ld de, $0040 + ld bc, $0008 + call Func_6fd + ret Func_14377: ; 0x14377 - ld a, [wInSpecialMode] - and a - jr nz, .asm_143b1 - ld a, [$d609] - and a - jr z, .asm_14393 - ld a, [$d498] - add $15 - ld [$ff8a], a - ld a, Bank(Func_30256) - ld hl, Func_30256 - call BankSwitch - ret + ld a, [wInSpecialMode] + and a + jr nz, .asm_143b1 + ld a, [wd609] + and a + jr z, .asm_14393 + ld a, [wd498] + add $15 + callba Func_30256 + ret + .asm_14393 - ld a, [$d608] - and a - jr z, .asm_143a6 - ld a, $1a - ld [$ff8a], a - ld a, Bank(Func_30256) - ld hl, Func_30256 - call BankSwitch - ret + ld a, [wd608] + and a + jr z, .asm_143a6 + ld a, $1a + callba Func_30256 + ret + .asm_143a6 - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ret + callba Func_30253 + ret + .asm_143b1 - ld a, [wSpecialMode] - cp $2 - ret nz - ld a, [$d54d] - cp $3 - jr nz, .asm_143c9 - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ret + ld a, [wSpecialMode] + cp $2 + ret nz + ld a, [wd54d] + cp $3 + jr nz, .asm_143c9 + callba Func_30253 + ret + .asm_143c9 - ld a, [$d604] - and a - ld a, $14 - jr nz, .asm_143d6 - ld a, [$d55a] - add $12 + ld a, [wd604] + and a + ld a, $14 + jr nz, .asm_143d6 + ld a, [wd55a] + add $12 .asm_143d6 - ld [$ff8a], a - ld a, Bank(Func_30256) - ld hl, Func_30256 - call BankSwitch - ret + callba Func_30256 + ret Func_143e1: ; 0x143e1 ; not collisions. - call Func_14474 ; voltorbs - call Func_14498 - call Func_144b6 - call Func_144c0 - call Func_144da - call Func_14439 - call Func_144ac - jp Func_1441e + call Func_14474 ; voltorbs + call Func_14498 + call Func_144b6 + call Func_144c0 + call Func_144da + call Func_14439 + call Func_144ac + jp Func_1441e Func_143f9: ; 0x143f9 - ld a, [wBallYPos + 1] - cp $56 - jr nc, .asm_14412 - call Func_1444d - call Func_144cd - call Func_14467 - call Func_1445a - call Func_14443 - jp Func_1441e + ld a, [wBallYPos + 1] + cp $56 + jr nc, .asm_14412 + call Func_1444d + call Func_144cd + call Func_14467 + call Func_1445a + call Func_14443 + jp Func_1441e + .asm_14412 - call Func_14481 - call Func_144e4 - call Func_144a2 - jp Func_1448e + call Func_14481 + call Func_144e4 + call Func_144a2 + jp Func_1448e Func_1441e: ; 0x1441e - xor a - ld [$d578], a - ld a, [$d551] - and a - ret z - ld a, [wCurrentStage] - ld hl, RedStageEvolutionTrinketCoordinatePointers - ld c, a - ld b, $0 - sla c - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - jp PinballCollideWithPoints - -INCBIN "baserom.gbc",$14439,$14439 - $14439 + xor a + ld [wd578], a + ld a, [wd551] + and a + ret z + ld a, [wCurrentStage] + ld hl, RedStageEvolutionTrinketCoordinatePointers + ld c, a + ld b, $0 + sla c + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp PinballCollideWithPoints Func_14439: ; 0x14439 - ld de, $45b5 - ld bc, $d5fe - scf - jp Func_2775 + ld de, Data_145b5 + ld bc, wd5fe + scf + jp Func_2775 Func_14443: ; 0x14443 - ld de, $45bb - ld bc, $d601 - scf - jp Func_2775 + ld de, Data_145bb + ld bc, wd601 + scf + jp Func_2775 Func_1444d: ; 0x1444d - ld de, $45af - ld hl, $459d - ld bc, $d5c7 - and a - jp Func_2775 + ld de, Data_145af + ld hl, Data_1459d + ld bc, wd5c7 + and a + jp Func_2775 Func_1445a: ; 0x1445a - ld de, $45c9 - ld hl, $45c1 - ld bc, $d60a - and a - jp Func_2775 + ld de, Data_145c9 + ld hl, Data_145c1 + ld bc, wd60a + and a + jp Func_2775 Func_14467: ; 0x14467 - ld de, $44f4 - ld hl, $44ee - ld bc, $d4ed - and a - jp Func_2775 + ld de, Data_144f4 + ld hl, Data_144ee + ld bc, wd4ed + and a + jp Func_2775 Func_14474: ; 0x14474 - ld de, $4515 ; todo - ld hl, $44fd ; todo - ld bc, $d4cb - and a - jp Func_2775 + ld de, Data_14515 + ld hl, Data_144fd + ld bc, wd4cb + and a + jp Func_2775 Func_14481: ; 0x14481 - ld de, $452d - ld hl, $4521 - ld bc, $d4d8 - and a - jp Func_2775 + ld de, Data_1452d + ld hl, Data_14521 + ld bc, wd4d8 + and a + jp Func_2775 Func_1448e: ; 0x1448e - ld de, $4536 - ld bc, $d4dc - scf - jp Func_2775 + ld de, Data_14536 + ld bc, wd4dc + scf + jp Func_2775 Func_14498: ; 0x14498 - ld de, $453c ; todo - ld bc, $d507 - scf - jp Func_2775 + ld de, Data_1453c + ld bc, wd507 + scf + jp Func_2775 Func_144a2: ; 0x144a2 - ld de, $4542 - ld bc, $d50d - scf - jp Func_2775 + ld de, Data_14542 + ld bc, wd50d + scf + jp Func_2775 Func_144ac: ; 0x144ac - ld de, $4551 - ld bc, $d5f7 - scf - jp Func_2775 + ld de, Data_14551 + ld bc, wd5f7 + scf + jp Func_2775 Func_144b6: ; 0x144b6 - ld de, $455d ; todo - ld bc, $d51f - scf - jp Func_2775 + ld de, Data_1455d + ld bc, wd51f + scf + jp Func_2775 Func_144c0: ; 0x144c0 - ld de, $457d ; todo - ld hl, $4578 ; todo - ld bc, $d500 - and a - jp Func_2775 + ld de, Data_1457d + ld hl, Data_14578 + ld bc, wd500 + and a + jp Func_2775 Func_144cd: ; 0x144cd - ld de, $4588 - ld hl, $4583 - ld bc, $d500 - and a - jp Func_2775 - -INCBIN "baserom.gbc",$144da,$144da - $144da + ld de, Data_14588 + ld hl, Data_14583 + ld bc, wd500 + and a + jp Func_2775 Func_144da: ; 0x144da - ld de, $458e - ld bc, $d4fb - scf - jp Func_2775 + ld de, Data_1458e + ld bc, wd4fb + scf + jp Func_2775 Func_144e4: ; 0x144e4 - ld de, $4594 - ld bc, $d515 - scf - jp Func_2775 + ld de, Data_14594 + ld bc, wd515 + scf + jp Func_2775 + +Data_144ee: + dr $144ee, $144f4 + +Data_144f4: + dr $144f4, $144fd + +Data_144fd: + dr $144fd, $14515 + +Data_14515: + dr $14515, $14521 + +Data_14521: + dr $14521, $1452d + +Data_1452d: + dr $1452d, $14536 + +Data_14536: + dr $14536, $1453c + +Data_1453c: + dr $1453c, $14542 + +Data_14542: + dr $14542, $14551 + +Data_14551: + dr $14551, $1455d + +Data_1455d: + dr $1455d, $14578 + +Data_14578: + dr $14578, $1457d + +Data_1457d: + dr $1457d, $14583 + +Data_14583: + dr $14583, $14588 + +Data_14588: + dr $14588, $1458e + +Data_1458e: + dr $1458e, $14594 -INCBIN "baserom.gbc",$144ee,$145d2 - $144ee +Data_14594: + dr $14594, $1459d + +Data_1459d: + dr $1459d, $145af + +Data_145af: + dr $145af, $145b5 + +Data_145b5: + dr $145b5, $145bb + +Data_145bb: + dr $145bb, $145c1 + +Data_145c1: + dr $145c1, $145c9 + +Data_145c9: + dr $145c9, $145d2 RedStageEvolutionTrinketCoordinatePointers: ; 0x145d2 - dw RedStageTopEvolutionTrinketCoords - dw RedStageBottomEvolutionTrinketCoords + dw RedStageTopEvolutionTrinketCoords + dw RedStageBottomEvolutionTrinketCoords RedStageTopEvolutionTrinketCoords: ; 0x156d6 ; First byte is just non-zero to signify that the array hasn't ended. ; Second byte is x coordinate. ; Third byte is y coordinate. - db $01, $44, $14 - db $01, $2A, $1A - db $01, $5E, $1A - db $01, $11, $2D - db $01, $77, $2D - db $01, $16, $3E - db $01, $77, $3E - db $01, $06, $6D - db $01, $83, $6D - db $01, $41, $82 - db $01, $51, $82 - db $01, $69, $82 - db $00 ; terminator + db $01, $44, $14 + db $01, $2A, $1A + db $01, $5E, $1A + db $01, $11, $2D + db $01, $77, $2D + db $01, $16, $3E + db $01, $77, $3E + db $01, $06, $6D + db $01, $83, $6D + db $01, $41, $82 + db $01, $51, $82 + db $01, $69, $82 + db $00 ; terminator RedStageBottomEvolutionTrinketCoords: ; 0x145fb ; First byte is just non-zero to signify that the array hasn't ended. ; Second byte is x coordinate. ; Third byte is y coordinate. - db $01, $35, $1B - db $01, $53, $1B - db $01, $29, $1F - db $01, $5F, $1F - db $01, $26, $34 - db $01, $62, $34 - db $00 ; terminator + db $01, $35, $1B + db $01, $53, $1B + db $01, $29, $1F + db $01, $5F, $1F + db $01, $26, $34 + db $01, $62, $34 + db $00 ; terminator Func_1460e: ; 0x1460e ; not collisions - call Func_14d85 - call Func_14dea - call Func_1535d - call HandleBallTypeUpgradeCounterRedField - call Func_15270 - call Func_1581f - call Func_1660c - call Func_16781 - call Func_15e93 - call Func_160f0 - call Func_161e0 - call Func_164e3 - call Func_146a9 - call Func_174ea - call Func_148cf - ld [$ff8a], a - ld a, Bank(Func_30188) - ld hl, Func_30188 - call BankSwitch - ld a, $0 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret + call Func_14d85 + call Func_14dea + call Func_1535d + call HandleBallTypeUpgradeCounterRedField + call Func_15270 + call Func_1581f + call Func_1660c + call Func_16781 + call Func_15e93 + call Func_160f0 + call Func_161e0 + call Func_164e3 + call Func_146a9 + call Func_174ea + call Func_148cf + callba Func_30188 + ld a, $0 + callba Func_10000 + ret Func_14652: ; 0x14652 - call Func_14795 - call Func_15f86 - call Func_147aa - call Func_14880 - call Func_14e10 - call Func_154a9 - call HandleBallTypeUpgradeCounterRedField - call Func_151cb - call Func_1652d - call Func_1660c - call Func_167ff - call Func_169a6 - call Func_16d9d - call Func_16279 - call Func_161af - call Func_164e3 - call Func_14733 - call Func_146a2 - call Func_174d0 - ld [$ff8a], a - ld a, Bank(Func_30188) - ld hl, Func_30188 - call BankSwitch - ld a, $0 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret + call Func_14795 + call Func_15f86 + call Func_147aa + call Func_14880 + call Func_14e10 + call Func_154a9 + call HandleBallTypeUpgradeCounterRedField + call Func_151cb + call Func_1652d + call Func_1660c + call Func_167ff + call Func_169a6 + call Func_16d9d + call Func_16279 + call Func_161af + call Func_164e3 + call Func_14733 + call Func_146a2 + call Func_174d0 + callba Func_30188 + ld a, $0 + callba Func_10000 + ret Func_146a2: ; 0x146a2 - call Func_146a9 - call nz, Func_14707 - ret + call Func_146a9 + call nz, Func_14707 + ret Func_146a9: ; 0x146a9 - ld a, [wBallSaverTimerFrames] - ld hl, wBallSaverTimerSeconds - or [hl] - ret z - ld a, [wBallXPos + 1] - cp $9a - jr nc, .asm_146e8 - ld a, [wBallSaverTimerFrames] - dec a - ld [wBallSaverTimerFrames], a - bit 7, a - jr z, .asm_146e8 - ld a, $3b - ld [wBallSaverTimerFrames], a - ld a, [hl] - dec a - bit 7, a - jr nz, .asm_146cf - ld [hl], a + ld a, [wBallSaverTimerFrames] + ld hl, wBallSaverTimerSeconds + or [hl] + ret z + ld a, [wBallXPos + 1] + cp $9a + jr nc, .asm_146e8 + ld a, [wBallSaverTimerFrames] + dec a + ld [wBallSaverTimerFrames], a + bit 7, a + jr z, .asm_146e8 + ld a, 59 + ld [wBallSaverTimerFrames], a + ld a, [hl] + dec a + bit 7, a + jr nz, .asm_146cf + ld [hl], a .asm_146cf - inc a - ld c, $0 - cp $2 - jr c, .asm_146e4 - ld c, $4 - cp $6 - jr c, .asm_146e4 - ld c, $10 - cp $b - jr c, .asm_146e4 - ld c, $ff + inc a + ld c, $0 + cp $2 + jr c, .asm_146e4 + ld c, $4 + cp $6 + jr c, .asm_146e4 + ld c, $10 + cp $b + jr c, .asm_146e4 + ld c, $ff .asm_146e4 - ld a, c - ld [$d4a2], a + ld a, c + ld [wd4a2], a .asm_146e8 - ld a, [$d4a2] - ld c, $0 - and a - jr z, .asm_146fe - ld c, $1 - cp $ff - jr z, .asm_146fe - ld hl, $ffb3 - and [hl] - jr z, .asm_146fe - ld c, $0 + ld a, [wd4a2] + ld c, $0 + and a + jr z, .asm_146fe + ld c, $1 + cp $ff + jr z, .asm_146fe + ld hl, hNumFramesDropped + and [hl] + jr z, .asm_146fe + ld c, $0 .asm_146fe - ld a, [wBallSaverIconOn] - cp c - ld a, c - ld [wBallSaverIconOn], a - ret + ld a, [wBallSaverIconOn] + cp c + ld a, c + ld [wBallSaverIconOn], a + ret Func_14707: ; 0x14707 - ld a, [wBallSaverIconOn] - and a - jr nz, .asm_1471c - ld a, $5 - ld hl, $472b - ld de, $99a8 - ld bc, $0004 - call Func_735 - ret + ld a, [wBallSaverIconOn] + and a + jr nz, .asm_1471c + ld a, BANK(Data_1172b) + ld hl, Data_1172b + deCoord 8, 13, vBGMap + ld bc, $0004 + call LoadOrCopyVRAMData + ret + .asm_1471c - ld a, $5 - ld hl, $472f - ld de, $99a8 - ld bc, $0004 - call Func_735 - ret + ld a, BANK(Data_1472f) + ld hl, Data_1472f + deCoord 8, 13, vBGMap + ld bc, $0004 + call LoadOrCopyVRAMData + ret -INCBIN "baserom.gbc",$1472b,$14733 - $1472b +Data_1172b: + dr $1472b, $1472f + +Data_1472f: + dr $1472f, $14733 Func_14733: ; 0x14733 - ld c, $0 - ld a, [$d49b] - and a - jr z, .asm_1473d - ld c, $1 + ld c, $0 + ld a, [wd49b] + and a + jr z, .asm_1473d + ld c, $1 .asm_1473d - ld a, [$d4a9] - cp c - ld a, c - ld [$d4a9], a - ret z - ; fall through + ld a, [wd4a9] + cp c + ld a, c + ld [wd4a9], a + ret z + ; fall through Func_14746: ; 0x14746 - ld c, $0 - ld a, [$d49b] - and a - jr z, .asm_14750 - ld c, $2 + ld c, $0 + ld a, [wd49b] + and a + jr z, .asm_14750 + ld c, $2 .asm_14750 - ld b, $0 - ld hl, $475f - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $5 - call Func_10aa - ret - -INCBIN "baserom.gbc",$1475f,$14795 - $1475f + ld b, $0 + ld hl, Data_1475f + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, BANK(Data_1475f) + call Func_10aa + ret + +Data_1475f: + dw Data_14763 + dw Data_14768 + +Data_14763: + db 2 + dw Data_1476d + dw Data_14777 + +Data_14768: + db 2 + dw Data_14781 + dw Data_1478b + +Data_1476d: + dr $1476d, $14777 + +Data_14777: + dr $14777, $14781 + +Data_14781: + dr $14781, $1478b + +Data_1478b: + dr $1478b, $14795 Func_14795: ; 0x14795 - ld a, [$d5c7] - and a - ret z - xor a - ld [$d5c7], a - ld a, $1 - ld [$d5bf], a - ld de, $0006 - call PlaySoundEffect - ret + ld a, [wd5c7] + and a + ret z + xor a + ld [wd5c7], a + ld a, $1 + ld [wBallHitWildMon], a + lb de, $00, $06 + call PlaySoundEffect + ret Func_147aa: ; 0x147aa - ld a, [$d4ed] - and a - jp z, .asm_14834 - xor a - ld [$d4ed], a - ld a, [$d4ee] - sub $1 - sla a - ld c, a - ld b, $0 - ld hl, wLeftMapMoveCounter - add hl, bc - ld a, [hl] - cp $3 - jr z, .asm_14834 - inc a - ld [hld], a - ld [hl], $50 - ld hl, $d4f7 - add hl, bc - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, c - and a - jr z, .asm_14807 - ld a, $6a - ld [$c7f0], a - ld a, $6b - ld [$c810], a - ld a, $5 - call Func_149d9 - ld a, [wRightMapMoveCounter] - add $4 - call Func_149f5 - ld a, $8 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, [wRightMapMoveCounter] - cp $3 - call z, Func_14920 - jr .asm_14830 + ld a, [wd4ed] + and a + jp z, .asm_14834 + xor a + ld [wd4ed], a + ld a, [wd4ee] + sub $1 + sla a + ld c, a + ld b, $0 + ld hl, wLeftMapMoveCounter + add hl, bc + ld a, [hl] + cp $3 + jr z, .asm_14834 + inc a + ld [hld], a + ld [hl], $50 + ld hl, wd4f7 + add hl, bc + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, c + and a + jr z, .asm_14807 + ld a, $6a + ld [wc7f0], a + ld a, $6b + ld [wc810], a + ld a, $5 + call Func_149d9 + ld a, [wRightMapMoveCounter] + add $4 + call Func_149f5 + ld a, $8 + callba Func_10000 + ld a, [wRightMapMoveCounter] + cp $3 + call z, Func_14920 + jr .asm_14830 + .asm_14807 - ld a, $66 - ld [$c7e3], a - ld a, $67 - ld [$c803], a - ld a, $2 - call Func_149d9 - ld a, [wLeftMapMoveCounter] - call Func_149f5 - ld a, $7 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, [wLeftMapMoveCounter] - cp $3 - call z, Func_14947 + ld a, $66 + ld [wc7e3], a + ld a, $67 + ld [wc803], a + ld a, $2 + call Func_149d9 + ld a, [wLeftMapMoveCounter] + call Func_149f5 + ld a, $7 + callba Func_10000 + ld a, [wLeftMapMoveCounter] + cp $3 + call z, Func_14947 .asm_14830 - call Func_1496d - ret + call Func_1496d + ret + .asm_14834 - ld a, [$d4ef] - and a - jr z, .asm_14857 - dec a - ld [$d4ef], a - jr nz, .asm_14857 - ld a, [wLeftMapMoveCounter] - sub $3 - jr nz, .asm_1484d - ld [wLeftMapMoveCounter], a - call Func_149f5 + ld a, [wd4ef] + and a + jr z, .asm_14857 + dec a + ld [wd4ef], a + jr nz, .asm_14857 + ld a, [wLeftMapMoveCounter] + sub $3 + jr nz, .asm_1484d + ld [wLeftMapMoveCounter], a + call Func_149f5 .asm_1484d - ld a, $64 - ld [$c7e3], a - ld a, $65 - ld [$c803], a + ld a, $64 + ld [wc7e3], a + ld a, $65 + ld [wc803], a .asm_14857 - ld a, [$d4f1] - and a - jr z, .asm_1487c - dec a - ld [$d4f1], a - jr nz, .asm_1487c - ld a, [wRightMapMoveCounter] - sub $3 - jr nz, .asm_14872 - ld [wRightMapMoveCounter], a - add $4 - call Func_149f5 + ld a, [wd4f1] + and a + jr z, .asm_1487c + dec a + ld [wd4f1], a + jr nz, .asm_1487c + ld a, [wRightMapMoveCounter] + sub $3 + jr nz, .asm_14872 + ld [wRightMapMoveCounter], a + add $4 + call Func_149f5 .asm_14872 - ld a, $68 - ld [$c7f0], a - ld a, $69 - ld [$c810], a + ld a, $68 + ld [wc7f0], a + ld a, $69 + ld [wc810], a .asm_1487c - call Func_14990 - ret + call Func_14990 + ret Func_14880: ; 0x14880 - ld hl, $d4f7 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_148a6 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_148a6 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wLeftMapMoveCounter] - and a - jr z, .asm_148a6 - cp $3 - jr z, .asm_148a6 - dec a - ld [wLeftMapMoveCounter], a - call Func_149f5 + ld hl, wd4f7 + dec [hl] + ld a, [hli] + cp $ff + jr nz, .asm_148a6 + dec [hl] + ld a, [hld] + cp $ff + jr nz, .asm_148a6 + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wLeftMapMoveCounter] + and a + jr z, .asm_148a6 + cp $3 + jr z, .asm_148a6 + dec a + ld [wLeftMapMoveCounter], a + call Func_149f5 .asm_148a6 - ld hl, $d4f9 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_148ce - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_148ce - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wRightMapMoveCounter] - and a - jr z, .asm_148ce - cp $3 - jr z, .asm_148ce - dec a - ld [wRightMapMoveCounter], a - add $4 - call Func_149f5 + ld hl, wd4f9 + dec [hl] + ld a, [hli] + cp $ff + jr nz, .asm_148ce + dec [hl] + ld a, [hld] + cp $ff + jr nz, .asm_148ce + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wRightMapMoveCounter] + and a + jr z, .asm_148ce + cp $3 + jr z, .asm_148ce + dec a + ld [wRightMapMoveCounter], a + add $4 + call Func_149f5 .asm_148ce - ret + ret Func_148cf: ; 0x148cf - ld b, $0 - ld hl, $d4f8 - ld a, [hld] - or [hl] - jr z, .asm_148f8 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_148f8 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_148f8 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wLeftMapMoveCounter] - and a - jr z, .asm_148f8 - cp $3 - jr z, .asm_148f8 - dec a - ld [wLeftMapMoveCounter], a + ld b, $0 + ld hl, wd4f8 + ld a, [hld] + or [hl] + jr z, .asm_148f8 + dec [hl] + ld a, [hli] + cp $ff + jr nz, .asm_148f8 + dec [hl] + ld a, [hld] + cp $ff + jr nz, .asm_148f8 + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wLeftMapMoveCounter] + and a + jr z, .asm_148f8 + cp $3 + jr z, .asm_148f8 + dec a + ld [wLeftMapMoveCounter], a .asm_148f8 - ld hl, $d4fa - ld a, [hld] - or [hl] - jr z, .asm_1491f - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1491f - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1491f - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wRightMapMoveCounter] - and a - jr z, .asm_1491f - cp $3 - jr z, .asm_1491f - dec a - ld [wRightMapMoveCounter], a + ld hl, wd4fa + ld a, [hld] + or [hl] + jr z, .asm_1491f + dec [hl] + ld a, [hli] + cp $ff + jr nz, .asm_1491f + dec [hl] + ld a, [hld] + cp $ff + jr nz, .asm_1491f + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wRightMapMoveCounter] + and a + jr z, .asm_1491f + cp $3 + jr z, .asm_1491f + dec a + ld [wRightMapMoveCounter], a .asm_1491f - ret + ret Func_14920: ; 0x14920 - ld hl, $d62b - call Func_e4a - jr nc, .asm_14937 - ld c, $a - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch + ld hl, wd62b + call Func_e4a + jr nc, .asm_14937 + ld c, $a + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch .asm_14937 - ld a, $1 - ld [$d55a], a - ld [$ff8a], a - ld a, Bank(StartMapMoveMode) - ld hl, StartMapMoveMode - call BankSwitch - ret + ld a, $1 + ld [wd55a], a + callba StartMapMoveMode + ret Func_14947: ; 0x14947 - ld hl, $d62b - call Func_e4a - jr nc, .asm_1495e - ld c, $a - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch + ld hl, wd62b + call Func_e4a + jr nc, .asm_1495e + ld c, $a + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch .asm_1495e - xor a - ld [$d55a], a - ld [$ff8a], a - ld a, Bank(StartMapMoveMode) - ld hl, StartMapMoveMode - call BankSwitch - ret + xor a + ld [wd55a], a + callba StartMapMoveMode + ret Func_1496d: ; 0x1496d - ld a, $55 - ld [$d803], a - ld a, $4 - ld [$d804], a - ld a, $2 - ld [$d7eb], a - ld bc, $34be - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld de, $000f - call PlaySoundEffect - ret + ld a, $55 + ld [wd803], a + ld a, $4 + ld [wd804], a + ld a, $2 + ld [wd7eb], a + ld bc, FiveHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + lb de, $00, $0f + call PlaySoundEffect + ret Func_14990: ; 0x14990 - ld a, [$d4ef] - and a - jr nz, .asm_149b6 - ld a, [wLeftMapMoveDiglettAnimationCounter] - and a - jr z, .asm_149a2 - dec a - ld [wLeftMapMoveDiglettAnimationCounter], a - jr .asm_149b6 + ld a, [wd4ef] + and a + jr nz, .asm_149b6 + ld a, [wLeftMapMoveDiglettAnimationCounter] + and a + jr z, .asm_149a2 + dec a + ld [wLeftMapMoveDiglettAnimationCounter], a + jr .asm_149b6 + .asm_149a2 - call Func_1130 - ret nz - ld a, $14 - ld [wLeftMapMoveDiglettAnimationCounter], a - ld a, [wLeftMapMoveDiglettFrame] - xor $1 - ld [wLeftMapMoveDiglettFrame], a - call Func_149d9 + call Func_1130 + ret nz + ld a, $14 + ld [wLeftMapMoveDiglettAnimationCounter], a + ld a, [wLeftMapMoveDiglettFrame] + xor $1 + ld [wLeftMapMoveDiglettFrame], a + call Func_149d9 .asm_149b6 - ld a, [$d4f1] - and a - ret nz - ld a, [wRightMapMoveDiglettAnimationCounter] - and a - jr z, .asm_149c6 - dec a - ld [wRightMapMoveDiglettAnimationCounter], a - ret + ld a, [wd4f1] + and a + ret nz + ld a, [wRightMapMoveDiglettAnimationCounter] + and a + jr z, .asm_149c6 + dec a + ld [wRightMapMoveDiglettAnimationCounter], a + ret + .asm_149c6 - call Func_1130 - ret nz - ld a, $14 - ld [wRightMapMoveDiglettAnimationCounter], a - ld a, [wRightMapMoveDiglettFrame] - xor $1 - ld [wRightMapMoveDiglettFrame], a - add $3 - ; fall through + call Func_1130 + ret nz + ld a, $14 + ld [wRightMapMoveDiglettAnimationCounter], a + ld a, [wRightMapMoveDiglettFrame] + xor $1 + ld [wRightMapMoveDiglettFrame], a + add $3 + ; fall through Func_149d9: ; 0x149d9 - sla a - ld c, a - ld b, $0 - ld hl, $4a11 ; todo - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_149e9 - ld hl, $4a83 ; todo + sla a + ld c, a + ld b, $0 + ld hl, Data_14a11 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_149e9 + ld hl, Data_14a83 .asm_149e9 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $5 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, BANK(Data_14a11) + call Func_10aa + ret Func_149f5: ; 0x149f5 - sla a - ld c, a - ld b, $0 - ld hl, $4af5 ; todo - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_14a05 - ld hl, $4c8d ; todo + sla a + ld c, a + ld b, $0 + ld hl, Data_14af5 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_14a05 + ld hl, Data_14c8d .asm_14a05 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $5 - call Func_10aa - ret - -INCBIN "baserom.gbc",$14a11,$14d85 - $14a11 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, BANK(Data_14af5) + call Func_10aa + ret + +Data_14a11: + dr $14a11, $14a83 + +Data_14a83: + dr $14a83, $14af5 + +Data_14af5: + dr $14af5, $14c8d + +Data_14c8d: + dr $14c8d, $14d85 Func_14d85: ; 0x14d85 - ld a, [$d4cb] - and a - jr z, .asm_14db9 - xor a - ld [$d4cb], a - call Func_14dc9 - ld a, $10 - ld [$d4d6], a - ld a, [$d4cc] - sub $3 - ld [$d4d7], a - ld a, $4 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld bc, $34be - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ret + ld a, [wd4cb] + and a + jr z, .asm_14db9 + xor a + ld [wd4cb], a + call Func_14dc9 + ld a, $10 + ld [wd4d6], a + ld a, [wd4cc] + sub $3 + ld [wd4d7], a + ld a, $4 + callba Func_10000 + ld bc, FiveHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ret + .asm_14db9 - ld a, [$d4d6] - and a - ret z - dec a - ld [$d4d6], a - ret nz - ld a, $ff - ld [$d4d7], a - ret + ld a, [wd4d6] + and a + ret z + dec a + ld [wd4d6], a + ret nz + ld a, $ff + ld [wd4d7], a + ret Func_14dc9: ; 0x14dc9 - ld a, $ff - ld [$d803], a - ld a, $3 - ld [$d804], a - ld hl, $0200 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a - ld de, $000e - call PlaySoundEffect - ret + ld a, $ff + ld [wd803], a + ld a, $3 + ld [wd804], a + ld hl, $0200 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a + lb de, $00, $0e + call PlaySoundEffect + ret Func_14dea: ; 0x14dea - ld a, [$d507] - and a - jr z, Func_14e10 - xor a - ld [$d507], a - ld a, [wBallYVelocity] - ld c, a - ld a, [wBallYVelocity + 1] - ld b, a - ld a, c - ld [$d50b], a - ld a, b - ld [$d50c], a - ld a, $c - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ; fall through + ld a, [wd507] + and a + jr z, Func_14e10 + xor a + ld [wd507], a + ld a, [wBallYVelocity] + ld c, a + ld a, [wBallYVelocity + 1] + ld b, a + ld a, c + ld [wd50b], a + ld a, b + ld [wd50c], a + ld a, $c + callba Func_10000 + ; fall through Func_14e10: ; 0x14e10 - ld hl, $d50b - ld a, [hli] - or [hl] - ret z - ld a, [$d50b] - ld c, a - ld a, [$d50c] - ld b, a - bit 7, b - jr nz, .asm_14e2e - ld a, c - sub $7 - ld c, a - ld a, b - sbc $0 - ld b, a - jr nc, .asm_14e3b - jr .asm_14e38 + ld hl, wd50b + ld a, [hli] + or [hl] + ret z + ld a, [wd50b] + ld c, a + ld a, [wd50c] + ld b, a + bit 7, b + jr nz, .asm_14e2e + ld a, c + sub $7 + ld c, a + ld a, b + sbc $0 + ld b, a + jr nc, .asm_14e3b + jr .asm_14e38 + .asm_14e2e - ld a, c - add $7 - ld c, a - ld a, b - adc $0 - ld b, a - jr nc, .asm_14e3b + ld a, c + add $7 + ld c, a + ld a, b + adc $0 + ld b, a + jr nc, .asm_14e3b .asm_14e38 - ld bc, $0000 + ld bc, $0000 .asm_14e3b - ld a, c - ld [$d50b], a - ld a, b - ld [$d50c], a - ld hl, $d50b - ld a, [$d509] - add [hl] - ld [$d509], a - inc hl - ld a, [$d50a] - adc [hl] - bit 7, a - ld c, $0 - jr z, .asm_14e5e - add $18 - ld c, $1 - jr .asm_14e66 + ld a, c + ld [wd50b], a + ld a, b + ld [wd50c], a + ld hl, wd50b + ld a, [wd509] + add [hl] + ld [wd509], a + inc hl + ld a, [wd50a] + adc [hl] + bit 7, a + ld c, $0 + jr z, .asm_14e5e + add $18 + ld c, $1 + jr .asm_14e66 + .asm_14e5e - cp $18 - jr c, .asm_14e66 - sub $18 - ld c, $1 + cp $18 + jr c, .asm_14e66 + sub $18 + ld c, $1 .asm_14e66 - ld [$d50a], a - ld a, c - and a - ret z - ld bc, $34ac - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld hl, $d62d - call Func_e4a - ld a, [$d517] - cp $f - jr nz, .asm_14e8a - call Func_14ea7 - ret + ld [wd50a], a + ld a, c + and a + ret z + ld bc, TenPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld hl, wd62d + call Func_e4a + ld a, [wd517] + cp $f + jr nz, .asm_14e8a + call Func_14ea7 + ret + .asm_14e8a - inc a - ld [$d517], a - call Func_14ea7 - ld a, [$d517] - cp $f - jr nz, .asm_14e9d - ld a, $64 - ld [$d51e], a + inc a + ld [wd517], a + call Func_14ea7 + ld a, [wd517] + cp $f + jr nz, .asm_14e9d + ld a, $64 + ld [wd51e], a .asm_14e9d - ld a, [wCurrentStage] - bit 0, a - ret nz - call Func_14ece - ret + ld a, [wCurrentStage] + bit 0, a + ret nz + call Func_14ece + ret Func_14ea7: ; 0x14ea7 - ld a, [$d51e] - and a - ret nz - ld a, [$d517] - ld c, a - ld b, $0 - ld hl, $4ebe ; todo - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - call PlaySoundEffect - ret - -INCBIN "baserom.gbc",$14ebe,$14ece - $14ebe + ld a, [wd51e] + and a + ret nz + ld a, [wd517] + ld c, a + ld b, $0 + ld hl, Data_14ebe + add hl, bc + ld a, [hl] + ld e, a + ld d, $0 + call PlaySoundEffect + ret + +Data_14ebe: + dr $14ebe, $14ece Func_14ece: ; 0x14ece - ld a, [$d517] - ld c, a - sla c - ld b, $0 - ld hl, $4eeb ; todo - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_14ee1 - ld hl, $509b + ld a, [wd517] + ld c, a + sla c + ld b, $0 + ld hl, Data_14eeb + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_14ee1 + ld hl, Data_1509b .asm_14ee1 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $5 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, BANK(Data_14eeb) + call Func_10aa + ret + +Data_14eeb: + dr $14eeb, $1509b -INCBIN "baserom.gbc",$14eeb,$151cb - $14eeb +Data_1509b: + dr $1509b, $151cb Func_151cb: ; 0x151cb - ld a, [$d50d] - and a - jr z, .asm_15229 - xor a - ld [$d50d], a - ld a, [$d513] - and a - jr nz, .asm_15229 - ld a, [$d50e] - sub $a - ld c, a - ld b, $0 - ld hl, $d50f - add hl, bc - ld a, [hl] - ld [hl], $1 - and a - ret nz - ld bc, $34b2 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld hl, $d50f - ld a, [hli] - and [hl] - inc hl - and [hl] - inc hl - and [hl] - jr z, Func_asm_1522d - ld a, $1 - ld [$d513], a - ld a, $80 - ld [$d514], a - ld bc, $34b8 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld de, $0009 - call PlaySoundEffect - ld hl, $d62c - call Func_e4a - jr Func_asm_1522d + ld a, [wd50d] + and a + jr z, .asm_15229 + xor a + ld [wd50d], a + ld a, [wd513] + and a + jr nz, .asm_15229 + ld a, [wd50e] + sub $a + ld c, a + ld b, $0 + ld hl, wd50f + add hl, bc + ld a, [hl] + ld [hl], $1 + and a + ret nz + ld bc, OneHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld hl, wd50f + ld a, [hli] + and [hl] + inc hl + and [hl] + inc hl + and [hl] + jr z, Func_asm_1522d + ld a, $1 + ld [wd513], a + ld a, $80 + ld [wd514], a + ld bc, FourHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + lb de, $00, $09 + call PlaySoundEffect + ld hl, wd62c + call Func_e4a + jr Func_asm_1522d + .asm_15229 - call Func_15270 - ret z - ; fall through + call Func_15270 + ret z + ; fall through Func_asm_1522d: ; 0x1522d - ld hl, $d512 - ld b, $4 + ld hl, wd512 + ld b, $4 .asm_15232 - ld a, [hld] - push hl - call Func_1523c - pop hl - dec b - jr nz, .asm_15232 - ret + ld a, [hld] + push hl + call Func_1523c + pop hl + dec b + jr nz, .asm_15232 + ret Func_1523c: ; 0x1523c - and a - jr z, .asm_1524e - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_15249 - ld hl, $52dd ; todo - jr .asm_1525b + and a + jr z, .asm_1524e + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_15249 + ld hl, Data_152dd + jr .asm_1525b + .asm_15249 - ld hl, $531d ; todo - jr .asm_1525b + ld hl, Data_1531d + jr .asm_1525b + .asm_1524e - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_15258 - ld hl, $52e5 - jr .asm_1525b + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_15258 + ld hl, Data_152e5 + jr .asm_1525b + .asm_15258 - ld hl, $5325 + ld hl, Data_15325 .asm_1525b - push bc - dec b - sla b - ld e, b - ld d, $0 - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - ld a, $5 - ld de, LoadTileLists - call Func_10c5 - pop bc - ret + push bc + dec b + sla b + ld e, b + ld d, $0 + add hl, de + ld c, [hl] + inc hl + ld b, [hl] + ld a, $5 + ld de, LoadTileLists + call Func_10c5 + pop bc + ret Func_15270: ; 0x15270 - ld a, [$d513] - and a - jr z, .asm_152a6 - ld a, [$d514] - dec a - ld [$d514], a - jr nz, .asm_1528d - ld [$d513], a - ld a, $1 - ld [$d608], a - ld a, $3 - ld [$d607], a - xor a + ld a, [wd513] + and a + jr z, .asm_152a6 + ld a, [wd514] + dec a + ld [wd514], a + jr nz, .asm_1528d + ld [wd513], a + ld a, $1 + ld [wd608], a + ld a, $3 + ld [wd607], a + xor a .asm_1528d - and $7 - ret nz - ld a, [$d514] - srl a - srl a - srl a - and $1 - ld hl, $d50f - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - ld a, $1 - and a - ret + and $7 + ret nz + ld a, [wd514] + srl a + srl a + srl a + and $1 + ld hl, wd50f + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $1 + and a + ret + .asm_152a6 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed - jr z, .asm_152c2 - ld hl, $d50f - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld a, c - ld [hld], a - ld a, d - ld [hld], a - ld a, e - ld [hld], a - ld a, b - ld [hl], a - ret + ld hl, wKeyConfigLeftFlipper + call IsKeyPressed + jr z, .asm_152c2 + ld hl, wd50f + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld a, c + ld [hld], a + ld a, d + ld [hld], a + ld a, e + ld [hld], a + ld a, b + ld [hl], a + ret + .asm_152c2 - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - ret z - ld hl, $d50f - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld a, e - ld [hld], a - ld a, b - ld [hld], a - ld a, c - ld [hld], a - ld a, d - ld [hl], a - ret - -INCBIN "baserom.gbc",$152dd,$1535d - $152dd + ld hl, wKeyConfigRightFlipper + call IsKeyPressed + ret z + ld hl, wd50f + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld a, e + ld [hld], a + ld a, b + ld [hld], a + ld a, c + ld [hld], a + ld a, d + ld [hl], a + ret + +Data_152dd: + dr $152dd, $152e5 + +Data_152e5: + dr $152e5, $1531d + +Data_1531d: + dr $1531d, $15325 + +Data_15325: + dr $15325, $1535d Func_1535d: ; 0x1535d - ld a, [$d5f7] - and a - jp z, .asm_1544c - xor a - ld [$d5f7], a - ld a, [wStageCollisionState] - bit 0, a - jp z, .asm_1544c - ld a, [$d5fc] - and a - jp nz, .asm_1544c - xor a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - call Func_159c9 - ld a, $b - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, [$d5f8] - sub $e - ld c, a - ld b, $0 - ld hl, $d5f9 - add hl, bc - ld a, [hl] - ld [hl], $1 - and a - ret nz - ld bc, $34b2 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld hl, $d5f9 - ld a, [hli] - and [hl] - inc hl - and [hl] - jr nz, .asm_153c0 - ld de, $0009 - call PlaySoundEffect - jp Func_15450 + ld a, [wd5f7] + and a + jp z, .asm_1544c + xor a + ld [wd5f7], a + ld a, [wStageCollisionState] + bit 0, a + jp z, .asm_1544c + ld a, [wd5fc] + and a + jp nz, .asm_1544c + xor a + ld [wRightAlleyTrigger], a + ld [wLeftAlleyTrigger], a + ld [wSecondaryLeftAlleyTrigger], a + call Func_159c9 + ld a, $b + callba Func_10000 + ld a, [wd5f8] + sub $e + ld c, a + ld b, $0 + ld hl, wd5f9 + add hl, bc + ld a, [hl] + ld [hl], $1 + and a + ret nz + ld bc, OneHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld hl, wd5f9 + ld a, [hli] + and [hl] + inc hl + and [hl] + jr nz, .asm_153c0 + lb de, $00, $09 + call PlaySoundEffect + jp Func_15450 + .asm_153c0 - ld a, $1 - ld [$d5fc], a - ld a, $80 - ld [$d5fd], a - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a - ld bc, $34b8 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld a, [wBallType] - cp MASTER_BALL - jr z, .masterBall - ld de, $063a - call PlaySoundEffect - call Func_30e8 - call Func_30db - ld de, $2907 - ld hl, $d5cc - call Func_32aa - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeProgressionRedField - add hl, bc - ld a, [hl] - ld [wBallType], a - add $30 - ld [$c512], a - jr .asm_15447 + ld a, $1 + ld [wd5fc], a + ld a, $80 + ld [wd5fd], a + ; load approximately 1 minute of frames into wBallTypeCounter + ld a, $10 + ld [wBallTypeCounter], a + ld a, $e + ld [wBallTypeCounter + 1], a + ld bc, FourHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld a, [wBallType] + cp MASTER_BALL + jr z, .masterBall + lb de, $06, $3a + call PlaySoundEffect + call Fillwc600WithBlackTile + call Func_30db + ld de, FieldMultiplierText + ld hl, wd5cc + call LoadTextHeader + ld a, [wBallType] + ld c, a + ld b, $0 + ld hl, BallTypeProgressionRedField + add hl, bc + ld a, [hl] + ld [wBallType], a + add $30 + ld [wBottomMessageText + $12], a + jr .asm_15447 + .masterBall - ld de, $0f4d - call PlaySoundEffect - ld bc, $34e8 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld bc, $0100 - ld de, $0000 - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5d4 - ld de, $2948 - call Func_32cc - pop de - pop bc - ld hl, $d5cc - ld de, $2922 - call Func_32aa + lb de, $0f, $4d + call PlaySoundEffect + ld bc, OneMillionPoints + callba AddBigBCD6FromQueue + ld bc, $0100 + ld de, $0000 + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5d4 + ld de, DigitsText1to8 + call Func_32cc + pop de + pop bc + ld hl, wd5cc + ld de, FieldMultiplierSpecialBonusText + call LoadTextHeader .asm_15447 - call Func_155a7 - jr Func_15450 + call Func_155a7 + jr Func_15450 + .asm_1544c - call Func_154a9 - ret z + call Func_154a9 + ret z Func_15450 - ld a, [wStageCollisionState] - bit 0, a - ret z - ld hl, $d5fb - ld b, $3 + ld a, [wStageCollisionState] + bit 0, a + ret z + ld hl, wd5fb + ld b, $3 .asm_1545b - ld a, [hld] - push hl - call Func_15465 - pop hl - dec b - jr nz, .asm_1545b - ret + ld a, [hld] + push hl + call Func_15465 + pop hl + dec b + jr nz, .asm_1545b + ret Func_15465: ; 0x15465 - and a - jr z, .asm_15477 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_15472 - ld hl, $5511 ; todo - jr .asm_15484 + and a + jr z, .asm_15477 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_15472 + ld hl, Data_15511 + jr .asm_15484 + .asm_15472 - ld hl, $5543 ; todo - jr .asm_15484 + ld hl, Data_15543 + jr .asm_15484 + .asm_15477 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_15481 - ld hl, $5517 ; todo - jr .asm_15484 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_15481 + ld hl, Data_15517 + jr .asm_15484 + .asm_15481 - ld hl, $5549 ; todo + ld hl, Data_15549 .asm_15484 - push bc - dec b - sla b - ld e, b - ld d, $0 - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - ld a, $5 - ld de, LoadTileLists - call Func_10c5 - pop bc - ret + push bc + dec b + sla b + ld e, b + ld d, $0 + add hl, de + ld c, [hl] + inc hl + ld b, [hl] + ld a, $5 + ld de, LoadTileLists + call Func_10c5 + pop bc + ret Func_15499: ; 0x15499 - ld a, [hGameBoyColorFlag] - and a - ret nz - ld b, $3 + ld a, [hGameBoyColorFlag] + and a + ret nz + ld b, $3 .asm_1549f - push hl - xor a - call Func_15465 - pop hl - dec b - jr nz, .asm_1549f - ret + push hl + xor a + call Func_15465 + pop hl + dec b + jr nz, .asm_1549f + ret Func_154a9: ; 0x154a9 - ld a, [$d5fc] - and a - jr z, .asm_154d6 - ld a, [$d5fd] - dec a - ld [$d5fd], a - jr nz, .asm_154bb - ld [$d5fc], a + ld a, [wd5fc] + and a + jr z, .asm_154d6 + ld a, [wd5fd] + dec a + ld [wd5fd], a + jr nz, .asm_154bb + ld [wd5fc], a .asm_154bb - and $7 - jr nz, .asm_154d4 - ld a, [$d5fd] - srl a - srl a - srl a - and $1 - ld hl, $d5f9 - ld [hli], a - ld [hli], a - ld [hl], a - ld a, $1 - and a - ret + and $7 + jr nz, .asm_154d4 + ld a, [wd5fd] + srl a + srl a + srl a + and $1 + ld hl, wd5f9 + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $1 + and a + ret + .asm_154d4 - xor a - ret + xor a + ret + .asm_154d6 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed - jr z, .asm_154ee - ld hl, $d5f9 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld e, a - ld a, c - ld [hld], a - ld a, e - ld [hld], a - ld a, b - ld [hl], a - ret + ld hl, wKeyConfigLeftFlipper + call IsKeyPressed + jr z, .asm_154ee + ld hl, wd5f9 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hl] + ld e, a + ld a, c + ld [hld], a + ld a, e + ld [hld], a + ld a, b + ld [hl], a + ret + .asm_154ee - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - ret z - ld hl, $d5f9 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld e, a - ld a, b - ld [hld], a - ld a, c - ld [hld], a - ld a, e - ld [hl], a - ret + ld hl, wKeyConfigRightFlipper + call IsKeyPressed + ret z + ld hl, wd5f9 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hl] + ld e, a + ld a, b + ld [hld], a + ld a, c + ld [hld], a + ld a, e + ld [hl], a + ret BallTypeProgressionRedField: ; 0x15505 ; Determines the next upgrade for the Ball. - db GREAT_BALL ; POKE_BALL -> GREAT_BALL - db GREAT_BALL ; unused - db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL - db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL - db MASTER_BALL ; unused - db MASTER_BALL ; MASTER_BALL -> MASTER_BALL + db GREAT_BALL ; POKE_BALL -> GREAT_BALL + db GREAT_BALL ; unused + db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL + db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL + db MASTER_BALL ; unused + db MASTER_BALL ; MASTER_BALL -> MASTER_BALL BallTypeDegradationRedField: ; 0x1550b ; Determines the previous upgrade for the Ball. - db POKE_BALL ; POKE_BALL -> POKE_BALL - db POKE_BALL ; unused - db POKE_BALL ; GREAT_BALL -> POKE_BALL - db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL - db ULTRA_BALL ; unused - db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL + db POKE_BALL ; POKE_BALL -> POKE_BALL + db POKE_BALL ; unused + db POKE_BALL ; GREAT_BALL -> POKE_BALL + db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL + db ULTRA_BALL ; unused + db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL -INCBIN "baserom.gbc",$15511,$15575 - $15511 +Data_15511: + dr $15511, $15517 + +Data_15517: + dr $15517, $15543 + +Data_15543: + dr $15543, $15549 + +Data_15549: + dr $15549, $15575 HandleBallTypeUpgradeCounterRedField: ; 0x15575 - ld a, [$d5f3] - and a - ret nz - ld hl, wBallTypeCounter - ld a, [hli] - ld c, a - ld b, [hl] - or b - ret z - dec bc - ld a, b - ld [hld], a - ld [hl], c - or c - ret nz - ; counter is now 0! Degrade the ball upgrade. - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeDegradationRedField - add hl, bc - ld a, [hl] - ld [wBallType], a - and a - jr z, .pokeball - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a + ld a, [wd5f3] + and a + ret nz + ld hl, wBallTypeCounter + ld a, [hli] + ld c, a + ld b, [hl] + or b + ret z + dec bc + ld a, b + ld [hld], a + ld [hl], c + or c + ret nz + ; counter is now 0! Degrade the ball upgrade. + ld a, [wBallType] + ld c, a + ld b, $0 + ld hl, BallTypeDegradationRedField + add hl, bc + ld a, [hl] + ld [wBallType], a + and a + jr z, .pokeball + ; load approximately 1 minute of frames into wBallTypeCounter + ld a, $10 + ld [wBallTypeCounter], a + ld a, $e + ld [wBallTypeCounter + 1], a .pokeball - call Func_155a7 - ret + call Func_155a7 + ret Func_155a7: ; 0x155a7 - ld a, [wBallType] - ld c, a - sla c - ld b, $0 - ld hl, $55d7 ; todo - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $5 - call Func_10aa - ; fall through + ld a, [wBallType] + ld c, a + sla c + ld b, $0 + ld hl, Data_155d7 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $5 + call Func_10aa + ; fall through Func_155bb: ; 0x155bb - ld a, [hGameBoyColorFlag] - and a - ret z - ; gameboy color - ld a, [wBallType] - sla a - ld c, a - ld b, $0 - ld hl, $57f7 ; todo - add hl, bc - ld c, [hl] - inc hl - ld b, [hl] - ld a, $5 - ld de, $1266 - call Func_10c5 - ret - -INCBIN "baserom.gbc",$155d7,$1581f - $155d7 + ld a, [hGameBoyColorFlag] + and a + ret z + ; gameboy color + ld a, [wBallType] + sla a + ld c, a + ld b, $0 + ld hl, Data_157f7 + add hl, bc + ld c, [hl] + inc hl + ld b, [hl] + ld a, BANK(Data_157f7) + ld de, Func_1266 + call Func_10c5 + ret + +Data_155d7: + dw Data_155e3 + dw Data_155e3 + dw Data_155fa + dw Data_15611 + dw Data_15611 + dw Data_15628 + +Data_155e3: + db 11 + dw Data_1563f + dw Data_15649 + dw Data_15653 + dw Data_1565d + dw Data_15667 + dw Data_15671 + dw Data_1567b + dw Data_15685 + dw Data_1568f + dw Data_15699 + dw Data_156a3 + +Data_155fa: + db 11 + dw Data_156ad + dw Data_156b7 + dw Data_156c1 + dw Data_156cb + dw Data_156d5 + dw Data_156df + dw Data_156e9 + dw Data_156f3 + dw Data_156fd + dw Data_15707 + dw Data_15711 + +Data_15611: + db 11 + dw Data_1571b + dw Data_15725 + dw Data_1572f + dw Data_15739 + dw Data_15743 + dw Data_1574d + dw Data_15757 + dw Data_15761 + dw Data_1576b + dw Data_15775 + dw Data_1577f + +Data_15628: + db 11 + dw Data_15789 + dw Data_15793 + dw Data_1579d + dw Data_157a7 + dw Data_157b1 + dw Data_157bb + dw Data_157c5 + dw Data_157cf + dw Data_157d9 + dw Data_157e3 + dw Data_157ed + +Data_1563f: + dr $1563f, $15649 + +Data_15649: + dr $15649, $15653 + +Data_15653: + dr $15653, $1565d + +Data_1565d: + dr $1565d, $15667 + +Data_15667: + dr $15667, $15671 + +Data_15671: + dr $15671, $1567b + +Data_1567b: + dr $1567b, $15685 + +Data_15685: + dr $15685, $1568f + +Data_1568f: + dr $1568f, $15699 + +Data_15699: + dr $15699, $156a3 + +Data_156a3: + dr $156a3, $156ad + +Data_156ad: + dr $156ad, $156b7 + +Data_156b7: + dr $156b7, $156c1 + +Data_156c1: + dr $156c1, $156cb + +Data_156cb: + dr $156cb, $156d5 + +Data_156d5: + dr $156d5, $156df + +Data_156df: + dr $156df, $156e9 + +Data_156e9: + dr $156e9, $156f3 + +Data_156f3: + dr $156f3, $156fd + +Data_156fd: + dr $156fd, $15707 + +Data_15707: + dr $15707, $15711 + +Data_15711: + dr $15711, $1571b + +Data_1571b: + dr $1571b, $15725 + +Data_15725: + dr $15725, $1572f + +Data_1572f: + dr $1572f, $15739 + +Data_15739: + dr $15739, $15743 + +Data_15743: + dr $15743, $1574d + +Data_1574d: + dr $1574d, $15757 + +Data_15757: + dr $15757, $15761 + +Data_15761: + dr $15761, $1576b + +Data_1576b: + dr $1576b, $15775 + +Data_15775: + dr $15775, $1577f + +Data_1577f: + dr $1577f, $15789 + +Data_15789: + dr $15789, $15793 + +Data_15793: + dr $15793, $1579d + +Data_1579d: + dr $1579d, $157a7 + +Data_157a7: + dr $157a7, $157b1 + +Data_157b1: + dr $157b1, $157bb + +Data_157bb: + dr $157bb, $157c5 + +Data_157c5: + dr $157c5, $157cf + +Data_157cf: + dr $157cf, $157d9 + +Data_157d9: + dr $157d9, $157e3 + +Data_157e3: + dr $157e3, $157ed + +Data_157ed: + dr $157ed, $157f7 + +Data_157f7: + dw Data_15803 + dw Data_15803 + dw Data_1580a + dw Data_15811 + dw Data_15811 + dw Data_15818 + +Data_15803: + db $08, $04, $40, $68, $51, $37, $00 +Data_1580a: + db $08, $04, $40, $70, $51, $37, $00 +Data_15811: + db $08, $04, $40, $78, $51, $37, $00 +Data_15818: + db $08, $04, $40, $80, $51, $37, $00 Func_1581f: ; 0x1581f - ld a, [$d51f] - and a - ret z - xor a - ld [$d51f], a - ld bc, $34a6 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld a, [$d520] - sub $11 - ld c, a - ld b, $0 - ld hl, $d521 - add hl, bc - ld [hl], $1 - ld a, [$d521] - and a - call nz, Func_1587c - ld a, [$d522] - and a - call nz, Func_158c0 - ld a, [$d523] - and a - call nz, Func_15904 - ld a, [$d524] - and a - call nz, HandleLeftAlleyTriggerRedField - ld a, [$d525] - and a - call nz, Func_15931 - ld a, [$d526] - and a - call nz, Func_15944 - ld a, [$d527] - and a - call nz, HandleRightAlleyTriggerRedField - ld a, [$d528] - and a - call nz, Func_15990 - ret + ld a, [wd51f] + and a + ret z + xor a + ld [wd51f], a + ld bc, FivePoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld a, [wd520] + sub $11 + ld c, a + ld b, $0 + ld hl, wd521 + add hl, bc + ld [hl], $1 + ld a, [wd521] + and a + call nz, Func_1587c + ld a, [wd522] + and a + call nz, Func_158c0 + ld a, [wd523] + and a + call nz, Func_15904 + ld a, [wd524] + and a + call nz, HandleLeftAlleyTriggerRedField + ld a, [wd525] + and a + call nz, Func_15931 + ld a, [wd526] + and a + call nz, Func_15944 + ld a, [wd527] + and a + call nz, HandleRightAlleyTriggerRedField + ld a, [wd528] + and a + call nz, Func_15990 + ret Func_1587c: ; 0x1587c - xor a - ld [$d521], a - ld a, [wLeftAlleyTrigger] - and a - ret z - xor a - ld [wLeftAlleyTrigger], a - ld a, $1 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret c - ld a, [wLeftAlleyCount] - cp $3 - ret z - inc a - ld [wLeftAlleyCount], a - set 7, a - ld [wIndicatorStates], a - cp $83 - ret nz - ld a, [wStageCollisionState] - and $1 - or $6 - ld [wStageCollisionState], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - call Func_159f4 - ret + xor a + ld [wd521], a + ld a, [wLeftAlleyTrigger] + and a + ret z + xor a + ld [wLeftAlleyTrigger], a + ld a, $1 + callba Func_10000 + ret c + ld a, [wLeftAlleyCount] + cp $3 + ret z + inc a + ld [wLeftAlleyCount], a + set 7, a + ld [wIndicatorStates], a + cp $83 + ret nz + ld a, [wStageCollisionState] + and $1 + or $6 + ld [wStageCollisionState], a + callba LoadStageCollisionAttributes + call Func_159f4 + ret Func_158c0: ; 0x158c0 - xor a - ld [$d522], a - ld a, [wLeftAlleyTrigger] - and a - ret z - xor a - ld [wLeftAlleyTrigger], a - ld a, $1 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret c - ld a, [wLeftAlleyCount] - cp $3 - ret z - inc a - ld [wLeftAlleyCount], a - set 7, a - ld [wIndicatorStates], a - cp $83 - ret nz - ld a, [wStageCollisionState] - and $1 - or $6 - ld [wStageCollisionState], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - call Func_159f4 - ret + xor a + ld [wd522], a + ld a, [wLeftAlleyTrigger] + and a + ret z + xor a + ld [wLeftAlleyTrigger], a + ld a, $1 + callba Func_10000 + ret c + ld a, [wLeftAlleyCount] + cp $3 + ret z + inc a + ld [wLeftAlleyCount], a + set 7, a + ld [wIndicatorStates], a + cp $83 + ret nz + ld a, [wStageCollisionState] + and $1 + or $6 + ld [wStageCollisionState], a + callba LoadStageCollisionAttributes + call Func_159f4 + ret Func_15904: ; 0x15904 - xor a - ld [$d523], a - ld a, [wSecondaryLeftAlleyTrigger] - and a - ret z - xor a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $3 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret + xor a + ld [wd523], a + ld a, [wSecondaryLeftAlleyTrigger] + and a + ret z + xor a + ld [wSecondaryLeftAlleyTrigger], a + ld a, $3 + callba Func_10000 + ret HandleLeftAlleyTriggerRedField: ; 0x1591e ; Ball passed over the left alley trigger point in the Red Field. - xor a - ld [$d524], a - ld [wRightAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $1 - ld [wLeftAlleyTrigger], a - call Func_159c9 - ret + xor a + ld [wd524], a + ld [wRightAlleyTrigger], a + ld [wSecondaryLeftAlleyTrigger], a + ld a, $1 + ld [wLeftAlleyTrigger], a + call Func_159c9 + ret Func_15931: ; 0x15931 - xor a - ld [$d525], a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld a, $1 - ld [wSecondaryLeftAlleyTrigger], a - call Func_159c9 - ret + xor a + ld [wd525], a + ld [wRightAlleyTrigger], a + ld [wLeftAlleyTrigger], a + ld a, $1 + ld [wSecondaryLeftAlleyTrigger], a + call Func_159c9 + ret Func_15944: ; 0x15944 - xor a - ld [$d526], a - ld a, [wRightAlleyTrigger] - and a - ret z - xor a - ld [wRightAlleyTrigger], a - ld a, $2 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret c - ld a, [wRightAlleyCount] - cp $3 - ret z - inc a - ld [wRightAlleyCount], a - cp $3 - jr z, .asm_1596e - set 7, a + xor a + ld [wd526], a + ld a, [wRightAlleyTrigger] + and a + ret z + xor a + ld [wRightAlleyTrigger], a + ld a, $2 + callba Func_10000 + ret c + ld a, [wRightAlleyCount] + cp $3 + ret z + inc a + ld [wRightAlleyCount], a + cp $3 + jr z, .asm_1596e + set 7, a .asm_1596e - ld [wIndicatorStates + 1], a - ld a, [wRightAlleyCount] - cp $2 - ret c - ld a, $80 - ld [wIndicatorStates + 3], a - ret + ld [wIndicatorStates + 1], a + ld a, [wRightAlleyCount] + cp $2 + ret c + ld a, $80 + ld [wIndicatorStates + 3], a + ret HandleRightAlleyTriggerRedField: ; 0x1597d ; Ball passed over the right alley trigger point in the Red Field. - xor a - ld [$d527], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $1 - ld [wRightAlleyTrigger], a - call Func_159c9 - ret + xor a + ld [wd527], a + ld [wLeftAlleyTrigger], a + ld [wSecondaryLeftAlleyTrigger], a + ld a, $1 + ld [wRightAlleyTrigger], a + call Func_159c9 + ret Func_15990: ; 0x15990 - xor a - ld [$d528], a - ld a, [wRightAlleyTrigger] - and a - ret z - xor a - ld [wRightAlleyTrigger], a - ld a, $2 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret c - ld a, [wRightAlleyCount] - cp $3 - ret z - inc a - ld [wRightAlleyCount], a - cp $3 - jr z, .asm_159ba - set 7, a + xor a + ld [wd528], a + ld a, [wRightAlleyTrigger] + and a + ret z + xor a + ld [wRightAlleyTrigger], a + ld a, $2 + callba Func_10000 + ret c + ld a, [wRightAlleyCount] + cp $3 + ret z + inc a + ld [wRightAlleyCount], a + cp $3 + jr z, .asm_159ba + set 7, a .asm_159ba - ld [wIndicatorStates + 1], a - ld a, [wRightAlleyCount] - cp $2 - ret c - ld a, $80 - ld [wIndicatorStates + 3], a - ret + ld [wIndicatorStates + 1], a + ld a, [wRightAlleyCount] + cp $2 + ret c + ld a, $80 + ld [wIndicatorStates + 3], a + ret Func_159c9: ; 0x159c9 - ld a, [$d7ad] - bit 7, a - ret nz - ld c, a - ld a, [wStageCollisionState] - and $1 - or c - ld [wStageCollisionState], a - ld a, $ff - ld [$d7ad], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - call Func_159f4 - ld a, $1 - ld [$d580], a - call Func_1404a - ret + ld a, [wd7ad] + bit 7, a + ret nz + ld c, a + ld a, [wStageCollisionState] + and $1 + or c + ld [wStageCollisionState], a + ld a, $ff + ld [wd7ad], a + callba LoadStageCollisionAttributes + call Func_159f4 + ld a, $1 + ld [wd580], a + call Func_1404a + ret Func_159f4: ; 0x159f4 - ld a, [$ff9e] - bit 7, a - jr z, .asm_15a13 - ld a, [$d7f2] - and $fe - ld c, a - ld a, [wStageCollisionState] - and $fe - cp c - jr z, .asm_15a13 - add c - cp $2 - jr z, .asm_15a13 - ld de, $0000 - call PlaySoundEffect + ld a, [hLCDC] + bit 7, a + jr z, .asm_15a13 + ld a, [wd7f2] + and $fe + ld c, a + ld a, [wStageCollisionState] + and $fe + cp c + jr z, .asm_15a13 + add c + cp $2 + jr z, .asm_15a13 + lb de, $00, $00 + call PlaySoundEffect .asm_15a13 - ld a, [$d7f2] - swap a - ld c, a - ld a, [wStageCollisionState] - sla a - or c - ld c, a - ld b, $0 - ld hl, $5a3f ; todo - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_15a2d - ld hl, $5d05 + ld a, [wd7f2] + swap a + ld c, a + ld a, [wStageCollisionState] + sla a + or c + ld c, a + ld b, $0 + ld hl, Data_15a3f + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_15a2d + ld hl, Data_15d05 .asm_15a2d - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $5 - call Func_10aa - ld a, [wStageCollisionState] - ld [$d7f2], a - ret - -INCBIN "baserom.gbc",$15a3f,$15e93 - $15a3f + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, $5 + call Func_10aa + ld a, [wStageCollisionState] + ld [wd7f2], a + ret + +Data_15a3f: + dr $15a3f, $15d05 + +Data_15d05: + dr $15d05, $15e93 Func_15e93: ; 0x15e93 - ld a, [$d4fb] - and a - jr z, .asm_15eda - xor a - ld [$d4fb], a - ld bc, $34d0 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld de, $0005 - call PlaySoundEffect - ld hl, BellsproutAnimationData - ld de, wBellsproutAnimationFrameCounter - call CopyHLToDE - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallXPos], a - ld [wBallYPos], a - ld a, $7c - ld [wBallXPos + 1], a - ld a, $78 - ld [wBallYPos + 1], a - xor a - ld [$d549], a + ld a, [wd4fb] + and a + jr z, .asm_15eda + xor a + ld [wd4fb], a + ld bc, TenThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + lb de, $00, $05 + call PlaySoundEffect + ld hl, BellsproutAnimationData + ld de, wBellsproutAnimationFrameCounter + call CopyHLToDE + xor a + ld [wBallXVelocity], a + ld [wBallXVelocity + 1], a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + ld [wBallXPos], a + ld [wBallYPos], a + ld a, $7c + ld [wBallXPos + 1], a + ld a, $78 + ld [wBallYPos + 1], a + xor a + ld [wd549], a .asm_15eda - ld hl, BellsproutAnimationData - ld de, wBellsproutAnimationFrameCounter - call UpdateAnimation - push af - ld a, [wBellsproutAnimationFrameCounter] - and a - jr nz, .asm_15ef8 - ld a, $19 - ld [wBellsproutAnimationFrameCounter], a - xor a - ld [wBellsproutAnimationFrame], a - ld a, $6 - ld [wBellsproutAnimationFrameIndex], a + ld hl, BellsproutAnimationData + ld de, wBellsproutAnimationFrameCounter + call UpdateAnimation + push af + ld a, [wBellsproutAnimationFrameCounter] + and a + jr nz, .asm_15ef8 + ld a, $19 + ld [wBellsproutAnimationFrameCounter], a + xor a + ld [wBellsproutAnimationFrame], a + ld a, $6 + ld [wBellsproutAnimationFrameIndex], a .asm_15ef8 - pop af - ret nc - ld a, [wBellsproutAnimationFrameIndex] - cp $1 - jr nz, .asm_15f35 - xor a - ld [$d548], a - ld a, [wRightAlleyCount] - cp $2 - jr c, .noCatchEmMode - ld a, $8 - jr nz, .asm_15f11 - xor a + pop af + ret nc + ld a, [wBellsproutAnimationFrameIndex] + cp $1 + jr nz, .asm_15f35 + xor a + ld [wd548], a + ld a, [wRightAlleyCount] + cp $2 + jr c, .noCatchEmMode + ld a, $8 + jr nz, .asm_15f11 + xor a .asm_15f11 - ld [wRareMonsFlag], a - ld [$ff8a], a - ld a, Bank(StartCatchEmMode) - ld hl, StartCatchEmMode - call BankSwitch + ld [wRareMonsFlag], a + callba StartCatchEmMode .noCatchEmMode - ld hl, $d62a - call Func_e4a - ret nc - ld c, $19 - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch - ret + ld hl, wd62a + call Func_e4a + ret nc + ld c, $19 + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch + ret + .asm_15f35 - ld a, [wBellsproutAnimationFrameIndex] - cp $4 - jr nz, .asm_15f42 - ld a, $1 - ld [$d548], a - ret + ld a, [wBellsproutAnimationFrameIndex] + cp $4 + jr nz, .asm_15f42 + ld a, $1 + ld [wd548], a + ret + .asm_15f42 - ld a, [wBellsproutAnimationFrameIndex] - cp $5 - ret nz - ld a, $1 - ld [$d549], a - xor a - ld [wBallXVelocity + 1], a - ld a, $2 - ld [wBallYVelocity + 1], a - ld de, $0006 - call PlaySoundEffect - ld a, $5 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret + ld a, [wBellsproutAnimationFrameIndex] + cp $5 + ret nz + ld a, $1 + ld [wd549], a + xor a + ld [wBallXVelocity + 1], a + ld a, $2 + ld [wBallYVelocity + 1], a + lb de, $00, $06 + call PlaySoundEffect + ld a, $5 + callba Func_10000 + ret BellsproutAnimationData: ; 0x15f69 ; Each entry is [duration][OAM id] - db $08, $01 - db $06, $02 - db $20, $03 - db $06, $02 - db $08, $01 - db $01, $00 - db $29, $00 - db $28, $01 - db $2A, $00 - db $27, $01 - db $29, $00 - db $28, $01 - db $2B, $00 - db $28, $01 - db $00 ; terminator + db $08, $01 + db $06, $02 + db $20, $03 + db $06, $02 + db $08, $01 + db $01, $00 + db $29, $00 + db $28, $01 + db $2A, $00 + db $27, $01 + db $29, $00 + db $28, $01 + db $2B, $00 + db $28, $01 + db $00 ; terminator Func_15f86: ; 0x15f86 - ld a, [$d4d8] - and a - jr z, .asm_15f99 - call Func_5fb8 - call Func_15fa6 - xor a - ld [$d4d8], a - call Func_15fda + ld a, [wd4d8] + and a + jr z, .asm_15f99 + call Func_5fb8 + call Func_15fa6 + xor a + ld [wd4d8], a + call Func_15fda .asm_15f99 - ld a, [$d4da] - and a - ret z - dec a - ld [$d4da], a - call z, Func_5fb8 - ret + ld a, [wd4da] + and a + ret z + dec a + ld [wd4da], a + call z, Func_5fb8 + ret Func_15fa6: ; 0x15fa6 - ld a, $10 - ld [$d4da], a - ld a, [$d4d9] - sub $6 - ld [$d4db], a - sla a - inc a - jr asm_15fc0 + ld a, $10 + ld [wd4da], a + ld a, [wd4d9] + sub $6 + ld [wd4db], a + sla a + inc a + jr asm_15fc0 Func_5fb8: ; 0x5fb8 - ld a, [$d4db] - cp $ff - ret z - sla a + ld a, [wd4db] + cp $ff + ret z + sla a asm_15fc0 - sla a - ld c, a - ld b, $0 - ld hl, $6010 ; todo - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_15fd0 - ld hl, $6080 + sla a + ld c, a + ld b, $0 + ld hl, Data_16010 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_15fd0 + ld hl, Data_16080 .asm_15fd0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $5 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $5 + call Func_10aa + ret Func_15fda: ; 0x15fda - ld a, $ff - ld [$d803], a - ld a, $3 - ld [$d804], a - ld hl, $0200 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a - ld a, [$d4d9] - sub $6 - ld c, a - ld b, $0 - ld hl, $600e - add hl, bc - ld a, [$d7ea] - add [hl] - ld [$d7ea], a - ld de, $000b - call PlaySoundEffect - ret - -INCBIN "baserom.gbc",$1600e,$160f0 - $1600e + ld a, $ff + ld [wd803], a + ld a, $3 + ld [wd804], a + ld hl, $0200 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a + ld a, [wd4d9] + sub $6 + ld c, a + ld b, $0 + ld hl, Data_1600e + add hl, bc + ld a, [wd7ea] + add [hl] + ld [wd7ea], a + lb de, $00, $0b + call PlaySoundEffect + ret + +Data_1600e: + dr $1600e, $16010 + +Data_16010: + dr $16010, $16080 + +Data_16080: + dr $16080, $160f0 Func_160f0: ; 0x160f0 - ld a, [$d5fe] - and a - jr z, .asm_16137 - xor a - ld [$d5fe], a - ld bc, $34d0 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld de, $0021 - call PlaySoundEffect - xor a - ld hl, wBallXVelocity - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [$d549], a - ld [wBallXPos], a - ld [wBallYPos], a - ld a, $11 - ld [wBallXPos + 1], a - ld a, $23 - ld [wBallYPos + 1], a - ld a, $10 - ld [$d600], a - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a + ld a, [wd5fe] + and a + jr z, .asm_16137 + xor a + ld [wd5fe], a + ld bc, TenThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + lb de, $00, $21 + call PlaySoundEffect + xor a + ld hl, wBallXVelocity + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [wd549], a + ld [wBallXPos], a + ld [wBallYPos], a + ld a, $11 + ld [wBallXPos + 1], a + ld a, $23 + ld [wBallYPos + 1], a + ld a, $10 + ld [wd600], a + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a .asm_16137 - ld a, [$d600] - and a - ret z - dec a - ld [$d600], a - cp $f - jr nz, .asm_1614f - ld [$ff8a], a - ld a, Bank(LoadMiniBallGfx) - ld hl, LoadMiniBallGfx - call BankSwitch - ret + ld a, [wd600] + and a + ret z + dec a + ld [wd600], a + cp $f + jr nz, .asm_1614f + callba LoadMiniBallGfx + ret + .asm_1614f - cp $c - jr nz, .asm_1615e - ld [$ff8a], a - ld a, Bank(Func_dd62) - ld hl, Func_dd62 - call BankSwitch - ret + cp $c + jr nz, .asm_1615e + callba Func_dd62 + ret + .asm_1615e - cp $9 - jr nz, .asm_1616d - xor a - ld [$d548], a - ld [wBallSpin], a - ld [wBallRotation], a - ret + cp $9 + jr nz, .asm_1616d + xor a + ld [wd548], a + ld [wBallSpin], a + ld [wBallRotation], a + ret + .asm_1616d - cp $6 - jr nz, .asm_1618e - ld [$ff8a], a - ld a, Bank(Func_10ab3) - ld hl, Func_10ab3 - call BankSwitch - ld a, $1 - ld [$d548], a - ld [$d549], a - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a - ret + cp $6 + jr nz, .asm_1618e + callba Func_10ab3 + ld a, $1 + ld [wd548], a + ld [wd549], a + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a + ret + .asm_1618e - cp $3 - jr nz, .asm_1619d - ld [$ff8a], a - ld a, Bank(LoadMiniBallGfx) - ld hl, LoadMiniBallGfx - call BankSwitch - ret + cp $3 + jr nz, .asm_1619d + callba LoadMiniBallGfx + ret + .asm_1619d - and a - ret nz - ld [$ff8a], a - ld a, Bank(LoadBallGfx) - ld hl, LoadBallGfx - call BankSwitch - ld a, $2 - ld [wBallYVelocity + 1], a - ret + and a + ret nz + callba LoadBallGfx + ld a, $2 + ld [wBallYVelocity + 1], a + ret Func_161af: ; 0x161af - ld a, [$d604] - and a - ret z - ld a, [wBallYPos + 1] - sub $fe - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jr asm_1620f + ld a, [wd604] + and a + ret z + ld a, [wBallYPos + 1] + sub $fe + cp $30 + ret nc + ld c, $0 + ld b, a + ld h, b + ld l, c + srl b + rr c + srl b + rr c + srl h + rr l + add hl, bc + ld a, [wBallXPos + 1] + sub $38 + cp $30 + ret nc + ld c, a + ld b, $0 + sla c + sla c + add hl, bc + jr asm_1620f Func_161e0: ; 0x161e0 - ld a, [$d604] - and a - ret z - ld a, [wBallYPos + 1] - sub $86 - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc + ld a, [wd604] + and a + ret z + ld a, [wBallYPos + 1] + sub $86 + cp $30 + ret nc + ld c, $0 + ld b, a + ld h, b + ld l, c + srl b + rr c + srl b + rr c + srl h + rr l + add hl, bc + ld a, [wBallXPos + 1] + sub $38 + cp $30 + ret nc + ld c, a + ld b, $0 + sla c + sla c + add hl, bc asm_1620f: ; 0x1620f - ld bc, $4000 - add hl, bc - ld de, wBallXVelocity - ld a, $3c - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $3c - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - push bc - ld a, $3c - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $3c - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1624e - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc + ld bc, Data_f0000 + add hl, bc + ld de, wBallXVelocity + ld a, BANK(Data_f0000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_f0000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + push bc + ld a, BANK(Data_f0000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_f0000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + bit 7, b + jr z, .asm_1624e + ld a, c + cpl + ld c, a + ld a, b + cpl + ld b, a + inc bc .asm_1624e - pop hl - bit 7, h - jr z, .asm_1625a - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl + pop hl + bit 7, h + jr z, .asm_1625a + ld a, l + cpl + ld l, a + ld a, h + cpl + ld h, a + inc hl .asm_1625a - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [$d804] - and a - ret nz - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a - ld de, $0004 - call PlaySoundEffect - ret + add hl, bc + sla l + rl h + ld a, h + cp $2 + ret c + ld a, [wd804] + and a + ret nz + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a + lb de, $00, $04 + call PlaySoundEffect + ret Func_16279: ; 0x16279 - ld a, [$d601] - and a - jr z, .asm_162ae - xor a - ld [$d601], a - ld a, [$d604] - and a - ret z - ld a, [$d603] - and a - jr nz, .asm_162ae - xor a - ld hl, wBallXVelocity - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [$d549], a - ld [wBallXPos], a - ld [wBallYPos], a - ld a, $50 - ld [wBallXPos + 1], a - ld a, $16 - ld [wBallYPos + 1], a - ld a, $13 - ld [$d603], a + ld a, [wd601] + and a + jr z, .asm_162ae + xor a + ld [wd601], a + ld a, [wd604] + and a + ret z + ld a, [wd603] + and a + jr nz, .asm_162ae + xor a + ld hl, wBallXVelocity + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [wd549], a + ld [wBallXPos], a + ld [wBallYPos], a + ld a, $50 + ld [wBallXPos + 1], a + ld a, $16 + ld [wBallYPos + 1], a + ld a, $13 + ld [wd603], a .asm_162ae - ld a, [$d603] - and a - ret z - dec a - ld [$d603], a - ld a, $18 - ld [$d606], a - ld a, [$d603] - cp $12 - jr nz, .asm_162d4 - ld de, $0021 - call PlaySoundEffect - ld [$ff8a], a - ld a, Bank(LoadMiniBallGfx) - ld hl, LoadMiniBallGfx - call BankSwitch - ret + ld a, [wd603] + and a + ret z + dec a + ld [wd603], a + ld a, $18 + ld [wd606], a + ld a, [wd603] + cp $12 + jr nz, .asm_162d4 + lb de, $00, $21 + call PlaySoundEffect + callba LoadMiniBallGfx + ret + .asm_162d4 - cp $f - jr nz, .asm_162e3 - ld [$ff8a], a - ld a, Bank(Func_dd62) - ld hl, Func_dd62 - call BankSwitch - ret + cp $f + jr nz, .asm_162e3 + callba Func_dd62 + ret + .asm_162e3 - cp $c - jr nz, .asm_162f2 - xor a - ld [$d548], a - ld [wBallSpin], a - ld [wBallRotation], a - ret + cp $c + jr nz, .asm_162f2 + xor a + ld [wd548], a + ld [wBallSpin], a + ld [wBallRotation], a + ret + .asm_162f2 - cp $9 - jr nz, .asm_162fa - call Func_16352 - ret + cp $9 + jr nz, .asm_162fa + call Func_16352 + ret + .asm_162fa - cp $6 - jr nz, .asm_16317 - xor a - ld [$d604], a - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a - ld [$ff8a], a - ld a, Bank(LoadMiniBallGfx) - ld hl, LoadMiniBallGfx - call BankSwitch - ret + cp $6 + jr nz, .asm_16317 + xor a + ld [wd604], a + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a + callba LoadMiniBallGfx + ret + .asm_16317 - cp $3 - jr nz, .asm_16330 - ld [$ff8a], a - ld a, Bank(LoadBallGfx) - ld hl, LoadBallGfx - call BankSwitch - ld a, $2 - ld [wBallYVelocity + 1], a - ld a, $80 - ld [wBallXVelocity], a - ret + cp $3 + jr nz, .asm_16330 + callba LoadBallGfx + ld a, $2 + ld [wBallYVelocity + 1], a + ld a, $80 + ld [wBallXVelocity], a + ret + .asm_16330 - and a - ret nz - call Func_16425 - ld a, [$d622] - cp $1 - ret nz - call GenRandom - and $8 - ld [wRareMonsFlag], a - ld [$ff8a], a - ld a, Bank(StartCatchEmMode) - ld hl, StartCatchEmMode - call BankSwitch - xor a - ld [$d622], a - ret + and a + ret nz + call Func_16425 + ld a, [wd622] + cp $1 + ret nz + call GenRandom + and $8 + ld [wRareMonsFlag], a + callba StartCatchEmMode + xor a + ld [wd622], a + ret Func_16352: ; 0x16352 - xor a - ld [wIndicatorStates + 4], a - ld a, $d - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - jr nc, .asm_1636d - ld a, $1 - ld [$d548], a - ld [$d549], a - ret + xor a + ld [wIndicatorStates + 4], a + ld a, $d + callba Func_10000 + jr nc, .asm_1636d + ld a, $1 + ld [wd548], a + ld [wd549], a + ret + .asm_1636d - ld a, [$d624] - cp $3 - jr nz, .asm_163b3 - ld a, [$d607] - and a - jr nz, .asm_163b3 + ld a, [wd624] + cp $3 + jr nz, .asm_163b3 + ld a, [wd607] + and a + jr nz, .asm_163b3 .asm_1637a - ld a, [$d623] - and a - jr nz, .asm_16389 - xor a - ld [$d625], a - ld a, $40 - ld [$d626], a + ld a, [wd623] + and a + jr nz, .asm_16389 + xor a + ld [wd625], a + ld a, $40 + ld [wd626], a .asm_16389 - xor a - ld [$d623], a - ld a, $1 - ld [$d495], a - ld [$d4ae], a - ld a, [$d498] - ld c, a - ld b, $0 - ld hl, $6420 - add hl, bc - ld a, [hl] - ld [$d497], a - call Func_163f2 - xor a - ld [$d609], a - ld [$d622], a - ld a, $1e - ld [$d607], a - ret + xor a + ld [wd623], a + ld a, $1 + ld [wd495], a + ld [wd4ae], a + ld a, [wd498] + ld c, a + ld b, $0 + ld hl, Data_16420 + add hl, bc + ld a, [hl] + ld [wd497], a + call Func_163f2 + xor a + ld [wd609], a + ld [wd622], a + ld a, $1e + ld [wd607], a + ret + .asm_163b3 - ld [$ff8a], a - ld a, Bank(Func_ed8e) - ld hl, Func_ed8e - call BankSwitch - xor a - ld [$d608], a - ld a, [$d61d] - cp $d - jr nc, .asm_1637a - ld a, $1 - ld [$d548], a - ld [$d549], a - ld a, [$d622] - cp $2 - ret nz - ld [$ff8a], a - ld a, Bank(Func_10ab3) - ld hl, Func_10ab3 - call BankSwitch - ld a, [$d7ad] - ld c, a - ld a, [wStageCollisionState] - and $1 - or c - ld [wStageCollisionState], a - xor a - ld [$d622], a - ret + callba Func_ed8e + xor a + ld [wd608], a + ld a, [wd61d] + cp $d + jr nc, .asm_1637a + ld a, $1 + ld [wd548], a + ld [wd549], a + ld a, [wd622] + cp $2 + ret nz + callba Func_10ab3 + ld a, [wd7ad] + ld c, a + ld a, [wStageCollisionState] + and $1 + or c + ld [wStageCollisionState], a + xor a + ld [wd622], a + ret Func_163f2: ; 0x163f2 - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld a, [$d497] - ld de, $2e83 - cp $d - jr z, .asm_1640f - ld de, $2e9e - cp $7 - jr z, .asm_1640f - ld de, $2eb8 + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld a, [wd497] + ld de, Data_2e83 + cp $d + jr z, .asm_1640f + ld de, Data_2e9e + cp $7 + jr z, .asm_1640f + ld de, Data_2eb8 .asm_1640f - call Func_32aa - ld de, $0000 - call PlaySong - rst $10 - ld de, $3c23 - call PlaySoundEffect - ret + call LoadTextHeader + ld de, $0000 + call PlaySong + rst AdvanceFrame + lb de, $3c, $23 + call PlaySoundEffect + ret -INCBIN "baserom.gbc",$16420,$16425 - $16420 +Data_16420: + dr $16420, $16425 Func_16425: ; 0x16425 - ld a, [wCurrentStage] - and $1 - sla a - ld c, a - ld a, [$d604] - add c - sla a - ld c, a - ld b, $0 - ld hl, $644d ; todo - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_16441 - ld hl, $64a1 ; todo + ld a, [wCurrentStage] + and $1 + sla a + ld c, a + ld a, [wd604] + add c + sla a + ld c, a + ld b, $0 + ld hl, Data_1644d + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_16441 + ld hl, Data_164a1 .asm_16441 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $5 - call Func_10aa - ret - -INCBIN "baserom.gbc",$1644d,$164e3 - $1644d + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, $5 + call Func_10aa + ret + +Data_1644d: + dr $1644d, $164a1 + +Data_164a1: + dr $164a1, $164e3 Func_164e3: ; 0x164e3 - ld a, [$d607] - and a - ret z - dec a - ld [$d607], a - ret nz - ld a, [wInSpecialMode] - and a - ret nz - ld a, [$d609] - and a - jr z, .asm_164ff - ld a, [$d498] - add $15 - jr .asm_16506 + ld a, [wd607] + and a + ret z + dec a + ld [wd607], a + ret nz + ld a, [wInSpecialMode] + and a + ret nz + ld a, [wd609] + and a + jr z, .asm_164ff + ld a, [wd498] + add $15 + jr .asm_16506 + .asm_164ff - ld a, [$d608] - and a - ret z - ld a, $1a + ld a, [wd608] + and a + ret z + ld a, $1a .asm_16506 - ld hl, wCurrentStage - bit 0, [hl] - ld [$ff8a], a - ld a, Bank(Func_30256) - ld hl, Func_30256 - call nz, BankSwitch - ld a, [$d604] - and a - ret nz - ld a, $1 - ld [$d604], a - ld a, $80 - ld [wIndicatorStates + 4], a - ld a, [wCurrentStage] - bit 0, a - call nz, Func_16425 - ret + ld hl, wCurrentStage + bit 0, [hl] + ld [hFarCallTempA], a + ld a, Bank(Func_30256) + ld hl, Func_30256 + call nz, BankSwitch + ld a, [wd604] + and a + ret nz + ld a, $1 + ld [wd604], a + ld a, $80 + ld [wIndicatorStates + 4], a + ld a, [wCurrentStage] + bit 0, a + call nz, Func_16425 + ret Func_1652d: ; 0x1652d - ld a, [$d4dc] - and a - ret z - xor a - ld [$d4dc], a - ld a, [$d4de] - and a - jr z, .asm_16566 - xor a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld hl, wBallXVelocity - ld [hli], a - ld [hl], a - ld [wBallSpin], a - ld [wBallRotation], a - ld a, $80 - ld [wBallYVelocity], a - ld a, $fa - ld [wBallYVelocity + 1], a - ld a, $1 - ld [$d549], a - ld de, $000a - call PlaySoundEffect + ld a, [wd4dc] + and a + ret z + xor a + ld [wd4dc], a + ld a, [wd4de] + and a + jr z, .asm_16566 + xor a + ld [wRightAlleyTrigger], a + ld [wLeftAlleyTrigger], a + ld [wSecondaryLeftAlleyTrigger], a + ld hl, wBallXVelocity + ld [hli], a + ld [hl], a + ld [wBallSpin], a + ld [wBallRotation], a + ld a, $80 + ld [wBallYVelocity], a + ld a, $fa + ld [wBallYVelocity + 1], a + ld a, $1 + ld [wd549], a + lb de, $00, $0a + call PlaySoundEffect .asm_16566 - ld a, $ff - ld [$d4ec], a - ld a, [$d4de] - and a - ret nz - ld a, [$d4e0] - and a - jr nz, .asm_16582 - call Func_1658f - ld a, $1 - ld [$d4e0], a - ld [$d4de], a - ret + ld a, $ff + ld [wd4ec], a + ld a, [wd4de] + and a + ret nz + ld a, [wd4e0] + and a + jr nz, .asm_16582 + call Func_1658f + ld a, $1 + ld [wd4e0], a + ld [wd4de], a + ret + .asm_16582 - ld hl, wKeyConfigBallStart - call IsKeyPressed - ret z - ld a, $1 - ld [$d4de], a - ret + ld hl, wKeyConfigBallStart + call IsKeyPressed + ret z + ld a, $1 + ld [wd4de], a + ret Func_1658f: ; 0x1658f - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_f269) - ld hl, Func_f269 - call nz, BankSwitch + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_f269) + ld hl, Func_f269 + call nz, BankSwitch .showNextMap - ld a, [wInitialMapSelectionIndex] - inc a - cp $7 ; number of maps to choose from at the start of play - jr c, .gotMapId - xor a ; wrap around to 0 + ld a, [wInitialMapSelectionIndex] + inc a + cp $7 ; number of maps to choose from at the start of play + jr c, .gotMapId + xor a ; wrap around to 0 .gotMapId - ld [wInitialMapSelectionIndex], a - ld c, a - ld b, $0 - ld hl, RedStageInitialMaps - add hl, bc - ld a, [hl] - ld [wCurrentMap], a - push af - ld de, $0048 - call PlaySoundEffect - pop af - add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers - ld [$ff8a], a - ld a, Bank(LoadBillboardPicture) - ld hl, LoadBillboardPicture - call BankSwitch - ld b, $20 ; number of frames to delay before the next map is shown + ld [wInitialMapSelectionIndex], a + ld c, a + ld b, $0 + ld hl, RedStageInitialMaps + add hl, bc + ld a, [hl] + ld [wCurrentMap], a + push af + lb de, $00, $48 + call PlaySoundEffect + pop af + add (PalletTownPic_Pointer - BillboardPicturePointers) / 3 ; map billboard pictures start at the $29th entry in BillboardPicturePointers + callba LoadBillboardPicture + 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 + push bc + callba Func_eeee + ld hl, wKeyConfigBallStart + call IsKeyPressed + jr nz, .ballStartKeyPressed + pop bc + dec b + jr nz, .waitOnCurrentMap + jr .showNextMap + .ballStartKeyPressed - pop bc - ld [$ff8a], a - 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 + pop bc + callba Func_30253 + ld bc, Data_2cd1 + callba Func_3118f + ld a, [wCurrentMap] + ld [wd4e3], a + xor a + ld [wd4e2], 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 + db PALLET_TOWN + db VIRIDIAN_FOREST + db PEWTER_CITY + db CERULEAN_CITY + db VERMILION_SEASIDE + db ROCK_MOUNTAIN + db LAVENDER_TOWN Func_1660c: ; 0x1660c - ld a, [$d515] - and a - jr z, .asm_1667b - xor a - ld [$d515], a - ld a, [$d51c] - and a - jr nz, .asm_1667b - ld a, [$d51d] - and a - jr nz, .asm_16634 - ld a, [$d516] - sub $1c - ld hl, $d518 - cp [hl] - jr nz, .asm_1667b - ld a, [$d517] - cp $f - jr nz, .asm_16667 + ld a, [wd515] + and a + jr z, .asm_1667b + xor a + ld [wd515], a + ld a, [wd51c] + and a + jr nz, .asm_1667b + ld a, [wd51d] + and a + jr nz, .asm_16634 + ld a, [wd516] + sub $1c + ld hl, wd518 + cp [hl] + jr nz, .asm_1667b + ld a, [wd517] + cp $f + jr nz, .asm_16667 .asm_16634 - ld hl, PikachuSaverAnimationDataBlueStage - ld de, wPikachuSaverAnimationFrameCounter - call CopyHLToDE - ld a, [$d51d] - and a - jr nz, .asm_16647 - xor a - ld [$d517], a + ld hl, PikachuSaverAnimationDataBlueStage + ld de, wPikachuSaverAnimationFrameCounter + call CopyHLToDE + ld a, [wd51d] + and a + jr nz, .asm_16647 + xor a + ld [wd517], a .asm_16647 - ld a, $1 - ld [$d51c], a - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallSpin], a - ld [wBallRotation], a - ld [$d549], a - call Func_30e8 - jr .asm_1667b + ld a, $1 + ld [wd51c], a + xor a + ld [wBallXVelocity], a + ld [wBallXVelocity + 1], a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + ld [wBallSpin], a + ld [wBallRotation], a + ld [wd549], a + call Fillwc600WithBlackTile + jr .asm_1667b + .asm_16667 - ld hl, PikachuSaverAnimation2DataBlueStage - ld de, wPikachuSaverAnimationFrameCounter - call CopyHLToDE - ld a, $2 - ld [$d51c], a - ld de, $003b - call PlaySoundEffect + ld hl, PikachuSaverAnimation2DataBlueStage + ld de, wPikachuSaverAnimationFrameCounter + call CopyHLToDE + ld a, $2 + ld [wd51c], a + lb de, $00, $3b + call PlaySoundEffect .asm_1667b - ld a, [$d51c] - and a - call z, Func_16766 - call Func_1669e - ld a, [$d517] - cp $f - ret nz - ld a, [$d51e] - and a - ret z - dec a - ld [$d51e], a - cp $5a - ret nz - ld de, $0f22 - call PlaySoundEffect - ret + ld a, [wd51c] + and a + call z, Func_16766 + call Func_1669e + ld a, [wd517] + cp $f + ret nz + ld a, [wd51e] + and a + ret z + dec a + ld [wd51e], a + cp $5a + ret nz + lb de, $0f, $22 + call PlaySoundEffect + ret Func_1669e: ; 0x1669e - ld a, [$d51c] - cp $1 - jr nz, .asm_16719 - ld hl, PikachuSaverAnimationDataBlueStage - ld de, wPikachuSaverAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wPikachuSaverAnimationFrameIndex] - cp $1 - jr nz, .asm_166f7 - xor a - ld [$d85d], a - call Func_310a - rst $10 - ld a, $1 - ld [$ff8a], a - ld a, Bank(PlayPikachuSoundClip) - ld hl, PlayPikachuSoundClip - call BankSwitch - ld a, $1 - ld [$d85d], a - ld a, $ff - ld [$d803], a - ld a, $60 - ld [$d804], a - ld hl, $d62e - call Func_e4a - jr nc, .asm_166f0 - ld c, $a - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch + ld a, [wd51c] + cp $1 + jr nz, .asm_16719 + ld hl, PikachuSaverAnimationDataBlueStage + ld de, wPikachuSaverAnimationFrameCounter + call UpdateAnimation + ret nc + ld a, [wPikachuSaverAnimationFrameIndex] + cp $1 + jr nz, .asm_166f7 + xor a + ld [wd85d], a + call Func_310a + rst AdvanceFrame + ld a, $1 + callba PlayPikachuSoundClip + ld a, $1 + ld [wd85d], a + ld a, $ff + ld [wd803], a + ld a, $60 + ld [wd804], a + ld hl, wd62e + call Func_e4a + jr nc, .asm_166f0 + ld c, $a + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch .asm_166f0 - ld de, $1610 - call PlaySoundEffect - ret + lb de, $16, $10 + call PlaySoundEffect + ret + .asm_166f7 - ld a, [wPikachuSaverAnimationFrameIndex] - cp $11 - ret nz - ld a, $fc - ld [wBallYVelocity + 1], a - ld a, $1 - ld [$d549], a - ld bc, $34ca - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - xor a - ld [$d51c], a - ret + ld a, [wPikachuSaverAnimationFrameIndex] + cp $11 + ret nz + ld a, $fc + ld [wBallYVelocity + 1], a + ld a, $1 + ld [wd549], a + ld bc, FiveThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + xor a + ld [wd51c], a + ret + .asm_16719 - cp $2 - jr nz, .asm_16732 - ld hl, PikachuSaverAnimation2DataBlueStage - ld de, wPikachuSaverAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wPikachuSaverAnimationFrameIndex] - cp $1 - ret nz - xor a - ld [$d51c], a - ret + cp $2 + jr nz, .asm_16732 + ld hl, PikachuSaverAnimation2DataBlueStage + ld de, wPikachuSaverAnimationFrameCounter + call UpdateAnimation + ret nc + ld a, [wPikachuSaverAnimationFrameIndex] + cp $1 + ret nz + xor a + ld [wd51c], a + ret + .asm_16732 - ld a, [$ffb3] - swap a - and $1 - ld [wPikachuSaverAnimationFrame], a - ret + ld a, [hNumFramesDropped] + swap a + and $1 + ld [wPikachuSaverAnimationFrame], a + ret PikachuSaverAnimationDataBlueStage: ; 0x1673c ; Each entry is [duration][OAM id] - db $0C, $02 - db $05, $03 - db $05, $02 - db $05, $04 - db $05, $05 - db $05, $02 - db $06, $06 - db $06, $07 - db $06, $08 - db $06, $02 - db $06, $05 - db $06, $08 - db $06, $07 - db $06, $02 - db $06, $08 - db $06, $07 - db $06, $02 - db $01, $00 - db $00 + db $0C, $02 + db $05, $03 + db $05, $02 + db $05, $04 + db $05, $05 + db $05, $02 + db $06, $06 + db $06, $07 + db $06, $08 + db $06, $02 + db $06, $05 + db $06, $08 + db $06, $07 + db $06, $02 + db $06, $08 + db $06, $07 + db $06, $02 + db $01, $00 + db $00 PikachuSaverAnimation2DataBlueStage: ; 0x16761 ; Each entry is [duration][OAM id] - db $0C, $02 - db $01, $00 - db $00 + db $0C, $02 + db $01, $00 + db $00 Func_16766: ; 0x16766 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed2 - jr z, .asm_16774 - ld hl, $d518 - ld [hl], $0 - ret + ld hl, wKeyConfigLeftFlipper + call IsKeyPressed2 + jr z, .asm_16774 + ld hl, wd518 + ld [hl], $0 + ret + .asm_16774 - ld hl, wKeyConfigRightFlipper - call IsKeyPressed2 - ret z - ld hl, $d518 - ld [hl], $1 - ret + ld hl, wKeyConfigRightFlipper + call IsKeyPressed2 + ret z + ld hl, wd518 + ld [hl], $1 + ret Func_16781: ; 0x16781 - ld a, [$d500] - and a - jr z, .asm_167bd - xor a - ld [$d500], a - ld a, [$d503] - and a - jr nz, .asm_167c2 - ld bc, $34ca - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld a, [$d502] - xor $1 - set 1, a - ld [$d502], a - ld a, $14 - ld [$d503], a - call Func_16859 - ld a, $6 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret + ld a, [wd500] + and a + jr z, .asm_167bd + xor a + ld [wd500], a + ld a, [wd503] + and a + jr nz, .asm_167c2 + ld bc, FiveThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld a, [wd502] + xor $1 + set 1, a + ld [wd502], a + ld a, $14 + ld [wd503], a + call Func_16859 + ld a, $6 + callba Func_10000 + ret + .asm_167bd - ld a, [$d503] - and a - ret z + ld a, [wd503] + and a + ret z .asm_167c2 - dec a - ld [$d503], a - ret nz - ld a, [$d502] - res 1, a - ld [$d502], a - call Func_16859 - ld a, [$d502] - and $1 - ld c, a - ld a, [wStageCollisionState] - and $fe - or c - ld [wStageCollisionState], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - call Func_159f4 - ld de, $0007 - call PlaySoundEffect - ld a, [wStageCollisionState] - bit 0, a - jp nz, Func_15450 - jp Func_15499 + dec a + ld [wd503], a + ret nz + ld a, [wd502] + res 1, a + ld [wd502], a + call Func_16859 + ld a, [wd502] + and $1 + ld c, a + ld a, [wStageCollisionState] + and $fe + or c + ld [wStageCollisionState], a + callba LoadStageCollisionAttributes + call Func_159f4 + lb de, $00, $07 + call PlaySoundEffect + ld a, [wStageCollisionState] + bit 0, a + jp nz, Func_15450 + jp Func_15499 Func_167ff: ; 0x167ff - ld a, [$d500] - and a - jr z, .asm_16839 - xor a - ld [$d500], a - ld a, [$d503] - and a - jr nz, .asm_1683e - ld bc, $34ca - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld a, [$d502] - xor $1 - ld [$d502], a - ld a, $14 - ld [$d503], a - call Func_16878 - ld a, $6 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret + ld a, [wd500] + and a + jr z, .asm_16839 + xor a + ld [wd500], a + ld a, [wd503] + and a + jr nz, .asm_1683e + ld bc, FiveThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld a, [wd502] + xor $1 + ld [wd502], a + ld a, $14 + ld [wd503], a + call Func_16878 + ld a, $6 + callba Func_10000 + ret + .asm_16839 - ld a, [$d503] - and a - ret z + ld a, [wd503] + and a + ret z .asm_1683e - dec a - ld [$d503], a - ret nz - ld a, [$d502] - and $1 - ld c, a - ld a, [wStageCollisionState] - and $fe - or c - ld [wStageCollisionState], a - ld de, $0007 - call PlaySoundEffect - ret + dec a + ld [wd503], a + ret nz + ld a, [wd502] + and $1 + ld c, a + ld a, [wStageCollisionState] + and $fe + or c + ld [wStageCollisionState], a + lb de, $00, $07 + call PlaySoundEffect + ret Func_16859: ; 0x16859 - ld a, [$d502] - sla a - ld c, a - ld b, $0 - ld hl, $6899 ; todo - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1686c - ld hl, $6910 ; todo + ld a, [wd502] + sla a + ld c, a + ld b, $0 + ld hl, Data_16899 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1686c + ld hl, Data_16910 .asm_1686c - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $5 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, $5 + call Func_10aa + ret Func_16878: ; 0x16878 - ld a, [$d502] - and $1 - sla a - ld c, a - ld b, $0 - ld hl, $695a ; todo - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1688d - ld hl, $6980 ; todo + ld a, [wd502] + and $1 + sla a + ld c, a + ld b, $0 + ld hl, Data_1695a + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1688d + ld hl, Data_16980 .asm_1688d - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $5 - call Func_10aa - ret - -INCBIN "baserom.gbc",$16899,$169a6 - $16899 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, $5 + call Func_10aa + ret + +Data_16899: + dr $16899, $16910 + +Data_16910: + dr $16910, $1695a + +Data_1695a: + dr $1695a, $16980 + +Data_16980: + dr $16980, $169a6 Func_169a6: ; 0x169a6 - ld a, [$ffb3] - and $1f - ret nz - ld bc, $0000 + ld a, [hNumFramesDropped] + and $1f + ret nz + ld bc, $0000 .asm_169ae - push bc - ld hl, wIndicatorStates - add hl, bc - bit 7, [hl] - jr z, .asm_169c5 - ld a, [hl] - res 7, a - ld hl, $ffb3 - bit 5, [hl] - jr z, .asm_169c2 - inc a + push bc + ld hl, wIndicatorStates + add hl, bc + bit 7, [hl] + jr z, .asm_169c5 + ld a, [hl] + res 7, a + ld hl, hNumFramesDropped + bit 5, [hl] + jr z, .asm_169c2 + inc a .asm_169c2 - call Func_169cd + call Func_169cd .asm_169c5 - pop bc - inc c - ld a, c - cp $5 - jr nz, .asm_169ae - ret + pop bc + inc c + ld a, c + cp $5 + jr nz, .asm_169ae + ret Func_169cd: ; 0x169cd - push af - sla c - ld hl, $69ed - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_169db - ld hl, $6bef + push af + sla c + ld hl, Data_169ed + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_169db + ld hl, Data_16bef .asm_169db - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - pop af - sla a - ld c, a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $5 - call Func_10aa - ret - -INCBIN "baserom.gbc",$169ed,$16d9d - $169ed + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + pop af + sla a + ld c, a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $5 + call Func_10aa + ret + +Data_169ed: + dr $169ed, $16bef + +Data_16bef: + dr $16bef, $16d9d Func_16d9d: ; 016d9d - ld a, [$d60a] - and a - jp z, Func_16e51 - xor a - ld [$d60a], a - ld de, $000d - call PlaySoundEffect - ld a, [$d60b] - sub $21 - jr nz, .asm_16ddc - ld a, $9 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, [$d610] - cp $3 - jr nz, .asm_16e35 - ld a, $1 - ld [$d610], a - ld a, $3 - ld [$d611], a - ld a, [$d60c] - set 7, a - ld [$d60c], a - jr .asm_16e35 + ld a, [wd60a] + and a + jp z, Func_16e51 + xor a + ld [wd60a], a + lb de, $00, $0d + call PlaySoundEffect + ld a, [wd60b] + sub $21 + jr nz, .asm_16ddc + ld a, $9 + callba Func_10000 + ld a, [wd610] + cp $3 + jr nz, .asm_16e35 + ld a, $1 + ld [wd610], a + ld a, $3 + ld [wd611], a + ld a, [wd60c] + set 7, a + ld [wd60c], a + jr .asm_16e35 + .asm_16ddc - ld a, $a - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, [$d611] - cp $3 - jr nz, .asm_16e35 - ld a, $1 - ld [$d610], a - ld a, $1 - ld [$d611], a - ld a, $80 - ld [$d612], a - ld a, [$d60d] - set 7, a - ld [$d60d], a - ld a, [$d482] - inc a - cp $64 - jr c, .asm_16e10 - ld a, $63 + ld a, $a + callba Func_10000 + ld a, [wd611] + cp $3 + jr nz, .asm_16e35 + ld a, $1 + ld [wd610], a + ld a, $1 + ld [wd611], a + ld a, $80 + ld [wd612], a + ld a, [wd60d] + set 7, a + ld [wd60d], a + ld a, [wd482] + inc a + cp 100 + jr c, .asm_16e10 + ld a, 99 .asm_16e10 - ld [$d482], a - jr nc, .asm_16e24 - ld c, $19 - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch + ld [wd482], a + jr nc, .asm_16e24 + ld c, $19 + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch .asm_16e24 - ld a, [$d60c] - ld [$d614], a - ld a, [$d60d] - ld [$d615], a - ld a, $1 - ld [$d613], a + ld a, [wd60c] + ld [wd614], a + ld a, [wd60d] + ld [wd615], a + ld a, $1 + ld [wd613], a .asm_16e35 - ld bc, $34ac - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld a, [$d60c] - call Func_16f28 - ld a, [$d60d] - add $14 - call Func_16f28 - ret + ld bc, TenPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld a, [wd60c] + call Func_16f28 + ld a, [wd60d] + add $14 + call Func_16f28 + ret Func_16e51: ; 0x16e51 - call Func_16ef5 - ld a, [$d612] - and a - jr z, .asm_16e8f - dec a - ld [$d612], a - cp $70 - jr nz, .asm_16e6e - ld a, $2 - ld [$d610], a - ld a, $2 - ld [$d611], a - jr .asm_16e8f + call Func_16ef5 + ld a, [wd612] + and a + jr z, .asm_16e8f + dec a + ld [wd612], a + cp $70 + jr nz, .asm_16e6e + ld a, $2 + ld [wd610], a + ld a, $2 + ld [wd611], a + jr .asm_16e8f + .asm_16e6e - and a - jr nz, .asm_16e8f - ld a, $3 - ld [$d610], a - xor a - ld [$d611], a - ld a, [$d482] - call Func_16f95 - ld a, [$d60c] - call Func_16f28 - ld a, [$d60d] - add $14 - call Func_16f28 - ret + and a + jr nz, .asm_16e8f + ld a, $3 + ld [wd610], a + xor a + ld [wd611], a + ld a, [wd482] + call Func_16f95 + ld a, [wd60c] + call Func_16f28 + ld a, [wd60d] + add $14 + call Func_16f28 + ret + .asm_16e8f - ld a, [$d610] - cp $2 - jr c, .asm_16ec1 - cp $3 - ld a, [$ffb3] - jr c, .asm_16ea0 - srl a - srl a + ld a, [wd610] + cp $2 + jr c, .asm_16ec1 + cp $3 + ld a, [hNumFramesDropped] + jr c, .asm_16ea0 + srl a + srl a .asm_16ea0 - ld b, a - and $3 - jr nz, .asm_16ec1 - bit 3, b - jr nz, .asm_16eb6 - ld a, [$d60c] - res 7, a - ld [$d60c], a - call Func_16f28 - jr .asm_16ec1 + ld b, a + and $3 + jr nz, .asm_16ec1 + bit 3, b + jr nz, .asm_16eb6 + ld a, [wd60c] + res 7, a + ld [wd60c], a + call Func_16f28 + jr .asm_16ec1 + .asm_16eb6 - ld a, [$d60c] - set 7, a - ld [$d60c], a - call Func_16f28 + ld a, [wd60c] + set 7, a + ld [wd60c], a + call Func_16f28 .asm_16ec1 - ld a, [$d611] - cp $2 - ret c - cp $3 - ld a, [$ffb3] - jr c, .asm_16ed1 - srl a - srl a + ld a, [wd611] + cp $2 + ret c + cp $3 + ld a, [hNumFramesDropped] + jr c, .asm_16ed1 + srl a + srl a .asm_16ed1 - ld b, a - and $3 - ret nz - bit 3, b - jr nz, .asm_16ee7 - ld a, [$d60d] - res 7, a - ld [$d60d], a - add $14 - call Func_16f28 - ret + ld b, a + and $3 + ret nz + bit 3, b + jr nz, .asm_16ee7 + ld a, [wd60d] + res 7, a + ld [wd60d], a + add $14 + call Func_16f28 + ret + .asm_16ee7 - ld a, [$d60d] - set 7, a - ld [$d60d], a - add $14 - call Func_16f28 - ret + ld a, [wd60d] + set 7, a + ld [wd60d], a + add $14 + call Func_16f28 + ret Func_16ef5: ; 0x16ef5 - ld a, [$d5ca] - and a - ret nz - ld a, [$d613] - and a - ret z - xor a - ld [$d613], a - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $2958 - call Func_32aa - ld hl, $c512 - ld a, [$d614] - and $7f - jr z, .asm_16f1f - add $30 - ld [hli], a + ld a, [wd5ca] + and a + ret nz + ld a, [wd613] + and a + ret z + xor a + ld [wd613], a + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, BonusMultiplierText + call LoadTextHeader + ld hl, wBottomMessageText + $12 + ld a, [wd614] + and $7f + jr z, .asm_16f1f + add $30 + ld [hli], a .asm_16f1f - ld a, [$d615] - res 7, a - add $30 - ld [hl], a - ret + ld a, [wd615] + res 7, a + add $30 + ld [hl], a + ret Func_16f28: ; 0x16f28 - push af - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_16f33 - pop af - call Func_16f38 - ret + push af + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_16f33 + pop af + call Func_16f38 + ret + .asm_16f33 - pop af - call Func_16f7b - ret + pop af + call Func_16f7b + ret Func_16f38: ; 0x16f38 - push af - res 7, a - ld hl, $d60e - cp $14 - jr c, .asm_16f47 - ld hl, $d60f - sub $a + push af + res 7, a + ld hl, wd60e + cp $14 + jr c, .asm_16f47 + ld hl, wd60f + sub $a .asm_16f47 - cp [hl] - jr z, .asm_16f5c - ld [hl], a - ld c, a - ld b, $0 - sla c - ld hl, $6fc8 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $5 - call Func_10aa + cp [hl] + jr z, .asm_16f5c + ld [hl], a + ld c, a + ld b, $0 + sla c + ld hl, Data_16fc8 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $5 + call Func_10aa .asm_16f5c - pop af - ld bc, $0000 - bit 7, a - jr z, .asm_16f68 - res 7, a - set 1, c + pop af + ld bc, $0000 + bit 7, a + jr z, .asm_16f68 + res 7, a + set 1, c .asm_16f68 - cp $14 - jr c, .asm_16f6e - set 2, c + cp $14 + jr c, .asm_16f6e + set 2, c .asm_16f6e - ld hl, $71e4 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $5 - call Func_10aa - ret + ld hl, Data_171e4 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $5 + call Func_10aa + ret Func_16f7b: ; 0x16f7b - bit 7, a - jr z, .asm_16f83 - res 7, a - add $a + bit 7, a + jr z, .asm_16f83 + res 7, a + add $a .asm_16f83 - ld c, a - ld b, $0 - sla c - ld hl, $7228 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $5 - call Func_10aa - ret + ld c, a + ld b, $0 + sla c + ld hl, Data_17228 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $5 + call Func_10aa + ret Func_16f95: ; 0x16f95 - ld a, [$d482] - inc a - cp $64 - jr c, .asm_16f9f - ld a, $63 + ld a, [wd482] + inc a + cp 100 + jr c, .asm_16f9f + ld a, 99 .asm_16f9f - ld b, a - xor a - ld hl, $6fc1 ; todo - ld c, $7 + ld b, a + xor a + ld hl, Data_16fc1 + ld c, $7 .asm_16fa6 - bit 0, b - jr z, .asm_16fac - add [hl] - daa + bit 0, b + jr z, .asm_16fac + add [hl] + daa .asm_16fac - srl b - inc hl - dec c - jr nz, .asm_16fa6 - push af - swap a - and $f - ld [$d60c], a - pop af - and $f - ld [$d60d], a - ret - -INCBIN "baserom.gbc",$16fc1,$174d0 - $16fc1 + srl b + inc hl + dec c + jr nz, .asm_16fa6 + push af + swap a + and $f + ld [wd60c], a + pop af + and $f + ld [wd60d], a + ret + +Data_16fc1: + dr $16fc1, $16fc8 + +Data_16fc8: + dr $16fc8, $171e4 + +Data_171e4: + dr $171e4, $17228 + +Data_17228: + dr $17228, $174d0 Func_174d0: ; 0x174d0 - call Func_174ea - ret nc - ; fall through + call Func_174ea + ret nc + ; fall through Func_174d4: ; 0x174d4 - sla a - ld c, a - ld b, $0 - ld hl, $7528 ; todo - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, $5 - ld de, LoadTileLists - call Func_10c5 - ret + sla a + ld c, a + ld b, $0 + ld hl, Data_17528 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, $5 + ld de, LoadTileLists + call Func_10c5 + ret Func_174ea: ; 0x174ea - ld a, [$d624] - ld hl, $d625 - cp [hl] - ret z - ld a, [$d626] - dec a - ld [$d626], a - jr nz, .asm_17514 - ld a, [$d625] - ld [$d624], a - cp $3 - jr c, .asm_1750f - ld a, $1 - ld [$d609], a - ld a, $3 - ld [$d607], a + ld a, [wd624] + ld hl, wd625 + cp [hl] + ret z + ld a, [wd626] + dec a + ld [wd626], a + jr nz, .asm_17514 + ld a, [wd625] + ld [wd624], a + cp $3 + jr c, .asm_1750f + ld a, $1 + ld [wd609], a + ld a, $3 + ld [wd607], a .asm_1750f - ld a, [$d624] - scf - ret + ld a, [wd624] + scf + ret + .asm_17514 - and $7 - ret nz - ld a, [$d626] - bit 3, a - jr nz, .asm_17523 - ld a, [$d624] - scf - ret + and $7 + ret nz + ld a, [wd626] + bit 3, a + jr nz, .asm_17523 + ld a, [wd624] + scf + ret + .asm_17523 - ld a, [$d625] - scf - ret + ld a, [wd625] + scf + ret -INCBIN "baserom.gbc",$17528,$1755c - $17528 +Data_17528: + dr $17528, $1755c Func_1755c: ; 0x1755c - ld bc, $7f00 - call Func_175a4 - call Func_17cc4 - call Func_17d34 - call Func_17d59 - call Func_17d7a - call Func_17d92 - call Func_17de1 - call Func_17e81 - call Func_17efb - call Func_17f64 - ret + ld bc, $7f00 + call Func_175a4 + call Func_17cc4 + call Func_17d34 + call Func_17d59 + call Func_17d7a + call Func_17d92 + call Func_17de1 + call Func_17e81 + call Func_17efb + call Func_17f64 + ret Func_1757e: ; 0x1757e - ld bc, $7f00 - call Func_175a4 - call Func_17c67 - call Func_17c96 - call Func_17e08 - ld [$ff8a], a - ld a, Bank(Func_e4a1) - ld hl, Func_e4a1 - call BankSwitch - call Func_17e81 - call Func_17f0f - call Func_17f75 - call Func_17fca - ret + ld bc, $7f00 + call Func_175a4 + call Func_17c67 + call Func_17c96 + call Func_17e08 + callba Func_e4a1 + call Func_17e81 + call Func_17f0f + call Func_17f75 + call Func_17fca + ret Func_175a4: ; 0x175a4 - ld a, [$d57d] - and a - ret z - ld a, [hGameBoyColorFlag] - and a - jr nz, DrawTimer - ld a, [$d580] - and a - ret z - ld a, [$d581] - and a - jr z, .asm_175be - dec a - ld [$d581], a - ret + ld a, [wd57d] + and a + ret z + ld a, [hGameBoyColorFlag] + and a + jr nz, DrawTimer + ld a, [wd580] + and a + ret z + ld a, [wd581] + and a + jr z, .asm_175be + dec a + ld [wd581], a + ret + .asm_175be - call Func_1762f - ld hl, $d582 - ld a, [wTimerMinutes] - and $f - call Func_1764f - ld a, [wTimerSeconds] - swap a - and $f - call Func_1764f - ld a, [wTimerSeconds] - and $f - call Func_1764f - ld d, $0 - ld hl, $7615 - add hl, de - ld a, [hli] - call Func_17627 - ld a, [hli] - call Func_17627 - ld a, [hli] - call Func_17627 - ld a, [hli] - call Func_17627 - ret + call Func_1762f + ld hl, wd582 + ld a, [wTimerMinutes] + and $f + call Func_1764f + ld a, [wTimerSeconds] + swap a + and $f + call Func_1764f + ld a, [wTimerSeconds] + and $f + call Func_1764f + ld d, $0 + ld hl, Data_17615 + add hl, de + ld a, [hli] + call Func_17627 + ld a, [hli] + call Func_17627 + ld a, [hli] + call Func_17627 + ld a, [hli] + call Func_17627 + ret DrawTimer: ; 0x175f5 ; Loads the OAM data for the timer in the top-right corner of the screen. - ld a, [wTimerMinutes] - and $f - call DrawTimerDigit - ld a, $a ; colon - call DrawTimerDigit - ld a, [wTimerSeconds] - swap a - and $f - call DrawTimerDigit ; tens digit of the minutes - ld a, [wTimerSeconds] - and $f - call DrawTimerDigit ; ones digit of the minutes - ret - -INCBIN "baserom.gbc",$17615,$17625 - $17615 + ld a, [wTimerMinutes] + and $f + call DrawTimerDigit + ld a, $a ; colon + call DrawTimerDigit + ld a, [wTimerSeconds] + swap a + and $f + call DrawTimerDigit ; tens digit of the minutes + ld a, [wTimerSeconds] + and $f + call DrawTimerDigit ; ones digit of the minutes + ret + +Data_17615: + db $d7, $da, $d8, $d9 + db $dc, $df, $dd, $de + db $dc, $db, $dd, $de + db $f5, $f8, $f6, $f7 DrawTimerDigit: ; 0x17625 - add $b1 ; the timer digits' OAM ids start at $b1 - ; fall through - + add $b1 ; the timer digits' OAM ids start at $b1 Func_17627: ; 0x17627 - call LoadOAMData - ld a, b - add $8 - ld b, a - ret + call LoadOAMData + ld a, b + add $8 + ld b, a + ret Func_1762f: ; 0x1762f - ld de, $600c - ld a, [wCurrentStage] - cp $6 - ret nc - ld de, $0000 - bit 0, a - ret z - ld de, $3004 - ld a, [wInSpecialMode] - and a - ret z - ld a, [wSpecialMode] - and a - ret nz - ld de, $3008 - ret + lb de, $60, $0c + ld a, [wCurrentStage] + cp $6 + ret nc + lb de, $00, $00 + bit 0, a + ret z + lb de, $30, $04 + ld a, [wInSpecialMode] + and a + ret z + ld a, [wSpecialMode] + and a + ret nz + lb de, $30, $08 + 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 + push bc + push de + cp [hl] + jr z, .skip + push af + push hl + add d + call Func_17665 + pop hl + pop af + ld [hl], a +.skip + inc hl + pop de + ld a, d + add $10 + ld d, a + pop bc + ret Func_17665: ; 0x17665 - ld c, a - ld b, $0 - sla c - rl b - ld hl, $7679 ; todo - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $5 - call Func_10aa - ret - -INCBIN "baserom.gbc",$17679,$17c67 - $17679 + ld c, a + ld b, $0 + sla c + rl b + ld hl, Data_17679 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $5 + call Func_10aa + ret + +Data_17679: +INCLUDE "data/unknown_17679.asm" Func_17c67: ; 0x17c67 - ld a, [$d5f3] - and a - ret z - ld a, $50 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $38 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [wBallCaptureAnimationFrame] - ld e, a - ld d, $0 - ld hl, $7c89 - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$17c89,$17c96 - $17c89 + ld a, [wd5f3] + and a + ret z + ld a, $50 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $38 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wBallCaptureAnimationFrame] + ld e, a + ld d, $0 + ld hl, Data_17c89 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_17c89: + dr $17c89, $17c96 Func_17c96: ; 0x17c96 - ld a, [$d5bb] - and a - ret z - ld a, $50 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $3e - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d5bd] - ld e, a - ld d, $0 - ld hl, $7cb8 - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$17cb8,$17cc4 - $17cb8 + ld a, [wd5bb] + and a + ret z + ld a, $50 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $3e + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd5bd] + ld e, a + ld d, $0 + ld hl, Data_17cb8 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_17cb8: + dr $17cb8, $17cc4 Func_17cc4: ; 0x17cc4 - ld de, $d4cd - ld hl, $7d15 - call Func_17cdc - ld de, $d4d0 - ld hl, $7d1b - call Func_17cdc - ld de, $d4d3 - ld hl, $7d21 - ; fall through + ld de, wd4cd + ld hl, Data_17d15 + call Func_17cdc + ld de, wd4d0 + ld hl, Data_17d1b + call Func_17cdc + ld de, wd4d3 + ld hl, Data_17d21 + ; fall through Func_17cdc: ; 0x17cdc - push hl - ld hl, $7d27 - call UpdateAnimation - ld h, d - ld l, e - ld a, [hl] - and a - jr nz, .asm_17cf6 - call GenRandom - and $7 - add $1e - ld [hli], a - ld a, $1 - ld [hli], a - xor a - ld [hl], a + push hl + ld hl, Data_17d27 + call UpdateAnimation + ld h, d + ld l, e + ld a, [hl] + and a + jr nz, .asm_17cf6 + call GenRandom + and $7 + add $1e + ld [hli], a + ld a, $1 + ld [hli], a + xor a + ld [hl], a .asm_17cf6 - pop hl - inc de - ld a, [hBoardXShift] - ld b, a - ld a, [hli] - sub b - ld b, a - ld a, [hBoardYShift] - ld c, a - ld a, [hli] - sub c - ld c, a - ld a, [$d4d7] - sub [hl] - inc hl - jr z, .asm_17d0c - ld a, [de] + pop hl + inc de + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [wd4d7] + sub [hl] + inc hl + jr z, .asm_17d0c + ld a, [de] .asm_17d0c - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call LoadOAMData - ret + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_17d15: + dr $17d15, $17d1b + +Data_17d1b: + dr $17d1b, $17d21 + +Data_17d21: + dr $17d21, $17d27 -INCBIN "baserom.gbc",$17d15,$17d34 - $17d15 +Data_17d27: + dr $17d27, $17d34 Func_17d34: ; 0x17d34 - ld a, $0 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $10 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [wStageCollisionState] - ld e, a - ld d, $0 - ld hl, $7d51 - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$17d51,$17d59 - $17d51 + ld a, $0 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $10 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wStageCollisionState] + ld e, a + ld d, $0 + ld hl, Data_17d51 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_17d51: + dr $17d51, $17d59 Func_17d59: ; 0x17d59 - ld a, $74 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $52 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [wBellsproutAnimationFrame] - ld e, a - ld d, $0 - ld hl, $7d76 - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$17d76,$17d7a - $17d76 + ld a, $74 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $52 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wBellsproutAnimationFrame] + ld e, a + ld d, $0 + ld hl, Data_17d76 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_17d76: + dr $17d76, $17d7a Func_17d7a: ; 0x17d7a - ld a, [hGameBoyColorFlag] - and a - ret z - ld a, $67 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $54 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, $cc - call LoadOAMData - ret + ld a, [hGameBoyColorFlag] + and a + ret z + ld a, $67 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $54 + ld hl, hSCY + sub [hl] + ld c, a + ld a, $cc + call LoadOAMData + ret Func_17d92: ; 0x17d92 - ld a, [hGameBoyColorFlag] - and a - ret z - ld hl, $7dd0 - ld de, $d504 - call UpdateAnimation - ld a, [$d504] - and a - jr nz, .asm_17db1 - ld a, $13 - ld [$d504], a - xor a - ld [$d505], a - ld [$d506], a + ld a, [hGameBoyColorFlag] + and a + ret z + ld hl, Data_17dd0 + ld de, wd504 + call UpdateAnimation + ld a, [wd504] + and a + jr nz, .asm_17db1 + ld a, $13 + ld [wd504], a + xor a + ld [wd505], a + ld [wd506], a .asm_17db1 - ld a, $2b - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $69 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d505] - ld e, a - ld d, $0 - ld hl, $7dce - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$17dce,$17de1 - $17dce + ld a, $2b + ld hl, hSCX + sub [hl] + ld b, a + ld a, $69 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd505] + ld e, a + ld d, $0 + ld hl, Data_17dce + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_17dce: + dr $17dce, $17dd0 + +Data_17dd0: + dr $17dd0, $17de1 Func_17de1: ; 0x17de1 - ld a, $88 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $5a - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d50a] - srl a - srl a - ld e, a - ld d, $0 - ld hl, $7e02 - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$17e02,$17e08 - $17e02 + ld a, $88 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $5a + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd50a] + srl a + srl a + ld e, a + ld d, $0 + ld hl, Data_17e02 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_17e02: + dr $17e02, $17e08 Func_17e08: ; 0x17e08 - ld a, [hBoardXShift] - ld d, a - ld a, [hBoardYShift] - ld e, a - ld a, [$d51d] - and a - ld a, [$d518] - jr z, .asm_17e33 - ld a, [$d51c] - and a - jr nz, .asm_17e29 - ld a, [$ffb3] - srl a - srl a - srl a - and $1 - jr .asm_17e33 + ld a, [hSCX] + ld d, a + ld a, [hSCY] + ld e, a + ld a, [wd51d] + and a + ld a, [wd518] + jr z, .asm_17e33 + ld a, [wd51c] + and a + jr nz, .asm_17e29 + ld a, [hNumFramesDropped] + srl a + srl a + srl a + and $1 + jr .asm_17e33 + .asm_17e29 - ld a, [$d4b4] - cp $50 - ld a, $1 - jr nc, .asm_17e33 - xor a + ld a, [wd4b4] + cp $50 + ld a, $1 + jr nc, .asm_17e33 + xor a .asm_17e33 - sla a - ld c, a - ld b, $0 - ld hl, $7e4b - add hl, bc - ld a, [hli] - sub d - ld b, a - ld a, [hli] - sub e - ld c, a - ld a, [wPikachuSaverAnimationFrame] - add $e - call LoadOAMData - ret - -INCBIN "baserom.gbc",$17e4b,$17e81 - $17e4b + sla a + ld c, a + ld b, $0 + ld hl, Data_17e4b + add hl, bc + ld a, [hli] + sub d + ld b, a + ld a, [hli] + sub e + ld c, a + ld a, [wPikachuSaverAnimationFrame] + add $e + call LoadOAMData + ret + +Data_17e4b: + dr $17e4b, $17e81 Func_17e81: ; 0x17e81 - ld a, [$d548] - and a - ret z - ld hl, wBallSpin - ld a, [wBallRotation] - add [hl] - ld [wBallRotation], a - ld a, [wBallXPos + 1] - inc a - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, [wBallYPos + 1] - inc a - sub $10 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [wBallRotation] - srl a - srl a - srl a ; divide wBallRotation by 8 because - srl a ; there are 8 frames of the ball spinning - and $7 - add $0 - call LoadOAMData - ld a, [hGameBoyColorFlag] - and a - ret nz - ld a, [hGameBoyColorFlag] - and a - ret nz - ld a, [$fffb] - and a - ret nz - ld a, [$d4c5] - inc a - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, [$d4c6] - inc a - sub $10 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d4c7] - srl a - srl a - srl a - srl a - and $7 - add $0 - call LoadOAMData - ld a, [wBallXPos + 1] - ld [$d4c5], a - ld a, [wBallYPos + 1] - ld [$d4c6], a - ld a, [wBallRotation] - ld [$d4c7], a - ret + ld a, [wd548] + and a + ret z + ld hl, wBallSpin + ld a, [wBallRotation] + add [hl] + ld [wBallRotation], a + ld a, [wBallXPos + 1] + inc a + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wBallYPos + 1] + inc a + sub $10 + ld hl, hSCY + 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, [hSGBFlag] + and a + ret nz + ld a, [wd4c5] + inc a + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd4c6] + inc a + sub $10 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd4c7] + srl a + srl a + srl a + srl a + and $7 + add $0 + call LoadOAMData + ld a, [wBallXPos + 1] + ld [wd4c5], a + ld a, [wBallYPos + 1] + ld [wd4c6], a + ld a, [wBallRotation] + ld [wd4c7], a + ret Func_17efb: ; 0x17efb - ld a, [$d551] - and a - ret nz - ld a, [$ffb3] - bit 4, a - ret z - ld de, wIndicatorStates + 5 - ld hl, $7f3a - ld b, $6 - jr asm_17f21 + ld a, [wd551] + and a + ret nz + ld a, [hNumFramesDropped] + bit 4, a + ret z + ld de, wIndicatorStates + 5 + ld hl, Data_17f3a + ld b, $6 + jr asm_17f21 Func_17f0f: ; 0x17f0f - ld a, [$d551] - and a - ret nz - ld a, [$ffb3] - bit 4, a - ret z - ld de, wIndicatorStates + 11 - ld hl, $7f4c - ld b, $8 + ld a, [wd551] + and a + ret nz + ld a, [hNumFramesDropped] + bit 4, a + ret z + ld de, wIndicatorStates + 11 + ld hl, Data_17f4c + ld b, $8 asm_17f21: ; 0x17f21 - push bc - ld a, [hBoardXShift] - ld b, a - ld a, [hli] - sub b - ld b, a - ld a, [hBoardYShift] - ld c, a - ld a, [hli] - sub c - ld c, a - ld a, [de] - and a - ld a, [hli] - call nz, LoadOAMData - pop bc - inc de - dec b - jr nz, asm_17f21 - ret - -INCBIN "baserom.gbc",$17f3a,$17f64 - $17f3a + push bc + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [de] + and a + ld a, [hli] + call nz, LoadOAMData + pop bc + inc de + dec b + jr nz, asm_17f21 + ret + +Data_17f3a: + dr $17f3a, $17f4c + +Data_17f4c: + dr $17f4c, $17f64 Func_17f64: ; 0x17f64 - ld a, [$d551] - and a - ret z - ld de, $d566 - ld hl, $7fa6 - ld b, $c - ld c, $39 - jr asm_17f84 + ld a, [wd551] + and a + ret z + ld de, wd566 + ld hl, Data_17fa6 + ld b, $c + ld c, $39 + jr asm_17f84 Func_17f75: ; 0x17f75 - ld a, [$d551] - and a - ret z - ld de, $d572 - ld hl, $7fbe - ld b, $6 - ld c, $40 + ld a, [wd551] + and a + ret z + ld de, wd572 + ld hl, Data_17fbe + ld b, $6 + ld c, $40 asm_17f84: ; 0x17f84 - push bc - ld a, [de] - add c - cp c - push af - ld a, [hBoardXShift] - ld b, a - ld a, [hli] - sub b - ld b, a - ld a, [hBoardYShift] - ld c, a - ld a, [hli] - sub c - ld c, a - ld a, [$ffb3] - and $e - jr nz, .asm_17f9c - dec c + push bc + ld a, [de] + add c + cp c + push af + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [hNumFramesDropped] + and $e + jr nz, .asm_17f9c + dec c .asm_17f9c - pop af - call nz, LoadOAMData - pop bc - inc de - dec b - jr nz, asm_17f84 - ret + pop af + call nz, LoadOAMData + pop bc + inc de + dec b + jr nz, asm_17f84 + ret -INCBIN "baserom.gbc",$17fa6,$17fca - $17fa6 +Data_17fa6: + dr $17fa6, $17fbe -Func_17fca: ; 0x17fca - ld a, [$d604] - and a - ret z - ld a, [$d606] - inc a - ld [$d606], a - ld a, $40 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $1 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d606] - srl a - srl a - srl a - and $3 - add $4f - cp $52 - call nz, LoadOAMData - ret - -INCBIN "baserom.gbc",$17ff7,$18000 - $17ff7 +Data_17fbe: + dr $17fbe, $17fca +Func_17fca: ; 0x17fca + ld a, [wd604] + and a + ret z + ld a, [wd606] + inc a + ld [wd606], a + ld a, $40 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $1 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd606] + srl a + srl a + srl a + and $3 + add $4f + cp $52 + call nz, LoadOAMData + ret SECTION "bank6", ROMX, BANK[$6] Func_18000: ; 0x18000 - ld hl, wc000 - ld bc, $0a00 - call ClearData - ld a, $1 - ld [$ff4f], a - ld hl, $9c00 - ld bc, $0400 - call ClearData - xor a - ld [$ff4f], a - ld hl, $d4cb - ld bc, $032e - call ClearData - xor a - ld hl, $d46f - ld [hld], a - ld [hld], a - ld [hld], a - ld [hld], a - ld [hld], a - ld [hl], a - ld [wNumPartyMons], a - ld [$d49b], a - ld [$d4c9], a - ld a, $1 - ld [$d49d], a - ld a, $3 - ld [$d49e], a - ld [$ff8a], a - ld a, Bank(Func_dbba) - ld hl, Func_dbba - call BankSwitch - ret + ld hl, wc000 + ld bc, $0a00 + call ClearData + ld a, $1 + ld [rVBK], a + hlCoord 0, 0, vBGWin + ld bc, $0400 + call ClearData + xor a + ld [rVBK], a + ld hl, wd4cb + ld bc, $032e + call ClearData + xor a + ld hl, wScore + $5 + ld [hld], a + ld [hld], a + ld [hld], a + ld [hld], a + ld [hld], a + ld [hl], a + ld [wNumPartyMons], a + ld [wd49b], a + ld [wd4c9], a + ld a, $1 + ld [wd49d], a + ld a, $3 + ld [wd49e], a + callba Start20SecondSaverTimer + ret Func_1804a: ; 0x1804a - ld a, $0 - ld [wBallXPos], a - ld a, $b0 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $98 - ld [wBallYPos + 1], a - ret + ld a, $0 + ld [wBallXPos], a + ld a, $b0 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $98 + ld [wBallYPos + 1], a + ret Func_1805f: ; 0x1805f - ret + ret Func_18060: ; 0x18060 - ret + ret Func_18061: ; 0x18061 - ret + ret Func_18062: ; 0x18062 - ld [$ff8a], a - ld a, Bank(Func_1448e) - ld hl, Func_1448e - call BankSwitch - ret + callba Func_1448e + ret Func_1806d: ; 0x1806d - ret + ret Func_1806e: ; 0x1806e - ld [$ff8a], a - ld a, Bank(Func_1652d) - ld hl, Func_1652d - call BankSwitch - ret + callba Func_1652d + ret Func_18079: ; 0x18079 - ld [$ff8a], a - ld a, Bank(Func_17e81) - ld hl, Func_17e81 - call BankSwitch - ret + callba Func_17e81 + ret Func_18084: ; 0x18084 - ld [$ff8a], a - ld a, Bank(Func_e4a1) - ld hl, Func_e4a1 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_17e81) - ld hl, Func_17e81 - call BankSwitch - ret + callba Func_e4a1 + callba Func_17e81 + ret InitGengarBonusStage: ; 0x18099 - ld a, [$d7c1] - and a - jr z, .asm_180ac - xor a - ld [$d674], a - ld a, $8 - ld [$d690], a - ld [$d6a1], a - ret + ld a, [wd7c1] + and a + jr z, .asm_180ac + xor a + ld [wd674], a + ld a, $8 + ld [wd690], a + ld [wd6a1], a + ret + .asm_180ac - ld a, $1 - ld [$d7ac], a - ld a, [wBallType] - ld [wBallTypeBackup], a - xor a - ld [$d4c8], a - ld [wBallType], a - ld [$d49a], a - ld hl, $4121 ; todo - ld de, $d659 - call Func_18112 - call Func_18112 - call Func_18112 - ld hl, $413c ; todo - ld de, $d67e - call Func_18112 - call Func_18112 - ld hl, $414e ; todo - ld de, $d698 - call Func_18112 - xor a - ld [$d67b], a - ld [$d695], a - ld hl, $d6a2 - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [$d656], a - ld bc, $0130 ; 1 minute 30 seconds - ld [$ff8a], a - ld a, Bank(StartTimer) - ld hl, StartTimer - call BankSwitch - ld a, $f - call SetSongBank - ld de, $0005 - call PlaySong - ret + ld a, $1 + ld [wd7ac], a + ld a, [wBallType] + ld [wBallTypeBackup], a + xor a + ld [wd4c8], a + ld [wBallType], a + ld [wd49a], a + ld hl, Data_18121 + ld de, wd659 + call Func_18112 + call Func_18112 + call Func_18112 + ld hl, Data_1813c + ld de, wd67e + call Func_18112 + call Func_18112 + ld hl, Data_1814e + ld de, wd698 + call Func_18112 + xor a + ld [wd67b], a + ld [wd695], a + ld hl, wd6a2 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [wd656], a + ld bc, $0130 ; 1 minute 30 seconds + callba StartTimer + ld a, $f + call SetSongBank + ld de, $0005 + call PlaySong + ret Func_18112: ; 0x18112 - ld b, $3 + ld b, $3 .asm_18114 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_18114 - ret - -INCBIN "baserom.gbc",$18121,$18157 - $18121 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_18114 + ret + +Data_18121: + dr $18121, $1813c + +Data_1813c: + dr $1813c, $1814e + +Data_1814e: + dr $1814e, $18157 StartBallGengarBonusStage: ; 0x18157 - ld a, $0 - ld [wBallXPos], a - ld a, $a6 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $56 - ld [wBallYPos + 1], a - xor a - ld [$d7ab], a - ld [wStageCollisionState], a - ld [$d653], a - xor a - ld [$d674], a - ld a, $8 - ld [$d690], a - ld [$d6a1], a - ld a, [$d4c9] - and a - ret z - xor a - ld [$d4c9], a - ret + ld a, $0 + ld [wBallXPos], a + ld a, $a6 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $56 + ld [wBallYPos + 1], a + xor a + ld [wd7ab], a + ld [wStageCollisionState], a + ld [wd653], a + xor a + ld [wd674], a + ld a, $8 + ld [wd690], a + ld [wd6a1], a + ld a, [wd4c9] + and a + ret z + xor a + ld [wd4c9], a + ret Func_1818b: ; 0x1818b - ld [$ff8a], a - ld a, Bank(Func_142fc) - ld hl, Func_142fc - call BankSwitch - call Func_2862 - call Func_18d72 - ld a, [$d7c1] - ld [$ff8a], a - ld a, Bank(Func_1404a) - ld hl, Func_1404a - call BankSwitch - and a - ret z - call Func_183db - call Func_18d91 - ret + callba Func_142fc + call Func_2862 + call Func_18d72 + ld a, [wd7c1] + callba Func_1404a + and a + ret z + call Func_183db + call Func_18d91 + ret Func_181b1: ; 0x181b1 - call Func_181be - call Func_18259 - call Func_182e4 - call Func_18350 - ret + call Func_181be + call Func_18259 + call Func_182e4 + call Func_18350 + ret Func_181be: ; 0x181be - ld a, [$d659] - and a - ret z - ld a, [$d65f] - ld b, a - ld a, [$d661] - add $10 - ld c, a - ld a, [$d65b] - call Func_1820d - ld a, $1 - jr c, .asm_181fe - ld a, [$d668] - ld b, a - ld a, [$d66a] - add $10 - ld c, a - ld a, [$d664] - call Func_1820d - ld a, $2 - jr c, .asm_181fe - ld a, [$d671] - ld b, a - ld a, [$d673] - add $10 - ld c, a - ld a, [$d66d] - call Func_1820d - ld a, $3 - ret nc + ld a, [wd659] + and a + ret z + ld a, [wd65f] + ld b, a + ld a, [wd661] + add $10 + ld c, a + ld a, [wd65b] + call Func_1820d + ld a, $1 + jr c, .asm_181fe + ld a, [wd668] + ld b, a + ld a, [wd66a] + add $10 + ld c, a + ld a, [wd664] + call Func_1820d + ld a, $2 + jr c, .asm_181fe + ld a, [wd671] + ld b, a + ld a, [wd673] + add $10 + ld c, a + ld a, [wd66d] + call Func_1820d + ld a, $3 + ret nc .asm_181fe - ld [$d4eb], a - ld [$d657], a - add $4 - ld [$d4ea], a - ld [$d658], a - ret + ld [wd4eb], a + ld [wd657], a + add $4 + ld [wd4ea], a + ld [wd658], a + ret Func_1820d: ; 0x1820d - cp $4 - jr z, .asm_18257 - ld a, [wBallXPos + 1] - sub b - cp $20 - jr nc, .asm_18257 - ld b, a - ld a, [wBallYPos + 1] - sub c - cp $20 - jr nc, .asm_18257 - ld c, a - ld e, c - ld d, $0 - sla e - rl d - sla e - rl d - sla e - rl d - sla e - rl d - sla e - rl d - ld l, b - ld h, $0 - add hl, de - ld de, $5100 - add hl, de - ld a, $3a - call ReadByteFromBank - bit 7, a - jr nz, .asm_18257 - sla a - ld [$d7ea], a - ld a, $1 - ld [$d7e9], a - scf - ret + cp $4 + jr z, .asm_18257 + ld a, [wBallXPos + 1] + sub b + cp $20 + jr nc, .asm_18257 + ld b, a + ld a, [wBallYPos + 1] + sub c + cp $20 + jr nc, .asm_18257 + ld c, a + ld e, c + ld d, $0 + sla e + rl d + sla e + rl d + sla e + rl d + sla e + rl d + sla e + rl d + ld l, b + ld h, $0 + add hl, de + ld de, Data_e9100 + add hl, de + ld a, BANK(Data_e9100) + call ReadByteFromBank + bit 7, a + jr nz, .asm_18257 + sla a + ld [wd7ea], a + ld a, $1 + ld [wd7e9], a + scf + ret + .asm_18257 - and a - ret + and a + ret Func_18259: ; 0x18259 - ld a, [$d67e] - and a - ret z - ld a, [$d684] - add $fe - ld b, a - ld a, [$d686] - add $c - ld c, a - ld a, [$d680] - call Func_18298 - ld a, $1 - jr c, .asm_18289 - ld a, [$d68d] - add $fe - ld b, a - ld a, [$d68f] - add $c - ld c, a - ld a, [$d689] - call Func_18298 - ld a, $2 - ret nc + ld a, [wd67e] + and a + ret z + ld a, [wd684] + add $fe + ld b, a + ld a, [wd686] + add $c + ld c, a + ld a, [wd680] + call Func_18298 + ld a, $1 + jr c, .asm_18289 + ld a, [wd68d] + add $fe + ld b, a + ld a, [wd68f] + add $c + ld c, a + ld a, [wd689] + call Func_18298 + ld a, $2 + ret nc .asm_18289 - ld [$d4eb], a - ld [$d67c], a - add $7 - ld [$d4ea], a - ld [$d67d], a - ret + ld [wd4eb], a + ld [wd67c], a + add $7 + ld [wd4ea], a + ld [wd67d], a + ret Func_18298: ; 0x18298 - cp $5 - jr z, .asm_182e2 - ld a, [wBallXPos + 1] - sub b - cp $20 - jr nc, .asm_182e2 - ld b, a - ld a, [wBallYPos + 1] - sub c - cp $28 - jr nc, .asm_182e2 - ld c, a - ld e, c - ld d, $0 - sla e - rl d - sla e - rl d - sla e - rl d - sla e - rl d - sla e - rl d - ld l, b - ld h, $0 - add hl, de - ld de, $4c00 - add hl, de - ld a, $3a - call ReadByteFromBank - bit 7, a - jr nz, .asm_182e2 - sla a - ld [$d7ea], a - ld a, $1 - ld [$d7e9], a - scf - ret + cp $5 + jr z, .asm_182e2 + ld a, [wBallXPos + 1] + sub b + cp $20 + jr nc, .asm_182e2 + ld b, a + ld a, [wBallYPos + 1] + sub c + cp $28 + jr nc, .asm_182e2 + ld c, a + ld e, c + ld d, $0 + sla e + rl d + sla e + rl d + sla e + rl d + sla e + rl d + sla e + rl d + ld l, b + ld h, $0 + add hl, de + ld de, Data_e8c00 + add hl, de + ld a, BANK(Data_e8c00) + call ReadByteFromBank + bit 7, a + jr nz, .asm_182e2 + sla a + ld [wd7ea], a + ld a, $1 + ld [wd7e9], a + scf + ret + .asm_182e2 - and a - ret + and a + ret Func_182e4: ; 0x182e4 - ld a, [$d698] - and a - ret z - ld a, [$d69e] - ld b, a - ld a, [$d6a0] - add $c - ld c, a - call Func_18308 - ld a, $1 - ret nc - ld [$d4eb], a - ld [$d696], a - add $9 - ld [$d4ea], a - ld [$d697], a - ret + ld a, [wd698] + and a + ret z + ld a, [wd69e] + ld b, a + ld a, [wd6a0] + add $c + ld c, a + call Func_18308 + ld a, $1 + ret nc + ld [wd4eb], a + ld [wd696], a + add $9 + ld [wd4ea], a + ld [wd697], a + ret Func_18308: ; 0x18308 - ld a, [wBallXPos + 1] - sub b - cp $30 - jr nc, .asm_1834e - ld b, a - ld a, [wBallYPos + 1] - sub c - cp $40 - jr nc, .asm_1834e - ld c, a - ld a, c - sla a - add c - ld e, a - ld d, $0 - sla e - rl d - sla e - rl d - sla e - rl d - sla e - rl d - ld l, b - ld h, $0 - add hl, de - ld de, $4000 - add hl, de - ld a, $3a - call ReadByteFromBank - bit 7, a - jr nz, .asm_1834e - sla a - ld [$d7ea], a - ld a, $1 - ld [$d7e9], a - scf - ret + ld a, [wBallXPos + 1] + sub b + cp $30 + jr nc, .asm_1834e + ld b, a + ld a, [wBallYPos + 1] + sub c + cp $40 + jr nc, .asm_1834e + ld c, a + ld a, c + sla a + add c + ld e, a + ld d, $0 + sla e + rl d + sla e + rl d + sla e + rl d + sla e + rl d + ld l, b + ld h, $0 + add hl, de + ld de, Data_e8000 + add hl, de + ld a, BANK(Data_e8000) + call ReadByteFromBank + bit 7, a + jr nz, .asm_1834e + sla a + ld [wd7ea], a + ld a, $1 + ld [wd7e9], a + scf + ret + .asm_1834e - and a - ret + and a + ret Func_18350: ; 0x18350 - ld de, $4368 ; todo - ld hl, $435d ; todo - ld bc, $d654 - and a - jp Func_2775 + ld de, Data_18368 + ld hl, Data_1835d + ld bc, wd654 + and a + jp Func_2775 -INCBIN "baserom.gbc",$1835d,$18377 - $1835d +Data_1835d: + dr $1835d, $18368 + +Data_18368: + dr $18368, $18377 Func_18377: ; 0x18377 - call Func_18464 - call Func_1860b - call Func_187b1 - call Func_18d34 - call Func_183b7 - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $1 - ld [$d7be], a - call Func_2862 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld a, [$d6a2] - cp $5 - ret nc - ld a, $1 - ld [$d6a8], a - ret + call Func_18464 + call Func_1860b + call Func_187b1 + call Func_18d34 + call Func_183b7 + callba Func_107f8 + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $1 + ld [wd7be], a + call Func_2862 + callba Func_86d2 + ld a, [wd6a2] + cp $5 + ret nc + ld a, $1 + ld [wd6a8], a + ret Func_183b7: ; 0x183b7 - ld a, [$d653] - and a - ret nz - ld a, [$d4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [$d653], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - call Func_183db - call Func_18d91 - ret + ld a, [wd653] + and a + ret nz + ld a, [wd4b4] + cp $8a + ret nc + ld a, $1 + ld [wStageCollisionState], a + ld [wd653], a + callba LoadStageCollisionAttributes + call Func_183db + call Func_18d91 + ret Func_183db: ; 0x183db - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, $43f8 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_183ee - ld hl, $442e + ld a, [wStageCollisionState] + sla a + ld c, a + ld b, $0 + ld hl, Data_183f8 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_183ee + ld hl, Data_1842e .asm_183ee - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $6 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, BANK(Data_183f8) + call Func_10aa + ret + +Data_183f8: + dr $183f8, $1842e -INCBIN "baserom.gbc",$183f8,$18464 - $183f8 +Data_1842e: + dr $1842e, $18464 Func_18464: ; 0x18464 - ld a, [$d659] - and a - ret z - ld a, [$d657] - and a - jr z, .asm_184d5 - xor a - ld [$d657], a - ld a, [$d7be] - and a - jr nz, .asm_184d5 - ld a, [$d658] - sub $5 - ld c, a - sla a - sla a - sla a - add c - ld c, a - ld b, $0 - ld hl, $d65d - add hl, bc - ld d, h - ld e, l - ld a, [de] - and a - jr nz, .asm_184d5 - push de - dec de - dec de - dec de - ld hl, $45e6 - call CopyHLToDE - pop de - ld a, $1 - ld [de], a - ld a, [$d67b] - inc a - ld [$d67b], a - ld bc, $34d6 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld a, $33 - ld [$d803], a - ld a, $8 - ld [$d804], a - ld hl, $0100 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a - ld de, $002c - call PlaySoundEffect + ld a, [wd659] + and a + ret z + ld a, [wd657] + and a + jr z, .asm_184d5 + xor a + ld [wd657], a + ld a, [wd7be] + and a + jr nz, .asm_184d5 + ld a, [wd658] + sub $5 + ld c, a + sla a + sla a + sla a + add c + ld c, a + ld b, $0 + ld hl, wd65d + add hl, bc + ld d, h + ld e, l + ld a, [de] + and a + jr nz, .asm_184d5 + push de + dec de + dec de + dec de + ld hl, Data_185e6 + call CopyHLToDE + pop de + ld a, $1 + ld [de], a + ld a, [wd67b] + inc a + ld [wd67b], a + ld bc, OneHundredThousandPoints + callba AddBigBCD6FromQueue + ld a, $33 + ld [wd803], a + ld a, $8 + ld [wd804], a + ld hl, $0100 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a + lb de, $00, $2c + call PlaySoundEffect .asm_184d5 - ld bc, $0830 - ld de, $d65d - ld hl, $d675 - call Func_1850c - ld bc, $5078 - ld de, $d666 - ld hl, $d677 - call Func_1850c - ld bc, $3050 - ld de, $d66f - ld hl, $d679 - call Func_1850c - ld de, $d65d - call Func_18562 - ld de, $d666 - call Func_18562 - ld de, $d66f - call Func_18562 - ret + ld bc, $0830 + ld de, wd65d + ld hl, wd675 + call Func_1850c + ld bc, $5078 + ld de, wd666 + ld hl, wd677 + call Func_1850c + ld bc, $3050 + ld de, wd66f + ld hl, wd679 + call Func_1850c + ld de, wd65d + call Func_18562 + ld de, wd666 + call Func_18562 + ld de, wd66f + call Func_18562 + ret Func_1850c: ; 0x1850c - ld a, [de] - and a - ret nz - inc de - push hl - ld a, [hli] - push af - push bc - ld a, [hl] - inc a - and $1f - ld [hl], a - ld c, a - ld b, $0 - ld hl, $4542 - add hl, bc - pop bc - pop af - and a - jr nz, .asm_18534 - ld a, [de] - add [hl] - ld [de], a - inc de - ld a, [de] - adc $0 - ld [de], a - pop hl - cp c - ret c - ld a, $1 - ld [hl], a - ret + ld a, [de] + and a + ret nz + inc de + push hl + ld a, [hli] + push af + push bc + ld a, [hl] + inc a + and $1f + ld [hl], a + ld c, a + ld b, $0 + ld hl, Data_18542 + add hl, bc + pop bc + pop af + and a + jr nz, .asm_18534 + ld a, [de] + add [hl] + ld [de], a + inc de + ld a, [de] + adc $0 + ld [de], a + pop hl + cp c + ret c + ld a, $1 + ld [hl], a + ret + .asm_18534 - ld a, [de] - sub [hl] - ld [de], a - inc de - ld a, [de] - sbc $0 - ld [de], a - pop hl - cp b - ret nc - xor a - ld [hl], a - ret - -INCBIN "baserom.gbc",$18542,$18562 - $18542 + ld a, [de] + sub [hl] + ld [de], a + inc de + ld a, [de] + sbc $0 + ld [de], a + pop hl + cp b + ret nc + xor a + ld [hl], a + ret + +Data_18542: + dr $18542, $18562 Func_18562: ; 0x18562 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $45d9 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - dec de - and a - jr nz, .asm_1858a - ld a, [de] - cp $4 - ret nz - ld hl, $45dd - dec de - dec de - call CopyHLToDE - ret + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_185d9 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call UpdateAnimation + pop de + ret nc + ld a, [de] + dec de + and a + jr nz, .asm_1858a + ld a, [de] + cp $4 + ret nz + ld hl, Data_185dd + dec de + dec de + call CopyHLToDE + ret + .asm_1858a - cp $1 - ret nz - ld a, [de] - cp $12 - ret nz - ld a, [$d67b] - cp $a - jr nz, .asm_185b1 - ld a, $1 - ld [$d67e], a - ld [$d687], a - xor a - ld [$d659], a - ld [$d662], a - ld [$d66b], a - ld de, $0006 - call PlaySong - ret + cp $1 + ret nz + ld a, [de] + cp $12 + ret nz + ld a, [wd67b] + cp $a + jr nz, .asm_185b1 + ld a, $1 + ld [wd67e], a + ld [wd687], a + xor a + ld [wd659], a + ld [wd662], a + ld [wd66b], a + ld de, $0006 + call PlaySong + ret + .asm_185b1 - ld c, a - ld a, [$d65d] - and a - jr nz, .asm_185b9 - inc c + ld c, a + ld a, [wd65d] + and a + jr nz, .asm_185b9 + inc c .asm_185b9 - ld a, [$d666] - and a - jr nz, .asm_185c0 - inc c + ld a, [wd666] + and a + jr nz, .asm_185c0 + inc c .asm_185c0 - ld a, [$d66f] - and a - jr nz, .asm_185c7 - inc c + ld a, [wd66f] + and a + jr nz, .asm_185c7 + inc c .asm_185c7 - ld a, c - cp $a - ret nc - ld hl, $45dd - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - xor a - ld [de], a - ret - -INCBIN "baserom.gbc",$185d9,$1860b - $185d9 + ld a, c + cp $a + ret nc + ld hl, Data_185dd + push de + dec de + dec de + call CopyHLToDE + pop de + inc de + xor a + ld [de], a + ret + +Data_185d9: + dr $185d9, $185dd + +Data_185dd: + dr $185dd, $185e6 + +Data_185e6: + dr $185e6, $1860b Func_1860b: ; 0x1860b - ld a, [$d67e] - and a - ret z - ld a, [$d67c] - and a - jr z, .asm_1867c - xor a - ld [$d67c], a - ld a, [$d7be] - and a - jr nz, .asm_1867c - ld a, [$d67d] - sub $8 - ld c, a - sla a - sla a - sla a - add c - ld c, a - ld b, $0 - ld hl, $d682 - add hl, bc - ld d, h - ld e, l - ld a, [de] - and a - jr nz, .asm_1867c - push de - dec de - dec de - dec de - ld hl, $478a - call CopyHLToDE - pop de - ld a, $1 - ld [de], a - ld a, [$d695] - inc a - ld [$d695], a - ld bc, $34e2 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld a, $33 - ld [$d803], a - ld a, $8 - ld [$d804], a - ld hl, $0100 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a - ld de, $002d - call PlaySoundEffect + ld a, [wd67e] + and a + ret z + ld a, [wd67c] + and a + jr z, .asm_1867c + xor a + ld [wd67c], a + ld a, [wd7be] + and a + jr nz, .asm_1867c + ld a, [wd67d] + sub $8 + ld c, a + sla a + sla a + sla a + add c + ld c, a + ld b, $0 + ld hl, wd682 + add hl, bc + ld d, h + ld e, l + ld a, [de] + and a + jr nz, .asm_1867c + push de + dec de + dec de + dec de + ld hl, Data_1878a + call CopyHLToDE + pop de + ld a, $1 + ld [de], a + ld a, [wd695] + inc a + ld [wd695], a + ld bc, FiveHundredThousandPoints + callba AddBigBCD6FromQueue + ld a, $33 + ld [wd803], a + ld a, $8 + ld [wd804], a + ld hl, $0100 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a + lb de, $00, $2d + call PlaySoundEffect .asm_1867c - ld bc, $5078 - ld de, $d682 - ld hl, $d691 - call Func_186a1 - ld bc, $1038 - ld de, $d68b - ld hl, $d693 - call Func_186a1 - ld de, $d682 - call Func_186f7 - ld de, $d68b - call Func_186f7 - ret + ld bc, $5078 + ld de, wd682 + ld hl, wd691 + call Func_186a1 + ld bc, $1038 + ld de, wd68b + ld hl, wd693 + call Func_186a1 + ld de, wd682 + call Func_186f7 + ld de, wd68b + call Func_186f7 + ret Func_186a1: ; 0x186a1 - ld a, [de] - and a - ret nz - inc de - push hl - ld a, [hli] - push af - push bc - ld a, [hl] - inc a - and $1f - ld [hl], a - ld c, a - ld b, $0 - ld hl, $46d7 - add hl, bc - pop bc - pop af - and a - jr nz, .asm_186c9 - ld a, [de] - add [hl] - ld [de], a - inc de - ld a, [de] - adc $0 - ld [de], a - pop hl - cp c - ret c - ld a, $1 - ld [hl], a - ret + ld a, [de] + and a + ret nz + inc de + push hl + ld a, [hli] + push af + push bc + ld a, [hl] + inc a + and $1f + ld [hl], a + ld c, a + ld b, $0 + ld hl, Data_186d7 + add hl, bc + pop bc + pop af + and a + jr nz, .asm_186c9 + ld a, [de] + add [hl] + ld [de], a + inc de + ld a, [de] + adc $0 + ld [de], a + pop hl + cp c + ret c + ld a, $1 + ld [hl], a + ret + .asm_186c9 - ld a, [de] - sub [hl] - ld [de], a - inc de - ld a, [de] - sbc $0 - ld [de], a - pop hl - cp b - ret nc - xor a - ld [hl], a - ret - -INCBIN "baserom.gbc",$186d7,$186f7 - $186d7 + ld a, [de] + sub [hl] + ld [de], a + inc de + ld a, [de] + sbc $0 + ld [de], a + pop hl + cp b + ret nc + xor a + ld [hl], a + ret + +Data_186d7: + dr $186d7, $186f7 Func_186f7: ; 0x186f7 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $477d - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - dec de - and a - jr nz, .asm_1871f - ld a, [de] - cp $4 - ret nz - ld hl, $4781 - dec de - dec de - call CopyHLToDE - ret + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_1877d + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call UpdateAnimation + pop de + ret nc + ld a, [de] + dec de + and a + jr nz, .asm_1871f + ld a, [de] + cp $4 + ret nz + ld hl, Data_18781 + dec de + dec de + call CopyHLToDE + ret + .asm_1871f - cp $1 - ret nz - ld a, [de] - cp $12 - jr nz, .asm_18761 - ld a, [$d695] - cp $a - jr nz, .asm_18740 - ld a, $1 - ld [$d656], a - call Func_18d72 - call Func_18d91 - ld de, $0000 - call PlaySong - ret + cp $1 + ret nz + ld a, [de] + cp $12 + jr nz, .asm_18761 + ld a, [wd695] + cp $a + jr nz, .asm_18740 + ld a, $1 + ld [wd656], a + call Func_18d72 + call Func_18d91 + ld de, $0000 + call PlaySong + ret + .asm_18740 - ld c, a - ld a, [$d682] - and a - jr nz, .asm_18748 - inc c + ld c, a + ld a, [wd682] + and a + jr nz, .asm_18748 + inc c .asm_18748 - ld a, [$d68b] - and a - jr nz, .asm_1874f - inc c + ld a, [wd68b] + and a + jr nz, .asm_1874f + inc c .asm_1874f - ld a, c - cp $a - ret nc - ld hl, $4781 - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - xor a - ld [de], a - ret + ld a, c + cp $a + ret nc + ld hl, Data_18781 + push de + dec de + dec de + call CopyHLToDE + pop de + inc de + xor a + ld [de], a + ret + .asm_18761 - cp $13 - ret nz - ld a, [$d695] - cp $a - ret nz - ld a, $1 - ld [$d698], a - xor a - ld [$d67e], a - ld [$d687], a - ld de, GENGAR - call PlayCry - ret - -INCBIN "baserom.gbc",$1877d,$187b1 - $1877d + cp $13 + ret nz + ld a, [wd695] + cp $a + ret nz + ld a, $1 + ld [wd698], a + xor a + ld [wd67e], a + ld [wd687], a + ld de, GENGAR + call PlayCry + ret + +Data_1877d: + dr $1877d, $18781 + +Data_18781: + dr $18781, $1878a + +Data_1878a: + dr $1878a, $187b1 Func_187b1: ; 0x187b1 - ld a, [$d698] - and a - ret z - ld a, [$d696] - and a - jp z, .asm_1885d - xor a - ld [$d696], a - ld a, [$d7be] - and a - jp nz, .asm_1885d - ld a, [$d697] - sub $a - ld c, a - sla a - sla a - sla a - add c - ld c, a - ld b, $0 - ld hl, $d69c - add hl, bc - ld d, h - ld e, l - ld a, [de] - and a - jp nz, .asm_1885d - push de - dec de - dec de - dec de - ld a, [$d6a2] - inc a - ld [$d6a2], a - cp $5 - jr nc, .asm_18804 - ld hl, $4b2b - call CopyHLToDE - pop de - ld a, $2 - ld [de], a - ld de, $0037 - call PlaySoundEffect - jr .asm_18826 + ld a, [wd698] + and a + ret z + ld a, [wd696] + and a + jp z, .asm_1885d + xor a + ld [wd696], a + ld a, [wd7be] + and a + jp nz, .asm_1885d + ld a, [wd697] + sub $a + ld c, a + sla a + sla a + sla a + add c + ld c, a + ld b, $0 + ld hl, wd69c + add hl, bc + ld d, h + ld e, l + ld a, [de] + and a + jp nz, .asm_1885d + push de + dec de + dec de + dec de + ld a, [wd6a2] + inc a + ld [wd6a2], a + cp $5 + jr nc, .asm_18804 + ld hl, Data_18b2b + call CopyHLToDE + pop de + ld a, $2 + ld [de], a + lb de, $00, $37 + call PlaySoundEffect + jr .asm_18826 + .asm_18804 - ld hl, $4b32 - call CopyHLToDE - pop de - ld a, $3 - ld [de], a - ld a, $1 - ld [$d7be], a - call Func_2862 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld de, $0000 - call PlaySong + ld hl, Data_18b32 + call CopyHLToDE + pop de + ld a, $3 + ld [de], a + ld a, $1 + ld [wd7be], a + call Func_2862 + callba Func_86d2 + ld de, $0000 + call PlaySong .asm_18826 - ld bc, $34ee - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld a, $33 - ld [$d803], a - ld a, $8 - ld [$d804], a - ld hl, $0200 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a - ld a, [$d69f] - add $0 - ld [$d69f], a - ld a, [$d6a0] - adc $ff - ld [$d6a0], a + ld bc, FiveMillionPoints + callba AddBigBCD6FromQueue + ld a, $33 + ld [wd803], a + ld a, $8 + ld [wd804], a + ld hl, $0200 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a + ld a, [wd69f] + add $0 + ld [wd69f], a + ld a, [wd6a0] + adc $ff + ld [wd6a0], a .asm_1885d - ld a, [$d69c] - cp $2 - jr nc, .asm_18869 - call Func_18876 - jr .asm_1886c + ld a, [wd69c] + cp $2 + jr nc, .asm_18869 + call Func_18876 + jr .asm_1886c + .asm_18869 - call Func_188e1 + call Func_188e1 .asm_1886c - ld de, $d69c - call Func_189af - call Func_1894c - ret + ld de, wd69c + call Func_189af + call Func_1894c + ret Func_18876: ; 0x18876 - ld a, [$d6a3] - cp $1 - jr z, .asm_1889b - cp $2 - jr z, .asm_1889b - ld a, [$d69a] - cp $1 - jr z, .asm_1888c - cp $2 - jr nz, .asm_1889b + ld a, [wd6a3] + cp $1 + jr z, .asm_1889b + cp $2 + jr z, .asm_1889b + ld a, [wd69a] + cp $1 + jr z, .asm_1888c + cp $2 + jr nz, .asm_1889b .asm_1888c - ld a, $1 - ld [$d6a4], a - ld a, $11 - ld [$d803], a - ld a, $8 - ld [$d804], a + ld a, $1 + ld [wd6a4], a + ld a, $11 + ld [wd803], a + ld a, $8 + ld [wd804], a .asm_1889b - ld a, [$d69a] - ld hl, $d6a3 - cp [hl] - ret z - ld a, [$d69c] - and a - jr nz, .asm_188da - ld a, [$d6a0] - add $80 - cp $a0 - jr nc, .asm_188da - ld a, [$d69a] - and a - jr z, .asm_188ca - ld a, [$d69f] - add $0 - ld [$d69f], a - ld a, [$d6a0] - adc $3 - ld [$d6a0], a - jr .asm_188da + ld a, [wd69a] + ld hl, wd6a3 + cp [hl] + ret z + ld a, [wd69c] + and a + jr nz, .asm_188da + ld a, [wd6a0] + add $80 + cp $a0 + jr nc, .asm_188da + ld a, [wd69a] + and a + jr z, .asm_188ca + ld a, [wd69f] + add $0 + ld [wd69f], a + ld a, [wd6a0] + adc $3 + ld [wd6a0], a + jr .asm_188da + .asm_188ca - ld a, [$d69f] - add $0 - ld [$d69f], a - ld a, [$d6a0] - adc $1 - ld [$d6a0], a + ld a, [wd69f] + add $0 + ld [wd69f], a + ld a, [wd6a0] + adc $1 + ld [wd6a0], a .asm_188da - ld a, [$d69a] - ld [$d6a3], a - ret + ld a, [wd69a] + ld [wd6a3], a + ret Func_188e1: ; 0x188e1 - ld a, [$d6a3] - cp $1 - jr z, .asm_18901 - cp $2 - jr z, .asm_18901 - ld a, [$d69a] - cp $1 - jr z, .asm_188f7 - cp $2 - jr nz, .asm_18901 + ld a, [wd6a3] + cp $1 + jr z, .asm_18901 + cp $2 + jr z, .asm_18901 + ld a, [wd69a] + cp $1 + jr z, .asm_188f7 + cp $2 + jr nz, .asm_18901 .asm_188f7 - ld a, $1 - ld [$d803], a - ld a, $8 - ld [$d804], a + ld a, $1 + ld [wd803], a + ld a, $8 + ld [wd804], a .asm_18901 - ld a, [$d69a] - cp $6 - ret z - ld a, [$d69a] - ld hl, $d6a3 - cp [hl] - ret z - ld a, [$d69c] - cp $3 - jr nz, .asm_1891d - ld a, [$d69b] - cp $9 - jr c, .asm_18945 + ld a, [wd69a] + cp $6 + ret z + ld a, [wd69a] + ld hl, wd6a3 + cp [hl] + ret z + ld a, [wd69c] + cp $3 + jr nz, .asm_1891d + ld a, [wd69b] + cp $9 + jr c, .asm_18945 .asm_1891d - ld a, [$d69a] - and a - jr z, .asm_18935 - ld a, [$d69f] - add $0 - ld [$d69f], a - ld a, [$d6a0] - adc $fd - ld [$d6a0], a - jr .asm_18945 + ld a, [wd69a] + and a + jr z, .asm_18935 + ld a, [wd69f] + add $0 + ld [wd69f], a + ld a, [wd6a0] + adc $fd + ld [wd6a0], a + jr .asm_18945 + .asm_18935 - ld a, [$d69f] - add $0 - ld [$d69f], a - ld a, [$d6a0] - adc $ff - ld [$d6a0], a + ld a, [wd69f] + add $0 + ld [wd69f], a + ld a, [wd6a0] + adc $ff + ld [wd6a0], a .asm_18945 - ld a, [$d69a] - ld [$d6a3], a - ret + ld a, [wd69a] + ld [wd6a3], a + ret Func_1894c: ; 0x1894c - ld a, [$d6a6] - and a - jr nz, .asm_1898f - ld a, [$d6a4] - and a - jr z, .asm_1898f - ld a, [$d6a5] - cp $3 - jr z, .asm_18980 - inc a - ld [$d6a5], a - ld a, [$d548] - ld hl, $d549 - and [hl] - jr z, .asm_18973 - ld a, [$d4b6] - inc a - ld [$d4b6], a + ld a, [wd6a6] + and a + jr nz, .asm_1898f + ld a, [wd6a4] + and a + jr z, .asm_1898f + ld a, [wd6a5] + cp $3 + jr z, .asm_18980 + inc a + ld [wd6a5], a + ld a, [wd548] + ld hl, wd549 + and [hl] + jr z, .asm_18973 + ld a, [wd4b6] + inc a + ld [wd4b6], a .asm_18973 - ld a, [$d7a0] - dec a - ld [$d7a0], a - ld a, $1 - ld [wUpperTiltPushing], a - ret + ld a, [wd7a0] + dec a + ld [wd7a0], a + ld a, $1 + ld [wUpperTiltPushing], a + ret + .asm_18980 - ld de, $002b - call PlaySoundEffect - ld a, $1 - ld [$d6a6], a - xor a - ld [$d6a4], a + lb de, $00, $2b + call PlaySoundEffect + ld a, $1 + ld [wd6a6], a + xor a + ld [wd6a4], a .asm_1898f - xor a - ld [wUpperTiltPushing], a - ld a, [$d6a5] - and a - jr z, .asm_189a5 - dec a - ld [$d6a5], a - ld a, [$d7a0] - inc a - ld [$d7a0], a - ret + xor a + ld [wUpperTiltPushing], a + ld a, [wd6a5] + and a + jr z, .asm_189a5 + dec a + ld [wd6a5], a + ld a, [wd7a0] + inc a + ld [wd7a0], a + ret + .asm_189a5 - ld a, [$d6a4] - and a - ret nz - xor a - ld [$d6a6], a - ret + ld a, [wd6a4] + and a + ret nz + xor a + ld [wd6a6], a + ret Func_189af: ; 0x189af - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $4a57 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - dec de - and a - jr nz, .asm_189d7 - ld a, [de] - cp $4 - ret nz - ld hl, $4a61 - dec de - dec de - call CopyHLToDE - ret + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_18a57 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call UpdateAnimation + pop de + ret nc + ld a, [de] + dec de + and a + jr nz, .asm_189d7 + ld a, [de] + cp $4 + ret nz + ld hl, Data_18a61 + dec de + dec de + call CopyHLToDE + ret + .asm_189d7 - cp $1 - jr nz, .asm_189ed - ld a, [de] - cp $60 - ret nz - ld hl, $4a61 - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - xor a - ld [de], a - ret + cp $1 + jr nz, .asm_189ed + ld a, [de] + cp $60 + ret nz + ld hl, Data_18a61 + push de + dec de + dec de + call CopyHLToDE + pop de + inc de + xor a + ld [de], a + ret + .asm_189ed - cp $2 - jr nz, .asm_18a04 - ld a, [de] - cp $3 - ret nz - ld hl, $4a6a - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - ld a, $1 - ld [de], a - ret + cp $2 + jr nz, .asm_18a04 + ld a, [de] + cp $3 + ret nz + ld hl, Data_18a6a + push de + dec de + dec de + call CopyHLToDE + pop de + inc de + ld a, $1 + ld [de], a + ret + .asm_18a04 - cp $3 - jr nz, .asm_18a3c - ld a, [de] - cp $1 - jr nz, .asm_18a14 - ld de, $002e - call PlaySoundEffect - ret + cp $3 + jr nz, .asm_18a3c + ld a, [de] + cp $1 + jr nz, .asm_18a14 + lb de, $00, $2e + call PlaySoundEffect + ret + .asm_18a14 - cp $fe - ret nz - ld a, $1 - ld [$d6a8], a - ld a, $1 - ld [$d498], a - ld a, $1 - ld [$d49a], a - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $2f7b - call Func_32aa - ld de, $4b2a - call PlaySoundEffect - ret + cp $fe + ret nz + ld a, $1 + ld [wd6a8], a + ld a, $1 + ld [wd498], a + ld a, $1 + ld [wd49a], a + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, Data_2f7b + call LoadTextHeader + lb de, $4b, $2a + call PlaySoundEffect + ret + .asm_18a3c - cp $4 - ret nz - ld a, [de] - cp $2 - ret nz - ld hl, $4a61 - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - xor a - ld [de], a - ld de, $0007 - call PlaySong - ret - -INCBIN "baserom.gbc",$18a57,$18d34 - $18a57 + cp $4 + ret nz + ld a, [de] + cp $2 + ret nz + ld hl, Data_18a61 + push de + dec de + dec de + call CopyHLToDE + pop de + inc de + xor a + ld [de], a + ld de, $0007 + call PlaySong + ret + +Data_18a57: + dr $18a57, $18a61 + +Data_18a61: + dr $18a61, $18a6a + +Data_18a6a: + dr $18a6a, $18b2b + +Data_18b2b: + dr $18b2b, $18b32 + +Data_18b32: + dr $18b32, $18d34 Func_18d34: ; 0x18d34 - ld a, [$d654] - and a - jr z, .asm_18d71 - xor a - ld [$d654], a - ld a, [$d7be] - and a - jr nz, .asm_18d71 - ld bc, $34b2 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld a, $ff - ld [$d803], a - ld a, $3 - ld [$d804], a - ld hl, $0100 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a - ld de, $002f - call Func_4d8 + ld a, [wd654] + and a + jr z, .asm_18d71 + xor a + ld [wd654], a + ld a, [wd7be] + and a + jr nz, .asm_18d71 + ld bc, OneHundredPoints + callba AddBigBCD6FromQueue + ld a, $ff + ld [wd803], a + ld a, $3 + ld [wd804], a + ld hl, $0100 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a + ld de, $002f + call Func_4d8 .asm_18d71 - ret + ret Func_18d72: ; 0x18d72 - ld a, [$d656] - sla a - ld c, a - ld b, $0 - ld hl, $4ddb - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_18d85 - ld hl, $4ed1 + ld a, [wd656] + sla a + ld c, a + ld b, $0 + ld hl, Data_18ddb + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_18d85 + ld hl, Data_18ed1 .asm_18d85 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $6 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, $6 + call Func_10aa + ret Func_18d91: ; 0x18d91 - ld a, [$d656] - and a - ld hl, $4dc9 - jr z, .asm_18d9d - ld hl, $4dd2 + ld a, [wd656] + and a + ld hl, Data_18dc9 + jr z, .asm_18d9d + ld hl, Data_18dd2 .asm_18d9d - ld de, $c7c7 - call Func_18db2 - ld de, $c7ae - call Func_18db2 - ld de, $c823 - call Func_18db2 - ld de, $c84d - ; fall through + ld de, wc7c7 + call Func_18db2 + ld de, wc7ae + call Func_18db2 + ld de, wc823 + call Func_18db2 + ld de, wc84d + ; fall through Func_18db2: ; 0x18db2 - push hl - ld b, $3 + push hl + ld b, $3 .asm_18db5 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, e - add $1e - ld e, a - jr nc, .asm_18dc4 - inc d + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ld a, e + add $1e + ld e, a + jr nc, .asm_18dc4 + inc d .asm_18dc4 - dec b - jr nz, .asm_18db5 - pop hl - ret + dec b + jr nz, .asm_18db5 + pop hl + ret + +Data_18dc9: + dr $18dc9, $18dd2 + +Data_18dd2: + dr $18dd2, $18ddb + +Data_18ddb: + dr $18ddb, $18ed1 -INCBIN "baserom.gbc",$18dc9,$18faf - $18dc9 +Data_18ed1: + dr $18ed1, $18faf Func_18faf: ; 0x18faf - ld bc, $7f00 - ld [$ff8a], a - ld a, Bank(Func_175a4) - ld hl, Func_175a4 - call BankSwitch - call Func_19020 - call Func_190b9 - call Func_19185 - ld [$ff8a], a - ld a, Bank(Func_e4a1) - ld hl, Func_e4a1 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_17e81) - ld hl, Func_17e81 - call BankSwitch - ret - -INCBIN "baserom.gbc",$18fda,$19020 - $18fda + ld bc, $7f00 + callba Func_175a4 + call Func_19020 + call Func_190b9 + call Func_19185 + callba Func_e4a1 + callba Func_17e81 + ret + +Func_18fda: + ld a, [hNewlyPressedButtons] + bit 6, a + ret z + ld a, [wd659] + and a + jr z, .asm_18ff8 + ld a, $1 + ld [wd67e], a + ld [wd687], a + xor a + ld [wd659], a + ld [wd662], a + ld [wd66b], a + ret + +.asm_18ff8 + ld a, [wd67e] + and a + jr z, .asm_1900b + ld a, $1 + ld [wd698], a + xor a + ld [wd67e], a + ld [wd687], a + ret + +.asm_1900b + ld a, [wd698] + and a + ret z + ld a, $1 + ld [wd659], a + ld [wd662], a + ld [wd66b], a + xor a + ld [wd698], a + ret Func_19020: ; 0x19020 - ld de, $d659 - call Func_19033 - ld de, $d662 - call Func_19033 - ld de, $d66b - call Func_19033 - ret + ld de, wd659 + call Func_19033 + ld de, wd662 + call Func_19033 + ld de, wd66b + call Func_19033 + ret Func_19033: ; 0x19033 - ld a, [de] - and a - ret z + ld a, [de] + and a + ret z .asm_19036 - call Func_19070 - jr nc, .asm_19042 - ld a, [$ff40] - bit 7, a - jr z, .asm_19036 - ret + call Func_19070 + jr nc, .asm_19042 + ld a, [rLCDC] + bit 7, a + jr z, .asm_19036 + ret + .asm_19042 - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - ld hl, hBoardXShift - sub [hl] - ld b, a - inc de - inc de - ld a, [de] - ld hl, hBoardYShift - sub [hl] - ld c, a - dec de - dec de - dec de - dec de - dec de - dec de - ld a, [de] - ld e, a - ld d, $0 - ld hl, $506b - add hl, de - ld a, [hl] - cp $ff - call nz, LoadOAMData2 - ret - -INCBIN "baserom.gbc",$1906b,$19070 - $1906b + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, Data_1906b + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +Data_1906b: + dr $1906b, $19070 Func_19070: ; 0x19070 - ld a, [$d674] - and a - ret z - push de - dec a - ld [$d674], a - sla a - sla a - ld c, a - ld b, $0 - ld hl, $50a9 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $22 - ld bc, $0060 - call Func_735 - ld a, $8 - ld [$d690], a - ld [$d6a1], a - xor a - ld [$d67e], a - ld [$d687], a - ld [$d698], a - pop de - scf - ret - -INCBIN "baserom.gbc",$190a9,$190b9 - $190a9 + ld a, [wd674] + and a + ret z + push de + dec a + ld [wd674], a + sla a + sla a + ld c, a + ld b, $0 + ld hl, Data_190a9 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $22 + ld bc, $0060 + call LoadOrCopyVRAMData + ld a, $8 + ld [wd690], a + ld [wd6a1], a + xor a + ld [wd67e], a + ld [wd687], a + ld [wd698], a + pop de + scf + ret + +Data_190a9: + dr $190a9, $190b9 Func_190b9: ; 0x190b9 - ld de, $d67e - call Func_190c6 - ld de, $d687 - call Func_190c6 - ret + ld de, wd67e + call Func_190c6 + ld de, wd687 + call Func_190c6 + ret Func_190c6: ; 0x190c6 - ld a, [de] - and a - ret z + ld a, [de] + and a + ret z .asm_190c9 - call Func_19104 - jr nc, .asm_190d5 - ld a, [$ff40] - bit 7, a - jr z, .asm_190c9 - ret + call Func_19104 + jr nc, .asm_190d5 + ld a, [rLCDC] + bit 7, a + jr z, .asm_190c9 + ret + .asm_190d5 - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - ld hl, hBoardXShift - sub [hl] - ld b, a - inc de - inc de - ld a, [de] - ld hl, hBoardYShift - sub [hl] - ld c, a - dec de - dec de - dec de - dec de - dec de - dec de - ld a, [de] - ld e, a - ld d, $0 - ld hl, $50fe - add hl, de - ld a, [hl] - cp $ff - call nz, LoadOAMData2 - ret - -INCBIN "baserom.gbc",$190fe,$19104 - $190fe + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, Data_190fe + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +Data_190fe: + dr $190fe, $19104 Func_19104: ; 0x19104 - ld a, [$d690] - and a - ret z - push de - dec a - ld [$d690], a - sla a - sla a - sla a - ld c, a - ld b, $0 - ld hl, $5145 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $21 - call Func_735 - ld a, $4 - ld [$d674], a - ld a, $8 - ld [$d6a1], a - xor a - ld [$d659], a - ld [$d662], a - ld [$d66b], a - ld [$d698], a - pop de - scf - ret - -INCBIN "baserom.gbc",$19145,$19185 - $19145 + ld a, [wd690] + and a + ret z + push de + dec a + ld [wd690], a + sla a + sla a + sla a + ld c, a + ld b, $0 + ld hl, Data_19145 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $21 + call LoadOrCopyVRAMData + ld a, $4 + ld [wd674], a + ld a, $8 + ld [wd6a1], a + xor a + ld [wd659], a + ld [wd662], a + ld [wd66b], a + ld [wd698], a + pop de + scf + ret + +Data_19145: + dr $19145, $19185 Func_19185: ; 0x19185 - ld de, $d698 - call Func_1918c - ret + ld de, wd698 + call Func_1918c + ret Func_1918c: ; 0x1918c - ld a, [de] - and a - ret z + ld a, [de] + and a + ret z .asm_1918f - call Func_191cb - jr nc, .asm_1919b - ld a, [$ff40] - bit 7, a - jr z, .asm_1918f - ret + call Func_191cb + jr nc, .asm_1919b + ld a, [rLCDC] + bit 7, a + jr z, .asm_1918f + ret + .asm_1919b - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - ld hl, hBoardXShift - sub [hl] - ld b, a - inc de - inc de - ld a, [de] - ld hl, hBoardYShift - sub [hl] - ld c, a - dec de - dec de - dec de - dec de - dec de - dec de - ld a, [de] - ld e, a - ld d, $0 - ld hl, $51c4 - add hl, de - ld a, [hl] - cp $ff - call nz, LoadOAMData2 - ret - -INCBIN "baserom.gbc",$191c4,$191cb - $191c4 + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, Data_191c4 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +Data_191c4: + dr $191c4, $191cb Func_191cb: ; 0x191cb - ld a, [$d6a1] - and a - ret z - push de - dec a - ld [$d6a1], a - sla a - sla a - sla a - ld c, a - ld b, $0 - ld hl, $520f - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $26 - call Func_735 - ld a, $4 - ld [$d674], a - ld a, $8 - ld [$d690], a - xor a - ld [$d659], a - ld [$d662], a - ld [$d66b], a - ld [$d67e], a - ld [$d687], a - pop de - scf - ret - -INCBIN "baserom.gbc",$1920f,$1924f - $1920f + ld a, [wd6a1] + and a + ret z + push de + dec a + ld [wd6a1], a + sla a + sla a + sla a + ld c, a + ld b, $0 + ld hl, Data_1920f + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $26 + call LoadOrCopyVRAMData + ld a, $4 + ld [wd674], a + ld a, $8 + ld [wd690], a + xor a + ld [wd659], a + ld [wd662], a + ld [wd66b], a + ld [wd67e], a + ld [wd687], a + pop de + scf + ret + +Data_1920f: + dr $1920f, $1924f InitMewtwoBonusStage: ; 0x1924f - ld a, [$d7c1] - and a - ret nz - xor a - ld [wStageCollisionState], a - ld a, $1 - ld [$d7ac], a - ld a, [wBallType] - ld [wBallTypeBackup], a - xor a - ld [$d4c8], a - ld [wBallType], a - ld [$d49a], a - ld hl, $52ab ; todo - ld de, $d6b6 - ld b, $c + ld a, [wd7c1] + and a + ret nz + xor a + ld [wStageCollisionState], a + ld a, $1 + ld [wd7ac], a + ld a, [wBallType] + ld [wBallTypeBackup], a + xor a + ld [wd4c8], a + ld [wBallType], a + ld [wd49a], a + ld hl, Data_192ab + ld de, wd6b6 + ld b, $c .asm_19275 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_19275 - ld hl, $52db ; todo - ld de, $d6ac - ld b, $8 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_19275 + ld hl, Data_192db + ld de, wd6ac + ld b, $8 .asm_1928c - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_1928c - ld bc, $0200 ; 2 minutes 0 seconds - ld [$ff8a], a - ld a, Bank(StartTimer) - ld hl, StartTimer - call BankSwitch - ld a, $12 - call SetSongBank - ld de, $0001 - call PlaySong - ret - -INCBIN "baserom.gbc",$192ab,$192e3 - $192ab + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_1928c + ld bc, $0200 ; 2 minutes 0 seconds + callba StartTimer + ld a, $12 + call SetSongBank + ld de, $0001 + call PlaySong + ret + +Data_192ab: + dr $192ab, $192db + +Data_192db: + dr $192db, $192e3 StartBallMewtwoBonusStage: ; 0x192e3 - ld a, $0 - ld [wBallXPos], a - ld a, $a6 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $56 - ld [wBallYPos + 1], a - ld a, $80 - ld [wBallXVelocity], a - xor a - ld [$d7ab], a - ld [wStageCollisionState], a - ld [$d6a9], a - ld a, [$d4c9] - and a - ret z - xor a - ld [$d4c9], a - ret + ld a, $0 + ld [wBallXPos], a + ld a, $a6 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $56 + ld [wBallYPos + 1], a + ld a, $80 + ld [wBallXVelocity], a + xor a + ld [wd7ab], a + ld [wStageCollisionState], a + ld [wd6a9], a + ld a, [wd4c9] + and a + ret z + xor a + ld [wd4c9], a + ret Func_19310: ; 0x19310 - ld [$ff8a], a - ld a, Bank(Func_142fc) - ld hl, Func_142fc - call BankSwitch - call Func_2862 - ld [$ff8a], a - ld a, Bank(Func_1404a) - ld hl, Func_1404a - call BankSwitch - ld a, [$d7c1] - and a - ret z - call Func_194ac - ret + callba Func_142fc + call Func_2862 + callba Func_1404a + ld a, [wd7c1] + and a + ret z + call Func_194ac + ret Func_19330: ; 0x19330 - call Func_19414 - call Func_19337 - ret + call Func_19414 + call Func_19337 + ret Func_19337: ; 0x19337 - ld hl, $d6bb - ld bc, $0601 + ld hl, wd6bb + ld bc, $0601 .asm_1933d - push bc - push hl - ld a, [hli] - add $f8 - ld b, a - ld a, [hld] - add $8 - ld c, a - dec hl - dec hl - dec hl - ld a, [hl] - dec hl - dec hl - bit 0, [hl] - call nz, Func_1936f - pop hl - pop bc - ld a, c - jr c, .asm_19360 - ld de, $0008 - add hl, de - inc c - dec b - jr nz, .asm_1933d - ret + push bc + push hl + ld a, [hli] + add $f8 + ld b, a + ld a, [hld] + add $8 + ld c, a + dec hl + dec hl + dec hl + ld a, [hl] + dec hl + dec hl + bit 0, [hl] + call nz, Func_1936f + pop hl + pop bc + ld a, c + jr c, .asm_19360 + ld de, $0008 + add hl, de + inc c + dec b + jr nz, .asm_1933d + ret + .asm_19360 - ld [$d4eb], a - ld [$d6b4], a - add $0 - ld [$d4ea], a - ld [$d6b5], a - ret + ld [wd4eb], a + ld [wd6b4], a + add $0 + ld [wd4ea], a + ld [wd6b5], a + ret Func_1936f: ; 0x1936f - cp $b - jp z, Func_19412 - ld a, [wBallXPos + 1] - sub b - cp $20 - jp nc, Func_19412 - ld b, a - ld a, [wBallYPos + 1] - sub c - cp $20 - jp nc, Func_19412 - ld c, a - ld e, a - ld d, $0 - sla e - rl d - sla e - rl d - sla e - rl d - sla e - rl d - sla e - rl d - ld l, b - ld h, $0 - add hl, de - sla l - rl h - sla l - rl h - ld de, $4000 - add hl, de - ld de, wBallXVelocity - ld a, $39 - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $39 - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - push bc - ld a, $39 - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $39 - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_193ea - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc + cp $b + jp z, Func_19412 + ld a, [wBallXPos + 1] + sub b + cp $20 + jp nc, Func_19412 + ld b, a + ld a, [wBallYPos + 1] + sub c + cp $20 + jp nc, Func_19412 + ld c, a + ld e, a + ld d, $0 + sla e + rl d + sla e + rl d + sla e + rl d + sla e + rl d + sla e + rl d + ld l, b + ld h, $0 + add hl, de + sla l + rl h + sla l + rl h + ld de, Data_e4000 + add hl, de + ld de, wBallXVelocity + ld a, BANK(Data_e4000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_e4000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + push bc + ld a, BANK(Data_e4000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_e4000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + bit 7, b + jr z, .asm_193ea + ld a, c + cpl + ld c, a + ld a, b + cpl + ld b, a + inc bc .asm_193ea - pop hl - bit 7, h - jr z, .asm_193f6 - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl + pop hl + bit 7, h + jr z, .asm_193f6 + ld a, l + cpl + ld l, a + ld a, h + cpl + ld h, a + inc hl .asm_193f6 - add hl, bc - sla l - rl h - ld a, h - cp $2 - jr c, .asm_19410 - ld a, [$d804] - and a - jr nz, .asm_19410 - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a + add hl, bc + sla l + rl h + ld a, h + cp $2 + jr c, .asm_19410 + ld a, [wd804] + and a + jr nz, .asm_19410 + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a .asm_19410 - scf - ret + scf + ret Func_19412: ; 0x19312 - and a - ret + and a + ret Func_19414: ; 0x19414 - ld a, [$d4ea] - inc a - jr nz, .asm_1944f - ld a, [$d6aa] - bit 7, a - jr nz, .asm_1944f - ld a, [$d7e9] - and a - ret z - ld a, [$d7f5] - sub $10 - ret c - cp $c - ret nc - ld a, $1 - ld [$d4eb], a - add $6 - ld [$d4ea], a - ld b, a - ld hl, $d6aa - ld [hl], $0 - ld a, [$d4ec] - cp b - jr z, .asm_1944f - ld a, [$d4eb] - ld [hli], a - ld a, [$d4ea] - ld [hl], a - scf - ret + ld a, [wd4ea] + inc a + jr nz, .asm_1944f + ld a, [wd6aa] + bit 7, a + jr nz, .asm_1944f + ld a, [wd7e9] + and a + ret z + ld a, [wd7f5] + sub $10 + ret c + cp $c + ret nc + ld a, $1 + ld [wd4eb], a + add $6 + ld [wd4ea], a + ld b, a + ld hl, wd6aa + ld [hl], $0 + ld a, [wd4ec] + cp b + jr z, .asm_1944f + ld a, [wd4eb] + ld [hli], a + ld a, [wd4ea] + ld [hl], a + scf + ret + .asm_1944f - and a - ret + and a + ret Func_19451: ; 0x19451 - call Func_19531 - call Func_19701 - call Func_1948b - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $1 - ld [$d7be], a - call Func_2862 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld a, [$d6b1] - cp $8 - ret nc - ld a, $1 - ld [$d6b3], a - ret + call Func_19531 + call Func_19701 + call Func_1948b + callba Func_107f8 + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $1 + ld [wd7be], a + call Func_2862 + callba Func_86d2 + ld a, [wd6b1] + cp $8 + ret nc + ld a, $1 + ld [wd6b3], a + ret Func_1948b: ; 0x1948b - ld a, [$d6a9] - and a - ret nz - ld a, [$d4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [$d6a9], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - call Func_194ac - ret + ld a, [wd6a9] + and a + ret nz + ld a, [wd4b4] + cp $8a + ret nc + ld a, $1 + ld [wStageCollisionState], a + ld [wd6a9], a + callba LoadStageCollisionAttributes + call Func_194ac + ret Func_194ac: ; 0x194ac - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, $54c9 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_194bf - ld hl, $54fd + ld a, [wStageCollisionState] + sla a + ld c, a + ld b, $0 + ld hl, Data_194c9 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_194bf + ld hl, Data_194fd .asm_194bf - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $6 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $6 + call Func_10aa + ret -INCBIN "baserom.gbc",$194c9,$19531 - $194c9 +Data_194c9: + dr $194c9, $194fd + +Data_194fd: + dr $194fd, $19531 Func_19531: ; 0x19531 - ld a, [$d6aa] - and a - jr z, .asm_195a2 - xor a - ld [$d6aa], a - ld a, [$d7be] - and a - jr nz, .asm_195a2 - ld a, [$d6af] - cp $2 - jr nc, .asm_195a2 - ld bc, $34ee - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld a, [$d6b0] - inc a - cp $3 - jr nz, .asm_19565 - ld a, [$d6b1] - inc a - ld [$d6b1], a - xor a + ld a, [wd6aa] + and a + jr z, .asm_195a2 + xor a + ld [wd6aa], a + ld a, [wd7be] + and a + jr nz, .asm_195a2 + ld a, [wd6af] + cp $2 + jr nc, .asm_195a2 + ld bc, FiveMillionPoints + callba AddBigBCD6FromQueue + ld a, [wd6b0] + inc a + cp $3 + jr nz, .asm_19565 + ld a, [wd6b1] + inc a + ld [wd6b1], a + xor a .asm_19565 - ld [$d6b0], a - call Func_1988e - ld a, [$d6b1] - cp $8 - jr z, .asm_19582 - ld a, $2 - ld de, $d6ae - call Func_19679 - ld de, $0039 - call PlaySoundEffect - jr .asm_195a2 + ld [wd6b0], a + call Func_1988e + ld a, [wd6b1] + cp $8 + jr z, .asm_19582 + ld a, $2 + ld de, wd6ae + call Func_19679 + lb de, $00, $39 + call PlaySoundEffect + jr .asm_195a2 + .asm_19582 - ld a, $3 - ld de, $d6ae - call Func_19679 - ld a, $1 - ld [$d7be], a - call Func_2862 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld de, $0000 - call PlaySong + ld a, $3 + ld de, wd6ae + call Func_19679 + ld a, $1 + ld [wd7be], a + call Func_2862 + callba Func_86d2 + ld de, $0000 + call PlaySong .asm_195a2 - call Func_195ac - ld de, $d6af - call Func_195f5 - ret + call Func_195ac + ld de, wd6af + call Func_195f5 + ret Func_195ac: ; 0x195ac - ld a, [$d6af] - and a - ret nz - ld hl, $d6bd - ld de, $0008 - ld b, $6 + ld a, [wd6af] + and a + ret nz + ld hl, wd6bd + ld de, $0008 + ld b, $6 .asm_195b9 - ld a, [hl] - cp $2b - jr nz, .asm_195ce - dec hl - dec hl - dec hl - ld a, [hl] - cp $2 - ret nz - ld a, $1 - ld de, $d6ae - call Func_19679 - ret + ld a, [hl] + cp $2b + jr nz, .asm_195ce + dec hl + dec hl + dec hl + ld a, [hl] + cp $2 + ret nz + ld a, $1 + ld de, wd6ae + call Func_19679 + ret + .asm_195ce - add hl, de - dec b - jr nz, .asm_195b9 - ret + add hl, de + dec b + jr nz, .asm_195b9 + ret Func_195d3: ; 0x195d3 - ld hl, $d6bd - ld de, $0008 - ld b, $6 + ld hl, wd6bd + ld de, $0008 + ld b, $6 .asm_195db - ld a, [hl] - cp $18 - jr nz, .asm_195f0 - dec hl - dec hl - dec hl - ld a, [hl] - cp $2 - ret nz - ld d, h - ld e, l - dec de - ld a, $1 - call Func_19876 - ret + ld a, [hl] + cp $18 + jr nz, .asm_195f0 + dec hl + dec hl + dec hl + ld a, [hl] + cp $2 + ret nz + ld d, h + ld e, l + dec de + ld a, $1 + call Func_19876 + ret + .asm_195f0 - add hl, de - dec b - jr nz, .asm_195db - ret + add hl, de + dec b + jr nz, .asm_195db + ret Func_195f5: ; 0x195f5 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $5691 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - rst $18 ; calls JumpToFuncInTable + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_19691 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call UpdateAnimation + pop de + ret nc + ld a, [de] + rst JumpTable ; calls JumpToFuncInTable CallTable_1960d: ; 0x1960d - dw Func_19615 - dw Func_1961e - dw Func_1962f - dw Func_19638 + dw Func_19615 + dw Func_1961e + dw Func_1962f + dw Func_19638 Func_19615: ; 0x19615 - dec de - ld a, [de] - cp $4 - ret nz - xor a - jp Func_19679 + dec de + ld a, [de] + cp $4 + ret nz + xor a + jp Func_19679 Func_1961e: ; 0x1961e - dec de - ld a, [de] - cp $c - jr nz, .asm_19628 - call Func_195d3 - ret + dec de + ld a, [de] + cp $c + jr nz, .asm_19628 + call Func_195d3 + ret + .asm_19628 - cp $d - ret nz - xor a - jp Func_19679 + cp $d + ret nz + xor a + jp Func_19679 Func_1962f: ; 0x1962f - dec de - ld a, [de] - cp $1 - ret nz - xor a - jp Func_19679 + dec de + ld a, [de] + cp $1 + ret nz + xor a + jp Func_19679 Func_19638: ; 0x19638 - dec de - ld a, [de] - cp $1 - jr nz, .asm_19645 - ld de, $0040 - call PlaySoundEffect - ret + dec de + ld a, [de] + cp $1 + jr nz, .asm_19645 + lb de, $00, $40 + call PlaySoundEffect + ret + .asm_19645 - cp $20 - ret nz - ld a, $1 - ld [$d6b3], a - ld a, [$d499] - ld [$d498], a - ld a, [wNumMewtwoBonusCompletions] - cp $2 ; only counts up to 2. Gets reset to 0 when Mew is encountered in Catch 'Em Mode. - jr z, .asm_1965e - inc a - ld [wNumMewtwoBonusCompletions], a + cp $20 + ret nz + ld a, $1 + ld [wd6b3], a + ld a, [wd499] + ld [wd498], a + ld a, [wNumMewtwoBonusCompletions] + cp $2 ; only counts up to 2. Gets reset to 0 when Mew is encountered in Catch 'Em Mode. + jr z, .asm_1965e + inc a + ld [wNumMewtwoBonusCompletions], a .asm_1965e - ld a, $1 - ld [$d49a], a - call Func_30e8 - call Func_30db - ld hl, $d5dc + ld a, $1 + ld [wd49a], a + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc .asm_1966b - ld de, $2f97 - call Func_32aa - ld de, $4b2a - call PlaySoundEffect - ret + ld de, Data_2f97 + call LoadTextHeader + lb de, $4b, $2a + call PlaySoundEffect + ret Func_19679: ; 0x19679 - push af - sla a - ld c, a - ld b, $0 - ld hl, $5691 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - pop af - ld [de], a - ret - -INCBIN "baserom.gbc",$19691,$19701 - $19691 + push af + sla a + ld c, a + ld b, $0 + ld hl, Data_19691 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + call CopyHLToDE + pop de + inc de + pop af + ld [de], a + ret + +Data_19691: + dr $19691, $19701 Func_19701: ; 0x19701 - ld a, [$d6b4] - and a - jr z, .asm_19742 - xor a - ld [$d6b4], a - ld a, [$d7be] - and a - jr nz, .asm_19742 - ld a, [$d6b5] - sub $1 - sla a - sla a - sla a - ld c, a - ld b, $0 - ld hl, $d6ba - add hl, bc - ld d, h - ld e, l - ld a, [de] - and a - jr nz, .asm_19742 - dec de - ld a, $2 - call Func_19876 - ld bc, $34d6 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld de, $0038 - call PlaySoundEffect + ld a, [wd6b4] + and a + jr z, .asm_19742 + xor a + ld [wd6b4], a + ld a, [wd7be] + and a + jr nz, .asm_19742 + ld a, [wd6b5] + sub $1 + sla a + sla a + sla a + ld c, a + ld b, $0 + ld hl, wd6ba + add hl, bc + ld d, h + ld e, l + ld a, [de] + and a + jr nz, .asm_19742 + dec de + ld a, $2 + call Func_19876 + ld bc, OneHundredThousandPoints + callba AddBigBCD6FromQueue + lb de, $00, $38 + call PlaySoundEffect .asm_19742 - ld de, $d6bd - call Func_1978b - ld de, $d6c5 - call Func_1978b - ld de, $d6cd - call Func_1978b - ld de, $d6d5 - call Func_1978b - ld de, $d6dd - call Func_1978b - ld de, $d6e5 - call Func_1978b - ld de, $d6b6 - call Func_19833 - ld de, $d6be - call Func_19833 - ld de, $d6c6 - call Func_19833 - ld de, $d6ce - call Func_19833 - ld de, $d6d6 - call Func_19833 - ld de, $d6de - call Func_19833 - ret + ld de, wd6bd + call Func_1978b + ld de, wd6c5 + call Func_1978b + ld de, wd6cd + call Func_1978b + ld de, wd6d5 + call Func_1978b + ld de, wd6dd + call Func_1978b + ld de, wd6e5 + call Func_1978b + ld de, wd6b6 + call Func_19833 + ld de, wd6be + call Func_19833 + ld de, wd6c6 + call Func_19833 + ld de, wd6ce + call Func_19833 + ld de, wd6d6 + call Func_19833 + ld de, wd6de + call Func_19833 + ret Func_1978b: ; 0x1978b - ld a, [de] - ld c, a - ld b, $0 - sla c - inc a - cp $48 - jr c, .asm_19797 - xor a + ld a, [de] + ld c, a + ld b, $0 + sla c + inc a + cp $48 + jr c, .asm_19797 + xor a .asm_19797 - ld [de], a - ld hl, $57a4 - add hl, bc - dec de - ld a, [hld] - ld [de], a - dec de - ld a, [hl] - ld [de], a - ret - -INCBIN "baserom.gbc",$197a3,$19833 - $197a3 + ld [de], a + ld hl, Data_197a3 + 1 + add hl, bc + dec de + ld a, [hld] + ld [de], a + dec de + ld a, [hl] + ld [de], a + ret + +Data_197a3: + dr $197a3, $19833 Func_19833: ; 0x19833 - ld a, [de] - and a - ret z - inc de - inc de - inc de - inc de - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $5916 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - rst $18 ; calls JumpToFuncInTable + ld a, [de] + and a + ret z + inc de + inc de + inc de + inc de + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_19916 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call UpdateAnimation + pop de + ret nc + ld a, [de] + rst JumpTable ; calls JumpToFuncInTable CallTable_19852: ; 0x19852 - dw Func_1985a - dw Func_19863 - dw Func_1986c - dw Func_1986d + dw Func_1985a + dw Func_19863 + dw Func_1986c + dw Func_1986d Func_1985a: ; 0x1985a - dec de - ld a, [de] - cp $6 - ret nz - xor a - jp Func_19876 + dec de + ld a, [de] + cp $6 + ret nz + xor a + jp Func_19876 Func_19863: ; 0x19863 - dec de - ld a, [de] - cp $7 - ret nz - xor a - jp Func_19876 + dec de + ld a, [de] + cp $7 + ret nz + xor a + jp Func_19876 Func_1986c: ; 0x1986c - ret + ret Func_1986d: ; 0x1986d - dec de - ld a, [de] - cp $1 - ret nz - xor a - jp Func_19876 + dec de + ld a, [de] + cp $1 + ret nz + xor a + jp Func_19876 Func_19876: ; 0x19876 - push af - sla a - ld c, a - ld b, $0 - ld hl, $5916 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - pop af - ld [de], a - ret + push af + sla a + ld c, a + ld b, $0 + ld hl, Data_19916 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + call CopyHLToDE + pop de + inc de + pop af + ld [de], a + ret Func_1988e: ; 0x1988e - ld a, [$d6b1] - sla a - sla a - sla a - ld c, a - ld b, $0 - ld hl, $58ce - add hl, bc - ld de, $d6bd - ld b, $6 + ld a, [wd6b1] + sla a + sla a + sla a + ld c, a + ld b, $0 + ld hl, Data_198ce + add hl, bc + ld de, wd6bd + ld b, $6 .asm_198a3 - ld a, [hli] - push bc - push de - push hl - bit 7, a - jr nz, .asm_198b7 - ld [de], a - dec de - dec de - dec de - dec de - ld a, $3 - call Func_19876 - jr .asm_198c0 + ld a, [hli] + push bc + push de + push hl + bit 7, a + jr nz, .asm_198b7 + ld [de], a + dec de + dec de + dec de + dec de + ld a, $3 + call Func_19876 + jr .asm_198c0 + .asm_198b7 - dec de - dec de - dec de - dec de - dec de - dec de - dec de - xor a - ld [de], a + dec de + dec de + dec de + dec de + dec de + dec de + dec de + xor a + ld [de], a .asm_198c0 - pop hl - pop de - pop bc - ld a, e - add $8 - ld e, a - jr nc, .asm_198ca - inc d + pop hl + pop de + pop bc + ld a, e + add $8 + ld e, a + jr nc, .asm_198ca + inc d .asm_198ca - dec b - jr nz, .asm_198a3 - ret + dec b + jr nz, .asm_198a3 + ret -INCBIN "baserom.gbc",$198ce,$1994e - $198ce +Data_198ce: + dr $198ce, $19916 + +Data_19916: + dr $19916, $1994e Func_1994e: ; 0x1994e - ld bc, $7f65 - ld [$ff8a], a - ld a, Bank(Func_175a4) - ld hl, Func_175a4 - call BankSwitch - call Func_1999d - ld [$ff8a], a - ld a, Bank(Func_e4a1) - ld hl, Func_e4a1 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_17e81) - ld hl, Func_17e81 - call BankSwitch - call Func_19976 - ret + ld bc, $7f65 + callba Func_175a4 + call Func_1999d + callba Func_e4a1 + callba Func_17e81 + call Func_19976 + ret Func_19976: ; 0x19976 - ld a, $40 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $0 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d6ad] - ld e, a - ld d, $0 - ld hl, $5995 - add hl, de - ld a, [hl] - cp $ff - call nz, LoadOAMData2 - ret - -INCBIN "baserom.gbc",$19995,$1999d - $19995 + ld a, $40 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $0 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd6ad] + ld e, a + ld d, $0 + ld hl, Data_19995 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +Data_19995: + dr $19995, $1999d Func_1999d: ; 0x1999d - ld de, $d6b6 - call Func_199be - ld de, $d6be - call Func_199be - ld de, $d6c6 - call Func_199be - ld de, $d6ce - call Func_199be - ld de, $d6d6 - call Func_199be - ld de, $d6de - ; fall through + ld de, wd6b6 + call Func_199be + ld de, wd6be + call Func_199be + ld de, wd6c6 + call Func_199be + ld de, wd6ce + call Func_199be + ld de, wd6d6 + call Func_199be + ld de, wd6de + ; fall through Func_199be: ; 0x199be - ld a, [de] - and a - ret z - inc de - inc de - inc de - inc de - inc de - ld a, [de] - ld hl, hBoardXShift - sub [hl] - ld b, a - inc de - ld a, [de] - ld hl, hBoardYShift - sub [hl] - ld c, a - dec de - dec de - dec de - dec de - ld a, [de] - ld e, a - ld d, $0 - ld hl, $59e6 - add hl, de - ld a, [hl] - cp $ff - call nz, LoadOAMData2 - ret - -INCBIN "baserom.gbc",$199e6,$199f2 - $199e6 + ld a, [de] + and a + ret z + inc de + inc de + inc de + inc de + inc de + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, Data_199e6 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +Data_199e6: + dr $199e6, $199f2 InitDiglettBonusStage: ; 0x199f2 - ld a, [$d7c1] - and a - ret nz - xor a - ld [wStageCollisionState], a - ld a, $1 - ld [$d7ac], a - ld a, [wBallType] - ld [wBallTypeBackup], a - xor a - ld [$d4c8], a - ld [wBallType], a - ld [$d49a], a - ; initialize all digletts to hiding - ld a, $1 ; hiding diglett state - ld hl, wDiglettStates - ld b, NUM_DIGLETTS + ld a, [wd7c1] + and a + ret nz + xor a + ld [wStageCollisionState], a + ld a, $1 + ld [wd7ac], a + ld a, [wBallType] + ld [wBallTypeBackup], a + xor a + ld [wd4c8], a + ld [wBallType], a + ld [wd49a], a + ; initialize all digletts to hiding + ld a, $1 ; hiding diglett state + ld hl, wDiglettStates + ld b, NUM_DIGLETTS .initDiglettsLoop - ld [hli], a - dec b - jr nz, .initDiglettsLoop - ld a, $1 - ld [wDugtrioAnimationFrameCounter], a - ld a, $c - ld [wDugtrioAnimationFrame], a - xor a - ld [wDugtrioAnimationFrameIndex], a - ld [wDugrioState], a - ld a, $11 - call SetSongBank - ld de, $0001 - call PlaySong - ret + ld [hli], a + dec b + jr nz, .initDiglettsLoop + ld a, $1 + ld [wDugtrioAnimationFrameCounter], a + ld a, $c + ld [wDugtrioAnimationFrame], a + xor a + ld [wDugtrioAnimationFrameIndex], a + ld [wDugrioState], a + ld a, $11 + call SetSongBank + ld de, $0001 + call PlaySong + ret StartBallDiglettBonusStage: ; 0x19a38 - ld a, $0 - ld [wBallXPos], a - ld a, $a6 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $56 - ld [wBallYPos + 1], a - ld a, $40 - ld [wBallXVelocity], a - xor a - ld [$d7ab], a - ld [wStageCollisionState], a - ld [$d73a], a - ld hl, wDiglettStates - ld b, NUM_DIGLETTS + ld a, $0 + ld [wBallXPos], a + ld a, $a6 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $56 + ld [wBallYPos + 1], a + ld a, $40 + ld [wBallXVelocity], a + xor a + ld [wd7ab], a + ld [wStageCollisionState], a + ld [wd73a], a + ld hl, wDiglettStates + ld b, NUM_DIGLETTS .asm_19a60 - ld a, [hl] - and a - jr z, .asm_19a67 - ld a, $1 ; hiding diglett state - ld [hl], a + ld a, [hl] + and a + jr z, .asm_19a67 + ld a, $1 ; hiding diglett state + ld [hl], a .asm_19a67 - inc hl - dec b - jr nz, .asm_19a60 - xor a - ld [wCurrentDiglett], a - ld [wDiglettsInitializedFlag], a - ld [$d765], a - ret + inc hl + dec b + jr nz, .asm_19a60 + xor a + ld [wCurrentDiglett], a + ld [wDiglettsInitializedFlag], a + ld [wd765], a + ret Func_19a76: ; 0x19a76 - ld [$ff8a], a - ld a, Bank(Func_142fc) - ld hl, Func_142fc - call BankSwitch - call Func_2862 - ld a, [$d7c1] - and a - ret z - call Func_19bbd - call Func_19a96 - ld a, [wDugrioState] - and a - call nz, Func_1ac2c - ret + callba Func_142fc + call Func_2862 + ld a, [wd7c1] + and a + ret z + call Func_19bbd + call Func_19a96 + ld a, [wDugrioState] + and a + call nz, Func_1ac2c + ret Func_19a96: ; 0x19a96 - ld hl, wDiglettStates - ld bc, NUM_DIGLETTS << 8 + ld hl, wDiglettStates + ld bc, NUM_DIGLETTS << 8 .asm_19a9c - ld a, [hli] - and a - jr z, .asm_19aae - push bc - push hl - push af - call Func_19da8 - pop af - cp $6 - call c, Func_19dcd - pop hl - pop bc + ld a, [hli] + and a + jr z, .asm_19aae + push bc + push hl + push af + call Func_19da8 + pop af + cp $6 + call c, Func_19dcd + pop hl + pop bc .asm_19aae - inc c - dec b - jr nz, .asm_19a9c - ret + inc c + dec b + jr nz, .asm_19a9c + ret Func_19ab3: ; 0x19ab3 - call Func_19aba - call Func_19b4b - ret + call Func_19aba + call Func_19b4b + ret Func_19aba: ; 0x19aba - ld a, [$d4ea] - inc a - jr nz, .asm_19b16 - ld a, [$d73b] - bit 7, a - jr nz, .asm_19b16 - ld a, [$d7e9] - and a - ret z - ld a, [$d7f5] - sub $19 - ret c - cp $33 - ret nc - ld c, a - ld b, $0 - ld hl, $5b18 ; todo - add hl, bc - ld a, [hl] - cp $a - jr nc, .asm_19aed - ld a, [wBallXPos + 1] - cp $48 - ld a, $11 - jr nc, .asm_19af7 - xor a - jr .asm_19af7 + ld a, [wd4ea] + inc a + jr nz, .asm_19b16 + ld a, [wd73b] + bit 7, a + jr nz, .asm_19b16 + ld a, [wd7e9] + and a + ret z + ld a, [wd7f5] + sub $19 + ret c + cp $33 + ret nc + ld c, a + ld b, $0 + ld hl, Data_19b18 + add hl, bc + ld a, [hl] + cp $a + jr nc, .asm_19aed + ld a, [wBallXPos + 1] + cp $48 + ld a, $11 + jr nc, .asm_19af7 + xor a + jr .asm_19af7 + .asm_19aed - ld a, [wBallXPos + 1] - cp $68 - ld a, $11 - jr nc, .asm_19af7 - xor a + ld a, [wBallXPos + 1] + cp $68 + ld a, $11 + jr nc, .asm_19af7 + xor a .asm_19af7 - add [hl] - ld [$d4eb], a - add $0 - ld [$d4ea], a - ld b, a - ld hl, $d73b - ld [hl], $0 - ld a, [$d4ec] - cp b - jr z, .asm_19b16 - ld a, [$d4eb] - ld [hli], a - ld a, [$d4ea] - ld [hl], a - scf - ret + add [hl] + ld [wd4eb], a + add $0 + ld [wd4ea], a + ld b, a + ld hl, wd73b + ld [hl], $0 + ld a, [wd4ec] + cp b + jr z, .asm_19b16 + ld a, [wd4eb] + ld [hli], a + ld a, [wd4ea] + ld [hl], a + scf + ret + .asm_19b16 - and a - ret + and a + ret -INCBIN "baserom.gbc",$19b18,$19b4b - $19b18 +Data_19b18: + dr $19b18, $19b4b Func_19b4b: ; 0x19b4b - ld a, [$d4ea] - inc a - jr nz, .asm_19b86 - ld a, [$d75f] - bit 7, a - jr nz, .asm_19b86 - ld a, [$d7e9] - and a - ret z - ld a, [$d7f5] - sub $14 - ret c - cp $5 - ret nc - ld a, $1 - ld [$d4eb], a - add $1f - ld [$d4ea], a - ld b, a - ld hl, $d75f - ld [hl], $0 - ld a, [$d4ec] - cp b - jr z, .asm_19b86 - ld a, [$d4eb] - ld [hli], a - ld a, [$d4ea] - ld [hl], a - scf - ret + ld a, [wd4ea] + inc a + jr nz, .asm_19b86 + ld a, [wd75f] + bit 7, a + jr nz, .asm_19b86 + ld a, [wd7e9] + and a + ret z + ld a, [wd7f5] + sub $14 + ret c + cp $5 + ret nc + ld a, $1 + ld [wd4eb], a + add $1f + ld [wd4ea], a + ld b, a + ld hl, wd75f + ld [hl], $0 + ld a, [wd4ec] + cp b + jr z, .asm_19b86 + ld a, [wd4eb] + ld [hli], a + ld a, [wd4ea] + ld [hl], a + scf + ret + .asm_19b86 - and a - ret + and a + ret Func_19b88: ; 0x19b88 - call Func_19c52 - call Func_1aad4 - call Func_19b92 - ret + call Func_19c52 + call Func_1aad4 + call Func_19b92 + ret Func_19b92: ; 0x19b92 - ld a, [$d73a] - and a - ret nz - ld a, [$d4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [$d73a], a - xor a - ld [$c853], a - ld [$c873], a - ld [$c893], a - ld a, $5 - ld [$c872], a - ld a, $7 - ld [$c892], a - call Func_19bbd - ret + ld a, [wd73a] + and a + ret nz + ld a, [wd4b4] + cp $8a + ret nc + ld a, $1 + ld [wStageCollisionState], a + ld [wd73a], a + xor a + ld [wc853], a + ld [wc873], a + ld [wc893], a + ld a, $5 + ld [wc872], a + ld a, $7 + ld [wc892], a + call Func_19bbd + ret Func_19bbd: ; 0x19bbd - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, $5bda - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_19bd0 - ld hl, $5c16 + ld a, [wStageCollisionState] + sla a + ld c, a + ld b, $0 + ld hl, Data_19bda + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_19bd0 + ld hl, Data_19c16 .asm_19bd0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $6 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $6 + call Func_10aa + ret -INCBIN "baserom.gbc",$19bda,$19c52 - $19bda +Data_19bda: + dr $19bda, $19c16 + +Data_19c16: + dr $19c16, $19c52 Func_19c52: ; 0x19c52 - ld a, [$d73b] - and a - jr z, .asm_19cc8 - xor a - ld [$d73b], a - ld bc, $34d6 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld de, $0035 - call PlaySoundEffect - ld hl, $0100 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a - ld a, [$d73c] - sub $1 - ld c, a - ld b, $0 - ld hl, wDiglettStates - add hl, bc - ld a, [hl] - cp $6 - jr nc, .asm_19cc8 - ld a, $8 - ld [hl], a - call Func_19da8 - call Func_19df0 - ld hl, wDiglettStates - ld bc, NUM_DIGLETTS << 8 - xor a + ld a, [wd73b] + and a + jr z, .asm_19cc8 + xor a + ld [wd73b], a + ld bc, OneHundredThousandPoints + callba AddBigBCD6FromQueue + lb de, $00, $35 + call PlaySoundEffect + ld hl, $0100 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a + ld a, [wd73c] + sub $1 + ld c, a + ld b, $0 + ld hl, wDiglettStates + add hl, bc + ld a, [hl] + cp $6 + jr nc, .asm_19cc8 + ld a, $8 + ld [hl], a + call Func_19da8 + call Func_19df0 + ld hl, wDiglettStates + ld bc, NUM_DIGLETTS << 8 + xor a .asm_19ca0 - ld a, [hli] - and a - jr z, .asm_19ca8 - cp $6 - jr c, .asm_19ca9 + ld a, [hli] + and a + jr z, .asm_19ca8 + cp $6 + jr c, .asm_19ca9 .asm_19ca8 - inc c + inc c .asm_19ca9 - dec b - jr nz, .asm_19ca0 - ld a, c - cp NUM_DIGLETTS - jr nz, .asm_19cc8 - ld hl, $6c75 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [wDugrioState], a - call Func_1ac2c - ld de, $0002 - call PlaySong + dec b + jr nz, .asm_19ca0 + ld a, c + cp NUM_DIGLETTS + jr nz, .asm_19cc8 + ld hl, Data_1ac75 + ld de, wDugtrioAnimationFrameCounter + call CopyHLToDE + ld a, $1 + ld [wDugrioState], a + call Func_1ac2c + ld de, $0002 + call PlaySong .asm_19cc8 - call Func_19cdd - ld a, [$d765] - and a - ret nz - ld a, $1 - ld [$d765], a - ld a, [wDugrioState] - and a - call nz, Func_1ac2c - ret + call Func_19cdd + ld a, [wd765] + and a + ret nz + ld a, $1 + ld [wd765], a + ld a, [wDugrioState] + and a + call nz, Func_1ac2c + ret Func_19cdd: ; 0x19cdd - ld a, [wDiglettsInitializedFlag] - and a - jr nz, .alreadyInitializedDigletts - ld a, [wDiglettInitDelayCounter] - add DIGLETT_INITIALIZE_DELAY - ld [wDiglettInitDelayCounter], a - ret nc - ld hl, DiglettInitializeOrder - ld a, [wCurrentDiglett] - ld c, a - ld b, $0 - add hl, bc - ld b, $1 + ld a, [wDiglettsInitializedFlag] + and a + jr nz, .alreadyInitializedDigletts + ld a, [wDiglettInitDelayCounter] + add DIGLETT_INITIALIZE_DELAY + ld [wDiglettInitDelayCounter], a + ret nc + ld hl, DiglettInitializeOrder + ld a, [wCurrentDiglett] + ld c, a + ld b, $0 + add hl, bc + ld b, $1 .asm_19cf8 - push bc - ld a, [hli] - bit 7, a - jr z, .asm_19d02 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] + push bc + ld a, [hli] + bit 7, a + jr z, .asm_19d02 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] .asm_19d02 - push hl - ld c, a - ld b, $0 - ld hl, wDiglettStates - add hl, bc - ld a, [hl] - and a - jr z, .asm_19d29 - dec a - jr nz, .asm_19d21 - ; pick a random starting state for the diglett that isn't the "hiding" state - call GenRandom - and $3 - add $2 - ld [hl], a - call Func_19da8 - call Func_19dcd - jr .asm_19d29 + push hl + ld c, a + ld b, $0 + ld hl, wDiglettStates + add hl, bc + ld a, [hl] + and a + jr z, .asm_19d29 + dec a + jr nz, .asm_19d21 + ; pick a random starting state for the diglett that isn't the "hiding" state + call GenRandom + and $3 + add $2 + ld [hl], a + call Func_19da8 + call Func_19dcd + jr .asm_19d29 + .asm_19d21 - and $3 - add $2 - ld [hl], a - call Func_19da8 + and $3 + add $2 + ld [hl], a + call Func_19da8 .asm_19d29 - pop hl - pop bc - dec b - jr nz, .asm_19cf8 - ld hl, wDiglettsInitializedFlag - ld a, [wCurrentDiglett] - add $1 - cp NUM_DIGLETTS - jr c, .notDoneInitializingDigletts - set 0, [hl] - sub NUM_DIGLETTS + pop hl + pop bc + dec b + jr nz, .asm_19cf8 + ld hl, wDiglettsInitializedFlag + ld a, [wCurrentDiglett] + add $1 + cp NUM_DIGLETTS + jr c, .notDoneInitializingDigletts + set 0, [hl] + sub NUM_DIGLETTS .notDoneInitializingDigletts - ld [wCurrentDiglett], a - ret + ld [wCurrentDiglett], a + ret + .alreadyInitializedDigletts - ld hl, DiglettUpdateOrder - ld a, [wCurrentDiglett] - ld c, a - ld b, $0 - add hl, bc - ld b, $4 ; update 4 digletts + ld hl, DiglettUpdateOrder + ld a, [wCurrentDiglett] + ld c, a + ld b, $0 + add hl, bc + ld b, $4 ; update 4 digletts .updateDiglettLoop - push bc - ld a, [hli] - bit 7, a - jr z, .asm_19d58 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] + push bc + ld a, [hli] + bit 7, a + jr z, .asm_19d58 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] .asm_19d58 - push hl - ld c, a - ld b, $0 - ld hl, wDiglettStates - add hl, bc - ld a, [hl] - and a - jr z, .asm_19d8f - dec a - jr nz, .asm_19d77 - call GenRandom - and $3 - add $2 - ld [hl], a - call Func_19da8 - call Func_19dcd - jr .asm_19d8f + push hl + ld c, a + ld b, $0 + ld hl, wDiglettStates + add hl, bc + ld a, [hl] + and a + jr z, .asm_19d8f + dec a + jr nz, .asm_19d77 + call GenRandom + and $3 + add $2 + ld [hl], a + call Func_19da8 + call Func_19dcd + jr .asm_19d8f + .asm_19d77 - cp $5 - jr c, .incrementDiglettState - ld [hl], a - jr nz, .asm_19d8f - xor a - ld [hl], a - ld a, $1 - call Func_19da8 - jr .asm_19d8f + cp $5 + jr c, .incrementDiglettState + ld [hl], a + jr nz, .asm_19d8f + xor a + ld [hl], a + ld a, $1 + call Func_19da8 + jr .asm_19d8f + .incrementDiglettState - and $3 - add $2 - ld [hl], a - call Func_19da8 + and $3 + add $2 + ld [hl], a + call Func_19da8 .asm_19d8f - pop hl - pop bc - dec b - jr nz, .updateDiglettLoop - ld hl, wDiglettsInitializedFlag - ld a, [wCurrentDiglett] - add $4 - cp NUM_DIGLETTS - jr c, .asm_19da4 - set 0, [hl] - sub NUM_DIGLETTS + pop hl + pop bc + dec b + jr nz, .updateDiglettLoop + ld hl, wDiglettsInitializedFlag + ld a, [wCurrentDiglett] + add $4 + cp NUM_DIGLETTS + jr c, .asm_19da4 + set 0, [hl] + sub NUM_DIGLETTS .asm_19da4 - ld [wCurrentDiglett], a - ret + ld [wCurrentDiglett], a + ret Func_19da8: ; 0x19da8 ; input: a = diglett state ; c = diglett index - cp $6 - jr c, .asm_19dae - ld a, $6 ; "getting hit" state + cp $6 + jr c, .asm_19dae + ld a, $6 ; "getting hit" state .asm_19dae - push bc - ld b, a - sla c - ld a, c - sla c - add c - add b ; a = (index * 6) + state - dec a - ld c, a - ld b, $0 ; bc = (index * 6) + state - 1 - sla c - rl b ; bc = 2 * ((index * 6) + state - 1) - ld hl, DiglettTileDataPointers - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, Bank(DiglettTileDataPointers) - call Func_10aa - pop bc - ret + push bc + ld b, a + sla c + ld a, c + sla c + add c + add b ; a = (index * 6) + state + dec a + ld c, a + ld b, $0 ; bc = (index * 6) + state - 1 + sla c + rl b ; bc = 2 * ((index * 6) + state - 1) + ld hl, DiglettTileDataPointers + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, Bank(DiglettTileDataPointers) + call Func_10aa + pop bc + ret Func_19dcd: ; 0x19dcd - sla c - ld a, c - sla c - add c - ld c, a - ld b, $0 - ld hl, $5e13 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, e - add $1f - ld e, a - jr nc, .asm_19dea - inc d + sla c + ld a, c + sla c + add c + ld c, a + ld b, $0 + ld hl, Data_19e13 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ld a, e + add $1f + ld e, a + jr nc, .asm_19dea + inc d .asm_19dea - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ret + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ret Func_19df0: ; 0x19df0 - sla c - ld a, c - sla c - add c - ld c, a - ld b, $0 - ld hl, $5e13 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, $2 - ld [de], a - inc de - ld [de], a - ld a, e - add $1f - ld e, a - jr nc, .asm_19e0d - inc d + sla c + ld a, c + sla c + add c + ld c, a + ld b, $0 + ld hl, Data_19e13 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, $2 + ld [de], a + inc de + ld [de], a + ld a, e + add $1f + ld e, a + jr nc, .asm_19e0d + inc d .asm_19e0d - ld a, $2 - ld [de], a - inc de - ld [de], a - ret + ld a, $2 + ld [de], a + inc de + ld [de], a + ret -INCBIN "baserom.gbc",$19e13,$19ed1 - $19e13 +Data_19e13: + dr $19e13, $19ed1 INCLUDE "data/diglett_stage/diglett_stage_animation_data.asm" Func_1aad4: ; 0x1aad4 - ld a, [$d75f] - and a - jr z, .asm_1ab2c - xor a - ld [$d75f], a - ld a, [wDugrioState] - bit 0, a - jr z, .asm_1ab2c - cp $7 - jr z, .asm_1ab2c - inc a - ld [wDugrioState], a - sla a - ld c, a - ld b, $0 - ld hl, $6c62 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld bc, $34ee - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld de, $0036 - call PlaySoundEffect - ld a, $33 - ld [$d803], a - ld a, $8 - ld [$d804], a - ld hl, $0200 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a + ld a, [wd75f] + and a + jr z, .asm_1ab2c + xor a + ld [wd75f], a + ld a, [wDugrioState] + bit 0, a + jr z, .asm_1ab2c + cp $7 + jr z, .asm_1ab2c + inc a + ld [wDugrioState], a + sla a + ld c, a + ld b, $0 + ld hl, Data_1ac62 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wDugtrioAnimationFrameCounter + call CopyHLToDE + ld bc, FiveMillionPoints + callba AddBigBCD6FromQueue + lb de, $00, $36 + call PlaySoundEffect + ld a, $33 + ld [wd803], a + ld a, $8 + ld [wd804], a + ld hl, $0200 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a .asm_1ab2c - call Func_1ab30 - ret + call Func_1ab30 + ret Func_1ab30: ; 0x1ab30 - ld a, [wDugrioState] - sla a - ld c, a - ld b, $0 - ld hl, $6c62 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wDugtrioAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wDugrioState] - and a - ret z - cp $1 - jr nz, .asm_1ab64 - ld a, [wDugtrioAnimationFrameIndex] - cp $3 - ret nz - ld hl, $6c75 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [wDugrioState], a - ret + ld a, [wDugrioState] + sla a + ld c, a + ld b, $0 + ld hl, Data_1ac62 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wDugtrioAnimationFrameCounter + call UpdateAnimation + ret nc + ld a, [wDugrioState] + and a + ret z + cp $1 + jr nz, .asm_1ab64 + ld a, [wDugtrioAnimationFrameIndex] + cp $3 + ret nz + ld hl, Data_1ac75 + ld de, wDugtrioAnimationFrameCounter + call CopyHLToDE + ld a, $1 + ld [wDugrioState], a + ret + .asm_1ab64 - cp $2 - jr nz, .asm_1ab7d - ld a, [wDugtrioAnimationFrameIndex] - cp $1 - ret nz - ld hl, $6c7f - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $3 - ld [wDugrioState], a - ret + cp $2 + jr nz, .asm_1ab7d + ld a, [wDugtrioAnimationFrameIndex] + cp $1 + ret nz + ld hl, Data_1ac7f + ld de, wDugtrioAnimationFrameCounter + call CopyHLToDE + ld a, $3 + ld [wDugrioState], a + ret + .asm_1ab7d - cp $3 - jr nz, .asm_1ab96 - ld a, [wDugtrioAnimationFrameIndex] - cp $3 - ret nz - ld hl, $6c7f - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $3 - ld [wDugrioState], a - ret + cp $3 + jr nz, .asm_1ab96 + ld a, [wDugtrioAnimationFrameIndex] + cp $3 + ret nz + ld hl, Data_1ac7f + ld de, wDugtrioAnimationFrameCounter + call CopyHLToDE + ld a, $3 + ld [wDugrioState], a + ret + .asm_1ab96 - cp $4 - jr nz, .asm_1abaf - ld a, [wDugtrioAnimationFrameIndex] - cp $1 - ret nz - ld hl, $6c89 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $5 - ld [wDugrioState], a - ret + cp $4 + jr nz, .asm_1abaf + ld a, [wDugtrioAnimationFrameIndex] + cp $1 + ret nz + ld hl, Data_1ac89 + ld de, wDugtrioAnimationFrameCounter + call CopyHLToDE + ld a, $5 + ld [wDugrioState], a + ret + .asm_1abaf - cp $5 - jr nz, .asm_1abc8 - ld a, [wDugtrioAnimationFrameIndex] - cp $3 - ret nz - ld hl, $6c89 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $5 - ld [wDugrioState], a - ret + cp $5 + jr nz, .asm_1abc8 + ld a, [wDugtrioAnimationFrameIndex] + cp $3 + ret nz + ld hl, Data_1ac89 + ld de, wDugtrioAnimationFrameCounter + call CopyHLToDE + ld a, $5 + ld [wDugrioState], a + ret + .asm_1abc8 - cp $6 - jr nz, .asm_1abe1 - ld a, [wDugtrioAnimationFrameIndex] - cp $1 - ret nz - ld hl, $6c93 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - ld a, $7 - ld [wDugrioState], a - ret + cp $6 + jr nz, .asm_1abe1 + ld a, [wDugtrioAnimationFrameIndex] + cp $1 + ret nz + ld hl, Data_1ac93 + ld de, wDugtrioAnimationFrameCounter + call CopyHLToDE + ld a, $7 + ld [wDugrioState], a + ret + .asm_1abe1 - cp $7 - ret nz - ld a, [wDugtrioAnimationFrameIndex] - cp $1 - jr nz, .asm_1abf2 - ld de, $0000 - call PlaySong - ret + cp $7 + ret nz + ld a, [wDugtrioAnimationFrameIndex] + cp $1 + jr nz, .asm_1abf2 + ld de, $0000 + call PlaySong + ret + .asm_1abf2 - cp $2 - ret nz - ld hl, $6c72 - ld de, wDugtrioAnimationFrameCounter - call CopyHLToDE - xor a - ld [wDugrioState], a - ld [$d498], a - ld a, $1 - ld [$d49a], a - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $2fb3 - call Func_32aa - ld de, $4b2a - call PlaySoundEffect - ld a, $1 - ld [$d7be], a - call Func_2862 - ld hl, $6c56 - jr asm_1ac2f + cp $2 + ret nz + ld hl, Data_1ac72 + ld de, wDugtrioAnimationFrameCounter + call CopyHLToDE + xor a + ld [wDugrioState], a + ld [wd498], a + ld a, $1 + ld [wd49a], a + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, Data_2fb3 + call LoadTextHeader + lb de, $4b, $2a + call PlaySoundEffect + ld a, $1 + ld [wd7be], a + call Func_2862 + ld hl, Data_1ac56 + jr asm_1ac2f Func_1ac2c: ; 0x1ac2c - ld hl, $6c4a + ld hl, Data_1ac4a asm_1ac2f: - ld de, $c768 - ld b, $3 + ld de, wc768 + ld b, $3 .asm_1ac34 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, e - add $1d - ld e, a - jr nc, .asm_1ac46 - inc d + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ld a, e + add $1d + ld e, a + jr nc, .asm_1ac46 + inc d .asm_1ac46 - dec b - jr nz, .asm_1ac34 - ret + dec b + jr nz, .asm_1ac34 + ret + +Data_1ac4a: + dr $1ac4a, $1ac56 + +Data_1ac56: + dr $1ac56, $1ac62 + +Data_1ac62: + dr $1ac62, $1ac72 + +Data_1ac72: + dr $1ac72, $1ac75 -INCBIN "baserom.gbc",$1ac4a,$1ac98 - $1ac4a +Data_1ac75: + dr $1ac75, $1ac7f + +Data_1ac7f: + dr $1ac7f, $1ac89 + +Data_1ac89: + dr $1ac89, $1ac93 + +Data_1ac93: + dr $1ac93, $1ac98 Func_1ac98: ; 0x1ac98 - ld [$ff8a], a - ld a, Bank(Func_e4a1) - ld hl, Func_e4a1 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_17e81) - ld hl, Func_17e81 - call BankSwitch - call Func_1acb0 - ret + callba Func_e4a1 + callba Func_17e81 + call Func_1acb0 + ret Func_1acb0: ; 0x1acb0 - ld a, $40 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $0 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [wDugtrioAnimationFrame] - ld e, a - ld d, $0 - ld hl, $6ccf - add hl, de - ld a, [hl] - bit 7, a - call z, LoadOAMData2 - ret - -INCBIN "baserom.gbc",$1accf,$1c000 - $1accf - + ld a, $40 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $0 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wDugtrioAnimationFrame] + ld e, a + ld d, $0 + ld hl, Data_1accf + add hl, de + ld a, [hl] + bit 7, a + call z, LoadOAMData2 + ret + +Data_1accf: + dr $1accf, $1acde SECTION "bank7", ROMX, BANK[$7] InitBlueField: ; 0x1c000 - ld a, [$d7c1] - and a - ret nz - xor a - ld hl, $d46f - ld [hld], a - ld [hld], a - ld [hld], a - ld [hld], a - ld [hld], a - ld [hl], a - ld [wNumPartyMons], a - ld [$d49b], a - ld [$d4c9], a - ld [wBallType], a - ld [$d4c8], a - ld hl, $d624 - ld [hli], a - ld [hli], a - ld [hli], a - ld [$d7ac], a - ld [$d7be], a - ld [wCurrentMap], a ; PALLET_TOWN - ld a, $1 - ld [$d49d], a - ld [$d482], a - ld a, $2 - ld [wRightAlleyCount], a - ld a, $3 - ld [$d49e], a - ld [$d610], a - ld a, $2 - ld [$d498], a - ld [$d499], a - ld a, $80 - ld [wIndicatorStates], a - ld [wIndicatorStates + 3], a - ld a, $82 - ld [wIndicatorStates + 1], a - xor a - ld [$d648], a - ld [$d649], a - ld [$d64a], a - ld [$d643], a - ld [$d644], a - ld [$d645], a - ld [$d646], a - ld [$ff8a], a - ld a, Bank(Func_dbba) - ld hl, Func_dbba - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_1d65f) - ld hl, Func_1d65f - call BankSwitch - ld a, $10 - call SetSongBank - ld de, $0001 - call PlaySong - ret + ld a, [wd7c1] + and a + ret nz + xor a + ld hl, wScore + $5 + ld [hld], a + ld [hld], a + ld [hld], a + ld [hld], a + ld [hld], a + ld [hl], a + ld [wNumPartyMons], a + ld [wd49b], a + ld [wd4c9], a + ld [wBallType], a + ld [wd4c8], a + ld hl, wd624 + ld [hli], a + ld [hli], a + ld [hli], a + ld [wd7ac], a + ld [wd7be], a + ld [wCurrentMap], a ; PALLET_TOWN + ld a, $1 + ld [wd49d], a + ld [wd482], a + ld a, $2 + ld [wRightAlleyCount], a + ld a, $3 + ld [wd49e], a + ld [wd610], a + ld a, $2 + ld [wd498], a + ld [wd499], a + ld a, $80 + ld [wIndicatorStates], a + ld [wIndicatorStates + 3], a + ld a, $82 + ld [wIndicatorStates + 1], a + xor a + ld [wd648], a + ld [wd649], a + ld [wd64a], a + ld [wd643], a + ld [wd644], a + ld [wd645], a + ld [wd646], a + callba Start20SecondSaverTimer + callba Func_1d65f + ld a, $10 + call SetSongBank + ld de, $0001 + call PlaySong + ret StartBallBlueField: ; 0x1c08d - ld a, [$d496] - and a - jp nz, StartBallAfterBonusStageBlueField - ld a, $0 - ld [wBallXPos], a - ld a, $a7 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $98 - ld [wBallYPos + 1], a - xor a - ld [$d549], a - ld [$d580], a - call Func_1c7c7 - ld a, [$d4c9] - and a - ret z - xor a - ld [$d4c9], a - xor a - ld [$d50b], a - ld [$d50c], a - ld [$d51d], a - ld [$d51e], a - ld [$d517], a - ld hl, $d50f - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [wLeftMapMoveCounter], a - ld [wRightMapMoveCounter], a - ld hl, $d5f9 - ld [hli], a - ld [hli], a - ld [hli], a - ld [wBallType], a - ld [$d611], a - ld [$d612], a - ld [$d628], a - ld [$d629], a - ld [$d62a], a - ld [$d62b], a - ld [$d62c], a - ld [$d63a], a - ld [$d63b], a - ld [$d63d], a - ld [$d63c], a - ld [$d62d], a - ld [$d62e], a - ld [$d613], a - inc a - ld [$d482], a - ld [$d4ef], a - ld [$d4f1], a - ld a, $3 - ld [$d610], a - call Func_1d65f - ld a, $10 - call SetSongBank - ld de, $0001 - call PlaySong - ret + ld a, [wd496] + and a + jp nz, StartBallAfterBonusStageBlueField + ld a, $0 + ld [wBallXPos], a + ld a, $a7 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $98 + ld [wBallYPos + 1], a + xor a + ld [wd549], a + ld [wd580], a + call Func_1c7c7 + ld a, [wd4c9] + and a + ret z + xor a + ld [wd4c9], a + xor a + ld [wd50b], a + ld [wd50c], a + ld [wd51d], a + ld [wd51e], a + ld [wd517], a + ld hl, wd50f + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [wLeftMapMoveCounter], a + ld [wRightMapMoveCounter], a + ld hl, wd5f9 + ld [hli], a + ld [hli], a + ld [hli], a + ld [wBallType], a + ld [wd611], a + ld [wd612], a + ld [wd628], a + ld [wd629], a + ld [wd62a], a + ld [wd62b], a + ld [wd62c], a + ld [wd63a], a + ld [wd63b], a + ld [wd63d], a + ld [wd63c], a + ld [wd62d], a + ld [wd62e], a + ld [wd613], a + inc a + ld [wd482], a + ld [wd4ef], a + ld [wd4f1], a + ld a, $3 + ld [wd610], a + call Func_1d65f + ld a, $10 + call SetSongBank + ld de, $0001 + call PlaySong + ret StartBallAfterBonusStageBlueField: ; 0x1c129 - ld a, $0 - ld [wBallXPos], a - ld a, $50 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $16 - ld [wBallYPos + 1], a - xor a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [$d496], a - ld [$d7ab], a - ld [$d7be], a - ld a, [wBallTypeBackup] - ld [wBallType], a - ld a, $10 - call SetSongBank - ld de, $0001 - call PlaySong - ret + ld a, $0 + ld [wBallXPos], a + ld a, $50 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $16 + ld [wBallYPos + 1], a + xor a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + ld [wBallXVelocity], a + ld [wBallXVelocity + 1], a + ld [wd496], a + ld [wd7ab], a + ld [wd7be], a + ld a, [wBallTypeBackup] + ld [wBallType], a + ld a, $10 + call SetSongBank + ld de, $0001 + call PlaySong + ret Func_1c165: ; 0x1c165 - call asm_1e475 - call Func_1cb43 - call Func_1c3ee - call Func_1e8f6 - ld [$ff8a], a - ld a, Bank(Func_142fc) - ld hl, Func_142fc - call BankSwitch - ld a, $1 - ld [$d640], a - call Func_1f18a - ld [$ff8a], a - ld a, Bank(Func_1404a) - ld hl, Func_1404a - call BankSwitch - call Func_1c203 - ret + call asm_1e475 + call Func_1cb43 + call Func_1c3ee + call Func_1e8f6 + callba Func_142fc + ld a, $1 + ld [wd640], a + call Func_1f18a + callba Func_1404a + call Func_1c203 + ret Func_1c191: ; 0x1c191 - call Func_1c1db - call Func_1c4b6 - call Func_1c2cb - call Func_1e627 - call Func_1c43c - call Func_1c305 - call Func_1c3ee - ld [$ff8a], a - ld a, Bank(Func_14746) - ld hl, Func_14746 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_14707) - ld hl, Func_14707 - call BankSwitch - call Func_1c235 - call Func_1c21e - call Func_1e8f6 - ld [$ff8a], a - ld a, Bank(Func_142fc) - ld hl, Func_142fc - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_1404a) - ld hl, Func_1404a - call BankSwitch - call Func_1c203 - ret + call Func_1c1db + call Func_1c4b6 + call Func_1c2cb + call Func_1e627 + call Func_1c43c + call Func_1c305 + call Func_1c3ee + callba Func_14746 + callba Func_14707 + call Func_1c235 + call Func_1c21e + call Func_1e8f6 + callba Func_142fc + callba Func_1404a + call Func_1c203 + ret Func_1c1db: ; 0x1c1db - ld a, [$d641] - cp $0 - ret z - ld a, $1 - ld [$d640], a - ld a, $0 - ld [$d641], a - ld a, [wBlueStageForceFieldDirection] - cp $2 ; down direction - ret nz - ld a, $0 - ld [wBlueStageForceFieldDirection], a - ld a, $1 ; right direction - ld [$d64a], a - xor a - ld [$d649], a - ld [$d648], a - ret + ld a, [wd641] + cp $0 + ret z + ld a, $1 + ld [wd640], a + ld a, $0 + ld [wd641], a + ld a, [wBlueStageForceFieldDirection] + cp $2 ; down direction + ret nz + ld a, $0 + ld [wBlueStageForceFieldDirection], a + ld a, $1 ; right direction + ld [wd64a], a + xor a + ld [wd649], a + ld [wd648], a + ret Func_1c203: ; 0x1c203 - ld a, $ff - ld [$d4d7], a - ld [$d4db], a - ld a, [$d4b4] - ld [$d4c5], a - ld a, [$d4b6] - ld [$d4c6], a - ld a, [wBallRotation] - ld [$d4c7], a - ret + ld a, $ff + ld [wd4d7], a + ld [wd4db], a + ld a, [wd4b4] + ld [wd4c5], a + ld a, [wd4b6] + ld [wd4c6], a + ld a, [wBallRotation] + ld [wd4c7], a + ret Func_1c21e: ; 0x1c21e - ld a, $ff - ld [$d60e], a - ld [$d60f], a - ld a, [$d60c] - call Func_1d5f2 - ld a, [$d60d] - add $14 - call Func_1d5f2 - ret + ld a, $ff + ld [wd60e], a + ld [wd60f], a + ld a, [wd60c] + call Func_1d5f2 + ld a, [wd60d] + add $14 + call Func_1d5f2 + ret Func_1c235: ; 0x1c235 - ld a, [wLeftMapMoveDiglettAnimationCounter] - and a - jr z, .asm_1c249 - ld a, $54 - ld [$c7e3], a - ld a, $55 - ld [$c803], a - ld a, $1 - jr .asm_1c24a + ld a, [wLeftMapMoveDiglettAnimationCounter] + and a + jr z, .asm_1c249 + ld a, $54 + ld [wc7e3], a + ld a, $55 + ld [wc803], a + ld a, $1 + jr .asm_1c24a + .asm_1c249 - xor a + xor a .asm_1c24a - call Func_1de4b - ld a, [wLeftMapMoveCounter] - call Func_1de6f - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1c267 - ld a, [wLeftMapMoveCounter] - cp $0 - jr z, .asm_1c264 - ld b, $7 - add b - jr .asm_1c269 + call Func_1de4b + ld a, [wLeftMapMoveCounter] + call Func_1de6f + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1c267 + ld a, [wLeftMapMoveCounter] + cp $0 + jr z, .asm_1c264 + ld b, $7 + add b + jr .asm_1c269 + .asm_1c264 - xor a - jr .asm_1c269 + xor a + jr .asm_1c269 + .asm_1c267 - ld a, $8 + ld a, $8 .asm_1c269 - call Func_1de6f - ld a, [wRightMapMoveDiglettFrame] - and a - jr z, .asm_1c295 - ld a, $52 - ld [$c7f0], a - ld a, $53 - ld [$c810], a - ld a, [$d644] - and a - jr z, .asm_1c28a - ld a, [$d55a] - and a - jr nz, .asm_1c2bd - jr .asm_1c291 + call Func_1de6f + ld a, [wRightMapMoveDiglettFrame] + and a + jr z, .asm_1c295 + ld a, $52 + ld [wc7f0], a + ld a, $53 + ld [wc810], a + ld a, [wd644] + and a + jr z, .asm_1c28a + ld a, [wd55a] + and a + jr nz, .asm_1c2bd + jr .asm_1c291 + .asm_1c28a - ld a, [wRightMapMoveCounter] - add $3 - jr .asm_1c297 + ld a, [wRightMapMoveCounter] + add $3 + jr .asm_1c297 + .asm_1c291 - ld a, $3 - jr .asm_1c297 + ld a, $3 + jr .asm_1c297 + .asm_1c295 - ld a, $2 + ld a, $2 .asm_1c297 - call Func_1de4b - ld a, [wRightMapMoveCounter] - add $4 - call Func_1de6f - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1c2b7 - ld a, [wRightMapMoveCounter] - cp $0 - jr z, .asm_1c2b3 - ld b, $a - add b - jr .asm_1c2b9 + call Func_1de4b + ld a, [wRightMapMoveCounter] + add $4 + call Func_1de6f + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1c2b7 + ld a, [wRightMapMoveCounter] + cp $0 + jr z, .asm_1c2b3 + ld b, $a + add b + jr .asm_1c2b9 + .asm_1c2b3 - ld a, $4 - jr .asm_1c2b9 + ld a, $4 + jr .asm_1c2b9 + .asm_1c2b7 - ld a, $9 + ld a, $9 .asm_1c2b9 - call Func_1de6f - ret + call Func_1de6f + ret + .asm_1c2bd - ld a, $6 - call Func_1de4b - ld a, [wRightMapMoveCounter] - add $4 - call Func_1de6f - ret + ld a, $6 + call Func_1de4b + ld a, [wRightMapMoveCounter] + add $4 + call Func_1de6f + ret Func_1c2cb: ; 0x1c2cb - ld a, [wCurrentStage] - bit 0, a - ret z - ld bc, $0000 + ld a, [wCurrentStage] + bit 0, a + ret z + ld bc, $0000 .asm_1c2d4 - push bc - ld hl, wIndicatorStates - add hl, bc - ld a, [hl] - res 7, a - call Func_1eb41 - pop bc - inc c - ld a, c - cp $2 - jr nz, .asm_1c2d4 - ld bc, $0002 + push bc + ld hl, wIndicatorStates + add hl, bc + ld a, [hl] + res 7, a + call Func_1eb41 + pop bc + inc c + ld a, c + cp $2 + jr nz, .asm_1c2d4 + ld bc, $0002 .asm_1c2e9 - push bc - ld hl, wIndicatorStates - add hl, bc - ld a, [hl] - push af - ld hl, $d648 - add hl, bc - dec hl - dec hl - ld a, [hl] - ld d, a - pop af - add d - call Func_1eb41 - pop bc - inc c - ld a, c - cp $5 - jr nz, .asm_1c2e9 - ret + push bc + ld hl, wIndicatorStates + add hl, bc + ld a, [hl] + push af + ld hl, wd648 + add hl, bc + dec hl + dec hl + ld a, [hl] + ld d, a + pop af + add d + call Func_1eb41 + pop bc + inc c + ld a, c + cp $5 + jr nz, .asm_1c2e9 + ret Func_1c305: ; 0x1c305 - ld a, [wInSpecialMode] - and a - ret z - ld a, [wSpecialMode] - cp $2 - ret z - ld a, [$d5c6] - and a - jr nz, .asm_1c31f - ld a, [$d5f3] - and a - jr nz, .asm_1c31f - jp Func_1c3ca + ld a, [wInSpecialMode] + and a + ret z + ld a, [wSpecialMode] + cp $2 + ret z + ld a, [wd5c6] + and a + jr nz, .asm_1c31f + ld a, [wd5f3] + and a + jr nz, .asm_1c31f + jp Func_1c3ca + .asm_1c31f - ld [$ff8a], a - ld a, Bank(Func_1c3ac) - ld hl, Func_1c3ac - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10362) - ld hl, Func_10362 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_10301) - ld hl, Func_10301 - call nz, BankSwitch - ld a, [$d5f3] - and a - ret z - ld a, $2a - ld hl, $47e0 - ld de, $87e0 - ld bc, $0020 - call CopyDataToRAM - ld a, $2a - ld hl, $4800 - ld de, $8900 - ld bc, $0180 - call CopyDataToRAM - ld a, [wBallType] - cp GREAT_BALL - jr nc, .notPokeball - ld a, Bank(PinballPokeballShakeGfx) - ld hl, PinballPokeballShakeGfx - ld de, $8380 - ld bc, $0040 - call CopyDataToRAM - ret + callba Func_1c3ac + callba Func_10362 + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_10301) + ld hl, Func_10301 + call nz, BankSwitch + ld a, [wd5f3] + and a + ret z + ld a, BANK(PikachuSaverGfx) + ld hl, PikachuSaverGfx + $c0 + ld de, vTilesOB tile $7e + ld bc, $0020 + call FarCopyData + ld a, BANK(StageSharedPikaBoltGfx) + ld hl, GFX_a8800 + ld de, vTilesSH tile $10 + ld bc, $0180 + call FarCopyData + ld a, [wBallType] + cp GREAT_BALL + jr nc, .notPokeball + ld a, Bank(PinballPokeballShakeGfx) + ld hl, PinballPokeballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call FarCopyData + ret + .notPokeball - cp ULTRA_BALL - jr nc, .notGreatball - ld a, Bank(PinballGreatballShakeGfx) - ld hl, PinballGreatballShakeGfx - ld de, $8380 - ld bc, $0040 - call CopyDataToRAM - ret + cp ULTRA_BALL + jr nc, .notGreatball + ld a, Bank(PinballGreatballShakeGfx) + ld hl, PinballGreatballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call FarCopyData + ret + .notGreatball - cp MASTER_BALL - jr nc, .notUltraBall - ld a, Bank(PinballUltraballShakeGfx) - ld hl, PinballUltraballShakeGfx - ld de, $8380 - ld bc, $0040 - call CopyDataToRAM - ret + cp MASTER_BALL + jr nc, .notUltraBall + ld a, Bank(PinballUltraballShakeGfx) + ld hl, PinballUltraballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call FarCopyData + ret + .notUltraBall - ld a, Bank(PinballMasterballShakeGfx) - ld hl, PinballMasterballShakeGfx - ld de, $8380 - ld bc, $0040 - call CopyDataToRAM - ret + ld a, Bank(PinballMasterballShakeGfx) + ld hl, PinballMasterballShakeGfx + ld de, vTilesOB tile $38 + ld bc, $0040 + call FarCopyData + ret Func_1c3ac: ; 0x1c3ac - ld a, $80 - ld hl, $9887 - call Func_1c3c3 - ld hl, $98a7 - call Func_1c3c3 - ld hl, $98c7 - call Func_1c3c3 - ld hl, $98e7 - ; fall through + ld a, $80 + hlCoord 7, 4, vBGMap + call Func_1c3c3 + hlCoord 7, 5, vBGMap + call Func_1c3c3 + hlCoord 7, 6, vBGMap + call Func_1c3c3 + hlCoord 7, 7, vBGMap + ; fall through Func_1c3c3: ; 0x1c3c3 - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ret + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ret Func_1c3ca: ; 0x1c3ca - ld hl, $d586 - ld b, $18 + ld hl, wd586 + ld b, $18 .asm_1c3cf - ld a, [hli] - xor $1 - ld [hli], a - dec b - jr nz, .asm_1c3cf - ld [$ff8a], a - ld a, Bank(Func_10184) - ld hl, Func_10184 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_102bc) - ld hl, Func_102bc - call nz, BankSwitch - ret + ld a, [hli] + xor $1 + ld [hli], a + dec b + jr nz, .asm_1c3cf + callba Func_10184 + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_102bc) + ld hl, Func_102bc + call nz, BankSwitch + ret Func_1c3ee: ; 0x1c3ee - ld a, [wInSpecialMode] - and a - ret z - ld a, [wSpecialMode] - cp $1 - ret nz - ld a, [$d554] - cp $3 - ret z - ld a, [wCurrentStage] - bit 0, a - jr nz, .asm_1c416 - ld a, $36 - ld hl, $7e80 - ld de, $8600 - ld bc, $00e0 - call CopyDataToRAM - jr .asm_1c424 + ld a, [wInSpecialMode] + and a + ret z + ld a, [wSpecialMode] + cp $1 + ret nz + ld a, [wd554] + cp $3 + ret z + ld a, [wCurrentStage] + bit 0, a + jr nz, .asm_1c416 + ld a, BANK(Data_dbe80) + ld hl, Data_dbe80 + ld de, vTilesOB tile $60 + ld bc, $00e0 + call FarCopyData + jr .asm_1c424 + .asm_1c416 - ld a, $36 - ld hl, $7e80 - ld de, $8200 - ld bc, $00e0 - call CopyDataToRAM + ld a, BANK(Data_dbe80) + ld hl, Data_dbe80 + ld de, vTilesOB tile $20 + ld bc, $00e0 + call FarCopyData .asm_1c424 - ld a, [$d551] - and a - ret z - ld a, [hGameBoyColorFlag] - and a - ret z - ld a, $37 - ld hl, $5188 - ld de, $0070 - ld bc, $0010 - call Func_6fd - ret + ld a, [wd551] + and a + ret z + ld a, [hGameBoyColorFlag] + and a + ret z + ld a, BANK(Data_dd188) + ld hl, Data_dd188 + ld de, $0070 + ld bc, $0010 + call Func_6fd + ret Func_1c43c: ; 0x1c43c - ld a, [wInSpecialMode] - and a - jr z, .asm_1c458 - ld a, [wSpecialMode] - and a - jr nz, .asm_1c450 - ld a, [wNumMonHits] - and a - call nz, Func_1c46d - ret + ld a, [wInSpecialMode] + and a + jr z, .asm_1c458 + ld a, [wSpecialMode] + and a + jr nz, .asm_1c450 + ld a, [wNumMonHits] + and a + call nz, Func_1c46d + ret + .asm_1c450 - cp $1 - jr nz, .asm_1c458 - call Func_1c47d - ret + cp $1 + jr nz, .asm_1c458 + call Func_1c47d + ret + .asm_1c458 - ld a, [$d624] - call Func_1f265 - ld a, $36 - ld hl, $4f60 - ld de, $8ae0 - ld bc, $0020 - call CopyDataToRAM - ret + ld a, [wd624] + call Func_1f265 + ld a, BANK(Data_d8f60) + ld hl, Data_d8f60 + ld de, vTilesSH tile $2e + ld bc, $0020 + call FarCopyData + ret Func_1c46d: ; 0x1c46d - push af - ld [$ff8a], a - ld a, Bank(Func_10611) - ld hl, Func_10611 - call BankSwitch - pop af - dec a - jr nz, Func_1c46d - ret + push af + callba Func_10611 + pop af + dec a + jr nz, Func_1c46d + ret Func_1c47d: ; 0x1c47d - ld de, $0000 - ld a, [$d554] - and a - ret z - ld b, a + ld de, $0000 + ld a, [wd554] + and a + ret z + ld b, a .asm_1c486 - ld a, [wCurrentEvolutionType] - call Func_1c491 - inc de - dec b - jr nz, .asm_1c486 - ret + ld a, [wCurrentEvolutionType] + call Func_1c491 + inc de + dec b + jr nz, .asm_1c486 + ret Func_1c491: ; 0x1c491 - push bc - push de - dec a - ld c, a - ld b, $0 - swap c - sla c - ld hl, $4e80 - add hl, bc - swap e - sla e - push hl - ld hl, $8ae0 - add hl, de - ld d, h - ld e, l - pop hl - ld bc, $0020 - ld a, $36 - call CopyDataToRAM - pop de - pop bc - ret + push bc + push de + dec a + ld c, a + ld b, $0 + swap c + sla c + ld hl, Data_d8e80 + add hl, bc + swap e + sla e + push hl + ld hl, vTilesSH tile $2e + add hl, de + ld d, h + ld e, l + pop hl + ld bc, $0020 + ld a, BANK(Data_d8e80) + call FarCopyData + pop de + pop bc + ret Func_1c4b6: ; 0x1c4b6 - ld a, [wInSpecialMode] - and a - jr nz, .asm_1c4f0 - ld a, [$d609] - and a - jr z, .asm_1c4d2 - ld a, [$d498] - add $15 - ld [$ff8a], a - ld a, Bank(Func_30256) - ld hl, Func_30256 - call BankSwitch - ret + ld a, [wInSpecialMode] + and a + jr nz, .asm_1c4f0 + ld a, [wd609] + and a + jr z, .asm_1c4d2 + ld a, [wd498] + add $15 + callba Func_30256 + ret + .asm_1c4d2 - ld a, [$d608] - and a - jr z, .asm_1c4e5 - ld a, $1a - ld [$ff8a], a - ld a, Bank(Func_30256) - ld hl, Func_30256 - call BankSwitch - ret + ld a, [wd608] + and a + jr z, .asm_1c4e5 + ld a, $1a + callba Func_30256 + ret + .asm_1c4e5 - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ret + callba Func_30253 + ret + .asm_1c4f0 - ld a, [wSpecialMode] - cp $2 - ret nz - ld a, [$d54d] - cp $3 - jr nz, .asm_1c508 - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ret + ld a, [wSpecialMode] + cp $2 + ret nz + ld a, [wd54d] + cp $3 + jr nz, .asm_1c508 + callba Func_30253 + ret + .asm_1c508 - ld a, [$d604] - and a - ld a, $14 - jr nz, .asm_1c515 - ld a, [$d55a] - add $12 + ld a, [wd604] + and a + ld a, $14 + jr nz, .asm_1c515 + ld a, [wd55a] + add $12 .asm_1c515 - ld [$ff8a], a - ld a, Bank(Func_30256) - ld hl, Func_30256 - call BankSwitch - ret + callba Func_30256 + ret Func_1c520: ; 0x1c520 - call Func_1c55a ; shellders - call Func_1c567 ; spinner - call Func_1c57e - call Func_1c592 - call Func_1c588 - call Func_1c5c0 - call Func_1c5eb - ret + call Func_1c55a ; shellders + call Func_1c567 ; spinner + call Func_1c57e + call Func_1c592 + call Func_1c588 + call Func_1c5c0 + call Func_1c5eb + ret Func_1c536: ; 0x1c536 - ld a, [wBallYPos + 1] - cp $56 - jr nc, .asm_1c54d - call Func_1c5de - call Func_1c5b3 - call Func_1c5a6 - call Func_1c5d4 - call Func_1c5eb - ret + ld a, [wBallYPos + 1] + cp $56 + jr nc, .asm_1c54d + call Func_1c5de + call Func_1c5b3 + call Func_1c5a6 + call Func_1c5d4 + call Func_1c5eb + ret + .asm_1c54d - call Func_1c571 - call Func_1c59c - call Func_1c5ca - call Func_1c607 - ret + call Func_1c571 + call Func_1c59c + call Func_1c5ca + call Func_1c607 + ret Func_1c55a: ; 0x1c55a - ld de, $4644 - ld hl, $462e - ld bc, $d4cb - and a - jp Func_2775 + ld de, Data_1c644 + ld hl, Data_1c62e + ld bc, wd4cb + and a + jp Func_2775 Func_1c567: ; 0x1c567 - ld de, $4650 - ld bc, $d507 - scf - jp Func_2775 + ld de, Data_1c650 + ld bc, wd507 + scf + jp Func_2775 Func_1c571: ; 0x1c571 - ld de, $4625 - ld hl, $4611 - ld bc, $d4d8 - and a - jp Func_2775 + ld de, Data_1c625 + ld hl, Data_1c611 + ld bc, wd4d8 + and a + jp Func_2775 Func_1c57e: ; 0x1c57e - ld de, $4656 - ld bc, $d51f - scf - jp Func_2775 + ld de, Data_1c656 + ld bc, wd51f + scf + jp Func_2775 Func_1c588: ; 0x1c588 - ld de, $4665 - ld bc, $d635 - scf - jp Func_2775 + ld de, Data_1c665 + ld bc, wd635 + scf + jp Func_2775 Func_1c592: ; 0x1c592 - ld de, $466b - ld bc, $d630 - scf - jp Func_2775 + ld de, Data_1c66b + ld bc, wd630 + scf + jp Func_2775 Func_1c59c: ; 0x1c59c - ld de, $4671 - ld bc, $d515 - scf - jp Func_2775 + ld de, Data_1c671 + ld bc, wd515 + scf + jp Func_2775 Func_1c5a6: ; 0x1c5a6 - ld de, $4686 - ld hl, $467a - ld bc, $d60a - and a - jp Func_2775 + ld de, Data_1c686 + ld hl, Data_1c67a + ld bc, wd60a + and a + jp Func_2775 Func_1c5b3: ; 0x1c5b3 - ld de, $4695 - ld hl, $468f - ld bc, $d4ed - and a - jp Func_2775 + ld de, Data_1c695 + ld hl, Data_1c68f + ld bc, wd4ed + and a + jp Func_2775 Func_1c5c0: ; 0x1c5c0 - ld de, $469e - ld bc, $d5f7 - scf - jp Func_2775 + ld de, Data_1c69e + ld bc, wd5f7 + scf + jp Func_2775 Func_1c5ca: ; 0x1c5ca - ld de, $46aa - ld bc, $d50d - scf - jp Func_2775 + ld de, Data_1c6aa + ld bc, wd50d + scf + jp Func_2775 Func_1c5d4: ; 0x1c5d4 - ld de, $46b9 - ld bc, $d601 - scf - jp Func_2775 + ld de, Data_1c6b9 + ld bc, wd601 + scf + jp Func_2775 Func_1c5de: ; 0x1c5de - ld de, $46d1 - ld hl, $46bf - ld bc, $d5c7 - and a - jp Func_2775 + ld de, Data_1c6d1 + ld hl, Data_1c6bf + ld bc, wd5c7 + and a + jp Func_2775 Func_1c5eb: ; 0x1c5eb - xor a - ld [$d578], a - ld a, [$d551] - and a - ret z - ld a, [wCurrentStage] - bit 0, a - jr nz, .asm_1c601 - ld hl, BlueTopEvolutionTrinketCoords - jp PinballCollideWithPoints + xor a + ld [wd578], a + ld a, [wd551] + and a + ret z + ld a, [wCurrentStage] + bit 0, a + jr nz, .asm_1c601 + ld hl, BlueTopEvolutionTrinketCoords + jp PinballCollideWithPoints + .asm_1c601 - ld hl, BlueBottomEvolutionTrinketCoords - jp PinballCollideWithPoints + ld hl, BlueBottomEvolutionTrinketCoords + jp PinballCollideWithPoints Func_1c607: ; 0x1c607 - ld de, $470f - ld bc, $d4dc - scf - jp Func_2775 + ld de, Data_1c70f + ld bc, wd4dc + scf + jp Func_2775 + +Data_1c611: + dr $1c611, $1c625 + +Data_1c625: + dr $1c625, $1c62e + +Data_1c62e: + dr $1c62e, $1c644 + +Data_1c644: + dr $1c644, $1c650 + +Data_1c650: + dr $1c650, $1c656 + +Data_1c656: + dr $1c656, $1c665 + +Data_1c665: + dr $1c665, $1c66b + +Data_1c66b: + dr $1c66b, $1c671 + +Data_1c671: + dr $1c671, $1c67a + +Data_1c67a: + dr $1c67a, $1c686 + +Data_1c686: + dr $1c686, $1c68f + +Data_1c68f: + dr $1c68f, $1c695 + +Data_1c695: + dr $1c695, $1c69e + +Data_1c69e: + dr $1c69e, $1c6aa -INCBIN "baserom.gbc",$1c611,$1c6d7 - $1c611 +Data_1c6aa: + dr $1c6aa, $1c6b9 + +Data_1c6b9: + dr $1c6b9, $1c6bf + +Data_1c6bf: + dr $1c6bf, $1c6d1 + +Data_1c6d1: + dr $1c6d1, $1c6d7 BlueTopEvolutionTrinketCoords: ; 0x1c6d7 ; First byte is just non-zero to signify that the array hasn't ended. ; Second byte is x coordinate. ; Third byte is y coordinate. - db $01, $44, $11 - db $01, $23, $1B - db $01, $65, $1B - db $01, $0D, $2E - db $01, $7A, $2E - db $01, $05, $48 - db $01, $44, $88 - db $01, $83, $48 - db $01, $02, $6E - db $01, $2E, $88 - db $01, $59, $88 - db $01, $85, $6E - db $00 + db $01, $44, $11 + db $01, $23, $1B + db $01, $65, $1B + db $01, $0D, $2E + db $01, $7A, $2E + db $01, $05, $48 + db $01, $44, $88 + db $01, $83, $48 + db $01, $02, $6E + db $01, $2E, $88 + db $01, $59, $88 + db $01, $85, $6E + db $00 BlueBottomEvolutionTrinketCoords: ; 0x1c6fc ; First byte is just non-zero to signify that the array hasn't ended. ; Second byte is x coordinate. ; Third byte is y coordinate. - db $01, $33, $1B - db $01, $55, $1B - db $01, $29, $1F - db $01, $5F, $1F - db $01, $1D, $35 - db $01, $6B, $35 - db $00 + db $01, $33, $1B + db $01, $55, $1B + db $01, $29, $1F + db $01, $5F, $1F + db $01, $1D, $35 + db $01, $6B, $35 + db $00 -INCBIN "baserom.gbc",$1c70f,$1c715 - $1c70f +Data_1c70f: + dr $1c70f, $1c715 Func_1c715: ; 0x1c715 - call Func_1c9c1 - call Func_1ca5f - call Func_1e356 - call HandleBallTypeUpgradeCounterBlueField - call Func_1e66a - call Func_1cfaa - call Func_1d0a1 - call Func_1d216 - call HandleEnteringCloyster - call Func_1ea3b - call Func_1dbd2 - call Func_1ef09 - call Func_1e9c0 - call Func_1c8b6 - call Func_1f18a - ld [$ff8a], a - ld a, Bank(Func_146a9) - ld hl, Func_146a9 - call BankSwitch - call Func_1f27b - call Func_1df15 - ld [$ff8a], a - ld a, Bank(Func_30188) - ld hl, Func_30188 - call BankSwitch - ld a, $0 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret + call Func_1c9c1 + call Func_1ca5f + call Func_1e356 + call HandleBallTypeUpgradeCounterBlueField + call Func_1e66a + call Func_1cfaa + call Func_1d0a1 + call Func_1d216 + call HandleEnteringCloyster + call Func_1ea3b + call Func_1dbd2 + call Func_1ef09 + call Func_1e9c0 + call Func_1c8b6 + call Func_1f18a + callba Func_146a9 + call Func_1f27b + call Func_1df15 + callba Func_30188 + ld a, $0 + callba Func_10000 + ret Func_1c769: ; 0x1c769 - call Func_1ca4a - call Func_1ce40 - call Func_1dbd2 - call Func_1ca85 - call Func_1e4b8 - call HandleBallTypeUpgradeCounterBlueField - call Func_1e5c5 - call Func_1c7d7 - call Func_1d0a1 - call Func_1ead4 - call Func_1d438 - call Func_1e757 - call Func_1e9c0 - call Func_1ea0a - call Func_1c8b6 - ld [$ff8a], a - ld a, Bank(Func_14733) - ld hl, Func_14733 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_146a2) - ld hl, Func_146a2 - call BankSwitch - call Func_1f261 - call Func_1de93 - ld [$ff8a], a - ld a, Bank(Func_30188) - ld hl, Func_30188 - call BankSwitch - ld a, $0 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret + call Func_1ca4a + call Func_1ce40 + call Func_1dbd2 + call Func_1ca85 + call Func_1e4b8 + call HandleBallTypeUpgradeCounterBlueField + call Func_1e5c5 + call Func_1c7d7 + call Func_1d0a1 + call Func_1ead4 + call Func_1d438 + call Func_1e757 + call Func_1e9c0 + call Func_1ea0a + call Func_1c8b6 + callba Func_14733 + callba Func_146a2 + call Func_1f261 + call Func_1de93 + callba Func_30188 + ld a, $0 + callba Func_10000 + ret Func_1c7c7: ; 0x1c7c7 - ld a, $0 - ld [wStageCollisionState], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - ret + ld a, $0 + ld [wStageCollisionState], a + callba LoadStageCollisionAttributes + ret Func_1c7d7: ; 0x1c7d7 - ld a, [$d4dc] - and a - ret z - xor a - ld [$d4dc], a - ld a, [$d4de] - and a - jr z, .asm_1c810 - xor a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld hl, wBallXVelocity - ld [hli], a - ld [hl], a - ld [wBallSpin], a - ld [wBallRotation], a - ld a, $71 - ld [wBallYVelocity], a - ld a, $fa - ld [wBallYVelocity + 1], a - ld a, $1 - ld [$d549], a - ld de, $000a - call PlaySoundEffect + ld a, [wd4dc] + and a + ret z + xor a + ld [wd4dc], a + ld a, [wd4de] + and a + jr z, .asm_1c810 + xor a + ld [wRightAlleyTrigger], a + ld [wLeftAlleyTrigger], a + ld [wSecondaryLeftAlleyTrigger], a + ld hl, wBallXVelocity + ld [hli], a + ld [hl], a + ld [wBallSpin], a + ld [wBallRotation], a + ld a, $71 + ld [wBallYVelocity], a + ld a, $fa + ld [wBallYVelocity + 1], a + ld a, $1 + ld [wd549], a + lb de, $00, $0a + call PlaySoundEffect .asm_1c810 - ld a, $ff - ld [$d4ec], a - ld a, [$d4de] - and a - ret nz - ld a, [$d4e0] - and a - jr nz, .asm_1c82c - call Func_1c839 - ld a, $1 - ld [$d4e0], a - ld [$d4de], a - ret + ld a, $ff + ld [wd4ec], a + ld a, [wd4de] + and a + ret nz + ld a, [wd4e0] + and a + jr nz, .asm_1c82c + call Func_1c839 + ld a, $1 + ld [wd4e0], a + ld [wd4de], a + ret + .asm_1c82c - ld hl, wKeyConfigBallStart - call IsKeyPressed - ret z - ld a, $1 - ld [$d4de], a - ret + ld hl, wKeyConfigBallStart + call IsKeyPressed + ret z + ld a, $1 + ld [wd4de], a + ret Func_1c839: ; 0x1c839 - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_f269) - ld hl, Func_f269 - call nz, BankSwitch + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_f269) + ld hl, Func_f269 + call nz, BankSwitch .showNextMap - ld a, [wInitialMapSelectionIndex] - inc a - cp $7 ; number of maps to choose from at the start of play - jr c, .gotMapId - xor a ; wrap around to 0 + ld a, [wInitialMapSelectionIndex] + inc a + cp $7 ; number of maps to choose from at the start of play + jr c, .gotMapId + xor a ; wrap around to 0 .gotMapId - ld [wInitialMapSelectionIndex], a - ld c, a - ld b, $0 - ld hl, BlueStageInitialMaps - add hl, bc - ld a, [hl] - ld [wCurrentMap], a - push af - ld de, $0048 - call PlaySoundEffect - pop af - add $29 ; map billboard pictures start at the $29th entry in BillboardPicturePointers - ld [$ff8a], a - ld a, Bank(LoadBillboardPicture) - ld hl, LoadBillboardPicture - call BankSwitch - ld b, $20 ; number of frames to delay before the next map is shown + ld [wInitialMapSelectionIndex], a + ld c, a + ld b, $0 + ld hl, BlueStageInitialMaps + add hl, bc + ld a, [hl] + ld [wCurrentMap], a + push af + lb de, $00, $48 + call PlaySoundEffect + pop af + add (PalletTownPic_Pointer - BillboardPicturePointers) / 3 ; map billboard pictures start at the $29th entry in BillboardPicturePointers + callba LoadBillboardPicture + 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 + push bc + callba Func_eeee + ld hl, wKeyConfigBallStart + call IsKeyPressed + jr nz, .ballStartKeyPressed + pop bc + dec b + jr nz, .waitOnCurrentMap + jr .showNextMap + .ballStartKeyPressed - pop bc - ld [$ff8a], a - 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 + pop bc + callba Func_30253 + ld bc, Data_2cd1 + callba Func_3118f + ld a, [wCurrentMap] + ld [wd4e3], a + xor a + ld [wd4e2], 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 + db VIRIDIAN_CITY + db VIRIDIAN_FOREST + db MT_MOON + db CERULEAN_CITY + db VERMILION_STREETS + db ROCK_MOUNTAIN + db CELADON_CITY Func_1c8b6: ; 0x1c8b6 - ld a, [$d64c] - inc a - cp $3c - jr z, .asm_1c8c2 - ld [$d64c], a - ret + ld a, [wd64c] + inc a + cp $3c + jr z, .asm_1c8c2 + ld [wd64c], a + ret + .asm_1c8c2 - xor a - ld [$d64c], a - ld hl, $d64d - inc [hl] - ld a, [hl] - cp $5 - ret nz - ld a, [$d644] - and a - jr nz, .asm_1c8e1 - ld a, [$d643] - and a - jr nz, .asm_1c8e5 - ld a, [wRightAlleyCount] - cp $2 - jr nc, .asm_1c8e5 + xor a + ld [wd64c], a + ld hl, wd64d + inc [hl] + ld a, [hl] + cp $5 + ret nz + ld a, [wd644] + and a + jr nz, .asm_1c8e1 + ld a, [wd643] + and a + jr nz, .asm_1c8e5 + ld a, [wRightAlleyCount] + cp $2 + jr nc, .asm_1c8e5 .asm_1c8e1 - xor a - ld [$d64b], a + xor a + ld [wd64b], a .asm_1c8e5 - ld a, [$d644] - and a - jr nz, .asm_1c8f8 - ld a, [$d643] - and a - jr nz, .asm_1c8fc - ld a, [wLeftAlleyCount] - cp $3 - jr z, .asm_1c8fc + ld a, [wd644] + and a + jr nz, .asm_1c8f8 + ld a, [wd643] + and a + jr nz, .asm_1c8fc + ld a, [wLeftAlleyCount] + cp $3 + jr z, .asm_1c8fc .asm_1c8f8 - xor a - ld [$d64b], a + xor a + ld [wd64b], a .asm_1c8fc - xor a - ld [$d64d], a - xor a - ld [$d64a], a - ld [$d649], a - ld [$d648], a - ld a, [wBlueStageForceFieldDirection] - cp $1 ; right direction - jr z, .asm_1c97f - cp $3 ; left direction - jr z, .asm_1c97f + xor a + ld [wd64d], a + xor a + ld [wd64a], a + ld [wd649], a + ld [wd648], a + ld a, [wBlueStageForceFieldDirection] + cp $1 ; right direction + jr z, .asm_1c97f + cp $3 ; left direction + jr z, .asm_1c97f .asm_1c915 - ld a, [$d644] - cp $0 - jr z, .asm_1c925 - ld a, [$d55a] - cp $0 - jr nz, .asm_1c933 - jr .asm_1c947 + ld a, [wd644] + cp $0 + jr z, .asm_1c925 + ld a, [wd55a] + cp $0 + jr nz, .asm_1c933 + jr .asm_1c947 + .asm_1c925 - ld a, [$d643] - cp $0 - jr nz, .asm_1c933 - ld a, [wRightAlleyCount] - cp $2 - jr c, .asm_1c947 + ld a, [wd643] + cp $0 + jr nz, .asm_1c933 + ld a, [wRightAlleyCount] + cp $2 + jr c, .asm_1c947 .asm_1c933 - ld a, [$d64b] - cp $1 - jr z, .asm_1c947 - ld a, $1 ; right direction - ld [wBlueStageForceFieldDirection], a - ld [$d64b], a - ld [$d640], a - jr .asm_1c99e + ld a, [wd64b] + cp $1 + jr z, .asm_1c947 + ld a, $1 ; right direction + ld [wBlueStageForceFieldDirection], a + ld [wd64b], a + ld [wd640], a + jr .asm_1c99e + .asm_1c947 - ld a, [$d644] - cp $0 - jr z, .asm_1c955 - ld a, [$d55a] - cp $0 - jr z, .asm_1c969 + ld a, [wd644] + cp $0 + jr z, .asm_1c955 + ld a, [wd55a] + cp $0 + jr z, .asm_1c969 .asm_1c955 - ld a, [$d643] - cp $0 - jr nz, .asm_1c969 - ld a, [wLeftAlleyCount] - cp $3 - jr nz, .asm_1c97f - ld a, [wInSpecialMode] - and a - jr nz, .asm_1c97f + ld a, [wd643] + cp $0 + jr nz, .asm_1c969 + ld a, [wLeftAlleyCount] + cp $3 + jr nz, .asm_1c97f + ld a, [wInSpecialMode] + and a + jr nz, .asm_1c97f .asm_1c969 - ld a, [$d64b] - cp $3 - jr z, .asm_1c915 - ld a, $3 ; left direction - ld [wBlueStageForceFieldDirection], a - ld [$d64b], a - ld a, $1 - ld [$d640], a - jr .asm_1c99e + ld a, [wd64b] + cp $3 + jr z, .asm_1c915 + ld a, $3 ; left direction + ld [wBlueStageForceFieldDirection], a + ld [wd64b], a + ld a, $1 + ld [wd640], a + jr .asm_1c99e + .asm_1c97f - ld a, [$d641] - and a - jr nz, .asm_1c993 - xor a - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [$d640], a - ld [$d64a], a - jr .asm_1c99e + ld a, [wd641] + and a + jr nz, .asm_1c993 + xor a + ld [wBlueStageForceFieldDirection], a + ld a, $1 + ld [wd640], a + ld [wd64a], a + jr .asm_1c99e + .asm_1c993 - ld a, $2 ; down direction - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [$d640], a - ret + ld a, $2 ; down direction + ld [wBlueStageForceFieldDirection], a + ld a, $1 + ld [wd640], a + ret + .asm_1c99e - ld a, [wBlueStageForceFieldDirection] - cp $0 ; up direction - jr nz, .asm_1c9ac - ld a, $1 - ld [$d64a], a - jr .asm_1c9c0 + ld a, [wBlueStageForceFieldDirection] + cp $0 ; up direction + jr nz, .asm_1c9ac + ld a, $1 + ld [wd64a], a + jr .asm_1c9c0 + .asm_1c9ac - cp $1 - jr nz, .asm_1c9b7 - ld a, $1 - ld [$d649], a - jr .asm_1c9c0 + cp $1 + jr nz, .asm_1c9b7 + ld a, $1 + ld [wd649], a + jr .asm_1c9c0 + .asm_1c9b7 - cp $3 - jr nz, .asm_1c9c0 - ld a, $1 - ld [$d648], a + cp $3 + jr nz, .asm_1c9c0 + ld a, $1 + ld [wd648], a .asm_1c9c0 - ret + ret Func_1c9c1: ; 0x1c9c1 - ld a, [$d4cb] - and a - jr z, .asm_1ca19 - xor a - ld [$d4cb], a - call Func_1ca29 - ld a, [$d641] - and a - jr nz, .asm_1c9f2 - ld a, $1 - ld [$d641], a - ld a, [wBlueStageForceFieldDirection] - cp $0 ; up direction - jr nz, .asm_1c9f2 - ld a, $2 ; down direction - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [$d640], a - ld a, $3 - ld [$d64c], a - ld [$d64d], a + ld a, [wd4cb] + and a + jr z, .asm_1ca19 + xor a + ld [wd4cb], a + call Func_1ca29 + ld a, [wd641] + and a + jr nz, .asm_1c9f2 + ld a, $1 + ld [wd641], a + ld a, [wBlueStageForceFieldDirection] + cp $0 ; up direction + jr nz, .asm_1c9f2 + ld a, $2 ; down direction + ld [wBlueStageForceFieldDirection], a + ld a, $1 + ld [wd640], a + ld a, $3 + ld [wd64c], a + ld [wd64d], a .asm_1c9f2 - ld a, $10 - ld [$d4d6], a - ld a, [$d4cc] - sub $3 - ld [$d4d7], a - ld a, $4 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld bc, $34be - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ret + ld a, $10 + ld [wd4d6], a + ld a, [wd4cc] + sub $3 + ld [wd4d7], a + ld a, $4 + callba Func_10000 + ld bc, FiveHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ret + .asm_1ca19 - ld a, [$d4d6] - and a - ret z - dec a - ld [$d4d6], a - ret nz - ld a, $ff - ld [$d4d7], a - ret + ld a, [wd4d6] + and a + ret z + dec a + ld [wd4d6], a + ret nz + ld a, $ff + ld [wd4d7], a + ret Func_1ca29: ; 0x1ca29 - ld a, $ff - ld [$d803], a - ld a, $3 - ld [$d804], a - ld hl, $0200 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a - ld de, $000e - call PlaySoundEffect - ret + ld a, $ff + ld [wd803], a + ld a, $3 + ld [wd804], a + ld hl, $0200 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a + lb de, $00, $0e + call PlaySoundEffect + ret Func_1ca4a: ; 1ca4a - ld a, [$d5c7] - and a - ret z - xor a - ld [$d5c7], a - ld a, $1 - ld [$d5bf], a - ld de, $0006 - call PlaySoundEffect - ret - -INCBIN "baserom.gbc",$1ca5f,$1ca5f - $1ca5f + ld a, [wd5c7] + and a + ret z + xor a + ld [wd5c7], a + ld a, $1 + ld [wBallHitWildMon], a + lb de, $00, $06 + call PlaySoundEffect + ret Func_1ca5f: ; 0x1ca5f - ld a, [$d507] - and a - jr z, Func_1ca85 - xor a - ld [$d507], a - ld a, [wBallYVelocity] - ld c, a - ld a, [wBallYVelocity + 1] - ld b, a - ld a, c - ld [$d50b], a - ld a, b - ld [$d50c], a - ld a, $c - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ; fall through + ld a, [wd507] + and a + jr z, Func_1ca85 + xor a + ld [wd507], a + ld a, [wBallYVelocity] + ld c, a + ld a, [wBallYVelocity + 1] + ld b, a + ld a, c + ld [wd50b], a + ld a, b + ld [wd50c], a + ld a, $c + callba Func_10000 + ; fall through Func_1ca85: ; 0x1ca85 - ld hl, $d50b - ld a, [hli] - or [hl] - ret z - ld a, [$d50b] - ld c, a - ld a, [$d50c] - ld b, a - bit 7, b - jr nz, .asm_1caa3 - ld a, c - sub $7 - ld c, a - ld a, b - sbc $0 - ld b, a - jr nc, .asm_1cab0 - jr .asm_1caad + ld hl, wd50b + ld a, [hli] + or [hl] + ret z + ld a, [wd50b] + ld c, a + ld a, [wd50c] + ld b, a + bit 7, b + jr nz, .asm_1caa3 + ld a, c + sub $7 + ld c, a + ld a, b + sbc $0 + ld b, a + jr nc, .asm_1cab0 + jr .asm_1caad + .asm_1caa3 - ld a, c - add $7 - ld c, a - ld a, b - adc $0 - ld b, a - jr nc, .asm_1cab0 + ld a, c + add $7 + ld c, a + ld a, b + adc $0 + ld b, a + jr nc, .asm_1cab0 .asm_1caad - ld bc, $0000 + ld bc, $0000 .asm_1cab0 - ld a, c - ld [$d50b], a - ld a, b - ld [$d50c], a - ld hl, $d50b - ld a, [$d509] - add [hl] - ld [$d509], a - inc hl - ld a, [$d50a] - adc [hl] - bit 7, a - ld c, $0 - jr z, .asm_1cad3 - add $18 - ld c, $1 - jr .asm_1cadb + ld a, c + ld [wd50b], a + ld a, b + ld [wd50c], a + ld hl, wd50b + ld a, [wd509] + add [hl] + ld [wd509], a + inc hl + ld a, [wd50a] + adc [hl] + bit 7, a + ld c, $0 + jr z, .asm_1cad3 + add $18 + ld c, $1 + jr .asm_1cadb + .asm_1cad3 - cp $18 - jr c, .asm_1cadb - sub $18 - ld c, $1 + cp $18 + jr c, .asm_1cadb + sub $18 + ld c, $1 .asm_1cadb - ld [$d50a], a - ld a, c - and a - ret z - ld bc, $34ac - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld hl, $d62d - call Func_e4a - ld a, [$d517] - cp $f - jr nz, .asm_1caff - call Func_1cb1c - ret + ld [wd50a], a + ld a, c + and a + ret z + ld bc, TenPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld hl, wd62d + call Func_e4a + ld a, [wd517] + cp $f + jr nz, .asm_1caff + call Func_1cb1c + ret + .asm_1caff - inc a - ld [$d517], a - call Func_1cb1c - ld a, [$d517] - cp $f - jr nz, .asm_1cb12 - ld a, $64 - ld [$d51e], a + inc a + ld [wd517], a + call Func_1cb1c + ld a, [wd517] + cp $f + jr nz, .asm_1cb12 + ld a, $64 + ld [wd51e], a .asm_1cb12 - ld a, [wCurrentStage] - bit 0, a - ret nz - call Func_1cb43 - ret + ld a, [wCurrentStage] + bit 0, a + ret nz + call Func_1cb43 + ret Func_1cb1c: ; 0x1cb1c - ld a, [$d51e] - and a - ret nz - ld a, [$d517] - ld c, a - ld b, $0 - ld hl, $4b33 ; todo - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - call PlaySoundEffect - ret - -INCBIN "baserom.gbc",$1cb33,$1cb43 - $1cb33 + ld a, [wd51e] + and a + ret nz + ld a, [wd517] + ld c, a + ld b, $0 + ld hl, Data_1cb33 + add hl, bc + ld a, [hl] + ld e, a + ld d, $0 + call PlaySoundEffect + ret + +Data_1cb33: + dr $1cb33, $1cb43 Func_1cb43: ; 0x1cb43 - ld a, [$d517] - ld c, a - sla c - ld b, $0 - ld hl, $4b60 ; todo - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1cb56 - ld hl, $4d10 ; todo + ld a, [wd517] + ld c, a + sla c + ld b, $0 + ld hl, Data_1cb60 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1cb56 + ld hl, Data_1cd10 .asm_1cb56 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $7 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $7 + call Func_10aa + ret + +Data_1cb60: + dr $1cb60, $1cd10 -INCBIN "baserom.gbc",$1cb60,$1ce40 - $1cb60 +Data_1cd10: + dr $1cd10, $1ce40 Func_1ce40: ; 1ce40 - ld a, [$d4d8] - and a - jr z, .asm_1ce53 - call Func_1ce72 - call Func_1ce60 - xor a - ld [$d4d8], a - call Func_1ce94 + ld a, [wd4d8] + and a + jr z, .asm_1ce53 + call Func_1ce72 + call Func_1ce60 + xor a + ld [wd4d8], a + call Func_1ce94 .asm_1ce53 - ld a, [$d4da] - and a - ret z - dec a - ld [$d4da], a - call z, Func_1ce72 - ret + ld a, [wd4da] + and a + ret z + dec a + ld [wd4da], a + call z, Func_1ce72 + ret Func_1ce60: ; 0x1ce60 - ld a, $10 - ld [$d4da], a - ld a, [$d4d9] - sub $1 - ld [$d4db], a - sla a - inc a - jr asm_1ce7a + ld a, $10 + ld [wd4da], a + ld a, [wd4d9] + sub $1 + ld [wd4db], a + sla a + inc a + jr asm_1ce7a Func_1ce72: ; 1ce72 - ld a, [$d4db] - cp $ff - ret z - sla a + ld a, [wd4db] + cp $ff + ret z + sla a asm_1ce7a: ; 0x1ce7a - sla a - ld c, a - ld b, $0 - ld hl, $4eca - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1ce8a - ld hl, $4f3a + sla a + ld c, a + ld b, $0 + ld hl, Data_1ceca + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1ce8a + ld hl, Data_1cf3a .asm_1ce8a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $7 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $7 + call Func_10aa + ret Func_1ce94: ; 0x1ce94 - ld a, $ff - ld [$d803], a - ld a, $3 - ld [$d804], a - ld hl, $0200 - ld a, l - ld [$d7bc], a - ld a, h - ld [$d7bd], a - ld a, $80 - ld [wFlipperCollision], a - ld a, [$d4d9] - sub $1 - ld c, a - ld b, $0 - ld hl, $4ec8 - add hl, bc - ld a, [$d7ea] - add [hl] - ld [$d7ea], a - ld de, $000b - call PlaySoundEffect - ret - -INCBIN "baserom.gbc",$1cec8,$1cfaa - $1cec8 + ld a, $ff + ld [wd803], a + ld a, $3 + ld [wd804], a + ld hl, $0200 + ld a, l + ld [wd7bc], a + ld a, h + ld [wd7bd], a + ld a, $80 + ld [wFlipperCollision], a + ld a, [wd4d9] + sub $1 + ld c, a + ld b, $0 + ld hl, Data_1cec8 + add hl, bc + ld a, [wd7ea] + add [hl] + ld [wd7ea], a + lb de, $00, $0b + call PlaySoundEffect + ret + +Data_1cec8: + dr $1cec8, $1ceca + +Data_1ceca: + dr $1ceca, $1cf3a + +Data_1cf3a: + dr $1cf3a, $1cfaa Func_1cfaa: ; 0x1cfaa - ld a, [$d51f] - and a - ret z - xor a - ld [$d51f], a - ld bc, $34a6 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld a, [wStageCollisionState] - cp $0 - jr nz, .asm_1cfe5 - ld a, $1 - ld [wStageCollisionState], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - ld a, $1 - ld [$d580], a - ld [$ff8a], a - ld a, Bank(Func_1404a) - ld hl, Func_1404a - call BankSwitch + ld a, [wd51f] + and a + ret z + xor a + ld [wd51f], a + ld bc, FivePoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld a, [wStageCollisionState] + cp $0 + jr nz, .asm_1cfe5 + ld a, $1 + ld [wStageCollisionState], a + callba LoadStageCollisionAttributes + ld a, $1 + ld [wd580], a + callba Func_1404a .asm_1cfe5 - ld a, [$d520] - sub $7 - ld c, a - ld b, $0 - ld hl, $d521 - add hl, bc - ld [hl], $1 - ld a, [$d521] - and a - call nz, Func_1d010 - ld a, [$d522] - and a - call nz, Func_1d047 - ld a, [$d523] - and a - call nz, HandleLeftAlleyTriggerBlueField - ld a, [$d524] - and a - call nz, HandleRightAlleyTriggerBlueField - ret + ld a, [wd520] + sub $7 + ld c, a + ld b, $0 + ld hl, wd521 + add hl, bc + ld [hl], $1 + ld a, [wd521] + and a + call nz, Func_1d010 + ld a, [wd522] + and a + call nz, Func_1d047 + ld a, [wd523] + and a + call nz, HandleLeftAlleyTriggerBlueField + ld a, [wd524] + and a + call nz, HandleRightAlleyTriggerBlueField + ret Func_1d010: ; 0x1d010 - xor a - ld [$d521], a - ld a, [wLeftAlleyTrigger] - and a - ret z - xor a - ld [wLeftAlleyTrigger], a - ld a, $1 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret c - ld a, [wLeftAlleyCount] - cp $3 - ret z - inc a - ld [wLeftAlleyCount], a - cp $3 - jr z, .asm_1d03e - set 7, a - ld [wIndicatorStates], a - ret + xor a + ld [wd521], a + ld a, [wLeftAlleyTrigger] + and a + ret z + xor a + ld [wLeftAlleyTrigger], a + ld a, $1 + callba Func_10000 + ret c + ld a, [wLeftAlleyCount] + cp $3 + ret z + inc a + ld [wLeftAlleyCount], a + cp $3 + jr z, .asm_1d03e + set 7, a + ld [wIndicatorStates], a + ret + .asm_1d03e - ld [wIndicatorStates], a - ld a, $80 - ld [wIndicatorStates + 2], a - ret + ld [wIndicatorStates], a + ld a, $80 + ld [wIndicatorStates + 2], a + ret Func_1d047: ; 0x1d047 - xor a - ld [$d522], a - ld a, [wRightAlleyTrigger] - and a - ret z - xor a - ld [wRightAlleyTrigger], a - ld a, $2 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ret c - ld a, [wRightAlleyCount] - cp $3 - ret z - inc a - ld [wRightAlleyCount], a - cp $3 - jr z, .asm_1d071 - set 7, a + xor a + ld [wd522], a + ld a, [wRightAlleyTrigger] + and a + ret z + xor a + ld [wRightAlleyTrigger], a + ld a, $2 + callba Func_10000 + ret c + ld a, [wRightAlleyCount] + cp $3 + ret z + inc a + ld [wRightAlleyCount], a + cp $3 + jr z, .asm_1d071 + set 7, a .asm_1d071 - ld [wIndicatorStates + 1], a - ld a, [wRightAlleyCount] - cp $2 - ret c - ld a, $80 - ld [wIndicatorStates + 3], a - ret + ld [wIndicatorStates + 1], a + ld a, [wRightAlleyCount] + cp $2 + ret c + ld a, $80 + ld [wIndicatorStates + 3], a + ret HandleLeftAlleyTriggerBlueField: ; 0x1d080 ; Ball passed over the left alley trigger point in the Blue Field. - xor a - ld [$d523], a - ld [wRightAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $1 - ld [wLeftAlleyTrigger], a - ret c - ret + xor a + ld [wd523], a + ld [wRightAlleyTrigger], a + ld [wSecondaryLeftAlleyTrigger], a + ld a, $1 + ld [wLeftAlleyTrigger], a + ret c + ret HandleRightAlleyTriggerBlueField: ; 0x1d091 ; Ball passed over the right alley trigger point in the Blue Field. - xor a - ld [$d524], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $1 - ld [wRightAlleyTrigger], a - ret + xor a + ld [wd524], a + ld [wLeftAlleyTrigger], a + ld [wSecondaryLeftAlleyTrigger], a + ld a, $1 + ld [wRightAlleyTrigger], a + ret Func_1d0a1: ; 0x1d0a1 - ld a, [$d515] - and a - jr z, .asm_1d110 - xor a - ld [$d515], a - ld a, [$d51c] - and a - jr nz, .asm_1d110 - ld a, [$d51d] - and a - jr nz, .asm_1d0c9 - ld a, [$d516] - sub $d - ld hl, $d518 - cp [hl] - jr nz, .asm_1d110 - ld a, [$d517] - cp $f - jr nz, .asm_1d0fc + ld a, [wd515] + and a + jr z, .asm_1d110 + xor a + ld [wd515], a + ld a, [wd51c] + and a + jr nz, .asm_1d110 + ld a, [wd51d] + and a + jr nz, .asm_1d0c9 + ld a, [wd516] + sub $d + ld hl, wd518 + cp [hl] + jr nz, .asm_1d110 + ld a, [wd517] + cp $f + jr nz, .asm_1d0fc .asm_1d0c9 - ld hl, PikachuSaverAnimationDataRedStage - ld de, wPikachuSaverAnimationFrameCounter - call CopyHLToDE - ld a, [$d51d] - and a - jr nz, .asm_1d0dc - xor a - ld [$d517], a + ld hl, PikachuSaverAnimationDataRedStage + ld de, wPikachuSaverAnimationFrameCounter + call CopyHLToDE + ld a, [wd51d] + and a + jr nz, .asm_1d0dc + xor a + ld [wd517], a .asm_1d0dc - ld a, $1 - ld [$d51c], a - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallSpin], a - ld [wBallRotation], a - ld [$d549], a - call Func_30e8 - jr .asm_1d110 + ld a, $1 + ld [wd51c], a + xor a + ld [wBallXVelocity], a + ld [wBallXVelocity + 1], a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + ld [wBallSpin], a + ld [wBallRotation], a + ld [wd549], a + call Fillwc600WithBlackTile + jr .asm_1d110 + .asm_1d0fc - ld hl, PikachuSaverAnimation2DataRedStage - ld de, wPikachuSaverAnimationFrameCounter - call CopyHLToDE - ld a, $2 - ld [$d51c], a - ld de, $003b - call PlaySoundEffect + ld hl, PikachuSaverAnimation2DataRedStage + ld de, wPikachuSaverAnimationFrameCounter + call CopyHLToDE + ld a, $2 + ld [wd51c], a + lb de, $00, $3b + call PlaySoundEffect .asm_1d110 - ld a, [$d51c] - and a - call z, Func_1d1fb - call Func_1d133 - ld a, [$d517] - cp $f - ret nz - ld a, [$d51e] - and a - ret z - dec a - ld [$d51e], a - cp $5a - ret nz - ld de, $0f22 - call PlaySoundEffect - ret + ld a, [wd51c] + and a + call z, Func_1d1fb + call Func_1d133 + ld a, [wd517] + cp $f + ret nz + ld a, [wd51e] + and a + ret z + dec a + ld [wd51e], a + cp $5a + ret nz + lb de, $0f, $22 + call PlaySoundEffect + ret Func_1d133: ; 0x1d133 - ld a, [$d51c] - cp $1 - jr nz, .asm_1d1ae - ld hl, PikachuSaverAnimationDataRedStage - ld de, wPikachuSaverAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wPikachuSaverAnimationFrameIndex] - cp $1 - jr nz, .asm_1d18c - xor a - ld [$d85d], a - call Func_310a - rst $10 - ld a, $1 - ld [$ff8a], a - ld a, Bank(PlayPikachuSoundClip) - ld hl, PlayPikachuSoundClip - call BankSwitch - ld a, $1 - ld [$d85d], a - ld a, $ff - ld [$d803], a - ld a, $60 - ld [$d804], a - ld hl, $d62e - call Func_e4a - jr nc, .asm_1d185 - ld c, $a - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch + ld a, [wd51c] + cp $1 + jr nz, .asm_1d1ae + ld hl, PikachuSaverAnimationDataRedStage + ld de, wPikachuSaverAnimationFrameCounter + call UpdateAnimation + ret nc + ld a, [wPikachuSaverAnimationFrameIndex] + cp $1 + jr nz, .asm_1d18c + xor a + ld [wd85d], a + call Func_310a + rst AdvanceFrame + ld a, $1 + callba PlayPikachuSoundClip + ld a, $1 + ld [wd85d], a + ld a, $ff + ld [wd803], a + ld a, $60 + ld [wd804], a + ld hl, wd62e + call Func_e4a + jr nc, .asm_1d185 + ld c, $a + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch .asm_1d185 - ld de, $1610 - call PlaySoundEffect - ret + lb de, $16, $10 + call PlaySoundEffect + ret + .asm_1d18c - ld a, [wPikachuSaverAnimationFrameIndex] - cp $11 - ret nz - ld a, $fc - ld [wBallYVelocity + 1], a - ld a, $1 - ld [$d549], a - ld bc, $34ca - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - xor a - ld [$d51c], a - ret + ld a, [wPikachuSaverAnimationFrameIndex] + cp $11 + ret nz + ld a, $fc + ld [wBallYVelocity + 1], a + ld a, $1 + ld [wd549], a + ld bc, FiveThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + xor a + ld [wd51c], a + ret + .asm_1d1ae - cp $2 - jr nz, .asm_1d1c7 - ld hl, PikachuSaverAnimation2DataRedStage - ld de, wPikachuSaverAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [wPikachuSaverAnimationFrameIndex] - cp $1 - ret nz - xor a - ld [$d51c], a - ret + cp $2 + jr nz, .asm_1d1c7 + ld hl, PikachuSaverAnimation2DataRedStage + ld de, wPikachuSaverAnimationFrameCounter + call UpdateAnimation + ret nc + ld a, [wPikachuSaverAnimationFrameIndex] + cp $1 + ret nz + xor a + ld [wd51c], a + ret + .asm_1d1c7 - ld a, [$ffb3] - swap a - and $1 - ld [wPikachuSaverAnimationFrame], a - ret + ld a, [hNumFramesDropped] + swap a + and $1 + ld [wPikachuSaverAnimationFrame], a + ret PikachuSaverAnimationDataRedStage: ; 0x1d1d1 ; Each entry is [duration][OAM id] - db $0C, $02 - db $05, $03 - db $05, $02 - db $05, $04 - db $05, $05 - db $05, $02 - db $06, $06 - db $06, $07 - db $06, $08 - db $06, $02 - db $06, $05 - db $06, $08 - db $06, $07 - db $06, $02 - db $06, $08 - db $06, $07 - db $06, $02 - db $01, $00 - db $00 + db $0C, $02 + db $05, $03 + db $05, $02 + db $05, $04 + db $05, $05 + db $05, $02 + db $06, $06 + db $06, $07 + db $06, $08 + db $06, $02 + db $06, $05 + db $06, $08 + db $06, $07 + db $06, $02 + db $06, $08 + db $06, $07 + db $06, $02 + db $01, $00 + db $00 PikachuSaverAnimation2DataRedStage: ; 0x1d1f6 ; Each entry is [duration][OAM id] - db $0C, $02 - db $01, $00 - db $00 + db $0C, $02 + db $01, $00 + db $00 Func_1d1fb: ; 0x1d1fb - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed2 - jr z, .asm_1d209 - ld hl, $d518 - ld [hl], $0 - ret + ld hl, wKeyConfigLeftFlipper + call IsKeyPressed2 + jr z, .asm_1d209 + ld hl, wd518 + ld [hl], $0 + ret + .asm_1d209 - ld hl, wKeyConfigRightFlipper - call IsKeyPressed2 - ret z - ld hl, $d518 - ld [hl], $1 - ret + ld hl, wKeyConfigRightFlipper + call IsKeyPressed2 + ret z + ld hl, wd518 + ld [hl], $1 + ret Func_1d216: ; 0x1d216 - ld a, [$d630] - and a - jr z, .asm_1d253 - xor a - ld [$d630], a - ld bc, $34d0 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld de, $0005 - call PlaySoundEffect - ld hl, $5312 ; todo - ld de, $d632 - call CopyHLToDE - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallXPos], a - ld [wBallYPos], a - xor a - ld [$d549], a + ld a, [wd630] + and a + jr z, .asm_1d253 + xor a + ld [wd630], a + ld bc, TenThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + lb de, $00, $05 + call PlaySoundEffect + ld hl, Data_1d312 + ld de, wd632 + call CopyHLToDE + xor a + ld [wBallXVelocity], a + ld [wBallXVelocity + 1], a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + ld [wBallXPos], a + ld [wBallYPos], a + xor a + ld [wd549], a .asm_1d253 - ld hl, $5312 ; todo - ld de, $d632 - call UpdateAnimation - push af - ld a, [$d632] - and a - jr nz, .asm_1d271 - ld a, $19 - ld [$d632], a - xor a - ld [$d633], a - ld a, $6 - ld [$d634], a + ld hl, Data_1d312 + ld de, wd632 + call UpdateAnimation + push af + ld a, [wd632] + and a + jr nz, .asm_1d271 + ld a, $19 + ld [wd632], a + xor a + ld [wd633], a + ld a, $6 + ld [wd634], a .asm_1d271 - pop af - ret nc - ld a, [$d634] - cp $1 - jr nz, .asm_1d2b6 - xor a - ld [$d548], a - ld a, [wLeftAlleyCount] - cp $3 - jr nz, .asm_1d299 - ld [$ff8a], a - ld a, Bank(Func_10ab3) - ld hl, Func_10ab3 - call BankSwitch - ld a, [$d643] - and a - ret z - ld a, $1 - ld [$d642], a + pop af + ret nc + ld a, [wd634] + cp $1 + jr nz, .asm_1d2b6 + xor a + ld [wd548], a + ld a, [wLeftAlleyCount] + cp $3 + jr nz, .asm_1d299 + callba Func_10ab3 + ld a, [wd643] + and a + ret z + ld a, $1 + ld [wd642], a .asm_1d299 - ld hl, $d63a - call Func_e4a - ld hl, $d62a - call Func_e4a - ret nc - ld c, $19 - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch - ret + ld hl, wd63a + call Func_e4a + ld hl, wd62a + call Func_e4a + ret nc + ld c, $19 + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch + ret + .asm_1d2b6 - ld a, [$d634] - cp $4 - jr nz, .asm_1d2c3 - ld a, $1 - ld [$d548], a - ret + ld a, [wd634] + cp $4 + jr nz, .asm_1d2c3 + ld a, $1 + ld [wd548], a + ret + .asm_1d2c3 - ld a, [$d634] - cp $5 - ret nz - ld a, $1 - ld [$d549], a - ld a, $b0 - ld [wBallXVelocity], a - ld a, $0 - ld [wBallXVelocity + 1], a - xor a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld de, $0006 - call PlaySoundEffect - ld a, [$d642] - cp $0 - jr nz, .asm_1d2f8 - ld a, $f - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch + ld a, [wd634] + cp $5 + ret nz + ld a, $1 + ld [wd549], a + ld a, $b0 + ld [wBallXVelocity], a + ld a, $0 + ld [wBallXVelocity + 1], a + xor a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + lb de, $00, $06 + call PlaySoundEffect + ld a, [wd642] + cp $0 + jr nz, .asm_1d2f8 + ld a, $f + callba Func_10000 .asm_1d2f8 - xor a - ld [$d642], a - ld [$d64c], a - ld [$d64d], a - ld a, $1 - ld [$d641], a - ld a, $2 ; down direction - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [$d640], a - ret - -INCBIN "baserom.gbc",$1d312,$1d32d - $1d312 + xor a + ld [wd642], a + ld [wd64c], a + ld [wd64d], a + ld a, $1 + ld [wd641], a + ld a, $2 ; down direction + ld [wBlueStageForceFieldDirection], a + ld a, $1 + ld [wd640], a + ret + +Data_1d312: + dr $1d312, $1d32d HandleEnteringCloyster: ; 0x1d32d - ld a, [$d635] - and a - jr z, .asm_1d36a - xor a - ld [$d635], a - ld bc, $34d0 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld de, $0005 - call PlaySoundEffect - ld hl, $541d - ld de, $d637 - call CopyHLToDE - xor a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallXPos], a - ld [wBallYPos], a - xor a - ld [$d549], a + ld a, [wd635] + and a + jr z, .asm_1d36a + xor a + ld [wd635], a + ld bc, TenThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + lb de, $00, $05 + call PlaySoundEffect + ld hl, Data_1d41d + ld de, wd637 + call CopyHLToDE + xor a + ld [wBallXVelocity], a + ld [wBallXVelocity + 1], a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + ld [wBallXPos], a + ld [wBallYPos], a + xor a + ld [wd549], a .asm_1d36a - ld hl, $541d - ld de, $d637 - call UpdateAnimation - push af - ld a, [$d637] - and a - jr nz, .asm_1d388 - ld a, $19 - ld [$d637], a - xor a - ld [$d638], a - ld a, $6 - ld [$d639], a + ld hl, Data_1d41d + ld de, wd637 + call UpdateAnimation + push af + ld a, [wd637] + and a + jr nz, .asm_1d388 + ld a, $19 + ld [wd637], a + xor a + ld [wd638], a + ld a, $6 + ld [wd639], a .asm_1d388 - pop af - ret nc - ld a, [$d639] - cp $1 - jr nz, .asm_1d3cb - xor a - ld [$d548], a - ld a, [wRightAlleyCount] - cp $2 - jr c, .noCatchEmMode - ld a, $8 - jr nz, .asm_1d3a1 - xor a + pop af + ret nc + ld a, [wd639] + cp $1 + jr nz, .asm_1d3cb + xor a + ld [wd548], a + ld a, [wRightAlleyCount] + cp $2 + jr c, .noCatchEmMode + ld a, $8 + jr nz, .asm_1d3a1 + xor a .asm_1d3a1 - ld [wRareMonsFlag], a - ld [$ff8a], a - ld a, Bank(StartCatchEmMode) - ld hl, StartCatchEmMode - call BankSwitch + ld [wRareMonsFlag], a + callba StartCatchEmMode .noCatchEmMode - ld hl, $d63b - call Func_e4a - ld hl, $d62a - call Func_e4a - ret nc - ld c, $19 - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch - ret + ld hl, wd63b + call Func_e4a + ld hl, wd62a + call Func_e4a + ret nc + ld c, $19 + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch + ret + .asm_1d3cb - ld a, [$d639] - cp $4 - jr nz, .asm_1d3d8 - ld a, $1 - ld [$d548], a - ret + ld a, [wd639] + cp $4 + jr nz, .asm_1d3d8 + ld a, $1 + ld [wd548], a + ret + .asm_1d3d8 - ld a, [$d639] - cp $5 - ret nz - ld a, $1 - ld [$d549], a - ld a, $4f - ld [wBallXVelocity], a - ld a, $ff - ld [wBallXVelocity + 1], a - xor a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld de, $0006 - call PlaySoundEffect - ld a, $e - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - xor a - ld [$d64c], a - ld [$d64d], a - ld a, $1 - ld [$d641], a - ld a, $2 ; down direction - ld [wBlueStageForceFieldDirection], a - ld a, $1 - ld [$d640], a - ret - -INCBIN "baserom.gbc",$1d41d,$1d438 - $1d41d + ld a, [wd639] + cp $5 + ret nz + ld a, $1 + ld [wd549], a + ld a, $4f + ld [wBallXVelocity], a + ld a, $ff + ld [wBallXVelocity + 1], a + xor a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + lb de, $00, $06 + call PlaySoundEffect + ld a, $e + callba Func_10000 + xor a + ld [wd64c], a + ld [wd64d], a + ld a, $1 + ld [wd641], a + ld a, $2 ; down direction + ld [wBlueStageForceFieldDirection], a + ld a, $1 + ld [wd640], a + ret + +Data_1d41d: + dr $1d41d, $1d438 Func_1d438: ; 0x1d438 - call Func_1d692 - ld a, [$d60a] - and a - jp z, Func_1d51b - xor a - ld [$d60a], a - ld de, $000d - call PlaySoundEffect - ld a, [$d60b] - sub $f - jr nz, .asm_1d48e - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1d45c - ld a, $1f - jr .asm_1d45e + call Func_1d692 + ld a, [wd60a] + and a + jp z, Func_1d51b + xor a + ld [wd60a], a + lb de, $00, $0d + call PlaySoundEffect + ld a, [wd60b] + sub $f + jr nz, .asm_1d48e + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_1d45c + ld a, $1f + jr .asm_1d45e + .asm_1d45c - ld a, $29 + ld a, $29 .asm_1d45e - call Func_1d5f2 - ld a, $3c - ld [$d647], a - ld a, $9 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, [$d610] - cp $3 - jp nz, asm_1d4fa - ld a, $1 - ld [$d610], a - ld a, $3 - ld [$d611], a - ld a, [$d60c] - set 7, a - ld [$d60c], a - jr asm_1d4fa + call Func_1d5f2 + ld a, $3c + ld [wd647], a + ld a, $9 + callba Func_10000 + ld a, [wd610] + cp $3 + jp nz, asm_1d4fa + ld a, $1 + ld [wd610], a + ld a, $3 + ld [wd611], a + ld a, [wd60c] + set 7, a + ld [wd60c], a + jr asm_1d4fa + .asm_1d48e - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1d497 - ld a, $21 - jr .asm_1d499 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_1d497 + ld a, $21 + jr .asm_1d499 + .asm_1d497 - ld a, $2b + ld a, $2b .asm_1d499 - call Func_1d5f2 - ld a, $1e - ld [$d647], a - ld a, $a - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, [$d611] - cp $3 - jr nz, asm_1d4fa - ld a, $1 - ld [$d610], a - ld a, $1 - ld [$d611], a - ld a, $80 - ld [$d612], a - ld a, [$d60d] - set 7, a - ld [$d60d], a - ld a, [$d482] - inc a - cp $64 - jr c, .asm_1d4d5 - ld a, $63 + call Func_1d5f2 + ld a, $1e + ld [wd647], a + ld a, $a + callba Func_10000 + ld a, [wd611] + cp $3 + jr nz, asm_1d4fa + ld a, $1 + ld [wd610], a + ld a, $1 + ld [wd611], a + ld a, $80 + ld [wd612], a + ld a, [wd60d] + set 7, a + ld [wd60d], a + ld a, [wd482] + inc a + cp 100 + jr c, .asm_1d4d5 + ld a, 99 .asm_1d4d5 - ld [$d482], a - jr nc, .asm_1d4e9 - ld c, $19 - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch + ld [wd482], a + jr nc, .asm_1d4e9 + ld c, $19 + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch .asm_1d4e9 - ld a, [$d60c] - ld [$d614], a - ld a, [$d60d] - ld [$d615], a - ld a, $1 - ld [$d613], a + ld a, [wd60c] + ld [wd614], a + ld a, [wd60d] + ld [wd615], a + ld a, $1 + ld [wd613], a asm_1d4fa: ; 0x1d4fa - ld bc, $34ac - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld a, [$d60c] - call Func_1d5f2 - ld a, [$d60d] - add $14 - call Func_1d5f2 - ld a, $3c - ld [$d647], a - ret + ld bc, TenPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld a, [wd60c] + call Func_1d5f2 + ld a, [wd60d] + add $14 + call Func_1d5f2 + ld a, $3c + ld [wd647], a + ret Func_1d51b: ; 0x1d51b - call Func_1d5bf - ld a, [$d612] - and a - jr z, .asm_1d559 - dec a - ld [$d612], a - cp $70 - jr nz, .asm_1d538 - ld a, $2 - ld [$d610], a - ld a, $2 - ld [$d611], a - jr .asm_1d559 + call Func_1d5bf + ld a, [wd612] + and a + jr z, .asm_1d559 + dec a + ld [wd612], a + cp $70 + jr nz, .asm_1d538 + ld a, $2 + ld [wd610], a + ld a, $2 + ld [wd611], a + jr .asm_1d559 + .asm_1d538 - and a - jr nz, .asm_1d559 - ld a, $3 - ld [$d610], a - xor a - ld [$d611], a - ld a, [$d482] - call Func_1d65f - ld a, [$d60c] - call Func_1d5f2 - ld a, [$d60d] - add $14 - call Func_1d5f2 - ret + and a + jr nz, .asm_1d559 + ld a, $3 + ld [wd610], a + xor a + ld [wd611], a + ld a, [wd482] + call Func_1d65f + ld a, [wd60c] + call Func_1d5f2 + ld a, [wd60d] + add $14 + call Func_1d5f2 + ret + .asm_1d559 - ld a, [$d610] - cp $2 - jr c, .asm_1d58b - cp $3 - ld a, [$ffb3] - jr c, .asm_1d56a - srl a - srl a + ld a, [wd610] + cp $2 + jr c, .asm_1d58b + cp $3 + ld a, [hNumFramesDropped] + jr c, .asm_1d56a + srl a + srl a .asm_1d56a - ld b, a - and $3 - jr nz, .asm_1d58b - bit 3, b - jr nz, .asm_1d580 - ld a, [$d60c] - res 7, a - ld [$d60c], a - call Func_1d5f2 - jr .asm_1d58b + ld b, a + and $3 + jr nz, .asm_1d58b + bit 3, b + jr nz, .asm_1d580 + ld a, [wd60c] + res 7, a + ld [wd60c], a + call Func_1d5f2 + jr .asm_1d58b + .asm_1d580 - ld a, [$d60c] - set 7, a - ld [$d60c], a - call Func_1d5f2 + ld a, [wd60c] + set 7, a + ld [wd60c], a + call Func_1d5f2 .asm_1d58b - ld a, [$d611] - cp $2 - ret c - cp $3 - ld a, [$ffb3] - jr c, .asm_1d59b - srl a - srl a + ld a, [wd611] + cp $2 + ret c + cp $3 + ld a, [hNumFramesDropped] + jr c, .asm_1d59b + srl a + srl a .asm_1d59b - ld b, a - and $3 - ret nz - bit 3, b - jr nz, .asm_1d5b1 - ld a, [$d60d] - res 7, a - ld [$d60d], a - add $14 - call Func_1d5f2 - ret + ld b, a + and $3 + ret nz + bit 3, b + jr nz, .asm_1d5b1 + ld a, [wd60d] + res 7, a + ld [wd60d], a + add $14 + call Func_1d5f2 + ret + .asm_1d5b1 - ld a, [$d60d] - set 7, a - ld [$d60d], a - add $14 - call Func_1d5f2 - ret + ld a, [wd60d] + set 7, a + ld [wd60d], a + add $14 + call Func_1d5f2 + ret Func_1d5bf: ; 0x1d5bf - ld a, [$d5ca] - and a - ret nz - ld a, [$d613] - and a - ret z - xor a - ld [$d613], a - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $2958 - call Func_32aa - ld hl, $c512 - ld a, [$d614] - and $7f - jr z, .asm_1d5e9 - add $30 - ld [hli], a + ld a, [wd5ca] + and a + ret nz + ld a, [wd613] + and a + ret z + xor a + ld [wd613], a + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, BonusMultiplierText + call LoadTextHeader + ld hl, wBottomMessageText + $12 + ld a, [wd614] + and $7f + jr z, .asm_1d5e9 + add $30 + ld [hli], a .asm_1d5e9 - ld a, [$d615] - res 7, a - add $30 - ld [hl], a - ret + ld a, [wd615] + res 7, a + add $30 + ld [hl], a + ret Func_1d5f2: ; 0x1d5f2 - push af - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1d5fd - pop af - call Func_1d602 - ret + push af + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_1d5fd + pop af + call Func_1d602 + ret + .asm_1d5fd - pop af - call Func_1d645 - ret + pop af + call Func_1d645 + ret Func_1d602: ; 0x1d602 - push af - res 7, a - ld hl, $d60e - cp $14 - jr c, .asm_1d611 - ld hl, $d60f - sub $a + push af + res 7, a + ld hl, wd60e + cp $14 + jr c, .asm_1d611 + ld hl, wd60f + sub $a .asm_1d611 - cp [hl] - jr z, .asm_1d626 - ld [hl], a - ld c, a - ld b, $0 - sla c - ld hl, $56be - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $7 - call Func_10aa + cp [hl] + jr z, .asm_1d626 + ld [hl], a + ld c, a + ld b, $0 + sla c + ld hl, Data_1d6be + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $7 + call Func_10aa .asm_1d626 - pop af - ld bc, $0000 - bit 7, a - jr z, .asm_1d632 - res 7, a - set 1, c + pop af + ld bc, $0000 + bit 7, a + jr z, .asm_1d632 + res 7, a + set 1, c .asm_1d632 - cp $14 - jr c, .asm_1d638 - set 2, c + cp $14 + jr c, .asm_1d638 + set 2, c .asm_1d638 - ld hl, $5946 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $7 - call Func_10aa - ret + ld hl, Data_1d946 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $7 + call Func_10aa + ret Func_1d645: ; 0x1d645 - bit 7, a - jr z, .asm_1d64d - res 7, a - add $a + bit 7, a + jr z, .asm_1d64d + res 7, a + add $a .asm_1d64d - ld c, a - ld b, $0 - sla c - ld hl, $597a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $7 - call Func_10aa - ret + ld c, a + ld b, $0 + sla c + ld hl, Data_1d97a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $7 + call Func_10aa + ret Func_1d65f: ; 0x1d65f - ld a, [$d482] - inc a - cp $64 - jr c, .asm_1d669 - ld a, $63 + ld a, [wd482] + inc a + cp $64 + jr c, .asm_1d669 + ld a, $63 .asm_1d669 - ld b, a - xor a - ld hl, $568b ; todo - ld c, $7 + ld b, a + xor a + ld hl, Data_1d68b + ld c, $7 .asm_1d670 - bit 0, b - jr z, .asm_1d676 - add [hl] - daa + bit 0, b + jr z, .asm_1d676 + add [hl] + daa .asm_1d676 - srl b - inc hl - dec c - jr nz, .asm_1d670 - push af - swap a - and $f - ld [$d60c], a - pop af - and $f - ld [$d60d], a - ret - -INCBIN "baserom.gbc",$1d68b,$1d692 - $1d68b + srl b + inc hl + dec c + jr nz, .asm_1d670 + push af + swap a + and $f + ld [wd60c], a + pop af + and $f + ld [wd60d], a + ret + +Data_1d68b: + dr $1d68b, $1d692 Func_1d692: ; 0x1d692 - ld a, [$d647] - cp $1 - jr z, .asm_1d69e - dec a - ld [$d647], a - ret + ld a, [wd647] + cp $1 + jr z, .asm_1d69e + dec a + ld [wd647], a + ret + .asm_1d69e - ld a, $0 - ld [$d647], a - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1d6b3 - ld a, $1e - call Func_1d5f2 - ld a, $20 - call Func_1d5f2 - ret + ld a, $0 + ld [wd647], a + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_1d6b3 + ld a, $1e + call Func_1d5f2 + ld a, $20 + call Func_1d5f2 + ret + .asm_1d6b3 - ld a, $2a - call Func_1d5f2 - ld a, $28 - call Func_1d5f2 - ret + ld a, $2a + call Func_1d5f2 + ld a, $28 + call Func_1d5f2 + ret + +Data_1d6be: + dr $1d6be, $1d946 -INCBIN "baserom.gbc",$1d6be,$1dbd2 - $1d6be +Data_1d946: + dr $1d946, $1d97a + +Data_1d97a: + dr $1d97a, $1dbd2 Func_1dbd2: ; 0x1dbd2 - ld a, [$d4ed] - and a - jp z, Func_1dc8e - cp $2 - jr z, .asm_1dc33 - xor a - ld [$d4ed], a - ld hl, wLeftMapMoveCounter - ld a, [hl] - cp $3 - jp z, Func_1dc8e - inc a - ld [hl], a - ld hl, $d4f7 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1dc06 - ld a, $54 - ld [$c7e3], a - ld a, $55 - ld [$c803], a + ld a, [wd4ed] + and a + jp z, Func_1dc8e + cp $2 + jr z, .asm_1dc33 + xor a + ld [wd4ed], a + ld hl, wLeftMapMoveCounter + ld a, [hl] + cp $3 + jp z, Func_1dc8e + inc a + ld [hl], a + ld hl, wd4f7 + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_1dc06 + ld a, $54 + ld [wc7e3], a + ld a, $55 + ld [wc803], a .asm_1dc06 - ld a, $1 - call Func_1de4b - ld a, [wLeftMapMoveCounter] - call Func_1de6f - ld a, [wLeftMapMoveCounter] - cp $3 - ld a, $7 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, $2 - ld [$d646], a - ld a, $78 - ld [wLeftMapMoveDiglettAnimationCounter], a - ld a, $14 - ld [wLeftMapMoveDiglettFrame], a - jr .asm_1dc8a + ld a, $1 + call Func_1de4b + ld a, [wLeftMapMoveCounter] + call Func_1de6f + ld a, [wLeftMapMoveCounter] + cp $3 + ld a, $7 + callba Func_10000 + ld a, $2 + ld [wd646], a + ld a, $78 + ld [wLeftMapMoveDiglettAnimationCounter], a + ld a, $14 + ld [wLeftMapMoveDiglettFrame], a + jr .asm_1dc8a + .asm_1dc33 - xor a - ld [$d4ed], a - ld hl, wRightMapMoveCounter - ld a, [hl] - cp $3 - jp z, Func_1dc8e - inc a - ld [hl], a - ld hl, $d4f9 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1dc5c - ld a, $52 - ld [$c7f0], a - ld a, $53 - ld [$c810], a + xor a + ld [wd4ed], a + ld hl, wRightMapMoveCounter + ld a, [hl] + cp $3 + jp z, Func_1dc8e + inc a + ld [hl], a + ld hl, wd4f9 + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_1dc5c + ld a, $52 + ld [wc7f0], a + ld a, $53 + ld [wc810], a .asm_1dc5c - ld a, $3 - call Func_1de4b - ld a, [wRightMapMoveCounter] - cp $3 - ld a, $8 - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, [wRightMapMoveCounter] - cp $3 - ccf - call z, Func_1ddf4 - ld a, $2 - ld [$d645], a - ld a, $28 - ld [wRightMapMoveDiglettAnimationCounter], a - ld a, $78 - ld [wRightMapMoveDiglettFrame], a + ld a, $3 + call Func_1de4b + ld a, [wRightMapMoveCounter] + cp $3 + ld a, $8 + callba Func_10000 + ld a, [wRightMapMoveCounter] + cp $3 + ccf + call z, Func_1ddf4 + ld a, $2 + ld [wd645], a + ld a, $28 + ld [wRightMapMoveDiglettAnimationCounter], a + ld a, $78 + ld [wRightMapMoveDiglettFrame], a .asm_1dc8a - call Func_1de22 - ret + call Func_1de22 + ret Func_1dc8e: ; 0x1dc8e - call Func_1dc95 - call Func_1dd2e - ret + call Func_1dc95 + call Func_1dd2e + ret Func_1dc95: ; 0x1dc95 - ld a, [$d646] - cp $0 - ret z - ld a, [wLeftMapMoveDiglettAnimationCounter] - and a - jr z, .asm_1dceb - dec a - ld [wLeftMapMoveDiglettAnimationCounter], a - ld a, [$d644] - and a - ret nz - ld a, [wLeftMapMoveDiglettFrame] - cp $1 - jr z, .asm_1dcb9 - cp $0 - ret z - dec a - ld [wLeftMapMoveDiglettFrame], a - ret + ld a, [wd646] + cp $0 + ret z + ld a, [wLeftMapMoveDiglettAnimationCounter] + and a + jr z, .asm_1dceb + dec a + ld [wLeftMapMoveDiglettAnimationCounter], a + ld a, [wd644] + and a + ret nz + ld a, [wLeftMapMoveDiglettFrame] + cp $1 + jr z, .asm_1dcb9 + cp $0 + ret z + dec a + ld [wLeftMapMoveDiglettFrame], a + ret + .asm_1dcb9 - ld a, [$d646] - cp $2 - ret nz - call Func_1130 - ret nz - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1dcd7 - ld a, [wLeftMapMoveCounter] - cp $0 - jr z, .asm_1dcd4 - ld b, $7 - add b - jr .asm_1dcd9 + ld a, [wd646] + cp $2 + ret nz + call Func_1130 + ret nz + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1dcd7 + ld a, [wLeftMapMoveCounter] + cp $0 + jr z, .asm_1dcd4 + ld b, $7 + add b + jr .asm_1dcd9 + .asm_1dcd4 - xor a - jr .asm_1dcd9 + xor a + jr .asm_1dcd9 + .asm_1dcd7 - ld a, $8 + ld a, $8 .asm_1dcd9 - call Func_1de6f - ld a, [wLeftMapMoveCounter] - cp $3 - ccf - call z, Func_1ddc7 - ld a, $1 - ld [$d646], a - ret + call Func_1de6f + ld a, [wLeftMapMoveCounter] + cp $3 + ccf + call z, Func_1ddc7 + ld a, $1 + ld [wd646], a + ret + .asm_1dceb - ld a, [$d646] - cp $1 - ret nz - ld a, [wLeftMapMoveDiglettAnimationCounter] - and a - ret nz - ld a, $0 - call Func_1de4b - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1dd0c - ld a, $5e - ld [$c7e3], a - ld a, $5f - ld [$c803], a + ld a, [wd646] + cp $1 + ret nz + ld a, [wLeftMapMoveDiglettAnimationCounter] + and a + ret nz + ld a, $0 + call Func_1de4b + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_1dd0c + ld a, $5e + ld [wc7e3], a + ld a, $5f + ld [wc803], a .asm_1dd0c - ld a, $0 - ld [$d646], a - ld a, [wLeftMapMoveCounter] - sub $3 - ret nz - ld a, [wLeftMapMoveCounter] - sub $3 - ld [wLeftMapMoveCounter], a - call Func_1de6f - ld a, $0 - call Func_1de4b - ld a, $0 - ld [$d646], a - ret - -INCBIN "baserom.gbc",$1dd2d,$1dd2e - $1dd2d + ld a, $0 + ld [wd646], a + ld a, [wLeftMapMoveCounter] + sub $3 + ret nz + ld a, [wLeftMapMoveCounter] + sub $3 + ld [wLeftMapMoveCounter], a + call Func_1de6f + ld a, $0 + call Func_1de4b + ld a, $0 + ld [wd646], a + ret + +; XXX + ret Func_1dd2e: ; 0x1dd2e - ld a, [$d645] - cp $0 - ret z - cp $1 - jr z, .asm_1dd53 - cp $3 - jr z, .asm_1dd69 - ld a, [wRightMapMoveDiglettAnimationCounter] - cp $0 - jr z, .asm_1dd48 - dec a - ld [wRightMapMoveDiglettAnimationCounter], a - ret + ld a, [wd645] + cp $0 + ret z + cp $1 + jr z, .asm_1dd53 + cp $3 + jr z, .asm_1dd69 + ld a, [wRightMapMoveDiglettAnimationCounter] + cp $0 + jr z, .asm_1dd48 + dec a + ld [wRightMapMoveDiglettAnimationCounter], a + ret + .asm_1dd48 - ld a, $2 - call Func_1de4b - ld a, $1 - ld [$d645], a - ret + ld a, $2 + call Func_1de4b + ld a, $1 + ld [wd645], a + ret + .asm_1dd53 - ld a, [wRightMapMoveCounter] - add $4 - call Func_1de6f - ld a, [wRightMapMoveCounter] - add $3 - call Func_1de4b - ld a, $3 - ld [$d645], a - ret + ld a, [wRightMapMoveCounter] + add $4 + call Func_1de6f + ld a, [wRightMapMoveCounter] + add $3 + call Func_1de4b + ld a, $3 + ld [wd645], a + ret + .asm_1dd69 - ld a, [wRightMapMoveDiglettFrame] - and a - jr z, .asm_1dd74 - dec a - ld [wRightMapMoveDiglettFrame], a - ret + ld a, [wRightMapMoveDiglettFrame] + and a + jr z, .asm_1dd74 + dec a + ld [wRightMapMoveDiglettFrame], a + ret + .asm_1dd74 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1dd89 - ld a, [wRightMapMoveCounter] - cp $0 - jr z, .asm_1dd85 - ld b, $a - add b - jr .asm_1dd8b + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1dd89 + ld a, [wRightMapMoveCounter] + cp $0 + jr z, .asm_1dd85 + ld b, $a + add b + jr .asm_1dd8b + .asm_1dd85 - ld a, $4 - jr .asm_1dd8b + ld a, $4 + jr .asm_1dd8b + .asm_1dd89 - ld a, $9 + ld a, $9 .asm_1dd8b - call Func_1de6f - ld a, $2 - call Func_1de4b - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_1dda9 - ld a, $24 - ld [$c7f0], a - ld a, $25 - ld [$c810], a - ld a, $0 - ld [$d645], a + call Func_1de6f + ld a, $2 + call Func_1de4b + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_1dda9 + ld a, $24 + ld [wc7f0], a + ld a, $25 + ld [wc810], a + ld a, $0 + ld [wd645], a .asm_1dda9 - ld a, [wRightMapMoveCounter] - sub $3 - ret nz - ld a, [wRightMapMoveCounter] - sub $3 - ld [wRightMapMoveCounter], a - ld a, $4 - call Func_1de6f - ld a, $2 - call Func_1de4b - ld a, $0 - ld [$d645], a - ret + ld a, [wRightMapMoveCounter] + sub $3 + ret nz + ld a, [wRightMapMoveCounter] + sub $3 + ld [wRightMapMoveCounter], a + ld a, $4 + call Func_1de6f + ld a, $2 + call Func_1de4b + ld a, $0 + ld [wd645], a + ret Func_1ddc7: ; 0x1ddc7 - ld hl, $d63d - call Func_e4a - ld hl, $d62b - call Func_e4a - jr nc, .asm_1dde4 - ld c, $a - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch + ld hl, wd63d + call Func_e4a + ld hl, wd62b + call Func_e4a + jr nc, .asm_1dde4 + ld c, $a + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch .asm_1dde4 - xor a - ld [$d55a], a - ld [$ff8a], a - ld a, Bank(StartMapMoveMode) - ld hl, StartMapMoveMode - call BankSwitch - scf - ret + xor a + ld [wd55a], a + callba StartMapMoveMode + scf + ret Func_1ddf4: ; 0x1ddf4 - ld hl, $d63c - call Func_e4a - ld hl, $d62b - call Func_e4a - jr nc, .asm_1de11 - ld c, $a - call Func_e55 - ld [$ff8a], a - ld a, Bank(Func_30164) - ld hl, Func_30164 - call z, BankSwitch + ld hl, wd63c + call Func_e4a + ld hl, wd62b + call Func_e4a + jr nc, .asm_1de11 + ld c, $a + call Func_e55 + ld [hFarCallTempA], a + ld a, Bank(Func_30164) + ld hl, Func_30164 + call z, BankSwitch .asm_1de11 - ld a, $1 - ld [$d55a], a - ld [$ff8a], a - ld a, Bank(StartMapMoveMode) - ld hl, StartMapMoveMode - call BankSwitch - scf - ret + ld a, $1 + ld [wd55a], a + callba StartMapMoveMode + scf + ret Func_1de22: ; 0x1de22 - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, $55 - ld [$d803], a - ld a, $4 - ld [$d804], a - ld a, $2 - ld [$d7eb], a - ld bc, $34be - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld de, $000f - call PlaySoundEffect - ret + ld a, [wCurrentStage] + bit 0, a + ret z + ld a, $55 + ld [wd803], a + ld a, $4 + ld [wd804], a + ld a, $2 + ld [wd7eb], a + ld bc, FiveHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + lb de, $00, $0f + call PlaySoundEffect + ret Func_1de4b: ; 0x1de4b - ld b, a - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, b - sla a - ld c, a - ld b, $0 - ld hl, $5f66 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1de63 - ld hl, $600f + ld b, a + ld a, [wCurrentStage] + bit 0, a + ret z + ld a, b + sla a + ld c, a + ld b, $0 + ld hl, Data_1df66 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1de63 + ld hl, Data_1e00f .asm_1de63 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $7 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, $7 + call Func_10aa + ret Func_1de6f: ; 0x1de6f - ld b, a - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, b - sla a - ld c, a - ld b, $0 - ld hl, $60a4 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1de87 - ld hl, $61d6 + ld b, a + ld a, [wCurrentStage] + bit 0, a + ret z + ld a, b + sla a + ld c, a + ld b, $0 + ld hl, Data_1e0a4 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1de87 + ld hl, Data_1e1d6 .asm_1de87 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $7 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, $7 + call Func_10aa + ret Func_1de93: ; 0x1de93 - ld hl, $d4f7 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1ded2 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1ded2 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wLeftMapMoveCounter] - and a - jr z, .asm_1ded2 - cp $3 - jr z, .asm_1ded2 - dec a - ld [wLeftMapMoveCounter], a - call Func_1de6f - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1decd - ld a, [wLeftMapMoveCounter] - cp $0 - jr z, .asm_1deca - ld b, $7 - add b - jr .asm_1decf + ld hl, wd4f7 + dec [hl] + ld a, [hli] + cp $ff + jr nz, .asm_1ded2 + dec [hl] + ld a, [hld] + cp $ff + jr nz, .asm_1ded2 + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wLeftMapMoveCounter] + and a + jr z, .asm_1ded2 + cp $3 + jr z, .asm_1ded2 + dec a + ld [wLeftMapMoveCounter], a + call Func_1de6f + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1decd + ld a, [wLeftMapMoveCounter] + cp $0 + jr z, .asm_1deca + ld b, $7 + add b + jr .asm_1decf + .asm_1deca - xor a - jr .asm_1decf + xor a + jr .asm_1decf + .asm_1decd - ld a, $8 + ld a, $8 .asm_1decf - call Func_1de6f + call Func_1de6f .asm_1ded2 - ld hl, $d4f9 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1df14 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1df14 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wRightMapMoveCounter] - and a - jr z, .asm_1df14 - cp $3 - jr z, .asm_1df14 - dec a - ld [wRightMapMoveCounter], a - add $4 - call Func_1de6f - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1df0f - ld a, [wRightMapMoveCounter] - cp $0 - jr z, .asm_1df0b - ld b, $a - add b - jr .asm_1df11 + ld hl, wd4f9 + dec [hl] + ld a, [hli] + cp $ff + jr nz, .asm_1df14 + dec [hl] + ld a, [hld] + cp $ff + jr nz, .asm_1df14 + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wRightMapMoveCounter] + and a + jr z, .asm_1df14 + cp $3 + jr z, .asm_1df14 + dec a + ld [wRightMapMoveCounter], a + add $4 + call Func_1de6f + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1df0f + ld a, [wRightMapMoveCounter] + cp $0 + jr z, .asm_1df0b + ld b, $a + add b + jr .asm_1df11 + .asm_1df0b - ld a, $4 - jr .asm_1df11 + ld a, $4 + jr .asm_1df11 + .asm_1df0f - ld a, $9 + ld a, $9 .asm_1df11 - call Func_1de6f + call Func_1de6f .asm_1df14 - ret + ret Func_1df15: ; 0x1df15 - ld b, $0 - ld hl, $d4f8 - ld a, [hld] - or [hl] - jr z, .asm_1df3e - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1df3e - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1df3e - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wLeftMapMoveCounter] - and a - jr z, .asm_1df3e - cp $3 - jr z, .asm_1df3e - dec a - ld [wLeftMapMoveCounter], a + ld b, $0 + ld hl, wd4f8 + ld a, [hld] + or [hl] + jr z, .asm_1df3e + dec [hl] + ld a, [hli] + cp $ff + jr nz, .asm_1df3e + dec [hl] + ld a, [hld] + cp $ff + jr nz, .asm_1df3e + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wLeftMapMoveCounter] + and a + jr z, .asm_1df3e + cp $3 + jr z, .asm_1df3e + dec a + ld [wLeftMapMoveCounter], a .asm_1df3e - ld hl, $d4fa - ld a, [hld] - or [hl] - jr z, .asm_1df65 - dec [hl] - ld a, [hli] - cp $ff - jr nz, .asm_1df65 - dec [hl] - ld a, [hld] - cp $ff - jr nz, .asm_1df65 - ld a, $e0 - ld [hli], a - ld a, $1 - ld [hl], a - ld a, [wRightMapMoveCounter] - and a - jr z, .asm_1df65 - cp $3 - jr z, .asm_1df65 - dec a - ld [wRightMapMoveCounter], a + ld hl, wd4fa + ld a, [hld] + or [hl] + jr z, .asm_1df65 + dec [hl] + ld a, [hli] + cp $ff + jr nz, .asm_1df65 + dec [hl] + ld a, [hld] + cp $ff + jr nz, .asm_1df65 + ld a, $e0 + ld [hli], a + ld a, $1 + ld [hl], a + ld a, [wRightMapMoveCounter] + and a + jr z, .asm_1df65 + cp $3 + jr z, .asm_1df65 + dec a + ld [wRightMapMoveCounter], a .asm_1df65 - ret + ret + +Data_1df66: + dr $1df66, $1e00f + +Data_1e00f: + dr $1e00f, $1e0a4 -INCBIN "baserom.gbc",$1df66,$1e356 - $1df66 +Data_1e0a4: + dr $1e0a4, $1e1d6 + +Data_1e1d6: + dr $1e1d6, $1e356 Func_1e356: ; 0x1e356 - ld a, [$d5f7] - and a - jp z, Func_1e471 - xor a - ld [$d5f7], a - ld a, [wStageCollisionState] - cp $0 - jr nz, .asm_1e386 - ld a, $1 - ld [wStageCollisionState], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - ld a, $1 - ld [$d580], a - ld [$ff8a], a - ld a, Bank(Func_1404a) - ld hl, Func_1404a - call BankSwitch + ld a, [wd5f7] + and a + jp z, Func_1e471 + xor a + ld [wd5f7], a + ld a, [wStageCollisionState] + cp $0 + jr nz, .asm_1e386 + ld a, $1 + ld [wStageCollisionState], a + callba LoadStageCollisionAttributes + ld a, $1 + ld [wd580], a + callba Func_1404a .asm_1e386 - ld a, [wStageCollisionState] - bit 0, a - jp z, Func_1e471 - ld a, [$d5fc] - and a - jp nz, Func_1e471 - xor a - ld [wRightAlleyTrigger], a - ld [wLeftAlleyTrigger], a - ld [wSecondaryLeftAlleyTrigger], a - ld a, $b - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - ld a, [$d5f8] - sub $13 - ld c, a - ld b, $0 - ld hl, $d5f9 - add hl, bc - ld a, [hl] - ld [hl], $1 - and a - jr z, .asm_1e3bf - ld [hl], $0 + ld a, [wStageCollisionState] + bit 0, a + jp z, Func_1e471 + ld a, [wd5fc] + and a + jp nz, Func_1e471 + xor a + ld [wRightAlleyTrigger], a + ld [wLeftAlleyTrigger], a + ld [wSecondaryLeftAlleyTrigger], a + ld a, $b + callba Func_10000 + ld a, [wd5f8] + sub $13 + ld c, a + ld b, $0 + ld hl, wd5f9 + add hl, bc + ld a, [hl] + ld [hl], $1 + and a + jr z, .asm_1e3bf + ld [hl], $0 .asm_1e3bf - ld bc, $34b2 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld hl, $d5f9 - ld a, [hli] - and [hl] - inc hl - and [hl] - jr nz, .asm_1e3de - ld de, $0009 - call PlaySoundEffect - jp asm_1e475 + ld bc, OneHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld hl, wd5f9 + ld a, [hli] + and [hl] + inc hl + and [hl] + jr nz, .asm_1e3de + lb de, $00, $09 + call PlaySoundEffect + jp asm_1e475 + .asm_1e3de - ld a, $1 - ld [$d5fc], a - ld a, $80 - ld [$d5fd], a - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a - ld bc, $34b8 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld a, [wBallType] - cp MASTER_BALL - jr z, .masterBall - ld de, $063a - call PlaySoundEffect - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $2907 - call Func_32aa - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeProgression2BlueField - add hl, bc - ld a, [hl] - ld [wBallType], a - add $30 - ld [$c512], a - jr .asm_1e465 + ld a, $1 + ld [wd5fc], a + ld a, $80 + ld [wd5fd], a + ; load approximately 1 minute of frames into wBallTypeCounter + ld a, $10 + ld [wBallTypeCounter], a + ld a, $e + ld [wBallTypeCounter + 1], a + ld bc, FourHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld a, [wBallType] + cp MASTER_BALL + jr z, .masterBall + lb de, $06, $3a + call PlaySoundEffect + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, FieldMultiplierText + call LoadTextHeader + ld a, [wBallType] + ld c, a + ld b, $0 + ld hl, BallTypeProgression2BlueField + add hl, bc + ld a, [hl] + ld [wBallType], a + add $30 + ld [wBottomMessageText + $12], a + jr .asm_1e465 + .masterBall - ld de, $0f4d - call PlaySoundEffect - ld bc, $34e8 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld bc, $0100 - ld de, $0000 - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5d4 - ld de, $2948 - call Func_32cc - pop de - pop bc - ld hl, $d5cc - ld de, $2922 - call Func_32aa + lb de, $0f, $4d + call PlaySoundEffect + ld bc, OneMillionPoints + callba AddBigBCD6FromQueue + ld bc, $0100 + ld de, $0000 + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5d4 + ld de, DigitsText1to8 + call Func_32cc + pop de + pop bc + ld hl, wd5cc + ld de, FieldMultiplierSpecialBonusText + call LoadTextHeader .asm_1e465 - ld [$ff8a], a - ld a, Bank(Func_155a7) - ld hl, Func_155a7 - call BankSwitch - jr asm_1e475 + callba Func_155a7 + jr asm_1e475 Func_1e471: ; 0x1e471 - call Func_1e4b8 - ret z + call Func_1e4b8 + ret z asm_1e475: ; 0x1e475 - ld hl, $d5fb - ld b, $3 + ld hl, wd5fb + ld b, $3 .asm_1e47a - ld a, [hld] - push hl - call Func_1e484 - pop hl - dec b - jr nz, .asm_1e47a - ret + ld a, [hld] + push hl + call Func_1e484 + pop hl + dec b + jr nz, .asm_1e47a + ret Func_1e484: ; 0x1e484 - and a - jr z, .asm_1e496 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1e491 - ld hl, $6520 - jr .asm_1e4a3 + and a + jr z, .asm_1e496 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_1e491 + ld hl, Data_1e520 + jr .asm_1e4a3 + .asm_1e491 - ld hl, $6556 - jr .asm_1e4a3 + ld hl, Data_1e556 + jr .asm_1e4a3 + .asm_1e496 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1e4a0 - ld hl, $6526 - jr .asm_1e4a3 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_1e4a0 + ld hl, Data_1e526 + jr .asm_1e4a3 + .asm_1e4a0 - ld hl, $655c + ld hl, Data_1e55c .asm_1e4a3 - push bc - dec b - sla b - ld e, b - ld d, $0 - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - ld a, $7 - ld de, LoadTileLists - call Func_10c5 - pop bc - ret + push bc + dec b + sla b + ld e, b + ld d, $0 + add hl, de + ld c, [hl] + inc hl + ld b, [hl] + ld a, $7 + ld de, LoadTileLists + call Func_10c5 + pop bc + ret Func_1e4b8: ; 0x1e4b8 - ld a, [$d5fc] - and a - jr z, .asm_1e4e5 - ld a, [$d5fd] - dec a - ld [$d5fd], a - jr nz, .asm_1e4ca - ld [$d5fc], a + ld a, [wd5fc] + and a + jr z, .asm_1e4e5 + ld a, [wd5fd] + dec a + ld [wd5fd], a + jr nz, .asm_1e4ca + ld [wd5fc], a .asm_1e4ca - and $7 - jr nz, .asm_1e4e3 - ld a, [$d5fd] - srl a - srl a - srl a - and $1 - ld hl, $d5f9 - ld [hli], a - ld [hli], a - ld [hl], a - ld a, $1 - and a - ret + and $7 + jr nz, .asm_1e4e3 + ld a, [wd5fd] + srl a + srl a + srl a + and $1 + ld hl, wd5f9 + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $1 + and a + ret + .asm_1e4e3 - xor a - ret + xor a + ret + .asm_1e4e5 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed - jr z, .leftFlipperKeyIsPressed - ; left flipper key is pressed - ld hl, $d5f9 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld e, a - ld a, c - ld [hld], a - ld a, e - ld [hld], a - ld a, b - ld [hl], a - ret + ld hl, wKeyConfigLeftFlipper + call IsKeyPressed + jr z, .leftFlipperKeyIsPressed + ; left flipper key is pressed + ld hl, wd5f9 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hl] + ld e, a + ld a, c + ld [hld], a + ld a, e + ld [hld], a + ld a, b + ld [hl], a + ret + .leftFlipperKeyIsPressed - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - ret z - ; right flipper key is pressed - ld hl, $d5f9 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hl] - ld e, a - ld a, b - ld [hld], a - ld a, c - ld [hld], a - ld a, e - ld [hl], a - ret + ld hl, wKeyConfigRightFlipper + call IsKeyPressed + ret z + ; right flipper key is pressed + ld hl, wd5f9 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hl] + ld e, a + ld a, b + ld [hld], a + ld a, c + ld [hld], a + ld a, e + ld [hl], a + ret BallTypeProgression2BlueField: ; 0x1e514 ; Determines the next upgrade for the Ball. - db GREAT_BALL ; POKE_BALL -> GREAT_BALL - db GREAT_BALL ; unused - db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL - db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL - db MASTER_BALL ; unused - db MASTER_BALL ; MASTER_BALL -> MASTER_BALL + db GREAT_BALL ; POKE_BALL -> GREAT_BALL + db GREAT_BALL ; unused + db ULTRA_BALL ; GREAT_BALL -> ULTRA_BALL + db MASTER_BALL ; ULTRA_BALL -> MASTER_BALL + db MASTER_BALL ; unused + db MASTER_BALL ; MASTER_BALL -> MASTER_BALL BallTypeDegradation2BlueField: ; 0x1e51a ; Determines the previous upgrade for the Ball. - db POKE_BALL ; POKE_BALL -> POKE_BALL - db POKE_BALL ; unused - db POKE_BALL ; GREAT_BALL -> POKE_BALL - db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL - db ULTRA_BALL ; unused - db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL + db POKE_BALL ; POKE_BALL -> POKE_BALL + db POKE_BALL ; unused + db POKE_BALL ; GREAT_BALL -> POKE_BALL + db GREAT_BALL ; ULTRA_BALL -> GREAT_BALL + db ULTRA_BALL ; unused + db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL + +Data_1e520: + dr $1e520, $1e526 + +Data_1e526: + dr $1e526, $1e556 -INCBIN "baserom.gbc",$1e520,$1e58c - $1e520 +Data_1e556: + dr $1e556, $1e55c + +Data_1e55c: + dr $1e55c, $1e58c HandleBallTypeUpgradeCounterBlueField: ; 0x1e58c - ld a, [$d5f3] - and a - ret nz - ; check if counter is at 0 - ld hl, wBallTypeCounter - ld a, [hli] - ld c, a - ld b, [hl] - or b - ret z - dec bc - ld a, b - ld [hld], a - ld [hl], c - or c - ret nz - ; counter is now 0! Degrade the ball upgrade. - ld a, [wBallType] - ld c, a - ld b, $0 - ld hl, BallTypeDegradation2BlueField - add hl, bc - ld a, [hl] - ld [wBallType], a - and a - jr z, .pokeball - ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 - ld [wBallTypeCounter], a - ld a, $e - ld [wBallTypeCounter + 1], a + ld a, [wd5f3] + and a + ret nz + ; check if counter is at 0 + ld hl, wBallTypeCounter + ld a, [hli] + ld c, a + ld b, [hl] + or b + ret z + dec bc + ld a, b + ld [hld], a + ld [hl], c + or c + ret nz + ; counter is now 0! Degrade the ball upgrade. + ld a, [wBallType] + ld c, a + ld b, $0 + ld hl, BallTypeDegradation2BlueField + add hl, bc + ld a, [hl] + ld [wBallType], a + and a + jr z, .pokeball + ; load approximately 1 minute of frames into wBallTypeCounter + ld a, $10 + ld [wBallTypeCounter], a + ld a, $e + ld [wBallTypeCounter + 1], a .pokeball - ld [$ff8a], a - ld a, Bank(Func_155a7) - ld hl, Func_155a7 - call BankSwitch - ret + callba Func_155a7 + ret Func_1e5c5: ; 0x1e5c5 - ld a, [$d50d] - and a - jr z, .asm_1e623 - xor a - ld [$d50d], a - ld a, [$d513] - and a - jr nz, .asm_1e623 - ld a, [$d50e] - sub $16 - ld c, a - ld b, $0 - ld hl, $d50f - add hl, bc - ld a, [hl] - ld [hl], $1 - and a - ret nz - ld bc, $34b2 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld hl, $d50f - ld a, [hli] - and [hl] - inc hl - and [hl] - inc hl - and [hl] - jr z, Func_1e627 - ld a, $1 - ld [$d513], a - ld a, $80 - ld [$d514], a - ld bc, $34b8 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld de, $0009 - call PlaySoundEffect - ld hl, $d62c - call Func_e4a - jr Func_1e627 + ld a, [wd50d] + and a + jr z, .asm_1e623 + xor a + ld [wd50d], a + ld a, [wd513] + and a + jr nz, .asm_1e623 + ld a, [wd50e] + sub $16 + ld c, a + ld b, $0 + ld hl, wd50f + add hl, bc + ld a, [hl] + ld [hl], $1 + and a + ret nz + ld bc, OneHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld hl, wd50f + ld a, [hli] + and [hl] + inc hl + and [hl] + inc hl + and [hl] + jr z, Func_1e627 + ld a, $1 + ld [wd513], a + ld a, $80 + ld [wd514], a + ld bc, FourHundredPoints + callba AddBigBCD6FromQueueWithBallMultiplier + lb de, $00, $09 + call PlaySoundEffect + ld hl, wd62c + call Func_e4a + jr Func_1e627 + .asm_1e623 - call Func_1e66a - ret z - ; fall through + call Func_1e66a + ret z + ; fall through Func_1e627: ; 0x1e627 - ld hl, $d512 - ld b, $4 + ld hl, wd512 + ld b, $4 .asm_1e62c - ld a, [hld] - push hl - call Func_1e636 - pop hl - dec b - jr nz, .asm_1e62c - ret + ld a, [hld] + push hl + call Func_1e636 + pop hl + dec b + jr nz, .asm_1e62c + ret Func_1e636: ; 0x1e636 - and a - jr z, .asm_1e648 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1e643 - ld hl, $66d7 - jr .asm_1e655 + and a + jr z, .asm_1e648 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_1e643 + ld hl, Data_1e6d7 + jr .asm_1e655 + .asm_1e643 - ld hl, $6717 - jr .asm_1e655 + ld hl, Data_1e717 + jr .asm_1e655 + .asm_1e648 - ld a, [hGameBoyColorFlag] - and a - jr nz, .asm_1e652 - ld hl, $66df - jr .asm_1e655 + ld a, [hGameBoyColorFlag] + and a + jr nz, .asm_1e652 + ld hl, Data_1e6df + jr .asm_1e655 + .asm_1e652 - ld hl, $671f + ld hl, Data_1e71f .asm_1e655 - push bc - dec b - sla b - ld e, b - ld d, $0 - add hl, de - ld c, [hl] - inc hl - ld b, [hl] - ld a, $7 - ld de, LoadTileLists - call Func_10c5 - pop bc - ret + push bc + dec b + sla b + ld e, b + ld d, $0 + add hl, de + ld c, [hl] + inc hl + ld b, [hl] + ld a, $7 + ld de, LoadTileLists + call Func_10c5 + pop bc + ret Func_1e66a: ; 0x1e66a - ld a, [$d513] - and a - jr z, .asm_1e6a0 - ld a, [$d514] - dec a - ld [$d514], a - jr nz, .asm_1e687 - ld [$d513], a - ld a, $1 - ld [$d608], a - ld a, $3 - ld [$d607], a - xor a + ld a, [wd513] + and a + jr z, .asm_1e6a0 + ld a, [wd514] + dec a + ld [wd514], a + jr nz, .asm_1e687 + ld [wd513], a + ld a, $1 + ld [wd608], a + ld a, $3 + ld [wd607], a + xor a .asm_1e687 - and $7 - ret nz - ld a, [$d514] - srl a - srl a - srl a - and $1 - ld hl, $d50f - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - ld a, $1 - and a - ret + and $7 + ret nz + ld a, [wd514] + srl a + srl a + srl a + and $1 + ld hl, wd50f + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, $1 + and a + ret + .asm_1e6a0 - ld hl, wKeyConfigLeftFlipper - call IsKeyPressed - jr z, .asm_1e6bc - ld hl, $d50f - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld a, c - ld [hld], a - ld a, d - ld [hld], a - ld a, e - ld [hld], a - ld a, b - ld [hl], a - ret + ld hl, wKeyConfigLeftFlipper + call IsKeyPressed + jr z, .asm_1e6bc + ld hl, wd50f + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld a, c + ld [hld], a + ld a, d + ld [hld], a + ld a, e + ld [hld], a + ld a, b + ld [hl], a + ret + .asm_1e6bc - ld hl, wKeyConfigRightFlipper - call IsKeyPressed - ret z - ld hl, $d50f - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld a, e - ld [hld], a - ld a, b - ld [hld], a - ld a, c - ld [hld], a - ld a, d - ld [hl], a - ret - -INCBIN "baserom.gbc",$1e6d7,$1e757 - $1e6d7 + ld hl, wKeyConfigRightFlipper + call IsKeyPressed + ret z + ld hl, wd50f + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld a, e + ld [hld], a + ld a, b + ld [hld], a + ld a, c + ld [hld], a + ld a, d + ld [hl], a + ret + +Data_1e6d7: + dr $1e6d7, $1e6df + +Data_1e6df: + dr $1e6df, $1e717 + +Data_1e717: + dr $1e717, $1e71f + +Data_1e71f: + dr $1e71f, $1e757 Func_1e757: ; 0x1e757 - ld a, [$d601] - and a - jr z, .asm_1e78c - xor a - ld [$d601], a - ld a, [$d604] - and a - ret z - ld a, [$d603] - and a - jr nz, .asm_1e78c - xor a - ld hl, wBallXVelocity - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [$d549], a - ld [wBallXPos], a - ld [wBallYPos], a - ld a, $50 - ld [wBallXPos + 1], a - ld a, $16 - ld [wBallYPos + 1], a - ld a, $13 - ld [$d603], a + ld a, [wd601] + and a + jr z, .asm_1e78c + xor a + ld [wd601], a + ld a, [wd604] + and a + ret z + ld a, [wd603] + and a + jr nz, .asm_1e78c + xor a + ld hl, wBallXVelocity + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [wd549], a + ld [wBallXPos], a + ld [wBallYPos], a + ld a, $50 + ld [wBallXPos + 1], a + ld a, $16 + ld [wBallYPos + 1], a + ld a, $13 + ld [wd603], a .asm_1e78c - ld a, [$d603] - and a - ret z - dec a - ld [$d603], a - ld a, $18 - ld [$d606], a - ld a, [$d603] - cp $12 - jr nz, .asm_1e7b2 - ld de, $0021 - call PlaySoundEffect - ld [$ff8a], a - ld a, Bank(LoadMiniBallGfx) - ld hl, LoadMiniBallGfx - call BankSwitch - ret + ld a, [wd603] + and a + ret z + dec a + ld [wd603], a + ld a, $18 + ld [wd606], a + ld a, [wd603] + cp $12 + jr nz, .asm_1e7b2 + lb de, $00, $21 + call PlaySoundEffect + callba LoadMiniBallGfx + ret + .asm_1e7b2 - cp $f - jr nz, .asm_1e7c1 - ld [$ff8a], a - ld a, Bank(Func_dd62) - ld hl, Func_dd62 - call BankSwitch - ret + cp $f + jr nz, .asm_1e7c1 + callba Func_dd62 + ret + .asm_1e7c1 - cp $c - jr nz, .asm_1e7d0 - xor a - ld [$d548], a - ld [wBallSpin], a - ld [wBallRotation], a - ret + cp $c + jr nz, .asm_1e7d0 + xor a + ld [wd548], a + ld [wBallSpin], a + ld [wBallRotation], a + ret + .asm_1e7d0 - cp $9 - jr nz, .asm_1e7d8 - call Func_1e830 - ret + cp $9 + jr nz, .asm_1e7d8 + call Func_1e830 + ret + .asm_1e7d8 - cp $6 - jr nz, .asm_1e7f5 - xor a - ld [$d604], a - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a - ld [$ff8a], a - ld a, Bank(LoadMiniBallGfx) - ld hl, LoadMiniBallGfx - call BankSwitch - ret + cp $6 + jr nz, .asm_1e7f5 + xor a + ld [wd604], a + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a + callba LoadMiniBallGfx + ret + .asm_1e7f5 - cp $3 - jr nz, .asm_1e80e - ld [$ff8a], a - ld a, Bank(LoadBallGfx) - ld hl, LoadBallGfx - call BankSwitch - ld a, $2 - ld [wBallYVelocity + 1], a - ld a, $80 - ld [wBallXVelocity], a - ret + cp $3 + jr nz, .asm_1e80e + callba LoadBallGfx + ld a, $2 + ld [wBallYVelocity + 1], a + ld a, $80 + ld [wBallXVelocity], a + ret + .asm_1e80e - and a - ret nz - call Func_1e8f6 - ld a, [$d622] - cp $1 - ret nz - call GenRandom - and $8 - ld [wRareMonsFlag], a - ld [$ff8a], a - ld a, Bank(StartCatchEmMode) - ld hl, StartCatchEmMode - call BankSwitch - xor a - ld [$d622], a - ret + and a + ret nz + call Func_1e8f6 + ld a, [wd622] + cp $1 + ret nz + call GenRandom + and $8 + ld [wRareMonsFlag], a + callba StartCatchEmMode + xor a + ld [wd622], a + ret Func_1e830: ; 0x1e830 - xor a - ld [wIndicatorStates + 4], a - ld a, $d - ld [$ff8a], a - ld a, Bank(Func_10000) - ld hl, Func_10000 - call BankSwitch - jr nc, .asm_1e84b - ld a, $1 - ld [$d548], a - ld [$d549], a - ret + xor a + ld [wIndicatorStates + 4], a + ld a, $d + callba Func_10000 + jr nc, .asm_1e84b + ld a, $1 + ld [wd548], a + ld [wd549], a + ret + .asm_1e84b - ld a, [$d624] - cp $3 - jr nz, .asm_1e891 - ld a, [$d607] - and a - jr nz, .asm_1e891 + ld a, [wd624] + cp $3 + jr nz, .asm_1e891 + ld a, [wd607] + and a + jr nz, .asm_1e891 .asm_1e858 - ld a, [$d623] - and a - jr nz, .asm_1e867 - xor a - ld [$d625], a - ld a, $40 - ld [$d626], a + ld a, [wd623] + and a + jr nz, .asm_1e867 + xor a + ld [wd625], a + ld a, $40 + ld [wd626], a .asm_1e867 - xor a - ld [$d623], a - ld a, $1 - ld [$d495], a - ld [$d4ae], a - ld a, [$d498] - ld c, a - ld b, $0 - ld hl, $68f1 - add hl, bc - ld a, [hl] - ld [$d497], a - call Func_1e8c3 - xor a - ld [$d609], a - ld [$d622], a - ld a, $1e - ld [$d607], a - ret + xor a + ld [wd623], a + ld a, $1 + ld [wd495], a + ld [wd4ae], a + ld a, [wd498] + ld c, a + ld b, $0 + ld hl, Data_1e8f1 + add hl, bc + ld a, [hl] + ld [wd497], a + call Func_1e8c3 + xor a + ld [wd609], a + ld [wd622], a + ld a, $1e + ld [wd607], a + ret + .asm_1e891 - ld [$ff8a], a - ld a, Bank(Func_ed8e) - ld hl, Func_ed8e - call BankSwitch - xor a - ld [$d608], a - ld a, [$d61d] - cp $d - jr nc, .asm_1e858 - ld a, $1 - ld [$d548], a - ld [$d549], a - ld a, [$d622] - cp $2 - ret nz - ld [$ff8a], a - ld a, Bank(Func_10ab3) - ld hl, Func_10ab3 - call BankSwitch - xor a - ld [$d622], a - ret + callba Func_ed8e + xor a + ld [wd608], a + ld a, [wd61d] + cp $d + jr nc, .asm_1e858 + ld a, $1 + ld [wd548], a + ld [wd549], a + ld a, [wd622] + cp $2 + ret nz + callba Func_10ab3 + xor a + ld [wd622], a + ret Func_1e8c3: ; 0x1e8c3 - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld a, [$d497] - ld de, $2ed2 - cp $b - jr z, .asm_1e8e0 - ld de, $2eec - cp $f - jr z, .asm_1e8e0 - ld de, $2eb8 + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld a, [wd497] + ld de, Data_2ed2 + cp $b + jr z, .asm_1e8e0 + ld de, Data_2eec + cp $f + jr z, .asm_1e8e0 + ld de, Data_2eb8 .asm_1e8e0 - call Func_32aa - ld de, $0000 - call PlaySong - rst $10 - ld de, $3c23 - call PlaySoundEffect - ret + call LoadTextHeader + ld de, $0000 + call PlaySong + rst AdvanceFrame + lb de, $3c, $23 + call PlaySoundEffect + ret -INCBIN "baserom.gbc",$1e8f1,$1e8f6 - $1e8f1 +Data_1e8f1: + dr $1e8f1, $1e8f6 Func_1e8f6: ; 0x1e8f6 - ld a, [wCurrentStage] - and $1 - sla a - ld c, a - ld a, [$d604] - add c - sla a - ld c, a - ld b, $0 - ld hl, $691e - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1e912 - ld hl, $6970 + ld a, [wCurrentStage] + and $1 + sla a + ld c, a + ld a, [wd604] + add c + sla a + ld c, a + ld b, $0 + ld hl, Data_1e91e + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1e912 + ld hl, Data_1e970 .asm_1e912 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $7 - call Func_10aa - ret - -INCBIN "baserom.gbc",$1e91e,$1e9c0 - $1e91e + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, $7 + call Func_10aa + ret + +Data_1e91e: + dr $1e91e, $1e970 + +Data_1e970: + dr $1e970, $1e9c0 Func_1e9c0: ; 0x1e9c0 - ld a, [$d607] - and a - ret z - dec a - ld [$d607], a - ret nz - ld a, [wInSpecialMode] - and a - ret nz - ld a, [$d609] - and a - jr z, .asm_1e9dc - ld a, [$d498] - add $15 - jr .asm_1e9e3 + ld a, [wd607] + and a + ret z + dec a + ld [wd607], a + ret nz + ld a, [wInSpecialMode] + and a + ret nz + ld a, [wd609] + and a + jr z, .asm_1e9dc + ld a, [wd498] + add $15 + jr .asm_1e9e3 + .asm_1e9dc - ld a, [$d608] - and a - ret z - ld a, $1a + ld a, [wd608] + and a + ret z + ld a, $1a .asm_1e9e3 - ld hl, wCurrentStage - bit 0, [hl] - ld [$ff8a], a - ld a, Bank(Func_30256) - ld hl, Func_30256 - call nz, BankSwitch - ld a, [$d604] - and a - ret nz - ld a, $1 - ld [$d604], a - ld a, $80 - ld [wIndicatorStates + 4], a - ld a, [wCurrentStage] - bit 0, a - call nz, Func_1e8f6 - ret + ld hl, wCurrentStage + bit 0, [hl] + ld [hFarCallTempA], a + ld a, Bank(Func_30256) + ld hl, Func_30256 + call nz, BankSwitch + ld a, [wd604] + and a + ret nz + ld a, $1 + ld [wd604], a + ld a, $80 + ld [wIndicatorStates + 4], a + ld a, [wCurrentStage] + bit 0, a + call nz, Func_1e8f6 + ret Func_1ea0a: ; 0x1ea0a - ld a, [$d604] - and a - ret z - ld a, [wBallYPos + 1] - sub $fe - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jr asm_1ea6a + ld a, [wd604] + and a + ret z + ld a, [wBallYPos + 1] + sub $fe + cp $30 + ret nc + ld c, $0 + ld b, a + ld h, b + ld l, c + srl b + rr c + srl b + rr c + srl h + rr l + add hl, bc + ld a, [wBallXPos + 1] + sub $38 + cp $30 + ret nc + ld c, a + ld b, $0 + sla c + sla c + add hl, bc + jr asm_1ea6a Func_1ea3b: ; 0x1ea3b - ld a, [$d604] - and a - ret z - ld a, [wBallYPos + 1] - sub $86 - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - ; fall through + ld a, [wd604] + and a + ret z + ld a, [wBallYPos + 1] + sub $86 + cp $30 + ret nc + ld c, $0 + ld b, a + ld h, b + ld l, c + srl b + rr c + srl b + rr c + srl h + rr l + add hl, bc + ld a, [wBallXPos + 1] + sub $38 + cp $30 + ret nc + ld c, a + ld b, $0 + sla c + sla c + add hl, bc + ; fall through asm_1ea6a: ; 0x1ea6a - ld bc, $4000 - add hl, bc - ld de, wBallXVelocity - ld a, $3c - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $3c - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - push bc - ld a, $3c - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $3c - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1eaa9 - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc + ld bc, Data_f0000 + add hl, bc + ld de, wBallXVelocity + ld a, BANK(Data_f0000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_f0000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + push bc + ld a, BANK(Data_f0000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_f0000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + bit 7, b + jr z, .asm_1eaa9 + ld a, c + cpl + ld c, a + ld a, b + cpl + ld b, a + inc bc .asm_1eaa9 - pop hl - bit 7, h - jr z, .asm_1eab5 - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl + pop hl + bit 7, h + jr z, .asm_1eab5 + ld a, l + cpl + ld l, a + ld a, h + cpl + ld h, a + inc hl .asm_1eab5 - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [$d804] - and a - ret nz - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a - ld de, $0004 - call PlaySoundEffect - ret + add hl, bc + sla l + rl h + ld a, h + cp $2 + ret c + ld a, [wd804] + and a + ret nz + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a + lb de, $00, $04 + call PlaySoundEffect + ret Func_1ead4: ; 0x1ead4 - ld a, [$ffb3] - and $f - ret nz - ld bc, $0000 + ld a, [hNumFramesDropped] + and $f + ret nz + ld bc, $0000 .asm_1eadc - push bc - ld hl, wIndicatorStates - add hl, bc - ld a, [hl] - cp $1 - jr z, .asm_1eaf8 - bit 7, [hl] - jr z, .asm_1eaf8 - ld a, [hl] - res 7, a - ld hl, $ffb3 - bit 4, [hl] - jr z, .asm_1eaf5 - inc a + push bc + ld hl, wIndicatorStates + add hl, bc + ld a, [hl] + cp $1 + jr z, .asm_1eaf8 + bit 7, [hl] + jr z, .asm_1eaf8 + ld a, [hl] + res 7, a + ld hl, hNumFramesDropped + bit 4, [hl] + jr z, .asm_1eaf5 + inc a .asm_1eaf5 - call Func_1eb41 + call Func_1eb41 .asm_1eaf8 - pop bc - inc c - ld a, c - cp $2 - jr nz, .asm_1eadc - ld a, [$ffb3] - and $f - ret nz - ld a, [wCurrentStage] - bit 0, a - ret z - ld bc, $0002 + pop bc + inc c + ld a, c + cp $2 + jr nz, .asm_1eadc + ld a, [hNumFramesDropped] + and $f + ret nz + ld a, [wCurrentStage] + bit 0, a + ret z + ld bc, $0002 .asm_1eb0d - push bc - ld hl, wIndicatorStates - add hl, bc - ld a, [hl] - cp $1 - jr z, .asm_1eb29 - bit 7, [hl] - jr z, .asm_1eb29 - ld a, [hl] - res 7, a - ld hl, $ffb3 - bit 4, [hl] - jr z, .asm_1eb2b - inc a - inc a - jr .asm_1eb2b + push bc + ld hl, wIndicatorStates + add hl, bc + ld a, [hl] + cp $1 + jr z, .asm_1eb29 + bit 7, [hl] + jr z, .asm_1eb29 + ld a, [hl] + res 7, a + ld hl, hNumFramesDropped + bit 4, [hl] + jr z, .asm_1eb2b + inc a + inc a + jr .asm_1eb2b + .asm_1eb29 - ld a, $0 + ld a, $0 .asm_1eb2b - push af - ld hl, $d648 - add hl, bc - dec hl - dec hl - ld a, [hl] - ld d, a - pop af - add d - call Func_1eb41 - pop bc - inc c - ld a, c - cp $5 - jr nz, .asm_1eb0d - ret + push af + ld hl, wd648 + add hl, bc + dec hl + dec hl + ld a, [hl] + ld d, a + pop af + add d + call Func_1eb41 + pop bc + inc c + ld a, c + cp $5 + jr nz, .asm_1eb0d + ret Func_1eb41: ; 0x1eb41 - push af - sla c - ld hl, $6b61 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1eb4f - ld hl, $6d51 + push af + sla c + ld hl, Data_1eb61 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1eb4f + ld hl, Data_1ed51 .asm_1eb4f - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - pop af - sla a - ld c, a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $7 - call Func_10aa - ret - -INCBIN "baserom.gbc",$1eb61,$1ef09 - $1eb61 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + pop af + sla a + ld c, a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $7 + call Func_10aa + ret + +Data_1eb61: + dr $1eb61, $1ed51 + +Data_1ed51: + dr $1ed51, $1ef09 Func_1ef09: ; 0x1ef09 - ld a, [wBlueStageForceFieldDirection] - cp $0 ; up direction - jp z, Func_1ef20 - cp $1 ; right direction - jp z, Func_1ef4d - cp $2 ; down direction - jp z, Func_1ef7e - cp $3 ; left direction - jp z, Func_1efae - - ; fall through - ; default to upward forcefield + ld a, [wBlueStageForceFieldDirection] + cp $0 ; up direction + jp z, Func_1ef20 + cp $1 ; right direction + jp z, Func_1ef4d + cp $2 ; down direction + jp z, Func_1ef7e + cp $3 ; left direction + jp z, Func_1efae + ; fall through + ; default to upward forcefield Func_1ef20: ; 0x1ef20 - ld a, [wBallYPos + 1] - sub $60 - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jp Func_1efdc + ld a, [wBallYPos + 1] + sub $60 + cp $30 + ret nc + ld c, $0 + ld b, a + ld h, b + ld l, c + srl b + rr c + srl b + rr c + srl h + rr l + add hl, bc + ld a, [wBallXPos + 1] + sub $38 + cp $30 + ret nc + ld c, a + ld b, $0 + sla c + sla c + add hl, bc + jp Func_1efdc Func_1ef4d: ; 0x1ef4d - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld a, $30 - sub c - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallYPos + 1] - sub $60 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jp Func_1efdc + ld a, [wBallXPos + 1] + sub $38 + cp $30 + ret nc + ld c, a + ld a, $30 + sub c + ld c, $0 + ld b, a + ld h, b + ld l, c + srl b + rr c + srl b + rr c + srl h + rr l + add hl, bc + ld a, [wBallYPos + 1] + sub $60 + cp $30 + ret nc + ld c, a + ld b, $0 + sla c + sla c + add hl, bc + jp Func_1efdc Func_1ef7e: ; 0x1ef7e - ld a, [wBallYPos + 1] - sub $60 - cp $30 - ret nc - ld c, a - ld a, $30 - sub c - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - jr Func_1efdc + ld a, [wBallYPos + 1] + sub $60 + cp $30 + ret nc + ld c, a + ld a, $30 + sub c + ld c, $0 + ld b, a + ld h, b + ld l, c + srl b + rr c + srl b + rr c + srl h + rr l + add hl, bc + ld a, [wBallXPos + 1] + sub $38 + cp $30 + ret nc + ld c, a + ld b, $0 + sla c + sla c + add hl, bc + jr Func_1efdc Func_1efae: ; 0x1efae - ld a, [wBallXPos + 1] - sub $38 - cp $30 - ret nc - ld c, $0 - ld b, a - ld h, b - ld l, c - srl b - rr c - srl b - rr c - srl h - rr l - add hl, bc - ld a, [wBallYPos + 1] - sub $60 - cp $30 - ret nc - ld c, a - ld a, $30 - sub c - ld c, a - ld b, $0 - sla c - sla c - add hl, bc - ; fall through + ld a, [wBallXPos + 1] + sub $38 + cp $30 + ret nc + ld c, $0 + ld b, a + ld h, b + ld l, c + srl b + rr c + srl b + rr c + srl h + rr l + add hl, bc + ld a, [wBallYPos + 1] + sub $60 + cp $30 + ret nc + ld c, a + ld a, $30 + sub c + ld c, a + ld b, $0 + sla c + sla c + add hl, bc + ; fall through Func_1efdc: ; 0x1efdc - ld a, [wBlueStageForceFieldDirection] - cp $0 ; up direction - jp z, Func_1eff3 - cp $1 ; right direction - jp z, LoadOAMData2e - cp $2 ; down direction - jp z, Func_1f057 - cp $3 ; left direction - jp z, Func_1f124 - - ; fall through - ; default to upward forcefield + ld a, [wBlueStageForceFieldDirection] + cp $0 ; up direction + jp z, Func_1eff3 + cp $1 ; right direction + jp z, LoadOAMData2e + cp $2 ; down direction + jp z, Func_1f057 + cp $3 ; left direction + jp z, Func_1f124 + ; fall through + ; default to upward forcefield Func_1eff3: ; 0x1eff3 - ld bc, $4000 - add hl, bc - ld de, wBallXVelocity - ld a, $3b - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $3b - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - push bc - ld a, $3b - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $3b - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1f032 - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc + ld bc, Data_ec000 + add hl, bc + ld de, wBallXVelocity + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + push bc + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + bit 7, b + jr z, .asm_1f032 + ld a, c + cpl + ld c, a + ld a, b + cpl + ld b, a + inc bc .asm_1f032 - pop hl - bit 7, h - jr z, .asm_1f03e - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl + pop hl + bit 7, h + jr z, .asm_1f03e + ld a, l + cpl + ld l, a + ld a, h + cpl + ld h, a + inc hl .asm_1f03e - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [$d804] - and a - ret nz - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a - ret + add hl, bc + sla l + rl h + ld a, h + cp $2 + ret c + ld a, [wd804] + and a + ret nz + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a + ret Func_1f057: ; 0x1f057 - ld bc, $4000 - add hl, bc - ld de, wBallXVelocity - bit 2, l - ret nz - ld a, $3b - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $3b - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - push bc - ld a, $3b - call ReadByteFromBank - ld c, a - ld a, [de] - sub c - ld [de], a - inc de - inc hl - ld a, $3b - call ReadByteFromBank - ld b, a - ld a, [de] - sbc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1f099 - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc + ld bc, Data_ec000 + add hl, bc + ld de, wBallXVelocity + bit 2, l + ret nz + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + push bc + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld c, a + ld a, [de] + sub c + ld [de], a + inc de + inc hl + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld b, a + ld a, [de] + sbc b + ld [de], a + inc de + inc hl + bit 7, b + jr z, .asm_1f099 + ld a, c + cpl + ld c, a + ld a, b + cpl + ld b, a + inc bc .asm_1f099 - pop hl - bit 7, h - jr z, .asm_1f0a5 - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl + pop hl + bit 7, h + jr z, .asm_1f0a5 + ld a, l + cpl + ld l, a + ld a, h + cpl + ld h, a + inc hl .asm_1f0a5 - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [$d804] - and a - ret nz - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a - ret + add hl, bc + sla l + rl h + ld a, h + cp $2 + ret c + ld a, [wd804] + and a + ret nz + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a + ret LoadOAMData2e: ; 0x1f0be - ld bc, $4000 - add hl, bc - ld de, wBallYVelocity - ld a, $3b - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $3b - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc hl - push bc - dec de - dec de - dec de - ld a, $3b - call ReadByteFromBank - ld c, a - ld a, [de] - sub c - ld [de], a - inc de - inc hl - ld a, $3b - call ReadByteFromBank - ld b, a - ld a, [de] - sbc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1f0ff - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc + ld bc, Data_ec000 + add hl, bc + ld de, wBallYVelocity + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc hl + push bc + dec de + dec de + dec de + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld c, a + ld a, [de] + sub c + ld [de], a + inc de + inc hl + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld b, a + ld a, [de] + sbc b + ld [de], a + inc de + inc hl + bit 7, b + jr z, .asm_1f0ff + ld a, c + cpl + ld c, a + ld a, b + cpl + ld b, a + inc bc .asm_1f0ff - pop hl - bit 7, h - jr z, .asm_1f10b - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl + pop hl + bit 7, h + jr z, .asm_1f10b + ld a, l + cpl + ld l, a + ld a, h + cpl + ld h, a + inc hl .asm_1f10b - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [$d804] - and a - ret nz - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a - ret + add hl, bc + sla l + rl h + ld a, h + cp $2 + ret c + ld a, [wd804] + and a + ret nz + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a + ret Func_1f124: ; 0x1f124 - ld bc, $4000 - add hl, bc - ld de, wBallYVelocity - ld a, $3b - call ReadByteFromBank - ld c, a - ld a, [de] - sub c - ld [de], a - inc de - inc hl - ld a, $3b - call ReadByteFromBank - ld b, a - ld a, [de] - sbc b - ld [de], a - inc hl - push bc - dec de - dec de - dec de - ld a, $3b - call ReadByteFromBank - ld c, a - ld a, [de] - add c - ld [de], a - inc de - inc hl - ld a, $3b - call ReadByteFromBank - ld b, a - ld a, [de] - adc b - ld [de], a - inc de - inc hl - bit 7, b - jr z, .asm_1f165 - ld a, c - cpl - ld c, a - ld a, b - cpl - ld b, a - inc bc + ld bc, Data_ec000 + add hl, bc + ld de, wBallYVelocity + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld c, a + ld a, [de] + sub c + ld [de], a + inc de + inc hl + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld b, a + ld a, [de] + sbc b + ld [de], a + inc hl + push bc + dec de + dec de + dec de + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld c, a + ld a, [de] + add c + ld [de], a + inc de + inc hl + ld a, BANK(Data_ec000) + call ReadByteFromBank + ld b, a + ld a, [de] + adc b + ld [de], a + inc de + inc hl + bit 7, b + jr z, .asm_1f165 + ld a, c + cpl + ld c, a + ld a, b + cpl + ld b, a + inc bc .asm_1f165 - pop hl - bit 7, h - jr z, .asm_1f171 - ld a, l - cpl - ld l, a - ld a, h - cpl - ld h, a - inc hl + pop hl + bit 7, h + jr z, .asm_1f171 + ld a, l + cpl + ld l, a + ld a, h + cpl + ld h, a + inc hl .asm_1f171 - add hl, bc - sla l - rl h - ld a, h - cp $2 - ret c - ld a, [$d804] - and a - ret nz - ld a, $5 - ld [$d803], a - ld a, $8 - ld [$d804], a - ret + add hl, bc + sla l + rl h + ld a, h + cp $2 + ret c + ld a, [wd804] + and a + ret nz + ld a, $5 + ld [wd803], a + ld a, $8 + ld [wd804], a + ret Func_1f18a: ; 0x1f18a - ld a, [$d640] - cp $0 - jr z, .asm_1f1b4 - ld a, [wBlueStageForceFieldDirection] - sla a - ld c, a - ld b, $0 - ld hl, $71b5 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_1f1a4 - ld hl, $7201 + ld a, [wd640] + cp $0 + jr z, .asm_1f1b4 + ld a, [wBlueStageForceFieldDirection] + sla a + ld c, a + ld b, $0 + ld hl, Data_1f1b5 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_1f1a4 + ld hl, Data_1f201 .asm_1f1a4 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, $7 - call Func_10aa - ld a, $0 - ld [$d640], a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, $7 + call Func_10aa + ld a, $0 + ld [wd640], a .asm_1f1b4 - ret + ret + +Data_1f1b5: + dr $1f1b5, $1f201 -INCBIN "baserom.gbc",$1f1b5,$1f261 - $1f1b5 +Data_1f201: + dr $1f201, $1f261 Func_1f261: ; 0x1f261 - call Func_1f27b - ret nc - ; fall through + call Func_1f27b + ret nc + ; fall through Func_1f265: ; 0x1f265 - sla a - ld c, a - ld b, $0 - ld hl, $72b9 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, $7 - ld de, LoadTileLists - call Func_10c5 - ret + sla a + ld c, a + ld b, $0 + ld hl, Data_1f2b9 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, $7 + ld de, LoadTileLists + call Func_10c5 + ret Func_1f27b: ; 0x1f27b - ld a, [$d624] - ld hl, $d625 - cp [hl] - ret z - ld a, [$d626] - dec a - ld [$d626], a - jr nz, .asm_1f2a5 - ld a, [$d625] - ld [$d624], a - cp $3 - jr c, .asm_1f2a0 - ld a, $1 - ld [$d609], a - ld a, $3 - ld [$d607], a + ld a, [wd624] + ld hl, wd625 + cp [hl] + ret z + ld a, [wd626] + dec a + ld [wd626], a + jr nz, .asm_1f2a5 + ld a, [wd625] + ld [wd624], a + cp $3 + jr c, .asm_1f2a0 + ld a, $1 + ld [wd609], a + ld a, $3 + ld [wd607], a .asm_1f2a0 - ld a, [$d624] - scf - ret + ld a, [wd624] + scf + ret + .asm_1f2a5 - and $7 - ret nz - ld a, [$d626] - bit 3, a - jr nz, .asm_1f2b4 - ld a, [$d624] - scf - ret + and $7 + ret nz + ld a, [wd626] + bit 3, a + jr nz, .asm_1f2b4 + ld a, [wd624] + scf + ret + .asm_1f2b4 - ld a, [$d625] - scf - ret + ld a, [wd625] + scf + ret -INCBIN "baserom.gbc",$1f2b9,$1f2ed - $1f2b9 +Data_1f2b9: + dr $1f2b9, $1f2ed Func_1f2ed: ; 0x1f2ed - xor a - ld [$d604], a - ld [wIndicatorStates + 4], a - ld [$ff8a], a - ld a, Bank(Func_1e8f6) ; this is in the same bank... - ld hl, Func_1e8f6 - call BankSwitch - ret + xor a + ld [wd604], a + ld [wIndicatorStates + 4], a + ld [hFarCallTempA], a + ld a, Bank(Func_1e8f6) ; this is in the same bank... + ld hl, Func_1e8f6 + call BankSwitch + ret Func_1f2ff: ; 0x1f2ff - ld a, [wLeftAlleyCount] - cp $3 - jr c, .asm_1f30b - ld a, $80 - ld [wIndicatorStates + 2], a + ld a, [wLeftAlleyCount] + cp $3 + jr c, .asm_1f30b + ld a, $80 + ld [wIndicatorStates + 2], a .asm_1f30b - ld a, [wLeftAlleyCount] - cp $3 - jr z, .asm_1f314 - set 7, a + ld a, [wLeftAlleyCount] + cp $3 + jr z, .asm_1f314 + set 7, a .asm_1f314 - ld [wIndicatorStates], a - ld a, [wRightAlleyCount] - cp $2 - jr c, .asm_1f323 - ld a, $80 - ld [wIndicatorStates + 3], a + ld [wIndicatorStates], a + ld a, [wRightAlleyCount] + cp $2 + jr c, .asm_1f323 + ld a, $80 + ld [wIndicatorStates + 3], a .asm_1f323 - ld a, [wRightAlleyCount] - cp $3 - jr z, .asm_1f32c - set 7, a + ld a, [wRightAlleyCount] + cp $3 + jr z, .asm_1f32c + set 7, a .asm_1f32c - ld [wIndicatorStates + 1], a - ret + ld [wIndicatorStates + 1], a + ret Func_1f330: ; 0x1f330 - ld bc, $7f00 - ld [$ff8a], a - ld a, Bank(Func_175a4) - ld hl, Func_175a4 - call BankSwitch - call Func_1f395 - call Func_1f3e1 - call Func_1f408 - call Func_1f428 - ld [$ff8a], a - ld a, Bank(Func_17e81) - ld hl, Func_17e81 - call BankSwitch - call Func_1f48f - call Func_1f4f8 - ret + ld bc, $7f00 + callba Func_175a4 + call Func_1f395 + call Func_1f3e1 + call Func_1f408 + call Func_1f428 + callba Func_17e81 + call Func_1f48f + call Func_1f4f8 + ret Func_1f35a: ; 0x1f35a - ld bc, $7f00 - ld [$ff8a], a - ld a, Bank(Func_175a4) - ld hl, Func_175a4 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_17c67) - ld hl, Func_17c67 - call BankSwitch - call Func_1f58b - call Func_1f448 - ld [$ff8a], a - ld a, Bank(Func_e4a1) - ld hl, Func_e4a1 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_17e81) - ld hl, Func_17e81 - call BankSwitch - call Func_1f4a3 - call Func_1f509 - call Func_1f55e - ret + ld bc, $7f00 + callba Func_175a4 + callba Func_17c67 + call Func_1f58b + call Func_1f448 + callba Func_e4a1 + callba Func_17e81 + call Func_1f4a3 + call Func_1f509 + call Func_1f55e + ret Func_1f395: ; 0x1f395 - ld de, $d4cd - ld hl, $73cf - call Func_1f3ad - ld de, $d4d0 - ld hl, $73d5 - call Func_1f3ad - ld de, $d4d3 - ld hl, $73db - ; fall through + ld de, wd4cd + ld hl, Data_1f3cf + call Func_1f3ad + ld de, wd4d0 + ld hl, Data_1f3d5 + call Func_1f3ad + ld de, wd4d3 + ld hl, Data_1f3db + ; fall through Func_1f3ad: ; 0x1f3ad - ld a, [hBoardXShift] - ld b, a - ld a, [hli] - sub b - ld b, a - ld a, [hBoardYShift] - ld c, a - ld a, [hli] - sub c - ld c, a - ld a, [$d4d7] - sub [hl] - inc hl - jr z, .asm_1f3c4 - ld a, $0 - jr .asm_1f3c6 + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [wd4d7] + sub [hl] + inc hl + jr z, .asm_1f3c4 + ld a, $0 + jr .asm_1f3c6 + .asm_1f3c4 - ld a, $1 + ld a, $1 .asm_1f3c6 - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call LoadOAMData - ret + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_1f3cf: + dr $1f3cf, $1f3d5 -INCBIN "baserom.gbc",$1f3cf,$1f3e1 - $1f3cf +Data_1f3d5: + dr $1f3d5, $1f3db + +Data_1f3db: + dr $1f3db, $1f3e1 Func_1f3e1: ; 0x1f3e1 - ld a, $8a - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $53 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d50a] - srl a - srl a - ld e, a - ld d, $0 - ld hl, $7402 - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$1f402,$1f408 - $1f402 + ld a, $8a + ld hl, hSCX + sub [hl] + ld b, a + ld a, $53 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd50a] + srl a + srl a + ld e, a + ld d, $0 + ld hl, Data_1f402 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_1f402: + dr $1f402, $1f408 Func_1f408: ; 0x1f408 - ld a, $18 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $5f - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d633] - ld e, a - ld d, $0 - ld hl, $7425 - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$1f425,$1f428 - $1f425 + ld a, $18 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $5f + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd633] + ld e, a + ld d, $0 + ld hl, Data_1f425 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_1f425: + dr $1f425, $1f428 Func_1f428: ; 0x1f428 - ld a, $70 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $59 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d638] - ld e, a - ld d, $0 - ld hl, $7445 - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$1f445,$1f448 - $1f445 + ld a, $70 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $59 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd638] + ld e, a + ld d, $0 + ld hl, Data_1f445 + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_1f445: + dr $1f445, $1f448 Func_1f448: ; 0x1f448 - ld a, [hBoardXShift] - ld d, a - ld a, [hBoardYShift] - ld e, a - ld a, [$d51d] - and a - ld a, [$d518] - jr z, .asm_1f473 - ld a, [$d51c] - and a - jr nz, .asm_1f469 - ld a, [$ffb3] - srl a - srl a - srl a - and $1 - jr .asm_1f473 + ld a, [hSCX] + ld d, a + ld a, [hSCY] + ld e, a + ld a, [wd51d] + and a + ld a, [wd518] + jr z, .asm_1f473 + ld a, [wd51c] + and a + jr nz, .asm_1f469 + ld a, [hNumFramesDropped] + srl a + srl a + srl a + and $1 + jr .asm_1f473 + .asm_1f469 - ld a, [$d4b4] - cp $50 - ld a, $1 - jr nc, .asm_1f473 - xor a + ld a, [wd4b4] + cp $50 + ld a, $1 + jr nc, .asm_1f473 + xor a .asm_1f473 - sla a - ld c, a - ld b, $0 - ld hl, $748b - add hl, bc - ld a, [hli] - sub d - ld b, a - ld a, [hli] - sub e - ld c, a - ld a, [wPikachuSaverAnimationFrame] - add $e - call LoadOAMData - ret - -INCBIN "baserom.gbc",$1f48b,$1f48f - $1f48b + sla a + ld c, a + ld b, $0 + ld hl, Data_1f48b + add hl, bc + ld a, [hli] + sub d + ld b, a + ld a, [hli] + sub e + ld c, a + ld a, [wPikachuSaverAnimationFrame] + add $e + call LoadOAMData + ret + +Data_1f48b: + dr $1f48b, $1f48f Func_1f48f: ; 0x1f48f - ld a, [$d551] - and a - ret nz - ld a, [$ffb3] - bit 4, a - ret z - ld de, wIndicatorStates + 5 - ld hl, $74ce - ld b, $6 - jr asm_1f4b5 + ld a, [wd551] + and a + ret nz + ld a, [hNumFramesDropped] + bit 4, a + ret z + ld de, wIndicatorStates + 5 + ld hl, Data_1f4ce + ld b, $6 + jr asm_1f4b5 Func_1f4a3: ; 0x1f4a3 - ld a, [$d551] - and a - ret nz - ld a, [$ffb3] - bit 4, a - ret z - ld de, wIndicatorStates + 11 - ld hl, $74e0 - ld b, $8 + ld a, [wd551] + and a + ret nz + ld a, [hNumFramesDropped] + bit 4, a + ret z + ld de, wIndicatorStates + 11 + ld hl, Data_1f4e0 + ld b, $8 asm_1f4b5: - push bc - ld a, [hBoardXShift] - ld b, a - ld a, [hli] - sub b - ld b, a - ld a, [hBoardYShift] - ld c, a - ld a, [hli] - sub c - ld c, a - ld a, [de] - and a - ld a, [hli] - call nz, LoadOAMData - pop bc - inc de - dec b - jr nz, asm_1f4b5 - ret - -INCBIN "baserom.gbc",$1f4ce,$1f4f8 - $1f4ce + push bc + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [de] + and a + ld a, [hli] + call nz, LoadOAMData + pop bc + inc de + dec b + jr nz, asm_1f4b5 + ret + +Data_1f4ce: + dr $1f4ce, $1f4e0 + +Data_1f4e0: + dr $1f4e0, $1f4f8 Func_1f4f8: ; 0x1f4f8 - ld a, [$d551] - and a - ret z - ld de, $d566 - ld hl, $753a - ld b, $c - ld c, $47 - jr asm_1f518 + ld a, [wd551] + and a + ret z + ld de, wd566 + ld hl, Data_1f53a + ld b, $c + ld c, $47 + jr asm_1f518 Func_1f509: ; 0x1f509 - ld a, [$d551] - and a - ret z - ld de, $d572 - ld hl, $7552 - ld b, $6 - ld c, $40 + ld a, [wd551] + and a + ret z + ld de, wd572 + ld hl, Data_1f552 + ld b, $6 + ld c, $40 asm_1f518: ; 0x1f518 - push bc - ld a, [de] - add c - cp c - push af - ld a, [hBoardXShift] - ld b, a - ld a, [hli] - sub b - ld b, a - ld a, [hBoardYShift] - ld c, a - ld a, [hli] - sub c - ld c, a - ld a, [$ffb3] - and $e - jr nz, .asm_1f530 - dec c + push bc + ld a, [de] + add c + cp c + push af + ld a, [hSCX] + ld b, a + ld a, [hli] + sub b + ld b, a + ld a, [hSCY] + ld c, a + ld a, [hli] + sub c + ld c, a + ld a, [hNumFramesDropped] + and $e + jr nz, .asm_1f530 + dec c .asm_1f530 - pop af - call nz, LoadOAMData - pop bc - inc de - dec b - jr nz, asm_1f518 - ret + pop af + call nz, LoadOAMData + pop bc + inc de + dec b + jr nz, asm_1f518 + ret + +Data_1f53a: + dr $1f53a, $1f552 -INCBIN "baserom.gbc",$1f53a,$1f55e - $1f53a +Data_1f552: + dr $1f552, $1f55e Func_1f55e: ; 0x1f55e - ld a, [$d604] - and a - ret z - ld a, [$d606] - inc a - ld [$d606], a - ld a, $40 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $1 - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d606] - srl a - srl a - srl a - and $3 - add $4f - cp $52 - call nz, LoadOAMData - ret + ld a, [wd604] + and a + ret z + ld a, [wd606] + inc a + ld [wd606], a + ld a, $40 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $1 + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd606] + srl a + srl a + srl a + and $3 + add $4f + cp $52 + call nz, LoadOAMData + ret Func_1f58b: ; 0x1f58b - ld a, [$d5bb] - and a - ret z - ld a, $50 - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, $3e - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d5bd] - ld e, a - ld d, $0 - ld hl, $75ad - add hl, de - ld a, [hl] - call LoadOAMData - ret - -INCBIN "baserom.gbc",$1f5ad,$20000 - $1f5ad - + ld a, [wd5bb] + and a + ret z + ld a, $50 + ld hl, hSCX + sub [hl] + ld b, a + ld a, $3e + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd5bd] + ld e, a + ld d, $0 + ld hl, Data_1f5ad + add hl, de + ld a, [hl] + call LoadOAMData + ret + +Data_1f5ad: + dr $1f5ad, $1f5b9 SECTION "bank8", ROMX, BANK[$8] Func_20000: ; 0x20000 - ld a, [$d54c] - cp $4 - jp z, Func_20230 - cp $c - jp z, Func_202a8 - cp $5 - jp z, Func_202b2 - cp $0 - jr z, .asm_20018 - scf - ret + ld a, [wd54c] + cp $4 + jp z, Func_20230 + cp $c + jp z, Func_202a8 + cp $5 + jp z, Func_202b2 + cp $0 + jr z, .asm_20018 + scf + ret + .asm_20018 - call Func_201f2 - ld a, [$d54d] - call CallInFollowingTable + call Func_201f2 + ld a, [wd54d] + call CallInFollowingTable PointerTable_20021: ; 0x20021 - dw Func_20041 - db Bank(Func_20041), $00 - - dw Func_2005f - db Bank(Func_2005f), $00 - - dw Func_2006b - db Bank(Func_2006b), $00 - - dw Func_200a3 - db Bank(Func_200a3), $00 - - dw Func_200d3 - db Bank(Func_200d3), $00 - - dw Func_20193 - db Bank(Func_20193), $00 - - dw CapturePokemonRedStage - db Bank(CapturePokemonRedStage), $00 - - dw Func_201ce - db Bank(Func_201ce), $00 + padded_dab Func_20041 + padded_dab Func_2005f + padded_dab Func_2006b + padded_dab Func_200a3 + padded_dab Func_200d3 + padded_dab Func_20193 + padded_dab CapturePokemonRedStage + padded_dab Func_201ce Func_20041: ; 0x20041 - ld a, [$d5b6] - cp $18 - jr nz, .asm_2005d - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_2005d - ld hl, $d54d - inc [hl] - ld a, $14 - ld [$d54e], a - ld a, $5 - ld [$d54f], a + ld a, [wd5b6] + cp $18 + jr nz, .asm_2005d + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_2005d + ld hl, wd54d + inc [hl] + ld a, $14 + ld [wd54e], a + ld a, $5 + ld [wd54f], a .asm_2005d - scf - ret + scf + ret Func_2005f: ; 0x2005f - ld [$ff8a], a - ld a, Bank(Func_10648) - ld hl, Func_10648 - call BankSwitch - scf - ret + callba Func_10648 + scf + ret Func_2006b: ; 0x2006b - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_20098 - call Func_1130 - jr nz, .asm_200a1 - ld [$ff8a], a - ld a, Bank(Func_10414) - ld hl, Func_10414 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10362) - ld hl, Func_10362 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_10301) - ld hl, Func_10301 - call nz, BankSwitch + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_20098 + call Func_1130 + jr nz, .asm_200a1 + callba Func_10414 + callba Func_10362 + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_10301) + ld hl, Func_10301 + call nz, BankSwitch .asm_20098 - ld a, $1 - ld [$d5c6], a - ld hl, $d54d - inc [hl] + ld a, $1 + ld [wd5c6], a + ld hl, wd54d + inc [hl] .asm_200a1 - scf - ret + scf + ret Func_200a3: ; 0x200a3 - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_200af - call Func_1130 - jr nz, .asm_200d1 + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_200af + call Func_1130 + jr nz, .asm_200d1 .asm_200af - ld [$ff8a], a - ld a, Bank(Func_10678) - ld hl, Func_10678 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10732) - ld hl, Func_10732 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10464) - ld hl, Func_10464 - call BankSwitch - ld hl, $d54d - inc [hl] + callba Func_10678 + callba Func_10732 + callba Func_10464 + ld hl, wd54d + inc [hl] .asm_200d1 - scf - ret + scf + ret Func_200d3: ; 0x200d3 - ld a, [$d5be] - dec a - ld [$d5be], a - jr z, .asm_200e6 - ld a, [$d5c4] - inc a - ld [$d5c4], a - and $3 - ret nz + ld a, [wd5be] + dec a + ld [wd5be], a + jr z, .asm_200e6 + ld a, [wd5c4] + inc a + ld [wd5c4], a + and $3 + ret nz .asm_200e6 - ld a, [$d5bf] - and a - jp z, .asm_20167 - xor a - ld [$d5bf], a - ld a, [$d5c3] - ld [$d5be], a - xor a - ld [$d5c4], a - ld a, [wCurrentCatchEmMon] - cp MEW - 1 - jr nz, .notMew - ld a, [$d5c5] - inc a - ld [$d5c5], a - jr nz, .asm_20116 + ld a, [wBallHitWildMon] + and a + jp z, .asm_20167 + xor a + ld [wBallHitWildMon], a + ld a, [wd5c3] + ld [wd5be], a + xor a + ld [wd5c4], a + ld a, [wCurrentCatchEmMon] + cp MEW - 1 + jr nz, .notMew + ld a, [wNumMewHitsLow] + inc a + ld [wNumMewHitsLow], a + jr nz, .asm_20116 .notMew - ld a, [wNumMonHits] - cp $3 - jr z, .hitMonThreeTimes - inc a - ld [wNumMonHits], a + ld a, [wNumMonHits] + cp $3 + jr z, .hitMonThreeTimes + inc a + ld [wNumMonHits], a .asm_20116 - ld bc, $34dc - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld bc, $0030 - ld de, $0000 - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5e9 - ld de, $2a2a - call Func_3372 - pop de - pop bc - ld hl, $d5e4 - ld de, $2a21 - call Func_3357 - ld a, [wNumMonHits] - ld [$ff8a], a - ld a, Bank(Func_10611) - ld hl, Func_10611 - call BankSwitch - ld c, $2 - jr .asm_2018a + ld bc, ThreeHundredThousandPoints + callba AddBigBCD6FromQueue + ld bc, $0030 + ld de, $0000 + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5e9 + ld de, Data_2a2a + call Func_3372 + pop de + pop bc + ld hl, wd5e4 + ld de, Data_2a21 + call Func_3357 + ld a, [wNumMonHits] + callba Func_10611 + ld c, $2 + jr .asm_2018a + .hitMonThreeTimes - xor a - ld [$d57e], a - ld a, $1 - ld [$d57f], a - ld hl, $d54d - inc [hl] - ld c, $2 - jr .asm_2018a + xor a + ld [wd57e], a + ld a, $1 + ld [wd57f], a + ld hl, wd54d + inc [hl] + ld c, $2 + jr .asm_2018a + .asm_20167 - ld a, [$d5be] - and a - ret nz - ld a, [$d5bc] - ld c, a - ld a, [$d5bd] - sub c - cp $1 - ld c, $0 - jr nc, .asm_2017c - ld c, $1 + ld a, [wd5be] + and a + ret nz + ld a, [wd5bc] + ld c, a + ld a, [wd5bd] + sub c + cp $1 + ld c, $0 + jr nc, .asm_2017c + ld c, $1 .asm_2017c - ld b, $0 - ld hl, $d5c1 - add hl, bc - ld a, [hl] - ld [$d5be], a - xor a - ld [$d5c4], a + ld b, $0 + ld hl, wd5c1 + add hl, bc + ld a, [hl] + ld [wd5be], a + xor a + ld [wd5c4], a .asm_2018a - ld a, [$d5bc] - add c - ld [$d5bd], a - scf - ret + ld a, [wd5bc] + add c + ld [wd5bd], a + scf + ret Func_20193: ; 0x20193 - ld a, [$d580] - and a - jr z, .asm_2019e - xor a - ld [$d580], a - ret + ld a, [wd580] + and a + jr z, .asm_2019e + xor a + ld [wd580], a + ret + .asm_2019e - ld [$ff8a], a - ld a, Bank(Func_10496) - ld hl, Func_10496 - call BankSwitch - ld hl, $d54d - inc [hl] - ld [$ff8a], a - ld a, Bank(Func_106b6) - ld hl, Func_106b6 - call BankSwitch - ld [$ff8a], a - ld a, Bank(AddCaughtPokemonToParty) - ld hl, AddCaughtPokemonToParty - call BankSwitch - scf - ret + callba Func_10496 + ld hl, wd54d + inc [hl] + callba Func_106b6 + callba AddCaughtPokemonToParty + scf + ret CapturePokemonRedStage: ; 0x201c2 - ld [$ff8a], a - ld a, Bank(CapturePokemon) - ld hl, CapturePokemon - call BankSwitch - scf - ret + callba CapturePokemon + scf + ret Func_201ce: ; 0x201ce - ld a, [$d5ca] - and a - ret nz - call Func_30e8 - ld [$ff8a], a - ld a, Bank(Func_dc00) - ld hl, Func_dc00 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10157) - ld hl, Func_10157 - call BankSwitch - ld de, $0001 - call PlaySong - scf - ret + ld a, [wd5ca] + and a + ret nz + call Fillwc600WithBlackTile + callba RestoreBallSaverAfterCatchEmMode + callba Func_10157 + ld de, $0001 + call PlaySong + scf + ret Func_201f2: ; 0x201f2 - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $7 - ld [$d54d], a - ld a, [wCurrentCatchEmMon] - cp NUM_POKEMON - 1 - jr nz, .asm_2021b - ld [$ff8a], a - ld a, Bank(SetPokemonOwnedFlag) - ld hl, SetPokemonOwnedFlag - call BankSwitch + callba Func_107f8 + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $7 + ld [wd54d], a + ; Automatically set Mew as caught, since you can't possibly catch it + ld a, [wCurrentCatchEmMon] + cp MEW - 1 + jr nz, .asm_2021b + callba SetPokemonOwnedFlag .asm_2021b - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_106a6) - ld hl, Func_106a6 - call BankSwitch - ret + callba Func_86d2 + callba Func_106a6 + ret Func_20230: ; 0x20230 - ld a, [$d5b6] - cp $18 - jr z, .asm_2029d - sla a - ld c, a - ld b, $0 - ld hl, $d586 - add hl, bc - ld d, $4 + ld a, [wd5b6] + cp $18 + jr z, .asm_2029d + sla a + ld c, a + ld b, $0 + ld hl, wd586 + add hl, bc + ld d, $4 .asm_20242 - ld a, $1 - ld [hli], a - inc hl - ld a, l - cp $b6 - jr z, .asm_2024e - dec d - jr nz, .asm_20242 + ld a, $1 + ld [hli], a + inc hl + ld a, l + cp wd5b6 % $100 + jr z, .asm_2024e + dec d + jr nz, .asm_20242 .asm_2024e - ld a, [$d5b6] - add $4 - cp $18 - jr c, .asm_20259 - ld a, $18 -.asm_20259 - ld [$d5b6], a - cp $18 - jr nz, .asm_20264 - xor a - ld [wIndicatorStates + 9], a + ld a, [wd5b6] + add $4 + cp $18 + jr c, .master_loop9 + ld a, $18 +.master_loop9 + ld [wd5b6], a + cp $18 + jr nz, .asm_20264 + xor a + ld [wIndicatorStates + 9], a .asm_20264 - ld [$ff8a], a - ld a, Bank(Func_10184) - ld hl, Func_10184 - call BankSwitch - ld bc, $34d6 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld bc, $0010 - ld de, $0000 - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5e9 - ld de, $2a3d - call Func_3372 - pop de - pop bc - ld hl, $d5e4 - ld de, $2a30 - call Func_3357 + callba Func_10184 + ld bc, OneHundredThousandPoints + callba AddBigBCD6FromQueue + ld bc, $0010 + ld de, $0000 + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5e9 + ld de, Data_2a3d + call Func_3372 + pop de + pop bc + ld hl, wd5e4 + ld de, Data_2a30 + call Func_3357 .asm_2029d - ld bc, $0001 - ld de, $0000 - call Func_3538 - scf - ret + ld bc, $0001 + ld de, $0000 + call Func_3538 + scf + ret Func_202a8: ; 0x202a8 - ld bc, $0000 - ld de, $1000 - call Func_3538 - ret + ld bc, $0000 + ld de, $1000 + call Func_3538 + ret Func_202b2: ; 0x202b2 - ld bc, $0005 - ld de, $0000 - call Func_3538 - ret + ld bc, $0005 + ld de, $0000 + call Func_3538 + ret Func_202bc: ; 0x202bc - ld a, [$d54c] - cp $4 - jp z, Func_204f1 - cp $c - jp z, Func_20569 - cp $f - jp z, Func_20573 - cp $e - jp z, Func_2057a - cp $0 - jr z, .asm_202d9 - scf - ret + ld a, [wd54c] + cp $4 + jp z, Func_204f1 + cp $c + jp z, Func_20569 + cp $f + jp z, Func_20573 + cp $e + jp z, Func_2057a + cp $0 + jr z, .asm_202d9 + scf + ret + .asm_202d9 - call Func_204b3 - ld a, [$d54d] - call CallInFollowingTable + call Func_204b3 + ld a, [wd54d] + call CallInFollowingTable PointerTable_202e2: ; 0x202e2 - dw Func_20302 - db Bank(Func_20302), $00 - - dw Func_20320 - db Bank(Func_20320), $00 - - dw Func_2032c - db Bank(Func_2032c), $00 - - dw Func_20364 - db Bank(Func_20364), $00 - - dw Func_20394 - db Bank(Func_20394), $00 - - dw Func_20454 - db Bank(Func_20454), $00 - - dw CapturePokemonBlueStage - db Bank(CapturePokemonBlueStage), $00 - - dw Func_2048f - db Bank(Func_2048f), $00 + padded_dab Func_20302 + padded_dab Func_20320 + padded_dab Func_2032c + padded_dab Func_20364 + padded_dab Func_20394 + padded_dab Func_20454 + padded_dab CapturePokemonBlueStage + padded_dab Func_2048f Func_20302: ; 0x20302 - ld a, [$d5b6] - cp $18 - jr nz, .asm_2031e - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_2031e - ld hl, $d54d - inc [hl] - ld a, $14 - ld [$d54e], a - ld a, $5 - ld [$d54f], a + ld a, [wd5b6] + cp $18 + jr nz, .asm_2031e + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_2031e + ld hl, wd54d + inc [hl] + ld a, $14 + ld [wd54e], a + ld a, $5 + ld [wd54f], a .asm_2031e - scf - ret + scf + ret Func_20320: ; 0x20320 - ld [$ff8a], a - ld a, Bank(Func_10648) - ld hl, Func_10648 - call BankSwitch - scf - ret + callba Func_10648 + scf + ret Func_2032c: ; 0x2032c - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_20333 - call Func_1130 - jr nz, .asm_20362 - ld [$ff8a], a - ld a, Bank(Func_10414) - ld hl, Func_10414 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10362) - ld hl, Func_10362 - call BankSwitch - ld a, [hGameBoyColorFlag] - and a - ld [$ff8a], a - ld a, Bank(Func_10301) - ld hl, Func_10301 - call nz, BankSwitch + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_20333 + call Func_1130 + jr nz, .asm_20362 + callba Func_10414 + callba Func_10362 + ld a, [hGameBoyColorFlag] + and a + ld [hFarCallTempA], a + ld a, Bank(Func_10301) + ld hl, Func_10301 + call nz, BankSwitch .asm_20333 - ld a, $1 - ld [$d5c6], a - ld hl, $d54d - inc [hl] + ld a, $1 + ld [wd5c6], a + ld hl, wd54d + inc [hl] .asm_20362 - scf - ret + scf + ret Func_20364: ; 0x20364 - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_20370 - call Func_1130 - jr nz, .asm_20392 + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_20370 + call Func_1130 + jr nz, .asm_20392 .asm_20370 - ld [$ff8a], a - ld a, Bank(Func_10678) - ld hl, Func_10678 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10732) - ld hl, Func_10732 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10464) - ld hl, Func_10464 - call BankSwitch - ld hl, $d54d - inc [hl] + callba Func_10678 + callba Func_10732 + callba Func_10464 + ld hl, wd54d + inc [hl] .asm_20392 - scf - ret + scf + ret Func_20394: ; 0x20394 - ld a, [$d5be] - dec a - ld [$d5be], a - jr z, .asm_203a7 - ld a, [$d5c4] - inc a - ld [$d5c4], a - and $3 - ret nz + ld a, [wd5be] + dec a + ld [wd5be], a + jr z, .asm_203a7 + ld a, [wd5c4] + inc a + ld [wd5c4], a + and $3 + ret nz .asm_203a7 - ld a, [$d5bf] - and a - jp z, .asm_20428 - xor a - ld [$d5bf], a - ld a, [$d5c3] - ld [$d5be], a - xor a - ld [$d5c4], a - ld a, [wCurrentCatchEmMon] - cp MEW - 1 - jr nz, .notMew - ld a, [$d5c5] - inc a - ld [$d5c5], a - jr nz, .asm_203d7 + ld a, [wBallHitWildMon] + and a + jp z, .asm_20428 + xor a + ld [wBallHitWildMon], a + ld a, [wd5c3] + ld [wd5be], a + xor a + ld [wd5c4], a + ld a, [wCurrentCatchEmMon] + cp MEW - 1 + jr nz, .notMew + ld a, [wNumMewHitsLow] + inc a + ld [wNumMewHitsLow], a + jr nz, .asm_203d7 .notMew - ld a, [wNumMonHits] - cp $3 - jr z, .asm_20417 - inc a - ld [wNumMonHits], a + ld a, [wNumMonHits] + cp $3 + jr z, .asm_20417 + inc a + ld [wNumMonHits], a .asm_203d7 - ld bc, $34dc - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld bc, $0030 - ld de, $0000 - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5e9 - ld de, $2a2a - call Func_3372 - pop de - pop bc - ld hl, $d5e4 - ld de, $2a21 - call Func_3357 - ld a, [wNumMonHits] - ld [$ff8a], a - ld a, Bank(Func_10611) - ld hl, Func_10611 - call BankSwitch - ld c, $2 - jr .asm_2044b + ld bc, ThreeHundredThousandPoints + callba AddBigBCD6FromQueue + ld bc, $0030 + ld de, $0000 + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5e9 + ld de, Data_2a2a + call Func_3372 + pop de + pop bc + ld hl, wd5e4 + ld de, Data_2a21 + call Func_3357 + ld a, [wNumMonHits] + callba Func_10611 + ld c, $2 + jr .asm_2044b + .asm_20417 - xor a - ld [$d57e], a - ld a, $1 - ld [$d57f], a - ld hl, $d54d - inc [hl] - ld c, $2 - jr .asm_2044b + xor a + ld [wd57e], a + ld a, $1 + ld [wd57f], a + ld hl, wd54d + inc [hl] + ld c, $2 + jr .asm_2044b + .asm_20428 - ld a, [$d5be] - and a - ret nz - ld a, [$d5bc] - ld c, a - ld a, [$d5bd] - sub c - cp $1 - ld c, $0 - jr nc, .asm_2043d - ld c, $1 + ld a, [wd5be] + and a + ret nz + ld a, [wd5bc] + ld c, a + ld a, [wd5bd] + sub c + cp $1 + ld c, $0 + jr nc, .asm_2043d + ld c, $1 .asm_2043d - ld b, $0 - ld hl, $d5c1 - add hl, bc - ld a, [hl] - ld [$d5be], a - xor a - ld [$d5c4], a + ld b, $0 + ld hl, wd5c1 + add hl, bc + ld a, [hl] + ld [wd5be], a + xor a + ld [wd5c4], a .asm_2044b - ld a, [$d5bc] - add c - ld [$d5bd], a - scf - ret + ld a, [wd5bc] + add c + ld [wd5bd], a + scf + ret Func_20454: ; 0x20454 - ld a, [$d580] - and a - jr z, .asm_2045f - xor a - ld [$d580], a - ret + ld a, [wd580] + and a + jr z, .asm_2045f + xor a + ld [wd580], a + ret + .asm_2045f - ld [$ff8a], a - ld a, Bank(Func_10496) - ld hl, Func_10496 - call BankSwitch - ld hl, $d54d - inc [hl] - ld [$ff8a], a - ld a, Bank(Func_106b6) - ld hl, Func_106b6 - call BankSwitch - ld [$ff8a], a - ld a, Bank(AddCaughtPokemonToParty) - ld hl, AddCaughtPokemonToParty - call BankSwitch - scf - ret + callba Func_10496 + ld hl, wd54d + inc [hl] + callba Func_106b6 + callba AddCaughtPokemonToParty + scf + ret CapturePokemonBlueStage: ; 0x20483 - ld [$ff8a], a - ld a, Bank(CapturePokemon) - ld hl, CapturePokemon - call BankSwitch - scf - ret + callba CapturePokemon + scf + ret Func_2048f: ; 0x2048f - ld a, [$d5ca] - and a - ret nz - call Func_30e8 - ld [$ff8a], a - ld a, Bank(Func_dc00) - ld hl, Func_dc00 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10157) - ld hl, Func_10157 - call BankSwitch - ld de, $0001 - call PlaySong - scf - ret + ld a, [wd5ca] + and a + ret nz + call Fillwc600WithBlackTile + callba RestoreBallSaverAfterCatchEmMode + callba Func_10157 + ld de, $0001 + call PlaySong + scf + ret Func_204b3: ; 0x204b3 - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $7 - ld [$d54d], a - ld a, [wCurrentCatchEmMon] - cp MEW - 1 - jr nz, .notMew - ld [$ff8a], a - ld a, Bank(SetPokemonOwnedFlag) - ld hl, SetPokemonOwnedFlag - call BankSwitch + callba Func_107f8 + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $7 + ld [wd54d], a + ; Automatically set Mew as caught, since you can't possibly catch it + ld a, [wCurrentCatchEmMon] + cp MEW - 1 + jr nz, .notMew + callba SetPokemonOwnedFlag .notMew - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_106a6) - ld hl, Func_106a6 - call BankSwitch - ret + callba Func_86d2 + callba Func_106a6 + ret Func_204f1: ; 0x204f1 - ld a, [$d5b6] - cp $18 - jr z, .asm_2055e - sla a - ld c, a - ld b, $0 - ld hl, $d586 - add hl, bc - ld d, $4 + ld a, [wd5b6] + cp $18 + jr z, .asm_2055e + sla a + ld c, a + ld b, $0 + ld hl, wd586 + add hl, bc + ld d, $4 .asm_20503 - ld a, $1 - ld [hli], a - inc hl - ld a, l - cp $b6 ; TODO: This is the low byte of a pointer - jr z, .asm_2050f - dec d - jr nz, .asm_20503 + ld a, $1 + ld [hli], a + inc hl + ld a, l + cp wd5b6 % $100 + jr z, .asm_2050f + dec d + jr nz, .asm_20503 .asm_2050f - ld a, [$d5b6] - add $4 - cp $18 - jr c, .asm_2051a - ld a, $18 + ld a, [wd5b6] + add $4 + cp $18 + jr c, .asm_2051a + ld a, $18 .asm_2051a - ld [$d5b6], a - cp $18 - jr nz, .asm_20525 - xor a - ld [wIndicatorStates + 9], a + ld [wd5b6], a + cp $18 + jr nz, .asm_20525 + xor a + ld [wIndicatorStates + 9], a .asm_20525 - ld [$ff8a], a - ld a, Bank(Func_10184) - ld hl, Func_10184 - call BankSwitch - ld bc, $34d6 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld bc, $0010 - ld de, $0000 - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5e9 - ld de, $2a3d - call Func_3372 - pop de - pop bc - ld hl, $d5e4 - ld de, $2a30 - call Func_3357 + callba Func_10184 + ld bc, OneHundredThousandPoints + callba AddBigBCD6FromQueue + ld bc, $0010 + ld de, $0000 + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5e9 + ld de, Data_2a3d + call Func_3372 + pop de + pop bc + ld hl, wd5e4 + ld de, Data_2a30 + call Func_3357 .asm_2055e - ld bc, $0001 - ld de, $0000 - call Func_3538 - scf - ret + ld bc, $0001 + ld de, $0000 + call Func_3538 + scf + ret Func_20569: ; 0x20569 - ld bc, $0000 - ld de, $1000 - call Func_3538 - ret + ld bc, $0000 + ld de, $1000 + call Func_3538 + ret Func_20573: ; 0x20573 - ld bc, $0005 - ld de, $0000 - ret + ld bc, $0005 + ld de, $0000 + ret Func_2057a: ; 0x2057a - ld bc, $0005 - ld de, $0000 - ret + ld bc, $0005 + ld de, $0000 + ret Func_20581: ; 0x20581 - ld a, [$d54c] - cp $4 - jp z, Func_2080f - cp $3 - jp z, Func_20839 - cp $5 - jp z, Func_2085a - cp $6 - jp z, Func_20887 - cp $7 - jp z, Func_208a8 - cp $8 - jp z, Func_208c9 - cp $9 - jp z, Func_208ea - cp $a - jp z, Func_2090b - cp $b - jp z, Func_2092c - cp $c - jp z, Func_2094d - cp $d - jp z, Func_20b02 - cp $2 - jp z, Func_20a65 - cp $1 - jp z, Func_20a82 - cp $0 - jr z, .asm_205cb - scf - ret + ld a, [wd54c] + cp $4 + jp z, Func_2080f + cp $3 + jp z, Func_20839 + cp $5 + jp z, Func_2085a + cp $6 + jp z, Func_20887 + cp $7 + jp z, Func_208a8 + cp $8 + jp z, Func_208c9 + cp $9 + jp z, Func_208ea + cp $a + jp z, Func_2090b + cp $b + jp z, Func_2092c + cp $c + jp z, Func_2094d + cp $d + jp z, Func_20b02 + cp $2 + jp z, Func_20a65 + cp $1 + jp z, Func_20a82 + cp $0 + jr z, .asm_205cb + scf + ret + .asm_205cb - call Func_2077b - ld a, [$d54d] - call CallInFollowingTable + call Func_2077b + ld a, [wd54d] + call CallInFollowingTable PointerTable_205d4: ; 0x205d4 - dw Func_205e0 - db Bank(Func_205e0), $00 - - dw Func_2070b - db Bank(Func_2070b), $00 - - dw Func_20757 - db Bank(Func_20757), $00 + padded_dab Func_205e0 + padded_dab Func_2070b + padded_dab Func_20757 Func_205e0: ; 0x205e0 - ld a, [wCurrentStage] - ld b, a - ld a, [$d578] - and a - ret z - dec a - bit 0, b - jr z, .asm_205f0 - add $c + ld a, [wCurrentStage] + ld b, a + ld a, [wd578] + and a + ret z + dec a + bit 0, b + jr z, .asm_205f0 + add $c .asm_205f0 - ld c, a - ld b, $0 - ld hl, $d566 - add hl, bc - ld a, [hl] - and a - ret z - xor a - ld [hl], a - ld [$d551], a - call Func_20651 - ld a, [$d558] - ld [wIndicatorStates + 2], a - ld a, [$d559] - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 10], a - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call nz, BankSwitch - ld bc, $34e8 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - call Func_30e8 - call Func_30db - ld de, $2bd8 - ld hl, $d5cc - call Func_32aa - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_2064f - ld a, $37 - ld hl, $4af0 - ld de, $0070 - ld bc, $0008 - call Func_7dc + ld c, a + ld b, $0 + ld hl, wd566 + add hl, bc + ld a, [hl] + and a + ret z + xor a + ld [hl], a + ld [wd551], a + call Func_20651 + ld a, [wd558] + ld [wIndicatorStates + 2], a + ld a, [wd559] + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 10], a + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(Func_14135) + ld hl, Func_14135 + call nz, BankSwitch + ld bc, OneMillionPoints + callba AddBigBCD6FromQueue + call Fillwc600WithBlackTile + call Func_30db + ld de, YeahYouGotItText + ld hl, wd5cc + call LoadTextHeader + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_2064f + ld a, BANK(StageRedFieldBottomOBJPalette6) + ld hl, StageRedFieldBottomOBJPalette6 + ld de, $0070 + ld bc, $0008 + call Func_7dc .asm_2064f - scf - ret + scf + ret Func_20651: ; 0x20651 - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_20681 - ld a, [wCurrentEvolutionType] - dec a - ld c, a - ld b, $0 - swap c - sla c - ld hl, $4e80 - add hl, bc - ld a, [$d554] - ld c, a - ld b, $0 - swap c - sla c - push hl - ld hl, $8ae0 - add hl, bc - ld d, h - ld e, l - pop hl - ld bc, $0020 - ld a, $36 - call LoadVRAMData + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_20681 + ld a, [wCurrentEvolutionType] + dec a + ld c, a + ld b, $0 + swap c + sla c + ld hl, Data_d8e80 + add hl, bc + ld a, [wd554] + ld c, a + ld b, $0 + swap c + sla c + push hl + ld hl, vTilesSH tile $2e + add hl, bc + ld d, h + ld e, l + pop hl + ld bc, $0020 + ld a, BANK(Data_d8e80) + call LoadVRAMData .asm_20681 - ld a, [$d554] - inc a - ld [$d554], a - cp $1 - jr nz, .asm_20693 - ld de, $0728 - call PlaySoundEffect - ret + ld a, [wd554] + inc a + ld [wd554], a + cp $1 + jr nz, .asm_20693 + lb de, $07, $28 + call PlaySoundEffect + ret + .asm_20693 - cp $2 - jr nz, .asm_2069e - ld de, $0744 - call PlaySoundEffect - ret + cp $2 + jr nz, .asm_2069e + lb de, $07, $44 + call PlaySoundEffect + ret + .asm_2069e - cp $3 - ret nz - ld de, $0745 - call PlaySoundEffect - ld a, $1 - ld [$d604], a - ld a, $80 - ld [wIndicatorStates + 4], a - xor a - ld [wIndicatorStates + 9], a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 10], a - ld [wIndicatorStates + 8], a - ld [wIndicatorStates + 13], a - ld [wIndicatorStates + 14], a - ld [wIndicatorStates + 11], a - ld [wIndicatorStates + 12], a - ld [wIndicatorStates + 6], a - ld [wIndicatorStates + 7], a - ld [$d558], a - ld [$d559], a - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, $36 - ld hl, $6c60 - ld de, $8200 - ld bc, $00e0 - call LoadVRAMData - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_20700 - ld a, $37 - ld hl, $4af8 - ld de, $0078 - ld bc, $0008 - call Func_7dc + cp $3 + ret nz + lb de, $07, $45 + call PlaySoundEffect + ld a, $1 + ld [wd604], a + ld a, $80 + ld [wIndicatorStates + 4], a + xor a + ld [wIndicatorStates + 9], a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 10], a + ld [wIndicatorStates + 8], a + ld [wIndicatorStates + 13], a + ld [wIndicatorStates + 14], a + ld [wIndicatorStates + 11], a + ld [wIndicatorStates + 12], a + ld [wIndicatorStates + 6], a + ld [wIndicatorStates + 7], a + ld [wd558], a + ld [wd559], a + ld a, [wCurrentStage] + bit 0, a + ret z + ld a, BANK(StageSharedBonusSlotGlowGfx) + ld hl, StageSharedBonusSlotGlowGfx + $60 + ld de, vTilesOB tile $20 + ld bc, $00e0 + call LoadVRAMData + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_20700 + ld a, BANK(StageRedFieldBottomOBJPalette7) + ld hl, StageRedFieldBottomOBJPalette7 + ld de, $0078 + ld bc, $0008 + call Func_7dc .asm_20700 - ld [$ff8a], a - ld a, Bank(Func_16425) - ld hl, Func_16425 - call BankSwitch - ret + callba Func_16425 + ret Func_2070b: ; 0x2070b - ld [$ff8a], a - ld a, Bank(Func_dc00) - ld hl, Func_dc00 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10ca5) - ld hl, Func_10ca5 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10ac8) - ld hl, Func_10ac8 - call BankSwitch - ld de, $0001 - call PlaySong - ld hl, $d629 - call Func_e4a - ld [$ff8a], a - ld a, Bank(SetPokemonOwnedFlag) - ld hl, SetPokemonOwnedFlag - call BankSwitch - ld a, [$d624] - cp $3 - ret z - add $2 - cp $3 - jr c, .asm_2074d - ld a, $3 + callba RestoreBallSaverAfterCatchEmMode + callba Func_10ca5 + callba Func_10ac8 + ld de, $0001 + call PlaySong + ld hl, wd629 + call Func_e4a + callba SetPokemonOwnedFlag + ld a, [wd624] + cp $3 + ret z + add $2 + cp $3 + jr c, .asm_2074d + ld a, $3 .asm_2074d - ld [$d625], a - ld a, $80 - ld [$d626], a - scf - ret + ld [wd625], a + ld a, $80 + ld [wd626], a + scf + ret Func_20757: ; 0x20757 - ld a, [$d5ca] - and a - ret nz - call Func_30e8 - ld [$ff8a], a - ld a, Bank(Func_dc00) - ld hl, Func_dc00 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10ac8) - ld hl, Func_10ac8 - call BankSwitch - ld de, $0001 - call PlaySong - scf - ret + ld a, [wd5ca] + and a + ret nz + call Fillwc600WithBlackTile + callba RestoreBallSaverAfterCatchEmMode + callba Func_10ac8 + ld de, $0001 + call PlaySong + scf + ret Func_2077b: ; 0x2077b - ld hl, $d556 - ld a, [hli] - ld c, a - ld b, [hl] - or b - jr z, .asm_2078e - dec bc - ld a, b - ld [hld], a - ld [hl], c - or c - jr nz, .asm_2078e - call Func_20a55 + ld hl, wd556 + ld a, [hli] + ld c, a + ld b, [hl] + or b + jr z, .asm_2078e + dec bc + ld a, b + ld [hld], a + ld [hl], c + or c + jr nz, .asm_2078e + call Func_20a55 .asm_2078e - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $2 - ld [$d54d], a - xor a - ld [$d604], a - ld hl, wIndicatorStates - ld [wIndicatorStates + 4], a - ld [wIndicatorStates + 9], a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 10], a - ld [wIndicatorStates + 8], a - ld [wIndicatorStates + 13], a - ld [wIndicatorStates + 14], a - ld [wIndicatorStates + 11], a - ld [wIndicatorStates + 12], a - ld [wIndicatorStates + 6], a - ld [wIndicatorStates + 7], a - ld [$d558], a - ld [$d559], a - ld [$d551], a - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_207f5 - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_16425) - ld hl, Func_16425 - call BankSwitch + callba Func_107f8 + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $2 + ld [wd54d], a + xor a + ld [wd604], a + ld hl, wIndicatorStates + ld [wIndicatorStates + 4], a + ld [wIndicatorStates + 9], a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 10], a + ld [wIndicatorStates + 8], a + ld [wIndicatorStates + 13], a + ld [wIndicatorStates + 14], a + ld [wIndicatorStates + 11], a + ld [wIndicatorStates + 12], a + ld [wIndicatorStates + 6], a + ld [wIndicatorStates + 7], a + ld [wd558], a + ld [wd559], a + ld [wd551], a + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_207f5 + callba Func_14135 + callba Func_16425 .asm_207f5 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $2ad1 - call Func_32aa - ret + callba Func_86d2 + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, EvolutionFailedText + call LoadTextHeader + ret Func_2080f: ; 0x2080f - ld bc, $0001 - ld de, $5000 - call Func_3538 - ld a, [$d551] - and a - jr nz, .asm_20837 - ld a, [wIndicatorStates + 9] - and a - jr z, .asm_20837 - xor a - ld [wIndicatorStates + 9], a - ld a, [$d55c] - and a - ld a, $0 - ld [$d55c], a - jp nz, Func_20977 - jp Func_209eb + ld bc, $0001 + ld de, $5000 + call Func_3538 + ld a, [wd551] + and a + jr nz, .asm_20837 + ld a, [wIndicatorStates + 9] + and a + jr z, .asm_20837 + xor a + ld [wIndicatorStates + 9], a + ld a, [wd55c] + and a + ld a, $0 + ld [wd55c], a + jp nz, Func_20977 + jp Func_209eb + .asm_20837 - scf - ret + scf + ret Func_20839: ; 0x20839 - ld a, [$d551] - and a - jr nz, .asm_20858 - ld a, [wIndicatorStates + 2] - and a - jr z, .asm_20858 - xor a - ld [wIndicatorStates + 2], a - ld a, [$d563] - and a - ld a, $0 - ld [$d563], a - jp nz, Func_20977 - jp Func_209eb + ld a, [wd551] + and a + jr nz, .asm_20858 + ld a, [wIndicatorStates + 2] + and a + jr z, .asm_20858 + xor a + ld [wIndicatorStates + 2], a + ld a, [wd563] + and a + ld a, $0 + ld [wd563], a + jp nz, Func_20977 + jp Func_209eb + .asm_20858 - scf - ret + scf + ret Func_2085a: ; 0x2085a - ld bc, $0007 - ld de, $5000 - call Func_3538 - ld a, [$d551] - and a - jr nz, .asm_20885 - ld a, [wIndicatorStates + 3] - and a - jr z, .asm_20885 - xor a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 10], a - ld a, [$d562] - and a - ld a, $0 - ld [$d562], a - jp nz, Func_20977 - jp Func_209eb + ld bc, $0007 + ld de, $5000 + call Func_3538 + ld a, [wd551] + and a + jr nz, .asm_20885 + ld a, [wIndicatorStates + 3] + and a + jr z, .asm_20885 + xor a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 10], a + ld a, [wd562] + and a + ld a, $0 + ld [wd562], a + jp nz, Func_20977 + jp Func_209eb + .asm_20885 - scf - ret + scf + ret Func_20887: ; 0x20887 - ld a, [$d551] - and a - jr nz, .asm_208a6 - ld a, [wIndicatorStates + 8] - and a - jr z, .asm_208a6 - xor a - ld [wIndicatorStates + 8], a - ld a, [$d561] - and a - ld a, $0 - ld [$d561], a - jp nz, Func_20977 - jp Func_209eb + ld a, [wd551] + and a + jr nz, .asm_208a6 + ld a, [wIndicatorStates + 8] + and a + jr z, .asm_208a6 + xor a + ld [wIndicatorStates + 8], a + ld a, [wd561] + and a + ld a, $0 + ld [wd561], a + jp nz, Func_20977 + jp Func_209eb + .asm_208a6 - scf - ret + scf + ret Func_208a8: ; 0x208a8 - ld a, [$d551] - and a - jr nz, .asm_208c7 - ld a, [wIndicatorStates + 13] - and a - jr z, .asm_208c7 - xor a - ld [wIndicatorStates + 13], a - ld a, [$d55d] - and a - ld a, $0 - ld [$d55d], a - jp nz, Func_20977 - jp Func_209eb + ld a, [wd551] + and a + jr nz, .asm_208c7 + ld a, [wIndicatorStates + 13] + and a + jr z, .asm_208c7 + xor a + ld [wIndicatorStates + 13], a + ld a, [wd55d] + and a + ld a, $0 + ld [wd55d], a + jp nz, Func_20977 + jp Func_209eb + .asm_208c7 - scf - ret + scf + ret Func_208c9: ; 0x208c9 - ld a, [$d551] - and a - jr nz, .asm_208e8 - ld a, [wIndicatorStates + 14] - and a - jr z, .asm_208e8 - xor a - ld [wIndicatorStates + 14], a - ld a, [$d55e] - and a - ld a, $0 - ld [$d55e], a - jp nz, Func_20977 - jp Func_209eb + ld a, [wd551] + and a + jr nz, .asm_208e8 + ld a, [wIndicatorStates + 14] + and a + jr z, .asm_208e8 + xor a + ld [wIndicatorStates + 14], a + ld a, [wd55e] + and a + ld a, $0 + ld [wd55e], a + jp nz, Func_20977 + jp Func_209eb + .asm_208e8 - scf - ret + scf + ret Func_208ea: ; 0x208ea - ld a, [$d551] - and a - jr nz, .asm_20909 - ld a, [wIndicatorStates + 11] - and a - jr z, .asm_20909 - xor a - ld [wIndicatorStates + 11], a - ld a, [$d55f] - and a - ld a, $0 - ld [$d55f], a - jp nz, Func_20977 - jp Func_209eb + ld a, [wd551] + and a + jr nz, .asm_20909 + ld a, [wIndicatorStates + 11] + and a + jr z, .asm_20909 + xor a + ld [wIndicatorStates + 11], a + ld a, [wd55f] + and a + ld a, $0 + ld [wd55f], a + jp nz, Func_20977 + jp Func_209eb + .asm_20909 - scf - ret + scf + ret Func_2090b: ; 0x2090b - ld a, [$d551] - and a - jr nz, .asm_2092a - ld a, [wIndicatorStates + 12] - and a - jr z, .asm_2092a - xor a - ld [wIndicatorStates + 12], a - ld a, [$d560] - and a - ld a, $0 - ld [$d560], a - jp nz, Func_20977 - jp Func_209eb + ld a, [wd551] + and a + jr nz, .asm_2092a + ld a, [wIndicatorStates + 12] + and a + jr z, .asm_2092a + xor a + ld [wIndicatorStates + 12], a + ld a, [wd560] + and a + ld a, $0 + ld [wd560], a + jp nz, Func_20977 + jp Func_209eb + .asm_2092a - scf - ret + scf + ret Func_2092c: ; 0x2092c - ld a, [$d551] - and a - jr nz, .asm_2094b - ld a, [wIndicatorStates + 6] - and a - jr z, .asm_2094b - xor a - ld [wIndicatorStates + 6], a - ld a, [$d565] - and a - ld a, $0 - ld [$d565], a - jp nz, Func_20977 - jp Func_209eb + ld a, [wd551] + and a + jr nz, .asm_2094b + ld a, [wIndicatorStates + 6] + and a + jr z, .asm_2094b + xor a + ld [wIndicatorStates + 6], a + ld a, [wd565] + and a + ld a, $0 + ld [wd565], a + jp nz, Func_20977 + jp Func_209eb + .asm_2094b - scf - ret + scf + ret Func_2094d: ; 0x2094d - ld bc, $0000 - ld de, $1500 - call Func_3538 - ld a, [$d551] - and a - jr nz, .asm_20975 - ld a, [wIndicatorStates + 7] - and a - jr z, .asm_20975 - xor a - ld [wIndicatorStates + 7], a - ld a, [$d564] - and a - ld a, $0 - ld [$d564], a - jp nz, Func_20977 - jp Func_209eb + ld bc, $0000 + ld de, $1500 + call Func_3538 + ld a, [wd551] + and a + jr nz, .asm_20975 + ld a, [wIndicatorStates + 7] + and a + jr z, .asm_20975 + xor a + ld [wIndicatorStates + 7], a + ld a, [wd564] + and a + ld a, $0 + ld [wd564], a + jp nz, Func_20977 + jp Func_209eb + .asm_20975 - scf - ret + scf + ret Func_20977: ; 0x20977 - ld de, $0746 - call PlaySoundEffect - call Func_20af5 - ld a, [wCurrentEvolutionType] - ld [hl], a - ld [$d551], a - ld a, [wIndicatorStates + 2] - ld [$d558], a - ld a, [wIndicatorStates + 3] - ld [$d559], a - xor a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 10], a - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call nz, BankSwitch - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_209bf - ld a, $37 - ld hl, $5188 - ld de, $0070 - ld bc, $0010 - call Func_7dc + lb de, $07, $46 + call PlaySoundEffect + call Func_20af5 + ld a, [wCurrentEvolutionType] + ld [hl], a + ld [wd551], a + ld a, [wIndicatorStates + 2] + ld [wd558], a + ld a, [wIndicatorStates + 3] + ld [wd559], a + xor a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 10], a + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(Func_14135) + ld hl, Func_14135 + call nz, BankSwitch + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_209bf + ld a, BANK(Data_dd188) + ld hl, Data_dd188 + ld de, $0070 + ld bc, $0010 + call Func_7dc .asm_209bf - ld bc, $34dc - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - call Func_30e8 - call Func_30db - ld a, [wCurrentEvolutionType] - dec a - ld c, a - ld b, $0 - sla c - ld hl, $2bf0 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld hl, $d5cc - call Func_32aa - scf - ret + ld bc, ThreeHundredThousandPoints + callba AddBigBCD6FromQueue + call Fillwc600WithBlackTile + call Func_30db + ld a, [wCurrentEvolutionType] + dec a + ld c, a + ld b, $0 + sla c + ld hl, Data_2bf0 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld hl, wd5cc + call LoadTextHeader + scf + ret Func_209eb: ; 0x209eb - ld de, $0747 - call PlaySoundEffect - ld a, $1 - ld [$d551], a - ld a, $80 - ld [wIndicatorStates], a - ld [wIndicatorStates + 1], a - ld a, [wIndicatorStates + 2] - ld [$d558], a - ld a, [wIndicatorStates + 3] - ld [$d559], a - xor a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 10], a - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call nz, BankSwitch - ld a, $58 - ld [$d556], a - ld a, $2 - ld [$d557], a - ld bc, $34dc - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld a, [wCurrentEvolutionType] - cp EVO_EXPERIENCE - ld de, $2b7b - jr z, .asm_20a50 - ld de, $2b93 + lb de, $07, $47 + call PlaySoundEffect + ld a, $1 + ld [wd551], a + ld a, $80 + ld [wIndicatorStates], a + ld [wIndicatorStates + 1], a + ld a, [wIndicatorStates + 2] + ld [wd558], a + ld a, [wIndicatorStates + 3] + ld [wd559], a + xor a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 10], a + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(Func_14135) + ld hl, Func_14135 + call nz, BankSwitch + ld a, $58 + ld [wd556], a + ld a, $2 + ld [wd557], a + ld bc, ThreeHundredThousandPoints + callba AddBigBCD6FromQueue + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld a, [wCurrentEvolutionType] + cp EVO_EXPERIENCE + ld de, PokemonIsTiredText + jr z, .asm_20a50 + ld de, ItemNotFoundText .asm_20a50 - call Func_32aa - scf - ret + call LoadTextHeader + scf + ret Func_20a55: ; 0x20a55 - ld a, [$d551] - and a - jr z, .asm_20a63 - ld a, [wIndicatorStates + 1] - and a - jr z, .asm_20a63 - jr asm_20a9f + ld a, [wd551] + and a + jr z, .asm_20a63 + ld a, [wIndicatorStates + 1] + and a + jr z, .asm_20a63 + jr asm_20a9f + .asm_20a63 - scf - ret + scf + ret Func_20a65: ; 0x20a65 - ld a, [$d551] - and a - jr z, .asm_20a80 - ld a, [wIndicatorStates + 1] - and a - jr z, .asm_20a80 - ld bc, $34d0 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - jr asm_20a9f + ld a, [wd551] + and a + jr z, .asm_20a80 + ld a, [wIndicatorStates + 1] + and a + jr z, .asm_20a80 + ld bc, TenThousandPoints + callba AddBigBCD6FromQueue + jr asm_20a9f + .asm_20a80 - scf - ret + scf + ret Func_20a82: ; 0x20a82 - ld a, [$d551] - and a - jr z, .asm_20a9d - ld a, [wIndicatorStates] - and a - jr z, .asm_20a9d - ld bc, $34d0 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - jr asm_20a9f + ld a, [wd551] + and a + jr z, .asm_20a9d + ld a, [wIndicatorStates] + and a + jr z, .asm_20a9d + ld bc, TenThousandPoints + callba AddBigBCD6FromQueue + jr asm_20a9f + .asm_20a9d - scf - ret + scf + ret + asm_20a9f: - xor a - ld [wIndicatorStates], a - ld [wIndicatorStates + 1], a - ld [$d551], a - ld a, [$d558] - ld [wIndicatorStates + 2], a - ld a, [$d559] - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 10], a - ld a, [$d4ac] - bit 0, a - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call nz, BankSwitch - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_20ada - ld a, $37 - ld hl, $4af0 - ld de, $0070 - ld bc, $0008 - call Func_7dc + xor a + ld [wIndicatorStates], a + ld [wIndicatorStates + 1], a + ld [wd551], a + ld a, [wd558] + ld [wIndicatorStates + 2], a + ld a, [wd559] + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 10], a + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(Func_14135) + ld hl, Func_14135 + call nz, BankSwitch + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_20ada + ld a, BANK(StageRedFieldBottomOBJPalette6) + ld hl, StageRedFieldBottomOBJPalette6 + ld de, $0070 + ld bc, $0008 + call Func_7dc .asm_20ada - call Func_30e8 - call Func_30db - ld a, [wCurrentEvolutionType] - cp EVO_EXPERIENCE - ld de, $2ba9 - jr z, .asm_20aed - ld de, $2bc2 + call Fillwc600WithBlackTile + call Func_30db + ld a, [wCurrentEvolutionType] + cp EVO_EXPERIENCE + ld de, PokemonRecoveredText + jr z, .asm_20aed + ld de, TryNextPlaceText .asm_20aed - ld hl, $d5cc - call Func_32aa - scf - ret + ld hl, wd5cc + call LoadTextHeader + scf + ret Func_20af5: ; 0x20af5 - ld a, $11 - call Func_a21 - ld c, a - ld b, $0 - ld hl, $d566 - add hl, bc - ret + ld a, $11 + call Func_a21 + ld c, a + ld b, $0 + ld hl, wd566 + add hl, bc + ret Func_20b02: ; 0x20b02 - ld a, [wCurrentEvolutionMon] - cp $ff - jr nz, .asm_20b0c - ld a, [wCurrentCatchEmMon] + ld a, [wCurrentEvolutionMon] + cp $ff + jr nz, .asm_20b0c + ld a, [wCurrentCatchEmMon] .asm_20b0c - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_20b18 - inc b + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_20b18 + inc b .asm_20b18 - push bc - ld hl, MonBillboardPicPointers - add hl, bc - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - inc hl - ld c, a - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - inc hl - ld b, a - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - ld h, b - ld l, c - ld de, $8900 - ld bc, $0180 - call Func_735 - pop bc - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_20b80 - push bc - ld hl, MonBillboardPaletteMapPointers - add hl, bc - ld a, Bank(MonBillboardPaletteMapPointers) - call ReadByteFromBank - inc hl - ld e, a - ld a, Bank(MonBillboardPaletteMapPointers) - call ReadByteFromBank - inc hl - ld d, a - ld a, Bank(MonBillboardPaletteMapPointers) - call ReadByteFromBank - ld hl, $9887 - call Func_86f - pop bc - ld hl, MonBillboardPalettePointers - add hl, bc - ld a, Bank(MonBillboardPalettePointers) - call ReadByteFromBank - inc hl - ld e, a - ld a, Bank(MonBillboardPalettePointers) - call ReadByteFromBank - inc hl - ld d, a - ld a, Bank(MonBillboardPalettePointers) - call ReadByteFromBank - ld bc, $10b0 - ld hl, $ff68 - call Func_8e1 + push bc + ld hl, MonBillboardPicPointers + add hl, bc + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + inc hl + ld c, a + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + inc hl + ld b, a + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + ld h, b + ld l, c + ld de, vTilesSH tile $10 + ld bc, $0180 + call LoadOrCopyVRAMData + pop bc + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_20b80 + push bc + ld hl, MonBillboardPaletteMapPointers + add hl, bc + ld a, Bank(MonBillboardPaletteMapPointers) + call ReadByteFromBank + inc hl + ld e, a + ld a, Bank(MonBillboardPaletteMapPointers) + call ReadByteFromBank + inc hl + ld d, a + ld a, Bank(MonBillboardPaletteMapPointers) + call ReadByteFromBank + hlCoord 7, 4, vBGMap + call Func_86f + pop bc + ld hl, MonBillboardPalettePointers + add hl, bc + ld a, Bank(MonBillboardPalettePointers) + call ReadByteFromBank + inc hl + ld e, a + ld a, Bank(MonBillboardPalettePointers) + call ReadByteFromBank + inc hl + ld d, a + ld a, Bank(MonBillboardPalettePointers) + call ReadByteFromBank + ld bc, $10b0 + ld hl, rBGPI + call Func_8e1 .asm_20b80 - ld [$ff8a], a - ld a, Bank(Func_10e0a) - ld hl, Func_10e0a - call BankSwitch - call Func_3475 - ld de, $0000 - call PlaySong - rst $10 - ld de, $2d26 - call PlaySoundEffect - ld [$ff8a], a - ld a, Bank(Func_10825) - ld hl, Func_10825 - call BankSwitch - call Func_3475 - ld a, $1 - ld [$d54d], a - scf - ret + callba Func_10e0a + call Func_3475 + ld de, $0000 + call PlaySong + rst AdvanceFrame + lb de, $2d, $26 + call PlaySoundEffect + callba Func_10825 + call Func_3475 + ld a, $1 + ld [wd54d], a + scf + ret Func_20bae: ; 0x20bae - ld a, [$d54c] - cp $4 - jp z, Func_20e34 - cp $1 - jp z, Func_21089 - cp $e - jp z, Func_20e5e - cp $f - jp z, Func_20e82 - cp $7 - jp z, Func_20ea6 - cp $8 - jp z, Func_20ec7 - cp $9 - jp z, Func_20ee8 - cp $a - jp z, Func_20f09 - cp $b - jp z, Func_20f2a - cp $c - jp z, Func_20f4b - cp $d - jp z, Func_2112a - cp $2 - jp z, Func_2105c - cp $0 - jr z, .asm_20bf3 - scf - ret + ld a, [wd54c] + cp $4 + jp z, Func_20e34 + cp $1 + jp z, Func_21089 + cp $e + jp z, Func_20e5e + cp $f + jp z, Func_20e82 + cp $7 + jp z, Func_20ea6 + cp $8 + jp z, Func_20ec7 + cp $9 + jp z, Func_20ee8 + cp $a + jp z, Func_20f09 + cp $b + jp z, Func_20f2a + cp $c + jp z, Func_20f4b + cp $d + jp z, Func_2112a + cp $2 + jp z, Func_2105c + cp $0 + jr z, .asm_20bf3 + scf + ret + .asm_20bf3 - call Func_20da0 - ld a, [$d54d] - call CallInFollowingTable + call Func_20da0 + ld a, [wd54d] + call CallInFollowingTable PointerTable_20bfc: ; 0x20bfc - dw Func_20c08 - db Bank(Func_20c08), $00 - - dw Func_20d30 - db Bank(Func_20d30), $00 - - dw Func_20d7c - db Bank(Func_20d7c), $00 + padded_dab Func_20c08 + padded_dab Func_20d30 + padded_dab Func_20d7c Func_20c08: ; 0x20c08 - ld a, [wCurrentStage] - ld b, a - ld a, [$d578] - and a - ret z - dec a - bit 0, b - jr z, .asm_20c18 - add $c + ld a, [wCurrentStage] + ld b, a + ld a, [wd578] + and a + ret z + dec a + bit 0, b + jr z, .asm_20c18 + add $c .asm_20c18 - ld c, a - ld b, $0 - ld hl, $d566 - add hl, bc - ld a, [hl] - and a - ret z - xor a - ld [hl], a - ld [$d551], a - call Func_20c76 - ld a, [$d558] - ld [wIndicatorStates], a - ld a, [$d559] - ld [wIndicatorStates + 3], a - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call nz, BankSwitch - ld bc, $34e8 - ld [$ff8a], a - ld a, $2 - ld hl, $4588 -.asm_20c4f - call BankSwitch - call Func_30e8 - call Func_30db - ld de, $2bd8 - ld hl, $d5cc - call Func_32aa - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_20c74 - ld a, $37 - ld hl, $4bf0 - ld de, $0070 - ld bc, $0008 - call Func_7dc + ld c, a + ld b, $0 + ld hl, wd566 + add hl, bc + ld a, [hl] + and a + ret z + xor a + ld [hl], a + ld [wd551], a + call Func_20c76 + ld a, [wd558] + ld [wIndicatorStates], a + ld a, [wd559] + ld [wIndicatorStates + 3], a + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(Func_1c2cb) + ld hl, Func_1c2cb + call nz, BankSwitch + ld bc, OneMillionPoints + callba AddBigBCD6FromQueue + call Fillwc600WithBlackTile + call Func_30db + ld de, YeahYouGotItText + ld hl, wd5cc + call LoadTextHeader + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_20c74 + ld a, BANK(StageBlueFieldBottomOBJPalette6) + ld hl, StageBlueFieldBottomOBJPalette6 + ld de, $0070 + ld bc, $0008 + call Func_7dc .asm_20c74 - scf - ret + scf + ret Func_20c76: ; 0x20c76 - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_20ca6 - ld a, [wCurrentEvolutionType] - dec a - ld c, a - ld b, $0 - swap c - sla c - ld hl, $4e80 - add hl, bc - ld a, [$d554] - ld c, a - ld b, $0 - swap c - sla c - push hl - ld hl, $8ae0 - add hl, bc - ld d, h - ld e, l - pop hl - ld bc, $0020 - ld a, $36 - call LoadVRAMData + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_20ca6 + ld a, [wCurrentEvolutionType] + dec a + ld c, a + ld b, $0 + swap c + sla c + ld hl, Data_d8e80 + add hl, bc + ld a, [wd554] + ld c, a + ld b, $0 + swap c + sla c + push hl + ld hl, vTilesSH tile $2e + add hl, bc + ld d, h + ld e, l + pop hl + ld bc, $0020 + ld a, BANK(Data_d8e80) + call LoadVRAMData .asm_20ca6 - ld a, [$d554] - inc a - ld [$d554], a - cp $1 - jr nz, .asm_20cb8 - ld de, $0728 - call PlaySoundEffect - ret + ld a, [wd554] + inc a + ld [wd554], a + cp $1 + jr nz, .asm_20cb8 + lb de, $07, $28 + call PlaySoundEffect + ret + .asm_20cb8 - cp $2 - jr nz, .asm_20cc3 - ld de, $0744 - call PlaySoundEffect - ret + cp $2 + jr nz, .asm_20cc3 + lb de, $07, $44 + call PlaySoundEffect + ret + .asm_20cc3 - cp $3 - ret nz - ld de, $0745 - call PlaySoundEffect - ld a, $1 - ld [$d604], a - ld a, $80 - ld [wIndicatorStates + 4], a - xor a - ld [wIndicatorStates + 9], a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 8], a - ld [wIndicatorStates + 13], a - ld [wIndicatorStates + 14], a - ld [wIndicatorStates + 11], a - ld [wIndicatorStates + 12], a - ld [wIndicatorStates + 10], a - ld [wIndicatorStates + 6], a - ld [wIndicatorStates + 7], a - ld [$d558], a - ld [$d559], a - ld a, [wCurrentStage] - bit 0, a - ret z - ld a, $36 - ld hl, $6c60 - ld de, $8200 - ld bc, $00e0 - call LoadVRAMData - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_20d25 - ld a, $37 - ld hl, $4bf8 - ld de, $0078 - ld bc, $0008 - call Func_7dc + cp $3 + ret nz + lb de, $07, $45 + call PlaySoundEffect + ld a, $1 + ld [wd604], a + ld a, $80 + ld [wIndicatorStates + 4], a + xor a + ld [wIndicatorStates + 9], a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 8], a + ld [wIndicatorStates + 13], a + ld [wIndicatorStates + 14], a + ld [wIndicatorStates + 11], a + ld [wIndicatorStates + 12], a + ld [wIndicatorStates + 10], a + ld [wIndicatorStates + 6], a + ld [wIndicatorStates + 7], a + ld [wd558], a + ld [wd559], a + ld a, [wCurrentStage] + bit 0, a + ret z + ld a, BANK(StageSharedBonusSlotGlowGfx) + ld hl, StageSharedBonusSlotGlowGfx + $60 + ld de, vTilesOB tile $20 + ld bc, $00e0 + call LoadVRAMData + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_20d25 + ld a, BANK(StageBlueFieldBottomOBJPalette7) + ld hl, StageBlueFieldBottomOBJPalette7 + ld de, $0078 + ld bc, $0008 + call Func_7dc .asm_20d25 - ld [$ff8a], a - ld a, Bank(Func_1e8f6) - ld hl, Func_1e8f6 - call BankSwitch - ret + callba Func_1e8f6 + ret Func_20d30: ; 0x20d30 - ld [$ff8a], a - ld a, Bank(Func_dc00) - ld hl, Func_dc00 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10ca5) - ld hl, Func_10ca5 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10ac8) - ld hl, Func_10ac8 - call BankSwitch - ld de, $0001 - call PlaySong - ld hl, $d629 - call Func_e4a - ld [$ff8a], a - ld a, Bank(SetPokemonOwnedFlag) - ld hl, SetPokemonOwnedFlag - call BankSwitch - ld a, [$d624] - cp $3 - ret z - add $2 - cp $3 - jr c, .asm_20d72 - ld a, $3 + callba RestoreBallSaverAfterCatchEmMode + callba Func_10ca5 + callba Func_10ac8 + ld de, $0001 + call PlaySong + ld hl, wd629 + call Func_e4a + callba SetPokemonOwnedFlag + ld a, [wd624] + cp $3 + ret z + add $2 + cp $3 + jr c, .asm_20d72 + ld a, $3 .asm_20d72 - ld [$d625], a - ld a, $80 - ld [$d626], a - scf - ret + ld [wd625], a + ld a, $80 + ld [wd626], a + scf + ret Func_20d7c: ; 0x20d7c - ld a, [$d5ca] - and a - ret nz - call Func_30e8 - ld [$ff8a], a - ld a, Bank(Func_dc00) - ld hl, Func_dc00 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_10ac8) - ld hl, Func_10ac8 - call BankSwitch - ld de, $0001 - call PlaySong - scf - ret + ld a, [wd5ca] + and a + ret nz + call Fillwc600WithBlackTile + callba RestoreBallSaverAfterCatchEmMode + callba Func_10ac8 + ld de, $0001 + call PlaySong + scf + ret Func_20da0: ; 0x20da0 - ld hl, $d556 - ld a, [hli] - ld c, a - ld b, [hl] - or b - jr z, .asm_20db3 - dec bc - ld a, b - ld [hld], a - ld [hl], c - or c - jr nz, .asm_20db3 - call Func_21079 + ld hl, wd556 + ld a, [hli] + ld c, a + ld b, [hl] + or b + jr z, .asm_20db3 + dec bc + ld a, b + ld [hld], a + ld [hl], c + or c + jr nz, .asm_20db3 + call Func_21079 .asm_20db3 - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $2 - ld [$d54d], a - xor a - ld [$d604], a - ld hl, wIndicatorStates - ld [wIndicatorStates + 4], a - ld [wIndicatorStates + 9], a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 8], a - ld [wIndicatorStates + 13], a - ld [wIndicatorStates + 14], a - ld [wIndicatorStates + 11], a - ld [wIndicatorStates + 12], a - ld [wIndicatorStates + 10], a - ld [wIndicatorStates + 6], a - ld [wIndicatorStates + 7], a - ld [$d558], a - ld [$d559], a - ld [$d551], a - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_20e1a - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_1e8f6) - ld hl, Func_1e8f6 - call BankSwitch + callba Func_107f8 + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $2 + ld [wd54d], a + xor a + ld [wd604], a + ld hl, wIndicatorStates + ld [wIndicatorStates + 4], a + ld [wIndicatorStates + 9], a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 8], a + ld [wIndicatorStates + 13], a + ld [wIndicatorStates + 14], a + ld [wIndicatorStates + 11], a + ld [wIndicatorStates + 12], a + ld [wIndicatorStates + 10], a + ld [wIndicatorStates + 6], a + ld [wIndicatorStates + 7], a + ld [wd558], a + ld [wd559], a + ld [wd551], a + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_20e1a + callba Func_1c2cb + callba Func_1e8f6 .asm_20e1a - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $2ad1 - call Func_32aa - ret + callba Func_86d2 + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, EvolutionFailedText + call LoadTextHeader + ret Func_20e34: ; 0x20e34 - ld bc, $0001 - ld de, $5000 - call Func_3538 - ld a, [$d551] - and a - jr nz, .asm_20e5c - ld a, [wIndicatorStates + 9] - and a - jr z, .asm_20e5c - xor a - ld [wIndicatorStates + 9], a - ld a, [$d55c] - and a - ld a, $0 - ld [$d55c], a - jp nz, Func_20f75 - jp Func_20fef + ld bc, $0001 + ld de, $5000 + call Func_3538 + ld a, [wd551] + and a + jr nz, .asm_20e5c + ld a, [wIndicatorStates + 9] + and a + jr z, .asm_20e5c + xor a + ld [wIndicatorStates + 9], a + ld a, [wd55c] + and a + ld a, $0 + ld [wd55c], a + jp nz, Func_20f75 + jp Func_20fef + .asm_20e5c - scf - ret + scf + ret Func_20e5e: ; 0x20e5e - ld a, [$d551] - and a - jr nz, .asm_20e80 - ld a, [wIndicatorStates + 3] - and a - jr z, .asm_20e80 - xor a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 10], a - ld a, [$d562] - and a - ld a, $0 - ld [$d562], a - jp nz, Func_20f75 - jp Func_20fef + ld a, [wd551] + and a + jr nz, .asm_20e80 + ld a, [wIndicatorStates + 3] + and a + jr z, .asm_20e80 + xor a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 10], a + ld a, [wd562] + and a + ld a, $0 + ld [wd562], a + jp nz, Func_20f75 + jp Func_20fef + .asm_20e80 - scf - ret + scf + ret Func_20e82: ; 0x20e82 - ld a, [$d551] - and a - jr nz, .asm_20ea4 - ld a, [wIndicatorStates + 8] - and a - jr z, .asm_20ea4 - xor a - ld [wIndicatorStates + 8], a - ld [wIndicatorStates + 2], a - ld a, [$d561] - and a - ld a, $0 - ld [$d561], a - jp nz, Func_20f75 - jp Func_20fef + ld a, [wd551] + and a + jr nz, .asm_20ea4 + ld a, [wIndicatorStates + 8] + and a + jr z, .asm_20ea4 + xor a + ld [wIndicatorStates + 8], a + ld [wIndicatorStates + 2], a + ld a, [wd561] + and a + ld a, $0 + ld [wd561], a + jp nz, Func_20f75 + jp Func_20fef + .asm_20ea4 - scf - ret + scf + ret Func_20ea6: ; 0x20ea6 - ld a, [$d551] - and a - jr nz, .asm_20ec5 - ld a, [wIndicatorStates + 13] - and a - jr z, .asm_20ec5 - xor a - ld [wIndicatorStates + 13], a - ld a, [$d55d] - and a - ld a, $0 - ld [$d55d], a - jp nz, Func_20f75 - jp Func_20fef + ld a, [wd551] + and a + jr nz, .asm_20ec5 + ld a, [wIndicatorStates + 13] + and a + jr z, .asm_20ec5 + xor a + ld [wIndicatorStates + 13], a + ld a, [wd55d] + and a + ld a, $0 + ld [wd55d], a + jp nz, Func_20f75 + jp Func_20fef + .asm_20ec5 - scf - ret + scf + ret Func_20ec7: ; 0x20ec7 - ld a, [$d551] - and a - jr nz, .asm_20ee6 - ld a, [wIndicatorStates + 14] - and a - jr z, .asm_20ee6 - xor a - ld [wIndicatorStates + 14], a - ld a, [$d55e] - and a - ld a, $0 - ld [$d55e], a - jp nz, Func_20f75 - jp Func_20fef + ld a, [wd551] + and a + jr nz, .asm_20ee6 + ld a, [wIndicatorStates + 14] + and a + jr z, .asm_20ee6 + xor a + ld [wIndicatorStates + 14], a + ld a, [wd55e] + and a + ld a, $0 + ld [wd55e], a + jp nz, Func_20f75 + jp Func_20fef + .asm_20ee6 - scf - ret + scf + ret Func_20ee8: ; 0x20ee8 - ld a, [$d551] - and a - jr nz, .asm_20f07 - ld a, [wIndicatorStates + 11] - and a - jr z, .asm_20f07 - xor a - ld [wIndicatorStates + 11], a - ld a, [$d55f] - and a - ld a, $0 - ld [$d55f], a - jp nz, Func_20f75 - jp Func_20fef + ld a, [wd551] + and a + jr nz, .asm_20f07 + ld a, [wIndicatorStates + 11] + and a + jr z, .asm_20f07 + xor a + ld [wIndicatorStates + 11], a + ld a, [wd55f] + and a + ld a, $0 + ld [wd55f], a + jp nz, Func_20f75 + jp Func_20fef + .asm_20f07 - scf - ret + scf + ret Func_20f09: ; 0x20f09 - ld a, [$d551] - and a - jr nz, .asm_20f28 - ld a, [wIndicatorStates + 12] - and a - jr z, .asm_20f28 - xor a - ld [wIndicatorStates + 12], a - ld a, [$d560] - and a - ld a, $0 - ld [$d560], a - jp nz, Func_20f75 - jp Func_20fef + ld a, [wd551] + and a + jr nz, .asm_20f28 + ld a, [wIndicatorStates + 12] + and a + jr z, .asm_20f28 + xor a + ld [wIndicatorStates + 12], a + ld a, [wd560] + and a + ld a, $0 + ld [wd560], a + jp nz, Func_20f75 + jp Func_20fef + .asm_20f28 - scf - ret + scf + ret Func_20f2a: ; 0x20f2a - ld a, [$d551] - and a - jr nz, .asm_20f49 - ld a, [wIndicatorStates + 6] - and a - jr z, .asm_20f49 - xor a - ld [wIndicatorStates + 6], a - ld a, [$d565] - and a - ld a, $0 - ld [$d565], a - jp nz, Func_20f75 - jp Func_20fef + ld a, [wd551] + and a + jr nz, .asm_20f49 + ld a, [wIndicatorStates + 6] + and a + jr z, .asm_20f49 + xor a + ld [wIndicatorStates + 6], a + ld a, [wd565] + and a + ld a, $0 + ld [wd565], a + jp nz, Func_20f75 + jp Func_20fef + .asm_20f49 - scf - ret + scf + ret Func_20f4b: ; 0x20f4b - ld bc, $0000 - ld de, $1500 - call Func_3538 - ld a, [$d551] - and a - jr nz, .asm_20f73 - ld a, [wIndicatorStates + 7] - and a - jr z, .asm_20f73 - xor a - ld [wIndicatorStates + 7], a - ld a, [$d564] - and a - ld a, $0 - ld [$d564], a - jp nz, Func_20f75 - jp Func_20fef + ld bc, $0000 + ld de, $1500 + call Func_3538 + ld a, [wd551] + and a + jr nz, .asm_20f73 + ld a, [wIndicatorStates + 7] + and a + jr z, .asm_20f73 + xor a + ld [wIndicatorStates + 7], a + ld a, [wd564] + and a + ld a, $0 + ld [wd564], a + jp nz, Func_20f75 + jp Func_20fef + .asm_20f73 - scf - ret + scf + ret Func_20f75: ; 0x20f75 - ld de, $0746 - call PlaySoundEffect - call Func_2111d - ld a, [wCurrentEvolutionType] - ld [hl], a - ld [$d551], a - ld a, [wIndicatorStates] - ld [$d558], a - ld a, [wIndicatorStates + 3] - ld [$d559], a - ld a, [wIndicatorStates + 2] - ld [$d63f], a - xor a - ld [wIndicatorStates], a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call nz, BankSwitch - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_20fc3 - ld a, $37 - ld hl, $5188 - ld de, $0070 - ld bc, $0010 - call Func_7dc + lb de, $07, $46 + call PlaySoundEffect + call Func_2111d + ld a, [wCurrentEvolutionType] + ld [hl], a + ld [wd551], a + ld a, [wIndicatorStates] + ld [wd558], a + ld a, [wIndicatorStates + 3] + ld [wd559], a + ld a, [wIndicatorStates + 2] + ld [wd63f], a + xor a + ld [wIndicatorStates], a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(Func_1c2cb) + ld hl, Func_1c2cb + call nz, BankSwitch + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_20fc3 + ld a, BANK(Data_dd188) + ld hl, Data_dd188 + ld de, $0070 + ld bc, $0010 + call Func_7dc .asm_20fc3 - ld bc, $34dc - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - call Func_30e8 - call Func_30db - ld a, [wCurrentEvolutionType] - dec a - ld c, a - ld b, $0 - sla c - ld hl, $2bf0 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld hl, $d5cc - call Func_32aa - scf - ret + ld bc, ThreeHundredThousandPoints + callba AddBigBCD6FromQueue + call Fillwc600WithBlackTile + call Func_30db + ld a, [wCurrentEvolutionType] + dec a + ld c, a + ld b, $0 + sla c + ld hl, Data_2bf0 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld hl, wd5cc + call LoadTextHeader + scf + ret Func_20fef: ; 0x20fef - ld de, $0747 - call PlaySoundEffect - ld a, $1 - ld [$d551], a - ld a, [wIndicatorStates] - ld [$d558], a - ld a, $80 - ld [wIndicatorStates], a - ld [wIndicatorStates + 1], a - ld a, [wIndicatorStates + 3] - ld [$d559], a - ld a, [wIndicatorStates + 2] - ld [$d63f], a - xor a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call nz, BankSwitch - ld a, $58 - ld [$d556], a - ld a, $2 - ld [$d557], a - ld bc, $34dc - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld a, [wCurrentEvolutionType] - cp EVO_EXPERIENCE - ld de, $2b7b - jr z, .asm_21057 - ld de, $2b93 + lb de, $07, $47 + call PlaySoundEffect + ld a, $1 + ld [wd551], a + ld a, [wIndicatorStates] + ld [wd558], a + ld a, $80 + ld [wIndicatorStates], a + ld [wIndicatorStates + 1], a + ld a, [wIndicatorStates + 3] + ld [wd559], a + ld a, [wIndicatorStates + 2] + ld [wd63f], a + xor a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(Func_1c2cb) + ld hl, Func_1c2cb + call nz, BankSwitch + ld a, $58 + ld [wd556], a + ld a, $2 + ld [wd557], a + ld bc, ThreeHundredThousandPoints + callba AddBigBCD6FromQueue + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld a, [wCurrentEvolutionType] + cp EVO_EXPERIENCE + ld de, PokemonIsTiredText + jr z, .asm_21057 + ld de, ItemNotFoundText .asm_21057 - call Func_32aa - scf - ret + call LoadTextHeader + scf + ret Func_2105c: ; 0x2105c - ld a, [$d551] - and a - jr z, .asm_21077 - ld a, [wIndicatorStates + 1] - and a - jr z, .asm_21077 - ld bc, $34d0 - ld [$ff8a], a - ld a, $2 - ld hl, $4588 - call BankSwitch - jr asm_210c7 + ld a, [wd551] + and a + jr z, .asm_21077 + ld a, [wIndicatorStates + 1] + and a + jr z, .asm_21077 + ld bc, TenThousandPoints + callba AddBigBCD6FromQueue + jr asm_210c7 + .asm_21077 - scf - ret + scf + ret Func_21079: ; 0x21079 - ld a, [$d551] - and a - jr z, .asm_21087 - ld a, [wIndicatorStates + 1] - and a - jr z, .asm_21087 - jr asm_210c7 + ld a, [wd551] + and a + jr z, .asm_21087 + ld a, [wIndicatorStates + 1] + and a + jr z, .asm_21087 + jr asm_210c7 + .asm_21087 - scf - ret + scf + ret Func_21089: ; 0x21089 - ld a, [$d551] - and a - jr nz, .asm_210aa - ld a, [wIndicatorStates] - and a - jr z, .asm_210a8 - xor a - ld [wIndicatorStates], a - ld a, [$d563] - and a - ld a, $0 - ld [$d563], a - jp nz, Func_20f75 - jp Func_20fef + ld a, [wd551] + and a + jr nz, .asm_210aa + ld a, [wIndicatorStates] + and a + jr z, .asm_210a8 + xor a + ld [wIndicatorStates], a + ld a, [wd563] + and a + ld a, $0 + ld [wd563], a + jp nz, Func_20f75 + jp Func_20fef + .asm_210a8 - scf - ret + scf + ret + .asm_210aa - ld a, [$d551] - and a - jr z, .asm_210c5 - ld a, [wIndicatorStates] - and a - jr z, .asm_210c5 - ld bc, $34d0 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - jr asm_210c7 + ld a, [wd551] + and a + jr z, .asm_210c5 + ld a, [wIndicatorStates] + and a + jr z, .asm_210c5 + ld bc, TenThousandPoints + callba AddBigBCD6FromQueue + jr asm_210c7 + .asm_210c5 - scf - ret + scf + ret + asm_210c7: - xor a - ld [wIndicatorStates + 1], a - ld [$d551], a - ld a, [$d558] - ld [wIndicatorStates], a - ld a, [$d559] - ld [wIndicatorStates + 3], a - ld a, [$d63f] - ld [wIndicatorStates + 2], a - ld a, [wCurrentStage] - bit 0, a - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call nz, BankSwitch - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_21102 - ld a, $37 - ld hl, $4bf0 - ld de, $0070 - ld bc, $0008 - call Func_7dc + xor a + ld [wIndicatorStates + 1], a + ld [wd551], a + ld a, [wd558] + ld [wIndicatorStates], a + ld a, [wd559] + ld [wIndicatorStates + 3], a + ld a, [wd63f] + ld [wIndicatorStates + 2], a + ld a, [wCurrentStage] + bit 0, a + ld [hFarCallTempA], a + ld a, Bank(Func_1c2cb) + ld hl, Func_1c2cb + call nz, BankSwitch + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_21102 + ld a, BANK(StageBlueFieldBottomOBJPalette6) + ld hl, StageBlueFieldBottomOBJPalette6 + ld de, $0070 + ld bc, $0008 + call Func_7dc .asm_21102 - call Func_30e8 - call Func_30db - ld a, [wCurrentEvolutionType] - cp EVO_EXPERIENCE - ld de, $2ba9 - jr z, .asm_21115 - ld de, $2bc2 + call Fillwc600WithBlackTile + call Func_30db + ld a, [wCurrentEvolutionType] + cp EVO_EXPERIENCE + ld de, PokemonRecoveredText + jr z, .asm_21115 + ld de, TryNextPlaceText .asm_21115 - ld hl, $d5cc - call Func_32aa - scf - ret + ld hl, wd5cc + call LoadTextHeader + scf + ret Func_2111d: ; 0x2111d - ld a, $11 - call Func_a21 - ld c, a - ld b, $0 - ld hl, $d566 - add hl, bc - ret + ld a, $11 + call Func_a21 + ld c, a + ld b, $0 + ld hl, wd566 + add hl, bc + ret Func_2112a: ; 0x2112a - ld a, [wCurrentEvolutionMon] - cp $ff - jr nz, .asm_21134 - ld a, [wCurrentCatchEmMon] + ld a, [wCurrentEvolutionMon] + cp $ff + jr nz, .asm_21134 + ld a, [wCurrentCatchEmMon] .asm_21134 - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_21140 - inc b + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_21140 + inc b .asm_21140 - push bc - ld hl, MonBillboardPicPointers - add hl, bc - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - inc hl - ld c, a - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - inc hl - ld b, a - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - ld h, b - ld l, c - ld de, $8900 - ld bc, $0180 - call Func_735 - pop bc - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_211a8 - push bc - ld hl, MonBillboardPaletteMapPointers - add hl, bc - ld a, Bank(MonBillboardPaletteMapPointers) - call ReadByteFromBank - inc hl - ld e, a - ld a, Bank(MonBillboardPaletteMapPointers) - call ReadByteFromBank - inc hl - ld d, a - ld a, Bank(MonBillboardPaletteMapPointers) - call ReadByteFromBank - ld hl, $9887 - call Func_86f - pop bc - ld hl, MonBillboardPalettePointers - add hl, bc - ld a, Bank(MonBillboardPalettePointers) - call ReadByteFromBank - inc hl - ld e, a - ld a, Bank(MonBillboardPalettePointers) - call ReadByteFromBank - inc hl - ld d, a - ld a, Bank(MonBillboardPalettePointers) - call ReadByteFromBank - ld bc, $10b0 - ld hl, $ff68 - call Func_8e1 + push bc + ld hl, MonBillboardPicPointers + add hl, bc + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + inc hl + ld c, a + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + inc hl + ld b, a + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + ld h, b + ld l, c + ld de, vTilesSH tile $10 + ld bc, $0180 + call LoadOrCopyVRAMData + pop bc + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_211a8 + push bc + ld hl, MonBillboardPaletteMapPointers + add hl, bc + ld a, Bank(MonBillboardPaletteMapPointers) + call ReadByteFromBank + inc hl + ld e, a + ld a, Bank(MonBillboardPaletteMapPointers) + call ReadByteFromBank + inc hl + ld d, a + ld a, Bank(MonBillboardPaletteMapPointers) + call ReadByteFromBank + hlCoord 7, 4, vBGMap + call Func_86f + pop bc + ld hl, MonBillboardPalettePointers + add hl, bc + ld a, Bank(MonBillboardPalettePointers) + call ReadByteFromBank + inc hl + ld e, a + ld a, Bank(MonBillboardPalettePointers) + call ReadByteFromBank + inc hl + ld d, a + ld a, Bank(MonBillboardPalettePointers) + call ReadByteFromBank + ld bc, $10b0 + ld hl, rBGPI + call Func_8e1 .asm_211a8 - ld [$ff8a], a - ld a, Bank(Func_10e0a) - ld hl, Func_10e0a - call BankSwitch - call Func_3475 - ld de, $0000 - call PlaySong - rst $10 - ld de, $2d26 - call PlaySoundEffect - ld [$ff8a], a - ld a, Bank(Func_10825) - ld hl, Func_10825 - call BankSwitch - call Func_3475 - ld a, $1 - ld [$d54d], a - scf - ret - -INCBIN "baserom.gbc",$211d6,$24000 - $211d6 - + callba Func_10e0a + call Func_3475 + ld de, $0000 + call PlaySong + rst AdvanceFrame + lb de, $2d, $26 + call PlaySoundEffect + callba Func_10825 + call Func_3475 + ld a, $1 + ld [wd54d], a + scf + ret SECTION "bank9", ROMX, BANK[$9] InitMeowthBonusStage: ; 0x24000 - ld a, [$d7c1] - and a - ret nz - xor a - ld [$d4c8], a - ld [wStageCollisionState], a - ld a, [wBallType] - ld [wBallTypeBackup], a - xor a - ld [$d4c8], a - ld [wBallType], a - ld [$d49a], a - ld a, $1 - ld [$d7ac], a - ld a, $40 - ld [wMeowthXPosition], a - ld a, $20 - ld [wMeowthYPosition], a - ld a, $10 - ld [wMeowthAnimationFrameCounter], a - xor a - ld [wMeowthStageScore], a - ld [$d70b], a - ld [wMeowthStageBonusCounter], a - ld [$d713], a - ld [$d739], a - ld bc, $0100 ; 1 minute 0 seconds - ld [$ff8a], a - ld a, Bank(StartTimer) - ld hl, StartTimer - call BankSwitch - ld a, $12 - call SetSongBank - ld de, $0004 - call PlaySong - ret + ld a, [wd7c1] + and a + ret nz + xor a + ld [wd4c8], a + ld [wStageCollisionState], a + ld a, [wBallType] + ld [wBallTypeBackup], a + xor a + ld [wd4c8], a + ld [wBallType], a + ld [wd49a], a + ld a, $1 + ld [wd7ac], a + ld a, $40 + ld [wMeowthXPosition], a + ld a, $20 + ld [wMeowthYPosition], a + ld a, $10 + ld [wMeowthAnimationFrameCounter], a + xor a + ld [wMeowthStageScore], a + ld [wd70b], a + ld [wMeowthStageBonusCounter], a + ld [wd713], a + ld [wd739], a + ld bc, $0100 ; 1 minute 0 seconds + callba StartTimer + ld a, $12 + call SetSongBank + ld de, $0004 + call PlaySong + ret StartBallMeowthBonusStage: ; 0x24059 - ld a, $0 - ld [wBallXPos], a - ld a, $a6 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $56 - ld [wBallYPos + 1], a - ld a, $40 - ld [wBallXVelocity], a - xor a - ld [$d7ab], a - ld [wStageCollisionState], a - ld [$d6e6], a - ld hl, $d6f3 - ld b, $16 + ld a, $0 + ld [wBallXPos], a + ld a, $a6 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $56 + ld [wBallYPos + 1], a + ld a, $40 + ld [wBallXVelocity], a + xor a + ld [wd7ab], a + ld [wStageCollisionState], a + ld [wd6e6], a + ld hl, wd6f3 + ld b, $16 .asm_24081 - ld a, [hl] - and a - jr z, .asm_24088 - ld a, $1 - ld [hl], a + ld a, [hl] + and a + jr z, .asm_24088 + ld a, $1 + ld [hl], a .asm_24088 - inc hl - dec b - jr nz, .asm_24081 - ld a, $1 - ld [$d7ac], a - ld a, $40 - ld [wMeowthXPosition], a - ld a, $20 - ld [wMeowthYPosition], a - ld a, $10 - ld [wMeowthAnimationFrameCounter], a - ld a, $ff ; walk left - ld [wMeowthXMovement], a - xor a - ld [wMeowthAnimationFrame], a - ld [$d6ec], a - ld [wMeowthAnimationFrameIndex], a - ld [$d70b], a - ld [$d70c], a - ld a, $c8 - ld [$d71a], a - ld [$d727], a - ld [$d71b], a - ld [$d728], a - ld [$d71c], a - ld [$d729], a - ld [$d724], a - ld [$d731], a - ld [$d725], a - ld [$d732], a - ld [$d726], a - ld [$d733], a - xor a - ld [$d717], a - ld [$d718], a - ld [$d719], a - ld [$d721], a - ld [$d722], a - ld [$d723], a - ld [$d714], a - ld [$d715], a - ld [$d716], a - ld [$d71e], a - ld [$d71f], a - ld [$d720], a - ld [$d64e], a - ld [$d64f], a - ld [$d650], a - ld [$d651], a - ld [$d795], a - ld [$d796], a - ld [$d797], a - ld [$d798], a - ld [$d799], a - ld [$d79a], a - ld a, [$d4c9] - and a - ret z - xor a - ld [$d4c9], a - ret + inc hl + dec b + jr nz, .asm_24081 + ld a, $1 + ld [wd7ac], a + ld a, $40 + ld [wMeowthXPosition], a + ld a, $20 + ld [wMeowthYPosition], a + ld a, $10 + ld [wMeowthAnimationFrameCounter], a + ld a, $ff ; walk left + ld [wMeowthXMovement], a + xor a + ld [wMeowthAnimationFrame], a + ld [wd6ec], a + ld [wMeowthAnimationFrameIndex], a + ld [wd70b], a + ld [wd70c], a + ld a, $c8 + ld [wd71a], a + ld [wd727], a + ld [wd71b], a + ld [wd728], a + ld [wd71c], a + ld [wd729], a + ld [wd724], a + ld [wd731], a + ld [wd725], a + ld [wd732], a + ld [wd726], a + ld [wd733], a + xor a + ld [wd717], a + ld [wd718], a + ld [wd719], a + ld [wd721], a + ld [wd722], a + ld [wd723], a + ld [wd714], a + ld [wd715], a + ld [wd716], a + ld [wd71e], a + ld [wd71f], a + ld [wd720], a + ld [wd64e], a + ld [wd64f], a + ld [wd650], a + ld [wd651], a + ld [wd795], a + ld [wd796], a + ld [wd797], a + ld [wd798], a + ld [wd799], a + ld [wd79a], a + ld a, [wd4c9] + and a + ret z + xor a + ld [wd4c9], a + ret Func_24128: ; 0x24128 - ld [$ff8a], a - ld a, Bank(Func_142fc) - ld hl, Func_142fc - call BankSwitch - call Func_2862 - ld [$ff8a], a - ld a, Bank(Func_24fa3) - ld hl, Func_24fa3 - call BankSwitch - call Func_24516 - ld [$ff8a], a - ld a, Bank(Func_1404a) - ld hl, Func_1404a - call BankSwitch - ret + callba Func_142fc + call Func_2862 + callba Func_24fa3 + call Func_24516 + callba Func_1404a + ret Func_2414d: ; 0x2414d - call Func_24157 - call Func_24214 - call Func_242bb - ret + call Func_24157 + call Func_24214 + call Func_242bb + ret Func_24157: ; 0x24157 - ld a, [$d6e7] - cp $0 - ret nz - ld a, [wMeowthXPosition] - add $f7 - ld b, a - ld a, [wMeowthYPosition] - add $6 - ld c, a - call Func_24170 - ld a, $3 - ret nc - ret + ld a, [wd6e7] + cp $0 + ret nz + ld a, [wMeowthXPosition] + add $f7 + ld b, a + ld a, [wMeowthYPosition] + add $6 + ld c, a + call Func_24170 + ld a, $3 + ret nc + ret Func_24170: ; 0x24170 - ld a, [wBallXPos + 1] - sub b - cp $30 - jp nc, .asm_24212 - ld b, a - ld a, [wBallYPos + 1] - sub c - cp $28 - jp nc, .asm_24212 - ld c, a - ld e, c - ld d, $0 - sla e - rl d - sla e - rl d - sla e - rl d - ld h, d - ld l, e - sla e - rl d - add hl, de - ld d, h - ld e, l - sla e - rl d - ld l, b - ld h, $0 - add hl, de - ld de, $5500 - add hl, de - ld a, $3a - call ReadByteFromBank - bit 7, a - jr nz, .asm_24212 - sla a - ld [$d7ea], a - ld a, $1 - ld [$d7e9], a - ld a, [$d6ec] - cp $2 - ret z - cp $3 - ret z - ld a, [$d713] - and a - ret nz - ld a, [wMeowthYMovement] - and a - jr z, .asm_241ed - ld a, [wMeowthYMovement] - cp $1 - jr nz, .asm_241df - ld a, [$d70b] - cp $3 - jr z, .asm_241eb - jr .asm_241e6 + ld a, [wBallXPos + 1] + sub b + cp $30 + jp nc, .asm_24212 + ld b, a + ld a, [wBallYPos + 1] + sub c + cp $28 + jp nc, .asm_24212 + ld c, a + ld e, c + ld d, $0 + sla e + rl d + sla e + rl d + sla e + rl d + ld h, d + ld l, e + sla e + rl d + add hl, de + ld d, h + ld e, l + sla e + rl d + ld l, b + ld h, $0 + add hl, de + ld de, Data_e9500 + add hl, de + ld a, BANK(Data_e9500) + call ReadByteFromBank + bit 7, a + jr nz, .asm_24212 + sla a + ld [wd7ea], a + ld a, $1 + ld [wd7e9], a + ld a, [wd6ec] + cp $2 + ret z + cp $3 + ret z + ld a, [wd713] + and a + ret nz + ld a, [wMeowthYMovement] + and a + jr z, .asm_241ed + ld a, [wMeowthYMovement] + cp $1 + jr nz, .asm_241df + ld a, [wd70b] + cp $3 + jr z, .asm_241eb + jr .asm_241e6 + .asm_241df - ld a, [$d70c] - cp $3 - jr z, .asm_241eb + ld a, [wd70c] + cp $3 + jr z, .asm_241eb .asm_241e6 - ld a, $2 - ld [$d6e7], a + ld a, $2 + ld [wd6e7], a .asm_241eb - scf - ret + scf + ret + .asm_241ed - ld a, [wMeowthYPosition] - cp $20 - jr nz, .asm_241fd - ld a, [$d70b] - cp $3 - jr z, .asm_24210 - jr .asm_2420b + ld a, [wMeowthYPosition] + cp $20 + jr nz, .asm_241fd + ld a, [wd70b] + cp $3 + jr z, .asm_24210 + jr .asm_2420b + .asm_241fd - ld a, [wMeowthYPosition] - cp $10 - jr nz, .asm_24210 - ld a, [$d70c] - cp $3 - jr z, .asm_24210 + ld a, [wMeowthYPosition] + cp $10 + jr nz, .asm_24210 + ld a, [wd70c] + cp $3 + jr z, .asm_24210 .asm_2420b - ld a, $1 - ld [$d6e7], a + ld a, $1 + ld [wd6e7], a .asm_24210 - scf - ret + scf + ret + .asm_24212 - and a - ret + and a + ret Func_24214: ; 0x24214 - ld a, [$d717] - cp $2 - jr nz, .asm_2422e - ld a, [$d71a] - sub $4 - ld b, a - ld a, [$d727] - add $c - ld c, a - call Func_24272 - ld a, $0 - jr c, .asm_24260 + ld a, [wd717] + cp $2 + jr nz, .asm_2422e + ld a, [wd71a] + sub $4 + ld b, a + ld a, [wd727] + add $c + ld c, a + call Func_24272 + ld a, $0 + jr c, .asm_24260 .asm_2422e - ld a, [$d718] - cp $2 - jr nz, .asm_24248 - ld a, [$d71b] - sub $4 - ld b, a - ld a, [$d728] - add $c - ld c, a - call Func_24272 - ld a, $1 - jr c, .asm_24260 + ld a, [wd718] + cp $2 + jr nz, .asm_24248 + ld a, [wd71b] + sub $4 + ld b, a + ld a, [wd728] + add $c + ld c, a + call Func_24272 + ld a, $1 + jr c, .asm_24260 .asm_24248 - ld a, [$d719] - cp $2 - ret nz - ld a, [$d71c] - sub $4 - ld b, a - ld a, [$d729] - add $c - ld c, a - call Func_24272 - ld a, $2 - ret nc + ld a, [wd719] + cp $2 + ret nz + ld a, [wd71c] + sub $4 + ld b, a + ld a, [wd729] + add $c + ld c, a + call Func_24272 + ld a, $2 + ret nc .asm_24260 - ld b, $0 - ld c, a - ld hl, $d717 - add hl, bc - ld a, $3 - ld [hl], a - ld hl, $d714 - add hl, bc - ld a, $0 - ld [hl], a - ret + ld b, $0 + ld c, a + ld hl, wd717 + add hl, bc + ld a, $3 + ld [hl], a + ld hl, wd714 + add hl, bc + ld a, $0 + ld [hl], a + ret Func_24272: ; 0x24272 - ld a, [wBallXPos + 1] - sub b - cp $18 - jr nc, .asm_242b9 - ld b, a - ld a, [wBallYPos + 1] - sub c - cp $18 - jr nc, .asm_242b9 - ld c, a - ld e, c - ld d, $0 - sla e - rl d - sla e - rl d - sla e - rl d - ld h, d - ld l, e - sla e - rl d - add hl, de - ld d, h - ld e, l - ld l, b - ld h, $0 - add hl, de - ld de, $5c80 ; todo - add hl, de - ld a, $3a - call ReadByteFromBank - bit 7, a - jr nz, .asm_242b9 - sla a - ld [$d7ea], a - ld a, $1 - ld [$d7e9], a - scf - ret + ld a, [wBallXPos + 1] + sub b + cp $18 + jr nc, .asm_242b9 + ld b, a + ld a, [wBallYPos + 1] + sub c + cp $18 + jr nc, .asm_242b9 + ld c, a + ld e, c + ld d, $0 + sla e + rl d + sla e + rl d + sla e + rl d + ld h, d + ld l, e + sla e + rl d + add hl, de + ld d, h + ld e, l + ld l, b + ld h, $0 + add hl, de + ld de, Data_e9c80 + add hl, de + ld a, BANK(Data_e9c80) + call ReadByteFromBank + bit 7, a + jr nz, .asm_242b9 + sla a + ld [wd7ea], a + ld a, $1 + ld [wd7e9], a + scf + ret + .asm_242b9 - and a - ret + and a + ret Func_242bb: ; 0x242bb - ld a, [$d721] - cp $2 - jr nz, .asm_242d5 - ld a, [$d724] - sub $4 - ld b, a - ld a, [$d731] - add $c - ld c, a - call Func_24272 - ld a, $0 - jr c, .asm_24307 + ld a, [wd721] + cp $2 + jr nz, .asm_242d5 + ld a, [wd724] + sub $4 + ld b, a + ld a, [wd731] + add $c + ld c, a + call Func_24272 + ld a, $0 + jr c, .asm_24307 .asm_242d5 - ld a, [$d722] - cp $2 - jr nz, .asm_242ef - ld a, [$d725] - sub $4 - ld b, a - ld a, [$d732] - add $c - ld c, a - call Func_24272 - ld a, $1 - jr c, .asm_24307 + ld a, [wd722] + cp $2 + jr nz, .asm_242ef + ld a, [wd725] + sub $4 + ld b, a + ld a, [wd732] + add $c + ld c, a + call Func_24272 + ld a, $1 + jr c, .asm_24307 .asm_242ef - ld a, [$d723] - cp $2 - ret nz - ld a, [$d726] - sub $4 - ld b, a - ld a, [$d733] - add $c - ld c, a - call Func_24272 - ld a, $2 - ret nc + ld a, [wd723] + cp $2 + ret nz + ld a, [wd726] + sub $4 + ld b, a + ld a, [wd733] + add $c + ld c, a + call Func_24272 + ld a, $2 + ret nc .asm_24307 - ld b, $0 - ld c, a - ld hl, $d721 - add hl, bc - ld a, $3 - ld [hl], a - ld hl, $d71e - add hl, bc - ld a, $0 - ld [hl], a - ret + ld b, $0 + ld c, a + ld hl, wd721 + add hl, bc + ld a, $3 + ld [hl], a + ld hl, wd71e + add hl, bc + ld a, $0 + ld [hl], a + ret Func_24319: ; 0x2438f - ld a, [$d6f4] - cp $0 - jr z, .asm_24333 - ld a, [$d71a] - sub $4 - ld b, a - ld a, [$d727] - add $4 - ld c, a - call Func_24405 - ld a, $0 - jr c, .asm_24373 + ld a, [wd6f4] + cp $0 + jr z, .asm_24333 + ld a, [wd71a] + sub $4 + ld b, a + ld a, [wd727] + add $4 + ld c, a + call Func_24405 + ld a, $0 + jr c, .asm_24373 .asm_24333 - ld a, [$d6f4] - cp $1 - jr z, .asm_2434d - ld a, [$d71b] - sub $4 - ld b, a - ld a, [$d728] - add $4 - ld c, a - call Func_24405 - ld a, $1 - jr c, .asm_24373 + ld a, [wd6f4] + cp $1 + jr z, .asm_2434d + ld a, [wd71b] + sub $4 + ld b, a + ld a, [wd728] + add $4 + ld c, a + call Func_24405 + ld a, $1 + jr c, .asm_24373 .asm_2434d - ld a, [$d6f4] - cp $2 - ret z - ld a, [$d71c] - sub $4 - ld b, a - ld a, [$d729] - add $4 - ld c, a - call Func_24405 - ld a, $2 - jr c, .asm_24373 - ld a, [$d6f4] - ld b, $0 - ld c, a - ld hl, $d6f8 - add hl, bc - ld [hl], $0 - ret + ld a, [wd6f4] + cp $2 + ret z + ld a, [wd71c] + sub $4 + ld b, a + ld a, [wd729] + add $4 + ld c, a + call Func_24405 + ld a, $2 + jr c, .asm_24373 + ld a, [wd6f4] + ld b, $0 + ld c, a + ld hl, wd6f8 + add hl, bc + ld [hl], $0 + ret + .asm_24373 - ld a, [$d6f4] - ld b, $0 - ld c, a - ld hl, $d6f8 - add hl, bc - inc [hl] - ld d, $4 - ld a, [$d6f4] - add d - ld d, a - ld a, [hl] - cp d - ret nc - ld hl, $d6f5 - add hl, bc - ld [hl], $0 - ret + ld a, [wd6f4] + ld b, $0 + ld c, a + ld hl, wd6f8 + add hl, bc + inc [hl] + ld d, $4 + ld a, [wd6f4] + add d + ld d, a + ld a, [hl] + cp d + ret nc + ld hl, wd6f5 + add hl, bc + ld [hl], $0 + ret Func_2438f: ; 0x2438f - ld a, [$d6f4] - cp $a - jr z, .asm_243a9 - ld a, [$d724] - sub $4 - ld b, a - ld a, [$d731] - add $4 - ld c, a - call Func_24405 - ld a, $a - jr c, .asm_243e9 + ld a, [wd6f4] + cp $a + jr z, .asm_243a9 + ld a, [wd724] + sub $4 + ld b, a + ld a, [wd731] + add $4 + ld c, a + call Func_24405 + ld a, $a + jr c, .asm_243e9 .asm_243a9 - ld a, [$d6f4] - cp $b - jr z, .asm_243c3 - ld a, [$d725] - sub $4 - ld b, a - ld a, [$d732] - add $4 - ld c, a - call Func_24405 - ld a, $b - jr c, .asm_243e9 + ld a, [wd6f4] + cp $b + jr z, .asm_243c3 + ld a, [wd725] + sub $4 + ld b, a + ld a, [wd732] + add $4 + ld c, a + call Func_24405 + ld a, $b + jr c, .asm_243e9 .asm_243c3 - ld a, [$d6f4] - cp $c - ret z - ld a, [$d726] - sub $4 - ld b, a - ld a, [$d733] - add $4 - ld c, a - call Func_24405 - ld a, $c - jr c, .asm_243e9 - ld a, [$d6f4] - ld b, $0 - ld c, a - ld hl, $d6f8 - add hl, bc - ld [hl], $0 - ret + ld a, [wd6f4] + cp $c + ret z + ld a, [wd726] + sub $4 + ld b, a + ld a, [wd733] + add $4 + ld c, a + call Func_24405 + ld a, $c + jr c, .asm_243e9 + ld a, [wd6f4] + ld b, $0 + ld c, a + ld hl, wd6f8 + add hl, bc + ld [hl], $0 + ret + .asm_243e9 - ld a, [$d6f4] - ld b, $0 - ld c, a - ld hl, $d6f8 - add hl, bc - inc [hl] - ld d, $4 - ld a, [$d6f4] - add d - ld d, a - ld a, [hl] - cp d - ret nc - ld hl, $d6f5 - add hl, bc - ld [hl], $0 - ret + ld a, [wd6f4] + ld b, $0 + ld c, a + ld hl, wd6f8 + add hl, bc + inc [hl] + ld d, $4 + ld a, [wd6f4] + add d + ld d, a + ld a, [hl] + cp d + ret nc + ld hl, wd6f5 + add hl, bc + ld [hl], $0 + ret Func_24405: ; 0x24405 - ld hl, $d71a - ld a, [$d6f4] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - add $8 - sub b - cp $18 - jr nc, .asm_24428 - ld b, a - ld hl, $d727 - add hl, de - ld a, [hl] - add $8 - sub c - cp $18 - jr nc, .asm_24428 - ld c, a - ld d, b - scf - ret -.asm_24428 - and a - ret + ld hl, wd71a + ld a, [wd6f4] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + add $8 + sub b + cp $18 + jr nc, .asm_24428 + ld b, a + ld hl, wd727 + add hl, de + ld a, [hl] + add $8 + sub c + cp $18 + jr nc, .asm_24428 + ld c, a + ld d, b + scf + ret -INCBIN "baserom.gbc",$2442a,$2442a - $2442a +.asm_24428 + and a + ret Func_2442a: ; 0x2442a - ld a, [$d710] - jr nz, .asm_2443f - ld a, [wMeowthStageBonusCounter] - dec a - dec a - cp $fe - jr z, .asm_24447 - cp $ff - jr z, .asm_24447 - ld [$d79a], a + ld a, [wd710] + jr nz, .asm_2443f + ld a, [wMeowthStageBonusCounter] + dec a + dec a + cp $fe + jr z, .asm_24447 + cp $ff + jr z, .asm_24447 + ld [wd79a], a .asm_2443f - ld de, $d79a - call Func_24f00 - jr .asm_2444b + ld de, wd79a + call Func_24f00 + jr .asm_2444b + .asm_24447 - xor a - ld [$d79a], a + xor a + ld [wd79a], a .asm_2444b - call Func_244f5 - call Func_245ab - call Func_248ac - call Func_24d07 - ld a, [wMeowthStageScore] - cp $14 - jr c, .asm_24498 - ld a, [$d712] - cp $2 - jr nc, .asm_24498 - ld a, [$d498] - cp $4 - ret z - ld a, $4 - ld [$d712], a - ld [$d498], a - ld a, $96 - ld [$d739], a - ld de, $0000 - call PlaySong - ld a, $1 - ld [$d49a], a - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $2fd0 - call Func_32aa - ld de, $4b2a - call PlaySoundEffect + call Func_244f5 + call Func_245ab + call Func_248ac + call Func_24d07 + ld a, [wMeowthStageScore] + cp $14 + jr c, .asm_24498 + ld a, [wd712] + cp $2 + jr nc, .asm_24498 + ld a, [wd498] + cp $4 + ret z + ld a, $4 + ld [wd712], a + ld [wd498], a + ld a, $96 + ld [wd739], a + ld de, $0000 + call PlaySong + ld a, $1 + ld [wd49a], a + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, Data_2fd0 + call LoadTextHeader + lb de, $4b, $2a + call PlaySoundEffect .asm_24498 - ld a, [$d712] - cp $4 - jr nz, .asm_244b0 - ld a, [$d800] - and a - jr nz, .asm_244b0 - ld de, $0004 - call PlaySong - ld a, $5 - ld [$d712], a + ld a, [wd712] + cp $4 + jr nz, .asm_244b0 + ld a, [wSFXTimer] + and a + jr nz, .asm_244b0 + ld de, $0004 + call PlaySong + ld a, $5 + ld [wd712], a .asm_244b0 - ld a, [$d712] - cp $4 - jr z, .asm_244c1 - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch + ld a, [wd712] + cp $4 + jr z, .asm_244c1 + callba Func_107f8 .asm_244c1 - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $1 - ld [$d7be], a - call Func_2862 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld a, $1 - ld [$d713], a - ld a, $1 - ld [$d712], a - ld hl, $4704 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $4 - ld [$d6ec], a - ret + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $1 + ld [wd7be], a + call Func_2862 + callba Func_86d2 + ld a, $1 + ld [wd713], a + ld a, $1 + ld [wd712], a + ld hl, Data_24704 + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ld a, $4 + ld [wd6ec], a + ret Func_244f5: ; 0x244f5 - ld a, [$d6e6] - and a - ret nz - ld a, [$d4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [$d6e6], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - call Func_24516 - ret + ld a, [wd6e6] + and a + ret nz + ld a, [wd4b4] + cp $8a + ret nc + ld a, $1 + ld [wStageCollisionState], a + ld [wd6e6], a + callba LoadStageCollisionAttributes + call Func_24516 + ret Func_24516: ; 0x24516 - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, $4533 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_24529 - ld hl, $456f + ld a, [wStageCollisionState] + sla a + ld c, a + ld b, $0 + ld hl, Data_24533 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_24529 + ld hl, Data_2456f .asm_24529 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $9 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $9 + call Func_10aa + ret + +Data_24533: + dr $24533, $2456f -INCBIN "baserom.gbc",$24533,$245ab - $24533 +Data_2456f: + dr $2456f, $245ab Func_245ab: ; 0x245ab - ld a, [$d6e7] - and a - jr z, .asm_24621 - cp $2 - jr z, .asm_24621 - ld a, $1 - ld [$d6f3], a - ld a, [wMeowthYPosition] - cp $20 - jr z, .asm_245c7 - cp $10 - jr z, .asm_245cc - jr .asm_245cf + ld a, [wd6e7] + and a + jr z, .asm_24621 + cp $2 + jr z, .asm_24621 + ld a, $1 + ld [wd6f3], a + ld a, [wMeowthYPosition] + cp $20 + jr z, .asm_245c7 + cp $10 + jr z, .asm_245cc + jr .asm_245cf + .asm_245c7 - call Func_247d9 - jr .asm_245cf + call Func_247d9 + jr .asm_245cf + .asm_245cc - call Func_24c28 + call Func_24c28 .asm_245cf - xor a - ld [$d6e7], a - ld [$d6f3], a - ld a, $ff - ld [$d803], a - ld a, $3 - ld [$d804], a - ld de, $0033 - call PlaySoundEffect - ld bc, $34c4 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - xor a - ld [wMeowthStageBonusCounter], a - ld a, [$d6ec] - cp $2 - jr nc, .asm_24621 - and a - jr nz, .asm_24611 - ld hl, $46fe - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $2 - ld [$d6ec], a - jr .asm_24651 + xor a + ld [wd6e7], a + ld [wd6f3], a + ld a, $ff + ld [wd803], a + ld a, $3 + ld [wd804], a + lb de, $00, $33 + call PlaySoundEffect + ld bc, OneThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + xor a + ld [wMeowthStageBonusCounter], a + ld a, [wd6ec] + cp $2 + jr nc, .asm_24621 + and a + jr nz, .asm_24611 + ld hl, Data_246fe + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ld a, $2 + ld [wd6ec], a + jr .asm_24651 + .asm_24611 - ld hl, $4701 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $3 - ld [$d6ec], a - jr .asm_24651 + ld hl, Data_24701 + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ld a, $3 + ld [wd6ec], a + jr .asm_24651 + .asm_24621 - ld a, [$d713] - and a - jr z, .asm_2462e - ld a, $4 - ld [$d6ec], a - jr .asm_24651 + ld a, [wd713] + and a + jr z, .asm_2462e + ld a, $4 + ld [wd6ec], a + jr .asm_24651 + .asm_2462e - ld a, [$d6ec] - cp $2 - jr nc, .asm_24651 - ld a, [$d70b] - cp $3 - jr nz, .asm_24651 - ld a, [$d70c] - cp $3 - jr nz, .asm_24651 - ld hl, $4704 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $4 - ld [$d6ec], a + ld a, [wd6ec] + cp $2 + jr nc, .asm_24651 + ld a, [wd70b] + cp $3 + jr nz, .asm_24651 + ld a, [wd70c] + cp $3 + jr nz, .asm_24651 + ld hl, Data_24704 + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ld a, $4 + ld [wd6ec], a .asm_24651 - ld a, [$d6ec] - cp $2 - call c, Func_24709 - call Func_2465d - ret + ld a, [wd6ec] + cp $2 + call c, Func_24709 + call Func_2465d + ret Func_2465d: ; 0x2465d - ld a, [$d6ec] - sla a - ld c, a - ld b, $0 - ld hl, $46e2 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wMeowthAnimationFrameCounter - call UpdateAnimation - ret nc - ld a, [$d6ec] - and a - jr nz, .asm_24689 - ld a, [wMeowthAnimationFrameIndex] - cp $4 - ret nz - ld hl, $46ec - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ret + ld a, [wd6ec] + sla a + ld c, a + ld b, $0 + ld hl, Data_246e2 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wMeowthAnimationFrameCounter + call UpdateAnimation + ret nc + ld a, [wd6ec] + and a + jr nz, .asm_24689 + ld a, [wMeowthAnimationFrameIndex] + cp $4 + ret nz + ld hl, Data_246ec + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ret + .asm_24689 - cp $1 - jr nz, .asm_2469d - ld a, [wMeowthAnimationFrameIndex] - cp $4 - ret nz - ld hl, $46f5 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ret + cp $1 + jr nz, .asm_2469d + ld a, [wMeowthAnimationFrameIndex] + cp $4 + ret nz + ld hl, Data_246f5 + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ret + .asm_2469d - cp $2 - jr nz, .asm_246b5 - ld a, [wMeowthAnimationFrameIndex] - cp $1 - ret nz - ld hl, $46ec - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - xor a - ld [$d6ec], a - ret + cp $2 + jr nz, .asm_246b5 + ld a, [wMeowthAnimationFrameIndex] + cp $1 + ret nz + ld hl, Data_246ec + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + xor a + ld [wd6ec], a + ret + .asm_246b5 - cp $3 - jr nz, .asm_246ce - ld a, [wMeowthAnimationFrameIndex] - cp $1 - ret nz - ld hl, $46f5 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [$d6ec], a - ret + cp $3 + jr nz, .asm_246ce + ld a, [wMeowthAnimationFrameIndex] + cp $1 + ret nz + ld hl, Data_246f5 + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ld a, $1 + ld [wd6ec], a + ret + .asm_246ce - cp $4 - jr nz, .asm_24689 - ld a, [wMeowthAnimationFrameIndex] - cp $2 - ret nz - ld hl, $4704 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ret - -INCBIN "baserom.gbc",$246e2,$24709 - $246e2 + cp $4 + jr nz, .asm_24689 + ld a, [wMeowthAnimationFrameIndex] + cp $2 + ret nz + ld hl, Data_24704 + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ret + +Data_246e2: + dr $246e2, $246ec + +Data_246ec: + dr $246ec, $246f5 + +Data_246f5: + dr $246f5, $246fe + +Data_246fe: + dr $246fe, $24701 + +Data_24701: + dr $24701, $24704 + +Data_24704: + dr $24704, $24709 Func_24709: ; 0x24709 - ld a, [wMeowthXPosition] - ld hl, wMeowthXMovement - add [hl] - ld [wMeowthXPosition], a - ld hl, wMeowthYMovement - ld a, [hl] - and a - jr z, .asm_24730 - bit 7, [hl] - ld a, [wMeowthYPosition] - jr nz, .asm_24724 - inc a - jr .asm_24725 + ld a, [wMeowthXPosition] + ld hl, wMeowthXMovement + add [hl] + ld [wMeowthXPosition], a + ld hl, wMeowthYMovement + ld a, [hl] + and a + jr z, .asm_24730 + bit 7, [hl] + ld a, [wMeowthYPosition] + jr nz, .asm_24724 + inc a + jr .asm_24725 + .asm_24724 - dec a + dec a .asm_24725 - cp $21 - jr z, .asm_24730 - cp $f - jr z, .asm_24730 - ld [wMeowthYPosition], a + cp $21 + jr z, .asm_24730 + cp $f + jr z, .asm_24730 + ld [wMeowthYPosition], a .asm_24730 - call Func_24737 - call Func_2476d - ret + call Func_24737 + call Func_2476d + ret Func_24737: ; 0x24737 - ld a, [wMeowthXPosition] - cp $8 - jr nc, .asm_24742 - ld a, $1 - jr .asm_2475a + ld a, [wMeowthXPosition] + cp $8 + jr nc, .asm_24742 + ld a, $1 + jr .asm_2475a + .asm_24742 - cp $78 - jr c, .asm_2474a - ld a, $ff - jr .asm_2475a + cp $78 + jr c, .asm_2474a + ld a, $ff + jr .asm_2475a + .asm_2474a - ld a, [$ffb3] - and $3f - ret nz - call GenRandom - bit 7, a - ld a, $1 - jr z, .asm_2475a - ld a, $ff + ld a, [hNumFramesDropped] + and $3f + ret nz + call GenRandom + bit 7, a + ld a, $1 + jr z, .asm_2475a + ld a, $ff .asm_2475a - ld [wMeowthXMovement], a - bit 7, a - ld a, $1 - jr z, .asm_24764 - xor a + ld [wMeowthXMovement], a + bit 7, a + ld a, $1 + jr z, .asm_24764 + xor a .asm_24764 - ld [$d6ec], a - ld a, $2 - ld [wMeowthAnimationFrameCounter], a - ret + ld [wd6ec], a + ld a, $2 + ld [wMeowthAnimationFrameCounter], a + ret Func_2476d: ; 0x2476d - ld a, [wMeowthYMovement] - and a - jr z, .asm_247ab - cp $1 - jr z, .asm_24791 - ld a, [wMeowthYPosition] - cp $10 - jr nz, .asm_2478d - ld a, [$d6e7] - cp $2 - jr nz, .asm_2478a - ld a, $1 - ld [$d6e7], a + ld a, [wMeowthYMovement] + and a + jr z, .asm_247ab + cp $1 + jr z, .asm_24791 + ld a, [wMeowthYPosition] + cp $10 + jr nz, .asm_2478d + ld a, [wd6e7] + cp $2 + jr nz, .asm_2478a + ld a, $1 + ld [wd6e7], a .asm_2478a - xor a - jr .asm_247c9 + xor a + jr .asm_247c9 + .asm_2478d - ld a, $ff - jr .asm_247c9 + ld a, $ff + jr .asm_247c9 + .asm_24791 - ld a, [wMeowthYPosition] - cp $20 - jr nz, .asm_247a7 - ld a, [$d6e7] - cp $2 - jr nz, .asm_247a4 - ld a, $1 - ld [$d6e7], a + ld a, [wMeowthYPosition] + cp $20 + jr nz, .asm_247a7 + ld a, [wd6e7] + cp $2 + jr nz, .asm_247a4 + ld a, $1 + ld [wd6e7], a .asm_247a4 - xor a - jr .asm_247c9 + xor a + jr .asm_247c9 + .asm_247a7 - ld a, $1 - jr .asm_247c9 + ld a, $1 + jr .asm_247c9 + .asm_247ab - ld a, [$d70b] - cp $3 - jr z, .asm_247cd - ld a, [$d70c] - cp $3 - jr z, .asm_247d3 - ld a, [$ffb3] - and $3f - ret nz - call GenRandom - bit 0, a - ld a, $1 - jr z, .asm_247c9 - ld a, $ff + ld a, [wd70b] + cp $3 + jr z, .asm_247cd + ld a, [wd70c] + cp $3 + jr z, .asm_247d3 + ld a, [hNumFramesDropped] + and $3f + ret nz + call GenRandom + bit 0, a + ld a, $1 + jr z, .asm_247c9 + ld a, $ff .asm_247c9 - ld [wMeowthYMovement], a - ret + ld [wMeowthYMovement], a + ret + .asm_247cd - ld a, $ff - ld [wMeowthYMovement], a - ret + ld a, $ff + ld [wMeowthYMovement], a + ret + .asm_247d3 - ld a, $1 - ld [wMeowthYMovement], a - ret + ld a, $1 + ld [wMeowthYMovement], a + ret Func_247d9: ; 0x247d9 - ld a, [$d6f3] - and a - ret z - ld a, [$d71a] - cp $c8 - jr nz, .asm_24823 - ld a, [wMeowthXPosition] - add $8 - ld [$d71a], a - ld a, [wMeowthYPosition] - add $fb - ld [$d727], a - ld a, $1 - ld [$d717], a - xor a - ld [$d6f3], a - ld [$d714], a - ld [$d6f5], a - ld [$d6f8], a - ld [$d6fb], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [$d4b4] - cp b - jr nc, .asm_2481d - ld a, $0 - ld [$d72a], a - jr .asm_24822 + ld a, [wd6f3] + and a + ret z + ld a, [wd71a] + cp $c8 + jr nz, .asm_24823 + ld a, [wMeowthXPosition] + add $8 + ld [wd71a], a + ld a, [wMeowthYPosition] + add $fb + ld [wd727], a + ld a, $1 + ld [wd717], a + xor a + ld [wd6f3], a + ld [wd714], a + ld [wd6f5], a + ld [wd6f8], a + ld [wd6fb], a + ld a, [wMeowthXPosition] + add $14 + ld b, a + ld a, [wd4b4] + cp b + jr nc, .asm_2481d + ld a, $0 + ld [wd72a], a + jr .asm_24822 + .asm_2481d - ld a, $1 - ld [$d72a], a + ld a, $1 + ld [wd72a], a .asm_24822 - ret + ret + .asm_24823 - ld a, [$d71b] - cp $c8 - jr nz, .asm_24868 - ld a, [wMeowthXPosition] - add $8 - ld [$d71b], a - ld a, [wMeowthYPosition] - add $fb - ld [$d728], a - ld a, $1 - ld [$d718], a - xor a - ld [$d6f3], a - ld [$d715], a - ld [$d6f6], a - ld [$d6f9], a - ld [$d6fc], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [$d4b4] - cp b - jr nc, .asm_24862 - ld a, $0 - ld [$d72b], a - jr .asm_24867 + ld a, [wd71b] + cp $c8 + jr nz, .asm_24868 + ld a, [wMeowthXPosition] + add $8 + ld [wd71b], a + ld a, [wMeowthYPosition] + add $fb + ld [wd728], a + ld a, $1 + ld [wd718], a + xor a + ld [wd6f3], a + ld [wd715], a + ld [wd6f6], a + ld [wd6f9], a + ld [wd6fc], a + ld a, [wMeowthXPosition] + add $14 + ld b, a + ld a, [wd4b4] + cp b + jr nc, .asm_24862 + ld a, $0 + ld [wd72b], a + jr .asm_24867 + .asm_24862 - ld a, $1 - ld [$d72b], a + ld a, $1 + ld [wd72b], a .asm_24867 - ret + ret + .asm_24868 - ld a, [$d71c] - cp $c8 - ret nz - ld a, [wMeowthXPosition] - add $8 - ld [$d71c], a - ld a, [wMeowthYPosition] - add $fb - ld [$d729], a - ld a, $1 - ld [$d719], a - xor a - ld [$d6f3], a - ld [$d716], a - ld [$d6f7], a - ld [$d6fa], a - ld [$d6fd], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [$d4b4] - cp b - jr nc, .asm_248a6 - ld a, $0 - ld [$d72c], a - jr .asm_248ab + ld a, [wd71c] + cp $c8 + ret nz + ld a, [wMeowthXPosition] + add $8 + ld [wd71c], a + ld a, [wMeowthYPosition] + add $fb + ld [wd729], a + ld a, $1 + ld [wd719], a + xor a + ld [wd6f3], a + ld [wd716], a + ld [wd6f7], a + ld [wd6fa], a + ld [wd6fd], a + ld a, [wMeowthXPosition] + add $14 + ld b, a + ld a, [wd4b4] + cp b + jr nc, .asm_248a6 + ld a, $0 + ld [wd72c], a + jr .asm_248ab + .asm_248a6 - ld a, $1 - ld [$d72c], a + ld a, $1 + ld [wd72c], a .asm_248ab - ret + ret Func_248ac: ; 0x248ac - ld a, [$d717] - cp $1 - jr nz, .asm_248d3 - ld a, [$d714] - cp $a - jr z, .asm_248c4 - ld a, $0 - ld [$d6f4], a - call Func_24a30 - jr .asm_248d3 + ld a, [wd717] + cp $1 + jr nz, .asm_248d3 + ld a, [wd714] + cp $a + jr z, .asm_248c4 + ld a, $0 + ld [wd6f4], a + call Func_24a30 + jr .asm_248d3 + .asm_248c4 - ld hl, $d70b - inc [hl] - ld a, $2 - ld [$d717], a - ld de, $0034 - call PlaySoundEffect + ld hl, wd70b + inc [hl] + ld a, $2 + ld [wd717], a + lb de, $00, $34 + call PlaySoundEffect .asm_248d3 - ld a, [$d718] - cp $1 - jr nz, .asm_248fa - ld a, [$d715] - cp $a - jr z, .asm_248eb - ld a, $1 - ld [$d6f4], a - call Func_24a30 - jr .asm_248fa + ld a, [wd718] + cp $1 + jr nz, .asm_248fa + ld a, [wd715] + cp $a + jr z, .asm_248eb + ld a, $1 + ld [wd6f4], a + call Func_24a30 + jr .asm_248fa + .asm_248eb - ld hl, $d70b - inc [hl] - ld a, $2 - ld [$d718], a - ld de, $0034 - call PlaySoundEffect + ld hl, wd70b + inc [hl] + ld a, $2 + ld [wd718], a + lb de, $00, $34 + call PlaySoundEffect .asm_248fa - ld a, [$d719] - cp $1 - jr nz, .asm_24921 - ld a, [$d716] - cp $a - jr z, .asm_24912 - ld a, $2 - ld [$d6f4], a - call Func_24a30 - jr .asm_24921 + ld a, [wd719] + cp $1 + jr nz, .asm_24921 + ld a, [wd716] + cp $a + jr z, .asm_24912 + ld a, $2 + ld [wd6f4], a + call Func_24a30 + jr .asm_24921 + .asm_24912 - ld hl, $d70b - inc [hl] - ld a, $2 - ld [$d719], a - ld de, $0034 - call PlaySoundEffect + ld hl, wd70b + inc [hl] + ld a, $2 + ld [wd719], a + lb de, $00, $34 + call PlaySoundEffect .asm_24921 - ld a, [$d717] - cp $2 - jr nz, .asm_2492c - ld hl, $d714 - inc [hl] + ld a, [wd717] + cp $2 + jr nz, .asm_2492c + ld hl, wd714 + inc [hl] .asm_2492c - ld a, [$d718] - cp $2 - jr nz, .asm_24937 - ld hl, $d715 - inc [hl] + ld a, [wd718] + cp $2 + jr nz, .asm_24937 + ld hl, wd715 + inc [hl] .asm_24937 - ld a, [$d719] - cp $2 - jr nz, .asm_24942 - ld hl, $d716 - inc [hl] + ld a, [wd719] + cp $2 + jr nz, .asm_24942 + ld hl, wd716 + inc [hl] .asm_24942 - ld a, [$d717] - cp $3 - jr nz, .asm_24968 - ld a, [$d71a] - ld b, a - ld a, [$d727] - ld c, a - ld hl, $d714 - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_2495f - call Func_24e7f - jr .asm_24968 + ld a, [wd717] + cp $3 + jr nz, .asm_24968 + ld a, [wd71a] + ld b, a + ld a, [wd727] + ld c, a + ld hl, wd714 + inc [hl] + ld a, [hl] + cp $2 + jr nz, .asm_2495f + call Func_24e7f + jr .asm_24968 + .asm_2495f - cp $a - jr nz, .asm_24968 - ld a, $4 - ld [$d717], a + cp $a + jr nz, .asm_24968 + ld a, $4 + ld [wd717], a .asm_24968 - ld a, [$d718] - cp $3 - jr nz, .asm_2498e - ld a, [$d71b] - ld b, a - ld a, [$d728] - ld c, a - ld hl, $d715 - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_24985 - call Func_24e7f - jr .asm_2498e + ld a, [wd718] + cp $3 + jr nz, .asm_2498e + ld a, [wd71b] + ld b, a + ld a, [wd728] + ld c, a + ld hl, wd715 + inc [hl] + ld a, [hl] + cp $2 + jr nz, .asm_24985 + call Func_24e7f + jr .asm_2498e + .asm_24985 - cp $a - jr nz, .asm_2498e - ld a, $4 - ld [$d718], a + cp $a + jr nz, .asm_2498e + ld a, $4 + ld [wd718], a .asm_2498e - ld a, [$d719] - cp $3 - jr nz, .asm_249b4 - ld a, [$d71c] - ld b, a - ld a, [$d729] - ld c, a - ld hl, $d716 - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_249ab - call Func_24e7f - jr .asm_249b4 + ld a, [wd719] + cp $3 + jr nz, .asm_249b4 + ld a, [wd71c] + ld b, a + ld a, [wd729] + ld c, a + ld hl, wd716 + inc [hl] + ld a, [hl] + cp $2 + jr nz, .asm_249ab + call Func_24e7f + jr .asm_249b4 + .asm_249ab - cp $a - jr nz, .asm_249b4 - ld a, $4 - ld [$d719], a + cp $a + jr nz, .asm_249b4 + ld a, $4 + ld [wd719], a .asm_249b4 - ld a, [$d717] - cp $4 - jr nz, .asm_249d0 - ld a, $c8 - ld [$d71a], a - ld [$d727], a - xor a - ld [$d717], a - ld hl, $d70b - dec [hl] - ld a, [hl] - cp $2 - jr z, .asm_24a06 + ld a, [wd717] + cp $4 + jr nz, .asm_249d0 + ld a, $c8 + ld [wd71a], a + ld [wd727], a + xor a + ld [wd717], a + ld hl, wd70b + dec [hl] + ld a, [hl] + cp $2 + jr z, .asm_24a06 .asm_249d0 - ld a, [$d718] - cp $4 - jr nz, .asm_249ec - ld a, $c8 - ld [$d71b], a - ld [$d728], a - xor a - ld [$d718], a - ld hl, $d70b - dec [hl] - ld a, [hl] - cp $2 - jr z, .asm_24a06 + ld a, [wd718] + cp $4 + jr nz, .asm_249ec + ld a, $c8 + ld [wd71b], a + ld [wd728], a + xor a + ld [wd718], a + ld hl, wd70b + dec [hl] + ld a, [hl] + cp $2 + jr z, .asm_24a06 .asm_249ec - ld a, [$d719] - cp $4 - ret nz - ld a, $c8 - ld [$d71c], a - ld [$d729], a - xor a - ld [$d719], a - ld hl, $d70b - dec [hl] - ld a, [hl] - cp $2 - ret nz + ld a, [wd719] + cp $4 + ret nz + ld a, $c8 + ld [wd71c], a + ld [wd729], a + xor a + ld [wd719], a + ld hl, wd70b + dec [hl] + ld a, [hl] + cp $2 + ret nz .asm_24a06 - ld a, [$d713] - and a - ret nz - ld a, [wMeowthXMovement] - cp $ff - jr z, .asm_24a21 - ld hl, $46f5 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [$d6ec], a - ret + ld a, [wd713] + and a + ret nz + ld a, [wMeowthXMovement] + cp $ff + jr z, .asm_24a21 + ld hl, Data_246f5 + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ld a, $1 + ld [wd6ec], a + ret + .asm_24a21 - ld hl, $46ec - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $0 - ld [$d6ec], a - ret + ld hl, Data_246ec + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ld a, $0 + ld [wd6ec], a + ret Func_24a30: ; 0x24a30 - ld a, [$d6f4] - ld c, a - ld b, $0 - ld hl, $d6f8 - add hl, bc - ld a, [hl] - and a - jr z, .asm_24a42 - call Func_24b41 - ret + ld a, [wd6f4] + ld c, a + ld b, $0 + ld hl, wd6f8 + add hl, bc + ld a, [hl] + and a + jr z, .asm_24a42 + call Func_24b41 + ret + .asm_24a42 - ld a, [$d6f4] - ld c, a - ld b, $0 - ld hl, $d6f5 - add hl, bc - ld a, [hl] - bit 2, a - jr z, .asm_24a5e - bit 1, a - jr nz, .asm_24a5e - bit 0, a - jr nz, .asm_24a5e - ld hl, $d714 - add hl, bc - inc [hl] + ld a, [wd6f4] + ld c, a + ld b, $0 + ld hl, wd6f5 + add hl, bc + ld a, [hl] + bit 2, a + jr z, .asm_24a5e + bit 1, a + jr nz, .asm_24a5e + bit 0, a + jr nz, .asm_24a5e + ld hl, wd714 + add hl, bc + inc [hl] .asm_24a5e - ld hl, $d6f5 - add hl, bc - ld a, [hl] - ld hl, $4af1 - ld e, a - ld d, $0 - add hl, de - ld hl, $d72a - add hl, bc - ld a, [hl] - and a - jr nz, .asm_24a97 + ld hl, wd6f5 + add hl, bc + ld a, [hl] + ld hl, Data_24af1 + ld e, a + ld d, $0 + add hl, de + ld hl, wd72a + add hl, bc + ld a, [hl] + and a + jr nz, .asm_24a97 .asm_24a72 - ld hl, $d72a - add hl, bc - ld [hl], $0 - ld hl, $d71a - add hl, bc - ld a, [hl] - push af - ld hl, $d6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, $4af1 - add hl, de - pop af - add [hl] - cp $8e - jr nc, .asm_24a97 - ld hl, $d71a - add hl, bc - ld [hl], a - jr .asm_24abf + ld hl, wd72a + add hl, bc + ld [hl], $0 + ld hl, wd71a + add hl, bc + ld a, [hl] + push af + ld hl, wd6f5 + add hl, bc + ld a, [hl] + ld e, a + ld d, $0 + ld hl, Data_24af1 + add hl, de + pop af + add [hl] + cp $8e + jr nc, .asm_24a97 + ld hl, wd71a + add hl, bc + ld [hl], a + jr .asm_24abf + .asm_24a97 - ld hl, $d72a - add hl, bc - ld [hl], $1 - ld hl, $d6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, $4af1 - add hl, de - ld a, [hl] - ld d, a - ld a, $ff - sub d - inc a - ld d, a - ld hl, $d71a - add hl, bc - ld a, [hl] - add d - cp $5 - jr c, .asm_24a72 - ld hl, $d71a - add hl, bc - ld [hl], a + ld hl, wd72a + add hl, bc + ld [hl], $1 + ld hl, wd6f5 + add hl, bc + ld a, [hl] + ld e, a + ld d, $0 + ld hl, Data_24af1 + add hl, de + ld a, [hl] + ld d, a + ld a, $ff + sub d + inc a + ld d, a + ld hl, wd71a + add hl, bc + ld a, [hl] + add d + cp $5 + jr c, .asm_24a72 + ld hl, wd71a + add hl, bc + ld [hl], a .asm_24abf - ld hl, $d6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, $4af1 - add hl, de - inc hl - ld a, [hl] - ld d, a - ld hl, $d727 - add hl, bc - ld a, [hl] - add d - ld hl, $d727 - add hl, bc - ld [hl], a - ld hl, $d6f5 - add hl, bc - inc [hl] - inc [hl] - ld a, [hl] - cp $46 - jr nz, .asm_24af0 - ld a, c - cp $9 - jr c, .asm_24aed - call Func_2438f - ret + ld hl, wd6f5 + add hl, bc + ld a, [hl] + ld e, a + ld d, $0 + ld hl, Data_24af1 + add hl, de + inc hl + ld a, [hl] + ld d, a + ld hl, wd727 + add hl, bc + ld a, [hl] + add d + ld hl, wd727 + add hl, bc + ld [hl], a + ld hl, wd6f5 + add hl, bc + inc [hl] + inc [hl] + ld a, [hl] + cp $46 + jr nz, .asm_24af0 + ld a, c + cp $9 + jr c, .asm_24aed + call Func_2438f + ret + .asm_24aed - call Func_24319 + call Func_24319 .asm_24af0 - ret + ret -INCBIN "baserom.gbc",$24af1,$24b41 - $24af1 +Data_24af1: + dr $24af1, $24b41 Func_24b41: ; 0x24b41 - ld a, [$d6f4] - ld b, $0 - ld c, a - ld hl, $d6f5 - add hl, bc - ld a, [hl] - cp $14 - jp nc, Func_24bf6 - ld hl, $d6f5 - add hl, bc - ld a, [hl] - ld hl, $4c0a - ld e, a - ld d, $0 - add hl, de - ld hl, $d72a - add hl, bc - ld a, [hl] - and a - jr nz, .asm_24b8a + ld a, [wd6f4] + ld b, $0 + ld c, a + ld hl, wd6f5 + add hl, bc + ld a, [hl] + cp $14 + jp nc, Func_24bf6 + ld hl, wd6f5 + add hl, bc + ld a, [hl] + ld hl, Data_24c0a + ld e, a + ld d, $0 + add hl, de + ld hl, wd72a + add hl, bc + ld a, [hl] + and a + jr nz, .asm_24b8a .asm_24b65 - ld hl, $d72a - add hl, bc - ld [hl], $0 - ld hl, $d71a - add hl, bc - ld a, [hl] - push af - ld hl, $d6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, $4c0a - add hl, de - pop af - add [hl] - cp $90 - jr nc, .asm_24b8a - ld hl, $d71a - add hl, bc - ld [hl], a - jr .asm_24bb2 + ld hl, wd72a + add hl, bc + ld [hl], $0 + ld hl, wd71a + add hl, bc + ld a, [hl] + push af + ld hl, wd6f5 + add hl, bc + ld a, [hl] + ld e, a + ld d, $0 + ld hl, Data_24c0a + add hl, de + pop af + add [hl] + cp $90 + jr nc, .asm_24b8a + ld hl, wd71a + add hl, bc + ld [hl], a + jr .asm_24bb2 + .asm_24b8a - ld hl, $d72a - add hl, bc - ld [hl], $1 - ld hl, $d6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, $4c0a - add hl, de - ld a, [hl] - ld d, a - ld a, $ff - sub d - inc a - ld d, a - ld hl, $d71a - add hl, bc - ld a, [hl] - add d - cp $6 - jr c, .asm_24b65 - ld hl, $d71a - add hl, bc - ld [hl], a + ld hl, wd72a + add hl, bc + ld [hl], $1 + ld hl, wd6f5 + add hl, bc + ld a, [hl] + ld e, a + ld d, $0 + ld hl, Data_24c0a + add hl, de + ld a, [hl] + ld d, a + ld a, $ff + sub d + inc a + ld d, a + ld hl, wd71a + add hl, bc + ld a, [hl] + add d + cp $6 + jr c, .asm_24b65 + ld hl, wd71a + add hl, bc + ld [hl], a .asm_24bb2 - ld hl, $d6f5 - add hl, bc - ld a, [hl] - ld e, a - ld d, $0 - ld hl, $4c0a - add hl, de - inc hl - ld a, [hl] - ld d, a - ld hl, $d727 - add hl, bc - ld a, [hl] - add d - ld hl, $d727 - add hl, bc - ld [hl], a - ld hl, $d6f5 - add hl, bc - inc [hl] - inc [hl] - ld a, [hl] - cp $12 - jr nz, .asm_24bf4 - ld a, c - cp $9 - jr c, .asm_24be1 - call Func_2438f - jr .asm_24be4 + ld hl, wd6f5 + add hl, bc + ld a, [hl] + ld e, a + ld d, $0 + ld hl, Data_24c0a + add hl, de + inc hl + ld a, [hl] + ld d, a + ld hl, wd727 + add hl, bc + ld a, [hl] + add d + ld hl, wd727 + add hl, bc + ld [hl], a + ld hl, wd6f5 + add hl, bc + inc [hl] + inc [hl] + ld a, [hl] + cp $12 + jr nz, .asm_24bf4 + ld a, c + cp $9 + jr c, .asm_24be1 + call Func_2438f + jr .asm_24be4 + .asm_24be1 - call Func_24319 + call Func_24319 .asm_24be4 - ld a, [$d6f4] - ld b, $0 - ld c, a - ld hl, $d6f8 - add hl, bc - ld a, [hl] - and a - jr nz, .asm_24bf4 - ld [hl], $1 + ld a, [wd6f4] + ld b, $0 + ld c, a + ld hl, wd6f8 + add hl, bc + ld a, [hl] + and a + jr nz, .asm_24bf4 + ld [hl], $1 .asm_24bf4 - scf - ret + scf + ret Func_24bf6: ; 0x24bf6 - ld a, [$d6f4] - ld b, $0 - ld c, a - ld hl, $d6f8 - add hl, bc - ld [hl], $0 - ld hl, $d714 - add hl, bc - ld [hl], $a - ccf - ret - -INCBIN "baserom.gbc",$24c0a,$24c28 - $24c0a + ld a, [wd6f4] + ld b, $0 + ld c, a + ld hl, wd6f8 + add hl, bc + ld [hl], $0 + ld hl, wd714 + add hl, bc + ld [hl], $a + ccf + ret + +Data_24c0a: + dr $24c0a, $24c28 Func_24c28: ; 0x24c28 - ld a, [$d6f3] - and a - ret z - ld a, [$d724] - cp $c8 - jr nz, .asm_24c76 - ld a, [wMeowthXPosition] - add $8 - ld [$d724], a - ld a, [wMeowthYPosition] - add $fb - ld [$d731], a - ld a, $1 - ld [$d721], a - ld hl, $d70c - inc [hl] - xor a - ld [$d6f3], a - ld [$d71e], a - ld [$d6ff], a - ld [$d702], a - ld [$d705], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [$d4b4] - cp b - jr nc, .asm_24c70 - ld a, $0 - ld [$d734], a - jr .asm_24c75 + ld a, [wd6f3] + and a + ret z + ld a, [wd724] + cp $c8 + jr nz, .asm_24c76 + ld a, [wMeowthXPosition] + add $8 + ld [wd724], a + ld a, [wMeowthYPosition] + add $fb + ld [wd731], a + ld a, $1 + ld [wd721], a + ld hl, wd70c + inc [hl] + xor a + ld [wd6f3], a + ld [wd71e], a + ld [wd6ff], a + ld [wd702], a + ld [wd705], a + ld a, [wMeowthXPosition] + add $14 + ld b, a + ld a, [wd4b4] + cp b + jr nc, .asm_24c70 + ld a, $0 + ld [wd734], a + jr .asm_24c75 + .asm_24c70 - ld a, $1 - ld [$d734], a + ld a, $1 + ld [wd734], a .asm_24c75 - ret + ret + .asm_24c76 - ld a, [$d725] - cp $c8 - jr nz, .asm_24cbf - ld a, [wMeowthXPosition] - add $8 - ld [$d725], a - ld a, [wMeowthYPosition] - add $fb - ld [$d732], a - ld a, $1 - ld [$d722], a - ld hl, $d70c - inc [hl] - xor a - ld [$d6f3], a - ld [$d71f], a - ld [$d700], a - ld [$d703], a - ld [$d706], a - ld a, [$d6f7] - add $14 - ld b, a - ld a, [$d4b4] - cp b - jr nc, .asm_24cb9 - ld a, $0 - ld [$d735], a - jr .asm_24cbe + ld a, [wd725] + cp $c8 + jr nz, .asm_24cbf + ld a, [wMeowthXPosition] + add $8 + ld [wd725], a + ld a, [wMeowthYPosition] + add $fb + ld [wd732], a + ld a, $1 + ld [wd722], a + ld hl, wd70c + inc [hl] + xor a + ld [wd6f3], a + ld [wd71f], a + ld [wd700], a + ld [wd703], a + ld [wd706], a + ld a, [wd6f7] + add $14 + ld b, a + ld a, [wd4b4] + cp b + jr nc, .asm_24cb9 + ld a, $0 + ld [wd735], a + jr .asm_24cbe + .asm_24cb9 - ld a, $1 - ld [$d735], a + ld a, $1 + ld [wd735], a .asm_24cbe - ret + ret + .asm_24cbf - ld a, [$d726] - cp $c8 - ret nz - ld a, [wMeowthXPosition] - add $8 - ld [$d726], a - ld a, [wMeowthYPosition] - add $fb - ld [$d733], a - ld a, $1 - ld [$d723], a - ld hl, $d70c - inc [hl] - xor a - ld [$d6f3], a - ld [$d720], a - ld [$d701], a - ld [$d704], a - ld [$d707], a - ld a, [wMeowthXPosition] - add $14 - ld b, a - ld a, [$d4b4] - cp b - jr nc, .asm_24d01 - ld a, $0 - ld [$d736], a - jr .asm_24d06 + ld a, [wd726] + cp $c8 + ret nz + ld a, [wMeowthXPosition] + add $8 + ld [wd726], a + ld a, [wMeowthYPosition] + add $fb + ld [wd733], a + ld a, $1 + ld [wd723], a + ld hl, wd70c + inc [hl] + xor a + ld [wd6f3], a + ld [wd720], a + ld [wd701], a + ld [wd704], a + ld [wd707], a + ld a, [wMeowthXPosition] + add $14 + ld b, a + ld a, [wd4b4] + cp b + jr nc, .asm_24d01 + ld a, $0 + ld [wd736], a + jr .asm_24d06 + .asm_24d01 - ld a, $1 - ld [$d736], a + ld a, $1 + ld [wd736], a .asm_24d06 - ret + ret Func_24d07: ; 0x24d07 - ld a, [$d721] - cp $1 - jr nz, .asm_24d2a - ld a, [$d71e] - cp $a - jr z, .asm_24d1f - ld a, $a - ld [$d6f4], a - call Func_24a30 - jr .asm_24d2a + ld a, [wd721] + cp $1 + jr nz, .asm_24d2a + ld a, [wd71e] + cp $a + jr z, .asm_24d1f + ld a, $a + ld [wd6f4], a + call Func_24a30 + jr .asm_24d2a + .asm_24d1f - ld a, $2 - ld [$d721], a - ld de, $0034 - call PlaySoundEffect + ld a, $2 + ld [wd721], a + lb de, $00, $34 + call PlaySoundEffect .asm_24d2a - ld a, [$d722] - cp $1 - jr nz, .asm_24d4d - ld a, [$d71f] - cp $a - jr z, .asm_24d42 - ld a, $b - ld [$d6f4], a - call Func_24a30 - jr .asm_24d4d + ld a, [wd722] + cp $1 + jr nz, .asm_24d4d + ld a, [wd71f] + cp $a + jr z, .asm_24d42 + ld a, $b + ld [wd6f4], a + call Func_24a30 + jr .asm_24d4d + .asm_24d42 - ld a, $2 - ld [$d722], a - ld de, $0034 - call PlaySoundEffect + ld a, $2 + ld [wd722], a + lb de, $00, $34 + call PlaySoundEffect .asm_24d4d - ld a, [$d723] - cp $1 - jr nz, .asm_24d70 - ld a, [$d720] - cp $a - jr z, .asm_24d65 - ld a, $c - ld [$d6f4], a - call Func_24a30 - jr .asm_24d70 + ld a, [wd723] + cp $1 + jr nz, .asm_24d70 + ld a, [wd720] + cp $a + jr z, .asm_24d65 + ld a, $c + ld [wd6f4], a + call Func_24a30 + jr .asm_24d70 + .asm_24d65 - ld a, $2 - ld [$d723], a - ld de, $0034 - call PlaySoundEffect + ld a, $2 + ld [wd723], a + lb de, $00, $34 + call PlaySoundEffect .asm_24d70 - ld a, [$d721] - cp $2 - jr nz, .asm_24d7b - ld hl, $d71e - inc [hl] + ld a, [wd721] + cp $2 + jr nz, .asm_24d7b + ld hl, wd71e + inc [hl] .asm_24d7b - ld a, [$d722] - cp $2 - jr nz, .asm_24d86 - ld hl, $d71f - inc [hl] + ld a, [wd722] + cp $2 + jr nz, .asm_24d86 + ld hl, wd71f + inc [hl] .asm_24d86 - ld a, [$d723] - cp $2 - jr nz, .asm_24d91 - ld hl, $d720 - inc [hl] + ld a, [wd723] + cp $2 + jr nz, .asm_24d91 + ld hl, wd720 + inc [hl] .asm_24d91 - ld a, [$d721] - cp $3 - jr nz, .asm_24db7 - ld a, [$d724] - ld b, a - ld a, [$d731] - ld c, a - ld hl, $d71e - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_24dae - call Func_24e7f - jr .asm_24db7 + ld a, [wd721] + cp $3 + jr nz, .asm_24db7 + ld a, [wd724] + ld b, a + ld a, [wd731] + ld c, a + ld hl, wd71e + inc [hl] + ld a, [hl] + cp $2 + jr nz, .asm_24dae + call Func_24e7f + jr .asm_24db7 + .asm_24dae - cp $a - jr nz, .asm_24db7 - ld a, $4 - ld [$d721], a + cp $a + jr nz, .asm_24db7 + ld a, $4 + ld [wd721], a .asm_24db7 - ld a, [$d722] - cp $3 - jr nz, .asm_24ddd - ld a, [$d725] - ld b, a - ld a, [$d732] - ld c, a - ld hl, $d71f - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_24dd4 - call Func_24e7f - jr .asm_24ddd + ld a, [wd722] + cp $3 + jr nz, .asm_24ddd + ld a, [wd725] + ld b, a + ld a, [wd732] + ld c, a + ld hl, wd71f + inc [hl] + ld a, [hl] + cp $2 + jr nz, .asm_24dd4 + call Func_24e7f + jr .asm_24ddd + .asm_24dd4 - cp $a - jr nz, .asm_24ddd - ld a, $4 - ld [$d722], a + cp $a + jr nz, .asm_24ddd + ld a, $4 + ld [wd722], a .asm_24ddd - ld a, [$d723] - cp $3 - jr nz, .asm_24e03 - ld a, [$d726] - ld b, a - ld a, [$d733] - ld c, a - ld hl, $d720 - inc [hl] - ld a, [hl] - cp $2 - jr nz, .asm_24dfa - call Func_24e7f - jr .asm_24e03 + ld a, [wd723] + cp $3 + jr nz, .asm_24e03 + ld a, [wd726] + ld b, a + ld a, [wd733] + ld c, a + ld hl, wd720 + inc [hl] + ld a, [hl] + cp $2 + jr nz, .asm_24dfa + call Func_24e7f + jr .asm_24e03 + .asm_24dfa - cp $a - jr nz, .asm_24e03 - ld a, $4 - ld [$d723], a + cp $a + jr nz, .asm_24e03 + ld a, $4 + ld [wd723], a .asm_24e03 - ld a, [$d721] - cp $4 - jr nz, .asm_24e1f - ld a, $c8 - ld [$d724], a - ld [$d731], a - xor a - ld [$d721], a - ld hl, $d70c - dec [hl] - ld a, [hl] - cp $2 - jr z, .asm_24e55 + ld a, [wd721] + cp $4 + jr nz, .asm_24e1f + ld a, $c8 + ld [wd724], a + ld [wd731], a + xor a + ld [wd721], a + ld hl, wd70c + dec [hl] + ld a, [hl] + cp $2 + jr z, .asm_24e55 .asm_24e1f - ld a, [$d722] - cp $4 - jr nz, .asm_24e3b - ld a, $c8 - ld [$d725], a - ld [$d732], a - xor a - ld [$d722], a - ld hl, $d70c - dec [hl] - ld a, [hl] - cp $2 - jr z, .asm_24e55 + ld a, [wd722] + cp $4 + jr nz, .asm_24e3b + ld a, $c8 + ld [wd725], a + ld [wd732], a + xor a + ld [wd722], a + ld hl, wd70c + dec [hl] + ld a, [hl] + cp $2 + jr z, .asm_24e55 .asm_24e3b - ld a, [$d723] - cp $4 - ret nz - ld a, $c8 - ld [$d726], a - ld [$d733], a - xor a - ld [$d723], a - ld hl, $d70c - dec [hl] - ld a, [hl] - cp $2 - ret nz + ld a, [wd723] + cp $4 + ret nz + ld a, $c8 + ld [wd726], a + ld [wd733], a + xor a + ld [wd723], a + ld hl, wd70c + dec [hl] + ld a, [hl] + cp $2 + ret nz .asm_24e55 - ld a, [$d713] - and a - ret nz - ld a, [wMeowthXMovement] - cp $ff - jr z, .asm_24e70 - ld hl, $46f5 - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $1 - ld [$d6ec], a - ret + ld a, [wd713] + and a + ret nz + ld a, [wMeowthXMovement] + cp $ff + jr z, .asm_24e70 + ld hl, Data_246f5 + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ld a, $1 + ld [wd6ec], a + ret + .asm_24e70 - ld hl, $46ec - ld de, wMeowthAnimationFrameCounter - call CopyHLToDE - ld a, $0 - ld [$d6ec], a - ret + ld hl, Data_246ec + ld de, wMeowthAnimationFrameCounter + call CopyHLToDE + ld a, $0 + ld [wd6ec], a + ret Func_24e7f: ; 0x24e7f - ld a, b - ld [$d79c], a - ld a, c - ld [$d79e], a - ld hl, wMeowthStageBonusCounter - inc [hl] - ld a, [hl] - cp $7 ; maximum bonus - jr nz, .asm_24e92 - xor a - ld [hl], a + ld a, b + ld [wd79c], a + ld a, c + ld [wd79e], a + ld hl, wMeowthStageBonusCounter + inc [hl] + ld a, [hl] + cp $7 ; maximum bonus + jr nz, .asm_24e92 + xor a + ld [hl], a .asm_24e92 - ld a, $ff - ld [$d803], a - ld a, $3 - ld [$d804], a - ld de, $0032 - call PlaySoundEffect - ld a, [wMeowthStageBonusCounter] - dec a + ld a, $ff + ld [wd803], a + ld a, $3 + ld [wd804], a + lb de, $00, $32 + call PlaySoundEffect + ld a, [wMeowthStageBonusCounter] + dec a .asm_24ea6 - push af - ld bc, $34d6 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - ld hl, wMeowthStageScore - inc [hl] - pop af - and a - jr z, .asm_24ebf - dec a - jr .asm_24ea6 + push af + ld bc, OneHundredThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + ld hl, wMeowthStageScore + inc [hl] + pop af + and a + jr z, .asm_24ebf + dec a + jr .asm_24ea6 + .asm_24ebf - ld a, [wMeowthStageBonusCounter] - dec a - dec a - cp $fe - jr z, .asm_24ed7 - cp $ff - jr z, .asm_24ed7 - ld [$d79a], a - ld de, $d79a - call Func_24ee7 - jr .asm_24ede + ld a, [wMeowthStageBonusCounter] + dec a + dec a + cp $fe + jr z, .asm_24ed7 + cp $ff + jr z, .asm_24ed7 + ld [wd79a], a + ld de, wd79a + call Func_24ee7 + jr .asm_24ede + .asm_24ed7 - xor a - ld [$d79a], a - ld [$d795], a + xor a + ld [wd79a], a + ld [wd795], a .asm_24ede - ld a, $1 - ld [$d64e], a - call Func_24fa3 - ret + ld a, $1 + ld [wd64e], a + call Func_24fa3 + ret Func_24ee7: ; 0x24ee7 - ld a, $ff - ld [$d795], a - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $4f30 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - dec de - dec de - dec de - call CopyHLToDE - ret + ld a, $ff + ld [wd795], a + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_24f30 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + dec de + dec de + dec de + call CopyHLToDE + ret Func_24f00: ; 0x24f00 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $4f30 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ld a, $1 - ld [$d710], a - ret nc - dec de - ld a, [de] - cp $a - ret nz - xor a - ld [de], a - ld [$d79c], a - ld [$d79e], a - ld [$d795], a - xor a - ld [$d710], a - ret - -INCBIN "baserom.gbc",$24f30,$24fa3 - $24f30 + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_24f30 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call UpdateAnimation + pop de + ld a, $1 + ld [wd710], a + ret nc + dec de + ld a, [de] + cp $a + ret nz + xor a + ld [de], a + ld [wd79c], a + ld [wd79e], a + ld [wd795], a + xor a + ld [wd710], a + ret + +Data_24f30: + dr $24f30, $24fa3 Func_24fa3: ; 0x24fa3 - ld a, [wMeowthStageScore] - ld c, a - ld b, $0 + ld a, [wMeowthStageScore] + ld c, a + ld b, $0 .asm_24fa9 - ld a, c - and a - jr z, .asm_24fb5 - ld a, b - add $8 - ld b, a - dec c - ld a, c - jr .asm_24fa9 + ld a, c + and a + jr z, .asm_24fb5 + ld a, b + add $8 + ld b, a + dec c + ld a, c + jr .asm_24fa9 + .asm_24fb5 - ld a, b - and a - jr z, .asm_24fbb - sub $8 + ld a, b + and a + jr z, .asm_24fbb + sub $8 .asm_24fbb - ld [$d652], a - ld a, [wMeowthStageBonusCounter] - and a - jr z, .asm_24fca - ld b, a - ld a, [wMeowthStageScore] - inc a - sub b + ld [wd652], a + ld a, [wMeowthStageBonusCounter] + and a + jr z, .asm_24fca + ld b, a + ld a, [wMeowthStageScore] + inc a + sub b .asm_24fca - ld [$d651], a - ld a, $0 - ld [$d64e], a - ld a, [wMeowthStageScore] - and a - ret z - cp $15 - jr c, .asm_24fe2 - ld a, $14 - ld [wMeowthStageScore], a - jr .asm_24fed + ld [wd651], a + ld a, $0 + ld [wd64e], a + ld a, [wMeowthStageScore] + and a + ret z + cp $15 + jr c, .asm_24fe2 + ld a, $14 + ld [wMeowthStageScore], a + jr .asm_24fed + .asm_24fe2 - push af - xor a - ld [$d650], a - ld a, $1 - ld [$d64e], a - pop af + push af + xor a + ld [wd650], a + ld a, $1 + ld [wd64e], a + pop af .asm_24fed - sla a - ld c, a - ld b, $0 - ld hl, $5007 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_24ffd - ld hl, $5421 + sla a + ld c, a + ld b, $0 + ld hl, Data_25007 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_24ffd + ld hl, Data_25421 .asm_24ffd - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $9 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $9 + call Func_10aa + ret + +Data_25007: + dr $25007, $25421 -INCBIN "baserom.gbc",$25007,$2583b - $25007 +Data_25421: + dr $25421, $2583b Func_2583b: ; 0x2583b - ld bc, $7f65 - ld [$ff8a], a - ld a, Bank(Func_175a4) - ld hl, Func_175a4 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_e4a1) - ld hl, Func_e4a1 - call BankSwitch - call Func_259fe - call Func_25895 - call Func_2595e - call Func_2586c - ld [$ff8a], a - ld a, Bank(Func_17e81) - ld hl, Func_17e81 - call BankSwitch - call Func_25a39 - ret + ld bc, $7f65 + callba Func_175a4 + callba Func_e4a1 + call Func_259fe + call Func_25895 + call Func_2595e + call Func_2586c + callba Func_17e81 + call Func_25a39 + ret Func_2586c: ; 0x2586c - ld a, [wMeowthXPosition] - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, [wMeowthYPosition] - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [wMeowthAnimationFrame] - ld e, a - ld d, $0 - ld hl, $588b - add hl, de - ld a, [hl] - call LoadOAMData2 - ret - -INCBIN "baserom.gbc",$2588b,$25895 - $2588b + ld a, [wMeowthXPosition] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wMeowthYPosition] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wMeowthAnimationFrame] + ld e, a + ld d, $0 + ld hl, Data_2588b + add hl, de + ld a, [hl] + call LoadOAMData2 + ret + +Data_2588b: + dr $2588b, $25895 Func_25895: ; 0x25895 - ld a, [$d714] - cp $b - jr nz, .asm_258a0 - xor a - ld [$d714], a + ld a, [wd714] + cp $b + jr nz, .asm_258a0 + xor a + ld [wd714], a .asm_258a0 - ld a, [$d715] - cp $b - jr nz, .asm_258ab - xor a - ld [$d715], a + ld a, [wd715] + cp $b + jr nz, .asm_258ab + xor a + ld [wd715], a .asm_258ab - ld a, [$d716] - cp $b - jr nz, .asm_258b6 - xor a - ld [$d716], a + ld a, [wd716] + cp $b + jr nz, .asm_258b6 + xor a + ld [wd716], a .asm_258b6 - ld a, [$d71a] - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, [$d727] - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d717] - sla a - ld e, a - ld d, $0 - ld hl, $5935 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d714] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call LoadOAMData2 - ld a, [$d71b] - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, [$d728] - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d718] - sla a - ld e, a - ld d, $0 - ld hl, $5935 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d715] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call LoadOAMData2 - ld a, [$d71c] - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, [$d729] - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d719] - sla a - ld e, a - ld d, $0 - ld hl, $5935 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d716] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call LoadOAMData2 - ret - -INCBIN "baserom.gbc",$25935,$2595e - $25935 + ld a, [wd71a] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd727] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd717] + sla a + ld e, a + ld d, $0 + ld hl, Data_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd714] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ld a, [wd71b] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd728] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd718] + sla a + ld e, a + ld d, $0 + ld hl, Data_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd715] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ld a, [wd71c] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd729] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd719] + sla a + ld e, a + ld d, $0 + ld hl, Data_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd716] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ret + +Data_25935: + dr $25935, $2595e Func_2595e: ; 0x2595e - ld a, [$d71e] - cp $b - jr nz, .asm_25969 - xor a - ld [$d71e], a + ld a, [wd71e] + cp $b + jr nz, .asm_25969 + xor a + ld [wd71e], a .asm_25969 - ld a, [$d71f] - cp $b - jr nz, .asm_25974 - xor a - ld [$d71f], a + ld a, [wd71f] + cp $b + jr nz, .asm_25974 + xor a + ld [wd71f], a .asm_25974 - ld a, [$d720] - cp $b - jr nz, .asm_2597f - xor a - ld [$d720], a + ld a, [wd720] + cp $b + jr nz, .asm_2597f + xor a + ld [wd720], a .asm_2597f - ld a, [$d724] - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, [$d731] - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d721] - sla a - ld e, a - ld d, $0 - ld hl, $5935 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d71e] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call LoadOAMData2 - ld a, [$d725] - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, [$d732] - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d722] - sla a - ld e, a - ld d, $0 - ld hl, $5935 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d71f] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call LoadOAMData2 - ld a, [$d726] - ld hl, hBoardXShift - sub [hl] - ld b, a - ld a, [$d733] - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d723] - sla a - ld e, a - ld d, $0 - ld hl, $5935 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d720] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call LoadOAMData2 - ret + ld a, [wd724] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd731] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd721] + sla a + ld e, a + ld d, $0 + ld hl, Data_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd71e] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ld a, [wd725] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd732] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd722] + sla a + ld e, a + ld d, $0 + ld hl, Data_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd71f] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ld a, [wd726] + ld hl, hSCX + sub [hl] + ld b, a + ld a, [wd733] + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd723] + sla a + ld e, a + ld d, $0 + ld hl, Data_25935 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd720] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call LoadOAMData2 + ret Func_259fe: ; 0x259fe - ld a, [$d795] - and a - ret z - ld de, $d79c - ld a, [de] - ld hl, hBoardXShift - sub [hl] - ld b, a - inc de - inc de - ld a, [de] - ld hl, hBoardYShift - sub [hl] - ld c, a - dec de - dec de - dec de - dec de - dec de - dec de - ld a, [de] - ld e, a - ld d, $0 - ld hl, $5a29 - add hl, de - ld a, [hl] - cp $ff - call nz, LoadOAMData2 - ret - -INCBIN "baserom.gbc",$25a29,$25a39 - $25a29 + ld a, [wd795] + and a + ret z + ld de, wd79c + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, Data_25a29 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +Data_25a29: + dr $25a29, $25a39 Func_25a39: ; 0x25a39 - ld a, [$d64e] - and a - ret z - ld a, [$d652] - ld hl, hBoardXShift - sub [hl] - ld b, a - xor a - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d64f] - cp $a - jr c, .asm_25a58 - ld de, $0000 - jr .asm_25a5b + ld a, [wd64e] + and a + ret z + ld a, [wd652] + ld hl, hSCX + sub [hl] + ld b, a + xor a + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd64f] + cp $a + jr c, .asm_25a58 + ld de, $0000 + jr .asm_25a5b + .asm_25a58 - ld de, $0001 + ld de, $0001 .asm_25a5b - ld hl, $5a7a - add hl, de - ld a, [hl] - call LoadOAMData2 - ld hl, $d64f - inc [hl] - ld a, [hl] - cp $14 - ret c - ld [hl], $0 - ld hl, $d650 - inc [hl] - ld a, [hl] - cp $a - ret nz - xor a - ld [$d64e], a - ret - -INCBIN "baserom.gbc",$25a7a,$25a7c - $25a7a + ld hl, Data_25a7a + add hl, de + ld a, [hl] + call LoadOAMData2 + ld hl, wd64f + inc [hl] + ld a, [hl] + cp $14 + ret c + ld [hl], $0 + ld hl, wd650 + inc [hl] + ld a, [hl] + cp $a + ret nz + xor a + ld [wd64e], a + ret + +Data_25a7a: + dr $25a7a, $25a7c InitSeelBonusStage: ; 0x25a7c - ld a, [$d7c1] - and a - ret nz - xor a - ld [$d4c8], a - ld [wStageCollisionState], a - ld a, $1 - ld [$d7ac], a - ld a, [wBallType] - ld [wBallTypeBackup], a - xor a - ld [$d4c8], a - ld [wBallType], a - ld [$d49a], a - ld hl, $5ae5 ; todo - ld de, $d76d - call Func_25ad8 - ld de, $d777 - call Func_25ad8 - ld de, $d781 - call Func_25ad8 - xor a - ld [$d793], a - ld [$d791], a - ld [$d792], a - ld [$d739], a - ld bc, $0130 ; 1 minute 30 seconds - ld [$ff8a], a - ld a, Bank(StartTimer) - ld hl, StartTimer - call BankSwitch - ld a, $11 - call SetSongBank - ld de, $0003 - call PlaySong - ret + ld a, [wd7c1] + and a + ret nz + xor a + ld [wd4c8], a + ld [wStageCollisionState], a + ld a, $1 + ld [wd7ac], a + ld a, [wBallType] + ld [wBallTypeBackup], a + xor a + ld [wd4c8], a + ld [wBallType], a + ld [wd49a], a + ld hl, Data_25ae5 + ld de, wd76d + call Func_25ad8 + ld de, wd777 + call Func_25ad8 + ld de, wd781 + call Func_25ad8 + xor a + ld [wd793], a + ld [wd791], a + ld [wd792], a + ld [wd739], a + ld bc, $0130 ; 1 minute 30 seconds + callba StartTimer + ld a, $11 + call SetSongBank + ld de, $0003 + call PlaySong + ret Func_25ad8: ; 0x25ad8 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ret - -INCBIN "baserom.gbc",$25ae5,$25af1 - $25ae5 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ret + +Data_25ae5: + dr $25ae5, $25af1 StartBallSeelBonusStage: ; 0x25af1 - ld a, $0 - ld [wBallXPos], a - ld a, $a6 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $56 - ld [wBallYPos + 1], a - ld a, $80 - ld [wBallXVelocity], a - xor a - ld [$d7ab], a - ld [wStageCollisionState], a - ld [$d766], a - ld a, $0 - ld [$d772], a - ld a, $1 - ld [$d77c], a - ld a, $0 - ld [$d786], a - ld a, $4 - ld [$d775], a - ld [$d77f], a - ld [$d76b], a - ld a, $1 - ld [$d76c], a - ld a, $4 - ld [$d776], a - ld a, $1 - ld [$d780], a - ld a, $5 - ld [$d771], a - ld [$d77b], a - ld [$d785], a - ld a, $ff - ld [$d79a], a - xor a - ld [$d792], a - ld [$d791], a - ld [$d64e], a - ld [$d64f], a - ld [$d650], a - ld [$d651], a - ld [$d795], a - ld [$d796], a - ld [$d797], a - ld [$d798], a - ld [$d799], a - ld [$d79a], a - ld de, $d76b - ld a, [$d76c] - call Func_26137 - ld de, $d775 - ld a, [$d776] - call Func_26137 - ld de, $d77f - ld a, [$d780] - call Func_26137 - ld a, [$d4c9] - and a - ret z - xor a - ld [$d4c9], a - ret + ld a, $0 + ld [wBallXPos], a + ld a, $a6 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $56 + ld [wBallYPos + 1], a + ld a, $80 + ld [wBallXVelocity], a + xor a + ld [wd7ab], a + ld [wStageCollisionState], a + ld [wd766], a + ld a, $0 + ld [wd772], a + ld a, $1 + ld [wd77c], a + ld a, $0 + ld [wd786], a + ld a, $4 + ld [wd775], a + ld [wd77f], a + ld [wd76b], a + ld a, $1 + ld [wd76c], a + ld a, $4 + ld [wd776], a + ld a, $1 + ld [wd780], a + ld a, $5 + ld [wd771], a + ld [wd77b], a + ld [wd785], a + ld a, $ff + ld [wd79a], a + xor a + ld [wd792], a + ld [wd791], a + ld [wd64e], a + ld [wd64f], a + ld [wd650], a + ld [wd651], a + ld [wd795], a + ld [wd796], a + ld [wd797], a + ld [wd798], a + ld [wd799], a + ld [wd79a], a + ld de, wd76b + ld a, [wd76c] + call Func_26137 + ld de, wd775 + ld a, [wd776] + call Func_26137 + ld de, wd77f + ld a, [wd780] + call Func_26137 + ld a, [wd4c9] + and a + ret z + xor a + ld [wd4c9], a + ret Func_25b97: ; 0x25b97 - ld [$ff8a], a - ld a, Bank(Func_142fc) - ld hl, Func_142fc - call BankSwitch - call Func_2862 - ld [$ff8a], a - ld a, Bank(Func_262f4) - ld hl, Func_262f4 - call BankSwitch - call Func_25d0e - ld [$ff8a], a - ld a, Bank(Func_1404a) - ld hl, Func_1404a - call BankSwitch - ret + callba Func_142fc + call Func_2862 + callba Func_262f4 + call Func_25d0e + callba Func_1404a + ret Func_25bbc: ; 0x25bbc - call Func_25bc0 - ret + call Func_25bc0 + ret Func_25bc0: ; 0x25bc0 - ld a, [$d76c] - cp $0 - jr nz, .asm_25bd8 - ld a, [$d76e] - ld b, a - ld a, [$d770] - add $14 - ld c, a - call Func_25c12 - ld a, $0 - jr c, .asm_25c09 + ld a, [wd76c] + cp $0 + jr nz, .asm_25bd8 + ld a, [wd76e] + ld b, a + ld a, [wd770] + add $14 + ld c, a + call Func_25c12 + ld a, $0 + jr c, .asm_25c09 .asm_25bd8 - ld a, [$d776] - cp $0 - jr nz, .asm_25bf0 - ld a, [$d778] - ld b, a - ld a, [$d77a] - add $14 - ld c, a - call Func_25c12 - ld a, $1 - jr c, .asm_25c09 + ld a, [wd776] + cp $0 + jr nz, .asm_25bf0 + ld a, [wd778] + ld b, a + ld a, [wd77a] + add $14 + ld c, a + call Func_25c12 + ld a, $1 + jr c, .asm_25c09 .asm_25bf0 - ld a, [$d780] - cp $0 - jr nz, .asm_25c08 - ld a, [$d782] - ld b, a - ld a, [$d784] - add $14 - ld c, a - call Func_25c12 - ld a, $2 - jr c, .asm_25c09 + ld a, [wd780] + cp $0 + jr nz, .asm_25c08 + ld a, [wd782] + ld b, a + ld a, [wd784] + add $14 + ld c, a + call Func_25c12 + ld a, $2 + jr c, .asm_25c09 .asm_25c08 - ret + ret + .asm_25c09 - ld [$d768], a - ld a, $1 - ld [$d767], a - ret + ld [wd768], a + ld a, $1 + ld [wd767], a + ret Func_25c12: ; 0x25c12 - ld a, [wBallXPos + 1] - sub b - cp $20 - jr nc, .asm_25c58 - ld b, a - ld a, [wBallYPos + 1] - sub c - cp $20 - jr nc, .asm_25c58 - ld c, a - ld e, c - ld d, $0 - sla e - rl d - sla e - rl d - sla e - rl d - sla e - rl d - sla e - rl d - ld l, b - ld h, $0 - add hl, de - ld de, $5100 ; todo - add hl, de - ld a, $3a ; TODO: hardcoded bank - call ReadByteFromBank - bit 7, a - jr nz, .asm_25c58 - sla a - ld [$d7ea], a - ld a, $1 - ld [$d7e9], a - scf - ret + ld a, [wBallXPos + 1] + sub b + cp $20 + jr nc, .asm_25c58 + ld b, a + ld a, [wBallYPos + 1] + sub c + cp $20 + jr nc, .asm_25c58 + ld c, a + ld e, c + ld d, $0 + sla e + rl d + sla e + rl d + sla e + rl d + sla e + rl d + sla e + rl d + ld l, b + ld h, $0 + add hl, de + ld de, Data_e9100 + add hl, de + ld a, BANK(Data_e9100) + call ReadByteFromBank + bit 7, a + jr nz, .asm_25c58 + sla a + ld [wd7ea], a + ld a, $1 + ld [wd7e9], a + scf + ret + .asm_25c58 - and a - ret + and a + ret Func_25c5a: ; 0x25c5a - call Func_25da3 - call Func_25ced - ld a, [$d793] - cp $14 - jr c, .asm_25c98 - ld a, [$d794] - cp $2 - jr nc, .asm_25c98 - ld a, $1 - ld [$d498], a - ld de, $0000 - call PlaySong - ld a, $1 - ld [$d49a], a - call Func_30e8 - call Func_30db - ld hl, $d5dc - ld de, $2fec - call Func_32aa - ld a, $2 - ld [$d794], a - ld de, $4b2a - call PlaySoundEffect + call Func_25da3 + call Func_25ced + ld a, [wd793] + cp $14 + jr c, .asm_25c98 + ld a, [wd794] + cp $2 + jr nc, .asm_25c98 + ld a, $1 + ld [wd498], a + ld de, $0000 + call PlaySong + ld a, $1 + ld [wd49a], a + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5dc + ld de, Data_2fec + call LoadTextHeader + ld a, $2 + ld [wd794], a + lb de, $4b, $2a + call PlaySoundEffect .asm_25c98 - ld a, [$d794] - cp $2 - jr nz, .asm_25cb0 - ld a, [$d800] - and a - jr nz, .asm_25cb0 - ld de, $0003 - call PlaySong - ld a, $5 - ld [$d794], a + ld a, [wd794] + cp $2 + jr nz, .asm_25cb0 + ld a, [wSFXTimer] + and a + jr nz, .asm_25cb0 + ld de, $0003 + call PlaySong + ld a, $5 + ld [wd794], a .asm_25cb0 - ld a, [$d794] - cp $2 - jr z, .asm_25cc1 - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch + ld a, [wd794] + cp $2 + jr z, .asm_25cc1 + callba Func_107f8 .asm_25cc1 - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $1 - ld [$d7be], a - call Func_2862 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld a, $3 - ld [$d791], a - ld a, [$d794] - cp $5 - ret z - ld a, $1 - ld [$d794], a - ret + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $1 + ld [wd7be], a + call Func_2862 + callba Func_86d2 + ld a, $3 + ld [wd791], a + ld a, [wd794] + cp $5 + ret z + ld a, $1 + ld [wd794], a + ret Func_25ced: ; 0x25ced - ld a, [$d766] - and a - ret nz - ld a, [$d4b4] - cp $8a - ret nc - ld a, $1 - ld [wStageCollisionState], a - ld [$d766], a - ld [$ff8a], a - ld a, Bank(LoadStageCollisionAttributes) - ld hl, LoadStageCollisionAttributes - call BankSwitch - call Func_25d0e - ret + ld a, [wd766] + and a + ret nz + ld a, [wd4b4] + cp $8a + ret nc + ld a, $1 + ld [wStageCollisionState], a + ld [wd766], a + callba LoadStageCollisionAttributes + call Func_25d0e + ret Func_25d0e: ; 0x25d0e - ld a, [wStageCollisionState] - sla a - ld c, a - ld b, $0 - ld hl, $5d2b - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_25d21 - ld hl, $5d67 + ld a, [wStageCollisionState] + sla a + ld c, a + ld b, $0 + ld hl, Data_25d2b + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_25d21 + ld hl, Data_25d67 .asm_25d21 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $9 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $9 + call Func_10aa + ret -INCBIN "baserom.gbc",$25d2b,$25da3 - $25d2b +Data_25d2b: + dr $25d2b, $25d67 + +Data_25d67: + dr $25d67, $25da3 Func_25da3: ; 0x25da3 - ld a, [$d767] - and a - jp z, .asm_25e38 - xor a - ld [$d767], a - ld a, [$d768] - sla a - ld c, a - sla a - sla a - add c - ld c, a - ld b, $0 - ld hl, $d76c - add hl, bc - ld d, h - ld e, l - ld a, $9 - ld [de], a - dec de - dec de - dec de - push bc - ld hl, $61d8 - call CopyHLToDE - pop bc - ld hl, $d76e - add hl, bc - ld a, [hl] - ld [$d79c], a - ld hl, $d770 - add hl, bc - ld a, [hl] - add $8 - ld [$d79e], a - ld a, [$d792] - cp $9 - jr nz, .asm_25df1 - ld a, $0 - ld [$d792], a - ld [$d79a], a + ld a, [wd767] + and a + jp z, .asm_25e38 + xor a + ld [wd767], a + ld a, [wd768] + sla a + ld c, a + sla a + sla a + add c + ld c, a + ld b, $0 + ld hl, wd76c + add hl, bc + ld d, h + ld e, l + ld a, $9 + ld [de], a + dec de + dec de + dec de + push bc + ld hl, Data_261d8 + call CopyHLToDE + pop bc + ld hl, wd76e + add hl, bc + ld a, [hl] + ld [wd79c], a + ld hl, wd770 + add hl, bc + ld a, [hl] + add $8 + ld [wd79e], a + ld a, [wd792] + cp $9 + jr nz, .asm_25df1 + ld a, $0 + ld [wd792], a + ld [wd79a], a .asm_25df1 - ld a, [$d792] - dec a - cp $ff - jr z, .asm_25e04 - ld [$d79a], a - ld de, $d79a - call Func_261f9 - jr .asm_25e07 + ld a, [wd792] + dec a + cp $ff + jr z, .asm_25e04 + ld [wd79a], a + ld de, wd79a + call Func_261f9 + jr .asm_25e07 + .asm_25e04 - ld [$d79a], a + ld [wd79a], a .asm_25e07 - ld a, $33 - ld [$d803], a - ld a, $8 - ld [$d804], a - ld de, $0030 - call PlaySoundEffect - call Func_25e85 - ld hl, $d792 - inc [hl] - ld a, [$d793] - cp $14 - ret nc - ld hl, $d793 - inc [hl] - ld a, [$d792] - dec a - ld b, a - ld a, [hl] - add b - ld [hl], a - ld a, $1 - ld [$d64e], a - call Func_262f4 + ld a, $33 + ld [wd803], a + ld a, $8 + ld [wd804], a + lb de, $00, $30 + call PlaySoundEffect + call Func_25e85 + ld hl, wd792 + inc [hl] + ld a, [wd793] + cp $14 + ret nc + ld hl, wd793 + inc [hl] + ld a, [wd792] + dec a + ld b, a + ld a, [hl] + add b + ld [hl], a + ld a, $1 + ld [wd64e], a + call Func_262f4 .asm_25e38 - ld de, $d76c ; I think these three calls are one for each Seel swimming around - call Func_25f47 - ld de, $d776 - call Func_25f47 - ld de, $d780 - call Func_25f47 - ld a, [$d792] - dec a - cp $ff - jr z, .asm_25e5d - ld [$d79a], a - ld de, $d79a - call Func_26212 - jr .asm_25e60 + ld de, wd76c ; I think these three calls are one for each Seel swimming around + call Func_25f47 + ld de, wd776 + call Func_25f47 + ld de, wd780 + call Func_25f47 + ld a, [wd792] + dec a + cp $ff + jr z, .asm_25e5d + ld [wd79a], a + ld de, wd79a + call Func_26212 + jr .asm_25e60 + .asm_25e5d - ld [$d79a], a + ld [wd79a], a .asm_25e60 - ld bc, $087a ; again, probably one call for each Seel swimming around - ld de, $d76d - ld hl, $d772 - call Func_25ec5 - ld bc, $087a - ld de, $d777 - ld hl, $d77c - call Func_25ec5 - ld bc, $087a - ld de, $d781 - ld hl, $d786 - call Func_25ec5 - ret + ld bc, $087a ; again, probably one call for each Seel swimming around + ld de, wd76d + ld hl, wd772 + call Func_25ec5 + ld bc, $087a + ld de, wd777 + ld hl, wd77c + call Func_25ec5 + ld bc, $087a + ld de, wd781 + ld hl, wd786 + call Func_25ec5 + ret Func_25e85: ; 0x25e85 - ld a, [$d792] - inc a - ld d, $1 - ld e, a - ld a, $1 + ld a, [wd792] + inc a + ld d, $1 + ld e, a + ld a, $1 .asm_25e8e - cp e - jr z, .asm_25e96 - sla d - inc a - jr .asm_25e8e + cp e + jr z, .asm_25e96 + sla d + inc a + jr .asm_25e8e + .asm_25e96 - push de - ld a, d - cp $32 - jr nc, .asm_25ead - ld bc, $34d6 - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - pop de - dec d - jr .asm_25ebf + push de + ld a, d + cp $32 + jr nc, .asm_25ead + ld bc, OneHundredThousandPoints + callba AddBigBCD6FromQueueWithBallMultiplier + pop de + dec d + jr .asm_25ebf + .asm_25ead - ld bc, $34ee - ld [$ff8a], a - ld a, Bank(Func_8576) - ld hl, Func_8576 - call BankSwitch - pop de - ld a, d - sub $32 - ld d, a + ld bc, FiveMillionPoints + callba AddBigBCD6FromQueueWithBallMultiplier + pop de + ld a, d + sub $32 + ld d, a .asm_25ebf - ld a, d - cp $0 - jr nz, .asm_25e96 - ret + ld a, d + cp $0 + jr nz, .asm_25e96 + ret Func_25ec5: ; 0x25ec5 - dec de - ld a, [de] - cp $1 - jr z, .asm_25ece - cp $4 - ret nz + dec de + ld a, [de] + cp $1 + jr z, .asm_25ece + cp $4 + ret nz .asm_25ece - inc de - push hl - ld a, [hld] - push af - push bc - ld a, [hl] - and $f - ld c, a - ld b, $0 - ld hl, $5f27 - add hl, bc - pop bc - pop af - and a - jr nz, .asm_25f05 - ld a, [de] - add [hl] - ld [de], a - inc de - ld a, [de] - adc $0 - ld [de], a - pop hl - cp c - ret c - ld a, $1 - ld [hl], a - dec hl - dec hl - dec hl - dec hl - dec hl - dec hl - ld a, $7 - ld [hl], a - dec hl - dec hl - dec hl - ld d, h - ld e, l - ld hl, $61c2 - call CopyHLToDE - ret + inc de + push hl + ld a, [hld] + push af + push bc + ld a, [hl] + and $f + ld c, a + ld b, $0 + ld hl, Data_25f27 + add hl, bc + pop bc + pop af + and a + jr nz, .asm_25f05 + ld a, [de] + add [hl] + ld [de], a + inc de + ld a, [de] + adc $0 + ld [de], a + pop hl + cp c + ret c + ld a, $1 + ld [hl], a + dec hl + dec hl + dec hl + dec hl + dec hl + dec hl + ld a, $7 + ld [hl], a + dec hl + dec hl + dec hl + ld d, h + ld e, l + ld hl, Data_261c2 + call CopyHLToDE + ret + .asm_25f05 - ld a, [de] - sub [hl] - ld [de], a - inc de - ld a, [de] - sbc $0 - ld [de], a - pop hl - cp b - ret nc - xor a - ld [hl], a - dec hl - dec hl - dec hl - dec hl - dec hl - dec hl - ld a, $8 - ld [hl], a - dec hl - dec hl - dec hl - ld d, h - ld e, l - ld hl, $61cd - call CopyHLToDE - ret - -INCBIN "baserom.gbc",$25f27,$25f47 - $25f27 + ld a, [de] + sub [hl] + ld [de], a + inc de + ld a, [de] + sbc $0 + ld [de], a + pop hl + cp b + ret nc + xor a + ld [hl], a + dec hl + dec hl + dec hl + dec hl + dec hl + dec hl + ld a, $8 + ld [hl], a + dec hl + dec hl + dec hl + ld d, h + ld e, l + ld hl, Data_261cd + call CopyHLToDE + ret + +Data_25f27: + dr $25f27, $25f47 Func_25f47: ; 0x25f47 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $614f - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - ld a, [de] - rst $18 ; calls JumpToFuncInTable + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_2614f + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call UpdateAnimation + pop de + ret nc + ld a, [de] + rst JumpTable ; calls JumpToFuncInTable CallTable_25f5f: ; 0x25f5f - dw Func_25f77 - dw Func_25fbe - dw Func_25ff3 - dw Func_2602a - dw Func_2604c - dw Func_2607f - dw Func_260b6 - dw Func_260d8 - dw Func_260e2 - dw Func_260ec - dw Func_26109 - dw Func_26120 + dw Func_25f77 + dw Func_25fbe + dw Func_25ff3 + dw Func_2602a + dw Func_2604c + dw Func_2607f + dw Func_260b6 + dw Func_260d8 + dw Func_260e2 + dw Func_260ec + dw Func_26109 + dw Func_26120 Func_25f77: ; 0x25f77 - dec de - ld a, [de] - cp $2 - ret nz - push de - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - dec a - ld [de], a - ld a, $3 - jr z, .asm_25f8f - pop de - xor a - jp Func_26137 + dec de + ld a, [de] + cp $2 + ret nz + push de + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + dec a + ld [de], a + ld a, $3 + jr z, .asm_25f8f + pop de + xor a + jp Func_26137 + .asm_25f8f - ld hl, $d792 - ld [hl], $0 - call GenRandom - bit 7, a - jr z, .asm_25fa2 - inc de - ld a, $1 - ld [de], a - dec de - jr .asm_25fa7 + ld hl, wd792 + ld [hl], $0 + call GenRandom + bit 7, a + jr z, .asm_25fa2 + inc de + ld a, $1 + ld [de], a + dec de + jr .asm_25fa7 + .asm_25fa2 - inc de - ld a, $0 - ld [de], a - dec de + inc de + ld a, $0 + ld [de], a + dec de .asm_25fa7 - inc de - ld a, [de] - and a - jr z, .asm_25fb0 - ld a, $6 - jr .asm_25fb2 + inc de + ld a, [de] + and a + jr z, .asm_25fb0 + ld a, $6 + jr .asm_25fb2 + .asm_25fb0 - ld a, $3 + ld a, $3 .asm_25fb2 - push af - ld de, $0031 - call PlaySoundEffect - pop af - pop de - jp Func_26137 + push af + lb de, $00, $31 + call PlaySoundEffect + pop af + pop de + jp Func_26137 Func_25fbe: ; 0x25fbe - dec de - ld a, [de] - cp $4 - ret nz - push de - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - dec a - ld [de], a - jr z, .asm_25fd5 - pop de - ld a, $1 - jp Func_26137 + dec de + ld a, [de] + cp $4 + ret nz + push de + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + dec a + ld [de], a + jr z, .asm_25fd5 + pop de + ld a, $1 + jp Func_26137 + .asm_25fd5 - ld a, [$d791] - cp $0 - jr z, .asm_25fe9 - ld a, $2 - ld [de], a - pop de - ld a, $4 - ld [de], a - ld a, $1 - jp Func_26137 - - ret ; unused instruction + ld a, [wd791] + cp $0 + jr z, .asm_25fe9 + ld a, $2 + ld [de], a + pop de + ld a, $4 + ld [de], a + ld a, $1 + jp Func_26137 + ret ; unused instruction .asm_25fe9 - ld hl, $d791 - inc [hl] - pop de - ld a, $2 - jp Func_26137 + ld hl, wd791 + inc [hl] + pop de + ld a, $2 + jp Func_26137 Func_25ff3: ; 0x25ff3 - dec de - ld a, [de] - cp $7 - ret nz - xor a - call Func_26137 - inc de - inc de - inc de - inc de - inc de - ld a, [$d792] - cp $6 - jr nc, .asm_26020 - cp $2 - jr nc, .asm_26016 - ld a, $3 - ld [de], a - ld de, $0031 - call PlaySoundEffect - ret + dec de + ld a, [de] + cp $7 + ret nz + xor a + call Func_26137 + inc de + inc de + inc de + inc de + inc de + ld a, [wd792] + cp $6 + jr nc, .asm_26020 + cp $2 + jr nc, .asm_26016 + ld a, $3 + ld [de], a + lb de, $00, $31 + call PlaySoundEffect + ret + .asm_26016 - ld a, $2 - ld [de], a - ld de, $0031 - call PlaySoundEffect - ret + ld a, $2 + ld [de], a + lb de, $00, $31 + call PlaySoundEffect + ret + .asm_26020 - ld a, $1 - ld [de], a - ld de, $0031 - call PlaySoundEffect - ret + ld a, $1 + ld [de], a + lb de, $00, $31 + call PlaySoundEffect + ret Func_2602a: ; 0x2602a - dec de - ld a, [de] - cp $9 - ret nz - ld a, $1 - call Func_26137 - inc de - inc de - inc de - inc de - inc de - call GenRandom - bit 7, a - jr z, .asm_26044 - ld a, $3 - jr .asm_26046 + dec de + ld a, [de] + cp $9 + ret nz + ld a, $1 + call Func_26137 + inc de + inc de + inc de + inc de + inc de + call GenRandom + bit 7, a + jr z, .asm_26044 + ld a, $3 + jr .asm_26046 + .asm_26044 - ld a, $5 + ld a, $5 .asm_26046 - ld [de], a - ld hl, $d791 - dec [hl] - ret + ld [de], a + ld hl, wd791 + dec [hl] + ret Func_2604c: ; 0x2604c - dec de - ld a, [de] - cp $4 - ret nz - push de - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - dec a - ld [de], a - jr z, .asm_26063 - pop de - ld a, $4 - jp Func_26137 + dec de + ld a, [de] + cp $4 + ret nz + push de + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + dec a + ld [de], a + jr z, .asm_26063 + pop de + ld a, $4 + jp Func_26137 + .asm_26063 - ld a, [$d791] - cp $0 - jr z, .asm_26075 - ld a, $2 - ld [de], a - pop de - ld a, $4 - ld [de], a - jp Func_26137 - - ret ; unused instruction + ld a, [wd791] + cp $0 + jr z, .asm_26075 + ld a, $2 + ld [de], a + pop de + ld a, $4 + ld [de], a + jp Func_26137 + ret ; unused instruction .asm_26075 - ld hl, $d791 - inc [hl] - pop de - ld a, $5 - jp Func_26137 + ld hl, wd791 + inc [hl] + pop de + ld a, $5 + jp Func_26137 Func_2607f: ; 0x2607f - dec de - ld a, [de] - cp $7 - ret nz - xor a - call Func_26137 - inc de - inc de - inc de - inc de - inc de - ld a, [$d792] - cp $6 - jr nc, .asm_260ac - cp $2 - jr nc, .asm_260a2 - ld a, $3 - ld [de], a - ld de, $0031 - call PlaySoundEffect - ret + dec de + ld a, [de] + cp $7 + ret nz + xor a + call Func_26137 + inc de + inc de + inc de + inc de + inc de + ld a, [wd792] + cp $6 + jr nc, .asm_260ac + cp $2 + jr nc, .asm_260a2 + ld a, $3 + ld [de], a + lb de, $00, $31 + call PlaySoundEffect + ret + .asm_260a2 - ld a, $2 - ld [de], a - ld de, $0031 - call PlaySoundEffect - ret + ld a, $2 + ld [de], a + lb de, $00, $31 + call PlaySoundEffect + ret + .asm_260ac - ld a, $1 - ld [de], a - ld de, $0031 - call PlaySoundEffect - ret + ld a, $1 + ld [de], a + lb de, $00, $31 + call PlaySoundEffect + ret Func_260b6: ; 0x260b6 - dec de - ld a, [de] - cp $9 - ret nz - ld a, $4 - call Func_26137 - inc de - inc de - inc de - inc de - inc de - call GenRandom - bit 7, a - jr z, .asm_260d0 - ld a, $3 - jr .asm_260d2 + dec de + ld a, [de] + cp $9 + ret nz + ld a, $4 + call Func_26137 + inc de + inc de + inc de + inc de + inc de + call GenRandom + bit 7, a + jr z, .asm_260d0 + ld a, $3 + jr .asm_260d2 + .asm_260d0 - ld a, $5 + ld a, $5 .asm_260d2 - ld [de], a - ld hl, $d791 - dec [hl] - ret + ld [de], a + ld hl, wd791 + dec [hl] + ret Func_260d8: ; 0x260d8 - dec de - ld a, [de] - cp $5 - ret nz - ld a, $4 - jp Func_26137 + dec de + ld a, [de] + cp $5 + ret nz + ld a, $4 + jp Func_26137 Func_260e2: ; 0x260e2 - dec de - ld a, [de] - cp $5 - ret nz - ld a, $1 - jp Func_26137 + dec de + ld a, [de] + cp $5 + ret nz + ld a, $1 + jp Func_26137 Func_260ec: ; 0x260ec - dec de - ld a, [de] - cp $1 - ret nz - push de - inc de - inc de - inc de - inc de - inc de - inc de - inc de - ld a, [de] - and a - jr z, .asm_26103 - pop de - ld a, $b - jp Func_26137 + dec de + ld a, [de] + cp $1 + ret nz + push de + inc de + inc de + inc de + inc de + inc de + inc de + inc de + ld a, [de] + and a + jr z, .asm_26103 + pop de + ld a, $b + jp Func_26137 + .asm_26103 - pop de - ld a, $a - jp Func_26137 + pop de + ld a, $a + jp Func_26137 Func_26109: ; 0x26109 - dec de - ld a, [de] - cp $7 - ret nz - ld a, $1 - call Func_26137 - inc de - inc de - inc de - inc de - inc de - ld a, $5 - ld [de], a - ld hl, $d791 - dec [hl] - ret + dec de + ld a, [de] + cp $7 + ret nz + ld a, $1 + call Func_26137 + inc de + inc de + inc de + inc de + inc de + ld a, $5 + ld [de], a + ld hl, wd791 + dec [hl] + ret Func_26120: ; 0x26120 - dec de - ld a, [de] - cp $7 - ret nz - ld a, $4 - call Func_26137 - inc de - inc de - inc de - inc de - inc de - ld a, $5 - ld [de], a - ld hl, $d791 - dec [hl] - ret + dec de + ld a, [de] + cp $7 + ret nz + ld a, $4 + call Func_26137 + inc de + inc de + inc de + inc de + inc de + ld a, $5 + ld [de], a + ld hl, wd791 + dec [hl] + ret Func_26137: ; 0x26137 - push af - sla a - ld c, a - ld b, $0 - ld hl, $614f ; todo - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - call CopyHLToDE - pop de - inc de - pop af - ld [de], a - ret - -INCBIN "baserom.gbc",$2614f,$261f9 - $2614f + push af + sla a + ld c, a + ld b, $0 + ld hl, Data_2614f + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + call CopyHLToDE + pop de + inc de + pop af + ld [de], a + ret + +Data_2614f: + dr $2614f, $261c2 + +Data_261c2: + dr $261c2, $261cd + +Data_261cd: + dr $261cd, $261d8 + +Data_261d8: + dr $261d8, $261f9 Func_261f9: ; 0x261f9 - ld a, $ff - ld [$d795], a - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $623a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - dec de - dec de - dec de - call CopyHLToDE - ret + ld a, $ff + ld [wd795], a + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_2623a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + dec de + dec de + dec de + call CopyHLToDE + ret Func_26212: ; 0x26212 - ld a, [de] - sla a - ld c, a - ld b, $0 - ld hl, $623a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push de - dec de - dec de - dec de - call UpdateAnimation - pop de - ret nc - dec de - ld a, [de] - cp $a - ret nz - xor a - ld [de], a - ld [$d79c], a - ld [$d79e], a - ld a, a - ld [$d795], a - ret - -INCBIN "baserom.gbc",$2623a,$262f4 - $2623a + ld a, [de] + sla a + ld c, a + ld b, $0 + ld hl, Data_2623a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push de + dec de + dec de + dec de + call UpdateAnimation + pop de + ret nc + dec de + ld a, [de] + cp $a + ret nz + xor a + ld [de], a + ld [wd79c], a + ld [wd79e], a + ld a, a + ld [wd795], a + ret + +Data_2623a: + dr $2623a, $262f4 Func_262f4: ; 0x262f4 - ld a, [$d793] - ld c, a - ld b, $0 + ld a, [wd793] + ld c, a + ld b, $0 .asm_262fa - ld a, c - and a - jr z, .asm_26306 - ld a, b - add $8 - ld b, a - dec c - ld a, c - jr .asm_262fa + ld a, c + and a + jr z, .asm_26306 + ld a, b + add $8 + ld b, a + dec c + ld a, c + jr .asm_262fa + .asm_26306 - ld a, b - and a - jr z, .asm_2630c - sub $8 + ld a, b + and a + jr z, .asm_2630c + sub $8 .asm_2630c - ld [$d652], a - ld a, [$d792] - and a - jr z, .asm_2631b - ld b, a - ld a, [$d793] - inc a - sub b + ld [wd652], a + ld a, [wd792] + and a + jr z, .asm_2631b + ld b, a + ld a, [wd793] + inc a + sub b .asm_2631b - ld [$d651], a - ld a, [$d793] - cp $15 - jr c, .asm_2632a - ld a, $14 - ld [$d793], a + ld [wd651], a + ld a, [wd793] + cp $15 + jr c, .asm_2632a + ld a, $14 + ld [wd793], a .asm_2632a - push af - xor a - ld [$d650], a - pop af - sla a - ld c, a - ld b, $0 - ld hl, $634a - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_26340 - ld hl, $6764 + push af + xor a + ld [wd650], a + pop af + sla a + ld c, a + ld b, $0 + ld hl, Data_2634a + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_26340 + ld hl, Data_26764 .asm_26340 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $9 - call Func_10aa - ret + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $9 + call Func_10aa + ret + +Data_2634a: + dr $2634a, $26764 -INCBIN "baserom.gbc",$2634a,$26b7e - $2634a +Data_26764: + dr $26764, $26b7e Func_26b7e: ; 0x26b7e - ld bc, $7f65 - ld [$ff8a], a - ld a, Bank(Func_175a4) - ld hl, Func_175a4 - call BankSwitch - call Func_26bf7 - ld [$ff8a], a - ld a, Bank(Func_e4a1) - ld hl, Func_e4a1 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_17e81) - ld hl, Func_17e81 - call BankSwitch - call Func_26ba9 - call Func_26c3c - ret + ld bc, $7f65 + callba Func_175a4 + call Func_26bf7 + callba Func_e4a1 + callba Func_17e81 + call Func_26ba9 + call Func_26c3c + ret Func_26ba9: ; 0x26ba9 - ld de, $d76e - call Func_26bbc - ld de, $d778 - call Func_26bbc - ld de, $d782 - call Func_26bbc - ret + ld de, wd76e + call Func_26bbc + ld de, wd778 + call Func_26bbc + ld de, wd782 + call Func_26bbc + ret Func_26bbc: ; 0x26bbc - ld a, [de] - ld hl, hBoardXShift - sub [hl] - ld b, a - inc de - inc de - ld a, [de] - ld hl, hBoardYShift - sub [hl] - ld c, a - dec de - dec de - dec de - dec de - dec de - dec de - ld a, [de] - ld e, a - ld d, $0 - ld hl, $6bdf - add hl, de - ld a, [hl] - cp $ff - call nz, LoadOAMData2 - ret - -INCBIN "baserom.gbc",$26bdf,$26bf7 - $26bdf + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, Data_26bdf + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +Data_26bdf: + dr $26bdf, $26bf7 Func_26bf7: ; 0x26bf7: ; 0x26bf7 - ld a, [$d795] - cp $0 - ret z - ld de, $d79c - ld a, [de] - ld hl, hBoardXShift - sub [hl] - ld b, a - inc de - inc de - ld a, [de] - ld hl, hBoardYShift - sub [hl] - ld c, a - dec de - dec de - dec de - dec de - dec de - dec de - ld a, [de] - ld e, a - ld d, $0 - ld hl, $6c23 - add hl, de - ld a, [hl] - cp $ff - call nz, LoadOAMData2 - ret - -INCBIN "baserom.gbc",$26c23,$26c3c - $26c23 + ld a, [wd795] + cp $0 + ret z + ld de, wd79c + ld a, [de] + ld hl, hSCX + sub [hl] + ld b, a + inc de + inc de + ld a, [de] + ld hl, hSCY + sub [hl] + ld c, a + dec de + dec de + dec de + dec de + dec de + dec de + ld a, [de] + ld e, a + ld d, $0 + ld hl, Data_26c23 + add hl, de + ld a, [hl] + cp $ff + call nz, LoadOAMData2 + ret + +Data_26c23: + dr $26c23, $26c3c Func_26c3c: ; 0x26c3c - ld a, [$d64e] - and a - ret z - ld a, [$d652] - ld hl, hBoardXShift - sub [hl] - ld b, a - xor a - ld hl, hBoardYShift - sub [hl] - ld c, a - ld a, [$d64f] - cp $a - jr c, .asm_26c5b - ld de, $0000 - jr .asm_26c5e + ld a, [wd64e] + and a + ret z + ld a, [wd652] + ld hl, hSCX + sub [hl] + ld b, a + xor a + ld hl, hSCY + sub [hl] + ld c, a + ld a, [wd64f] + cp $a + jr c, .asm_26c5b + ld de, $0000 + jr .asm_26c5e + .asm_26c5b - ld de, $0001 + ld de, $0001 .asm_26c5e - ld hl, $6c7d - add hl, de - ld a, [hl] - call LoadOAMData2 - ld hl, $d64f - inc [hl] - ld a, [hl] - cp $14 - ret c - ld [hl], $0 - ld hl, $d650 - inc [hl] - ld a, [hl] - cp $a - ret nz - xor a - ld [$d64e], a - ret - -INCBIN "baserom.gbc",$26c7d,$28000 - $26c7d - + ld hl, Data_26c7d + add hl, de + ld a, [hl] + call LoadOAMData2 + ld hl, wd64f + inc [hl] + ld a, [hl] + cp $14 + ret c + ld [hl], $0 + ld hl, wd650 + inc [hl] + ld a, [hl] + cp $a + ret nz + xor a + ld [wd64e], a + ret + +Data_26c7d: + dr $26c7d, $26c7f SECTION "banka", ROMX, BANK[$a] HandlePokedexScreen: ; 0x28000 - ld a, [wScreenState] - rst $18 ; calls JumpToFuncInTable + ld a, [wScreenState] + rst JumpTable ; calls JumpToFuncInTable PointerTable_28004: ; 0x28004 - dw LoadPokedexScreen - dw MainPokedexScreen - dw MonInfoPokedexScreen - dw Func_282e9 ; not sure if this is used ever... - dw ExitPokedexScreen + dw LoadPokedexScreen + dw MainPokedexScreen + dw MonInfoPokedexScreen + dw Func_282e9 ; not sure if this is used ever... + dw ExitPokedexScreen LoadPokedexScreen: ; 0x2800e - ld a, $23 - ld [$ff9e], a - ld a, $e4 - ld [$d80c], a - ld a, $93 - ld [$d80d], a - ld a, $e4 - ld [$d80e], a - xor a - ld [hBoardXShift], a - ld a, $8 - ld [hBoardYShift], a - ld a, $7 - ld [$ffa7], a - ld a, $8c - ld [$ffa6], a - ld a, $3b - ld [$ffa2], a - ld [$ffa8], a - ld [$ffa9], a - ld [$ffaa], a - ld hl, $ff9f - set 6, [hl] - ld hl, $ffff - set 1, [hl] - ld a, $2 - ld [$ffb0], a - ld hl, PointerTable_280a2 - ld a, [hGameBoyColorFlag] - call LoadVideoData - xor a - ld [wCurPokedexIndex], a - ld [wPokedexOffset], a - ld [$d95b], a - ld [$d95c], a - ld [$d960], a - ld [$d961], a - ld [$d95e], a - ld a, $1 - ld [$d862], a - call ClearOAMBuffer - call Func_285db - call Func_28931 - call Func_289c8 - call Func_28a15 - call Func_28972 - call Func_28a8a - call Func_28ad1 - call Func_28add - call CountNumSeenOwnedMons - call Func_b66 - ld a, $f - call SetSongBank - ld de, $0004 - call PlaySong - call Func_588 - call Func_bbe - ld hl, wScreenState - inc [hl] - ret + ld a, $23 + ld [hLCDC], a + ld a, $e4 + ld [wd80c], a + ld a, $93 + ld [wd80d], a + ld a, $e4 + ld [wd80e], a + xor a + ld [hSCX], a + ld a, $8 + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $8c + ld [hWY], a + ld a, $3b + ld [hLYC], a + ld [hLastLYC], a + ld [hNextLYCSub], a + ld [hLYCSub], a + ld hl, hSTAT + set 6, [hl] + ld hl, rIE + set 1, [hl] + ld a, $2 + ld [hHBlankRoutine], a + ld hl, PointerTable_280a2 + ld a, [hGameBoyColorFlag] + call LoadVideoData + xor a + ld [wCurPokedexIndex], a + ld [wPokedexOffset], a + ld [wd95b], a + ld [wd95c], a + ld [wd960], a + ld [wd961], a + ld [wd95e], a + ld a, $1 + ld [wd862], a + call ClearOAMBuffer + call Func_285db + call Func_28931 + call Func_289c8 + call Func_28a15 + call Func_28972 + call Func_28a8a + call Func_28ad1 + call Func_28add + call CountNumSeenOwnedMons + call Func_b66 + ld a, $f + call SetSongBank + ld de, $0004 + call PlaySong + call Func_588 + call Func_bbe + ld hl, wScreenState + inc [hl] + ret PointerTable_280a2: ; 0x280a2 - dw Data_280a6 - dw Data_280c4 + dw Data_280a6 + dw Data_280c4 Data_280a6: ; 0x280a6 - dw $5800 - db $2B - dw vTiles0 - dw $6000 - - dw $5000 - db $31 - dw $9800 - dw $1000 - - dw $4800 - db $31 - dw vBGMap1 - dw $800 - - dw $4800 - db $31 - dw $9e00 - dw $800 - - db $FF, $FF ; terminators + dab Data_ad800 + dw vTilesOB + dw $6000 + dab Data_c5000 + dw $9800 + dw $1000 + dab Data_c4800 + dw vBGWin + dw $800 + dab Data_c4800 + dw $9e00 + dw $800 + dw $FFFF ; terminators Data_280c4: ; 0x280c4 - dw $5800 - db $2B - dw vTiles0 - dw $6000 - - dw $5000 - db $31 - dw $9800 - dw $1000 - - dw $5400 - db $31 - dw $9800 - dw $1002 - - dw $4800 - db $31 - dw vBGMap1 - dw $800 - - dw $4800 - db $31 - dw $9e00 - dw $800 - - dw $4c00 - db $31 - dw vBGMap1 - dw $802 - - dw $4c00 - db $31 - dw $9e00 - dw $802 - - dw $4e80 - db $37 - dw $0000 - dw $101 - - db $FF, $FF ; terminators + dab Data_ad800 + dw vTilesOB + dw $6000 + dab Data_c5000 + dw $9800 + dw $1000 + dab Data_c5400 + dw $9800 + dw $1002 + dab Data_c4800 + dw vBGWin + dw $800 + dab Data_c4800 + dw $9e00 + dw $800 + dab Data_c4c00 + dw vBGWin + dw $802 + dab Data_c4c00 + dw $9e00 + dw $802 + dab Data_dce80 + dw $0000 + dw $101 + dw $FFFF ; terminators MainPokedexScreen: ; 0x280fe - call Func_28513 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_28142 - ld a, [$d95f] - and a - jp nz, .asm_28174 - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - ld a, [hl] - and a - jp z, .asm_28174 - push hl - ld a, [wCurPokedexIndex] - inc a - ld e, a - ld d, $0 - call PlayCry - pop hl - bit 1, [hl] - jp z, .asm_28174 - call Func_288c6 - call Func_2885c - call Func_926 - call Func_2887c - call Func_2885c - ld hl, wScreenState - inc [hl] - ret + call Func_28513 + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_28142 + ld a, [wd95f] + and a + jp nz, .asm_28174 + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + ld a, [hl] + and a + jp z, .asm_28174 + push hl + ld a, [wCurPokedexIndex] + inc a + ld e, a + ld d, $0 + call PlayCry + pop hl + bit 1, [hl] + jp z, .asm_28174 + call Func_288c6 + call Func_2885c + call Func_926 + call Func_2887c + call Func_2885c + ld hl, wScreenState + inc [hl] + ret + .asm_28142 - bit BIT_B_BUTTON, a - jr z, .asm_2814f - call Func_285db - ld a, $4 - ld [wScreenState], a - ret + bit BIT_B_BUTTON, a + jr z, .asm_2814f + call Func_285db + ld a, $4 + ld [wScreenState], a + ret + .asm_2814f - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_28174 - ld a, [hJoypadState] - bit BIT_START, a - jr z, .asm_28168 - ld a, [$d960] - and a - ld a, $ff - ld [$d960], a - call z, Func_28add - jr .asm_28174 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_28174 + ld a, [hJoypadState] + bit BIT_START, a + jr z, .asm_28168 + ld a, [wd960] + and a + ld a, $ff + ld [wd960], a + call z, Func_28add + jr .asm_28174 + .asm_28168 - ld a, [$d960] - and a - ld a, $0 - ld [$d960], a - call nz, Func_28add + ld a, [wd960] + and a + ld a, $0 + ld [wd960], a + call nz, Func_28add .asm_28174 - call Func_285db - ret + call Func_285db + ret MonInfoPokedexScreen: ; 0x28178 - ld a, [$d956] - bit 0, a - jr z, .asm_28190 - ld a, [hNewlyPressedButtons] - bit BIT_A_BUTTON, a - jr z, .asm_2818a - call Func_28912 - jr .asm_281a2 + ld a, [wd956] + bit 0, a + jr z, .asm_28190 + ld a, [hNewlyPressedButtons] + bit BIT_A_BUTTON, a + jr z, .asm_2818a + call Func_28912 + jr .asm_281a2 + .asm_2818a - bit 1, a - jr z, .asm_281a2 - jr .asm_28196 + bit 1, a + jr z, .asm_281a2 + jr .asm_28196 + .asm_28190 - ld a, [hNewlyPressedButtons] - and $3 - jr z, .asm_281a2 + ld a, [hNewlyPressedButtons] + and $3 + jr z, .asm_281a2 .asm_28196 - call Func_288a2 - call Func_285db - ld a, $1 - ld [wScreenState], a - ret + call Func_288a2 + call Func_285db + ld a, $1 + ld [wScreenState], a + ret + .asm_281a2 - ld a, [hGameBoyColorFlag] - and a - jr z, .asm_281c7 - ld a, [hJoypadState] - bit BIT_START, a - jr z, .asm_281bb - ld a, [$d960] - and a - ld a, $ff - ld [$d960], a - call z, Func_28add - jr .asm_281c7 + ld a, [hGameBoyColorFlag] + and a + jr z, .asm_281c7 + ld a, [hJoypadState] + bit BIT_START, a + jr z, .asm_281bb + ld a, [wd960] + and a + ld a, $ff + ld [wd960], a + call z, Func_28add + jr .asm_281c7 + .asm_281bb - ld a, [$d960] - and a - ld a, $0 - ld [$d960], a - call nz, Func_28add + ld a, [wd960] + and a + ld a, $0 + ld [wd960], a + call nz, Func_28add .asm_281c7 - call Func_2885c - ret - -INCBIN "baserom.gbc",$281cb,$282e9 - $281cb + call Func_2885c + ret + +Func_281cb: + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_281da + inc b +.asm_281da + ld a, [wd960] + and a + jr nz, .asm_281fb + ld hl, MonBillboardPalettePointers + add hl, bc + ld a, BANK(MonBillboardPalettePointers) + call ReadByteFromBank + inc hl + ld e, a + ld a, BANK(MonBillboardPalettePointers) + call ReadByteFromBank + inc hl + ld d, a + ld a, BANK(MonBillboardPalettePointers) + call ReadByteFromBank + ld [$ff8c], a + jr .asm_28214 + +.asm_281fb + ld hl, MonAnimatedPalettePointers + add hl, bc + ld a, BANK(MonAnimatedPalettePointers) + call ReadByteFromBank + inc hl + ld e, a + ld a, BANK(MonAnimatedPalettePointers) + call ReadByteFromBank + inc hl + ld d, a + ld a, BANK(MonAnimatedPalettePointers) + call ReadByteFromBank + ld [$ff8c], a +.asm_28214 + ld h, d + ld l, e + ld de, wda8a + ld b, $8 +.asm_2821b + push bc + ld a, [$ff8c] + call ReadByteFromBank + inc hl + ld c, a + ld a, [$ff8c] + call ReadByteFromBank + inc hl + ld b, a + ld a, c + and $1f + ld [de], a + inc de + srl b + rr c + srl b + rr c + srl b + rr c + srl b + rr c + srl b + rr c + ld a, c + and $1f + ld [de], a + inc de + srl b + rr c + srl b + rr c + srl b + rr c + srl b + rr c + srl b + rr c + ld a, c + and $1f + ld [de], a + inc de + pop bc + dec b + jr nz, .asm_2821b + ld hl, Data_28289 + ld de, wda8a + ld b, $18 +.asm_2826d + push hl + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [de] + inc de + push af + swap a + and $f + call PutTileInVRAM + inc hl + pop af + and $f + call PutTileInVRAM + pop hl + inc hl + inc hl + dec b + jr nz, .asm_2826d + ret + +Data_28289: + dr $28289, $282b9 + +Data_282b9: + dr $282b9, $282e9 Func_282e9: ; 0x282e9 - ld a, [$d960] - and a - jr z, .asm_28318 - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, MonAnimatedSpriteTypes - add hl, bc - ld a, Bank(MonAnimatedSpriteTypes) - call ReadByteFromBank - ld c, a - ld a, [$ffb3] - swap a - and $7 - cp $7 - jr z, .asm_2830d - and $1 - jr .asm_2830f + ld a, [wd960] + and a + jr z, .asm_28318 + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, MonAnimatedSpriteTypes + add hl, bc + ld a, Bank(MonAnimatedSpriteTypes) + call ReadByteFromBank + ld c, a + ld a, [hNumFramesDropped] + swap a + and $7 + cp $7 + jr z, .asm_2830d + and $1 + jr .asm_2830f + .asm_2830d - ld a, $2 + ld a, $2 .asm_2830f - add c - add $a5 - ld bc, $2030 - call LoadOAMData + add c + add $a5 + ld bc, $2030 + call LoadOAMData .asm_28318 - ld a, [$daa2] - sla a - ld c, a - ld b, $0 - ld hl, $42b9 ; todo - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, $63 - call LoadOAMData - call Func_28368 - ld a, [hNewlyPressedButtons] - and $6 - jr z, .asm_28367 - ld a, $31 - ld hl, $4800 ; todo - ld de, vBGMap1 - ld bc, $0200 - call LoadVRAMData - ld a, $1 - ld [$ff4f], a - ld a, $31 - ld hl, $4c00 ; todo - ld de, vBGMap1 - ld bc, $0200 - call LoadVRAMData - xor a - ld [$ff4f], a - call Func_28972 - call Func_28a8a - call Func_28ad1 - ld a, $1 - ld [wScreenState], a + ld a, [wdaa2] + sla a + ld c, a + ld b, $0 + ld hl, Data_282b9 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, $63 + call LoadOAMData + call Func_28368 + ld a, [hNewlyPressedButtons] + and $6 + jr z, .asm_28367 + ld a, BANK(Data_c4800) + ld hl, Data_c4800 + ld de, vBGWin + ld bc, $0200 + call LoadVRAMData + ld a, $1 + ld [rVBK], a + ld a, BANK(Data_c4c00) + ld hl, Data_c4c00 + ld de, vBGWin + ld bc, $0200 + call LoadVRAMData + xor a + ld [rVBK], a + call Func_28972 + call Func_28a8a + call Func_28ad1 + ld a, $1 + ld [wScreenState], a .asm_28367 - ret + ret Func_28368: ; 0x28368 - ld a, [hJoypadState] - bit BIT_A_BUTTON, a - jr nz, .asm_28371 - jp Func_284bc + ld a, [hJoypadState] + bit BIT_A_BUTTON, a + jr nz, .asm_28371 + jp Func_284bc + .asm_28371 - ld a, [hPressedButtons] - ld b, a - ld a, [$daa2] - ld e, a - ld d, $0 - ld hl, $da8a - add hl, de - ld a, [hl] - bit 5, b - jr z, .asm_28386 - dec a - jr .asm_2838a + ld a, [hPressedButtons] + ld b, a + ld a, [wdaa2] + ld e, a + ld d, $0 + ld hl, wda8a + add hl, de + ld a, [hl] + bit 5, b + jr z, .asm_28386 + dec a + jr .asm_2838a + .asm_28386 - bit 4, b - ret z - inc a + bit 4, b + ret z + inc a .asm_2838a - and $1f - ld [hl], a - push af - sla e - rl d - ld hl, $4289 ; todo - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - pop af - push af - swap a - and $f - call PutTileInVRAM - inc hl - pop af - and $f - call PutTileInVRAM - ld hl, $442c ; todo - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hld] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - ld a, [hld] - or c - ld c, a - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - ld a, [hl] - or c - ld c, a - ld a, [$d960] - and a - jr nz, .asm_283ff - ld hl, $445c ; todo - add hl, de - ld a, [hl] - ld hl, $ff68 - call PutTileInVRAM - ld hl, $ff69 - ld a, c - call PutTileInVRAM - ld a, b - call PutTileInVRAM - ret + and $1f + ld [hl], a + push af + sla e + rl d + ld hl, Data_28289 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop af + push af + swap a + and $f + call PutTileInVRAM + inc hl + pop af + and $f + call PutTileInVRAM + ld hl, Data_2842c + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hld] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + ld a, [hld] + or c + ld c, a + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + ld a, [hl] + or c + ld c, a + ld a, [wd960] + and a + jr nz, .asm_283ff + ld hl, Data_2845c + add hl, de + ld a, [hl] + ld hl, rBGPI + call PutTileInVRAM + ld hl, rBGPD + ld a, c + call PutTileInVRAM + ld a, b + call PutTileInVRAM + ret + .asm_283ff - ld hl, $445c ; todo - add hl, de - ld a, [hl] - ld hl, $ff68 - call PutTileInVRAM - ld hl, $ff69 - ld a, c - call PutTileInVRAM - ld a, b - call PutTileInVRAM - ld hl, $448c ; todo - add hl, de - ld a, [hl] - ld hl, $ff6a - call PutTileInVRAM - ld hl, $ff6b - ld a, c - call PutTileInVRAM - ld a, b - call PutTileInVRAM - ret - -INCBIN "baserom.gbc",$2842c,$284bc - $2842c + ld hl, Data_2845c + add hl, de + ld a, [hl] + ld hl, rBGPI + call PutTileInVRAM + ld hl, rBGPD + ld a, c + call PutTileInVRAM + ld a, b + call PutTileInVRAM + ld hl, Data_2848c + add hl, de + ld a, [hl] + ld hl, rOBPI + call PutTileInVRAM + ld hl, rOBPD + ld a, c + call PutTileInVRAM + ld a, b + call PutTileInVRAM + ret + +Data_2842c: + dr $2842c, $2845c + +Data_2845c: + dr $2845c, $2848c + +Data_2848c: + dr $2848c, $284bc Func_284bc: ; 0x284bc - ld a, [hPressedButtons] - ld b, a - ld a, [$daa2] - bit 5, b - jr z, .asm_284cd - dec a - bit 7, a - jr nz, .asm_284ef - jr .asm_284f5 + ld a, [hPressedButtons] + ld b, a + ld a, [wdaa2] + bit 5, b + jr z, .asm_284cd + dec a + bit 7, a + jr nz, .asm_284ef + jr .asm_284f5 + .asm_284cd - bit 4, b - jr z, .asm_284d8 - inc a - cp $18 - jr nc, .asm_284f3 - jr .asm_284f5 + bit 4, b + jr z, .asm_284d8 + inc a + cp $18 + jr nc, .asm_284f3 + jr .asm_284f5 + .asm_284d8 - bit 6, b - jr z, .asm_284e4 - sub $3 - bit 7, a - jr nz, .asm_284ef - jr .asm_284f5 + bit 6, b + jr z, .asm_284e4 + sub $3 + bit 7, a + jr nz, .asm_284ef + jr .asm_284f5 + .asm_284e4 - bit 7, b - ret z - add $3 - cp $18 - jr nc, .asm_284f3 - jr .asm_284f5 + bit 7, b + ret z + add $3 + cp $18 + jr nc, .asm_284f3 + jr .asm_284f5 + .asm_284ef - add $18 - jr .asm_284f5 + add $18 + jr .asm_284f5 + .asm_284f3 - sub $18 + sub $18 .asm_284f5 - ld [$daa2], a - ret + ld [wdaa2], a + ret ExitPokedexScreen: ; 0x284f9 - call Func_cb5 - call Func_576 - ld hl, $ff9f - res 6, [hl] - ld hl, $ffff - res 1, [hl] - ld a, SCREEN_TITLESCREEN - ld [wCurrentScreen], a - xor a - ld [wScreenState], a - ret + call Func_cb5 + call Func_576 + ld hl, hSTAT + res 6, [hl] + ld hl, rIE + res 1, [hl] + ld a, SCREEN_TITLESCREEN + ld [wCurrentScreen], a + xor a + ld [wScreenState], a + ret Func_28513: ; 0x28513 - ld a, [hPressedButtons] - ld hl, $d95e - or [hl] - ld [hl], a - ld a, [$d95c] - and a - ret nz - ld a, [$d95e] - ld b, a - ld a, [$d9f8] - and a - ld a, NUM_POKEMON - 1 - jr z, .asm_2852d - ld a, NUM_POKEMON + ld a, [hPressedButtons] + ld hl, wd95e + or [hl] + ld [hl], a + ld a, [wd95c] + and a + ret nz + ld a, [wd95e] + ld b, a + ld a, [wd9f8] + and a + ld a, NUM_POKEMON - 1 + jr z, .asm_2852d + ld a, NUM_POKEMON .asm_2852d - ld d, a - ld a, [wCurPokedexIndex] - bit 6, b - jr z, .asm_28548 - and a - jr z, .asm_285a9 - dec a - ld [wCurPokedexIndex], a - ld a, $4 - ld [$d95c], a - ld a, $1 - ld [$d95f], a - jr .asm_285a9 + ld d, a + ld a, [wCurPokedexIndex] + bit 6, b + jr z, .asm_28548 + and a + jr z, .asm_285a9 + dec a + ld [wCurPokedexIndex], a + ld a, $4 + ld [wd95c], a + ld a, $1 + ld [wd95f], a + jr .asm_285a9 + .asm_28548 - bit 7, b - jr z, .asm_2855f - inc a - cp d - jr z, .asm_285a9 - ld [wCurPokedexIndex], a - ld a, $4 - ld [$d95c], a - ld a, $1 - ld [$d95f], a - jr .asm_285a9 + bit 7, b + jr z, .asm_2855f + inc a + cp d + jr z, .asm_285a9 + ld [wCurPokedexIndex], a + ld a, $4 + ld [wd95c], a + ld a, $1 + ld [wd95f], a + jr .asm_285a9 + .asm_2855f - ld a, d - sub $9 - ld d, a - ld a, [wPokedexOffset] - ld c, $5 - bit 5, b - jr z, .asm_28586 - cp $5 - jr nc, .asm_28571 - ld c, a + ld a, d + sub $9 + ld d, a + ld a, [wPokedexOffset] + ld c, $5 + bit 5, b + jr z, .asm_28586 + cp $5 + jr nc, .asm_28571 + ld c, a .asm_28571 - sub c - ld [wPokedexOffset], a - ld a, [wCurPokedexIndex] - sub c - ld [wCurPokedexIndex], a - ld a, $1 - ld [$d95f], a - call Func_285ca - jr .asm_285aa + sub c + ld [wPokedexOffset], a + ld a, [wCurPokedexIndex] + sub c + ld [wCurPokedexIndex], a + ld a, $1 + ld [wd95f], a + call Func_285ca + jr .asm_285aa + .asm_28586 - bit 4, b - jr z, .asm_285ae - cp d - jr c, .asm_28594 - push af - cpl - add d - add $5 - ld c, a - pop af + bit 4, b + jr z, .asm_285ae + cp d + jr c, .asm_28594 + push af + cpl + add d + add $5 + ld c, a + pop af .asm_28594 - add c - ld [wPokedexOffset], a - ld a, [wCurPokedexIndex] - add c - ld [wCurPokedexIndex], a - ld a, $1 - ld [$d95f], a - call Func_285ca - jr .asm_285aa + add c + ld [wPokedexOffset], a + ld a, [wCurPokedexIndex] + add c + ld [wCurPokedexIndex], a + ld a, $1 + ld [wd95f], a + call Func_285ca + jr .asm_285aa + .asm_285a9 - xor a + xor a .asm_285aa - ld [$d95e], a - ret + ld [wd95e], a + ret + .asm_285ae - ld a, [$d95f] - and a - ret z - ld de, $0003 - call PlaySoundEffect - call Func_28931 - call Func_289c8 - call Func_28a15 - call Func_28add - xor a - ld [$d95f], a - ret + ld a, [wd95f] + and a + ret z + lb de, $00, $03 + call PlaySoundEffect + call Func_28931 + call Func_289c8 + call Func_28a15 + call Func_28add + xor a + ld [wd95f], a + ret Func_285ca: ; 0x285ca - xor a - ld [$d80a], a - call Func_28972 - call Func_28a8a - call Func_28ad1 - ld a, [$d80a] - ret + xor a + ld [wd80a], a + call Func_28972 + call Func_28a8a + call Func_28ad1 + ld a, [wd80a] + ret Func_285db: ; 0x285db - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - bit 1, [hl] ; has pokemon been seen or captured? - call nz, Func_287e7 - ld bc, $8c38 - ld a, $64 - call LoadOAMData - ld bc, $8840 - ld a, $65 - call LoadOAMData - ld bc, $8888 - ld a, $66 - call LoadOAMData - call DrawCornerInfoPokedexScreen - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, $7136 ; todo - add hl, bc - ld a, [hl] - add $49 - ld c, a - ld b, $90 - ld a, [$d95b] - srl a - srl a - and $3 - ld e, a - ld d, $0 - ld hl, $4687 ; todo - add hl, de - ld a, [hl] - call LoadOAMData - ld a, [wCurPokedexIndex] - ld hl, wPokedexOffset - sub [hl] - jr nc, .asm_2863b - dec [hl] - ld a, $1 - ld [$d95d], a - xor a - jr .asm_28647 + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + bit 1, [hl] ; has pokemon been seen or captured? + call nz, Func_287e7 + ld bc, $8c38 + ld a, $64 + call LoadOAMData + ld bc, vTilesSH tile $04 + ld a, $65 + call LoadOAMData + ld bc, $8888 + ld a, $66 + call LoadOAMData + call DrawCornerInfoPokedexScreen + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, Data_2b136 + add hl, bc + ld a, [hl] + add $49 + ld c, a + ld b, $90 + ld a, [wd95b] + srl a + srl a + and $3 + ld e, a + ld d, $0 + ld hl, Data_28687 + add hl, de + ld a, [hl] + call LoadOAMData + ld a, [wCurPokedexIndex] + ld hl, wPokedexOffset + sub [hl] + jr nc, .asm_2863b + dec [hl] + ld a, $1 + ld [wd95d], a + xor a + jr .asm_28647 + .asm_2863b - cp $5 - jr c, .asm_28647 - ld a, $1 - ld [$d95d], a - inc [hl] - ld a, $4 + cp $5 + jr c, .asm_28647 + ld a, $1 + ld [wd95d], a + inc [hl] + ld a, $4 .asm_28647 - ld c, a - push bc - ld a, [hJoypadState] - and a - ld a, [$d95b] - jr z, .asm_28652 - xor a + ld c, a + push bc + ld a, [hJoypadState] + and a + ld a, [wd95b] + jr z, .asm_28652 + xor a .asm_28652 - inc a - ld [$d95b], a - bit 3, a - jr nz, .asm_28667 - swap c - ld a, c - add $40 - ld c, a - ld b, $10 - ld a, $63 - call LoadOAMData + inc a + ld [wd95b], a + bit 3, a + jr nz, .asm_28667 + swap c + ld a, c + add $40 + ld c, a + ld b, $10 + ld a, $63 + call LoadOAMData .asm_28667 - pop bc - ld a, [$d95c] - and a - ret z - dec a - ld [$d95c], a - sla a - ld e, a - ld d, $0 - push hl - ld hl, PointerTable_2867f - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] + pop bc + ld a, [wd95c] + and a + ret z + dec a + ld [wd95c], a + sla a + ld e, a + ld d, $0 + push hl + ld hl, PointerTable_2867f + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] PointerTable_2867f: ; 0x2867f - dw Func_286dd - dw Func_28721 - dw Func_286dd - dw Func_28765 + dw Func_286dd + dw Func_28721 + dw Func_286dd + dw Func_28765 -INCBIN "baserom.gbc",$28687,$2868b - $28687 +Data_28687: + dr $28687, $2868b DrawCornerInfoPokedexScreen: ; 0x2868b ; If player is holding SELECT button, it draws the seen/own count in the top-right corner. ; Otherwise, it draws the word "POKeDEX". - ld a, [hJoypadState] - bit BIT_SELECT, a - jr z, .asm_286c8 - ld bc, $6d03 - ld a, [wNumPokemonSeen + 1] - call LoadSeenOwnDigitOAM - ld a, [wNumPokemonSeen] - swap a - call LoadSeenOwnDigitOAM - ld a, [wNumPokemonSeen] - call LoadSeenOwnDigitOAM - ld bc, $8202 - ld a, $76 - call LoadOAMData ; draws the "/" between the seen/owned numbers - ld bc, $8703 - ld a, [wNumPokemonOwned + 1] - call LoadSeenOwnDigitOAM - ld a, [wNumPokemonOwned] - swap a - call LoadSeenOwnDigitOAM - ld a, [wNumPokemonOwned] - call LoadSeenOwnDigitOAM - ret + ld a, [hJoypadState] + bit BIT_SELECT, a + jr z, .asm_286c8 + ld bc, $6d03 + ld a, [wNumPokemonSeen + 1] + call LoadSeenOwnDigitOAM + ld a, [wNumPokemonSeen] + swap a + call LoadSeenOwnDigitOAM + ld a, [wNumPokemonSeen] + call LoadSeenOwnDigitOAM + ld bc, $8202 + ld a, $76 + call LoadOAMData ; draws the "/" between the seen/owned numbers + ld bc, $8703 + ld a, [wNumPokemonOwned + 1] + call LoadSeenOwnDigitOAM + ld a, [wNumPokemonOwned] + swap a + call LoadSeenOwnDigitOAM + ld a, [wNumPokemonOwned] + call LoadSeenOwnDigitOAM + ret + .asm_286c8 - ld bc, $6800 - ld a, $6a - call LoadOAMData - ret + ld bc, $6800 + ld a, $6a + call LoadOAMData + ret LoadSeenOwnDigitOAM: ; 0x286d1 - and $f - add $6c - call LoadOAMData - ld a, b - add $7 ; adds 7 pixels to the next digit's x position on screen - ld b, a - ret + and $f + add $6c + call LoadOAMData + ld a, b + add $7 ; adds 7 pixels to the next digit's x position on screen + ld b, a + ret Func_286dd: ; 0x286dd - pop hl - ld a, [$d862] - and a - jr nz, .asm_286ff - push bc - push hl - ld a, [$d863] - ld e, a - ld a, [$d864] - ld d, a - ld hl, $c010 - xor a - ld bc, $00a0 - call Func_735 - ld a, $1 - ld [$d862], a - pop hl - pop bc + pop hl + ld a, [wd862] + and a + jr nz, .asm_286ff + push bc + push hl + ld a, [wd863] + ld e, a + ld a, [wd864] + ld d, a + ld hl, wc010 + xor a + ld bc, $00a0 + call LoadOrCopyVRAMData + ld a, $1 + ld [wd862], a + pop hl + pop bc .asm_286ff - ld a, [$d95d] - and a - ret z - ld a, [$d95c] - and a - jr nz, .asm_2870d - ld [$d95d], a + ld a, [wd95d] + and a + ret z + ld a, [wd95c] + and a + jr nz, .asm_2870d + ld [wd95d], a .asm_2870d - ld a, c - and a - jr nz, .asm_28719 - ld hl, $ffab - dec [hl] - dec [hl] - dec [hl] - dec [hl] - ret + ld a, c + and a + jr nz, .asm_28719 + ld hl, hNextFrameHBlankSCX + dec [hl] + dec [hl] + dec [hl] + dec [hl] + ret + .asm_28719 - ld hl, $ffab - inc [hl] - inc [hl] - inc [hl] - inc [hl] - ret + ld hl, hNextFrameHBlankSCX + inc [hl] + inc [hl] + inc [hl] + inc [hl] + ret Func_28721: ; 0x28721 - pop hl - ld a, [$d95d] - and a - ret z - ld a, c - and a - jr nz, .asm_28747 - ld a, [hl] - push af - sla a - and $1e - ld c, a - ld b, $0 - ld hl, $47c7 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - pop af - call Func_28aaa - ld hl, $ffab - dec [hl] - dec [hl] - dec [hl] - dec [hl] - ret + pop hl + ld a, [wd95d] + and a + ret z + ld a, c + and a + jr nz, .asm_28747 + ld a, [hl] + push af + sla a + and $1e + ld c, a + ld b, $0 + ld hl, Data_287c7 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + pop af + call Func_28aaa + ld hl, hNextFrameHBlankSCX + dec [hl] + dec [hl] + dec [hl] + dec [hl] + ret + .asm_28747 - ld a, [hl] - add $5 - push af - sla a - and $1e - ld c, a - ld b, $0 - ld hl, $47c7 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - pop af - call Func_28aaa - ld hl, $ffab - inc [hl] - inc [hl] - inc [hl] - inc [hl] - ret + ld a, [hl] + add $5 + push af + sla a + and $1e + ld c, a + ld b, $0 + ld hl, Data_287c7 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + pop af + call Func_28aaa + ld hl, hNextFrameHBlankSCX + inc [hl] + inc [hl] + inc [hl] + inc [hl] + ret Func_28765: ; 0x28765 - pop hl - ld a, [$d95d] - and a - ret z - ld a, c - and a - jr nz, .asm_28791 - push hl - ld a, [hl] - sla a - and $e - ld c, a - ld b, $0 - ld hl, $47b7 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld hl, $ffab - dec [hl] - dec [hl] - dec [hl] - dec [hl] - pop hl - xor a - ld [$d862], a - ld a, [hl] - call Func_28993 - ret + pop hl + ld a, [wd95d] + and a + ret z + ld a, c + and a + jr nz, .asm_28791 + push hl + ld a, [hl] + sla a + and $e + ld c, a + ld b, $0 + ld hl, Data_287b7 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld hl, hNextFrameHBlankSCX + dec [hl] + dec [hl] + dec [hl] + dec [hl] + pop hl + xor a + ld [wd862], a + ld a, [hl] + call Func_28993 + ret + .asm_28791 - push hl - ld a, [hl] - add $5 - sla a - and $e - ld c, a - ld b, $0 - ld hl, $47b7 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld hl, $ffab - inc [hl] - inc [hl] - inc [hl] - inc [hl] - pop hl - xor a - ld [$d862], a - ld a, [hl] - add $5 - call Func_28993 - ret - -INCBIN "baserom.gbc",$287b7,$287e7 - $287b7 + push hl + ld a, [hl] + add $5 + sla a + and $e + ld c, a + ld b, $0 + ld hl, Data_287b7 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld hl, hNextFrameHBlankSCX + inc [hl] + inc [hl] + inc [hl] + inc [hl] + pop hl + xor a + ld [wd862], a + ld a, [hl] + add $5 + call Func_28993 + ret + +Data_287b7: + dr $287b7, $287c7 + +Data_287c7: + dr $287c7, $287e7 Func_287e7: ; 0x287e7 - ld a, [$d960] - and a - ret z - ld a, [$d95f] - and a - ret nz - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, MonAnimatedSpriteTypes - add hl, bc - ld a, Bank(MonAnimatedSpriteTypes) - call ReadByteFromBank - bit 7, a - ret nz - ld [$d5bc], a - call Func_28815 - ld a, [$d5bd] - add $a5 - ld bc, $2030 - call LoadOAMData - ret + ld a, [wd960] + and a + ret z + ld a, [wd95f] + and a + ret nz + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, MonAnimatedSpriteTypes + add hl, bc + ld a, Bank(MonAnimatedSpriteTypes) + call ReadByteFromBank + bit 7, a + ret nz + ld [wd5bc], a + call Func_28815 + ld a, [wd5bd] + add $a5 + ld bc, $2030 + call LoadOAMData + ret Func_28815: ; 0x28815 - ld a, [$d5be] - dec a - ld [$d5be], a - ret nz - ld a, [$d5bf] - inc a - and $7 - ld [$d5bf], a - jr nz, .asm_28836 - ld a, [$d5c3] - ld [$d5be], a - xor a - ld [$d5c4], a - ld c, $2 - jr .asm_28854 + ld a, [wd5be] + dec a + ld [wd5be], a + ret nz + ld a, [wBallHitWildMon] + inc a + and $7 + ld [wBallHitWildMon], a + jr nz, .asm_28836 + ld a, [wd5c3] + ld [wd5be], a + xor a + ld [wd5c4], a + ld c, $2 + jr .asm_28854 + .asm_28836 - ld a, [$d5bc] - ld c, a - ld a, [$d5bd] - sub c - cp $1 - ld c, $0 - jr nc, .asm_28846 - ld c, $1 + ld a, [wd5bc] + ld c, a + ld a, [wd5bd] + sub c + cp $1 + ld c, $0 + jr nc, .asm_28846 + ld c, $1 .asm_28846 - ld b, $0 - ld hl, $d5c1 - add hl, bc - ld a, [hl] - ld [$d5be], a - xor a - ld [$d5c4], a + ld b, $0 + ld hl, wd5c1 + add hl, bc + ld a, [hl] + ld [wd5be], a + xor a + ld [wd5c4], a .asm_28854 - ld a, [$d5bc] - add c - ld [$d5bd], a - ret + ld a, [wd5bc] + add c + ld [wd5bd], a + ret Func_2885c: ; 0x2885c - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - bit 1, [hl] - call nz, Func_287e7 - ld bc, $8888 - ld a, $66 - call LoadOAMData - ld bc, $6800 - ld a, $6a - call LoadOAMData - ret + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + bit 1, [hl] + call nz, Func_287e7 + ld bc, $8888 + ld a, $66 + call LoadOAMData + ld bc, $6800 + ld a, $6a + call LoadOAMData + ret Func_2887c: ; 0x2887c - ld a, $31 - ld hl, $5120 ; todo - ld de, $9900 - ld bc, $0100 - call LoadVRAMData - ld a, $3f - ld [$ffa2], a - ld a, $47 - ld [$ffa9], a - ld b, $33 + ld a, BANK(Data_c5120) + ld hl, Data_c5120 + deCoord 0, 8, vBGMap + ld bc, $0100 + call LoadVRAMData + ld a, $3f + ld [hLYC], a + ld a, $47 + ld [hNextLYCSub], a + ld b, $33 .asm_28894 - push bc - ld a, $7a - sub b - ld [$ffa9], a - rst $10 - pop bc - dec b - dec b - dec b - jr nz, .asm_28894 - ret + push bc + ld a, $7a + sub b + ld [hNextLYCSub], a + rst AdvanceFrame + pop bc + dec b + dec b + dec b + jr nz, .asm_28894 + ret Func_288a2: ; 0x288a2 - ld b, $33 + ld b, $33 .asm_288a4 - push bc - ld a, $44 - add b - ld [$ffa9], a - rst $10 - pop bc - dec b - dec b - dec b - jr nz, .asm_288a4 - ld a, $3b - ld [$ffa2], a - ld [$ffa9], a - ld a, $31 - ld hl, $5100 ; todo - ld de, $9900 - ld bc, $0020 - call LoadVRAMData - ret + push bc + ld a, $44 + add b + ld [hNextLYCSub], a + rst AdvanceFrame + pop bc + dec b + dec b + dec b + jr nz, .asm_288a4 + ld a, $3b + ld [hLYC], a + ld [hNextLYCSub], a + ld a, BANK(Data_c5100) + ld hl, Data_c5100 + deCoord 0, 8, vBGMap + ld bc, $0020 + call LoadVRAMData + ret Func_288c6: ; 0x288c6 - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - bit 1, [hl] - ld hl, $4000 - jr z, .asm_288f4 - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - sla c - rl b - ld hl, $4002 ; todo - add hl, bc - ld a, $b - call ReadByteFromBank - inc hl - ld c, a - ld a, $b - call ReadByteFromBank - ld b, a - ld h, b - ld l, c + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + bit 1, [hl] + ld hl, Unknown_2c000 + jr z, .asm_288f4 + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + sla c + rl b + ld hl, PokedexDescriptionPointers + add hl, bc + ld a, BANK(PokedexDescriptionPointers) + call ReadByteFromBank + inc hl + ld c, a + ld a, BANK(PokedexDescriptionPointers) + call ReadByteFromBank + ld b, a + ld h, b + ld l, c .asm_288f4 - xor a - ld [$d860], a - ld [$d861], a - ld bc, $906c - ld de, $8900 - call Func_28d97 - rl a - ld [$d956], a - ld a, l - ld [$d957], a - ld a, h - ld [$d958], a - ret + xor a + ld [wd860], a + ld [wd861], a + ld bc, $906c + ld de, vTilesSH tile $10 + call Func_28d97 + rl a + ld [wd956], a + ld a, l + ld [wd957], a + ld a, h + ld [wd958], a + ret Func_28912: ; 0x28912 - ld bc, $906c - ld de, $8900 - ld a, [$d957] - ld l, a - ld a, [$d958] - ld h, a - call Func_28d97 - rl a - ld [$d956], a - ld a, l - ld [$d957], a - ld a, h - ld [$d958], a - ret + ld bc, $906c + ld de, vTilesSH tile $10 + ld a, [wd957] + ld l, a + ld a, [wd958] + ld h, a + call Func_28d97 + rl a + ld [wd956], a + ld a, l + ld [wd957], a + ld a, h + ld [wd958], a + ret Func_28931: ; 0x28931 - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - ld a, [hl] - and a - ld hl, $4970 ; todo - jr z, .asm_2895d - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld h, b - ld l, c - sla l - rl h - sla l - rl h - sla l - rl h - add hl, bc - add hl, bc - add hl, bc - ld bc, $5892 - add hl, bc + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + ld a, [hl] + and a + ld hl, Data_28970 + jr z, .asm_2895d + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld h, b + ld l, c + sla l + rl h + sla l + rl h + sla l + rl h + add hl, bc + add hl, bc + add hl, bc + ld bc, Data_29892 + add hl, bc .asm_2895d - ld a, $ff - ld [$d860], a - xor a - ld [$d861], a - ld bc, $500a - ld de, $9500 - call Func_28e09 - ret - -INCBIN "baserom.gbc",$28970,$28972 - $28970 + ld a, $ff + ld [wd860], a + xor a + ld [wd861], a + ld bc, $500a + ld de, vTilesBG tile $50 + call Func_28e09 + ret + +Data_28970: + dr $28970, $28972 Func_28972: ; 0x28972 - ld a, [wPokedexOffset] - ld c, a - ld b, $6 + ld a, [wPokedexOffset] + ld c, a + ld b, $6 .asm_28978 - push bc - ld a, c - sla a - and $e - ld e, a - ld d, $0 - ld hl, $47b7 ; todo - add hl, de - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld a, c - call Func_28993 - pop bc - inc c - dec b - jr nz, .asm_28978 - ret + push bc + ld a, c + sla a + and $e + ld e, a + ld d, $0 + ld hl, Data_287b7 + add hl, de + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld a, c + call Func_28993 + pop bc + inc c + dec b + jr nz, .asm_28978 + ret Func_28993: ; 0x28993 - push hl - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - ld a, [hl] - and a - ld hl, $49c6 ; todo - jr z, .asm_289b7 - ld h, b - ld l, c - sla l - rl h - sla l - rl h - sla l - rl h - add hl, bc - add hl, bc - add hl, bc - ld bc, $5892 ; todo - add hl, bc + push hl + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + ld a, [hl] + and a + ld hl, Data_289c6 + jr z, .asm_289b7 + ld h, b + ld l, c + sla l + rl h + sla l + rl h + sla l + rl h + add hl, bc + add hl, bc + add hl, bc + ld bc, Data_29892 + add hl, bc .asm_289b7 - xor a - ld [$d860], a - ld [$d861], a - ld bc, $500a ; todo - call Func_28e09 - pop hl - ret + xor a + ld [wd860], a + ld [wd861], a + ld bc, $500a ; not a pointer + call Func_28e09 + pop hl + ret -INCBIN "baserom.gbc",$289c6,$289c8 - $289c6 +Data_289c6: + dr $289c6, $289c8 Func_289c8: ; 0x289c8 - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - bit 1, [hl] - ld hl, $4a12 ; todo - jr z, .asm_289fe - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, MonDexTypeIDs - add hl, bc - ld c, [hl] - ld h, b - ld l, c - sla l - rl h - sla l - rl h - sla l - rl h - add hl, bc - add hl, bc - add hl, bc ; value * 11 - sla l - rl h - add hl, bc ; value * 23 - ld bc, $5fa6 ; todo - add hl, bc + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + bit 1, [hl] + ld hl, Data_28a12 + jr z, .asm_289fe + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, MonDexTypeIDs + add hl, bc + ld c, [hl] + ld h, b + ld l, c + sla l + rl h + sla l + rl h + sla l + rl h + add hl, bc + add hl, bc + add hl, bc ; value * 11 + sla l + rl h + add hl, bc ; value * 23 + ld bc, Data_29fa6 + add hl, bc .asm_289fe - ld a, $ff - ld [$d860], a - ld a, $4 - ld [$d861], a - ld bc, $5816 - ld de, $95a0 - call Func_28e09 - ret - -INCBIN "baserom.gbc",$28a12,$28a15 - $28a12 + ld a, $ff + ld [wd860], a + ld a, $4 + ld [wd861], a + ld bc, $5816 + ld de, vTilesBG tile $5a + call Func_28e09 + ret + +Data_28a12: + dr $28a12, $28a15 Func_28a15: ; 0x28a15 - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld h, b - ld l, c - sla l - rl h - add hl, bc - sla l - rl h - add hl, bc - sla l - rl h - add hl, bc - ld bc, $685d ; todo - add hl, bc - ld d, h - ld e, l - ld a, $0 - ld [$d865], a - push de - ld hl, $9844 - call Func_28d71 - pop de - inc de - inc de - inc de - inc de - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - bit 1, [hl] - jr nz, .asm_28a54 - ld de, $4a7f ; todo + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld h, b + ld l, c + sla l + rl h + add hl, bc + sla l + rl h + add hl, bc + sla l + rl h + add hl, bc + ld bc, Data_2a85d + add hl, bc + ld d, h + ld e, l + ld a, $0 + ld [wd865], a + push de + hlCoord 4, 2, vBGMap + call Func_28d71 + pop de + inc de + inc de + inc de + inc de + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + bit 1, [hl] + jr nz, .asm_28a54 + ld de, Data_28a7f .asm_28a54 - push de - ld hl, $98c8 - call Func_28d71 - pop de - inc de - inc de - inc de - inc de - inc de - push de - ld hl, $98ce - call Func_28d71 - pop de - inc de - inc de - inc de - inc de - inc de - ld hl, $98f0 - ld a, [$ff40] - bit 7, a - jr nz, .asm_28a7a - ld a, [de] - ld [hl], a - ret + push de + hlCoord 8, 6, vBGMap + call Func_28d71 + pop de + inc de + inc de + inc de + inc de + inc de + push de + hlCoord 14, 6, vBGMap + call Func_28d71 + pop de + inc de + inc de + inc de + inc de + inc de + hlCoord 16, 7, vBGMap + ld a, [rLCDC] + bit 7, a + jr nz, .asm_28a7a + ld a, [de] + ld [hl], a + ret + .asm_28a7a - ld a, [de] - call PutTileInVRAM - ret + ld a, [de] + call PutTileInVRAM + ret -INCBIN "baserom.gbc",$28a7f,$28a8a - $28a7f +Data_28a7f: + dr $28a7f, $28a8a Func_28a8a: ; 0x28a8a - ld a, [wPokedexOffset] - ld c, a - ld b, $6 + ld a, [wPokedexOffset] + ld c, a + ld b, $6 .asm_28a90 - push bc - ld a, c - sla a - and $1e - ld e, a - ld d, $0 - ld hl, $47c7 ; todo - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, c - call Func_28aaa - pop bc - inc c - dec b - jr nz, .asm_28a90 - ret + push bc + ld a, c + sla a + and $1e + ld e, a + ld d, $0 + ld hl, Data_287c7 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, c + call Func_28aaa + pop bc + inc c + dec b + jr nz, .asm_28a90 + ret Func_28aaa: ; 0x28aaa - push hl - ld c, a - ld b, $0 - ld h, b - ld l, c - sla l - rl h - add hl, bc - sla l - rl h - add hl, bc - sla l - rl h - add hl, bc - ld bc, $685d ; todo - add hl, bc - ld d, h - ld e, l - ld a, $23 - ld [$d865], a - pop hl - push hl - call Func_28d71 - pop hl - ret + push hl + ld c, a + ld b, $0 + ld h, b + ld l, c + sla l + rl h + add hl, bc + sla l + rl h + add hl, bc + sla l + rl h + add hl, bc + ld bc, Data_2a85d + add hl, bc + ld d, h + ld e, l + ld a, $23 + ld [wd865], a + pop hl + push hl + call Func_28d71 + pop hl + ret Func_28ad1: ; 0x28ad1 - ld a, [wPokedexOffset] - swap a - and $f0 - sub $3c - ld [$ffab], a - ret + ld a, [wPokedexOffset] + swap a + and $f0 + sub $3c + ld [hNextFrameHBlankSCX], a + ret Func_28add: ; 0x28add - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, wPokedexFlags - add hl, bc - ld a, [hl] - and a - jp z, Func_28b76 - dec a - jp z, Func_28baf - ld a, [$d960] - and a - jr z, .asm_28afc - call Func_28cc2 - jp z, Func_28bf5 + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, wPokedexFlags + add hl, bc + ld a, [hl] + and a + jp z, Func_28b76 + dec a + jp z, Func_28baf + ld a, [wd960] + and a + jr z, .asm_28afc + call Func_28cc2 + jp z, Func_28bf5 .asm_28afc - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_28b0b - inc b + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_28b0b + inc b .asm_28b0b - push bc - ld hl, MonBillboardPicPointers - add hl, bc - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - inc hl - ld c, a - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - inc hl - ld b, a - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - ld h, b - ld l, c - ld de, $9000 - ld bc, $0180 - call Func_735 - call Func_28cd4 - pop bc - ld a, [hGameBoyColorFlag] - and a - ret z - push bc - ld hl, MonBillboardPaletteMapPointers ; todo - add hl, bc - ld a, Bank(MonBillboardPaletteMapPointers) - call ReadByteFromBank - inc hl - ld e, a - ld a, Bank(MonBillboardPaletteMapPointers) - call ReadByteFromBank - inc hl - ld d, a - ld a, Bank(MonBillboardPaletteMapPointers) - call ReadByteFromBank - ld hl, $9861 - call Func_86f - pop bc - ld hl, MonBillboardPalettePointers - add hl, bc - ld a, Bank(MonBillboardPalettePointers) - call ReadByteFromBank - inc hl - ld e, a - ld a, Bank(MonBillboardPalettePointers) - call ReadByteFromBank - inc hl - ld d, a - ld a, Bank(MonBillboardPalettePointers) - call ReadByteFromBank - ld bc, $10b0 - ld hl, $ff68 - call Func_8e1 - ret + push bc + ld hl, MonBillboardPicPointers + add hl, bc + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + inc hl + ld c, a + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + inc hl + ld b, a + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + ld h, b + ld l, c + ld de, vTilesBG tile $00 + ld bc, $0180 + call LoadOrCopyVRAMData + call Func_28cd4 + pop bc + ld a, [hGameBoyColorFlag] + and a + ret z + push bc + ld hl, MonBillboardPaletteMapPointers + add hl, bc + ld a, Bank(MonBillboardPaletteMapPointers) + call ReadByteFromBank + inc hl + ld e, a + ld a, Bank(MonBillboardPaletteMapPointers) + call ReadByteFromBank + inc hl + ld d, a + ld a, Bank(MonBillboardPaletteMapPointers) + call ReadByteFromBank + hlCoord 1, 3, vBGMap + call Func_86f + pop bc + ld hl, MonBillboardPalettePointers + add hl, bc + ld a, Bank(MonBillboardPalettePointers) + call ReadByteFromBank + inc hl + ld e, a + ld a, Bank(MonBillboardPalettePointers) + call ReadByteFromBank + inc hl + ld d, a + ld a, Bank(MonBillboardPalettePointers) + call ReadByteFromBank + ld bc, $10b0 + ld hl, rBGPI + call Func_8e1 + ret Func_28b76: ; 0x28b76 - ld a, $1c - ld hl, $5500 - ld de, $9000 - ld bc, $0180 - call Func_735 - call Func_28cd4 - ld a, [hGameBoyColorFlag] - and a - ret z - ld a, $a - ld de, $4b97 - ld hl, $9861 - call Func_86f - ret - -INCBIN "baserom.gbc",$28b97,$28baf - $28b97 + ld a, BANK(Data_71500) + ld hl, Data_71500 + ld de, vTilesBG tile $00 + ld bc, $0180 + call LoadOrCopyVRAMData + call Func_28cd4 + ld a, [hGameBoyColorFlag] + and a + ret z + ld a, BANK(Data_28b97) + ld de, Data_28b97 + hlCoord 1, 3, vBGMap + call Func_86f + ret + +Data_28b97: + dr $28b97, $28baf Func_28baf: ; 0x28baf - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_28bbe - inc b + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_28bbe + inc b .asm_28bbe - ld hl, MonBillboardPicPointers - add hl, bc - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - inc hl - ld c, a - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - inc hl - ld b, a - ld a, Bank(MonBillboardPicPointers) - call ReadByteFromBank - ld hl, $0180 - add hl, bc - ld de, $9000 - ld bc, $0180 - call Func_735 - call Func_28cd4 - ld a, [hGameBoyColorFlag] - and a - ret z - ld a, $a - ld de, $4b97 ; todo - ld hl, $9861 - call Func_86f - ret + ld hl, MonBillboardPicPointers + add hl, bc + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + inc hl + ld c, a + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + inc hl + ld b, a + ld a, Bank(MonBillboardPicPointers) + call ReadByteFromBank + ld hl, $0180 + add hl, bc + ld de, vTilesBG tile $00 + ld bc, $0180 + call LoadOrCopyVRAMData + call Func_28cd4 + ld a, [hGameBoyColorFlag] + and a + ret z + ld a, BANK(Data_28b97) + ld de, Data_28b97 + hlCoord 1, 3, vBGMap + call Func_86f + ret Func_28bf5: ; 0x28bf5 - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_28c04 - inc b + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_28c04 + inc b .asm_28c04 - push bc - ld a, $1 - ld [$ff4f], a - ld hl, MonAnimatedPicPointers - add hl, bc - ld a, Bank(MonAnimatedPicPointers) - call ReadByteFromBank - inc hl - ld c, a - ld a, Bank(MonAnimatedPicPointers) - call ReadByteFromBank - inc hl - ld b, a - ld a, Bank(MonAnimatedPicPointers) - call ReadByteFromBank - ld h, b - ld l, c - ld de, vTiles0 - ld bc, $0300 - call Func_735 - xor a - ld [$ff4f], a - pop bc - push bc - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, $561d ; todo - add hl, bc - ld a, $4 - call ReadByteFromBank - ld c, a - ld b, $0 - sla c - rl b - add c - ld c, a - jr nc, .asm_28c4b - inc b + push bc + ld a, $1 + ld [rVBK], a + ld hl, MonAnimatedPicPointers + add hl, bc + ld a, Bank(MonAnimatedPicPointers) + call ReadByteFromBank + inc hl + ld c, a + ld a, Bank(MonAnimatedPicPointers) + call ReadByteFromBank + inc hl + ld b, a + ld a, Bank(MonAnimatedPicPointers) + call ReadByteFromBank + ld h, b + ld l, c + ld de, vTilesOB + ld bc, $0300 + call LoadOrCopyVRAMData + xor a + ld [rVBK], a + pop bc + push bc + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, EvolutionLineIds + add hl, bc + ld a, BANK(EvolutionLineIds) + call ReadByteFromBank + ld c, a + ld b, $0 + sla c + rl b + add c + ld c, a + jr nc, .asm_28c4b + inc b .asm_28c4b - ld hl, Data_13685 - add hl, bc - ld a, Bank(Data_13685) - call ReadByteFromBank - ld [$d5c1], a - ld [$d5be], a - inc hl - ld a, Bank(Data_13685) - call ReadByteFromBank - ld [$d5c2], a - inc hl - ld a, Bank(Data_13685) - call ReadByteFromBank - ld [$d5c3], a - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, MonAnimatedSpriteTypes - add hl, bc - ld a, Bank(MonAnimatedSpriteTypes) - call ReadByteFromBank - ld [$d5bc], a - ld [$d5bd], a - call Func_28cf8 - pop bc - ld a, [hGameBoyColorFlag] - and a - ret z - ld hl, MonAnimatedPalettePointers - add hl, bc - ld a, Bank(MonAnimatedPalettePointers) - call ReadByteFromBank - inc hl - ld e, a - ld a, Bank(MonAnimatedPalettePointers) - call ReadByteFromBank - inc hl - ld d, a - ld a, Bank(MonAnimatedPalettePointers) - call ReadByteFromBank - push af - push de - ld bc, $10b0 - ld hl, $ff68 - call Func_8e1 - pop de - pop af - push af - ld bc, $08d8 - ld hl, $ff6a - call Func_8e1 - pop af - ld bc, $08e8 - ld hl, $ff6a - call Func_8e1 - ret + ld hl, Data_13685 + add hl, bc + ld a, Bank(Data_13685) + call ReadByteFromBank + ld [wd5c1], a + ld [wd5be], a + inc hl + ld a, Bank(Data_13685) + call ReadByteFromBank + ld [wd5c2], a + inc hl + ld a, Bank(Data_13685) + call ReadByteFromBank + ld [wd5c3], a + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, MonAnimatedSpriteTypes + add hl, bc + ld a, Bank(MonAnimatedSpriteTypes) + call ReadByteFromBank + ld [wd5bc], a + ld [wd5bd], a + call Func_28cf8 + pop bc + ld a, [hGameBoyColorFlag] + and a + ret z + ld hl, MonAnimatedPalettePointers + add hl, bc + ld a, Bank(MonAnimatedPalettePointers) + call ReadByteFromBank + inc hl + ld e, a + ld a, Bank(MonAnimatedPalettePointers) + call ReadByteFromBank + inc hl + ld d, a + ld a, Bank(MonAnimatedPalettePointers) + call ReadByteFromBank + push af + push de + ld bc, $10b0 + ld hl, rBGPI + call Func_8e1 + pop de + pop af + push af + ld bc, $08d8 + ld hl, rOBPI + call Func_8e1 + pop af + ld bc, $08e8 + ld hl, rOBPI + call Func_8e1 + ret Func_28cc2: ; 0x28cc2 - ld a, [wCurPokedexIndex] - ld c, a - ld b, $0 - ld hl, MonAnimatedSpriteTypes - add hl, bc - ld a, Bank(MonAnimatedSpriteTypes) - call ReadByteFromBank - bit 7, a - ret + ld a, [wCurPokedexIndex] + ld c, a + ld b, $0 + ld hl, MonAnimatedSpriteTypes + add hl, bc + ld a, Bank(MonAnimatedSpriteTypes) + call ReadByteFromBank + bit 7, a + ret Func_28cd4: ; 0x28cd4 - xor a - ld hl, $d961 - cp [hl] - ret z - ld [hl], a - ld de, .Data_28ce0 - jr asm_28d1d + xor a + ld hl, wd961 + cp [hl] + ret z + ld [hl], a + ld de, .Data_28ce0 + jr asm_28d1d .Data_28ce0: ; 0x28ce0 - db $0 - db $1 - db $2 - db $3 - db $4 - db $5 - db $6 - db $7 - db $8 - db $9 - db $a - db $b - db $c - db $d - db $e - db $f - db $10 - db $11 - db $12 - db $13 - db $14 - db $15 - db $16 - db $17 + db $0 + db $1 + db $2 + db $3 + db $4 + db $5 + db $6 + db $7 + db $8 + db $9 + db $a + db $b + db $c + db $d + db $e + db $f + db $10 + db $11 + db $12 + db $13 + db $14 + db $15 + db $16 + db $17 Func_28cf8: ; 0x28cf8 - ld a, $1 - ld hl, $d961 - cp [hl] - ret z - ld [hl], a - ld de, .data_28d05 - jr asm_28d1d + ld a, $1 + ld hl, wd961 + cp [hl] + ret z + ld [hl], a + ld de, .data_28d05 + jr asm_28d1d .data_28d05 - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe - db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe + db $fe asm_28d1d - ld hl, $9861 - ld b, $4 + hlCoord 1, 3, vBGMap + ld b, $4 .asm_28d22 - ld c, $6 + ld c, $6 .asm_28d24 - ld a, [de] - call PutTileInVRAM - inc de - inc hl - dec c - jr nz, .asm_28d24 - ld a, l - add $1a - ld l, a - dec b - jr nz, .asm_28d22 - ret + ld a, [de] + call PutTileInVRAM + inc de + inc hl + dec c + jr nz, .asm_28d24 + ld a, l + add $1a + ld l, a + dec b + jr nz, .asm_28d22 + ret CountNumSeenOwnedMons: ; 0x28d35 - ld hl, wPokedexFlags - ld de, $0000 ; keep a running count: d = owned, e = seen - ld b, NUM_POKEMON + ld hl, wPokedexFlags + ld de, $0000 ; keep a running count: d = owned, e = seen + ld b, NUM_POKEMON .checkSeen - bit 0, [hl] ; is mon seen? - jr z, .checkOwned - inc e + bit 0, [hl] ; is mon seen? + jr z, .checkOwned + inc e .checkOwned - bit 1, [hl] ; is mon owned? - jr z, .nextMon - inc d + bit 1, [hl] ; is mon owned? + jr z, .nextMon + inc d .nextMon - inc hl - dec b - jr nz, .checkSeen - push de - ld a, d - call ConvertHexByteToDecWord - ld a, e - ld [wNumPokemonSeen], a - ld a, d - ld [wNumPokemonSeen + 1], a - pop de - ld a, e - call ConvertHexByteToDecWord - ld a, e - ld [wNumPokemonOwned], a - ld a, d - ld [wNumPokemonOwned + 1], a - ret + inc hl + dec b + jr nz, .checkSeen + push de + ld a, d + call ConvertHexByteToDecWord + ld a, e + ld [wNumPokemonSeen], a + ld a, d + ld [wNumPokemonSeen + 1], a + pop de + ld a, e + call ConvertHexByteToDecWord + ld a, e + ld [wNumPokemonOwned], a + ld a, d + ld [wNumPokemonOwned + 1], a + ret ClearPokedexData: ; 0x28d66 - ld hl, wPokedexFlags - xor a - ld b, NUM_POKEMON + ld hl, wPokedexFlags + xor a + ld b, NUM_POKEMON .asm_28d6c - ld [hli], a - dec b - jr nz, .asm_28d6c - ret + ld [hli], a + dec b + jr nz, .asm_28d6c + ret Func_28d71: ; 0x28d71 - ld a, [$d865] - ld c, a - ld a, [de] - inc de - and a - ret z - cp $20 - jr nz, .asm_28d81 - ld a, $ff - jr .asm_28d82 + ld a, [wd865] + ld c, a + ld a, [de] + inc de + and a + ret z + cp $20 + jr nz, .asm_28d81 + ld a, $ff + jr .asm_28d82 + .asm_28d81 - add c + add c .asm_28d82 - call Func_28d88 - inc hl - jr Func_28d71 + call Func_28d88 + inc hl + jr Func_28d71 Func_28d88: ; 0x28d88 - push af - ld a, [$ff40] - bit 7, a - jr nz, .asm_28d92 - pop af - ld [hl], a - ret + push af + ld a, [rLCDC] + bit 7, a + jr nz, .asm_28d92 + pop af + ld [hl], a + ret + .asm_28d92 - pop af - call PutTileInVRAM - ret + pop af + call PutTileInVRAM + ret Func_28d97: ; 0x28d97 - push de - ld a, b - ld [$ff8c], a - ld [$ff8d], a - ld a, c - ld [$ff8f], a - xor a - ld [$ff8e], a - ld [$ff90], a - ld [$ff91], a - call Func_28e73 + push de + ld a, b + ld [$ff8c], a + ld [$ff8d], a + ld a, c + ld [$ff8f], a + xor a + ld [$ff8e], a + ld [$ff90], a + ld [$ff91], a + call Func_28e73 .asm_28daa - call Func_2957c - jr nc, .asm_28dcb - push hl - ld [$ff92], a - cp $ff - jr nz, .asm_28dbb - call Func_208c - jr .asm_28dc8 + call Func_2957c + jr nc, .asm_28dcb + push hl + ld [$ff92], a + cp $ff + jr nz, .asm_28dbb + call Func_208c + jr .asm_28dc8 + .asm_28dbb - ld c, a - ld b, $0 - ld hl, CharacterWidths - add hl, bc - ld a, [hl] - ld [$ff93], a - call Func_206d + ld c, a + ld b, $0 + ld hl, CharacterWidths + add hl, bc + ld a, [hl] + ld [$ff93], a + call Func_206d .asm_28dc8 - pop hl - jr nc, .asm_28daa + pop hl + jr nc, .asm_28daa .asm_28dcb - pop de - push af - ld a, e - ld [$d863], a - ld a, d - ld [$d864], a - ld a, [$d862] - and a - jr nz, .asm_28ddd - pop af - ret + pop de + push af + ld a, e + ld [wd863], a + ld a, d + ld [wd864], a + ld a, [wd862] + and a + jr nz, .asm_28ddd + pop af + ret + .asm_28ddd - push hl - ld a, [$d861] - ld c, a - ld b, $0 - bit 7, c - jr z, .asm_28de9 - dec b + push hl + ld a, [wd861] + ld c, a + ld b, $0 + bit 7, c + jr z, .asm_28de9 + dec b .asm_28de9 - ld hl, $c010 - add hl, bc - ld a, [$ff8f] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - xor a - call Func_735 - pop hl - pop af - ret + ld hl, wc010 + add hl, bc + ld a, [$ff8f] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + xor a + call LoadOrCopyVRAMData + pop hl + pop af + ret Func_28e09: ; 0x28e09 - push de - ld a, b - ld [$ff8c], a - ld [$ff8d], a - ld a, c - ld [$ff8f], a - xor a - ld [$ff8e], a - ld [$ff90], a - ld [$ff91], a - call Func_28e73 + push de + ld a, b + ld [$ff8c], a + ld [$ff8d], a + ld a, c + ld [$ff8f], a + xor a + ld [$ff8e], a + ld [$ff90], a + ld [$ff91], a + call Func_28e73 .asm_28e1c - call Func_295e1 - jr nc, .asm_28e35 - push hl - ld [$ff92], a - ld c, a - ld b, $0 - ld hl, CharacterWidths - add hl, bc - ld a, [hl] - ld [$ff93], a - call Func_206d - pop hl - jr nc, .asm_28e1c - nop + call Func_295e1 + jr nc, .asm_28e35 + push hl + ld [$ff92], a + ld c, a + ld b, $0 + ld hl, CharacterWidths + add hl, bc + ld a, [hl] + ld [$ff93], a + call Func_206d + pop hl + jr nc, .asm_28e1c + nop .asm_28e35 - pop de - push af - ld a, e - ld [$d863], a - ld a, d - ld [$d864], a - ld a, [$d862] - and a - jr nz, .asm_28e47 - pop af - ret + pop de + push af + ld a, e + ld [wd863], a + ld a, d + ld [wd864], a + ld a, [wd862] + and a + jr nz, .asm_28e47 + pop af + ret + .asm_28e47 - push hl - ld a, [$d861] - ld c, a - ld b, $0 - bit 7, c - jr z, .asm_28e53 - dec b + push hl + ld a, [wd861] + ld c, a + ld b, $0 + bit 7, c + jr z, .asm_28e53 + dec b .asm_28e53 - ld hl, $c010 - add hl, bc - ld a, [$ff8f] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - xor a - call Func_735 - pop hl - pop af - ret + ld hl, wc010 + add hl, bc + ld a, [$ff8f] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + xor a + call LoadOrCopyVRAMData + pop hl + pop af + ret Func_28e73: ; 0x28e73 - push hl - ld a, [$ff8f] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - sla c - rl b - ld hl, $5566 ; todo - ld a, l - sub c - ld l, a - ld a, h - sbc b - ld h, a - push hl - ld hl, wc000 - ld a, [$d860] - ret - -INCBIN "baserom.gbc",$28e9a,$2957c - $28e9a + push hl + ld a, [$ff8f] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + sla c + rl b + ld hl, Func_29566 + ld a, l + sub c + ld l, a + ld a, h + sbc b + ld h, a + push hl + ld hl, wc000 + ld a, [wd860] + ret + +Func_28e9a: +REPT 20 * 87 + ld [hli], a +ENDR +Func_29566: +REPT 20 + ld [hli], a +ENDR + pop hl + ret Func_2957c: ; 0x2957c - ld a, $b - call ReadByteFromBank - inc hl - and a - ret z - cp $d - jr nz, .asm_2958c - ld a, $ff - scf - ret + ld a, BANK(PokedexDescriptionPointers) + call ReadByteFromBank + inc hl + and a + ret z + cp $d ; carriage return + jr nz, .asm_2958c + ld a, $ff + scf + ret + .asm_2958c - cp $30 - jr c, .asm_29594 - cp $3a - jr c, .asm_295be + cp "0" + jr c, .asm_29594 + cp "9" + 1 + jr c, .asm_295be .asm_29594 - cp $41 - jr c, .asm_2959c - cp $5b - jr c, .asm_295c2 + cp "A" + jr c, .asm_2959c + cp "Z" + 1 + jr c, .asm_295c2 .asm_2959c - cp $61 - jr c, .asm_295a4 - cp $7b - jr c, .asm_295c6 + cp "a" + jr c, .asm_295a4 + cp "z" + 1 + jr c, .asm_295c6 .asm_295a4 - cp $20 - jr z, .asm_295ca - cp $2c - jr z, .asm_295cd - cp $2e - jr z, .asm_295d1 - cp $60 - jr z, .asm_295d5 - cp $2d - jr z, .asm_295d9 - cp $40 - jr z, .asm_295dd - and a - ret + cp " " + jr z, .asm_295ca + cp "," + jr z, .asm_295cd + cp "." + jr z, .asm_295d1 + cp "`" + jr z, .asm_295d5 + cp "-" + jr z, .asm_295d9 + cp "é" + jr z, .asm_295dd + and a + ret + .asm_295be - sub $88 - scf - ret + sub $88 + scf + ret + .asm_295c2 - sub $8e - scf - ret + sub $8e + scf + ret + .asm_295c6 - sub $94 - scf - ret + sub $94 + scf + ret + .asm_295ca - xor a - scf - ret + xor a + scf + ret + .asm_295cd - ld a, $f3 - scf - ret + ld a, $f3 + scf + ret + .asm_295d1 - ld a, $f4 - scf - ret + ld a, $f4 + scf + ret + .asm_295d5 - ld a, $fa - scf - ret + ld a, $fa + scf + ret + .asm_295d9 - ld a, $b2 - scf - ret + ld a, $b2 + scf + ret + .asm_295dd - ld a, $f9 - scf - ret + ld a, $f9 + scf + ret Func_295e1: ; 0x295e1 - ld a, [hli] - and a - ret z - cp $80 - jr nc, .asm_295ed - ld c, a - ld b, $0 - jr .asm_295f0 + ld a, [hli] + and a + ret z + cp $80 + jr nc, .asm_295ed + ld c, a + ld b, $0 + jr .asm_295f0 + .asm_295ed - ld b, a - ld a, [hli] - ld c, a + ld b, a + ld a, [hli] + ld c, a .asm_295f0 - ld a, b - and a - jr nz, .asm_295f9 - ld a, c - sub $20 - scf - ret + ld a, b + and a + jr nz, .asm_295f9 + ld a, c + sub $20 + scf + ret + .asm_295f9 - push hl - call Func_29605 - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - pop hl - scf - ret + push hl + call Func_29605 + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + pop hl + scf + ret Func_29605: ; 0x29605 - ld a, b - cp $81 - jr nz, .asm_29611 - ld hl, $562f ; todo - ld a, c - sub $40 - ret + ld a, b + cp $81 + jr nz, .asm_29611 + ld hl, Data_2962f + ld a, c + sub $40 + ret + .asm_29611 - cp $83 - jr nz, .asm_2961c - ld hl, $573b ; todo - ld a, c - sub $40 - ret + cp $83 + jr nz, .asm_2961c + ld hl, Data_2973b + ld a, c + sub $40 + ret + .asm_2961c - ld a, c - cp $9f - jr nc, .asm_29628 - ld hl, $569c ; todo - ld a, c - sub $4f - ret + ld a, c + cp $9f + jr nc, .asm_29628 + ld hl, Data_2969c + ld a, c + sub $4f + ret + .asm_29628 - ld hl, $56e8 ; todo - ld a, c - sub $9f - ret + ld hl, Data_296e8 + ld a, c + sub $9f + ret -INCBIN "baserom.gbc",$2962f,$29792 - $2962f +Data_2962f: + dr $2962f, $2969c + +Data_2969c: + dr $2969c, $296e8 + +Data_296e8: + dr $296e8, $2973b + +Data_2973b: + dr $2973b, $29792 CharacterWidths: ; 0x29792 ; The Pokedex shows variable-width font. This list specifies the width of every letter (tile?) - db $05 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $05 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $06 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $08 ; "A" - db $07 ; "B" - db $07 ; "C" - db $07 ; "D" - db $07 ; "E" - db $07 ; "F" - db $07 ; "G" - db $07 ; "H" - db $05 ; "I" - db $08 ; "J" - db $07 ; "K" - db $07 ; "L" - db $08 ; "M" - db $07 ; "N" - db $07 ; "O" - db $07 ; "P" - db $08 ; "Q" - db $07 ; "R" - db $07 ; "S" - db $08 ; "T" - db $07 ; "U" - db $08 ; "V" - db $08 ; "W" - db $08 ; "X" - db $08 ; "Y" - db $08 ; "Z" - db $07 - db $08 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $08 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $05 - db $08 - db $07 - db $07 - db $08 - db $07 - db $07 - db $07 - db $08 - db $07 - db $07 - db $08 - db $07 - db $08 - db $08 - db $08 - db $08 - db $08 - db $07 ; "a" - db $07 ; "b" - db $07 ; "c" - db $07 ; "d" - db $07 ; "e" - db $07 ; "f" - db $07 ; "g" - db $07 ; "h" - db $03 ; "i" - db $07 ; "j" - db $07 ; "k" - db $03 ; "l" - db $08 ; "m" - db $07 ; "n" - db $07 ; "o" - db $07 ; "p" - db $07 ; "q" - db $07 ; "r" - db $07 ; "s" - db $07 ; "t" - db $07 ; "u" - db $07 ; "v" - db $08 ; "w" - db $07 ; "x" - db $07 ; "y" - db $07 ; "z" - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $07 - db $03 - db $07 - db $05 - db $05 - db $05 - db $05 - db $05 - db $07 - db $07 - db $07 - db $07 - db $05 - db $07 - db $07 - db $07 - db $07 - db $07 - -INCBIN "baserom.gbc",$29892,$29f0f - $29892 + db $05 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $05 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $06 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $08 ; "A" + db $07 ; "B" + db $07 ; "C" + db $07 ; "D" + db $07 ; "E" + db $07 ; "F" + db $07 ; "G" + db $07 ; "H" + db $05 ; "I" + db $08 ; "J" + db $07 ; "K" + db $07 ; "L" + db $08 ; "M" + db $07 ; "N" + db $07 ; "O" + db $07 ; "P" + db $08 ; "Q" + db $07 ; "R" + db $07 ; "S" + db $08 ; "T" + db $07 ; "U" + db $08 ; "V" + db $08 ; "W" + db $08 ; "X" + db $08 ; "Y" + db $08 ; "Z" + db $07 + db $08 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $08 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $05 + db $08 + db $07 + db $07 + db $08 + db $07 + db $07 + db $07 + db $08 + db $07 + db $07 + db $08 + db $07 + db $08 + db $08 + db $08 + db $08 + db $08 + db $07 ; "a" + db $07 ; "b" + db $07 ; "c" + db $07 ; "d" + db $07 ; "e" + db $07 ; "f" + db $07 ; "g" + db $07 ; "h" + db $03 ; "i" + db $07 ; "j" + db $07 ; "k" + db $03 ; "l" + db $08 ; "m" + db $07 ; "n" + db $07 ; "o" + db $07 ; "p" + db $07 ; "q" + db $07 ; "r" + db $07 ; "s" + db $07 ; "t" + db $07 ; "u" + db $07 ; "v" + db $08 ; "w" + db $07 ; "x" + db $07 ; "y" + db $07 ; "z" + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $07 + db $03 + db $07 + db $05 + db $05 + db $05 + db $05 + db $05 + db $07 + db $07 + db $07 + db $07 + db $05 + db $07 + db $07 + db $07 + db $07 + db $07 + +Data_29892: + dr $29892, $29f0f MonDexTypeIDs: ; 0x29f0f - db $00 - db $00 - db $00 - db $01 - db $02 - db $02 - db $03 - db $04 - db $05 - db $06 - db $07 - db $08 - db $09 - db $07 - db $0A - db $0B - db $0C - db $0C - db $60 - db $60 - db $0B - db $0E - db $0F - db $10 - db $0D - db $0D - db $0D - db $0D - db $11 - db $11 - db $12 - db $11 - db $11 - db $12 - db $13 - db $13 - db $14 - db $14 - db $15 - db $15 - db $16 - db $16 - db $17 - db $17 - db $18 - db $19 - db $19 - db $1A - db $1B - db $1C - db $1C - db $1D - db $1E - db $1F - db $1F - db $20 - db $20 - db $21 - db $22 - db $23 - db $23 - db $23 - db $24 - db $24 - db $24 - db $25 - db $25 - db $25 - db $18 - db $26 - db $26 - db $27 - db $27 - db $28 - db $28 - db $29 - db $2A - db $2A - db $2B - db $2C - db $2D - db $2D - db $2E - db $2F - db $30 - db $31 - db $31 - db $32 - db $32 - db $33 - db $33 - db $34 - db $34 - db $35 - db $36 - db $37 - db $37 - db $38 - db $39 - db $3A - db $3A - db $3B - db $3C - db $3D - db $3E - db $3F - db $40 - db $41 - db $42 - db $42 - db $43 - db $12 - db $3B - db $44 - db $45 - db $46 - db $46 - db $47 - db $47 - db $48 - db $49 - db $4A - db $4B - db $4C - db $4D - db $4E - db $4F - db $50 - db $51 - db $52 - db $53 - db $54 - db $55 - db $56 - db $57 - db $58 - db $59 - db $5A - db $5A - db $05 - db $05 - db $5B - db $5C - db $5D - db $4D - db $02 - db $46 - db $46 - db $46 - db $5E - db $5F - -INCBIN "baserom.gbc",$29fa6,$2c000 - $29fa6 - + db $00 + db $00 + db $00 + db $01 + db $02 + db $02 + db $03 + db $04 + db $05 + db $06 + db $07 + db $08 + db $09 + db $07 + db $0A + db $0B + db $0C + db $0C + db $60 + db $60 + db $0B + db $0E + db $0F + db $10 + db $0D + db $0D + db $0D + db $0D + db $11 + db $11 + db $12 + db $11 + db $11 + db $12 + db $13 + db $13 + db $14 + db $14 + db $15 + db $15 + db $16 + db $16 + db $17 + db $17 + db $18 + db $19 + db $19 + db $1A + db $1B + db $1C + db $1C + db $1D + db $1E + db $1F + db $1F + db $20 + db $20 + db $21 + db $22 + db $23 + db $23 + db $23 + db $24 + db $24 + db $24 + db $25 + db $25 + db $25 + db $18 + db $26 + db $26 + db $27 + db $27 + db $28 + db $28 + db $29 + db $2A + db $2A + db $2B + db $2C + db $2D + db $2D + db $2E + db $2F + db $30 + db $31 + db $31 + db $32 + db $32 + db $33 + db $33 + db $34 + db $34 + db $35 + db $36 + db $37 + db $37 + db $38 + db $39 + db $3A + db $3A + db $3B + db $3C + db $3D + db $3E + db $3F + db $40 + db $41 + db $42 + db $42 + db $43 + db $12 + db $3B + db $44 + db $45 + db $46 + db $46 + db $47 + db $47 + db $48 + db $49 + db $4A + db $4B + db $4C + db $4D + db $4E + db $4F + db $50 + db $51 + db $52 + db $53 + db $54 + db $55 + db $56 + db $57 + db $58 + db $59 + db $5A + db $5A + db $05 + db $05 + db $5B + db $5C + db $5D + db $4D + db $02 + db $46 + db $46 + db $46 + db $5E + db $5F + +Data_29fa6: + dr $29fa6, $2a85d + +Data_2a85d: + dr $2a85d, $2b136 + +Data_2b136: + dr $2b136, $2b1cd SECTION "bankb", ROMX, BANK[$b] Unknown_2c000: ; 0x2c000 - db $20, $00 + dex_text " " + dex_end PokedexDescriptionPointers: ; 0x2c002 - dw BulbasaurPokedexDescription - dw IvysaurPokedexDescription - dw VenusaurPokedexDescription - dw CharmanderPokedexDescription - dw CharmeleonPokedexDescription - dw CharizardPokedexDescription - dw SquirtlePokedexDescription - dw WartortlePokedexDescription - dw BlastoisePokedexDescription - dw CaterpiePokedexDescription - dw MetapodPokedexDescription - dw ButterfreePokedexDescription - dw WeedlePokedexDescription - dw KakunaPokedexDescription - dw BeedrillPokedexDescription - dw PidgeyPokedexDescription - dw PidgeottoPokedexDescription - dw PidgeotPokedexDescription - dw RattataPokedexDescription - dw RaticatePokedexDescription - dw SpearowPokedexDescription - dw FearowPokedexDescription - dw EkansPokedexDescription - dw ArbokPokedexDescription - dw PikachuPokedexDescription - dw RaichuPokedexDescription - dw SandshrewPokedexDescription - dw SandslashPokedexDescription - dw NidoranFPokedexDescription - dw NidorinaPokedexDescription - dw NidoqueenPokedexDescription - dw NidoranMPokedexDescription - dw NidorinoPokedexDescription - dw NidokingPokedexDescription - dw ClefairyPokedexDescription - dw ClefablePokedexDescription - dw VulpixPokedexDescription - dw NinetalesPokedexDescription - dw JigglypuffPokedexDescription - dw WigglytuffPokedexDescription - dw ZubatPokedexDescription - dw GolbatPokedexDescription - dw OddishPokedexDescription - dw GloomPokedexDescription - dw VileplumePokedexDescription - dw ParasPokedexDescription - dw ParasectPokedexDescription - dw VenonatPokedexDescription - dw VenomothPokedexDescription - dw DiglettPokedexDescription - dw DugtrioPokedexDescription - dw MeowthPokedexDescription - dw PersianPokedexDescription - dw PsyduckPokedexDescription - dw GolduckPokedexDescription - dw MankeyPokedexDescription - dw PrimeapePokedexDescription - dw GrowlithePokedexDescription - dw ArcaninePokedexDescription - dw PoliwagPokedexDescription - dw PoliwhirlPokedexDescription - dw PoliwrathPokedexDescription - dw AbraPokedexDescription - dw KadabraPokedexDescription - dw AlakazamPokedexDescription - dw MachopPokedexDescription - dw MachokePokedexDescription - dw MachampPokedexDescription - dw BellsproutPokedexDescription - dw WeepinbellPokedexDescription - dw VictreebellPokedexDescription - dw TentacoolPokedexDescription - dw TentacruelPokedexDescription - dw GeodudePokedexDescription - dw GravelerPokedexDescription - dw GolemPokedexDescription - dw PonytaPokedexDescription - dw RapidashPokedexDescription - dw SlowpokePokedexDescription - dw SlowbroPokedexDescription - dw MagnemitePokedexDescription - dw MagnetonPokedexDescription - dw FarfetchdPokedexDescription - dw DoduoPokedexDescription - dw DodrioPokedexDescription - dw SeelPokedexDescription - dw DewgongPokedexDescription - dw GrimerPokedexDescription - dw MukPokedexDescription - dw ShellderPokedexDescription - dw CloysterPokedexDescription - dw GastlyPokedexDescription - dw HaunterPokedexDescription - dw GengarPokedexDescription - dw OnixPokedexDescription - dw DrowzeePokedexDescription - dw HypnoPokedexDescription - dw KrabbyPokedexDescription - dw KinglerPokedexDescription - dw VoltorbPokedexDescription - dw ElectrodePokedexDescription - dw ExeggcutePokedexDescription - dw ExeggutorPokedexDescription - dw CubonePokedexDescription - dw MarowakPokedexDescription - dw HitmonleePokedexDescription - dw HitmonchanPokedexDescription - dw LickitungPokedexDescription - dw KoffingPokedexDescription - dw WeezingPokedexDescription - dw RhyhornPokedexDescription - dw RhydonPokedexDescription - dw ChanseyPokedexDescription - dw TangelaPokedexDescription - dw KangaskhanPokedexDescription - dw HorseaPokedexDescription - dw SeadraPokedexDescription - dw GoldeenPokedexDescription - dw SeakingPokedexDescription - dw StaryuPokedexDescription - dw StarmiePokedexDescription - dw MrMimePokedexDescription - dw ScytherPokedexDescription - dw JynxPokedexDescription - dw ElectabuzzPokedexDescription - dw MagmarPokedexDescription - dw PinsirPokedexDescription - dw TaurosPokedexDescription - dw MagikarpPokedexDescription - dw GyaradosPokedexDescription - dw LaprasPokedexDescription - dw DittoPokedexDescription - dw EeveePokedexDescription - dw VaporeonPokedexDescription - dw JolteonPokedexDescription - dw FlareonPokedexDescription - dw PorygonPokedexDescription - dw OmanytePokedexDescription - dw OmastarPokedexDescription - dw KabutoPokedexDescription - dw KabutopsPokedexDescription - dw AerodactylPokedexDescription - dw SnorlaxPokedexDescription - dw ArticunoPokedexDescription - dw ZapdosPokedexDescription - dw MoltresPokedexDescription - dw DratiniPokedexDescription - dw DragonairPokedexDescription - dw DragonitePokedexDescription - dw MewtwoPokedexDescription - dw MewPokedexDescription + dw BulbasaurPokedexDescription + dw IvysaurPokedexDescription + dw VenusaurPokedexDescription + dw CharmanderPokedexDescription + dw CharmeleonPokedexDescription + dw CharizardPokedexDescription + dw SquirtlePokedexDescription + dw WartortlePokedexDescription + dw BlastoisePokedexDescription + dw CaterpiePokedexDescription + dw MetapodPokedexDescription + dw ButterfreePokedexDescription + dw WeedlePokedexDescription + dw KakunaPokedexDescription + dw BeedrillPokedexDescription + dw PidgeyPokedexDescription + dw PidgeottoPokedexDescription + dw PidgeotPokedexDescription + dw RattataPokedexDescription + dw RaticatePokedexDescription + dw SpearowPokedexDescription + dw FearowPokedexDescription + dw EkansPokedexDescription + dw ArbokPokedexDescription + dw PikachuPokedexDescription + dw RaichuPokedexDescription + dw SandshrewPokedexDescription + dw SandslashPokedexDescription + dw NidoranFPokedexDescription + dw NidorinaPokedexDescription + dw NidoqueenPokedexDescription + dw NidoranMPokedexDescription + dw NidorinoPokedexDescription + dw NidokingPokedexDescription + dw ClefairyPokedexDescription + dw ClefablePokedexDescription + dw VulpixPokedexDescription + dw NinetalesPokedexDescription + dw JigglypuffPokedexDescription + dw WigglytuffPokedexDescription + dw ZubatPokedexDescription + dw GolbatPokedexDescription + dw OddishPokedexDescription + dw GloomPokedexDescription + dw VileplumePokedexDescription + dw ParasPokedexDescription + dw ParasectPokedexDescription + dw VenonatPokedexDescription + dw VenomothPokedexDescription + dw DiglettPokedexDescription + dw DugtrioPokedexDescription + dw MeowthPokedexDescription + dw PersianPokedexDescription + dw PsyduckPokedexDescription + dw GolduckPokedexDescription + dw MankeyPokedexDescription + dw PrimeapePokedexDescription + dw GrowlithePokedexDescription + dw ArcaninePokedexDescription + dw PoliwagPokedexDescription + dw PoliwhirlPokedexDescription + dw PoliwrathPokedexDescription + dw AbraPokedexDescription + dw KadabraPokedexDescription + dw AlakazamPokedexDescription + dw MachopPokedexDescription + dw MachokePokedexDescription + dw MachampPokedexDescription + dw BellsproutPokedexDescription + dw WeepinbellPokedexDescription + dw VictreebellPokedexDescription + dw TentacoolPokedexDescription + dw TentacruelPokedexDescription + dw GeodudePokedexDescription + dw GravelerPokedexDescription + dw GolemPokedexDescription + dw PonytaPokedexDescription + dw RapidashPokedexDescription + dw SlowpokePokedexDescription + dw SlowbroPokedexDescription + dw MagnemitePokedexDescription + dw MagnetonPokedexDescription + dw FarfetchdPokedexDescription + dw DoduoPokedexDescription + dw DodrioPokedexDescription + dw SeelPokedexDescription + dw DewgongPokedexDescription + dw GrimerPokedexDescription + dw MukPokedexDescription + dw ShellderPokedexDescription + dw CloysterPokedexDescription + dw GastlyPokedexDescription + dw HaunterPokedexDescription + dw GengarPokedexDescription + dw OnixPokedexDescription + dw DrowzeePokedexDescription + dw HypnoPokedexDescription + dw KrabbyPokedexDescription + dw KinglerPokedexDescription + dw VoltorbPokedexDescription + dw ElectrodePokedexDescription + dw ExeggcutePokedexDescription + dw ExeggutorPokedexDescription + dw CubonePokedexDescription + dw MarowakPokedexDescription + dw HitmonleePokedexDescription + dw HitmonchanPokedexDescription + dw LickitungPokedexDescription + dw KoffingPokedexDescription + dw WeezingPokedexDescription + dw RhyhornPokedexDescription + dw RhydonPokedexDescription + dw ChanseyPokedexDescription + dw TangelaPokedexDescription + dw KangaskhanPokedexDescription + dw HorseaPokedexDescription + dw SeadraPokedexDescription + dw GoldeenPokedexDescription + dw SeakingPokedexDescription + dw StaryuPokedexDescription + dw StarmiePokedexDescription + dw MrMimePokedexDescription + dw ScytherPokedexDescription + dw JynxPokedexDescription + dw ElectabuzzPokedexDescription + dw MagmarPokedexDescription + dw PinsirPokedexDescription + dw TaurosPokedexDescription + dw MagikarpPokedexDescription + dw GyaradosPokedexDescription + dw LaprasPokedexDescription + dw DittoPokedexDescription + dw EeveePokedexDescription + dw VaporeonPokedexDescription + dw JolteonPokedexDescription + dw FlareonPokedexDescription + dw PorygonPokedexDescription + dw OmanytePokedexDescription + dw OmastarPokedexDescription + dw KabutoPokedexDescription + dw KabutopsPokedexDescription + dw AerodactylPokedexDescription + dw SnorlaxPokedexDescription + dw ArticunoPokedexDescription + dw ZapdosPokedexDescription + dw MoltresPokedexDescription + dw DratiniPokedexDescription + dw DragonairPokedexDescription + dw DragonitePokedexDescription + dw MewtwoPokedexDescription + dw MewPokedexDescription RhydonPokedexDescription: ; 0x2c130 - dex_text "Protected by an" - dex_line "armor-like hide," - dex_line "it is capable of" - dex_line "living in molten" - dex_line "lava of 3,600" - dex_line "degrees." - dex_end + dex_text "Protected by an" + dex_line "armor-like hide," + dex_line "it is capable of" + dex_line "living in molten" + dex_line "lava of 3,600" + dex_line "degrees." + dex_end KangaskhanPokedexDescription: ; 0x2c18a - dex_text "The infant rarely" - dex_line "ventures out of" - dex_line "its mother`s" - dex_line "protective pouch" - dex_line "until it is 3" - dex_line "years old." - dex_end + dex_text "The infant rarely" + dex_line "ventures out of" + dex_line "its mother`s" + dex_line "protective pouch" + dex_line "until it is 3" + dex_line "years old." + dex_end NidoranMPokedexDescription: ; 0x2c1e3 - dex_text "Stiffens its ears" - dex_line "to sense danger." - dex_line "The larger its" - dex_line "horns, the more" - dex_line "powerful its" - dex_line "secreted venom." - dex_end + dex_text "Stiffens its ears" + dex_line "to sense danger." + dex_line "The larger its" + dex_line "horns, the more" + dex_line "powerful its" + dex_line "secreted venom." + dex_end ClefairyPokedexDescription: ; 0x2c242 - dex_text "Its magical and" - dex_line "cute appeal has" - dex_line "many admirers." - dex_line "It is rare and" - dex_line "found only in" - dex_line "certain areas." - dex_end + dex_text "Its magical and" + dex_line "cute appeal has" + dex_line "many admirers." + dex_line "It is rare and" + dex_line "found only in" + dex_line "certain areas." + dex_end SpearowPokedexDescription: ; 0x2c29d - dex_text "Eats bugs in" - dex_line "grassy areas. It" - dex_line "has to flap its" - dex_line "short wings at" - dex_line "high speed to" - dex_line "stay airborne." - dex_end + dex_text "Eats bugs in" + dex_line "grassy areas. It" + dex_line "has to flap its" + dex_line "short wings at" + dex_line "high speed to" + dex_line "stay airborne." + dex_end VoltorbPokedexDescription: ; 0x2c2f7 - dex_text "Usually found in" - dex_line "power plants." - dex_line "Easily mistaken" - dex_line "for a POKé BALL," - dex_line "they have zapped" - dex_line "many people." - dex_end + dex_text "Usually found in" + dex_line "power plants." + dex_line "Easily mistaken" + dex_line "for a POKé BALL," + dex_line "they have zapped" + dex_line "many people." + dex_end NidokingPokedexDescription: ; 0x2c355 - dex_text "It uses its" - dex_line "powerful tail in" - dex_line "battle to smash," - dex_line "constrict, then" - dex_line "break the prey`s" - dex_line "bones." - dex_end + dex_text "It uses its" + dex_line "powerful tail in" + dex_line "battle to smash," + dex_line "constrict, then" + dex_line "break the prey`s" + dex_line "bones." + dex_end SlowbroPokedexDescription: ; 0x2c3ab - dex_text "The SHELLDER that" - dex_line "is latched onto" - dex_line "SLOWPOKE`s tail" - dex_line "is said to feed" - dex_line "on the host`s left" - dex_line "over scraps." - dex_end + dex_text "The SHELLDER that" + dex_line "is latched onto" + dex_line "SLOWPOKE`s tail" + dex_line "is said to feed" + dex_line "on the host`s left" + dex_line "over scraps." + dex_end IvysaurPokedexDescription: ; 0x2c40d - dex_text "When the bulb on" - dex_line "its back grows" - dex_line "large, it appears" - dex_line "to lose the" - dex_line "ability to stand" - dex_line "on its hind legs." - dex_end + dex_text "When the bulb on" + dex_line "its back grows" + dex_line "large, it appears" + dex_line "to lose the" + dex_line "ability to stand" + dex_line "on its hind legs." + dex_end ExeggutorPokedexDescription: ; 0x2c46e - dex_text "Legend has it that" - dex_line "on rare occasions," - dex_line "one of its heads" - dex_line "will drop off and" - dex_line "continue on as an" - dex_line "EXEGGCUTE." - dex_end + dex_text "Legend has it that" + dex_line "on rare occasions," + dex_line "one of its heads" + dex_line "will drop off and" + dex_line "continue on as an" + dex_line "EXEGGCUTE." + dex_end LickitungPokedexDescription: ; 0x2c4d4 - dex_text "Its tongue can be" - dex_line "extended like a" - dex_line "chameleon`s. It" - dex_line "leaves a tingling" - dex_line "sensation when it" - dex_line "licks enemies." - dex_end + dex_text "Its tongue can be" + dex_line "extended like a" + dex_line "chameleon`s. It" + dex_line "leaves a tingling" + dex_line "sensation when it" + dex_line "licks enemies." + dex_end ExeggcutePokedexDescription: ; 0x2c539 - dex_text "Often mistaken" - dex_line "for eggs." - dex_line "When disturbed," - dex_line "they quickly" - dex_line "gather and attack" - dex_line "in swarms." - dex_end + dex_text "Often mistaken" + dex_line "for eggs." + dex_line "When disturbed," + dex_line "they quickly" + dex_line "gather and attack" + dex_line "in swarms." + dex_end GrimerPokedexDescription: ; 0x2c58c - dex_text "Appears in filthy" - dex_line "areas. Thrives by" - dex_line "sucking up" - dex_line "polluted sludge" - dex_line "that is pumped" - dex_line "out of factories." - dex_end + dex_text "Appears in filthy" + dex_line "areas. Thrives by" + dex_line "sucking up" + dex_line "polluted sludge" + dex_line "that is pumped" + dex_line "out of factories." + dex_end GengarPokedexDescription: ; 0x2c5ec - dex_text "Under a full moon," - dex_line "this POKéMON" - dex_line "likes to mimic" - dex_line "the shadows of" - dex_line "people and laugh" - dex_line "at their fright." - dex_end + dex_text "Under a full moon," + dex_line "this POKéMON" + dex_line "likes to mimic" + dex_line "the shadows of" + dex_line "people and laugh" + dex_line "at their fright." + dex_end NidoranFPokedexDescription: ; 0x2c64c - dex_text "Although small," - dex_line "its venomous" - dex_line "barbs render this" - dex_line "POKéMON dangerous." - dex_line "The female has" - dex_line "smaller horns." - dex_end + dex_text "Although small," + dex_line "its venomous" + dex_line "barbs render this" + dex_line "POKéMON dangerous." + dex_line "The female has" + dex_line "smaller horns." + dex_end NidoqueenPokedexDescription: ; 0x2c6ac - dex_text "Its hard scales" - dex_line "provide strong" - dex_line "protection. It" - dex_line "uses its hefty" - dex_line "bulk to execute" - dex_line "powerful moves." - dex_end + dex_text "Its hard scales" + dex_line "provide strong" + dex_line "protection. It" + dex_line "uses its hefty" + dex_line "bulk to execute" + dex_line "powerful moves." + dex_end CubonePokedexDescription: ; 0x2c709 - dex_text "Because it never" - dex_line "removes its skull" - dex_line "helmet, no one" - dex_line "has ever seen" - dex_line "this POKéMON`s" - dex_line "real face." - dex_end + dex_text "Because it never" + dex_line "removes its skull" + dex_line "helmet, no one" + dex_line "has ever seen" + dex_line "this POKéMON`s" + dex_line "real face." + dex_end RhyhornPokedexDescription: ; 0x2c763 - dex_text "Its massive bones" - dex_line "are 1000 times" - dex_line "harder than human" - dex_line "bones. It can" - dex_line "easily knock a" - dex_line "trailer flying." - dex_end + dex_text "Its massive bones" + dex_line "are 1000 times" + dex_line "harder than human" + dex_line "bones. It can" + dex_line "easily knock a" + dex_line "trailer flying." + dex_end LaprasPokedexDescription: ; 0x2c7c3 - dex_text "A POKéMON that" - dex_line "has been over-" - dex_line "hunted almost to" - dex_line "extinction. It" - dex_line "can ferry people" - dex_line "across the water." - dex_end + dex_text "A POKéMON that" + dex_line "has been over-" + dex_line "hunted almost to" + dex_line "extinction. It" + dex_line "can ferry people" + dex_line "across the water." + dex_end ArcaninePokedexDescription: ; 0x2c824 - dex_text "A POKéMON that" - dex_line "has been admired" - dex_line "since the past" - dex_line "for its beauty." - dex_line "It runs agilely" - dex_line "as if on wings." - dex_end + dex_text "A POKéMON that" + dex_line "has been admired" + dex_line "since the past" + dex_line "for its beauty." + dex_line "It runs agilely" + dex_line "as if on wings." + dex_end MewPokedexDescription: ; 0x2c883 - dex_text "So rare that it" - dex_line "is still said to" - dex_line "be a mirage by" - dex_line "many experts. Only" - dex_line "a few people have" - dex_line "seen it worldwide. " - dex_end + dex_text "So rare that it" + dex_line "is still said to" + dex_line "be a mirage by" + dex_line "many experts. Only" + dex_line "a few people have" + dex_line "seen it worldwide. " + dex_end GyaradosPokedexDescription: ; 0x2c8ec - dex_text "Rarely seen in" - dex_line "the wild. Huge" - dex_line "and vicious, it" - dex_line "is capable of" - dex_line "destroying entire" - dex_line "cities in a rage." - dex_end + dex_text "Rarely seen in" + dex_line "the wild. Huge" + dex_line "and vicious, it" + dex_line "is capable of" + dex_line "destroying entire" + dex_line "cities in a rage." + dex_end ShellderPokedexDescription: ; 0x2c94c - dex_text "Its hard shell" - dex_line "repels any kind" - dex_line "of attack." - dex_line "It is vulnerable" - dex_line "only when its" - dex_line "shell is open." - dex_end + dex_text "Its hard shell" + dex_line "repels any kind" + dex_line "of attack." + dex_line "It is vulnerable" + dex_line "only when its" + dex_line "shell is open." + dex_end TentacoolPokedexDescription: ; 0x2c9a4 - dex_text "Drifts in shallow" - dex_line "seas. Anglers who" - dex_line "hook them by" - dex_line "accident are" - dex_line "often punished by" - dex_line "its stinging acid." - dex_end + dex_text "Drifts in shallow" + dex_line "seas. Anglers who" + dex_line "hook them by" + dex_line "accident are" + dex_line "often punished by" + dex_line "its stinging acid." + dex_end GastlyPokedexDescription: ; 0x2ca07 - dex_text "Almost invisible," - dex_line "this gaseous" - dex_line "POKéMON cloaks" - dex_line "the target and" - dex_line "puts it to sleep" - dex_line "without notice." - dex_end + dex_text "Almost invisible," + dex_line "this gaseous" + dex_line "POKéMON cloaks" + dex_line "the target and" + dex_line "puts it to sleep" + dex_line "without notice." + dex_end ScytherPokedexDescription: ; 0x2ca65 - dex_text "With ninja-like" - dex_line "agility and speed," - dex_line "it can create the" - dex_line "illusion that" - dex_line "there is more" - dex_line "than one." - dex_end + dex_text "With ninja-like" + dex_line "agility and speed," + dex_line "it can create the" + dex_line "illusion that" + dex_line "there is more" + dex_line "than one." + dex_end StaryuPokedexDescription: ; 0x2cac0 - dex_text "An enigmatic" - dex_line "POKéMON that can" - dex_line "effortlessly" - dex_line "regenerate any" - dex_line "appendage it" - dex_line "loses in battle." - dex_end + dex_text "An enigmatic" + dex_line "POKéMON that can" + dex_line "effortlessly" + dex_line "regenerate any" + dex_line "appendage it" + dex_line "loses in battle." + dex_end BlastoisePokedexDescription: ; 0x2cb18 - dex_text "A brutal POKéMON" - dex_line "with pressurized" - dex_line "water jets on its" - dex_line "shell. They are" - dex_line "used for high" - dex_line "speed tackles." - dex_end + dex_text "A brutal POKéMON" + dex_line "with pressurized" + dex_line "water jets on its" + dex_line "shell. They are" + dex_line "used for high" + dex_line "speed tackles." + dex_end PinsirPokedexDescription: ; 0x2cb79 - dex_text "If it fails to" - dex_line "crush the victim" - dex_line "in its pincers," - dex_line "it will swing it" - dex_line "around and toss" - dex_line "it hard." - dex_end + dex_text "If it fails to" + dex_line "crush the victim" + dex_line "in its pincers," + dex_line "it will swing it" + dex_line "around and toss" + dex_line "it hard." + dex_end TangelaPokedexDescription: ; 0x2cbd3 - dex_text "The whole body is" - dex_line "swathed with wide" - dex_line "vines that are" - dex_line "similar to sea-" - dex_line "weed. Its vines" - dex_line "shake as it walks." - dex_end + dex_text "The whole body is" + dex_line "swathed with wide" + dex_line "vines that are" + dex_line "similar to sea-" + dex_line "weed. Its vines" + dex_line "shake as it walks." + dex_end GrowlithePokedexDescription: ; 0x2cc39 - dex_text "Very protective" - dex_line "of its territory." - dex_line "It will bark and" - dex_line "bite to repel" - dex_line "intruders from" - dex_line "its space." - dex_end + dex_text "Very protective" + dex_line "of its territory." + dex_line "It will bark and" + dex_line "bite to repel" + dex_line "intruders from" + dex_line "its space." + dex_end OnixPokedexDescription: ; 0x2cc94 - dex_text "As it grows, the" - dex_line "stone portions of" - dex_line "its body harden" - dex_line "to become similar" - dex_line "to a diamond, but" - dex_line "colored black." - dex_end + dex_text "As it grows, the" + dex_line "stone portions of" + dex_line "its body harden" + dex_line "to become similar" + dex_line "to a diamond, but" + dex_line "colored black." + dex_end FearowPokedexDescription: ; 0x2ccfa - dex_text "With its huge and" - dex_line "magnificent wings," - dex_line "it can keep aloft" - dex_line "without ever" - dex_line "having to land" - dex_line "for rest." - dex_end + dex_text "With its huge and" + dex_line "magnificent wings," + dex_line "it can keep aloft" + dex_line "without ever" + dex_line "having to land" + dex_line "for rest." + dex_end PidgeyPokedexDescription: ; 0x2cd57 - dex_text "A common sight in" - dex_line "forests and woods." - dex_line "It flaps its" - dex_line "wings at ground" - dex_line "level to kick up" - dex_line "blinding sand." - dex_end + dex_text "A common sight in" + dex_line "forests and woods." + dex_line "It flaps its" + dex_line "wings at ground" + dex_line "level to kick up" + dex_line "blinding sand." + dex_end SlowpokePokedexDescription: ; 0x2cdb9 - dex_text "Incredibly slow" - dex_line "and dopey. It" - dex_line "takes 5 seconds" - dex_line "for it to feel" - dex_line "pain when under" - dex_line "attack." - dex_end + dex_text "Incredibly slow" + dex_line "and dopey. It" + dex_line "takes 5 seconds" + dex_line "for it to feel" + dex_line "pain when under" + dex_line "attack." + dex_end KadabraPokedexDescription: ; 0x2ce0e - dex_text "It emits special" - dex_line "alpha waves from" - dex_line "its body that" - dex_line "induce headaches" - dex_line "just by being" - dex_line "close by." - dex_end + dex_text "It emits special" + dex_line "alpha waves from" + dex_line "its body that" + dex_line "induce headaches" + dex_line "just by being" + dex_line "close by." + dex_end GravelerPokedexDescription: ; 0x2ce67 - dex_text "Rolls down slopes" - dex_line "to move. It rolls" - dex_line "over any obstacle" - dex_line "without slowing" - dex_line "or changing its" - dex_line "direction." - dex_end + dex_text "Rolls down slopes" + dex_line "to move. It rolls" + dex_line "over any obstacle" + dex_line "without slowing" + dex_line "or changing its" + dex_line "direction." + dex_end ChanseyPokedexDescription: ; 0x2cec8 - dex_text "A rare and elusive" - dex_line "POKéMON that is" - dex_line "said to bring" - dex_line "happiness to those" - dex_line "who manage to get" - dex_line "it." - dex_end + dex_text "A rare and elusive" + dex_line "POKéMON that is" + dex_line "said to bring" + dex_line "happiness to those" + dex_line "who manage to get" + dex_line "it." + dex_end MachokePokedexDescription: ; 0x2cf22 - dex_text "Its muscular body" - dex_line "is so powerful, it" - dex_line "must wear a power" - dex_line "save belt to be" - dex_line "able to regulate" - dex_line "its motions." - dex_end + dex_text "Its muscular body" + dex_line "is so powerful, it" + dex_line "must wear a power" + dex_line "save belt to be" + dex_line "able to regulate" + dex_line "its motions." + dex_end MrMimePokedexDescription: ; 0x2cf87 - dex_text "If interrupted" - dex_line "while it is" - dex_line "miming, it will" - dex_line "slap around the" - dex_line "offender with its" - dex_line "broad hands." - dex_end + dex_text "If interrupted" + dex_line "while it is" + dex_line "miming, it will" + dex_line "slap around the" + dex_line "offender with its" + dex_line "broad hands." + dex_end HitmonleePokedexDescription: ; 0x2cfe1 - dex_text "When in a hurry," - dex_line "its legs lengthen" - dex_line "progressively." - dex_line "It runs smoothly" - dex_line "with extra long," - dex_line "loping strides." - dex_end + dex_text "When in a hurry," + dex_line "its legs lengthen" + dex_line "progressively." + dex_line "It runs smoothly" + dex_line "with extra long," + dex_line "loping strides." + dex_end HitmonchanPokedexDescription: ; 0x2d045 - dex_text "While apparently" - dex_line "doing nothing, it" - dex_line "fires punches in" - dex_line "lightning fast" - dex_line "volleys that are" - dex_line "impossible to see. " - dex_end + dex_text "While apparently" + dex_line "doing nothing, it" + dex_line "fires punches in" + dex_line "lightning fast" + dex_line "volleys that are" + dex_line "impossible to see. " + dex_end ArbokPokedexDescription: ; 0x2d0ad - dex_text "It is rumored that" - dex_line "the ferocious" - dex_line "warning markings" - dex_line "on its belly" - dex_line "differ from area" - dex_line "to area." - dex_end + dex_text "It is rumored that" + dex_line "the ferocious" + dex_line "warning markings" + dex_line "on its belly" + dex_line "differ from area" + dex_line "to area." + dex_end ParasectPokedexDescription: ; 0x2d106 - dex_text "A host-parasite" - dex_line "pair in which the" - dex_line "parasite mushroom" - dex_line "has taken over the" - dex_line "host bug. Prefers" - dex_line "damp places. " - dex_end + dex_text "A host-parasite" + dex_line "pair in which the" + dex_line "parasite mushroom" + dex_line "has taken over the" + dex_line "host bug. Prefers" + dex_line "damp places. " + dex_end PsyduckPokedexDescription: ; 0x2d16d - dex_text "While lulling its" - dex_line "enemies with its" - dex_line "vacant look, this" - dex_line "wily POKéMON will" - dex_line "use psychokinetic" - dex_line "powers." - dex_end + dex_text "While lulling its" + dex_line "enemies with its" + dex_line "vacant look, this" + dex_line "wily POKéMON will" + dex_line "use psychokinetic" + dex_line "powers." + dex_end DrowzeePokedexDescription: ; 0x2d1ce - dex_text "Puts enemies to" - dex_line "sleep then eats" - dex_line "their dreams." - dex_line "Occasionally gets" - dex_line "sick from eating" - dex_line "bad dreams." - dex_end + dex_text "Puts enemies to" + dex_line "sleep then eats" + dex_line "their dreams." + dex_line "Occasionally gets" + dex_line "sick from eating" + dex_line "bad dreams." + dex_end GolemPokedexDescription: ; 0x2d22b - dex_text "Its boulder-like" - dex_line "body is extremely" - dex_line "hard. It can" - dex_line "easily withstand" - dex_line "dynamite blasts" - dex_line "without damage." - dex_end + dex_text "Its boulder-like" + dex_line "body is extremely" + dex_line "hard. It can" + dex_line "easily withstand" + dex_line "dynamite blasts" + dex_line "without damage." + dex_end MagmarPokedexDescription: ; 0x2d28c - dex_text "Its body always" - dex_line "burns with an" - dex_line "orange glow that" - dex_line "enables it to" - dex_line "hide perfectly" - dex_line "among flames." - dex_end + dex_text "Its body always" + dex_line "burns with an" + dex_line "orange glow that" + dex_line "enables it to" + dex_line "hide perfectly" + dex_line "among flames." + dex_end ElectabuzzPokedexDescription: ; 0x2d2e6 - dex_text "Normally found" - dex_line "near power plants," - dex_line "they can wander" - dex_line "away and cause" - dex_line "major blackouts" - dex_line "in cities." - dex_end + dex_text "Normally found" + dex_line "near power plants," + dex_line "they can wander" + dex_line "away and cause" + dex_line "major blackouts" + dex_line "in cities." + dex_end MagnetonPokedexDescription: ; 0x2d342 - dex_text "Formed by several" - dex_line "MAGNEMITEs linked" - dex_line "together. They" - dex_line "frequently appear" - dex_line "when sunspots" - dex_line "flare up." - dex_end + dex_text "Formed by several" + dex_line "MAGNEMITEs linked" + dex_line "together. They" + dex_line "frequently appear" + dex_line "when sunspots" + dex_line "flare up." + dex_end KoffingPokedexDescription: ; 0x2d39f - dex_text "Because it stores" - dex_line "several kinds of" - dex_line "toxic gases in" - dex_line "its body, it is" - dex_line "prone to exploding" - dex_line "without warning." - dex_end + dex_text "Because it stores" + dex_line "several kinds of" + dex_line "toxic gases in" + dex_line "its body, it is" + dex_line "prone to exploding" + dex_line "without warning." + dex_end MankeyPokedexDescription: ; 0x2d405 - dex_text "Extremely quick to" - dex_line "anger. It could" - dex_line "be docile one" - dex_line "moment then" - dex_line "thrashing away" - dex_line "the next instant." - dex_end + dex_text "Extremely quick to" + dex_line "anger. It could" + dex_line "be docile one" + dex_line "moment then" + dex_line "thrashing away" + dex_line "the next instant." + dex_end SeelPokedexDescription: ; 0x2d463 - dex_text "The protruding" - dex_line "horn on its head" - dex_line "is very hard." - dex_line "It is used for" - dex_line "bashing through" - dex_line "thick ice." - dex_end + dex_text "The protruding" + dex_line "horn on its head" + dex_line "is very hard." + dex_line "It is used for" + dex_line "bashing through" + dex_line "thick ice." + dex_end DiglettPokedexDescription: ; 0x2d4bb - dex_text "Lives about one" - dex_line "yard underground" - dex_line "where it feeds on" - dex_line "plant roots. It" - dex_line "sometimes appears" - dex_line "above ground." - dex_end + dex_text "Lives about one" + dex_line "yard underground" + dex_line "where it feeds on" + dex_line "plant roots. It" + dex_line "sometimes appears" + dex_line "above ground." + dex_end TaurosPokedexDescription: ; 0x2d51e - dex_text "When it targets" - dex_line "an enemy, it" - dex_line "charges furiously" - dex_line "while whipping its" - dex_line "body with its" - dex_line "long tails." - dex_end + dex_text "When it targets" + dex_line "an enemy, it" + dex_line "charges furiously" + dex_line "while whipping its" + dex_line "body with its" + dex_line "long tails." + dex_end FarfetchdPokedexDescription: ; 0x2d57a - dex_text "The sprig of" - dex_line "green onions it" - dex_line "holds is its" - dex_line "weapon. It is" - dex_line "used much like a" - dex_line "metal sword." - dex_end + dex_text "The sprig of" + dex_line "green onions it" + dex_line "holds is its" + dex_line "weapon. It is" + dex_line "used much like a" + dex_line "metal sword." + dex_end VenonatPokedexDescription: ; 0x2d5d0 - dex_text "Lives in the" - dex_line "shadows of tall" - dex_line "trees where it" - dex_line "eats insects. It" - dex_line "is attracted by" - dex_line "light at night." - dex_end + dex_text "Lives in the" + dex_line "shadows of tall" + dex_line "trees where it" + dex_line "eats insects. It" + dex_line "is attracted by" + dex_line "light at night." + dex_end DragonitePokedexDescription: ; 0x2d62d - dex_text "An extremely" - dex_line "rarely seen" - dex_line "marine POKéMON." - dex_line "Its intelligence" - dex_line "is said to match" - dex_line "that of humans." - dex_end + dex_text "An extremely" + dex_line "rarely seen" + dex_line "marine POKéMON." + dex_line "Its intelligence" + dex_line "is said to match" + dex_line "that of humans." + dex_end DoduoPokedexDescription: ; 0x2d688 - dex_text "A bird that makes" - dex_line "up for its poor" - dex_line "flying with its" - dex_line "fast foot speed." - dex_line "Leaves giant" - dex_line "footprints." - dex_end + dex_text "A bird that makes" + dex_line "up for its poor" + dex_line "flying with its" + dex_line "fast foot speed." + dex_line "Leaves giant" + dex_line "footprints." + dex_end PoliwagPokedexDescription: ; 0x2d6e4 - dex_text "Its newly grown" - dex_line "legs prevent it" - dex_line "from running. It" - dex_line "appears to prefer" - dex_line "swimming than" - dex_line "trying to stand." - dex_end + dex_text "Its newly grown" + dex_line "legs prevent it" + dex_line "from running. It" + dex_line "appears to prefer" + dex_line "swimming than" + dex_line "trying to stand." + dex_end JynxPokedexDescription: ; 0x2d746 - dex_text "It seductively" - dex_line "wiggles its hips" - dex_line "as it walks. It" - dex_line "can cause people" - dex_line "to dance in" - dex_line "unison with it." - dex_end + dex_text "It seductively" + dex_line "wiggles its hips" + dex_line "as it walks. It" + dex_line "can cause people" + dex_line "to dance in" + dex_line "unison with it." + dex_end MoltresPokedexDescription: ; 0x2d7a3 - dex_text "Known as the" - dex_line "legendary bird of" - dex_line "fire. Every flap" - dex_line "of its wings" - dex_line "creates a dazzling" - dex_line "flash of flames." - dex_end + dex_text "Known as the" + dex_line "legendary bird of" + dex_line "fire. Every flap" + dex_line "of its wings" + dex_line "creates a dazzling" + dex_line "flash of flames." + dex_end ArticunoPokedexDescription: ; 0x2d804 - dex_text "A legendary bird" - dex_line "POKéMON that is" - dex_line "said to appear to" - dex_line "doomed people who" - dex_line "are lost in icy" - dex_line "mountains." - dex_end + dex_text "A legendary bird" + dex_line "POKéMON that is" + dex_line "said to appear to" + dex_line "doomed people who" + dex_line "are lost in icy" + dex_line "mountains." + dex_end ZapdosPokedexDescription: ; 0x2d864 - dex_text "A legendary bird" - dex_line "POKéMON that is" - dex_line "said to appear" - dex_line "from clouds while" - dex_line "dropping enormous" - dex_line "lightning bolts." - dex_end + dex_text "A legendary bird" + dex_line "POKéMON that is" + dex_line "said to appear" + dex_line "from clouds while" + dex_line "dropping enormous" + dex_line "lightning bolts." + dex_end DittoPokedexDescription: ; 0x2d8c9 - dex_text "Capable of copying" - dex_line "an enemy`s genetic" - dex_line "code to instantly" - dex_line "transform itself" - dex_line "into a duplicate" - dex_line "of the enemy." - dex_end + dex_text "Capable of copying" + dex_line "an enemy`s genetic" + dex_line "code to instantly" + dex_line "transform itself" + dex_line "into a duplicate" + dex_line "of the enemy." + dex_end MeowthPokedexDescription: ; 0x2d931 - dex_text "Adores circular" - dex_line "objects. Wanders" - dex_line "the streets on a" - dex_line "nightly basis to" - dex_line "look for dropped" - dex_line "loose change." - dex_end + dex_text "Adores circular" + dex_line "objects. Wanders" + dex_line "the streets on a" + dex_line "nightly basis to" + dex_line "look for dropped" + dex_line "loose change." + dex_end KrabbyPokedexDescription: ; 0x2d993 - dex_text "Its pincers are" - dex_line "not only powerful" - dex_line "weapons, they are" - dex_line "used for balance" - dex_line "when walking" - dex_line "sideways." - dex_end + dex_text "Its pincers are" + dex_line "not only powerful" + dex_line "weapons, they are" + dex_line "used for balance" + dex_line "when walking" + dex_line "sideways." + dex_end VulpixPokedexDescription: ; 0x2d9ef - dex_text "At the time of" - dex_line "birth, it has" - dex_line "just one tail." - dex_line "The tail splits" - dex_line "from its tip as" - dex_line "it grows older." - dex_end + dex_text "At the time of" + dex_line "birth, it has" + dex_line "just one tail." + dex_line "The tail splits" + dex_line "from its tip as" + dex_line "it grows older." + dex_end NinetalesPokedexDescription: ; 0x2da4b - dex_text "Very smart and" - dex_line "very vengeful." - dex_line "Grabbing one of" - dex_line "its many tails" - dex_line "could result in a" - dex_line "1000-year curse." - dex_end + dex_text "Very smart and" + dex_line "very vengeful." + dex_line "Grabbing one of" + dex_line "its many tails" + dex_line "could result in a" + dex_line "1000-year curse." + dex_end PikachuPokedexDescription: ; 0x2daab - dex_text "When several of" - dex_line "these POKéMON" - dex_line "gather, their" - dex_line "electricity could" - dex_line "build and cause" - dex_line "lightning storms." - dex_end + dex_text "When several of" + dex_line "these POKéMON" + dex_line "gather, their" + dex_line "electricity could" + dex_line "build and cause" + dex_line "lightning storms." + dex_end RaichuPokedexDescription: ; 0x2db0b - dex_text "Its long tail" - dex_line "serves as a" - dex_line "ground to protect" - dex_line "itself from its" - dex_line "own high voltage" - dex_line "power." - dex_end + dex_text "Its long tail" + dex_line "serves as a" + dex_line "ground to protect" + dex_line "itself from its" + dex_line "own high voltage" + dex_line "power." + dex_end DratiniPokedexDescription: ; 0x2db5f - dex_text "Long considered a" - dex_line "mythical POKéMON" - dex_line "until recently" - dex_line "when a small" - dex_line "colony was found" - dex_line "living underwater." - dex_end + dex_text "Long considered a" + dex_line "mythical POKéMON" + dex_line "until recently" + dex_line "when a small" + dex_line "colony was found" + dex_line "living underwater." + dex_end DragonairPokedexDescription: ; 0x2dbc2 - dex_text "A mystical POKéMON" - dex_line "that exudes a" - dex_line "gentle aura." - dex_line "Has the ability" - dex_line "to change climate" - dex_line "conditions." - dex_end + dex_text "A mystical POKéMON" + dex_line "that exudes a" + dex_line "gentle aura." + dex_line "Has the ability" + dex_line "to change climate" + dex_line "conditions." + dex_end KabutoPokedexDescription: ; 0x2dc1e - dex_text "A POKéMON that" - dex_line "was resurrected" - dex_line "from a fossil" - dex_line "found in what was" - dex_line "once the ocean" - dex_line "floor eons ago." - dex_end + dex_text "A POKéMON that" + dex_line "was resurrected" + dex_line "from a fossil" + dex_line "found in what was" + dex_line "once the ocean" + dex_line "floor eons ago." + dex_end KabutopsPokedexDescription: ; 0x2dc7c - dex_text "Its sleek shape is" - dex_line "perfect for swim-" - dex_line "ming. It slashes" - dex_line "prey with its" - dex_line "claws and drains" - dex_line "the body fluids." - dex_end + dex_text "Its sleek shape is" + dex_line "perfect for swim-" + dex_line "ming. It slashes" + dex_line "prey with its" + dex_line "claws and drains" + dex_line "the body fluids." + dex_end HorseaPokedexDescription: ; 0x2dce2 - dex_text "Known to shoot" - dex_line "down flying bugs" - dex_line "with precision" - dex_line "blasts of ink" - dex_line "from the surface" - dex_line "of the water." - dex_end + dex_text "Known to shoot" + dex_line "down flying bugs" + dex_line "with precision" + dex_line "blasts of ink" + dex_line "from the surface" + dex_line "of the water." + dex_end SeadraPokedexDescription: ; 0x2dd3e - dex_text "Capable of swim-" - dex_line "ming backwards by" - dex_line "rapidly flapping" - dex_line "its wing-like" - dex_line "pectoral fins and" - dex_line "stout tail." - dex_end + dex_text "Capable of swim-" + dex_line "ming backwards by" + dex_line "rapidly flapping" + dex_line "its wing-like" + dex_line "pectoral fins and" + dex_line "stout tail." + dex_end SandshrewPokedexDescription: ; 0x2dd9e - dex_text "Burrows deep" - dex_line "underground in" - dex_line "arid locations" - dex_line "far from water." - dex_line "It only emerges" - dex_line "to hunt for food." - dex_end + dex_text "Burrows deep" + dex_line "underground in" + dex_line "arid locations" + dex_line "far from water." + dex_line "It only emerges" + dex_line "to hunt for food." + dex_end SandslashPokedexDescription: ; 0x2ddfb - dex_text "Curls up into a" - dex_line "spiny ball when" - dex_line "threatened. It" - dex_line "can roll while" - dex_line "curled up to" - dex_line "attack or escape." - dex_end + dex_text "Curls up into a" + dex_line "spiny ball when" + dex_line "threatened. It" + dex_line "can roll while" + dex_line "curled up to" + dex_line "attack or escape." + dex_end OmanytePokedexDescription: ; 0x2de58 - dex_text "Although long" - dex_line "extinct, in rare" - dex_line "cases, it can be" - dex_line "genetically" - dex_line "resurrected from" - dex_line "fossils." - dex_end + dex_text "Although long" + dex_line "extinct, in rare" + dex_line "cases, it can be" + dex_line "genetically" + dex_line "resurrected from" + dex_line "fossils." + dex_end OmastarPokedexDescription: ; 0x2deae - dex_text "A prehistoric" - dex_line "POKéMON that died" - dex_line "out when its" - dex_line "heavy shell made" - dex_line "it impossible to" - dex_line "catch prey." - dex_end + dex_text "A prehistoric" + dex_line "POKéMON that died" + dex_line "out when its" + dex_line "heavy shell made" + dex_line "it impossible to" + dex_line "catch prey." + dex_end JigglypuffPokedexDescription: ; 0x2df09 - dex_text "When its huge eyes" - dex_line "light up, it sings" - dex_line "a mysteriously" - dex_line "soothing melody" - dex_line "that lulls its" - dex_line "enemies to sleep." - dex_end + dex_text "When its huge eyes" + dex_line "light up, it sings" + dex_line "a mysteriously" + dex_line "soothing melody" + dex_line "that lulls its" + dex_line "enemies to sleep." + dex_end WigglytuffPokedexDescription: ; 0x2df6f - dex_text "The body is soft" - dex_line "and rubbery. When" - dex_line "angered, it will" - dex_line "suck in air and" - dex_line "inflate itself to" - dex_line "an enormous size." - dex_end + dex_text "The body is soft" + dex_line "and rubbery. When" + dex_line "angered, it will" + dex_line "suck in air and" + dex_line "inflate itself to" + dex_line "an enormous size." + dex_end EeveePokedexDescription: ; 0x2dfd7 - dex_text "Its genetic code" - dex_line "is irregular." - dex_line "It may mutate if" - dex_line "it is exposed to" - dex_line "radiation from" - dex_line "element STONEs." - dex_end + dex_text "Its genetic code" + dex_line "is irregular." + dex_line "It may mutate if" + dex_line "it is exposed to" + dex_line "radiation from" + dex_line "element STONEs." + dex_end FlareonPokedexDescription: ; 0x2e037 - dex_text "When storing" - dex_line "thermal energy in" - dex_line "its body, its" - dex_line "temperature could" - dex_line "soar to over 1600" - dex_line "degrees." - dex_end + dex_text "When storing" + dex_line "thermal energy in" + dex_line "its body, its" + dex_line "temperature could" + dex_line "soar to over 1600" + dex_line "degrees." + dex_end JolteonPokedexDescription: ; 0x2e091 - dex_text "It accumulates" - dex_line "negative ions in" - dex_line "the atmosphere to" - dex_line "blast out 10000-" - dex_line "volt lightning" - dex_line "bolts." - dex_end + dex_text "It accumulates" + dex_line "negative ions in" + dex_line "the atmosphere to" + dex_line "blast out 10000-" + dex_line "volt lightning" + dex_line "bolts." + dex_end VaporeonPokedexDescription: ; 0x2e0ea - dex_text "Lives close to" - dex_line "water. Its long" - dex_line "tail is ridged" - dex_line "with a fin which" - dex_line "is often mistaken" - dex_line "for a mermaid`s." - dex_end + dex_text "Lives close to" + dex_line "water. Its long" + dex_line "tail is ridged" + dex_line "with a fin which" + dex_line "is often mistaken" + dex_line "for a mermaid`s." + dex_end MachopPokedexDescription: ; 0x2e14c - dex_text "Loves to build" - dex_line "its muscles." - dex_line "It trains in all" - dex_line "styles of martial" - dex_line "arts to become" - dex_line "even stronger." - dex_end + dex_text "Loves to build" + dex_line "its muscles." + dex_line "It trains in all" + dex_line "styles of martial" + dex_line "arts to become" + dex_line "even stronger." + dex_end ZubatPokedexDescription: ; 0x2e1a9 - dex_text "Forms colonies in" - dex_line "perpetually dark" - dex_line "places. Uses" - dex_line "ultrasonic waves" - dex_line "to identify and" - dex_line "approach targets." - dex_end + dex_text "Forms colonies in" + dex_line "perpetually dark" + dex_line "places. Uses" + dex_line "ultrasonic waves" + dex_line "to identify and" + dex_line "approach targets." + dex_end EkansPokedexDescription: ; 0x2e20c - dex_text "Moves silently" - dex_line "and stealthily." - dex_line "Eats the eggs of" - dex_line "birds, such as" - dex_line "PIDGEY and" - dex_line "SPEAROW, whole." - dex_end + dex_text "Moves silently" + dex_line "and stealthily." + dex_line "Eats the eggs of" + dex_line "birds, such as" + dex_line "PIDGEY and" + dex_line "SPEAROW, whole." + dex_end ParasPokedexDescription: ; 0x2e266 - dex_text "Burrows to suck" - dex_line "tree roots. The" - dex_line "mushrooms on its" - dex_line "back grow by draw-" - dex_line "ing nutrients from" - dex_line "the bug host." - dex_end + dex_text "Burrows to suck" + dex_line "tree roots. The" + dex_line "mushrooms on its" + dex_line "back grow by draw-" + dex_line "ing nutrients from" + dex_line "the bug host." + dex_end PoliwhirlPokedexDescription: ; 0x2e2cb - dex_text "Capable of living" - dex_line "in or out of" - dex_line "water. When out" - dex_line "of water, it" - dex_line "sweats to keep" - dex_line "its body slimy." - dex_end + dex_text "Capable of living" + dex_line "in or out of" + dex_line "water. When out" + dex_line "of water, it" + dex_line "sweats to keep" + dex_line "its body slimy." + dex_end PoliwrathPokedexDescription: ; 0x2e326 - dex_text "An adept swimmer" - dex_line "at both the front" - dex_line "crawl and breast" - dex_line "stroke. Easily" - dex_line "overtakes the best" - dex_line "human swimmers." - dex_end + dex_text "An adept swimmer" + dex_line "at both the front" + dex_line "crawl and breast" + dex_line "stroke. Easily" + dex_line "overtakes the best" + dex_line "human swimmers." + dex_end WeedlePokedexDescription: ; 0x2e38c - dex_text "Often found in" - dex_line "forests, eating" - dex_line "leaves." - dex_line "It has a sharp" - dex_line "venomous stinger" - dex_line "on its head." - dex_end + dex_text "Often found in" + dex_line "forests, eating" + dex_line "leaves." + dex_line "It has a sharp" + dex_line "venomous stinger" + dex_line "on its head." + dex_end KakunaPokedexDescription: ; 0x2e3e0 - dex_text "Almost incapable" - dex_line "of moving, this" - dex_line "POKéMON can only" - dex_line "harden its shell" - dex_line "to protect itself" - dex_line "from predators." - dex_end + dex_text "Almost incapable" + dex_line "of moving, this" + dex_line "POKéMON can only" + dex_line "harden its shell" + dex_line "to protect itself" + dex_line "from predators." + dex_end BeedrillPokedexDescription: ; 0x2e445 - dex_text "Flies at high" - dex_line "speed and attacks" - dex_line "using its large" - dex_line "venomous stingers" - dex_line "on its forelegs" - dex_line "and tail." - dex_end + dex_text "Flies at high" + dex_line "speed and attacks" + dex_line "using its large" + dex_line "venomous stingers" + dex_line "on its forelegs" + dex_line "and tail." + dex_end DodrioPokedexDescription: ; 0x2e4a1 - dex_text "Uses its three" - dex_line "brains to execute" - dex_line "complex plans." - dex_line "While two heads" - dex_line "sleep, one head" - dex_line "stays awake." - dex_end + dex_text "Uses its three" + dex_line "brains to execute" + dex_line "complex plans." + dex_line "While two heads" + dex_line "sleep, one head" + dex_line "stays awake." + dex_end PrimeapePokedexDescription: ; 0x2e4fe - dex_text "Always furious" - dex_line "and tenacious to" - dex_line "boot. It will not" - dex_line "abandon chasing" - dex_line "its quarry until" - dex_line "it is caught." - dex_end + dex_text "Always furious" + dex_line "and tenacious to" + dex_line "boot. It will not" + dex_line "abandon chasing" + dex_line "its quarry until" + dex_line "it is caught." + dex_end DugtrioPokedexDescription: ; 0x2e55f - dex_text "A team of DIGLETT" - dex_line "triplets." - dex_line "It triggers huge" - dex_line "earthquakes by" - dex_line "burrowing 60 miles" - dex_line "underground." - dex_end + dex_text "A team of DIGLETT" + dex_line "triplets." + dex_line "It triggers huge" + dex_line "earthquakes by" + dex_line "burrowing 60 miles" + dex_line "underground." + dex_end VenomothPokedexDescription: ; 0x2e5bb - dex_text "The dust-like" - dex_line "scales covering" - dex_line "its wings are" - dex_line "color coded to" - dex_line "indicate the kinds" - dex_line "of poison it has." - dex_end + dex_text "The dust-like" + dex_line "scales covering" + dex_line "its wings are" + dex_line "color coded to" + dex_line "indicate the kinds" + dex_line "of poison it has." + dex_end DewgongPokedexDescription: ; 0x2e61b - dex_text "Stores thermal" - dex_line "energy in its" - dex_line "body. Swims at a" - dex_line "steady 8 knots" - dex_line "even in intensely" - dex_line "cold waters. " - dex_end + dex_text "Stores thermal" + dex_line "energy in its" + dex_line "body. Swims at a" + dex_line "steady 8 knots" + dex_line "even in intensely" + dex_line "cold waters. " + dex_end CaterpiePokedexDescription: ; 0x2e678 - dex_text "Its short feet" - dex_line "are tipped with" - dex_line "suction pads that" - dex_line "enable it to" - dex_line "tirelessly climb" - dex_line "slopes and walls." - dex_end + dex_text "Its short feet" + dex_line "are tipped with" + dex_line "suction pads that" + dex_line "enable it to" + dex_line "tirelessly climb" + dex_line "slopes and walls." + dex_end MetapodPokedexDescription: ; 0x2e6d9 - dex_text "This POKéMON is" - dex_line "vulnerable to" - dex_line "attack while its" - dex_line "shell is soft," - dex_line "exposing its weak" - dex_line "and tender body." - dex_end + dex_text "This POKéMON is" + dex_line "vulnerable to" + dex_line "attack while its" + dex_line "shell is soft," + dex_line "exposing its weak" + dex_line "and tender body." + dex_end ButterfreePokedexDescription: ; 0x2e73a - dex_text "In battle, it" - dex_line "flaps its wings" - dex_line "at high speed to" - dex_line "release highly" - dex_line "toxic dust into" - dex_line "the air." - dex_end + dex_text "In battle, it" + dex_line "flaps its wings" + dex_line "at high speed to" + dex_line "release highly" + dex_line "toxic dust into" + dex_line "the air." + dex_end MachampPokedexDescription: ; 0x2e791 - dex_text "Using its heavy" - dex_line "muscles, it throws" - dex_line "powerful punches" - dex_line "that can send the" - dex_line "victim clear over" - dex_line "the horizon. " - dex_end + dex_text "Using its heavy" + dex_line "muscles, it throws" + dex_line "powerful punches" + dex_line "that can send the" + dex_line "victim clear over" + dex_line "the horizon. " + dex_end GolduckPokedexDescription: ; 0x2e7f7 - dex_text "Often seen swim-" - dex_line "ming elegantly by" - dex_line "lake shores. It" - dex_line "is often mistaken" - dex_line "for the Japanese" - dex_line "monster, Kappa." - dex_end + dex_text "Often seen swim-" + dex_line "ming elegantly by" + dex_line "lake shores. It" + dex_line "is often mistaken" + dex_line "for the Japanese" + dex_line "monster, Kappa." + dex_end HypnoPokedexDescription: ; 0x2e85d - dex_text "When it locks eyes" - dex_line "with an enemy, it" - dex_line "will use a mix of" - dex_line "PSI moves such as" - dex_line "HYPNOSIS and" - dex_line "CONFUSION." - dex_end + dex_text "When it locks eyes" + dex_line "with an enemy, it" + dex_line "will use a mix of" + dex_line "PSI moves such as" + dex_line "HYPNOSIS and" + dex_line "CONFUSION." + dex_end GolbatPokedexDescription: ; 0x2e8be - dex_text "Once it strikes," - dex_line "it will not stop" - dex_line "draining energy" - dex_line "from the victim" - dex_line "even if it gets" - dex_line "too heavy to fly." - dex_end + dex_text "Once it strikes," + dex_line "it will not stop" + dex_line "draining energy" + dex_line "from the victim" + dex_line "even if it gets" + dex_line "too heavy to fly." + dex_end MewtwoPokedexDescription: ; 0x2e922 - dex_text "It was created by" - dex_line "a scientist after" - dex_line "years of horrific" - dex_line "gene splicing and" - dex_line "DNA engineering" - dex_line "experiments." - dex_end + dex_text "It was created by" + dex_line "a scientist after" + dex_line "years of horrific" + dex_line "gene splicing and" + dex_line "DNA engineering" + dex_line "experiments." + dex_end SnorlaxPokedexDescription: ; 0x2e987 - dex_text "Very lazy. Just" - dex_line "eats and sleeps." - dex_line "As its rotund" - dex_line "bulk builds, it" - dex_line "becomes steadily" - dex_line "more slothful." - dex_end + dex_text "Very lazy. Just" + dex_line "eats and sleeps." + dex_line "As its rotund" + dex_line "bulk builds, it" + dex_line "becomes steadily" + dex_line "more slothful." + dex_end MagikarpPokedexDescription: ; 0x2e9e6 - dex_text "In the distant" - dex_line "past, it was" - dex_line "somewhat stronger" - dex_line "than the horribly" - dex_line "weak descendants" - dex_line "that exist today." - dex_end + dex_text "In the distant" + dex_line "past, it was" + dex_line "somewhat stronger" + dex_line "than the horribly" + dex_line "weak descendants" + dex_line "that exist today." + dex_end MukPokedexDescription: ; 0x2ea49 - dex_text "Thickly covered" - dex_line "with a filthy," - dex_line "vile sludge. It" - dex_line "is so toxic, even" - dex_line "its footprints" - dex_line "contain poison." - dex_end + dex_text "Thickly covered" + dex_line "with a filthy," + dex_line "vile sludge. It" + dex_line "is so toxic, even" + dex_line "its footprints" + dex_line "contain poison." + dex_end KinglerPokedexDescription: ; 0x2eaa9 - dex_text "The large pincer" - dex_line "has 10000 hp of" - dex_line "crushing power." - dex_line "However, its huge" - dex_line "size makes it" - dex_line "unwieldy to use." - dex_end + dex_text "The large pincer" + dex_line "has 10000 hp of" + dex_line "crushing power." + dex_line "However, its huge" + dex_line "size makes it" + dex_line "unwieldy to use." + dex_end CloysterPokedexDescription: ; 0x2eb0b - dex_text "When attacked, it" - dex_line "launches its" - dex_line "horns in quick" - dex_line "volleys. Its" - dex_line "innards have" - dex_line "never been seen." - dex_end + dex_text "When attacked, it" + dex_line "launches its" + dex_line "horns in quick" + dex_line "volleys. Its" + dex_line "innards have" + dex_line "never been seen." + dex_end ElectrodePokedexDescription: ; 0x2eb64 - dex_text "It stores electric" - dex_line "energy under very" - dex_line "high pressure." - dex_line "It often explodes" - dex_line "with little or no" - dex_line "provocation." - dex_end + dex_text "It stores electric" + dex_line "energy under very" + dex_line "high pressure." + dex_line "It often explodes" + dex_line "with little or no" + dex_line "provocation." + dex_end ClefablePokedexDescription: ; 0x2ebc9 - dex_text "A timid fairy" - dex_line "POKéMON that is" - dex_line "rarely seen. It" - dex_line "will run and hide" - dex_line "the moment it" - dex_line "senses people." - dex_end + dex_text "A timid fairy" + dex_line "POKéMON that is" + dex_line "rarely seen. It" + dex_line "will run and hide" + dex_line "the moment it" + dex_line "senses people." + dex_end WeezingPokedexDescription: ; 0x2ec26 - dex_text "Where two kinds" - dex_line "of poison gases" - dex_line "meet, 2 KOFFINGs" - dex_line "can fuse into a" - dex_line "WEEZING over many" - dex_line "years." - dex_end + dex_text "Where two kinds" + dex_line "of poison gases" + dex_line "meet, 2 KOFFINGs" + dex_line "can fuse into a" + dex_line "WEEZING over many" + dex_line "years." + dex_end PersianPokedexDescription: ; 0x2ec80 - dex_text "Although its fur" - dex_line "has many admirers," - dex_line "it is tough to" - dex_line "raise as a pet" - dex_line "because of its" - dex_line "fickle meanness." - dex_end + dex_text "Although its fur" + dex_line "has many admirers," + dex_line "it is tough to" + dex_line "raise as a pet" + dex_line "because of its" + dex_line "fickle meanness." + dex_end MarowakPokedexDescription: ; 0x2ece2 - dex_text "The bone it holds" - dex_line "is its key weapon." - dex_line "It throws the" - dex_line "bone skillfully" - dex_line "like a boomerang" - dex_line "to KO targets." - dex_end + dex_text "The bone it holds" + dex_line "is its key weapon." + dex_line "It throws the" + dex_line "bone skillfully" + dex_line "like a boomerang" + dex_line "to KO targets." + dex_end HaunterPokedexDescription: ; 0x2ed45 - dex_text "Because of its" - dex_line "ability to slip" - dex_line "through block" - dex_line "walls, it is said" - dex_line "to be from an-" - dex_line "other dimension." - dex_end + dex_text "Because of its" + dex_line "ability to slip" + dex_line "through block" + dex_line "walls, it is said" + dex_line "to be from an-" + dex_line "other dimension." + dex_end AbraPokedexDescription: ; 0x2eda4 - dex_text "Using its ability" - dex_line "to read minds, it" - dex_line "will identify" - dex_line "impending danger" - dex_line "and TELEPORT to" - dex_line "safety." - dex_end + dex_text "Using its ability" + dex_line "to read minds, it" + dex_line "will identify" + dex_line "impending danger" + dex_line "and TELEPORT to" + dex_line "safety." + dex_end AlakazamPokedexDescription: ; 0x2edff - dex_text "Its brain can out-" - dex_line "perform a super-" - dex_line "computer." - dex_line "Its intelligence" - dex_line "quotient is said" - dex_line "to be 5,000." - dex_end + dex_text "Its brain can out-" + dex_line "perform a super-" + dex_line "computer." + dex_line "Its intelligence" + dex_line "quotient is said" + dex_line "to be 5,000." + dex_end PidgeottoPokedexDescription: ; 0x2ee5c - dex_text "Very protective" - dex_line "of its sprawling" - dex_line "territorial area," - dex_line "this POKéMON will" - dex_line "fiercely peck at" - dex_line "any intruder." - dex_end + dex_text "Very protective" + dex_line "of its sprawling" + dex_line "territorial area," + dex_line "this POKéMON will" + dex_line "fiercely peck at" + dex_line "any intruder." + dex_end PidgeotPokedexDescription: ; 0x2eec0 - dex_text "When hunting, it" - dex_line "skims the surface" - dex_line "of water at high" - dex_line "speed to pick off" - dex_line "unwary prey such" - dex_line "as MAGIKARP." - dex_end + dex_text "When hunting, it" + dex_line "skims the surface" + dex_line "of water at high" + dex_line "speed to pick off" + dex_line "unwary prey such" + dex_line "as MAGIKARP." + dex_end StarmiePokedexDescription: ; 0x2ef24 - dex_text "Its central core" - dex_line "glows with the" - dex_line "seven colors of" - dex_line "the rainbow. Some" - dex_line "people value the" - dex_line "core as a gem." - dex_end + dex_text "Its central core" + dex_line "glows with the" + dex_line "seven colors of" + dex_line "the rainbow. Some" + dex_line "people value the" + dex_line "core as a gem." + dex_end BulbasaurPokedexDescription: ; 0x2ef86 - dex_text "A strange seed was" - dex_line "planted on its" - dex_line "back at birth." - dex_line "The plant sprouts" - dex_line "and grows with" - dex_line "this POKéMON." - dex_end + dex_text "A strange seed was" + dex_line "planted on its" + dex_line "back at birth." + dex_line "The plant sprouts" + dex_line "and grows with" + dex_line "this POKéMON." + dex_end VenusaurPokedexDescription: ; 0x2efe6 - dex_text "The plant blooms" - dex_line "when it is" - dex_line "absorbing solar" - dex_line "energy. It stays" - dex_line "on the move to" - dex_line "seek sunlight." - dex_end + dex_text "The plant blooms" + dex_line "when it is" + dex_line "absorbing solar" + dex_line "energy. It stays" + dex_line "on the move to" + dex_line "seek sunlight." + dex_end TentacruelPokedexDescription: ; 0x2f041 - dex_text "The tentacles are" - dex_line "normally kept" - dex_line "short. On hunts," - dex_line "they are extended" - dex_line "to ensnare and" - dex_line "immobilize prey." - dex_end + dex_text "The tentacles are" + dex_line "normally kept" + dex_line "short. On hunts," + dex_line "they are extended" + dex_line "to ensnare and" + dex_line "immobilize prey." + dex_end GoldeenPokedexDescription: ; 0x2f0a4 - dex_text "Its tail fin" - dex_line "billows like an" - dex_line "elegant ballroom" - dex_line "dress, giving it" - dex_line "the nickname of" - dex_line "the Water Queen." - dex_end + dex_text "Its tail fin" + dex_line "billows like an" + dex_line "elegant ballroom" + dex_line "dress, giving it" + dex_line "the nickname of" + dex_line "the Water Queen." + dex_end SeakingPokedexDescription: ; 0x2f104 - dex_text "In the autumn" - dex_line "spawning season," - dex_line "they can be seen" - dex_line "swimming power-" - dex_line "fully up rivers" - dex_line "and creeks." - dex_end + dex_text "In the autumn" + dex_line "spawning season," + dex_line "they can be seen" + dex_line "swimming power-" + dex_line "fully up rivers" + dex_line "and creeks." + dex_end PonytaPokedexDescription: ; 0x2f160 - dex_text "Its hooves are 10" - dex_line "times harder than" - dex_line "diamonds. It can" - dex_line "trample anything" - dex_line "completely flat" - dex_line "in little time." - dex_end + dex_text "Its hooves are 10" + dex_line "times harder than" + dex_line "diamonds. It can" + dex_line "trample anything" + dex_line "completely flat" + dex_line "in little time." + dex_end RapidashPokedexDescription: ; 0x2f1c6 - dex_text "Very competitive," - dex_line "this POKéMON will" - dex_line "chase anything" - dex_line "that moves fast" - dex_line "in the hopes of" - dex_line "racing it." - dex_end + dex_text "Very competitive," + dex_line "this POKéMON will" + dex_line "chase anything" + dex_line "that moves fast" + dex_line "in the hopes of" + dex_line "racing it." + dex_end RattataPokedexDescription: ; 0x2f224 - dex_text "Bites anything" - dex_line "when it attacks." - dex_line "Small and very" - dex_line "quick, it is a" - dex_line "common sight in" - dex_line "many places." - dex_end + dex_text "Bites anything" + dex_line "when it attacks." + dex_line "Small and very" + dex_line "quick, it is a" + dex_line "common sight in" + dex_line "many places." + dex_end RaticatePokedexDescription: ; 0x2f27f - dex_text "It uses its whis-" - dex_line "kers to maintain" - dex_line "its balance." - dex_line "It apparently" - dex_line "slows down if" - dex_line "they are cut off." - dex_end + dex_text "It uses its whis-" + dex_line "kers to maintain" + dex_line "its balance." + dex_line "It apparently" + dex_line "slows down if" + dex_line "they are cut off." + dex_end NidorinoPokedexDescription: ; 0x2f2dd - dex_text "An aggressive" - dex_line "POKéMON that is" - dex_line "quick to attack." - dex_line "The horn on its" - dex_line "head secretes a" - dex_line "powerful venom." - dex_end + dex_text "An aggressive" + dex_line "POKéMON that is" + dex_line "quick to attack." + dex_line "The horn on its" + dex_line "head secretes a" + dex_line "powerful venom." + dex_end NidorinaPokedexDescription: ; 0x2f33c - dex_text "The female`s horn" - dex_line "develops slowly." - dex_line "Prefers physical" - dex_line "attacks such as" - dex_line "clawing and" - dex_line "biting." - dex_end + dex_text "The female`s horn" + dex_line "develops slowly." + dex_line "Prefers physical" + dex_line "attacks such as" + dex_line "clawing and" + dex_line "biting." + dex_end GeodudePokedexDescription: ; 0x2f394 - dex_text "Found in fields" - dex_line "and mountains." - dex_line "Mistaking them" - dex_line "for boulders," - dex_line "people often step" - dex_line "or trip on them." - dex_end + dex_text "Found in fields" + dex_line "and mountains." + dex_line "Mistaking them" + dex_line "for boulders," + dex_line "people often step" + dex_line "or trip on them." + dex_end PorygonPokedexDescription: ; 0x2f3f3 - dex_text "A POKéMON that" - dex_line "consists entirely" - dex_line "of programming" - dex_line "code. Capable of" - dex_line "moving freely in" - dex_line "cyberspace." - dex_end + dex_text "A POKéMON that" + dex_line "consists entirely" + dex_line "of programming" + dex_line "code. Capable of" + dex_line "moving freely in" + dex_line "cyberspace." + dex_end AerodactylPokedexDescription: ; 0x2f451 - dex_text "A ferocious, pre-" - dex_line "historic POKéMON" - dex_line "that goes for the" - dex_line "enemy`s throat" - dex_line "with its serrated" - dex_line "saw-like fangs." - dex_end + dex_text "A ferocious, pre-" + dex_line "historic POKéMON" + dex_line "that goes for the" + dex_line "enemy`s throat" + dex_line "with its serrated" + dex_line "saw-like fangs." + dex_end MagnemitePokedexDescription: ; 0x2f4b7 - dex_text "Uses anti-gravity" - dex_line "to stay suspended." - dex_line "Appears without" - dex_line "warning and uses" - dex_line "THUNDER WAVE and" - dex_line "similar moves." - dex_end + dex_text "Uses anti-gravity" + dex_line "to stay suspended." + dex_line "Appears without" + dex_line "warning and uses" + dex_line "THUNDER WAVE and" + dex_line "similar moves." + dex_end CharmanderPokedexDescription: ; 0x2f51d - dex_text "Obviously prefers" - dex_line "hot places. When" - dex_line "it rains, steam" - dex_line "is said to spout" - dex_line "from the tip of" - dex_line "its tail." - dex_end + dex_text "Obviously prefers" + dex_line "hot places. When" + dex_line "it rains, steam" + dex_line "is said to spout" + dex_line "from the tip of" + dex_line "its tail." + dex_end SquirtlePokedexDescription: ; 0x2f57b - dex_text "After birth, its" - dex_line "back swells and" - dex_line "hardens into a" - dex_line "shell. Powerfully" - dex_line "sprays foam from" - dex_line "its mouth." - dex_end + dex_text "After birth, its" + dex_line "back swells and" + dex_line "hardens into a" + dex_line "shell. Powerfully" + dex_line "sprays foam from" + dex_line "its mouth." + dex_end CharmeleonPokedexDescription: ; 0x2f5d9 - dex_text "When it swings" - dex_line "its burning tail," - dex_line "it elevates the" - dex_line "temperature to" - dex_line "unbearably high" - dex_line "levels." - dex_end + dex_text "When it swings" + dex_line "its burning tail," + dex_line "it elevates the" + dex_line "temperature to" + dex_line "unbearably high" + dex_line "levels." + dex_end WartortlePokedexDescription: ; 0x2f631 - dex_text "Often hides in" - dex_line "water to stalk" - dex_line "unwary prey. For" - dex_line "swimming fast, it" - dex_line "moves its ears to" - dex_line "maintain balance." - dex_end + dex_text "Often hides in" + dex_line "water to stalk" + dex_line "unwary prey. For" + dex_line "swimming fast, it" + dex_line "moves its ears to" + dex_line "maintain balance." + dex_end CharizardPokedexDescription: ; 0x2f696 - dex_text "Spits fire that" - dex_line "is hot enough to" - dex_line "melt boulders." - dex_line "Known to cause" - dex_line "forest fires" - dex_line "unintentionally." - dex_end + dex_text "Spits fire that" + dex_line "is hot enough to" + dex_line "melt boulders." + dex_line "Known to cause" + dex_line "forest fires" + dex_line "unintentionally." + dex_end OddishPokedexDescription: ; 0x2f6f3 - dex_text "During the day," - dex_line "it keeps its face" - dex_line "buried in the" - dex_line "ground. At night," - dex_line "it wanders around" - dex_line "sowing its seeds." - dex_end + dex_text "During the day," + dex_line "it keeps its face" + dex_line "buried in the" + dex_line "ground. At night," + dex_line "it wanders around" + dex_line "sowing its seeds." + dex_end GloomPokedexDescription: ; 0x2f759 - dex_text "The fluid that" - dex_line "oozes from its" - dex_line "mouth isn`t drool." - dex_line "It is a nectar" - dex_line "that is used to" - dex_line "attract prey." - dex_end + dex_text "The fluid that" + dex_line "oozes from its" + dex_line "mouth isn`t drool." + dex_line "It is a nectar" + dex_line "that is used to" + dex_line "attract prey." + dex_end VileplumePokedexDescription: ; 0x2f7b7 - dex_text "The larger its" - dex_line "petals, the more" - dex_line "toxic pollen it" - dex_line "contains. Its big" - dex_line "head is heavy and" - dex_line "hard to hold up." - dex_end + dex_text "The larger its" + dex_line "petals, the more" + dex_line "toxic pollen it" + dex_line "contains. Its big" + dex_line "head is heavy and" + dex_line "hard to hold up." + dex_end BellsproutPokedexDescription: ; 0x2f81c - dex_text "A carnivorous" - dex_line "POKéMON that traps" - dex_line "and eats bugs." - dex_line "It uses its root" - dex_line "feet to soak up" - dex_line "needed moisture." - dex_end + dex_text "A carnivorous" + dex_line "POKéMON that traps" + dex_line "and eats bugs." + dex_line "It uses its root" + dex_line "feet to soak up" + dex_line "needed moisture." + dex_end WeepinbellPokedexDescription: ; 0x2f87e - dex_text "It spits out" - dex_line "POISONPOWDER to" - dex_line "immobilize the" - dex_line "enemy and then" - dex_line "finishes it with" - dex_line "a spray of ACID." - dex_end + dex_text "It spits out" + dex_line "POISONPOWDER to" + dex_line "immobilize the" + dex_line "enemy and then" + dex_line "finishes it with" + dex_line "a spray of ACID." + dex_end VictreebellPokedexDescription: ; 0x2f8d8 - dex_text "Said to live in" - dex_line "huge colonies" - dex_line "deep in jungles," - dex_line "although no one" - dex_line "has ever returned" - dex_line "from there." - dex_end + dex_text "Said to live in" + dex_line "huge colonies" + dex_line "deep in jungles," + dex_line "although no one" + dex_line "has ever returned" + dex_line "from there." + dex_end SECTION "bankc", ROMX, BANK[$c] InitRedField: ; 0x30000 - ld a, [$d7c1] - and a - ret nz - xor a - ld hl, $d46f - ld [hld], a - ld [hld], a - ld [hld], a - ld [hld], a - ld [hld], a - ld [hl], a - ld [wNumPartyMons], a - ld [$d49b], a - ld [$d4c9], a - ld [wBallType], a - ld [$d4c8], a - ld hl, $d624 - ld [hli], a - ld [hli], a - ld [hli], a - ld [$d7ac], a - ld [$d7be], a - ld [wCurrentMap], a ; PALLET_TOWN - ld a, $1 - ld [$d49d], a - ld [$d482], a - ld a, $2 - ld [wRightAlleyCount], a - ld a, $3 - ld [$d49e], a - ld [$d610], a - ld [$d498], a - ld [$d499], a - ld a, $4 - ld [wStageCollisionState], a - ld [$d7ad], a - ld a, $80 - ld [wIndicatorStates], a - ld [wIndicatorStates + 3], a - ld a, $82 - ld [wIndicatorStates + 1], a - ld [$ff8a], a - ld a, Bank(Func_dbba) - ld hl, Func_dbba - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_16f95) - ld hl, Func_16f95 - call BankSwitch - ld a, $f - call SetSongBank - ld de, $0001 - call PlaySong - ret + ld a, [wd7c1] + and a + ret nz + xor a + ld hl, wScore + $5 + ld [hld], a + ld [hld], a + ld [hld], a + ld [hld], a + ld [hld], a + ld [hl], a + ld [wNumPartyMons], a + ld [wd49b], a + ld [wd4c9], a + ld [wBallType], a + ld [wd4c8], a + ld hl, wd624 + ld [hli], a + ld [hli], a + ld [hli], a + ld [wd7ac], a + ld [wd7be], a + ld [wCurrentMap], a ; PALLET_TOWN + ld a, $1 + ld [wd49d], a + ld [wd482], a + ld a, $2 + ld [wRightAlleyCount], a + ld a, $3 + ld [wd49e], a + ld [wd610], a + ld [wd498], a + ld [wd499], a + ld a, $4 + ld [wStageCollisionState], a + ld [wd7ad], a + ld a, $80 + ld [wIndicatorStates], a + ld [wIndicatorStates + 3], a + ld a, $82 + ld [wIndicatorStates + 1], a + callba Start20SecondSaverTimer + callba Func_16f95 + ld a, $f + call SetSongBank + ld de, $0001 + call PlaySong + ret StartBallRedField: ; 0x3007d - ld a, [$d496] - and a - jp nz, StartBallAfterBonusStageRedField - ld a, $0 - ld [wBallXPos], a - ld a, $a7 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $98 - ld [wBallYPos + 1], a - xor a - ld [$d549], a - ld [$d580], a - ld a, [$d7ad] - bit 7, a - jr z, .asm_300ae - ld a, [wStageCollisionState] - res 0, a - ld [$d7ad], a + ld a, [wd496] + and a + jp nz, StartBallAfterBonusStageRedField + ld a, $0 + ld [wBallXPos], a + ld a, $a7 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $98 + ld [wBallYPos + 1], a + xor a + ld [wd549], a + ld [wd580], a + ld a, [wd7ad] + bit 7, a + jr z, .asm_300ae + ld a, [wStageCollisionState] + res 0, a + ld [wd7ad], a .asm_300ae - ld a, [wStageCollisionState] - and $1 - ld [wStageCollisionState], a - ld a, [$d4c9] - and a - ret z - xor a - ld [$d4c9], a - xor a - ld [$d50b], a - ld [$d50c], a - ld [$d51d], a - ld [$d517], a - ld [$d51e], a - ld hl, $d50f - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [wLeftMapMoveCounter], a - ld [wRightMapMoveCounter], a - ld hl, $d5f9 - ld [hli], a - ld [hli], a - ld [hli], a - ld [wBallType], a - ld [$d611], a - ld [$d612], a - ld [$d628], a - ld [$d629], a - ld [$d62a], a - ld [$d62b], a - ld [$d62c], a - ld [$d62d], a - ld [$d62e], a - ld [$d613], a - inc a - ld [$d482], a - ld [$d4ef], a - ld [$d4f1], a - ld a, $3 - ld [$d610], a - ld [$ff8a], a - ld a, Bank(Func_16f95) - ld hl, Func_16f95 - call BankSwitch - ld a, $f - call SetSongBank - ld de, $0001 - call PlaySong - ret + ld a, [wStageCollisionState] + and $1 + ld [wStageCollisionState], a + ld a, [wd4c9] + and a + ret z + xor a + ld [wd4c9], a + xor a + ld [wd50b], a + ld [wd50c], a + ld [wd51d], a + ld [wd517], a + ld [wd51e], a + ld hl, wd50f + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [wLeftMapMoveCounter], a + ld [wRightMapMoveCounter], a + ld hl, wd5f9 + ld [hli], a + ld [hli], a + ld [hli], a + ld [wBallType], a + ld [wd611], a + ld [wd612], a + ld [wd628], a + ld [wd629], a + ld [wd62a], a + ld [wd62b], a + ld [wd62c], a + ld [wd62d], a + ld [wd62e], a + ld [wd613], a + inc a + ld [wd482], a + ld [wd4ef], a + ld [wd4f1], a + ld a, $3 + ld [wd610], a + callba Func_16f95 + ld a, $f + call SetSongBank + ld de, $0001 + call PlaySong + ret StartBallAfterBonusStageRedField: ; 0x30128 - ld a, $0 - ld [wBallXPos], a - ld a, $50 - ld [wBallXPos + 1], a - ld a, $0 - ld [wBallYPos], a - ld a, $16 - ld [wBallYPos + 1], a - xor a - ld [wBallYVelocity], a - ld [wBallYVelocity + 1], a - ld [wBallXVelocity], a - ld [wBallXVelocity + 1], a - ld [$d496], a - ld [$d7ab], a - ld [$d7be], a - ld a, [wBallTypeBackup] - ld [wBallType], a - ld a, $f - call SetSongBank - ld de, $0001 - call PlaySong - ret + ld a, $0 + ld [wBallXPos], a + ld a, $50 + ld [wBallXPos + 1], a + ld a, $0 + ld [wBallYPos], a + ld a, $16 + ld [wBallYPos + 1], a + xor a + ld [wBallYVelocity], a + ld [wBallYVelocity + 1], a + ld [wBallXVelocity], a + ld [wBallXVelocity + 1], a + ld [wd496], a + ld [wd7ab], a + ld [wd7be], a + ld a, [wBallTypeBackup] + ld [wBallType], a + ld a, $f + call SetSongBank + ld de, $0001 + call PlaySong + ret Func_30164: ; 0x30164 - ld a, [$d49b] - inc a - cp $b - jr z, .asm_30175 - ld [$d49b], a - ld a, $1 - ld [$d4ca], a - ret + ld a, [wd49b] + inc a + cp $b + jr z, .asm_30175 + ld [wd49b], a + ld a, $1 + ld [wd4ca], a + ret + .asm_30175 - ld bc, $34f4 - ld [$ff8a], a - ld a, Bank(Func_8588) - ld hl, Func_8588 - call BankSwitch - ld a, $2 - ld [$d4ca], a - ret + ld bc, TenMillionPoints + callba AddBigBCD6FromQueue + ld a, $2 + ld [wd4ca], a + ret Func_30188: ; 0x30188 - ld a, [$d5ca] - and a - ret nz - ld a, [$d4ca] - and a - ret z - cp $1 - jr nz, .asm_301a7 - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $2974 - call Func_32aa - jr .asm_301c9 + ld a, [wd5ca] + and a + ret nz + ld a, [wd4ca] + and a + ret z + cp $1 + jr nz, .asm_301a7 + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, ExtraBallText + call LoadTextHeader + jr .asm_301c9 + .asm_301a7 - ld bc, $1000 - ld de, $0000 - push bc - push de - call Func_30e8 - call Func_30db - ld hl, $d5d4 - ld de, $29a6 - call Func_32cc - pop de - pop bc - ld hl, $d5cc - ld de, $2986 - call Func_32aa + ld bc, $1000 + ld de, $0000 + push bc + push de + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5d4 + ld de, DigitsText1to9 + call Func_32cc + pop de + pop bc + ld hl, wd5cc + ld de, ExtraBallSpecialBonusText + call LoadTextHeader .asm_301c9 - xor a - ld [$d4ca], a - ret + xor a + ld [wd4ca], a + ret Func_301ce: ; 0x301ce - ld a, [wCurrentStage] - call CallInFollowingTable + ld a, [wCurrentStage] + call CallInFollowingTable PointerTable_301d4: ; 0x301d4 - dw Func_314ae - db Bank(Func_314ae), $00 - - dw Func_314ae - db Bank(Func_314ae), $00 - - dw Func_314ae - db Bank(Func_314ae), $00 - - dw Func_314ae - db Bank(Func_314ae), $00 - - dw Func_3161b - db Bank(Func_3161b), $00 - - dw Func_3161b - db Bank(Func_3161b), $00 + ; STAGE_RED_FIELD_TOP + padded_dab Func_314ae + ; STAGE_RED_FIELD_BOTTOM + padded_dab Func_314ae + padded_dab Func_314ae + padded_dab Func_314ae + ; STAGE_BLUE_FIELD_TOP + padded_dab Func_3161b + ; STAGE_BLUE_FIELD_BOTTOM + padded_dab Func_3161b StartMapMoveMode: ; 0x301ec - ld a, [wInSpecialMode] - and a - ret nz - ld a, $1 - ld [wInSpecialMode], a - ld a, $2 - ld [wSpecialMode], a - xor a - ld [$d54d], a - ld bc, $0030 ; 30 seconds - ld [$ff8a], a - ld a, Bank(StartTimer) - ld hl, StartTimer - call BankSwitch - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_3021b - ld a, [$d55a] - add $12 - call Func_30256 + ld a, [wInSpecialMode] + and a + ret nz + ld a, $1 + ld [wInSpecialMode], a + ld a, $2 + ld [wSpecialMode], a + xor a + ld [wd54d], a + ld bc, $0030 ; 30 seconds + callba StartTimer + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_3021b + ld a, [wd55a] + add $12 + call Func_30256 .asm_3021b - ld a, [wCurrentStage] - rst $18 ; calls JumpToFuncInTable + ld a, [wCurrentStage] + rst JumpTable ; calls JumpToFuncInTable CallTable_3021f: ; 0x3021f - ; STAGE_RED_FIELD_TOP - dw Func_311b4 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_311b4 - - dw Func_31324 - - dw Func_31324 - - ; STAGE_BLUE_FIELD_TOP - dw Func_31326 - - ; STAGE_BLUE_FIELD_BOTTOM - dw Func_31326 + ; STAGE_RED_FIELD_TOP + dw Func_311b4 + ; STAGE_RED_FIELD_BOTTOM + dw Func_311b4 + dw Func_31324 + dw Func_31324 + ; STAGE_BLUE_FIELD_TOP + dw Func_31326 + ; STAGE_BLUE_FIELD_BOTTOM + dw Func_31326 Func_3022b: ; 0x3022b - xor a - ld [$d5ca], a - call Func_30e8 - xor a - ld [wInSpecialMode], a - ld [wSpecialMode], a - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - ld a, [wCurrentStage] - rst $18 ; calls JumpToFuncInTable + xor a + ld [wd5ca], a + call Fillwc600WithBlackTile + xor a + ld [wInSpecialMode], a + ld [wSpecialMode], a + callba Func_86d2 + ld a, [wCurrentStage] + rst JumpTable ; calls JumpToFuncInTable CallTable_30247: ; 0x30247 - ; STAGE_RED_FIELD_TOP - dw Func_31234 - - ; STAGE_RED_FIELD_BOTTOM - dw Func_31234 - - dw Func_31325 - - dw Func_31325 - - ; STAGE_BLUE_FIELD_TOP - dw Func_313c3 - - ; STAGE_BLUE_FIELD_TOP - dw Func_313c3 - -INCBIN "baserom.gbc",$30253,$30253 - $30253 + ; STAGE_RED_FIELD_TOP + dw Func_31234 + ; STAGE_RED_FIELD_BOTTOM + dw Func_31234 + dw Func_31325 + dw Func_31325 + ; STAGE_BLUE_FIELD_TOP + dw Func_313c3 + ; STAGE_BLUE_FIELD_TOP + dw Func_313c3 Func_30253: ; 0x30253 - ld a, [wCurrentMap] - ; fall through + ld a, [wCurrentMap] + ; fall through Func_30256: ; 0x30256 - sla a - ld c, a - ld b, $0 - push bc - ld hl, PointerTable_3027a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $c - call Func_10aa - pop bc - ld a, [hGameBoyColorFlag] - and a - ret z - ld hl, PointerTable_30ceb - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld a, $c - call Func_10aa - ret + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + db $08, $9B, $4C, $A5, $4C, $AF, $4C, $B9, $4C, $C3, $4C, $CD, $4C, $D7, $4C, $E1, $4C + dr $3047b, $30ceb PointerTable_30ceb: ; 0x30ceb - dw Data_30d21 - dw Data_30d26 - dw Data_30d2b - dw Data_30d30 - dw Data_30d35 - dw Data_30d3a - dw Data_30d3f - dw Data_30d44 - dw Data_30d49 - dw Data_30d4e - dw Data_30d53 - dw Data_30d58 - dw Data_30d5d - dw Data_30d62 - dw Data_30d67 - dw Data_30d6c - dw Data_30d71 - dw Data_30d76 - dw Data_30d7b - dw Data_30d80 - dw Data_30d85 - dw Data_30d8a - dw Data_30d8f - dw Data_30d94 - dw Data_30d99 - dw Data_30d9e - dw Data_30da3 + 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 + db $02, $A8, $4D, $B1, $4D Data_30d26: ; 0x30d26 - db $02, $CD, $4D, $D6, $4D + db $02, $CD, $4D, $D6, $4D Data_30d2b: ; 0x30d2b - db $02, $F2, $4D, $FB, $4D + db $02, $F2, $4D, $FB, $4D Data_30d30: ; 0x30d30 - db $02, $17, $4E, $20, $4E + db $02, $17, $4E, $20, $4E Data_30d35: ; 0x30d35 - db $02, $3C, $4E, $45, $4E + db $02, $3C, $4E, $45, $4E Data_30d3a: ; 0x30d3a - db $02, $61, $4E, $6A, $4E + db $02, $61, $4E, $6A, $4E Data_30d3f: ; 0x30d3f - db $02, $86, $4E, $8F, $4E + db $02, $86, $4E, $8F, $4E Data_30d44: ; 0x30d44 - db $02, $AB, $4E, $B4, $4E + db $02, $AB, $4E, $B4, $4E Data_30d49: ; 0x30d49 - db $02, $D0, $4E, $D9, $4E + db $02, $D0, $4E, $D9, $4E Data_30d4e: ; 0x30d4e - db $02, $F5, $4E, $FE, $4E + db $02, $F5, $4E, $FE, $4E Data_30d53: ; 0x30d53 - db $02, $1A, $4F, $23, $4F + db $02, $1A, $4F, $23, $4F Data_30d58: ; 0x30d58 - db $02, $3F, $4F, $48, $4F + db $02, $3F, $4F, $48, $4F Data_30d5d: ; 0x30d5d - db $02, $64, $4F, $6D, $4F + db $02, $64, $4F, $6D, $4F Data_30d62: ; 0x30d62 - db $02, $89, $4F, $92, $4F + db $02, $89, $4F, $92, $4F Data_30d67: ; 0x30d67 - db $02, $AE, $4F, $B7, $4F + db $02, $AE, $4F, $B7, $4F Data_30d6c: ; 0x30d6c - db $02, $D3, $4F, $DC, $4F + db $02, $D3, $4F, $DC, $4F Data_30d71: ; 0x30d71 - db $02, $F8, $4F, $01, $50 + db $02, $F8, $4F, $01, $50 Data_30d76: ; 0x30d76 - db $02, $1D, $50, $26, $50 + db $02, $1D, $50, $26, $50 Data_30d7b: ; 0x30d7b - db $02, $42, $50, $4B, $50 + db $02, $42, $50, $4B, $50 Data_30d80: ; 0x30d80 - db $02, $67, $50, $70, $50 + db $02, $67, $50, $70, $50 Data_30d85: ; 0x30d85 - db $02, $8C, $50, $95, $50 + db $02, $8C, $50, $95, $50 Data_30d8a: ; 0x30d8a - db $02, $B1, $50, $BA, $50 + db $02, $B1, $50, $BA, $50 Data_30d8f: ; 0x30d8f - db $02, $D6, $50, $DF, $50 + db $02, $D6, $50, $DF, $50 Data_30d94: ; 0x30d94 - db $02, $FB, $50, $04, $51 + db $02, $FB, $50, $04, $51 Data_30d99: ; 0x30d99 - db $02, $20, $51, $29, $51 + db $02, $20, $51, $29, $51 Data_30d9e: ; 0x30d9e - db $02, $45, $51, $4E, $51 + db $02, $45, $51, $4E, $51 Data_30da3: ; 0x30da3 - db $02, $6A, $51, $73, $51 - -INCBIN "baserom.gbc",$30da8,$3118f - $30da8 + db $02, $6A, $51, $73, $51 + dr $30da8, $3118f Func_3118f: ; 0x3118f - push bc - call Func_30e8 - call Func_30db - ld a, [wCurrentMap] - sla a - ld c, a - ld b, $0 - ld hl, $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 + push bc + call Fillwc600WithBlackTile + call Func_30db + ld a, [wCurrentMap] + sla a + ld c, a + ld b, $0 + ld hl, Data_2ce3 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld hl, wd5d4 + call LoadTextHeader + pop de + ld hl, wd5cc + call LoadTextHeader + ret Func_311b4: ; 0x311b4 - ld a, [$d55a] - and a - jr nz, .asm_311ce - ld a, $80 - ld [wIndicatorStates], a - ld [wIndicatorStates + 2], a - xor a - ld [wIndicatorStates + 1], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 4], a - jr .asm_311e2 + ld a, [wd55a] + and a + jr nz, .asm_311ce + ld a, $80 + ld [wIndicatorStates], a + ld [wIndicatorStates + 2], a + xor a + ld [wIndicatorStates + 1], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 4], a + jr .asm_311e2 + .asm_311ce - ld a, $80 - ld [wIndicatorStates + 1], a - ld [wIndicatorStates + 3], a - xor a - ld [wIndicatorStates], a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 4], a - jr .asm_311e2 + ld a, $80 + ld [wIndicatorStates + 1], a + ld [wIndicatorStates + 3], a + xor a + ld [wIndicatorStates], a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 4], a + jr .asm_311e2 + .asm_311e2 - ld a, $2 - ld [$ff8a], a - ld a, Bank(Func_149d9) - ld hl, Func_149d9 - call BankSwitch - ld a, $5 - ld [$ff8a], a - ld a, Bank(Func_149d9) - ld hl, Func_149d9 - call BankSwitch - ld a, $6a - ld [$c7f0], a - ld a, $6b - ld [$c810], a - ld a, $66 - ld [$c7e3], a - ld a, $67 - ld [$c803], a - ld [$ff8a], a - ld a, Bank(Func_107b0) - ld hl, Func_107b0 - call BankSwitch - ld a, $4 - ld [$d7ad], a - ld de, $0003 - call PlaySong - ld a, [wCurrentStage] - bit 0, a - ret z - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call BankSwitch - ret + ld a, $2 + callba Func_149d9 + ld a, $5 + callba Func_149d9 + ld a, $6a + ld [wc7f0], a + ld a, $6b + ld [wc810], a + ld a, $66 + ld [wc7e3], a + ld a, $67 + ld [wc803], a + callba Func_107b0 + ld a, $4 + ld [wd7ad], a + ld de, $0003 + call PlaySong + ld a, [wCurrentStage] + bit 0, a + ret z + callba Func_14135 + ret Func_31234: ; 0x31234 - ld [$ff8a], a - ld a, Bank(Func_107a5) - ld hl, Func_107a5 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_107c2) - ld hl, Func_107c2 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_107c8) - ld hl, Func_107c8 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_107e9) - ld hl, Func_107e9 - call BankSwitch - ld a, [wCurrentStage] - bit 0, a - ret z - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_16425) - ld hl, Func_16425 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ret + callba Func_107a5 + callba Func_107c2 + callba Func_107c8 + callba Func_107e9 + ld a, [wCurrentStage] + bit 0, a + ret z + callba Func_14135 + callba Func_16425 + callba Func_30253 + ret Func_31281: ; 0x31282 - ld a, [$d4e2] - inc a - cp $6 - jr c, .asm_3129e - ld a, $ff - ld [$d4e3], a - ld [$d4e4], a - ld [$d4e5], a - ld [$d4e6], a - ld [$d4e7], a - ld [$d4e8], a - xor a + ld a, [wd4e2] + inc a + cp $6 + jr c, .asm_3129e + ld a, $ff + ld [wd4e3], a + ld [wd4e4], a + ld [wd4e5], a + ld [wd4e6], a + ld [wd4e7], a + ld [wd4e8], a + xor a .asm_3129e - ld [$d4e2], a - cp $3 - jr c, .asm_312b2 - cp $5 - jr c, .asm_312e7 - ld a, INDIGO_PLATEAU - ld [wCurrentMap], a - ld [$d4e8], a - ret + ld [wd4e2], a + cp $3 + jr c, .asm_312b2 + cp $5 + jr c, .asm_312e7 + ld a, INDIGO_PLATEAU + ld [wCurrentMap], a + ld [wd4e8], a + ret + .asm_312b2 - call GenRandom - and $7 - cp $7 - jr nc, .asm_312b2 - ld c, a - ld b, $0 - ld hl, $5319 - add hl, bc - ld c, [hl] - ld hl, $d4e3 - ld a, [$d4e2] - and a - jr z, .asm_312d4 - ld b, a + call GenRandom + and $7 + cp $7 + jr nc, .asm_312b2 + ld c, a + ld b, $0 + ld hl, Data_31319 + add hl, bc + ld c, [hl] + ld hl, wd4e3 + ld a, [wd4e2] + and a + jr z, .asm_312d4 + ld b, a .asm_312cd - ld a, [hli] - cp c - jr z, .asm_312b2 - dec b - jr nz, .asm_312cd + ld a, [hli] + cp c + jr z, .asm_312b2 + dec b + jr nz, .asm_312cd .asm_312d4 - ld a, c - ld [wCurrentMap], a - ld a, [$d4e2] - ld c, a - ld b, $0 - ld hl, $d4e3 - add hl, bc - ld a, [wCurrentMap] - ld [hl], a - ret + ld a, c + ld [wCurrentMap], a + ld a, [wd4e2] + ld c, a + ld b, $0 + ld hl, wd4e3 + add hl, bc + ld a, [wCurrentMap] + ld [hl], a + ret + .asm_312e7 - call GenRandom - and $3 - ld c, a - ld b, $0 - ld hl, $5320 - add hl, bc - ld c, [hl] - ld hl, $d4e6 - ld a, [$d4e2] - sub $3 - jr z, .asm_31306 - ld b, a + call GenRandom + and $3 + ld c, a + ld b, $0 + ld hl, Data_31320 + add hl, bc + ld c, [hl] + ld hl, wd4e6 + ld a, [wd4e2] + sub $3 + jr z, .asm_31306 + ld b, a .asm_312ff - ld a, [hli] - cp c - jr z, .asm_312e7 - dec b - jr nz, .asm_312ff + ld a, [hli] + cp c + jr z, .asm_312e7 + dec b + jr nz, .asm_312ff .asm_31306 - ld a, c - ld [wCurrentMap], a - ld a, [$d4e2] - ld c, a - ld b, $0 - ld hl, $d4e3 - add hl, bc - ld a, [wCurrentMap] - ld [hl], a - ret - -INCBIN "baserom.gbc",$31319,$31324 - $31319 + ld a, c + ld [wCurrentMap], a + ld a, [wd4e2] + ld c, a + ld b, $0 + ld hl, wd4e3 + add hl, bc + ld a, [wCurrentMap] + ld [hl], a + ret + +Data_31319: + dr $31319, $31320 + +Data_31320: + dr $31320, $31324 Func_31324: ; 0x31324 - ret + ret Func_31325: ; 0x31325 - ret - -INCBIN "baserom.gbc",$31326,$31326 - $31326 + ret Func_31326: ; 0x31326 - ld a, [$d55a] - and a - jr nz, .asm_3134c - ld a, $80 - ld [wIndicatorStates], a - ld [wIndicatorStates + 2], a - xor a - ld [wIndicatorStates + 1], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 4], a - ld a, $3 - ld [$ff8a], a - ld a, Bank(Func_1de4b) - ld hl, Func_1de4b - call BankSwitch - jr .asm_31382 + ld a, [wd55a] + and a + jr nz, .asm_3134c + ld a, $80 + ld [wIndicatorStates], a + ld [wIndicatorStates + 2], a + xor a + ld [wIndicatorStates + 1], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 4], a + ld a, $3 + callba Func_1de4b + jr .asm_31382 + .asm_3134c - ld a, $80 - ld [wIndicatorStates + 1], a - ld [wIndicatorStates + 3], a - xor a - ld [wIndicatorStates], a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 4], a - ld a, $1 - ld [$ff8a], a - ld a, Bank(Func_1de4b) - ld hl, Func_1de4b - call BankSwitch - ld a, $6 - ld [$ff8a], a - ld a, Bank(Func_1de4b) - ld hl, Func_1de4b - call BankSwitch - ld a, $7 ; TODO: this might be the bank of Func_1de6f - ld [$ff8a], a - ld a, Bank(Func_1de6f) - ld hl, Func_1de6f - call BankSwitch + ld a, $80 + ld [wIndicatorStates + 1], a + ld [wIndicatorStates + 3], a + xor a + ld [wIndicatorStates], a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 4], a + ld a, $1 + callba Func_1de4b + ld a, $6 + callba Func_1de4b + ld a, $7 + callba Func_1de6f .asm_31382 - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_3139d - ld a, $54 - ld [$c7e3], a - ld a, $55 - ld [$c803], a - ld a, $52 - ld [$c7f0], a - ld a, $53 - ld [$c810], a + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_3139d + ld a, $54 + ld [wc7e3], a + ld a, $55 + ld [wc803], a + ld a, $52 + ld [wc7f0], a + ld a, $53 + ld [wc810], a .asm_3139d - ld a, $1 - ld [$d644], a - ld [$ff8a], a - ld a, Bank(Func_1f2ed) - ld hl, Func_1f2ed - call BankSwitch - ld de, $0003 - call PlaySong - ld a, [wCurrentStage] - bit 0, a - ret z - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call BankSwitch - ret + ld a, $1 + ld [wd644], a + callba Func_1f2ed + ld de, $0003 + call PlaySong + ld a, [wCurrentStage] + bit 0, a + ret z + callba Func_1c2cb + ret Func_313c3: ; 0x313c3 - ld [$ff8a], a - ld a, Bank(Func_107a5) - ld hl, Func_107a5 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_107c2) - ld hl, Func_107c2 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_1f2ff) - ld hl, Func_1f2ff - call BankSwitch - ld a, $0 - ld [$d644], a - ld a, [wCurrentStage] - bit 0, a - ret z - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_1e8f6) - ld hl, Func_1e8f6 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ret + callba Func_107a5 + callba Func_107c2 + callba Func_1f2ff + ld a, $0 + ld [wd644], a + ld a, [wCurrentStage] + bit 0, a + ret z + callba Func_1c2cb + callba Func_1e8f6 + callba Func_30253 + ret Func_3140b: ; 0x3140b - ld a, [$d4e2] - inc a - cp $6 - jr c, .asm_31428 - ld a, $ff - ld [$d4e3], a - ld [$d4e4], a - ld [$d4e5], a - ld [$d4e6], a - ld [$d4e7], a - ld [$d4e8], a - xor a + ld a, [wd4e2] + inc a + cp $6 + jr c, .asm_31428 + ld a, $ff + ld [wd4e3], a + ld [wd4e4], a + ld [wd4e5], a + ld [wd4e6], a + ld [wd4e7], a + ld [wd4e8], a + xor a .asm_31428 - ld [$d4e2], a - cp $3 - jr c, .asm_3143c - cp $5 - jr c, .asm_31471 - ld a, INDIGO_PLATEAU - ld [wCurrentMap], a - ld [$d4e8], a - ret + ld [wd4e2], a + cp $3 + jr c, .asm_3143c + cp $5 + jr c, .asm_31471 + ld a, INDIGO_PLATEAU + ld [wCurrentMap], a + ld [wd4e8], a + ret + .asm_3143c - call GenRandom - and $7 - cp $7 - jr nc, .asm_3143c - ld c, a - ld b, $0 - ld hl, $54a3 - add hl, bc - ld c, [hl] - ld hl, $d4e3 - ld a, [$d4e2] - and a - jr z, .asm_3145e - ld b, a + call GenRandom + and $7 + cp $7 + jr nc, .asm_3143c + ld c, a + ld b, $0 + ld hl, Data_314a3 + add hl, bc + ld c, [hl] + ld hl, wd4e3 + ld a, [wd4e2] + and a + jr z, .asm_3145e + ld b, a .asm_31457 - ld a, [hli] - cp c - jr z, .asm_3143c - dec b - jr nz, .asm_31457 + ld a, [hli] + cp c + jr z, .asm_3143c + dec b + jr nz, .asm_31457 .asm_3145e - ld a, c - ld [wCurrentMap], a - ld a, [$d4e2] - ld c, a - ld b, $0 - ld hl, $d4e3 - add hl, bc - ld a, [wCurrentMap] - ld [hl], a - ret + ld a, c + ld [wCurrentMap], a + ld a, [wd4e2] + ld c, a + ld b, $0 + ld hl, wd4e3 + add hl, bc + ld a, [wCurrentMap] + ld [hl], a + ret + .asm_31471 - call GenRandom - and $3 - ld c, a - ld b, $0 - ld hl, $54aa - add hl, bc - ld c, [hl] - ld hl, $d4e6 - ld a, [$d4e2] - sub $3 - jr z, .asm_31490 - ld b, a + call GenRandom + and $3 + ld c, a + ld b, $0 + ld hl, Data_314aa + add hl, bc + ld c, [hl] + ld hl, wd4e6 + ld a, [wd4e2] + sub $3 + jr z, .asm_31490 + ld b, a .asm_31489 - ld a, [hli] - cp c - jr z, .asm_31471 - dec b - jr nz, .asm_31489 + ld a, [hli] + cp c + jr z, .asm_31471 + dec b + jr nz, .asm_31489 .asm_31490 - ld a, c - ld [wCurrentMap], a - ld a, [$d4e2] - ld c, a - ld b, $0 - ld hl, $d4e3 - add hl, bc - ld a, [wCurrentMap] - ld [hl], a - ret - -INCBIN "baserom.gbc",$314a3,$314ae - $314a3 + ld a, c + ld [wCurrentMap], a + ld a, [wd4e2] + ld c, a + ld b, $0 + ld hl, wd4e3 + add hl, bc + ld a, [wCurrentMap] + ld [hl], a + ret + +Data_314a3: + dr $314a3, $314aa + +Data_314aa: + dr $314aa, $314ae Func_314ae: ; 0x314ae - ld a, [$d57d] - and a - ld a, [$d54c] - jr z, .asm_314d0 - cp $1 - jp z, Func_31591 - cp $3 - jp z, Func_31591 - cp $2 - jp z, Func_315b3 - cp $5 - jp z, Func_315b3 - cp $d - jp z, Func_315d5 + ld a, [wd57d] + and a + ld a, [wd54c] + jr z, .asm_314d0 + cp $1 + jp z, Func_31591 + cp $3 + jp z, Func_31591 + cp $2 + jp z, Func_315b3 + cp $5 + jp z, Func_315b3 + cp $d + jp z, Func_315d5 .asm_314d0 - cp $0 - jr z, .asm_314d6 - scf - ret + cp $0 + jr z, .asm_314d6 + scf + ret + .asm_314d6 - call Func_3151f - ld a, [$d54d] - call CallInFollowingTable + call Func_3151f + ld a, [wd54d] + call CallInFollowingTable PointerTable_314df: ; 0xd13df - dw Func_314ef - db Bank(Func_314ef), $00 - - dw Func_314f1 - db Bank(Func_314f1), $00 - - dw Func_314f3 - db Bank(Func_314f3), $00 - - dw Func_31505 - db Bank(Func_31505), $00 + padded_dab Func_314ef + padded_dab Func_314f1 + padded_dab Func_314f3 + padded_dab Func_31505 Func_314ef: ; 0x314ef - scf - ret + scf + ret Func_314f1: ; 0x314f1 - scf - ret + scf + ret Func_314f3: ; 0x314f3 - ld [$ff8a], a - ld a, Bank(Func_3022b) - ld hl, Func_3022b - call BankSwitch - ld de, $0001 - call PlaySong - scf - ret + callba Func_3022b + ld de, $0001 + call PlaySong + scf + ret Func_31505: ; 0x31505 - ld a, [$d5ca] - and a - ret nz - call Func_30e8 - ld [$ff8a], a - ld a, Bank(Func_3022b) - ld hl, Func_3022b - call BankSwitch - ld de, $0001 - call PlaySong - scf - ret + ld a, [wd5ca] + and a + ret nz + call Fillwc600WithBlackTile + callba Func_3022b + ld de, $0001 + call PlaySong + scf + ret Func_3151f: ; 0x3151f - ld a, $50 - ld [$d4ef], a - ld [$d4f1], a - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $3 - ld [$d54d], a - xor a - ld [$d604], a - ld [wIndicatorStates], a - ld [wIndicatorStates + 1], a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 4], a - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_31577 - ld [$ff8a], a - ld a, Bank(Func_14135) - ld hl, Func_14135 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_16425) - ld hl, Func_16425 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch + ld a, $50 + ld [wd4ef], a + ld [wd4f1], a + callba Func_107f8 + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $3 + ld [wd54d], a + xor a + ld [wd604], a + ld [wIndicatorStates], a + ld [wIndicatorStates + 1], a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 4], a + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_31577 + callba Func_14135 + callba Func_16425 + callba Func_30253 .asm_31577 - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $2ca8 - call Func_32aa - ret + callba Func_86d2 + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, Data_2ca8 + call LoadTextHeader + ret Func_31591: ; 0x31591 - ld a, [$d55a] - and a - jr nz, .asm_315b1 - ld a, [wIndicatorStates] - and a - jr z, .asm_315b1 - xor a - ld [wIndicatorStates], a - ld [wIndicatorStates + 2], a - ld a, $80 - ld [wIndicatorStates + 4], a - ld a, $1 - ld [$d604], a - ld [$d54d], a + ld a, [wd55a] + and a + jr nz, .asm_315b1 + ld a, [wIndicatorStates] + and a + jr z, .asm_315b1 + xor a + ld [wIndicatorStates], a + ld [wIndicatorStates + 2], a + ld a, $80 + ld [wIndicatorStates + 4], a + ld a, $1 + ld [wd604], a + ld [wd54d], a .asm_315b1 - scf - ret + scf + ret Func_315b3: ; 0x315b3 - ld a, [$d55a] - and a - jr z, .asm_315d3 - ld a, [wIndicatorStates + 1] - and a - jr z, .asm_315d3 - xor a - ld [wIndicatorStates + 1], a - ld [wIndicatorStates + 3], a - ld a, $80 - ld [wIndicatorStates + 4], a - ld a, $1 - ld [$d604], a - ld [$d54d], a + ld a, [wd55a] + and a + jr z, .asm_315d3 + ld a, [wIndicatorStates + 1] + and a + jr z, .asm_315d3 + xor a + ld [wIndicatorStates + 1], a + ld [wIndicatorStates + 3], a + ld a, $80 + ld [wIndicatorStates + 4], a + ld a, $1 + ld [wd604], a + ld [wd54d], a .asm_315d3 - scf - ret + scf + ret Func_315d5: ; 0x315d5 - ld de, $0000 - call PlaySong - rst $10 - ld [$ff8a], a - ld a, Bank(Func_31281) - ld hl, Func_31281 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ld de, $2525 - call PlaySoundEffect - ld bc, $2cbf - ld [$ff8a], a - ld a, Bank(Func_3118f) - ld hl, Func_3118f - call BankSwitch + ld de, $0000 + call PlaySong + rst AdvanceFrame + callba Func_31281 + callba Func_30253 + lb de, $25, $25 + call PlaySoundEffect + ld bc, Data_2cbf + callba Func_3118f .asm_31603 - ld [$ff8a], a - ld a, Bank(Func_33e3) - ld hl, Func_33e3 - call BankSwitch - rst $10 - ld a, [$d5ca] - and a - jr nz, .asm_31603 - ld a, $2 - ld [$d54d], a - scf - ret + callba Func_33e3 + rst AdvanceFrame + ld a, [wd5ca] + and a + jr nz, .asm_31603 + ld a, $2 + ld [wd54d], a + scf + ret Func_3161b: ; 0x3161b - ld a, [$d57d] - and a - ld a, [$d54c] - jr z, .asm_3163d - cp $1 - jp z, Func_31708 - cp $f - jp z, Func_31708 - cp $2 - jp z, Func_3172a - cp $e - jp z, Func_3172a - cp $d - jp z, Func_3174c + ld a, [wd57d] + and a + ld a, [wd54c] + jr z, .asm_3163d + cp $1 + jp z, Func_31708 + cp $f + jp z, Func_31708 + cp $2 + jp z, Func_3172a + cp $e + jp z, Func_3172a + cp $d + jp z, Func_3174c .asm_3163d - cp $0 - jr z, .asm_31643 - scf - ret + cp $0 + jr z, .asm_31643 + scf + ret + .asm_31643 - call Func_3168c - ld a, [$d54d] - call CallInFollowingTable + call Func_3168c + ld a, [wd54d] + call CallInFollowingTable PointerTable_3164c: ; 0x3164c - dw Func_3165c - db Bank(Func_3165c), $00 - - dw Func_3165e - db Bank(Func_3165e), $00 - - dw Func_31660 - db Bank(Func_31660), $00 - - dw Func_31672 - db Bank(Func_31672), $00 + padded_dab Func_3165c + padded_dab Func_3165e + padded_dab Func_31660 + padded_dab Func_31672 Func_3165c: ; 0x3165c - scf - ret + scf + ret Func_3165e: ; 0x3165e - scf - ret + scf + ret Func_31660: ; 0x31660 - ld [$ff8a], a - ld a, Bank(Func_3022b) - ld hl, Func_3022b - call BankSwitch - ld de, $0001 - call PlaySong - scf - ret + callba Func_3022b + ld de, $0001 + call PlaySong + scf + ret Func_31672: ; 0x31672 - ld a, [$d5ca] - and a - ret nz - call Func_30e8 - ld [$ff8a], a - ld a, Bank(Func_3022b) - ld hl, Func_3022b - call BankSwitch - ld de, $0001 - call PlaySong - scf - ret + ld a, [wd5ca] + and a + ret nz + call Fillwc600WithBlackTile + callba Func_3022b + ld de, $0001 + call PlaySong + scf + ret Func_3168c: ; 0x3168c - ld a, $50 - ld [wLeftMapMoveDiglettAnimationCounter], a - ld [wRightMapMoveDiglettFrame], a - ld a, $3 - ld [$d645], a - ld a, $1 - ld [$d646], a - ld [$ff8a], a - ld a, Bank(Func_107f8) - ld hl, Func_107f8 - call BankSwitch - ld a, [$d57e] - and a - ret z - xor a - ld [$d57e], a - ld a, $3 - ld [$d54d], a - xor a - ld [$d604], a - ld [wIndicatorStates], a - ld [wIndicatorStates + 1], a - ld [wIndicatorStates + 2], a - ld [wIndicatorStates + 3], a - ld [wIndicatorStates + 4], a - ld a, [wCurrentStage] - bit 0, a - jr z, .asm_316ee - ld [$ff8a], a - ld a, Bank(Func_1c2cb) - ld hl, Func_1c2cb - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_1e8f6) - ld hl, Func_1e8f6 - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch + ld a, $50 + ld [wLeftMapMoveDiglettAnimationCounter], a + ld [wRightMapMoveDiglettFrame], a + ld a, $3 + ld [wd645], a + ld a, $1 + ld [wd646], a + callba Func_107f8 + ld a, [wd57e] + and a + ret z + xor a + ld [wd57e], a + ld a, $3 + ld [wd54d], a + xor a + ld [wd604], a + ld [wIndicatorStates], a + ld [wIndicatorStates + 1], a + ld [wIndicatorStates + 2], a + ld [wIndicatorStates + 3], a + ld [wIndicatorStates + 4], a + ld a, [wCurrentStage] + bit 0, a + jr z, .asm_316ee + callba Func_1c2cb + callba Func_1e8f6 + callba Func_30253 .asm_316ee - ld [$ff8a], a - ld a, Bank(Func_86d2) - ld hl, Func_86d2 - call BankSwitch - call Func_30e8 - call Func_30db - ld hl, $d5cc - ld de, $2ca8 - call Func_32aa - ret + callba Func_86d2 + call Fillwc600WithBlackTile + call Func_30db + ld hl, wd5cc + ld de, Data_2ca8 + call LoadTextHeader + ret Func_31708: ; 0x31708 - ld a, [$d55a] - and a - jr nz, .asm_31728 - ld a, [wIndicatorStates] - and a - jr z, .asm_31728 - xor a - ld [wIndicatorStates], a - ld [wIndicatorStates + 2], a - ld a, $80 - ld [wIndicatorStates + 4], a - ld a, $1 - ld [$d604], a - ld [$d54d], a + ld a, [wd55a] + and a + jr nz, .asm_31728 + ld a, [wIndicatorStates] + and a + jr z, .asm_31728 + xor a + ld [wIndicatorStates], a + ld [wIndicatorStates + 2], a + ld a, $80 + ld [wIndicatorStates + 4], a + ld a, $1 + ld [wd604], a + ld [wd54d], a .asm_31728 - scf - ret + scf + ret Func_3172a: ; 0x3172a - ld a, [$d55a] - and a - jr z, .asm_3174a - ld a, [wIndicatorStates + 1] - and a - jr z, .asm_3174a - xor a - ld [wIndicatorStates + 1], a - ld [wIndicatorStates + 3], a - ld a, $80 - ld [wIndicatorStates + 4], a - ld a, $1 - ld [$d604], a - ld [$d54d], a + ld a, [wd55a] + and a + jr z, .asm_3174a + ld a, [wIndicatorStates + 1] + and a + jr z, .asm_3174a + xor a + ld [wIndicatorStates + 1], a + ld [wIndicatorStates + 3], a + ld a, $80 + ld [wIndicatorStates + 4], a + ld a, $1 + ld [wd604], a + ld [wd54d], a .asm_3174a - scf - ret + scf + ret Func_3174c: ; 0x3174c - ld de, $0000 - call PlaySong - rst $10 - ld [$ff8a], a - ld a, Bank(Func_3140b) - ld hl, Func_3140b - call BankSwitch - ld [$ff8a], a - ld a, Bank(Func_30253) - ld hl, Func_30253 - call BankSwitch - ld de, $2525 - call PlaySoundEffect - ld bc, $2cbf - ld [$ff8a], a - ld a, Bank(Func_3118f) - ld hl, Func_3118f - call BankSwitch + ld de, $0000 + call PlaySong + rst AdvanceFrame + callba Func_3140b + callba Func_30253 + lb de, $25, $25 + call PlaySoundEffect + ld bc, Data_2cbf + callba Func_3118f .asm_3177a - ld [$ff8a], a - ld a, Bank(Func_33e3) - ld hl, Func_33e3 - call BankSwitch - rst $10 - ld a, [$d5ca] - and a - jr nz, .asm_3177a - ld a, $2 - ld [$d54d], a - scf - ret - -INCBIN "baserom.gbc",$31792,$34000 - $31792 - + callba Func_33e3 + rst AdvanceFrame + ld a, [wd5ca] + and a + jr nz, .asm_3177a + ld a, $2 + ld [wd54d], a + scf + ret SECTION "bankd", ROMX, BANK[$d] @@ -48266,2686 +37437,93 @@ SlotOnPic: ; 0x34000 SlotOffPic: ; 0x34180 INCBIN "gfx/billboard/slot/slot_off.2bpp" -INCBIN "baserom.gbc",$34300,$37f00 - $34300 +SECTION "bankd.2", ROMX [$7f00], BANK[$d] StageSeelBonusCollisionMasks: ; 0x37f00 - INCBIN "data/collision/masks/seel_bonus.masks" - + INCBIN "data/collision/masks/seel_bonus.masks" SECTION "banke", ROMX, BANK[$e] - -INCBIN "baserom.gbc",$38000,$3c000 - $38000 ; 0x38000 - +Data_38000: + db $89, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + +Data_38010: + db $89, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + +Data_38020: + db $51, $10, $00, $10, $00, $10, $00, $10, $00, $80, $00, $00, $00, $00, $00, $00 + +Data_38030: + db $a9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + dr $38040, $3809a ; 38040 + +Data_3809a: + db $00, $00, $00 + db $40, $40, $40 + db $90, $90, $90 + db $e4, $e4, $e4 + +Data_380a6: + db $59, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + dr $380b6, $38156 ; 380b6 + +Data_38156: + db $99, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + dr $38166, $39166 + +Data_39166: + db $99, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + dr $39176, $3a176 ; 39176 + +Data_3a176: + db $a1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + dr $3a186, $3a9e6 ; 3a186 + +Data_3a9e6: + db $79, $5d, $08, $00, $0b, $8c, $d0, $f4, $60, $00, $00, $00, $00, $00, $00, $00 +Data_3a9f6: + db $79, $52, $08, $00, $0b, $a9, $e7, $9f, $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0 +Data_3aa06: + db $79, $47, $08, $00, $0b, $c4, $d0, $16, $a5, $cb, $c9, $05, $d0, $10, $a2, $28 +Data_3aa16: + db $79, $3c, $08, $00, $0b, $f0, $12, $a5, $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9 +Data_3aa26: + db $79, $31, $08, $00, $0b, $0c, $a5, $ca, $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e +Data_3aa36: + db $79, $26, $08, $00, $0b, $39, $cd, $48, $0c, $d0, $34, $a5, $c9, $c9, $80, $d0 +Data_3aa46: + db $79, $1b, $08, $00, $0b, $ea, $ea, $ea, $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0 +Data_3aa56: + db $79, $10, $08, $00, $0b, $4c, $20, $08, $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea +Data_3aa66: + db $b9, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 +Data_3aa76: + db $b9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 SECTION "bankf", ROMX, BANK[$f] -Func_3c000: ; 0x3c000 - push hl - push de - push bc - push af - call Func_3cb1b - ld hl, $dd01 - ld de, $01af -.clearLoop - xor a - ld [hli], a - dec de - ld a, e - or d - jr nz, .clearLoop - ld hl, $ff24 - xor a - ld [hli], a - ld [hli], a - ld a, $80 - ld [hli], a - ld hl, $ff10 - ld e, $4 -.asm_3c022 - xor a - ld [hli], a - ld [hli], a - ld a, $8 - ld [hli], a - xor a - ld [hli], a - ld a, $80 - ld [hli], a - dec e - jr nz, .asm_3c022 - ld a, $8 - ld [$de9a], a - ld a, $77 - ld [$de98], a - call Func_3cb15 - pop af - pop bc - pop de - pop hl - ret - -Func_3c042: ; 0x3c042 - ld a, [de] - inc de - and $7 - ld [$deae], a - ld c, a - ld b, $0 - ld hl, WRAMPointerTable_3cc92 - add hl, bc - add hl, bc - ld c, [hl] - inc hl - ld b, [hl] - ld hl, $0002 - add hl, bc - res 0, [hl] - push de - xor a - ld hl, $0000 - add hl, bc - ld e, $32 -.loop - ld [hli], a - dec e - jr nz, .loop - ld hl, $0017 - add hl, bc - xor a - ld [hli], a - inc a - ld [hl], a - ld hl, $0028 - add hl, bc - ld [hl], a - pop de - ld hl, $0005 - add hl, bc - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hl], a - inc de - ld hl, $0000 - add hl, bc - ld a, [$de9b] - ld [hli], a - ld a, [$de9c] - ld [hl], a - ret - -INCBIN "baserom.gbc",$3c08b,$3c090 - $3c08b - -PlaySong_BankF: ; 0x3c090 - push de - call Func_3c000 - pop de - call Func_3cb1b - ld hl, $de9b - ld [hl], e - inc hl - ld [hl], d - ld hl, SongHeaderPointers0F - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - rlca - rlca - and $3 - inc a -.asm_3c0ac - push af - call Func_3c042 - call Func_3cadf - pop af - dec a - jr nz, .asm_3c0ac - call Func_3cb15 - ret - -INCBIN "baserom.gbc",$3c0bb,$3c0c0 - $3c0bb - -PlaySoundEffect_BankF: ; 0x3c0c0 - call Func_3cb1b - ld hl, $de9b - ld [hl], e - inc hl - ld [hl], d - ld hl, PointerTable_3e3ce - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - rlca - rlca - and $3 - inc a -.asm_3c0d7 - push af - call Func_3c042 - ld hl, $0002 - add hl, bc - set 3, [hl] - call Func_3cadf - pop af - dec a - jr nz, .asm_3c0d7 - call Func_3cb15 - ret - -INCBIN "baserom.gbc",$3c0ec,$3c0f0 - $3c0ec - -PlayCry_BankF: ; 0x3c0f0 -; Plays a Pokemon cry. -; Input: e = mon id - call Func_3cb1b - ld a, e - and a - ret z - dec e - ld d, $0 - ld hl, CryData - add hl, de - add hl, de - add hl, de - add hl, de - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] ; de = base cry id - inc hl - ld a, [hli] - ld [$dea8], a - ld a, [hli] - ld [$dea9], a ; dea8 = cry pitch - ld a, [hli] - ld [$deaa], a - ld a, [hl] - ld [$deab], a ; deaa = cry length - ld hl, $de9b - ld [hl], e - inc hl - ld [hl], d - ld hl, CryBasePointers - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - rlca - rlca - and $3 - inc a -.asm_3c12a - push af - call Func_3c042 - ld hl, $0002 - add hl, bc - set 5, [hl] - ld hl, $0003 - add hl, bc - set 4, [hl] - ld hl, $0026 - add hl, bc - ld a, [$dea8] - ld [hli], a - ld a, [$dea9] - ld [hl], a - ld a, [$de97] - and $3 - cp $3 - jr nc, .asm_3c15b - ld hl, $0017 - add hl, bc - ld a, [$deaa] - ld [hli], a - ld a, [$deab] - ld [hl], a -.asm_3c15b - call Func_3cadf - pop af - dec a - jr nz, .asm_3c12a - ld a, [$deac] - and a - jr nz, .asm_3c173 - ld a, [$de98] - ld [$deac], a - ld a, $77 - ld [$de98], a -.asm_3c173 - ld a, $1 - ld [$dead], a - call Func_3cb15 - ret - -INCBIN "baserom.gbc",$3c17c,$3c180 - $3c17c - -Func_3c180: ; 0x3c180 - ld a, [$dd00] - and a - ret z - xor a - ld [$de97], a - ld [$de99], a - ld bc, $dd01 -.asm_3c18f - ld hl, $0002 - add hl, bc - bit 0, [hl] - jp z, .asm_3c22d - ld hl, $0014 - add hl, bc - ld a, [hl] - cp $2 - jr c, .asm_3c1a4 - dec [hl] - jr .asm_3c1c1 -.asm_3c1a4 - ld hl, $001c - add hl, bc - ld a, [hl] - ld hl, $001b - add hl, bc - ld [hl], a - ld hl, $0025 - add hl, bc - ld a, [hl] - ld hl, $0024 - add hl, bc - ld [hl], a - ld hl, $0003 - add hl, bc - res 1, [hl] - call Func_3c670 -.asm_3c1c1 - ld hl, $000d - add hl, bc - ld a, [hli] - ld [$de91], a - ld a, [hli] - ld [$de92], a - ld a, [hli] - ld [$de93], a - ld a, [hl] - ld [$de94], a - call Func_3c4f0 - call Func_3c632 - ld a, [$dead] - and a - jr z, .asm_3c20a - ld a, [$de97] - cp $4 - jr nc, .asm_3c219 - ld hl, $ddcb - bit 0, [hl] - jr nz, .asm_3c204 - ld hl, $ddfd - bit 0, [hl] - jr nz, .asm_3c204 - ld hl, $de2f - bit 0, [hl] - jr nz, .asm_3c204 - ld hl, $de61 - bit 0, [hl] - jr z, .asm_3c20a -.asm_3c204 - ld hl, $000b - add hl, bc - set 5, [hl] -.asm_3c20a - ld a, [$de97] - cp $4 - jr nc, .asm_3c219 - ld hl, $00ca - add hl, bc - bit 0, [hl] - jr nz, .asm_3c227 -.asm_3c219 - call Func_3c24d - ld hl, $0019 - add hl, bc - ld a, [$de99] - or [hl] - ld [$de99], a -.asm_3c227 - ld hl, $000b - add hl, bc - xor a - ld [hl], a -.asm_3c22d - ld hl, $0032 - add hl, bc - ld c, l - ld b, h - ld a, [$de97] - inc a - ld [$de97], a - cp $8 - jp nz, .asm_3c18f - call Func_3c40d - ld a, [$de98] - ld [$ff24], a - ld a, [$de99] - ld [$ff25], a - ret - -Func_3c24d: ; 0x3c24d - ld hl, PointerTable_3c25e - ld a, [$de97] - and $7 - add a - ld e, a - ld d, $0 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -PointerTable_3c25e: ; 0x3c25e - dw Func_3c26e - dw Func_3c2e0 - dw Func_3c349 - dw Func_3c3cf - dw Func_3c26e - dw Func_3c2e0 - dw Func_3c349 - dw Func_3c3cf - -Func_3c26e: ; 0x3c26e - ld hl, $000b - add hl, bc - bit 3, [hl] - jr z, .asm_3c27b - ld a, [$de9a] - ld [$ff10], a -.asm_3c27b - bit 5, [hl] - jr nz, .asm_3c2ba - bit 4, [hl] - jr nz, .asm_3c2c6 - bit 6, [hl] - jr nz, .asm_3c2b4 - bit 1, [hl] - jr z, .asm_3c295 - ld a, [$de93] - ld [$ff13], a - ld a, [$de94] - ld [$ff14], a -.asm_3c295 - bit 2, [hl] - jr z, .asm_3c2a5 - ld a, [$de92] - ld [$ff12], a - ld a, [$de94] - or $80 - ld [$ff14], a -.asm_3c2a5 - bit 0, [hl] - ret z - ld a, [$de91] - ld d, a - ld a, [$ff11] - and $3f - or d - ld [$ff11], a - ret -.asm_3c2b4 - ld a, [$de93] - ld [$ff13], a - ret -.asm_3c2ba - ld a, $8 - ld [$ff12], a - ld a, [$de94] - or $80 - ld [$ff14], a - ret -.asm_3c2c6 - ld hl, $de91 - ld a, $3f - or [hl] - ld [$ff11], a - ld a, [$de92] - ld [$ff12], a - ld a, [$de93] - ld [$ff13], a - ld a, [$de94] - or $80 - ld [$ff14], a - ret - -Func_3c2e0: ; 0x3c2e0 - ld hl, $000b - add hl, bc - bit 5, [hl] - jr nz, .asm_3c323 - bit 4, [hl] - jr nz, .asm_3c32f - bit 6, [hl] - jr nz, .asm_3c31d - bit 1, [hl] - jr z, .asm_3c2fe - ld a, [$de93] - ld [$ff18], a - ld a, [$de94] - ld [$ff19], a -.asm_3c2fe - bit 2, [hl] - jr z, .asm_3c30e - ld a, [$de92] - ld [$ff17], a - ld a, [$de94] - or $80 - ld [$ff19], a -.asm_3c30e - bit 0, [hl] - ret z - ld a, [$de91] - ld d, a - ld a, [$ff16] - and $3f - or d - ld [$ff16], a - ret -.asm_3c31d - ld a, [$de93] - ld [$ff18], a - ret -.asm_3c323 - ld a, $8 - ld [$ff17], a - ld a, [$de94] - or $80 - ld [$ff19], a - ret -.asm_3c32f - ld hl, $de91 - ld a, $3f - or [hl] - ld [$ff16], a - ld a, [$de92] - ld [$ff17], a - ld a, [$de93] - ld [$ff18], a - ld a, [$de94] - or $80 - ld [$ff19], a - ret - -Func_3c349: ; 0x3c349 - ld hl, $000b - add hl, bc - bit 5, [hl] - jr nz, .asm_3c387 - bit 4, [hl] - jr nz, .asm_3c38b - bit 6, [hl] - jr nz, .asm_3c381 - bit 1, [hl] - jr z, .asm_3c367 - ld a, [$de93] - ld [$ff1d], a - ld a, [$de94] - ld [$ff1e], a -.asm_3c367 - bit 2, [hl] - ret z - xor a - ld [$ff1a], a - call LoadWavePattern - ld a, $80 - ld [$ff1a], a - ld a, [$de93] - ld [$ff1d], a - ld a, [$de94] - or $80 - ld [$ff1e], a - ret -.asm_3c381 - ld a, [$de93] - ld [$ff1d], a - ret -.asm_3c387 - xor a - ld [$ff1a], a - ret -.asm_3c38b - ld a, $3f - ld [$ff1b], a - xor a - ld [$ff1a], a - call LoadWavePattern - ld a, $80 - ld [$ff1a], a - ld a, [$de93] - ld [$ff1d], a - ld a, [$de94] - or $80 - ld [$ff1e], a - ret - -LoadWavePattern: ; 0x3c3a6 - push hl - ld a, [$de92] - and $f - ld l, a - ld h, $0 - add hl, hl - add hl, hl - add hl, hl - add hl, hl - ld de, WavePatterns_BankF - add hl, de - ld de, $ff30 - push bc - ld b, $10 -.loop - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .loop - pop bc - pop hl - ld a, [$de92] - and $f0 - sla a - ld [$ff1c], a ; set volume of wave channel - ret - -Func_3c3cf: ; 0x3c3cf - ld hl, $000b - add hl, bc - bit 5, [hl] - jr nz, .asm_3c3f1 - bit 4, [hl] - jr nz, .asm_3c3fa - bit 1, [hl] - jr z, .asm_3c3e4 - ld a, [$de93] - ld [$ff22], a -.asm_3c3e4 - bit 2, [hl] - ret z - ld a, [$de92] - ld [$ff21], a - ld a, $80 - ld [$ff23], a - ret -.asm_3c3f1 - ld a, $8 - ld [$ff21], a - ld a, $80 - ld [$ff23], a - ret -.asm_3c3fa - ld a, $3f - ld [$ff20], a - ld a, [$de92] - ld [$ff21], a - ld a, [$de93] - ld [$ff22], a - ld a, $80 - ld [$ff23], a - ret - -Func_3c40d: ; 0x3c40d - ld a, [$dea2] - and a - ret z - ld a, [$dea3] - and a - jr z, .asm_3c41d - dec a - ld [$dea3], a - ret -.asm_3c41d - ld a, [$dea2] - ld d, a - and $7f - ld [$dea3], a - ld a, [$de98] - and $7 - bit 7, d - jr nz, .asm_3c448 - and a - jr z, .asm_3c435 - dec a - jr .asm_3c454 -.asm_3c435 - ld a, [$dea4] - ld e, a - ld a, [$dea5] - ld d, a - push bc - call PlaySong_BankF - pop bc - ld hl, $dea2 - set 7, [hl] - ret -.asm_3c448 - cp $7 - jr nc, .asm_3c44f - inc a - jr .asm_3c454 -.asm_3c44f - xor a - ld [$dea2], a - ret -.asm_3c454 - ld d, a - swap a - or d - ld [$de98], a - ret - -Func_3c45c: ; 0x3c45c - ld hl, $0003 - add hl, bc - bit 1, [hl] - ret z - ld hl, $0014 - add hl, bc - ld a, [hl] - ld hl, $de95 - sub [hl] - jr nc, .asm_3c470 - ld a, $1 -.asm_3c470 - ld [hl], a - ld hl, $000f - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $001f - add hl, bc - ld a, e - sub [hl] - ld e, a - ld a, d - sbc $0 - ld d, a - ld hl, $0020 - add hl, bc - sub [hl] - jr nc, .asm_3c4ab - ld hl, $0004 - add hl, bc - set 1, [hl] - ld hl, $000f - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $001f - add hl, bc - ld a, [hl] - sub e - ld e, a - ld a, d - sbc $0 - ld d, a - ld hl, $0020 - add hl, bc - ld a, [hl] - sub d - ld d, a - jr .asm_3c4c9 -.asm_3c4ab - ld hl, $0004 - add hl, bc - res 1, [hl] - ld hl, $000f - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $001f - add hl, bc - ld a, e - sub [hl] - ld e, a - ld a, d - sbc $0 - ld d, a - ld hl, $0020 - add hl, bc - sub [hl] - ld d, a -.asm_3c4c9 - push bc - ld hl, $de95 - ld b, $0 -.asm_3c4cf - inc b - ld a, e - sub [hl] - ld e, a - jr nc, .asm_3c4cf - ld a, d - and a - jr z, .asm_3c4dc - dec d - jr .asm_3c4cf -.asm_3c4dc - ld a, e - add [hl] - ld d, b - pop bc - ld hl, $0021 - add hl, bc - ld [hl], d - ld hl, $0022 - add hl, bc - ld [hl], a - ld hl, $0023 - add hl, bc - xor a - ld [hl], a - - ; fall through - -Func_3c4f0: ; 0x3c4f0 - ld hl, $0003 - add hl, bc - bit 2, [hl] - jr z, .asm_3c50b - ld hl, $001a - add hl, bc - ld a, [hl] - rlca - rlca - ld [hl], a - and $c0 - ld [$de91], a - ld hl, $000b - add hl, bc - set 0, [hl] -.asm_3c50b - ld hl, $0003 - add hl, bc - bit 4, [hl] - jr z, .asm_3c529 - ld hl, $0026 - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $de93 - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - ld hl, $de93 - ld [hl], e - inc hl - ld [hl], d -.asm_3c529 - ld hl, $0003 - add hl, bc - bit 1, [hl] - jp z, .asm_3c5c1 - ld hl, $000f - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $0004 - add hl, bc - bit 1, [hl] - jr z, .asm_3c574 - ld hl, $0021 - add hl, bc - ld l, [hl] - ld h, $0 - add hl, de - ld d, h - ld e, l - ld hl, $0022 - add hl, bc - ld a, [hl] - ld hl, $0023 - add hl, bc - add [hl] - ld [hl], a - ld a, $0 - adc e - ld e, a - ld a, $0 - adc d - ld d, a - ld hl, $0020 - add hl, bc - ld a, [hl] - cp d - jp c, .asm_3c5a1 - jr nz, .asm_3c5b4 - ld hl, $001f - add hl, bc - ld a, [hl] - cp e - jp c, .asm_3c5a1 - jr .asm_3c5b4 -.asm_3c574 - ld a, e - ld hl, $0021 - add hl, bc - ld e, [hl] - sub e - ld e, a - ld a, d - sbc $0 - ld d, a - ld hl, $0022 - add hl, bc - ld a, [hl] - add a - ld [hl], a - ld a, e - sbc $0 - ld e, a - ld a, d - sbc $0 - ld d, a - ld hl, $0020 - add hl, bc - ld a, d - cp [hl] - jr c, .asm_3c5a1 - jr nz, .asm_3c5b4 - ld hl, $001f - add hl, bc - ld a, e - cp [hl] - jr nc, .asm_3c5b4 -.asm_3c5a1 - ld hl, $0003 - add hl, bc - res 1, [hl] - ld hl, $0004 - add hl, bc - res 1, [hl] - ld hl, $0020 - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] -.asm_3c5b4 - ld hl, $000f - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ld hl, $000b - add hl, bc - set 1, [hl] -.asm_3c5c1 - ld hl, $0003 - add hl, bc - bit 0, [hl] - jr z, .asm_3c61a - ld hl, $001b - add hl, bc - ld a, [hl] - and a - jr nz, .asm_3c5e3 - ld hl, $001d - add hl, bc - ld a, [hl] - and a - jr z, .asm_3c61a - ld d, a - ld hl, $001e - add hl, bc - ld a, [hl] - and $f - jr z, .asm_3c5e6 -.asm_3c5e3 - dec [hl] - jr .asm_3c61a -.asm_3c5e6 - ld a, [hl] - swap [hl] - or [hl] - ld [hl], a - ld a, [$de93] - ld e, a - ld hl, $0004 - add hl, bc - bit 0, [hl] - jr z, .asm_3c605 - res 0, [hl] - ld a, d - and $f - ld d, a - ld a, e - sub d - jr nc, .asm_3c611 - ld a, $0 - jr .asm_3c611 -.asm_3c605 - set 0, [hl] - ld a, d - and $f0 - swap a - add e - jr nc, .asm_3c611 - ld a, $ff -.asm_3c611 - ld [$de93], a - ld hl, $000b - add hl, bc - set 6, [hl] -.asm_3c61a - ld hl, $0003 - add hl, bc - bit 3, [hl] - ret z - ld hl, $0024 - add hl, bc - ld a, [hl] - and a - jr z, .asm_3c62b - dec [hl] - ret -.asm_3c62b - ld hl, $000b - add hl, bc - set 5, [hl] - ret - -Func_3c632: ; 0x3c632 - ld hl, $0002 - add hl, bc - bit 4, [hl] - ret z - ld a, [$de9f] - and a - jr z, .asm_3c644 - dec a - ld [$de9f], a - ret -.asm_3c644 - ld hl, $de9d - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - inc de - cp $ff - ret z - and $f - inc a - ld [$de9f], a - ld a, [de] - inc de - ld [$de92], a - ld a, [de] - inc de - ld [$de93], a - xor a - ld [$de94], a - ld hl, $de9d - ld [hl], e - inc hl - ld [hl], d - ld hl, $000b - add hl, bc - set 4, [hl] - ret - -Func_3c670: ; 0x3c670 - call Func_3ca10 - cp $ff - jr z, .asm_3c6c9 - cp $d0 - jr c, .asm_3c680 -.asm_3c67b - call Func_3c786 - jr Func_3c670 -.asm_3c680 - ld hl, $0002 - add hl, bc - bit 3, [hl] - jp nz, Func_3c723 - bit 5, [hl] - jp nz, Func_3c723 - bit 4, [hl] - jp nz, Func_3c750 - ld a, [$de96] - and $f - call Func_3ca5b - ld a, [$de96] - swap a - and $f - jr z, .asm_3c6c2 - ld hl, $0011 - add hl, bc - ld [hl], a - ld e, a - ld hl, $0012 - add hl, bc - ld d, [hl] - call Func_3ca2b - ld hl, $000f - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ld hl, $000b - add hl, bc - set 4, [hl] - jp Func_3c45c -.asm_3c6c2 - ld hl, $000b - add hl, bc - set 5, [hl] - ret -.asm_3c6c9 - ld hl, $0002 - add hl, bc - bit 1, [hl] - jr nz, .asm_3c67b - ld a, [$de97] - cp $4 - jr nc, .asm_3c6e0 - ld hl, $00ca - add hl, bc - bit 0, [hl] - jr nz, .asm_3c6f6 -.asm_3c6e0 - ld hl, $0002 - add hl, bc - bit 5, [hl] - call nz, Func_3c704 - ld a, [$de97] - cp $4 - jr nz, .asm_3c6f6 - xor a - ld [$ff10], a - ld [$de9a], a -.asm_3c6f6 - ld hl, $0002 - add hl, bc - res 0, [hl] - ld hl, $0000 - add hl, bc - xor a - ld [hli], a - ld [hli], a - ret - -Func_3c704: ; 0x3c704 - ld a, [$de97] - cp $4 - ret nz - xor a - ld hl, $de21 - ld [hli], a - ld [hl], a - ld hl, $de85 - ld [hli], a - ld [hl], a - ld a, [$deac] - ld [$de98], a - xor a - ld [$deac], a - ld [$dead], a - ret - -Func_3c723: ; 0x3c723 - ld hl, $000b - add hl, bc - set 4, [hl] - ld a, [$de96] - call Func_3ca5b - call Func_3ca10 - ld hl, $000e - add hl, bc - ld [hl], a - call Func_3ca10 - ld hl, $000f - add hl, bc - ld [hl], a - ld a, [$de97] - and $3 - cp $3 - ret z - call Func_3ca10 - ld hl, $0010 - add hl, bc - ld [hl], a - ret - -Func_3c750: ; 0x3c750 - ld a, [$de97] - cp $3 - ret nz - ld a, [$de96] - and $f - call Func_3ca5b - ld a, [$dea1] - ld e, a - ld d, $0 - ld hl, $4ba2 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$de96] - swap a - and $f - ret z - ld e, a - ld d, $0 - add hl, de - add hl, de - ld a, [hli] - ld [$de9d], a - ld a, [hl] - ld [$de9e], a - xor a - ld [$de9f], a - ret - -Func_3c786: ; 0x3c786 - ld a, [$de96] - sub $d0 - ld e, a - ld d, $0 - ld hl, PointerTable_3c797 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -PointerTable_3c797: ; 0x3c797 - dw Func_3c9b6 - dw Func_3c9b6 - dw Func_3c9b6 - dw Func_3c9b6 - dw Func_3c9b6 - dw Func_3c9b6 - dw Func_3c9b6 - dw Func_3c9b6 - dw Func_3c973 - dw Func_3c9c1 - dw Func_3c9aa - dw Func_3c994 - dw Func_3c9a1 - dw Func_3c987 - dw Func_3c939 - dw Func_3c951 - dw Func_3c8ff - dw Func_3c8c4 - dw Func_3c8b5 - dw Func_3c95f - dw Func_3c9ca - dw Func_3c9da - dw Func_3c926 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c9e9 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3ca05 - dw Func_3ca0b - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c7f7 - dw Func_3c885 - dw Func_3c88e - dw Func_3c833 - dw Func_3c843 - dw Func_3c80d - dw Func_3c7f8 - -Func_3c7f7: ; 0x3c7f7 - ret - -Func_3c7f8: ; 0x3c7f8 - ld hl, $0002 - add hl, bc - res 1, [hl] - ld hl, $0007 - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $0005 - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret - -Func_3c80d: ; 0x3c80d - call Func_3ca10 - ld e, a - call Func_3ca10 - ld d, a - push de - ld hl, $0005 - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $0007 - add hl, bc - ld [hl], e - inc hl - ld [hl], d - pop de - ld hl, $0005 - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ld hl, $0002 - add hl, bc - set 1, [hl] - ret - -Func_3c833: ; 0x3c833 - call Func_3ca10 - ld e, a - call Func_3ca10 - ld d, a - ld hl, $0005 - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret - -Func_3c843: ; 0x3c843 - call Func_3ca10 - ld hl, $0002 - add hl, bc - bit 2, [hl] - jr nz, .asm_3c859 - and a - jr z, .asm_3c862 - dec a - set 2, [hl] - ld hl, $0016 - add hl, bc - ld [hl], a -.asm_3c859 - ld hl, $0016 - add hl, bc - ld a, [hl] - and a - jr z, .asm_3c872 - dec [hl] -.asm_3c862 - call Func_3ca10 - ld e, a - call Func_3ca10 - ld d, a - ld hl, $0005 - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret -.asm_3c872 - ld hl, $0002 - add hl, bc - res 2, [hl] - ld hl, $0005 - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - inc de - inc de - ld [hl], d - dec hl - ld [hl], e - ret - -Func_3c885: ; 0x3c885 - call Func_3ca10 - ld hl, $000c - add hl, bc - ld [hl], a - ret - -Func_3c88e: ; 0x3c88e - call Func_3ca10 - ld hl, $000c - add hl, bc - cp [hl] - jr z, .asm_3c8a5 - ld hl, $0005 - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - inc de - inc de - ld [hl], d - dec hl - ld [hl], e - ret -.asm_3c8a5 - call Func_3ca10 - ld e, a - call Func_3ca10 - ld d, a - ld hl, $0005 - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret - -Func_3c8b5: ; 0x3c8b5 - call Func_3ca10 - ld hl, $0025 - add hl, bc - ld [hl], a - ld hl, $0003 - add hl, bc - set 3, [hl] - ret - -Func_3c8c4: ; 0x3c8c4 - ld hl, $0003 - add hl, bc - set 0, [hl] - ld hl, $0004 - add hl, bc - res 0, [hl] - call Func_3ca10 - ld hl, $001c - add hl, bc - ld [hl], a - ld hl, $001b - add hl, bc - ld [hl], a - call Func_3ca10 - ld hl, $001d - add hl, bc - ld d, a - and $f0 - swap a - srl a - ld e, a - adc $0 - swap a - or e - ld [hl], a - ld hl, $001e - add hl, bc - ld a, d - and $f - ld d, a - swap a - or d - ld [hl], a - ret - -Func_3c8ff: ; 0x3c8ff - call Func_3ca10 - ld [$de95], a - call Func_3ca10 - ld d, a - and $f - ld e, a - ld a, d - swap a - and $f - ld d, a - call Func_3ca2b - ld hl, $001f - add hl, bc - ld [hl], e - ld hl, $0020 - add hl, bc - ld [hl], d - ld hl, $0003 - add hl, bc - set 1, [hl] - ret - -Func_3c926: ; 0x3c926 - ld hl, $0003 - add hl, bc - set 4, [hl] - ld hl, $0027 - add hl, bc - call Func_3ca10 - ld [hld], a - call Func_3ca10 - ld [hl], a - ret - -Func_3c939: ; 0x3c939 - ld hl, $0003 - add hl, bc - set 2, [hl] - call Func_3ca10 - rrca - rrca - ld hl, $001a - add hl, bc - ld [hl], a - and $c0 - ld hl, $000d - add hl, bc - ld [hl], a - ret - -Func_3c951: ; 0x3c951 - ld hl, $0002 - add hl, bc - bit 3, [hl] - jr z, .asm_3c95c - res 3, [hl] - ret -.asm_3c95c - set 3, [hl] - ret - -Func_3c95f: ; 0x3c95f - ld hl, $0002 - add hl, bc - bit 4, [hl] - jr z, .asm_3c96a - res 4, [hl] - ret -.asm_3c96a - set 4, [hl] - call Func_3ca10 - ld [$dea1], a - ret - -Func_3c973: ; 0x3c973 - call Func_3ca10 - ld hl, $0028 - add hl, bc - ld [hl], a - ld a, [$de97] - and $3 - cp $3 - ret z - call Func_3c9a1 - ret - -Func_3c987: ; 0x3c987 - call Func_3ca10 - ld [$de9a], a - ld hl, $000b - add hl, bc - set 3, [hl] - ret - -Func_3c994: ; 0x3c994 - call Func_3ca10 - rrca - rrca - and $c0 - ld hl, $000d - add hl, bc - ld [hl], a - ret - -Func_3c9a1: ; 0x3c9a1 - call Func_3ca10 - ld hl, $000e - add hl, bc - ld [hl], a - ret - -Func_3c9aa: ; 0x3c9aa - call Func_3ca10 - ld d, a - call Func_3ca10 - ld e, a - call Func_3ca95 - ret - -Func_3c9b6: ; 0x3c9b6 - ld hl, $0012 - add hl, bc - ld a, [$de96] - and $7 - ld [hl], a - ret - -Func_3c9c1: ; 0x3c9c1 - call Func_3ca10 - ld hl, $0013 - add hl, bc - ld [hl], a - ret - -Func_3c9ca: ; 0x3c9ca - ld a, [$de97] - call Func_3caf4 - call Func_3ca10 - ld hl, $0019 - add hl, bc - and [hl] - ld [hl], a - ret - -Func_3c9da: ; 0x3c9da - call Func_3ca10 - ld a, [$dea2] - and a - ret nz - ld a, [$de96] - ld [$de98], a - ret - -Func_3c9e9: ; 0x3c9e9 - call Func_3ca10 - ld e, a - cp $80 - jr nc, .asm_3c9f5 - ld d, $0 - jr .asm_3c9f7 -.asm_3c9f5 - ld d, $ff -.asm_3c9f7 - ld hl, $0017 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - call Func_3ca95 - ret - -Func_3ca05: ; 0x3ca05 - ld a, $1 - ld [$dead], a - ret - -Func_3ca0b: ; 0x3ca0b - xor a - ld [$dead], a - ret - -Func_3ca10: ; 0x3ca10 - push hl - push de - ld hl, $0005 - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - ld [$de96], a - inc de - ld hl, $0005 - add hl, bc - ld [hl], e - inc hl - ld [hl], d - pop de - pop hl - ld a, [$de96] - ret - -Func_3ca2b: ; 0x3ca2b - ld hl, $0013 - add hl, bc - ld a, [hl] - swap a - and $f - add d - push af - ld hl, $0013 - add hl, bc - ld a, [hl] - and $f - ld l, a - ld d, $0 - ld h, d - add hl, de - add hl, hl - ld de, $4b20 ; todo - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - pop af -.asm_3ca4b - cp $7 - jr nc, .asm_3ca56 - sra d - rr e - inc a - jr .asm_3ca4b -.asm_3ca56 - ld a, d - and $7 - ld d, a - ret - -Func_3ca5b: ; 0x3ca5b - inc a - ld e, a - ld d, $0 - ld hl, $0028 - add hl, bc - ld a, [hl] - ld l, $0 - call Func_3ca86 - ld a, l - ld hl, $0017 - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $0015 - add hl, bc - ld l, [hl] - call Func_3ca86 - ld e, l - ld d, h - ld hl, $0015 - add hl, bc - ld [hl], e - ld hl, $0014 - add hl, bc - ld [hl], d - ret - -Func_3ca86: ; 0x3ca86 - ld h, $0 -.asm_3ca88 - srl a - jr nc, .asm_3ca8d - add hl, de -.asm_3ca8d - sla e - rl d - and a - jr nz, .asm_3ca88 - ret - -Func_3ca95: ; 0x3ca95 - push bc - ld a, [$de97] - cp $4 - jr nc, .asm_3cab7 - ld bc, $dd01 - call Func_3cad1 - ld bc, $dd33 - call Func_3cad1 - ld bc, $dd65 - call Func_3cad1 - ld bc, $dd97 - call Func_3cad1 - jr .asm_3cacf -.asm_3cab7 - ld bc, $ddc9 - call Func_3cad1 - ld bc, $ddfb - call Func_3cad1 - ld bc, $de2d - call Func_3cad1 - ld bc, $de5f - call Func_3cad1 -.asm_3cacf - pop bc - ret - -Func_3cad1: ; 0x3cad1 - ld hl, $0017 - add hl, bc - ld [hl], e - inc hl - ld [hl], d - xor a - ld hl, $0015 - add hl, bc - ld [hl], a - ret - -Func_3cadf: ; 0x3cadf - call Func_3cb06 - ld a, [$deae] - jr .asm_3caea - ld a, [$de97] -.asm_3caea - call Func_3caf4 - ld hl, $0002 - add hl, bc - set 0, [hl] - ret - -Func_3caf4: ; 0x3caf4 - push de - and $3 - ld e, a - ld d, $0 - ld hl, Data_3cc8e - add hl, de - ld a, [hl] - ld hl, $0019 - add hl, bc - ld [hl], a - pop de - ret - -Func_3cb06: ; 0x3cb06 - ld a, [$deae] - and $3 - cp $0 - ret nz - xor a - ld [$ff10], a - ld [$de9a], a - ret - -Func_3cb15: ; 0x3cb15 - ld a, $1 - ld [$dd00], a - ret - -Func_3cb1b: ; 0x3cb1b - xor a - ld [$dd00], a - ret - -INCBIN "baserom.gbc",$3cb20,$3cb52 - $3cb20 - -WavePatterns_BankF: -WavePattern0_BankF: ; 0x3cb52 - db $02, $46, $8A, $CE, $FF, $FE, $ED, $DC, $CB, $A9, $87, $65, $44, $33, $22, $11 -WavePattern1_BankF: ; 0x3cb62 - db $02, $46, $8A, $CE, $EF, $FF, $FE, $EE, $DD, $CB, $A9, $87, $65, $43, $22, $11 -WavePattern2_BankF: ; 0x3cb72 - db $01, $23, $43, $21, $FE, $CA, $8A, $CE, $01, $23, $43, $21, $FE, $CA, $8A, $CE -WavePattern3_BankF: ; 0x3cb82 - db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE -WavePattern4_BankF: ; 0x3cb92 - db $00, $11, $22, $33, $44, $33, $22, $11, $FF, $EE, $CC, $AA, $88, $AA, $CC, $EE - -INCBIN "baserom.gbc",$3cba2,$3cc8e - $3cba2 - -Data_3cc8e: ; 0x3cc8e - db $11, $22, $44, $88 - -WRAMPointerTable_3cc92: ; 0x3cc92 - dw $DD01 - dw $DD33 - dw $DD65 - dw $DD97 - -INCBIN "baserom.gbc",$3cc9a,$3cca2 - $3cc9a - -SongHeaderPointers0F: ; 0x3cca2 - dw Music_Nothing0F - dw Music_BlueField - dw Music_CatchEmRed - dw Music_HurryUpRed - dw Music_Pokedex - dw Music_GastlyInTheGraveyard - dw Music_HaunterInTheGraveyard - dw Music_GengarInTheGraveyard -; 0x3ccb2 - -INCLUDE "audio/music/nothing0f.asm" -INCLUDE "audio/music/bluefield.asm" -INCLUDE "audio/music/catchemred.asm" -INCLUDE "audio/music/pokedex.asm" -INCLUDE "audio/music/hurryupred.asm" -INCLUDE "audio/music/gastlyinthegraveyard.asm" -INCLUDE "audio/music/haunterinthegraveyard.asm" -INCLUDE "audio/music/gengarinthegraveyard.asm" - -PointerTable_3e3ce: ; 0x3e3ce - dw $646A - dw $6480 - dw $649A - dw $64BA - dw $64D0 - dw $64E0 - dw $64F0 - dw $6500 - dw $651A - dw $652E - dw $6544 - dw $6554 - dw $657C - dw $6589 - dw $659F - dw $65B5 - dw $65C5 - dw $65E2 - dw $65F4 - dw $6606 - dw $6618 - dw $662A - dw $663C - dw $664E - dw $6660 - dw $6672 - dw $6684 - dw $6696 - dw $66A8 - dw $66BA - dw $66CC - dw $66DE - dw $66F0 - dw $6702 - dw $671A - dw $675D - dw $6810 - dw $68AE - dw $696D - dw $6A25 - dw $6A68 - dw $6A82 - dw $6B17 - dw $6BF9 - dw $6C17 - dw $6C31 - dw $6C4B - dw $6C7D - dw $6C8F - dw $6CA7 - dw $6CB7 - dw $6CD1 - dw $6CE9 - dw $6CFF - dw $6D15 - dw $6D31 - dw $6D4D - dw $6D65 - dw $6D78 - dw $6D98 - dw $6DB0 - dw $6DC0 - dw $6DD0 - dw $6DE3 - dw $6DF3 - dw $6E1C - dw $6E32 - dw $6E48 - dw $6E5E - dw $6E78 - dw $6E92 - dw $6EAA - dw $6EC4 - dw $6ED4 - dw $6EEA - dw $6F00 - dw $6F16 - dw $6F27 - -INCBIN "baserom.gbc",$3e46a,$3ef63 - $3e46a - -CryBasePointers: ; 0x3ef63 - dw Cry_00_Header_BankF - dw Cry_01_Header_BankF - dw Cry_02_Header_BankF - dw Cry_03_Header_BankF - dw Cry_04_Header_BankF - dw Cry_05_Header_BankF - dw Cry_06_Header_BankF - dw Cry_07_Header_BankF - dw Cry_08_Header_BankF - dw Cry_09_Header_BankF - dw Cry_0A_Header_BankF - dw Cry_0B_Header_BankF - dw Cry_0C_Header_BankF - dw Cry_0D_Header_BankF - dw Cry_0E_Header_BankF - dw Cry_0F_Header_BankF - dw Cry_10_Header_BankF - dw Cry_11_Header_BankF - dw Cry_12_Header_BankF - dw Cry_13_Header_BankF - dw Cry_14_Header_BankF - dw Cry_15_Header_BankF - dw Cry_16_Header_BankF - dw Cry_17_Header_BankF - dw Cry_18_Header_BankF - dw Cry_19_Header_BankF - dw Cry_1A_Header_BankF - dw Cry_1B_Header_BankF - dw Cry_1C_Header_BankF - dw Cry_1D_Header_BankF - dw Cry_1E_Header_BankF - dw Cry_1F_Header_BankF - dw Cry_20_Header_BankF - dw Cry_21_Header_BankF - dw Cry_22_Header_BankF - dw Cry_23_Header_BankF - dw Cry_24_Header_BankF - dw Cry_25_Header_BankF - -CryData: ; 0x3efaf -; Each entry is in the following format: -; [base cry id], [pitch], [length - dw $000F, $0080, $0081 ; BULBASAUR - dw $000F, $0020, $0100 ; IVYSAUR - dw $000F, $0000, $0140 ; VENUSAUR - dw $0004, $0060, $00C0 ; CHARMANDER - dw $0004, $0020, $00C0 ; CHARMELEON - dw $0004, $0000, $0100 ; CHARIZARD - dw $001D, $0060, $00C0 ; SQUIRTLE - dw $001D, $0020, $00C0 ; WARTORTLE - dw $0013, $0000, $0100 ; BLASTOISE - dw $0016, $0080, $00A0 ; CATERPIE - dw $001C, $00CC, $0081 ; METAPOD - dw $0016, $0077, $00C0 ; BUTTERFREE - dw $0015, $00EE, $0081 ; WEEDLE - dw $0013, $00FF, $0081 ; KAKUNA - dw $0013, $0060, $0100 ; BEEDRILL - dw $000E, $00DF, $0084 ; PIDGEY - dw $0014, $0028, $0140 ; PIDGEOTTO - dw $0014, $0011, $017F ; PIDGEOT - dw $0022, $0000, $0100 ; RATTATA - dw $0022, $0020, $017F ; RATICATE - dw $0010, $0000, $0100 ; SPEAROW - dw $0018, $0040, $0120 ; FEAROW - dw $0017, $0012, $00C0 ; EKANS - dw $0017, $00E0, $0090 ; ARBOK - dw $000F, $00EE, $0081 ; PIKACHU - dw $0009, $00EE, $0088 ; RAICHU - dw $0000, $0020, $00C0 ; SANDSHREW - dw $0000, $00FF, $017F ; SANDSLASH - dw $0001, $0000, $0100 ; NIDORAN_F - dw $0001, $002C, $0160 ; NIDORINA - dw $000A, $0000, $0100 ; NIDOQUEEN - dw $0000, $0000, $0100 ; NIDORAN_M - dw $0000, $002C, $0140 ; NIDORINO - dw $0009, $0000, $0100 ; NIDOKING - dw $0019, $00CC, $0081 ; CLEFAIRY - dw $0019, $00AA, $00A0 ; CLEFABLE - dw $0024, $004F, $0090 ; VULPIX - dw $0024, $0088, $00E0 ; NINETALES - dw $000E, $00FF, $00B5 ; JIGGLYPUFF - dw $000E, $0068, $00E0 ; WIGGLYTUFF - dw $001D, $00E0, $0100 ; ZUBAT - dw $001D, $00FA, $0100 ; GOLBAT - dw $0008, $00DD, $0081 ; ODDISH - dw $0008, $00AA, $00C0 ; GLOOM - dw $0023, $0022, $017F ; VILEPLUME - dw $001E, $0020, $0160 ; PARAS - dw $001E, $0042, $017F ; PARASECT - dw $001A, $0044, $00C0 ; VENONAT - dw $001A, $0029, $0100 ; VENOMOTH - dw $000B, $00AA, $0081 ; DIGLETT - dw $000B, $002A, $0090 ; DUGTRIO - dw $0019, $0077, $0090 ; MEOWTH - dw $0019, $0099, $017F ; PERSIAN - dw $0021, $0020, $00E0 ; PSYDUCK - dw $0021, $00FF, $00C0 ; GOLDUCK - dw $000A, $00DD, $00E0 ; MANKEY - dw $000A, $00AF, $00C0 ; PRIMEAPE - dw $001F, $0020, $00C0 ; GROWLITHE - dw $0015, $0000, $0100 ; ARCANINE - dw $000E, $00FF, $017F ; POLIWAG - dw $000E, $0077, $00E0 ; POLIWHIRL - dw $000E, $0000, $017F ; POLIWRATH - dw $001C, $00C0, $0081 ; ABRA - dw $001C, $00A8, $0140 ; KADABRA - dw $001C, $0098, $017F ; ALAKAZAM - dw $001F, $00EE, $0081 ; MACHOP - dw $001F, $0048, $00E0 ; MACHOKE - dw $001F, $0008, $0140 ; MACHAMP - dw $0021, $0055, $0081 ; BELLSPROUT - dw $0025, $0044, $00A0 ; WEEPINBELL - dw $0025, $0066, $014C ; VICTREEBEL - dw $001A, $0000, $0100 ; TENTACOOL - dw $001A, $00EE, $017F ; TENTACRUEL - dw $0024, $00F0, $0090 ; GEODUDE - dw $0024, $0000, $0100 ; GRAVELER - dw $0012, $00E0, $00C0 ; GOLEM - dw $0025, $0000, $0100 ; PONYTA - dw $0025, $0020, $0140 ; RAPIDASH - dw $0002, $0000, $0100 ; SLOWPOKE - dw $001F, $0000, $0100 ; SLOWBRO - dw $001C, $0080, $00E0 ; MAGNEMITE - dw $001C, $0020, $0140 ; MAGNETON - dw $0010, $00DD, $0081 ; FARFETCH_D - dw $000B, $00BB, $0081 ; DODUO - dw $000B, $0099, $00A0 ; DODRIO - dw $000C, $0088, $0140 ; SEEL - dw $000C, $0023, $017F ; DEWGONG - dw $0005, $0000, $0100 ; GRIMER - dw $0007, $00EF, $017F ; MUK - dw $0018, $0000, $0100 ; SHELLDER - dw $0018, $006F, $0160 ; CLOYSTER - dw $001C, $0000, $0100 ; GASTLY - dw $001C, $0030, $00C0 ; HAUNTER - dw $0007, $0000, $017F ; GENGAR - dw $0017, $00FF, $0140 ; ONIX - dw $000D, $0088, $00A0 ; DROWZEE - dw $000D, $00EE, $00C0 ; HYPNO - dw $0020, $0020, $0160 ; KRABBY - dw $0020, $00EE, $0160 ; KINGLER - dw $0006, $00ED, $0100 ; VOLTORB - dw $0006, $00A8, $0110 ; ELECTRODE - dw $000B, $0000, $0100 ; EXEGGCUTE - dw $000D, $0000, $0100 ; EXEGGUTOR - dw $0019, $0000, $0100 ; CUBONE - dw $0008, $004F, $00E0 ; MAROWAK - dw $0012, $0080, $0140 ; HITMONLEE - dw $000C, $00EE, $0140 ; HITMONCHAN - dw $000C, $0000, $0100 ; LICKITUNG - dw $0012, $00E6, $015D ; KOFFING - dw $0012, $00FF, $017F ; WEEZING - dw $0004, $0000, $0100 ; RHYHORN - dw $0011, $0000, $0100 ; RHYDON - dw $0014, $000A, $0140 ; CHANSEY - dw $0012, $0000, $0100 ; TANGELA - dw $0003, $0000, $0100 ; KANGASKHAN - dw $0019, $0099, $0090 ; HORSEA - dw $0019, $003C, $0081 ; SEADRA - dw $0016, $0080, $00C0 ; GOLDEEN - dw $0016, $0010, $017F ; SEAKING - dw $001E, $0002, $00A0 ; STARYU - dw $001E, $0000, $0100 ; STARMIE - dw $0020, $0008, $00C0 ; MR_MIME - dw $0016, $0000, $0100 ; SCYTHER - dw $000D, $00FF, $017F ; JYNX - dw $0006, $008F, $017F ; ELECTABUZZ - dw $0004, $00FF, $00B0 ; MAGMAR - dw $0014, $0000, $0100 ; PINSIR - dw $001D, $0011, $00C0 ; TAUROS - dw $0017, $0080, $0080 ; MAGIKARP - dw $0017, $0000, $0100 ; GYARADOS - dw $001B, $0000, $0100 ; LAPRAS - dw $000E, $00FF, $017F ; DITTO - dw $001A, $0088, $00E0 ; EEVEE - dw $001A, $00AA, $017F ; VAPOREON - dw $001A, $003D, $0100 ; JOLTEON - dw $001A, $0010, $00A0 ; FLAREON - dw $0025, $00AA, $017F ; PORYGON - dw $001F, $00F0, $0081 ; OMANYTE - dw $001F, $00FF, $00C0 ; OMASTAR - dw $0016, $00BB, $00C0 ; KABUTO - dw $0018, $00EE, $0081 ; KABUTOPS - dw $0023, $0020, $0170 ; AERODACTYL - dw $0005, $0055, $0081 ; SNORLAX - dw $0009, $0080, $00C0 ; ARTICUNO - dw $0018, $00FF, $0100 ; ZAPDOS - dw $0009, $00F8, $00C0 ; MOLTRES - dw $000F, $0060, $00C0 ; DRATINI - dw $000F, $0040, $0100 ; DRAGONAIR - dw $000F, $003C, $0140 ; DRAGONITE - dw $001E, $0099, $017F ; MEWTWO - dw $001E, $00EE, $017F ; MEW - -Cry_00_Header_BankF: ; 0x3f339 - db $84 - dw $7733 - db $05 - dw $7742 - db $07 - dw $7751 - -Cry_01_Header_BankF: ; 0x3f342 - db $84 - dw $7943 - db $05 - dw $7956 - db $07 - dw $7969 - -Cry_02_Header_BankF: ; 0x3f34b - db $84 - dw $78B8 - db $05 - dw $78C7 - db $07 - dw $78D5 - -Cry_03_Header_BankF: ; 0x3f354 - db $84 - dw $7652 - db $05 - dw $7671 - db $07 - dw $7690 - -Cry_04_Header_BankF: ; 0x3f35d - db $84 - dw $7A01 - db $05 - dw $7A20 - db $07 - dw $7A3F - -Cry_05_Header_BankF: ; 0x3f366 - db $84 - dw $77E1 - db $05 - dw $77F4 - db $07 - dw $7806 - -Cry_06_Header_BankF: ; 0x3f36f - db $84 - dw $778B - db $05 - dw $77A5 - db $07 - dw $77A6 - -Cry_07_Header_BankF: ; 0x3f378 - db $84 - dw $77B9 - db $05 - dw $77C8 - db $07 - dw $77D7 - -Cry_08_Header_BankF: ; 0x3f381 - db $84 - dw $79D1 - db $05 - dw $79E4 - db $07 - dw $79F7 - -Cry_09_Header_BankF: ; 0x3f38a - db $84 - dw $74DB - db $05 - dw $74F8 - db $07 - dw $7519 - -Cry_0A_Header_BankF: ; 0x3f393 - db $84 - dw $7976 - db $05 - dw $7995 - db $07 - dw $79B8 - -Cry_0B_Header_BankF: ; 0x3f39c - db $84 - dw $7807 - db $05 - dw $7832 - db $07 - dw $7851 - -Cry_0C_Header_BankF: ; 0x3f3a5 - db $84 - dw $786A - db $05 - dw $7891 - db $07 - dw $78B7 - -Cry_0D_Header_BankF: ; 0x3f3ae - db $84 - dw $78D6 - db $05 - dw $78F5 - db $07 - dw $7924 - -Cry_0E_Header_BankF: ; 0x3f - db $84 - dw $775B - db $05 - dw $776E - db $07 - dw $7781 - -Cry_0F_Header_BankF: ; 0x3f - db $84 - dw $769D - db $05 - dw $76B8 - db $07 - dw $76D3 - -Cry_10_Header_BankF: ; 0x3f3b7 - db $84 - dw $76E3 - db $05 - dw $7706 - db $07 - dw $7729 - -Cry_11_Header_BankF: ; 0x3f3c0 - db $84 - dw $75BF - db $05 - dw $75DE - db $07 - dw $7601 - -Cry_12_Header_BankF: ; 0x3f3c9 - db $84 - dw $7AD7 - db $05 - dw $7AEA - db $07 - dw $7AFD - -Cry_13_Header_BankF: ; 0x3f3d2 - db $84 - dw $7B0A - db $05 - dw $7B25 - db $07 - dw $7B40 - -Cry_14_Header_BankF: ; 0x3f3db - db $84 - dw $7B53 - db $05 - dw $7B62 - db $07 - dw $7B71 - -Cry_15_Header_BankF: ; 0x3f3e4 - db $84 - dw $7BE1 - db $05 - dw $7BFC - db $07 - dw $7C17 - -Cry_16_Header_BankF: ; 0x3f3ed - db $84 - dw $7A74 - db $05 - dw $7A83 - db $07 - dw $7A92 - -Cry_17_Header_BankF: ; 0x3f3f6 - db $84 - dw $7C2A - db $05 - dw $7C3D - db $07 - dw $7C50 - -Cry_18_Header_BankF: ; 0x3f3ff - db $84 - dw $7D3A - db $05 - dw $7D5D - db $07 - dw $7D80 - -Cry_19_Header_BankF: ; 0x3f408 - db $84 - dw $7A52 - db $05 - dw $7A61 - db $07 - dw $7A73 - -Cry_1A_Header_BankF: ; 0x3f411 - db $84 - dw $7CAB - db $05 - dw $7CC6 - db $07 - dw $7CE1 - -Cry_1B_Header_BankF: ; 0x3f41a - db $84 - dw $7A9C - db $05 - dw $7AB3 - db $07 - dw $7ACA - -Cry_1C_Header_BankF: ; 0x3f423 - db $84 - dw $7C5D - db $05 - dw $7C80 - db $07 - dw $7C9B - -Cry_1D_Header_BankF: ; 0x3f42c - db $84 - dw $7CF4 - db $05 - dw $7D0F - db $07 - dw $7D2A - -Cry_1E_Header_BankF: ; 0x3f435 - db $84 - dw $7B7B - db $05 - dw $7B9E - db $07 - dw $7BC5 - -Cry_1F_Header_BankF: ; 0x3f43e - db $84 - dw $7D93 - db $05 - dw $7DA6 - db $07 - dw $7DB9 - -Cry_20_Header_BankF: ; 0x3f447 - db $84 - dw $7DC6 - db $05 - dw $7DD9 - db $07 - dw $7DEC - -Cry_21_Header_BankF: ; 0x3f450 - db $84 - dw $7DF9 - db $05 - dw $7E1C - db $07 - dw $7E3E - -Cry_22_Header_BankF: ; 0x3f459 - db $84 - dw $7E3F - db $05 - dw $7E52 - db $07 - dw $7E65 - -Cry_23_Header_BankF: ; 0x3f462 - db $84 - dw $7532 - db $05 - dw $7549 - db $07 - dw $755C - -Cry_24_Header_BankF: ; 0x3f46b - db $84 - dw $7569 - db $05 - dw $758C - db $07 - dw $75AF - -Cry_25_Header_BankF: ; 0x3f474 - db $84 - dw $7617 - db $05 - dw $762E - db $07 - dw $7645 - -INCBIN "baserom.gbc",$3f48f,$40000 - $3f48f - +INCLUDE "audio/engine_0f.asm" 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 - +INCLUDE "audio/engine_10.asm" 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 - +INCLUDE "audio/engine_11.asm" 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 - +INCLUDE "audio/engine_12.asm" 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 - +INCLUDE "audio/engine_13.asm" SECTION "bank14", ROMX, BANK[$14] -PlayPikachuSoundClip: ; 0x50000 -; Plays the pcm (pulse-code modulation) sound clip of one of the pikachu noises. - sla a - ld c, a - ld b, $0 - ld hl, PikachuSoundClipPointers - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push hl - di - ld b, $4 -.asm_50010 - ld a, [$ff44] - and a - jr nz, .asm_50010 - dec b - jr nz, .asm_50010 - xor a - ld [$ff24], a - ld [$ff25], a - ld a, $80 - ld [$ff26], a - xor a - ld [$ff1a], a - ld hl, $d84b - ld c, $30 - ld b, $10 -.asm_5002b - ld a, [$ff00+c] - ld [hli], a - ld a, $ff - ld [$ff00+c], a - inc c - dec b - jr nz, .asm_5002b - ld a, $80 - ld [$ff1a], a - ld a, $ff - ld [$ff1b], a - ld a, $20 - ld [$ff1c], a - ld a, $ff - ld [$ff1d], a - ld a, $87 - ld [$ff1e], a - ld a, $77 - ld [$ff24], a - ld a, $44 - ld [$ff25], a - pop hl - call PlayPikachuPCM - xor a - ld [$ff24], a - ld [$ff25], a - ld [$ff26], a - ld hl, $d84b - ld c, $30 - ld b, $10 -.asm_50062 - ld a, [hli] - ld [$ff00+c], a - inc c - dec b - jr nz, .asm_50062 - ld a, $77 - ld [$ff24], a - ld a, $ff - ld [$ff25], a - ld a, $80 - ld [$ff26], a - ei - ret - -PikachuSoundClipPointers: ; 0x50076 - dw PikachuBillboardBonusSoundClip - dw PikachuThundershockSoundClip - -PikachuBillboardBonusSoundClip: ; 0x5007a - dw $caf ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds) - INCBIN "audio/sound_clips/pi_ka_chu.pcm" - - db $1f ; unused - -PikachuThundershockSoundClip: ; 0x50d2c - dw $1227 ; length of the pcm data (todo: there is probably a way to do this dynamically with rgbds) - INCBIN "audio/sound_clips/piiiiikaaaa.pcm" - - db $f0, $00, $00 ; unused - -PlayPikachuPCM: ; 0x51f56 -; Plays the audio PCM at [hl] - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ; bc = number of bytes in the sound clip's PCM (pulse-code modulation) -.loop - ld a, [hli] - ld d, a - ld a, $3 -.playSingleSample - dec a - jr nz, .playSingleSample - call LoadNextSoundClipSample - call PlaySoundClipSample - call LoadNextSoundClipSample - call PlaySoundClipSample - call LoadNextSoundClipSample - call PlaySoundClipSample - call LoadNextSoundClipSample - call PlaySoundClipSample - call LoadNextSoundClipSample - call PlaySoundClipSample - call LoadNextSoundClipSample - call PlaySoundClipSample - call LoadNextSoundClipSample - call PlaySoundClipSample - call LoadNextSoundClipSample - dec bc - ld a, c - or b - jr nz, .loop - ret - -LoadNextSoundClipSample: ; 0x51f94 - ld a, d - and $80 - srl a - srl a - ld [$ff1c], a - sla d - ret - -PlaySoundClipSample: ; 0x51fa0 - ld a, $3 -.loop - dec a - jr nz, .loop - ret - -INCBIN "baserom.gbc",$51fa6,$54000 - $51fa6 - - -SECTION "bank15", ROMX, BANK[$15] - -INCBIN "baserom.gbc",$54000,$58000 - $54000 ; 0x54000 +INCLUDE "audio/pikapcm.asm" +; bank $15 is blank SECTION "bank16", ROMX, BANK[$16] @@ -51035,181 +37613,180 @@ GoToSeelBonusOffPic: ; 0x5bd80 INCBIN "gfx/billboard/bonus_stages/gotoseelbonus_off.2bpp" ChanseyBillboardBGPalette1: ; 0x5bf00 - RGB 31, 31, 31 - RGB 31, 15, 20 - RGB 27, 5, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 15, 20 + RGB 27, 5, 7 + RGB 0, 0, 0 ChanseyBillboardBGPalette2: ; 0x5bf08 - RGB 31, 31, 31 - RGB 31, 15, 20 - RGB 27, 5, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 15, 20 + RGB 27, 5, 7 + RGB 0, 0, 0 TangelaBillboardBGPalette1: ; 0x5bf10 - RGB 31, 31, 31 - RGB 15, 21, 29 - RGB 4, 8, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 21, 29 + RGB 4, 8, 18 + RGB 0, 0, 0 TangelaBillboardBGPalette2: ; 0x5bf18 - RGB 31, 31, 31 - RGB 15, 21, 29 - RGB 4, 8, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 21, 29 + RGB 4, 8, 18 + RGB 0, 0, 0 KangaskhanBillboardBGPalette1: ; 0x5bf20 - RGB 31, 31, 31 - RGB 31, 18, 9 - RGB 17, 10, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 9 + RGB 17, 10, 4 + RGB 0, 0, 0 KangaskhanBillboardBGPalette2: ; 0x5bf28 - RGB 31, 31, 31 - RGB 31, 18, 9 - RGB 17, 10, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 9 + RGB 17, 10, 4 + RGB 0, 0, 0 HorseaBillboardBGPalette1: ; 0x5bf30 - RGB 31, 31, 31 - RGB 12, 19, 31 - RGB 4, 7, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 12, 19, 31 + RGB 4, 7, 22 + RGB 0, 0, 0 HorseaBillboardBGPalette2: ; 0x5bf38 - RGB 31, 31, 31 - RGB 25, 26, 3 - RGB 4, 7, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 26, 3 + RGB 4, 7, 22 + RGB 0, 0, 0 SeadraBillboardBGPalette1: ; 0x5bf40 - RGB 31, 31, 31 - RGB 12, 19, 31 - RGB 4, 7, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 12, 19, 31 + RGB 4, 7, 22 + RGB 0, 0, 0 SeadraBillboardBGPalette2: ; 0x5bf48 - RGB 31, 31, 31 - RGB 12, 19, 31 - RGB 4, 7, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 12, 19, 31 + RGB 4, 7, 22 + RGB 0, 0, 0 GoldeenBillboardBGPalette1: ; 0x5bf50 - RGB 31, 31, 31 - RGB 30, 16, 4 - RGB 29, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 16, 4 + RGB 29, 3, 0 + RGB 0, 0, 0 GoldeenBillboardBGPalette2: ; 0x5bf58 - RGB 31, 31, 31 - RGB 30, 16, 4 - RGB 29, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 16, 4 + RGB 29, 3, 0 + RGB 0, 0, 0 SeakingBillboardBGPalette1: ; 0x5bf60 - RGB 31, 31, 31 - RGB 29, 17, 5 - RGB 31, 5, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 17, 5 + RGB 31, 5, 0 + RGB 0, 0, 0 SeakingBillboardBGPalette2: ; 0x5bf68 - RGB 31, 31, 31 - RGB 29, 17, 5 - RGB 31, 5, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 17, 5 + RGB 31, 5, 0 + RGB 0, 0, 0 StaryuBillboardBGPalette1: ; 0x5bf70 - RGB 31, 31, 31 - RGB 31, 20, 0 - RGB 19, 3, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 0 + RGB 19, 3, 6 + RGB 0, 0, 0 StaryuBillboardBGPalette2: ; 0x5bf78 - RGB 31, 31, 31 - RGB 31, 16, 8 - RGB 25, 3, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 8 + RGB 25, 3, 2 + RGB 0, 0, 0 StarmieBillboardBGPalette1: ; 0x5bf80 - RGB 31, 31, 31 - RGB 31, 17, 0 - RGB 15, 8, 16 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 0 + RGB 15, 8, 16 + RGB 0, 0, 0 StarmieBillboardBGPalette2: ; 0x5bf88 - RGB 31, 31, 31 - RGB 31, 16, 8 - RGB 25, 3, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 8 + RGB 25, 3, 2 + RGB 0, 0, 0 MrMimeBillboardBGPalette1: ; 0x5bf90 - RGB 31, 31, 31 - RGB 31, 17, 19 - RGB 28, 6, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 19 + RGB 28, 6, 4 + RGB 0, 0, 0 MrMimeBillboardBGPalette2: ; 0x5bf98 - RGB 31, 31, 31 - RGB 31, 17, 19 - RGB 28, 6, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 19 + RGB 28, 6, 4 + RGB 0, 0, 0 ScytherBillboardBGPalette1: ; 0x5bfa0 - RGB 31, 31, 31 - RGB 17, 31, 4 - RGB 4, 16, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 31, 4 + RGB 4, 16, 4 + RGB 0, 0, 0 ScytherBillboardBGPalette2: ; 0x5bfa8 - RGB 31, 31, 31 - RGB 17, 31, 4 - RGB 4, 16, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 31, 4 + RGB 4, 16, 4 + RGB 0, 0, 0 JynxBillboardBGPalette1: ; 0x5bfb0 - RGB 31, 31, 31 - RGB 29, 13, 15 - RGB 30, 6, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 13, 15 + RGB 30, 6, 1 + RGB 0, 0, 0 JynxBillboardBGPalette2: ; 0x5bfb8 - RGB 31, 31, 31 - RGB 31, 21, 0 - RGB 30, 6, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 21, 0 + RGB 30, 6, 1 + RGB 0, 0, 0 ElectabuzzBillboardBGPalette1: ; 0x5bfc0 - RGB 31, 31, 31 - RGB 31, 27, 0 - RGB 19, 11, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 0 + RGB 19, 11, 0 + RGB 0, 0, 0 ElectabuzzBillboardBGPalette2: ; 0x5bfc8 - RGB 31, 31, 31 - RGB 31, 27, 0 - RGB 19, 11, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 0 + RGB 19, 11, 0 + RGB 0, 0, 0 MagmarBillboardBGPalette1: ; 0x5bfd0 - RGB 31, 31, 31 - RGB 31, 27, 0 - RGB 28, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 0 + RGB 28, 6, 0 + RGB 0, 0, 0 MagmarBillboardBGPalette2: ; 0x5bfd8 - RGB 31, 31, 31 - RGB 31, 27, 0 - RGB 28, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 0 + RGB 28, 6, 0 + RGB 0, 0, 0 PinsirBillboardBGPalette1: ; 0x5bfe0 - RGB 31, 31, 31 - RGB 17, 23, 10 - RGB 21, 10, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 23, 10 + RGB 21, 10, 3 + RGB 0, 0, 0 PinsirBillboardBGPalette2: ; 0x5bfe8 - RGB 31, 31, 31 - RGB 31, 19, 8 - RGB 21, 10, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 19, 8 + RGB 21, 10, 3 + RGB 0, 0, 0 TaurosBillboardBGPalette1: ; 0x5bff0 - RGB 31, 31, 31 - RGB 31, 18, 7 - RGB 17, 9, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 7 + RGB 17, 9, 0 + RGB 0, 0, 0 TaurosBillboardBGPalette2: ; 0x5bff8 - RGB 31, 31, 31 - RGB 14, 16, 20 - RGB 17, 9, 0 - RGB 0, 0, 0 - + RGB 31, 31, 31 + RGB 14, 16, 20 + RGB 17, 9, 0 + RGB 0, 0, 0 SECTION "bank17", ROMX, BANK[$17] @@ -51287,8 +37864,7 @@ BigReward9000000PointsOffPic: ; 0x5f480 INCBIN "gfx/billboard/slot/9000000points_off.2bpp" MeowthBonusBaseGameBoyGfx: ; 0x5f600 - INCBIN "gfx/stage/meowth_bonus/meowth_bonus_base_gameboy.2bpp" - + INCBIN "gfx/stage/meowth_bonus/meowth_bonus_base_gameboy.2bpp" SECTION "bank18", ROMX, BANK[$18] @@ -51358,13 +37934,11 @@ KadabraSilhouettePic: ; 0x62e80 INCBIN "gfx/billboard/mon_silhouettes/kadabra.2bpp" StageRedFieldTopStatusBarSymbolsGfx_GameBoy: ; 0x63000 - INCBIN "gfx/stage/red_top/status_bar_symbols_gameboy.2bpp" - -INCBIN "baserom.gbc",$63100,$632a0 - $63100 + INCBIN "gfx/stage/red_top/status_bar_symbols_gameboy.2bpp" + dr $63100, $632a0 StageRedFieldTopBaseGameBoyGfx: ; 0x632a0 - INCBIN "gfx/stage/red_top/red_top_base_gameboy.2bpp" - + INCBIN "gfx/stage/red_top/red_top_base_gameboy.2bpp" SECTION "bank19", ROMX, BANK[$19] @@ -51434,8 +38008,7 @@ VenonatSilhouettePic: ; 0x66e80 INCBIN "gfx/billboard/mon_silhouettes/venonat.2bpp" StageBlueFieldBottomBaseGameBoyGfx: ; 0x67000 - INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboy.2bpp" - + INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboy.2bpp" SECTION "bank1a", ROMX, BANK[$1a] @@ -51505,13 +38078,11 @@ TaurosSilhouettePic: ; 0x6ae80 INCBIN "gfx/billboard/mon_silhouettes/tauros.2bpp" StageBlueFieldTopStatusBarSymbolsGfx_GameBoy: ; 0x6b000 - INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboy.2bpp" - -INCBIN "baserom.gbc",$6b100,$6b2a0 - $6b100 + INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboy.2bpp" + dr $6b100, $6b2a0 StageBlueFieldTopBaseGameBoyGfx: ; 0x6b2a0 - INCBIN "gfx/stage/blue_top/blue_top_base_gameboy.2bpp" - + INCBIN "gfx/stage/blue_top/blue_top_base_gameboy.2bpp" SECTION "bank1b", ROMX, BANK[$1b] @@ -51581,8 +38152,7 @@ ArticunoSilhouettePic: ; 0x6ee80 INCBIN "gfx/billboard/mon_silhouettes/articuno.2bpp" UnusedStageGfx: ; 0x6f000 - INCBIN "gfx/stage/unused_stage.2bpp" - + INCBIN "gfx/stage/unused_stage.2bpp" SECTION "bank1c", ROMX, BANK[$1c] @@ -51615,11 +38185,11 @@ MewPic: ; 0x71200 MewSilhouettePic: ; 0x71380 INCBIN "gfx/billboard/mon_silhouettes/mew.2bpp" -INCBIN "baserom.gbc",$71500,$73000 - $71500 +Data_71500: + dr $71500, $73000 GengarBonusBaseGameBoyGfx: ; 0x73000 - INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboy.2bpp" - + INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboy.2bpp" SECTION "bank1d", ROMX, BANK[$1d] @@ -51689,8 +38259,7 @@ Nidoran_MSilhouettePic: ; 0x76e80 INCBIN "gfx/billboard/mon_silhouettes/nidoran_m.2bpp" StageRedFieldBottomBaseGameBoyGfx: ; 0x77000 - INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboy.2bpp" - + INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboy.2bpp" SECTION "bank1e", ROMX, BANK[$1e] @@ -51781,181 +38350,180 @@ BonusMultiplierX5OffPic: ; 0x7bd80 INCBIN "gfx/billboard/slot/bonusmultiplierX5_off.2bpp" MagikarpBillboardBGPalette1: ; 0x7bf00 - RGB 31, 31, 31 - RGB 29, 28, 4 - RGB 31, 7, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 28, 4 + RGB 31, 7, 0 + RGB 0, 0, 0 MagikarpBillboardBGPalette2: ; 0x7bf08 - RGB 31, 31, 31 - RGB 31, 14, 12 - RGB 31, 7, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 14, 12 + RGB 31, 7, 0 + RGB 0, 0, 0 GyaradosBillboardBGPalette1: ; 0x7bf10 - RGB 31, 31, 31 - RGB 12, 18, 31 - RGB 3, 9, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 12, 18, 31 + RGB 3, 9, 14 + RGB 0, 0, 0 GyaradosBillboardBGPalette2: ; 0x7bf18 - RGB 31, 31, 31 - RGB 31, 14, 16 - RGB 15, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 14, 16 + RGB 15, 3, 0 + RGB 0, 0, 0 LaprasBillboardBGPalette1: ; 0x7bf20 - RGB 31, 31, 31 - RGB 12, 19, 31 - RGB 5, 8, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 12, 19, 31 + RGB 5, 8, 19 + RGB 0, 0, 0 LaprasBillboardBGPalette2: ; 0x7bf28 - RGB 31, 31, 31 - RGB 12, 19, 31 - RGB 5, 8, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 12, 19, 31 + RGB 5, 8, 19 + RGB 0, 0, 0 DittoBillboardBGPalette1: ; 0x7bf30 - RGB 31, 31, 31 - RGB 26, 9, 21 - RGB 15, 2, 10 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 9, 21 + RGB 15, 2, 10 + RGB 0, 0, 0 DittoBillboardBGPalette2: ; 0x7bf38 - RGB 31, 31, 31 - RGB 26, 9, 21 - RGB 15, 2, 10 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 9, 21 + RGB 15, 2, 10 + RGB 0, 0, 0 EeveeBillboardBGPalette1: ; 0x7bf40 - RGB 31, 31, 31 - RGB 25, 16, 4 - RGB 12, 7, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 16, 4 + RGB 12, 7, 0 + RGB 0, 0, 0 EeveeBillboardBGPalette2: ; 0x7bf48 - RGB 31, 31, 31 - RGB 25, 16, 4 - RGB 12, 7, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 16, 4 + RGB 12, 7, 0 + RGB 0, 0, 0 VaporeonBillboardBGPalette1: ; 0x7bf50 - RGB 31, 31, 31 - RGB 10, 18, 29 - RGB 4, 6, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 10, 18, 29 + RGB 4, 6, 14 + RGB 0, 0, 0 VaporeonBillboardBGPalette2: ; 0x7bf58 - RGB 31, 31, 31 - RGB 31, 28, 7 - RGB 4, 6, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 28, 7 + RGB 4, 6, 14 + RGB 0, 0, 0 JolteonBillboardBGPalette1: ; 0x7bf60 - RGB 31, 31, 31 - RGB 31, 26, 0 - RGB 15, 10, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 26, 0 + RGB 15, 10, 0 + RGB 0, 0, 0 JolteonBillboardBGPalette2: ; 0x7bf68 - RGB 31, 31, 31 - RGB 31, 26, 0 - RGB 15, 10, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 26, 0 + RGB 15, 10, 0 + RGB 0, 0, 0 FlareonBillboardBGPalette1: ; 0x7bf70 - RGB 31, 31, 31 - RGB 31, 27, 0 - RGB 31, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 0 + RGB 31, 6, 0 + RGB 0, 0, 0 FlareonBillboardBGPalette2: ; 0x7bf78 - RGB 31, 31, 31 - RGB 31, 27, 0 - RGB 31, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 0 + RGB 31, 6, 0 + RGB 0, 0, 0 PorygonBillboardBGPalette1: ; 0x7bf80 - RGB 31, 31, 31 - RGB 29, 12, 13 - RGB 2, 10, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 12, 13 + RGB 2, 10, 17 + RGB 0, 0, 0 PorygonBillboardBGPalette2: ; 0x7bf88 - RGB 31, 31, 31 - RGB 5, 23, 31 - RGB 2, 10, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 5, 23, 31 + RGB 2, 10, 17 + RGB 0, 0, 0 OmanyteBillboardBGPalette1: ; 0x7bf90 - RGB 31, 31, 31 - RGB 22, 21, 14 - RGB 0, 15, 25 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 21, 14 + RGB 0, 15, 25 + RGB 0, 0, 0 OmanyteBillboardBGPalette2: ; 0x7bf98 - RGB 31, 31, 31 - RGB 11, 26, 29 - RGB 0, 15, 25 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 26, 29 + RGB 0, 15, 25 + RGB 0, 0, 0 OmastarBillboardBGPalette1: ; 0x7bfa0 - RGB 31, 31, 31 - RGB 22, 21, 14 - RGB 0, 15, 25 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 21, 14 + RGB 0, 15, 25 + RGB 0, 0, 0 OmastarBillboardBGPalette2: ; 0x7bfa8 - RGB 31, 31, 31 - RGB 11, 26, 29 - RGB 0, 15, 25 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 26, 29 + RGB 0, 15, 25 + RGB 0, 0, 0 KabutoBillboardBGPalette1: ; 0x7bfb0 - RGB 31, 31, 31 - RGB 29, 18, 0 - RGB 14, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 18, 0 + RGB 14, 6, 0 + RGB 0, 0, 0 KabutoBillboardBGPalette2: ; 0x7bfb8 - RGB 31, 6, 0 - RGB 29, 18, 0 - RGB 14, 6, 0 - RGB 0, 0, 0 + RGB 31, 6, 0 + RGB 29, 18, 0 + RGB 14, 6, 0 + RGB 0, 0, 0 KabutopsBillboardBGPalette1: ; 0x7bfc0 - RGB 31, 31, 31 - RGB 31, 22, 13 - RGB 19, 12, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 22, 13 + RGB 19, 12, 0 + RGB 0, 0, 0 KabutopsBillboardBGPalette2: ; 0x7bfc8 - RGB 31, 31, 31 - RGB 16, 25, 12 - RGB 19, 12, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 16, 25, 12 + RGB 19, 12, 0 + RGB 0, 0, 0 AerodactylBillboardBGPalette1: ; 0x7bfd0 - RGB 31, 31, 31 - RGB 20, 18, 31 - RGB 8, 6, 15 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 18, 31 + RGB 8, 6, 15 + RGB 0, 0, 0 AerodactylBillboardBGPalette2: ; 0x7bfd8 - RGB 31, 31, 31 - RGB 20, 18, 31 - RGB 17, 3, 25 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 18, 31 + RGB 17, 3, 25 + RGB 0, 0, 0 SnorlaxBillboardBGPalette1: ; 0x7bfe0 - RGB 31, 31, 31 - RGB 31, 27, 9 - RGB 5, 6, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 9 + RGB 5, 6, 14 + RGB 0, 0, 0 SnorlaxBillboardBGPalette2: ; 0x7bfe8 - RGB 31, 31, 31 - RGB 31, 27, 9 - RGB 28, 6, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 9 + RGB 28, 6, 2 + RGB 0, 0, 0 ArticunoBillboardBGPalette1: ; 0x7bff0 - RGB 31, 31, 31 - RGB 13, 27, 29 - RGB 5, 13, 24 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 27, 29 + RGB 5, 13, 24 + RGB 0, 0, 0 ArticunoBillboardBGPalette2: ; 0x7bff8 - RGB 31, 31, 31 - RGB 13, 27, 29 - RGB 5, 13, 24 - RGB 0, 0, 0 - + RGB 31, 31, 31 + RGB 13, 27, 29 + RGB 5, 13, 24 + RGB 0, 0, 0 SECTION "bank1f", ROMX, BANK[$1f] @@ -51993,11 +38561,10 @@ HitmonchanAnimatedPic: ; 0x7ed00 INCBIN "gfx/billboard/mon_animated/hitmonchan.w32.interleave.2bpp" MewtwoBonusBaseGameBoyGfx: ; 0x7f000 - INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboy.2bpp" + INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboy.2bpp" EraseAllDataGfx: ; 0x7fd00: ; 0x7fd00 - INCBIN "gfx/erase_all_data.2bpp" - + INCBIN "gfx/erase_all_data.2bpp" SECTION "bank20", ROMX, BANK[$20] @@ -52035,11 +38602,10 @@ TaurosAnimatedPic: ; 0x82d00 INCBIN "gfx/billboard/mon_animated/tauros.w32.interleave.2bpp" MewtwoBonusBaseGameBoyColorGfx: ; 0x83000 - INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboycolor.2bpp" + INCBIN "gfx/stage/mewtwo_bonus/mewtwo_bonus_base_gameboycolor.2bpp" StageDiglettBonusCollisionMasks: ; 0x83d00 - INCBIN "data/collision/masks/diglett_bonus.masks" - + INCBIN "data/collision/masks/diglett_bonus.masks" SECTION "bank21", ROMX, BANK[$21] @@ -52073,19 +38639,16 @@ MewtwoAnimatedPic: ; 0x86700 INCBIN "gfx/billboard/mon_animated/mewtwo.w32.interleave.2bpp" MewAnimatedPic: ; 0x86a00 INCBIN "gfx/billboard/mon_animated/mew.w32.interleave.2bpp" - -INCBIN "baserom.gbc",$86d00,$87000 - $86d00 + dr $86d00, $87000 DiglettBonusBaseGameBoyColorGfx: ; 0x87000 - INCBIN "gfx/stage/diglett_bonus/diglett_bonus_base_gameboycolor.2bpp" - -INCBIN "baserom.gbc",$87e00,$87e80 - $87e00 + INCBIN "gfx/stage/diglett_bonus/diglett_bonus_base_gameboycolor.2bpp" + dr $87e00, $87e80 GengarBonusHaunter1Gfx: ; 0x87e80 - INCBIN "gfx/stage/gengar_bonus/haunter_1.2bpp" + INCBIN "gfx/stage/gengar_bonus/haunter_1.2bpp" GengarBonusHaunter2Gfx: ; 0x87ea0 - INCBIN "gfx/stage/gengar_bonus/haunter_2.w32.interleave.2bpp" - + INCBIN "gfx/stage/gengar_bonus/haunter_2.w32.interleave.2bpp" SECTION "bank22", ROMX, BANK[$22] @@ -52124,191 +38687,189 @@ PonytaAnimatedPic: ; 0x8ad00 FieldSelectScreenGfx: FieldSelectBlinkingBorderGfx: ; 0x8b000 - INCBIN "gfx/field_select/blinking_border.2bpp" + INCBIN "gfx/field_select/blinking_border.2bpp" FieldSelectGfx: ; 0x8b100 - INCBIN "gfx/field_select/field_select_tiles.2bpp" + INCBIN "gfx/field_select/field_select_tiles.2bpp" GengarBonusGastlyGfx: ; 0x8bd00 - INCBIN "gfx/stage/gengar_bonus/gastly.w32.interleave.2bpp" - -INCBIN "baserom.gbc",$8be80,$8bf00 - $8be80 + INCBIN "gfx/stage/gengar_bonus/gastly.w32.interleave.2bpp" + dr $8be80, $8bf00 BulbasaurBillboardBGPalette1: ; 0x8bf00 - RGB 31, 31, 31 - RGB 0, 19, 13 - RGB 26, 1, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 19, 13 + RGB 26, 1, 0 + RGB 0, 0, 0 BulbasaurBillboardBGPalette2: ; 0x8bf08 - RGB 31, 31, 31 - RGB 0, 19, 13 - RGB 0, 9, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 19, 13 + RGB 0, 9, 0 + RGB 0, 0, 0 IvysaurBillboardBGPalette1: ; 0x8bf10 - RGB 31, 31, 31 - RGB 0, 19, 13 - RGB 0, 12, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 19, 13 + RGB 0, 12, 6 + RGB 0, 0, 0 IvysaurBillboardBGPalette2: ; 0x8bf18 - RGB 31, 31, 31 - RGB 25, 17, 3 - RGB 0, 12, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 17, 3 + RGB 0, 12, 6 + RGB 0, 0, 0 VenusaurBillboardBGPalette1: ; 0x8bf20 - RGB 31, 31, 31 - RGB 0, 19, 13 - RGB 26, 1, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 19, 13 + RGB 26, 1, 0 + RGB 0, 0, 0 VenusaurBillboardBGPalette2: ; 0x8bf28 - RGB 31, 31, 31 - RGB 0, 19, 13 - RGB 5, 15, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 19, 13 + RGB 5, 15, 0 + RGB 0, 0, 0 CharmanderBillboardBGPalette1: ; 0x8bf30 - RGB 31, 31, 31 - RGB 31, 17, 1 - RGB 26, 0, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 17, 1 + RGB 26, 0, 0 + RGB 3, 2, 0 CharmanderBillboardBGPalette2: ; 0x8bf38 - RGB 31, 31, 31 - RGB 31, 17, 1 - RGB 26, 0, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 17, 1 + RGB 26, 0, 0 + RGB 3, 2, 0 CharmeleonBillboardBGPalette1: ; 0x8bf40 - RGB 31, 31, 31 - RGB 31, 17, 1 - RGB 26, 4, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 17, 1 + RGB 26, 4, 0 + RGB 3, 2, 0 CharmeleonBillboardBGPalette2: ; 0x8bf48 - RGB 31, 31, 31 - RGB 31, 17, 1 - RGB 26, 4, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 17, 1 + RGB 26, 4, 0 + RGB 3, 2, 0 CharizardBillboardBGPalette1: ; 0x8bf50 - RGB 31, 31, 31 - RGB 31, 17, 1 - RGB 26, 4, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 17, 1 + RGB 26, 4, 0 + RGB 3, 2, 0 CharizardBillboardBGPalette2: ; 0x8bf58 - RGB 31, 31, 31 - RGB 31, 17, 1 - RGB 26, 4, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 17, 1 + RGB 26, 4, 0 + RGB 3, 2, 0 SquirtleBillboardBGPalette1: ; 0x8bf60 - RGB 31, 31, 31 - RGB 26, 23, 0 - RGB 0, 16, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 23, 0 + RGB 0, 16, 31 + RGB 0, 0, 0 SquirtleBillboardBGPalette2: ; 0x8bf68 - RGB 31, 31, 31 - RGB 14, 27, 31 - RGB 0, 16, 31 - RGB 0, 1, 3 + RGB 31, 31, 31 + RGB 14, 27, 31 + RGB 0, 16, 31 + RGB 0, 1, 3 WartortleBillboardBGPalette1: ; 0x8bf70 - RGB 31, 31, 31 - RGB 29, 23, 0 - RGB 0, 16, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 23, 0 + RGB 0, 16, 31 + RGB 0, 0, 0 WartortleBillboardBGPalette2: ; 0x8bf78 - RGB 31, 31, 31 - RGB 14, 27, 31 - RGB 0, 16, 31 - RGB 0, 1, 3 + RGB 31, 31, 31 + RGB 14, 27, 31 + RGB 0, 16, 31 + RGB 0, 1, 3 BlastoiseBillboardBGPalette1: ; 0x8bf80 - RGB 31, 31, 31 - RGB 27, 20, 10 - RGB 12, 6, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 20, 10 + RGB 12, 6, 3 + RGB 0, 0, 0 BlastoiseBillboardBGPalette2: ; 0x8bf88 - RGB 31, 31, 31 - RGB 11, 18, 31 - RGB 2, 6, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 18, 31 + RGB 2, 6, 19 + RGB 0, 0, 0 CaterpieBillboardBGPalette1: ; 0x8bf90 - RGB 31, 31, 31 - RGB 23, 27, 5 - RGB 3, 17, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 23, 27, 5 + RGB 3, 17, 0 + RGB 0, 0, 0 CaterpieBillboardBGPalette2: ; 0x8bf98 - RGB 31, 31, 31 - RGB 23, 27, 5 - RGB 3, 17, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 23, 27, 5 + RGB 3, 17, 0 + RGB 0, 0, 0 MetapodBillboardBGPalette1: ; 0x8bfa0 - RGB 31, 31, 31 - RGB 23, 27, 5 - RGB 7, 18, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 23, 27, 5 + RGB 7, 18, 0 + RGB 0, 0, 0 MetapodBillboardBGPalette2: ; 0x8bfa8 - RGB 31, 31, 31 - RGB 23, 27, 5 - RGB 7, 18, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 23, 27, 5 + RGB 7, 18, 0 + RGB 0, 0, 0 ButterfreeBillboardBGPalette1: ; 0x8bfb0 - RGB 31, 31, 31 - RGB 31, 15, 0 - RGB 31, 0, 1 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 15, 0 + RGB 31, 0, 1 + RGB 3, 2, 0 ButterfreeBillboardBGPalette2: ; 0x8bfb8 - RGB 31, 31, 31 - RGB 11, 13, 31 - RGB 9, 8, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 13, 31 + RGB 9, 8, 18 + RGB 0, 0, 0 WeedleBillboardBGPalette1: ; 0x8bfc0 - RGB 31, 31, 31 - RGB 29, 25, 0 - RGB 25, 6, 7 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 29, 25, 0 + RGB 25, 6, 7 + RGB 3, 2, 0 WeedleBillboardBGPalette2: ; 0x8bfc8 - RGB 31, 31, 31 - RGB 29, 25, 0 - RGB 25, 6, 7 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 29, 25, 0 + RGB 25, 6, 7 + RGB 3, 2, 0 KakunaBillboardBGPalette1: ; 0x8bfd0 - RGB 31, 31, 31 - RGB 28, 24, 0 - RGB 18, 12, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 28, 24, 0 + RGB 18, 12, 0 + RGB 3, 2, 0 KakunaBillboardBGPalette2: ; 0x8bfd8 - RGB 31, 31, 31 - RGB 28, 24, 0 - RGB 18, 12, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 28, 24, 0 + RGB 18, 12, 0 + RGB 3, 2, 0 BeedrillBillboardBGPalette1: ; 0x8bfe0 - RGB 31, 31, 31 - RGB 30, 27, 0 - RGB 21, 7, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 27, 0 + RGB 21, 7, 0 + RGB 3, 2, 0 BeedrillBillboardBGPalette2: ; 0x8bfe8 - RGB 31, 31, 31 - RGB 30, 27, 0 - RGB 21, 7, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 27, 0 + RGB 21, 7, 0 + RGB 3, 2, 0 PidgeyBillboardBGPalette1: ; 0x8bff0 - RGB 31, 31, 31 - RGB 30, 25, 1 - RGB 26, 9, 3 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 25, 1 + RGB 26, 9, 3 + RGB 3, 2, 0 PidgeyBillboardBGPalette2: ; 0x8bff8 - RGB 31, 31, 31 - RGB 30, 25, 1 - RGB 26, 9, 3 - RGB 3, 2, 0 - + RGB 31, 31, 31 + RGB 30, 25, 1 + RGB 26, 9, 3 + RGB 3, 2, 0 SECTION "bank23", ROMX, BANK[$23] @@ -52346,186 +38907,184 @@ JigglypuffAnimatedPic: ; 0x8ed00 INCBIN "gfx/billboard/mon_animated/jigglypuff.w32.interleave.2bpp" DiglettBonusBaseGameBoyGfx: ; 0x8f000 - INCBIN "gfx/stage/diglett_bonus/diglett_bonus_base_gameboy.2bpp" - -INCBIN "baserom.gbc",$8fd00,$8ff00 - $8fd00 + INCBIN "gfx/stage/diglett_bonus/diglett_bonus_base_gameboy.2bpp" + dr $8fd00, $8ff00 PalletTownBillboardBGPalette1: ; 0x8ff00 - RGB 31, 31, 31 - RGB 22, 18, 17 - RGB 0, 19, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 18, 17 + RGB 0, 19, 0 + RGB 0, 0, 0 PalletTownBillboardBGPalette2: ; 0x8ff08 - RGB 31, 31, 31 - RGB 24, 9, 3 - RGB 0, 4, 25 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 9, 3 + RGB 0, 4, 25 + RGB 0, 0, 0 ViridianCityBillboardBGPalette1: ; 0x8ff10 - RGB 31, 31, 31 - RGB 0, 14, 31 - RGB 0, 22, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 14, 31 + RGB 0, 22, 0 + RGB 0, 0, 0 ViridianCityBillboardBGPalette2: ; 0x8ff18 - RGB 31, 31, 31 - RGB 26, 15, 3 - RGB 0, 22, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 15, 3 + RGB 0, 22, 0 + RGB 0, 0, 0 ViridianForestBillboardBGPalette1: ; 0x8ff20 - RGB 31, 31, 31 - RGB 31, 20, 3 - RGB 2, 16, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 3 + RGB 2, 16, 1 + RGB 0, 0, 0 ViridianForestBillboardBGPalette2: ; 0x8ff28 - RGB 31, 31, 31 - RGB 31, 20, 3 - RGB 24, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 3 + RGB 24, 6, 0 + RGB 0, 0, 0 PewterCityBillboardBGPalette1: ; 0x8ff30 - RGB 31, 31, 31 - RGB 27, 20, 10 - RGB 2, 16, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 20, 10 + RGB 2, 16, 1 + RGB 0, 0, 0 PewterCityBillboardBGPalette2: ; 0x8ff38 - RGB 31, 31, 31 - RGB 5, 17, 31 - RGB 26, 3, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 5, 17, 31 + RGB 26, 3, 1 + RGB 0, 0, 0 MtMoonBillboardBGPalette1: ; 0x8ff40 - RGB 31, 28, 2 - RGB 19, 20, 27 - RGB 2, 7, 20 - RGB 0, 0, 0 + RGB 31, 28, 2 + RGB 19, 20, 27 + RGB 2, 7, 20 + RGB 0, 0, 0 MtMoonBillboardBGPalette2: ; 0x8ff48 - RGB 31, 28, 2 - RGB 19, 20, 27 - RGB 2, 7, 20 - RGB 0, 0, 0 + RGB 31, 28, 2 + RGB 19, 20, 27 + RGB 2, 7, 20 + RGB 0, 0, 0 CeruleanCityBillboardBGPalette1: ; 0x8ff50 - RGB 31, 22, 5 - RGB 16, 22, 4 - RGB 1, 15, 0 - RGB 0, 0, 0 + RGB 31, 22, 5 + RGB 16, 22, 4 + RGB 1, 15, 0 + RGB 0, 0, 0 CeruleanCityBillboardBGPalette2: ; 0x8ff58 - RGB 31, 31, 31 - RGB 16, 22, 31 - RGB 3, 11, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 16, 22, 31 + RGB 3, 11, 31 + RGB 0, 0, 0 VermilionSeasideBillboardBGPalette1: ; 0x8ff60 - RGB 31, 31, 31 - RGB 8, 20, 31 - RGB 2, 8, 23 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 8, 20, 31 + RGB 2, 8, 23 + RGB 0, 0, 0 VermilionSeasideBillboardBGPalette2: ; 0x8ff68 - RGB 31, 31, 31 - RGB 22, 22, 22 - RGB 21, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 22, 22 + RGB 21, 8, 0 + RGB 0, 0, 0 VermilionStreetsBillboardBGPalette1: ; 0x8ff70 - RGB 31, 31, 31 - RGB 20, 22, 25 - RGB 31, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 22, 25 + RGB 31, 8, 0 + RGB 0, 0, 0 VermilionStreetsBillboardBGPalette2: ; 0x8ff78 - RGB 31, 31, 31 - RGB 20, 22, 25 - RGB 7, 8, 13 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 22, 25 + RGB 7, 8, 13 + RGB 0, 0, 0 RockMountainBillboardBGPalette1: ; 0x8ff80 - RGB 31, 31, 31 - RGB 27, 13, 4 - RGB 21, 5, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 13, 4 + RGB 21, 5, 0 + RGB 0, 0, 0 RockMountainBillboardBGPalette2: ; 0x8ff88 - RGB 3, 18, 31 - RGB 27, 13, 4 - RGB 2, 16, 1 - RGB 0, 0, 0 + RGB 3, 18, 31 + RGB 27, 13, 4 + RGB 2, 16, 1 + RGB 0, 0, 0 LavenderTownBillboardBGPalette1: ; 0x8ff90 - RGB 31, 31, 10 - RGB 11, 18, 31 - RGB 2, 6, 19 - RGB 0, 0, 0 + RGB 31, 31, 10 + RGB 11, 18, 31 + RGB 2, 6, 19 + RGB 0, 0, 0 LavenderTownBillboardBGPalette2: ; 0x8ff98 - RGB 31, 31, 31 - RGB 11, 18, 31 - RGB 2, 6, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 18, 31 + RGB 2, 6, 19 + RGB 0, 0, 0 CeladonCityBillboardBGPalette1: ; 0x8ffa0 - RGB 31, 31, 31 - RGB 11, 19, 31 - RGB 29, 8, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 19, 31 + RGB 29, 8, 4 + RGB 0, 0, 0 CeladonCityBillboardBGPalette2: ; 0x8ffa8 - RGB 31, 31, 31 - RGB 31, 9, 9 - RGB 16, 2, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 9, 9 + RGB 16, 2, 2 + RGB 0, 0, 0 CyclingRoadBillboardBGPalette1: ; 0x8ffb0 - RGB 31, 24, 15 - RGB 11, 21, 5 - RGB 31, 9, 5 - RGB 0, 0, 0 + RGB 31, 24, 15 + RGB 11, 21, 5 + RGB 31, 9, 5 + RGB 0, 0, 0 CyclingRoadBillboardBGPalette2: ; 0x8ffb8 - RGB 31, 22, 13 - RGB 11, 21, 5 - RGB 0, 15, 0 - RGB 0, 0, 0 + RGB 31, 22, 13 + RGB 11, 21, 5 + RGB 0, 15, 0 + RGB 0, 0, 0 FuchsiaCityBillboardBGPalette1: ; 0x8ffc0 - RGB 31, 31, 31 - RGB 10, 25, 31 - RGB 26, 3, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 10, 25, 31 + RGB 26, 3, 1 + RGB 0, 0, 0 FuchsiaCityBillboardBGPalette2: ; 0x8ffc8 - RGB 31, 31, 31 - RGB 27, 23, 6 - RGB 28, 6, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 23, 6 + RGB 28, 6, 3 + RGB 0, 0, 0 SafariZoneBillboardBGPalette1: ; 0x8ffd0 - RGB 31, 31, 31 - RGB 13, 27, 31 - RGB 4, 19, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 27, 31 + RGB 4, 19, 27 + RGB 0, 0, 0 SafariZoneBillboardBGPalette2: ; 0x8ffd8 - RGB 29, 21, 17 - RGB 13, 19, 5 - RGB 0, 14, 0 - RGB 0, 0, 0 + RGB 29, 21, 17 + RGB 13, 19, 5 + RGB 0, 14, 0 + RGB 0, 0, 0 SaffronCityBillboardBGPalette1: ; 0x8ffe0 - RGB 31, 31, 31 - RGB 8, 19, 31 - RGB 2, 7, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 8, 19, 31 + RGB 2, 7, 26 + RGB 0, 0, 0 SaffronCityBillboardBGPalette2: ; 0x8ffe8 - RGB 31, 31, 31 - RGB 27, 28, 1 - RGB 24, 7, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 28, 1 + RGB 24, 7, 5 + RGB 0, 0, 0 SeafoamIslandsBillboardBGPalette1: ; 0x8fff0 - RGB 24, 27, 30 - RGB 31, 24, 1 - RGB 2, 15, 1 - RGB 0, 0, 0 + RGB 24, 27, 30 + RGB 31, 24, 1 + RGB 2, 15, 1 + RGB 0, 0, 0 SeafoamIslandsBillboardBGPalette2: ; 0x8fff8 - RGB 24, 27, 30 - RGB 0, 14, 31 - RGB 0, 9, 23 - RGB 0, 0, 0 - + RGB 24, 27, 30 + RGB 0, 14, 31 + RGB 0, 9, 23 + RGB 0, 0, 0 SECTION "bank24", ROMX, BANK[$24] @@ -52595,22 +39154,20 @@ RhydonSilhouettePic: ; 0x92e80 INCBIN "gfx/billboard/mon_silhouettes/rhydon.2bpp" SeelBonusBaseGameBoyGfx: ; 0x93000 - INCBIN "gfx/stage/seel_bonus/seel_bonus_base_gameboy.2bpp" + INCBIN "gfx/stage/seel_bonus/seel_bonus_base_gameboy.2bpp" CinnabarIslandBillboardBGPaletteMap: ; 0x93c00 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $6, $7, $7, $7, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $6, $7, $7, $7, $6 + db $6, $6, $6, $6, $6, $6 IndigoPlateauBillboardBGPaletteMap: ; 0x93c18 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $7, $7, $7, $7, $7, $7 - -INCBIN "baserom.gbc",$93c39,$94000 - $93c39 - + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $7, $7, $7 + dr $93c39, $94000 SECTION "bank25", ROMX, BANK[$25] @@ -52680,15 +39237,14 @@ DrowzeeSilhouettePic: ; 0x96e80 INCBIN "gfx/billboard/mon_silhouettes/drowzee.2bpp" SeelBonusBaseGameBoyColorGfx: ; 0x97000 - INCBIN "gfx/stage/seel_bonus/seel_bonus_base_gameboycolor.2bpp" + INCBIN "gfx/stage/seel_bonus/seel_bonus_base_gameboycolor.2bpp" StageRedFieldTopGfx3: ; 0x97a00 - INCBIN "gfx/stage/red_top/red_top_3.2bpp" + INCBIN "gfx/stage/red_top/red_top_3.2bpp" StageRedFieldTopGfx1: ; 0x97ba0 - INCBIN "gfx/stage/red_top/red_top_1.2bpp" + INCBIN "gfx/stage/red_top/red_top_1.2bpp" StageRedFieldTopGfx2: ; 0x97e00 - INCBIN "gfx/stage/red_top/red_top_2.2bpp" - + INCBIN "gfx/stage/red_top/red_top_2.2bpp" SECTION "bank26", ROMX, BANK[$26] @@ -52758,69 +39314,63 @@ SlowbroSilhouettePic: ; 0x9ae80 INCBIN "gfx/billboard/mon_silhouettes/slowbro.2bpp" SeelBonusSeel3Gfx: ; 0x9b000 - INCBIN "gfx/stage/seel_bonus/seel_3.2bpp" + INCBIN "gfx/stage/seel_bonus/seel_3.2bpp" SeelBonusSeel1Gfx: ; 0x9b1a0 - INCBIN "gfx/stage/seel_bonus/seel_1.2bpp" + INCBIN "gfx/stage/seel_bonus/seel_1.2bpp" SeelBonusSeel2Gfx: ; 0x9b400 - INCBIN "gfx/stage/seel_bonus/seel_2.2bpp" + INCBIN "gfx/stage/seel_bonus/seel_2.2bpp" SeelBonusSeel4Gfx: ; 0x9b460 - INCBIN "gfx/stage/seel_bonus/seel_4.2bpp" - -INCBIN "baserom.gbc",$9b900,$9bba0 - $9b900 + INCBIN "gfx/stage/seel_bonus/seel_4.2bpp" + dr $9b900, $9bba0 GengarBonusGengar1Gfx: ; 0x9bba0 - INCBIN "gfx/stage/gengar_bonus/gengar_1.2bpp" + INCBIN "gfx/stage/gengar_bonus/gengar_1.2bpp" GengarBonusGengar2Gfx: ; 0x9bd00 - INCBIN "gfx/stage/gengar_bonus/gengar_2.2bpp" + INCBIN "gfx/stage/gengar_bonus/gengar_2.2bpp" GengarBonusGengar3Gfx: ; 0x9bd60 - INCBIN "gfx/stage/gengar_bonus/gengar_3.2bpp" - + INCBIN "gfx/stage/gengar_bonus/gengar_3.2bpp" SECTION "bank27", ROMX, BANK[$27] StageRedFieldTopStatusBarSymbolsGfx_GameBoyColor: ; 0x9c000 - INCBIN "gfx/stage/red_top/status_bar_symbols_gameboycolor.2bpp" - -INCBIN "baserom.gbc",$9c100,$9c2a0 - $9c100 + INCBIN "gfx/stage/red_top/status_bar_symbols_gameboycolor.2bpp" + dr $9c100, $9c2a0 StageRedFieldTopBaseGameBoyColorGfx: ; 0x9c2a0 - INCBIN "gfx/stage/red_top/red_top_base_gameboycolor.2bpp" + INCBIN "gfx/stage/red_top/red_top_base_gameboycolor.2bpp" StageRedFieldTopGfx4: ; 0x9d000 - INCBIN "gfx/stage/red_top/red_top_4.2bpp" + INCBIN "gfx/stage/red_top/red_top_4.2bpp" GengarBonusBaseGameBoyColorGfx: ; 0x9e000 - INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboycolor.2bpp" + INCBIN "gfx/stage/gengar_bonus/gengar_bonus_base_gameboycolor.2bpp" GengarBonus1Gfx: ; 0x9f000 - INCBIN "gfx/stage/gengar_bonus/gengar_bonus_1.2bpp" - + INCBIN "gfx/stage/gengar_bonus/gengar_bonus_1.2bpp" SECTION "bank28", ROMX, BANK[$28] StageBlueFieldTopStatusBarSymbolsGfx_GameBoyColor: ; 0xa0000 - INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboycolor.2bpp" - -INCBIN "baserom.gbc",$a0100,$a02a0 - $a0100 + INCBIN "gfx/stage/blue_top/status_bar_symbols_gameboycolor.2bpp" + dr $a0100, $a02a0 StageBlueFieldTopBaseGameBoyColorGfx: ; 0xa02a0 - INCBIN "gfx/stage/blue_top/blue_top_base_gameboycolor.2bpp" + INCBIN "gfx/stage/blue_top/blue_top_base_gameboycolor.2bpp" StageBlueFieldTopGfx4: ; 0xa1000 - INCBIN "gfx/stage/blue_top/blue_top_4.2bpp" + INCBIN "gfx/stage/blue_top/blue_top_4.2bpp" StageRedFieldBottomBaseGameBoyColorGfx: ; 0xa2000 - INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboycolor.2bpp" + INCBIN "gfx/stage/red_bottom/red_bottom_base_gameboycolor.2bpp" StageRedFieldBottomGfx5: ; 0xa3000 - INCBIN "gfx/stage/red_bottom/red_bottom_5.2bpp" - + INCBIN "gfx/stage/red_bottom/red_bottom_5.2bpp" SECTION "bank29", ROMX, BANK[$29] StageBlueFieldBottomBaseGameBoyColorGfx: ; 0xa4000 - INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboycolor.2bpp" + INCBIN "gfx/stage/blue_bottom/blue_bottom_base_gameboycolor.2bpp" StageBlueFieldBottomGfx1: ; 0xa5000 - INCBIN "gfx/stage/blue_bottom/blue_bottom_1.2bpp" + INCBIN "gfx/stage/blue_bottom/blue_bottom_1.2bpp" PalletTownPic: ; 0xa6000 INCBIN "gfx/billboard/maps/pallettown.2bpp" @@ -52858,5118 +39408,5110 @@ CinnabarIslandPic: ; 0xa7800 INCBIN "gfx/billboard/maps/cinnabarisland.2bpp" IndigoPlateauPic: ; 0xa7980 INCBIN "gfx/billboard/maps/indigoplateau.2bpp" - -INCBIN "baserom.gbc",$a7b00,$a8000 - $a7b00 ; 0xa7b00 +GFX_a7b00: + dr $a7b00, $a8000 ; 0xa7b00 SECTION "bank2a", ROMX, BANK[$2a] - -INCBIN "baserom.gbc",$a8000,$a82c0 - $a8000 + dr $a8000, $a82c0 PinballGreatballShakeGfx: ; 0xa82c0 - INCBIN "gfx/stage/ball_greatball_shake.w16.interleave.2bpp" + INCBIN "gfx/stage/ball_greatball_shake.w16.interleave.2bpp" PinballUltraballShakeGfx: ; 0xa8300 - INCBIN "gfx/stage/ball_ultraball_shake.w16.interleave.2bpp" + INCBIN "gfx/stage/ball_ultraball_shake.w16.interleave.2bpp" PinballMasterballShakeGfx: ; 0xa8340 - INCBIN "gfx/stage/ball_masterball_shake.w16.interleave.2bpp" + INCBIN "gfx/stage/ball_masterball_shake.w16.interleave.2bpp" PinballPokeballShakeGfx: ; 0xa8380 - INCBIN "gfx/stage/ball_pokeball_shake.w16.interleave.2bpp" + INCBIN "gfx/stage/ball_pokeball_shake.w16.interleave.2bpp" StageSharedPikaBoltGfx: ; 0xa83c0 - INCBIN "gfx/stage/shared/pika_bolt.2bpp" + INCBIN "gfx/stage/shared/pika_bolt.2bpp" PinballPokeballGfx: ; 0xa8400 - INCBIN "gfx/stage/ball_pokeball.w32.interleave.2bpp" + INCBIN "gfx/stage/ball_pokeball.w32.interleave.2bpp" FlipperGfx: ; 0xa8600 - INCBIN "gfx/stage/flipper.2bpp" + INCBIN "gfx/stage/flipper.2bpp" PikachuSaverGfx: ; 0xa8720 - INCBIN "gfx/stage/pikachu_saver.2bpp" + INCBIN "gfx/stage/pikachu_saver.2bpp" -INCBIN "baserom.gbc",$a8800,$a8a00 - $a8800 +GFX_a8800: + INCBIN "gfx/unknown/a8800.interleave.w32.2bpp" + dr $a8980, $a8a00 PinballGreatballGfx: ; 0xa8a00 - INCBIN "gfx/stage/ball_greatball.w32.interleave.2bpp" + INCBIN "gfx/stage/ball_greatball.w32.interleave.2bpp" PinballUltraballGfx: ; 0xa8c00 - INCBIN "gfx/stage/ball_ultraball.w32.interleave.2bpp" + INCBIN "gfx/stage/ball_ultraball.w32.interleave.2bpp" PinballMasterballGfx: ; 0xa8e00 - INCBIN "gfx/stage/ball_masterball.w32.interleave.2bpp" + INCBIN "gfx/stage/ball_masterball.w32.interleave.2bpp" PinballPokeballMiniGfx: ; 0xa9000 - INCBIN "gfx/stage/ball_pokeball_mini.w32.interleave.2bpp" + INCBIN "gfx/stage/ball_pokeball_mini.w32.interleave.2bpp" PinballGreatballMiniGfx: ; 0xa9200 - INCBIN "gfx/stage/ball_greatball_mini.w32.interleave.2bpp" + INCBIN "gfx/stage/ball_greatball_mini.w32.interleave.2bpp" PinballUltraballMiniGfx: ; 0xa9400 - INCBIN "gfx/stage/ball_ultraball_mini.w32.interleave.2bpp" + INCBIN "gfx/stage/ball_ultraball_mini.w32.interleave.2bpp" PinballMasterballMiniGfx: ; 0xa9600 - INCBIN "gfx/stage/ball_masterball_mini.w32.interleave.2bpp" + INCBIN "gfx/stage/ball_masterball_mini.w32.interleave.2bpp" PinballBallMiniGfx: ; 0xa9800 - INCBIN "gfx/stage/ball_mini.w32.interleave.2bpp" + INCBIN "gfx/stage/ball_mini.w32.interleave.2bpp" HighScoresBaseGameBoyGfx: ; 0xa9a00 - INCBIN "gfx/high_scores/high_scores_base_gameboy.2bpp" + INCBIN "gfx/high_scores/high_scores_base_gameboy.2bpp" MeowthBonusBaseGameBoyColorGfx: ; 0xab200 - INCBIN "gfx/stage/meowth_bonus/meowth_bonus_base_gameboycolor.2bpp" + INCBIN "gfx/stage/meowth_bonus/meowth_bonus_base_gameboycolor.2bpp" PaletteTownBillboardBGPaletteMap: ; 0xabb00 - db $6, $7, $7, $7, $7, $7 - db $6, $6, $6, $6, $6, $7 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $7, $7 + db $6, $7, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $7, $7 ViridianCityBillboardBGPaletteMap: ; 0xabb18 - db $6, $6, $6, $6, $7, $6 - db $6, $6, $6, $6, $7, $6 - db $7, $7, $7, $7, $7, $6 - db $7, $7, $7, $7, $7, $6 + db $6, $6, $6, $6, $7, $6 + db $6, $6, $6, $6, $7, $6 + db $7, $7, $7, $7, $7, $6 + db $7, $7, $7, $7, $7, $6 ViridianForestBillboardBGPaletteMap: ; 0xabb30 - db $6, $7, $6, $6, $7, $6 - db $7, $7, $7, $7, $7, $6 - db $6, $7, $6, $6, $7, $6 - db $6, $7, $7, $7, $7, $6 + db $6, $7, $6, $6, $7, $6 + db $7, $7, $7, $7, $7, $6 + db $6, $7, $6, $6, $7, $6 + db $6, $7, $7, $7, $7, $6 PewterCityBillboardBGPaletteMap: ; 0xabb48 - db $7, $7, $7, $7, $7, $7 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 MtMoonBillboardBGPaletteMap: ; 0xabb60 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 CeruleanCityBillboardBGPaletteMap: ; 0xabb78 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 VermilionSeasideBillboardBGPaletteMap: ; 0xabb90 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $7, $7, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $6, $6, $6 VermilionStreetsBillboardBGPaletteMap: ; 0xabba8 - db $6, $6, $6, $6, $6, $7 - db $6, $6, $7, $7, $7, $7 - db $6, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $7 + db $6, $6, $7, $7, $7, $7 + db $6, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 RockMountainBillboardBGPaletteMap: ; 0xabbc0 - db $7, $7, $7, $7, $7, $7 - db $6, $6, $7, $7, $7, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $7, $7, $7 + db $6, $6, $7, $7, $7, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 LavenderTownBillboardBGPaletteMap: ; 0xabbd8 - db $6, $7, $7, $6, $6, $6 - db $6, $7, $7, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $6, $6, $6 + db $6, $7, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 CeladonCityBillboardBGPaletteMap: ; 0xabbf0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $7, $7 - db $6, $6, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $7, $7 + db $6, $6, $7, $7, $7, $7 CyclingRoadBillboardBGPaletteMap: ; 0xabc08 - db $7, $7, $7, $7, $6, $6 - db $7, $6, $6, $6, $6, $7 - db $6, $6, $6, $6, $6, $7 - db $6, $6, $6, $6, $7, $7 + db $7, $7, $7, $7, $6, $6 + db $7, $6, $6, $6, $6, $7 + db $6, $6, $6, $6, $6, $7 + db $6, $6, $6, $6, $7, $7 FuchsiaCityBillboardBGPaletteMap: ; 0xabc20 - db $7, $6, $6, $6, $6, $6 - db $7, $6, $6, $6, $6, $6 - db $7, $7, $7, $6, $6, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $6, $6, $6, $6, $6 + db $7, $6, $6, $6, $6, $6 + db $7, $7, $7, $6, $6, $7 + db $7, $7, $7, $7, $7, $7 SafariZoneBillboardBGPaletteMap: ; 0xabc38 - db $6, $6, $6, $6, $6, $6 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 SaffronCityBillboardBGPaletteMap: ; 0xabc50 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $7, $7, $7, $6, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $6, $7, $7 + db $7, $7, $7, $7, $7, $7 SeafoamIslandsBillboardBGPaletteMap: ; 0xabc68 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $6, $7, $7, $7 - db $7, $7, $7, $6, $7, $7 - db $7, $7, $7, $7, $7, $7 - -INCBIN "baserom.gbc",$abc80,$abf00 - $abc80 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $6, $7, $7, $7 + db $7, $7, $7, $6, $7, $7 + db $7, $7, $7, $7, $7, $7 + dr $abc80, $abf00 BulbasaurAnimatedObjPalette1: ; 0xabf00 - RGB 31, 31, 31 - RGB 5, 21, 30 - RGB 1, 3, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 5, 21, 30 + RGB 1, 3, 22 + RGB 0, 0, 0 BulbasaurAnimatedObjPalette2: ; 0xabf08 - RGB 31, 31, 31 - RGB 0, 21, 15 - RGB 0, 12, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 21, 15 + RGB 0, 12, 6 + RGB 0, 0, 0 CharmanderAnimatedObjPalette1: ; 0xabf10 - RGB 31, 31, 31 - RGB 31, 17, 0 - RGB 26, 1, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 0 + RGB 26, 1, 0 + RGB 0, 0, 0 CharmanderAnimatedObjPalette2: ; 0xabf18 - RGB 31, 31, 31 - RGB 31, 17, 0 - RGB 26, 1, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 0 + RGB 26, 1, 0 + RGB 0, 0, 0 SquirtleAnimatedObjPalette1: ; 0xabf20 - RGB 31, 31, 31 - RGB 4, 19, 31 - RGB 1, 5, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 4, 19, 31 + RGB 1, 5, 17 + RGB 0, 0, 0 SquirtleAnimatedObjPalette2: ; 0xabf28 - RGB 31, 31, 31 - RGB 31, 20, 11 - RGB 14, 9, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 11 + RGB 14, 9, 3 + RGB 0, 0, 0 CaterpieAnimatedObjPalette1: ; 0xabf30 - RGB 31, 31, 31 - RGB 0, 25, 9 - RGB 27, 13, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 25, 9 + RGB 27, 13, 0 + RGB 0, 0, 0 CaterpieAnimatedObjPalette2: ; 0xabf38 - RGB 31, 31, 31 - RGB 0, 25, 9 - RGB 27, 13, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 25, 9 + RGB 27, 13, 0 + RGB 0, 0, 0 WeedleAnimatedObjPalette1: ; 0xabf40 - RGB 31, 31, 31 - RGB 31, 25, 3 - RGB 25, 9, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 25, 3 + RGB 25, 9, 7 + RGB 0, 0, 0 WeedleAnimatedObjPalette2: ; 0xabf48 - RGB 31, 31, 31 - RGB 31, 25, 3 - RGB 25, 9, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 25, 3 + RGB 25, 9, 7 + RGB 0, 0, 0 PidgeyAnimatedObjPalette1: ; 0xabf50 - RGB 31, 31, 31 - RGB 31, 20, 11 - RGB 21, 10, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 11 + RGB 21, 10, 4 + RGB 0, 0, 0 PidgeyAnimatedObjPalette2: ; 0xabf58 - RGB 31, 31, 31 - RGB 31, 20, 11 - RGB 21, 10, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 11 + RGB 21, 10, 4 + RGB 0, 0, 0 RattataAnimatedObjPalette1: ; 0xabf60 - RGB 31, 31, 31 - RGB 30, 12, 23 - RGB 20, 4, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 12, 23 + RGB 20, 4, 8 + RGB 0, 0, 0 RattataAnimatedObjPalette2: ; 0xabf68 - RGB 31, 31, 31 - RGB 30, 12, 23 - RGB 20, 4, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 12, 23 + RGB 20, 4, 8 + RGB 0, 0, 0 SpearowAnimatedObjPalette1: ; 0xabf70 - RGB 31, 31, 31 - RGB 31, 22, 14 - RGB 24, 4, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 22, 14 + RGB 24, 4, 2 + RGB 0, 0, 0 SpearowAnimatedObjPalette2: ; 0xabf78 - RGB 31, 31, 31 - RGB 31, 22, 14 - RGB 24, 4, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 22, 14 + RGB 24, 4, 2 + RGB 0, 0, 0 EkansAnimatedObjPalette1: ; 0xabf80 - RGB 31, 31, 31 - RGB 30, 26, 12 - RGB 20, 7, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 26, 12 + RGB 20, 7, 12 + RGB 0, 0, 0 EkansAnimatedObjPalette2: ; 0xabf88 - RGB 31, 31, 31 - RGB 30, 26, 12 - RGB 20, 7, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 26, 12 + RGB 20, 7, 12 + RGB 0, 0, 0 PikachuAnimatedObjPalette1: ; 0xabf90 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 23, 10, 0 - RGB 3, 3, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 23, 10, 0 + RGB 3, 3, 0 PikachuAnimatedObjPalette2: ; 0xabf98 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 23, 10, 0 - RGB 3, 3, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 23, 10, 0 + RGB 3, 3, 0 SandshrewAnimatedObjPalette1: ; 0xabfa0 - RGB 31, 31, 31 - RGB 30, 25, 3 - RGB 19, 11, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 25, 3 + RGB 19, 11, 0 + RGB 0, 0, 0 SandshrewAnimatedObjPalette2: ; 0xabfa8 - RGB 31, 31, 31 - RGB 30, 25, 3 - RGB 19, 11, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 25, 3 + RGB 19, 11, 0 + RGB 0, 0, 0 NidoranFAnimatedObjPalette1: ; 0xabfb0 - RGB 31, 31, 31 - RGB 19, 23, 30 - RGB 8, 8, 24 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 30 + RGB 8, 8, 24 + RGB 0, 0, 0 NidoranFAnimatedObjPalette2: ; 0xabfb8 - RGB 31, 31, 31 - RGB 19, 23, 30 - RGB 8, 8, 24 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 30 + RGB 8, 8, 24 + RGB 0, 0, 0 NidoranMAnimatedObjPalette1: ; 0xabfc0 - RGB 31, 31, 31 - RGB 28, 16, 25 - RGB 20, 5, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 16, 25 + RGB 20, 5, 12 + RGB 0, 0, 0 NidoranMAnimatedObjPalette2: ; 0xabfc8 - RGB 31, 31, 31 - RGB 28, 16, 25 - RGB 20, 5, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 16, 25 + RGB 20, 5, 12 + RGB 0, 0, 0 ClefairyAnimatedObjPalette1: ; 0xabfd0 - RGB 31, 31, 31 - RGB 31, 20, 20 - RGB 23, 5, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 20 + RGB 23, 5, 6 + RGB 0, 0, 0 ClefairyAnimatedObjPalette2: ; 0xabfd8 - RGB 31, 31, 31 - RGB 31, 20, 20 - RGB 23, 5, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 20 + RGB 23, 5, 6 + RGB 0, 0, 0 VulpixAnimatedObjPalette1: ; 0xabfe0 - RGB 31, 31, 31 - RGB 30, 20, 13 - RGB 27, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 20, 13 + RGB 27, 8, 0 + RGB 0, 0, 0 VulpixAnimatedObjPalette2: ; 0xabfe8 - RGB 31, 31, 31 - RGB 30, 20, 13 - RGB 27, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 20, 13 + RGB 27, 8, 0 + RGB 0, 0, 0 JigglypuffAnimatedObjPalette1: ; 0xabff0 - RGB 31, 31, 31 - RGB 31, 18, 18 - RGB 7, 6, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 18 + RGB 7, 6, 27 + RGB 0, 0, 0 JigglypuffAnimatedObjPalette2: ; 0xabff8 - RGB 31, 31, 31 - RGB 31, 18, 18 - RGB 7, 6, 27 - RGB 0, 0, 0 - + RGB 31, 31, 31 + RGB 31, 18, 18 + RGB 7, 6, 27 + RGB 0, 0, 0 SECTION "bank2b", ROMX, BANK[$2b] TitlescreenFadeInGfx: ; 0xac000 - INCBIN "gfx/titlescreen/titlescreen_fade_in.2bpp" + INCBIN "gfx/titlescreen/titlescreen_fade_in.2bpp" -INCBIN "baserom.gbc",$ad800,$af000 - $ad800 +Data_ad800: + dr $ad800, $af000 StageBlueFieldBottomCollisionMasks: ; 0xaf000 - INCBIN "data/collision/masks/blue_stage_bottom.masks" - -INCBIN "baserom.gbc",$af800,$af900 - $af800 + INCBIN "data/collision/masks/blue_stage_bottom.masks" + dr $af800, $af900 DiglettBonusDugtrio3Gfx: ; 0xaf900 - INCBIN "gfx/stage/diglett_bonus/dugtrio_3.2bpp" + INCBIN "gfx/stage/diglett_bonus/dugtrio_3.2bpp" DiglettBonusDugtrio1Gfx: ; 0xafaa0 - INCBIN "gfx/stage/diglett_bonus/dugtrio_1.2bpp" + INCBIN "gfx/stage/diglett_bonus/dugtrio_1.2bpp" DiglettBonusDugtrio2Gfx: ; 0xafd00 - INCBIN "gfx/stage/diglett_bonus/dugtrio_2.2bpp" + INCBIN "gfx/stage/diglett_bonus/dugtrio_2.2bpp" DiglettBonusDugtrio4Gfx: ; 0xafd60 - INCBIN "gfx/stage/diglett_bonus/dugtrio_4.2bpp" - + INCBIN "gfx/stage/diglett_bonus/dugtrio_4.2bpp" SECTION "bank2c", ROMX, BANK[$2c] - -INCBIN "baserom.gbc",$b0000,$b3000 - $b0000 + dr $b0000, $b3000 StageRedFieldTopCollisionAttributes6: ; 0xb3000 - INCBIN "data/collision/maps/red_stage_top_6.collision" - -INCBIN "baserom.gbc",$b3400,$b3800 - $b3400 + INCBIN "data/collision/maps/red_stage_top_6.collision" + dr $b3400, $b3800 FieldSelectTilemap: ; 0xb3800 - INCBIN "gfx/tilemaps/field_select.map" + INCBIN "gfx/tilemaps/field_select.map" FieldSelectBGAttributes: ; 0xb3c00 - INCBIN "gfx/bgattr/field_select.bgattr" - + INCBIN "gfx/bgattr/field_select.bgattr" SECTION "bank2d", ROMX, BANK[$2d] TitlescreenGfx: ; 0xb4000 - INCBIN "gfx/titlescreen/titlescreen.2bpp" + INCBIN "gfx/titlescreen/titlescreen.2bpp" OptionMenuAndKeyConfigGfx: OptionMenuBlankGfx: ; 0xb5800 - INCBIN "gfx/option_menu/blank.2bpp" + INCBIN "gfx/option_menu/blank.2bpp" OptionMenuArrowGfx: ; 0xb5a00 - INCBIN "gfx/option_menu/arrow.2bpp" + INCBIN "gfx/option_menu/arrow.2bpp" OptionMenuPikaBubbleGfx: ; 0xb5a20 - INCBIN "gfx/option_menu/pika_bubble.2bpp" + INCBIN "gfx/option_menu/pika_bubble.2bpp" OptionMenuBouncingPokeballGfx: ; 0xb5a80 - INCBIN "gfx/option_menu/bouncing_pokeball.2bpp" + INCBIN "gfx/option_menu/bouncing_pokeball.2bpp" OptionMenuRumblePikachuAnimationGfx: ; 0xb5b40 - INCBIN "gfx/option_menu/rumble_pikachu_animation.2bpp" + INCBIN "gfx/option_menu/rumble_pikachu_animation.2bpp" OptionMenuPsyduckGfx: ; 0xb5c00 - INCBIN "gfx/option_menu/psyduck.2bpp" + INCBIN "gfx/option_menu/psyduck.2bpp" OptionMenuBoldArrowGfx: ; 0xb5fc0 - INCBIN "gfx/option_menu/bold_arrow.2bpp" + INCBIN "gfx/option_menu/bold_arrow.2bpp" OptionMenuUnknownGfx: ; 0xb5fd0 - INCBIN "baserom.gbc",$b5fd0,$b6020 - $b5fd0 + dr $b5fd0, $b6020 OptionMenuOptionTextGfx: ; 0xb6020 - INCBIN "gfx/option_menu/option_text.2bpp" + INCBIN "gfx/option_menu/option_text.2bpp" OptionMenuPikachuGfx: ; 0xb6080 - INCBIN "gfx/option_menu/pikachu.2bpp" + INCBIN "gfx/option_menu/pikachu.2bpp" OptionMenuPsyduckFeetGfx: ; 0xb6170 - INCBIN "gfx/option_menu/psyduck_feet.2bpp" + INCBIN "gfx/option_menu/psyduck_feet.2bpp" OptionMenuUnknown2Gfx: ; 0xb6200 - INCBIN "baserom.gbc",$b6200,$b6250 - $b6200 + dr $b6200, $b6250 OptionMenuRumbleTextGfx: ; 0xb6250 - INCBIN "gfx/option_menu/rumble_text.2bpp" + INCBIN "gfx/option_menu/rumble_text.2bpp" OptionMenuUnknown3Gfx: ; 0xb62b0 - INCBIN "baserom.gbc",$b62b0,$b6320 - $b62b0 + dr $b62b0, $b6320 OptionMenuKeyCoTextGfx: ; 0xb6320 - INCBIN "gfx/option_menu/key_co_text.2bpp" + INCBIN "gfx/option_menu/key_co_text.2bpp" OptionMenuSoundTestDigitsGfx: ; 0xb6370 - INCBIN "gfx/option_menu/sound_test_digits.2bpp" + INCBIN "gfx/option_menu/sound_test_digits.2bpp" OptionMenuNfigTextGfx: ; 0xb6470 - INCBIN "gfx/option_menu/nfig_text.2bpp" + INCBIN "gfx/option_menu/nfig_text.2bpp" OptionMenuUnknown4Gfx: ; 0xb64a0 - INCBIN "baserom.gbc",$b64a0,$b6500 - $b64a0 + dr $b64a0, $b6500 KeyConfigResetTextGfx: ; 0xb6500 - INCBIN "gfx/key_config/reset_text.2bpp" + INCBIN "gfx/key_config/reset_text.2bpp" KeyConfigBallStartTextGfx: ; 0xb6560 - INCBIN "gfx/key_config/ball_start_text.2bpp" + INCBIN "gfx/key_config/ball_start_text.2bpp" KeyConfigLeftFlipperTextGfx: ; 0xb65f0 - INCBIN "gfx/key_config/left_flipper_text.2bpp" + INCBIN "gfx/key_config/left_flipper_text.2bpp" KeyConfigRightFlipperTextGfx: ; 0xb6680 - INCBIN "gfx/key_config/right_flipper_text.2bpp" + INCBIN "gfx/key_config/right_flipper_text.2bpp" KeyConfigTiltTextGfx: ; 0xb6710 - INCBIN "gfx/key_config/tilt_text.2bpp" + INCBIN "gfx/key_config/tilt_text.2bpp" KeyConfigMenuTextGfx: ; 0xb6810 - INCBIN "gfx/key_config/menu_text.2bpp" + INCBIN "gfx/key_config/menu_text.2bpp" KeyConfigKeyConfigTextGfx: ; 0xb6880 - INCBIN "gfx/key_config/key_config_text.2bpp" + INCBIN "gfx/key_config/key_config_text.2bpp" KeyConfigIconsGfx: ; 0xb6900 - INCBIN "gfx/key_config/icons.2bpp" + INCBIN "gfx/key_config/icons.2bpp" OptionMenuSoundTextTextGfx: ; 0xb6a40 - INCBIN "gfx/option_menu/sound_test_text.2bpp" + INCBIN "gfx/option_menu/sound_test_text.2bpp" OptionMenuOnOffTextGfx: ; 0xb6ad0 - INCBIN "gfx/option_menu/on_off_text.2bpp" + INCBIN "gfx/option_menu/on_off_text.2bpp" OptionMenuBGMSETextGfx: ; 0xb6b10 - INCBIN "gfx/option_menu/bgm_se_text.2bpp" + INCBIN "gfx/option_menu/bgm_se_text.2bpp" StageRedFieldTopCollisionAttributes5: ; 0xb6c00 - INCBIN "data/collision/maps/red_stage_top_5.collision" - -INCBIN "baserom.gbc",$b7000,$b7400 - $b7000 + INCBIN "data/collision/maps/red_stage_top_5.collision" + dr $b7000, $b7400 StageRedFieldTopCollisionAttributes4: ; 0xb7400 - INCBIN "data/collision/maps/red_stage_top_4.collision" - -INCBIN "baserom.gbc",$b7800,$b7c00 - $b7800 + INCBIN "data/collision/maps/red_stage_top_4.collision" + dr $b7800, $b7c00 PidgeottoBillboardBGPaletteMap: ; 0xb7c00 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 PidgeotBillboardBGPaletteMap: ; 0xb7c18 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 RattataBillboardBGPaletteMap: ; 0xb7c30 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 RaticateBillboardBGPaletteMap: ; 0xb7c48 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 SpearowBillboardBGPaletteMap: ; 0xb7c60 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 FearowBillboardBGPaletteMap: ; 0xb7c78 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 EkansBillboardBGPaletteMap: ; 0xb7c90 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 ArbokBillboardBGPaletteMap: ; 0xb7ca8 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 PikachuBillboardBGPaletteMap: ; 0xb7cc0 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 RaichuBillboardBGPaletteMap: ; 0xb7cd8 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 SandshrewBillboardBGPaletteMap: ; 0xb7cf0 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 SandslashBillboardBGPaletteMap: ; 0xb7d08 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 NidoranFBillboardBGPaletteMap: ; 0xb7d20 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 NidorinaBillboardBGPaletteMap: ; 0xb7d38 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 NidoqueenBillboardBGPaletteMap: ; 0xb7d50 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 NidoranMBillboardBGPaletteMap: ; 0xb7d68 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - -INCBIN "baserom.gbc",$b7d80,$b8000 - $b7d80 ; 0xb7d80 - + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + dr $b7d80, $b8000 ; 0xb7d80 SECTION "bank2e", ROMX, BANK[$2e] StageRedFieldTopCollisionAttributes3: ; 0xb8000 - INCBIN "data/collision/maps/red_stage_top_3.collision" - -INCBIN "baserom.gbc",$b8400,$b8800 - $b8400 + INCBIN "data/collision/maps/red_stage_top_3.collision" + dr $b8400, $b8800 StageRedFieldTopCollisionAttributes2: ; 0xb8800 - INCBIN "data/collision/maps/red_stage_top_2.collision" - -INCBIN "baserom.gbc",$b8c00,$b9000 - $b8c00 + INCBIN "data/collision/maps/red_stage_top_2.collision" + dr $b8c00, $b9000 StageRedFieldTopCollisionAttributes1: ; 0xb9000 - INCBIN "data/collision/maps/red_stage_top_1.collision" - -INCBIN "baserom.gbc",$b9400,$b9800 - $b9400 + INCBIN "data/collision/maps/red_stage_top_1.collision" + dr $b9400, $b9800 StageRedFieldTopCollisionAttributes0: ; 0xb9800 - INCBIN "data/collision/maps/red_stage_top_0.collision" - -INCBIN "baserom.gbc",$b9c00,$ba000 - $b9c00 + INCBIN "data/collision/maps/red_stage_top_0.collision" + dr $b9c00, $ba000 StageRedFieldTopTilemap_GameBoy: ; 0xba000 - INCBIN "gfx/tilemaps/stage_red_field_top_gameboy.map" - -INCBIN "baserom.gbc",$ba400,$ba800 - $ba400 + INCBIN "gfx/tilemaps/stage_red_field_top_gameboy.map" + dr $ba400, $ba800 StageRedFieldBottomTilemap_GameBoy: ; 0xba800 - INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboy.map" - -INCBIN "baserom.gbc",$bac00,$bb000 - $bac00 + INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboy.map" + dr $bac00, $bb000 StageRedFieldTopCollisionMasks0: ; 0xbb000 - INCBIN "data/collision/masks/red_stage_top_0.masks" + INCBIN "data/collision/masks/red_stage_top_0.masks" StageRedFieldTopCollisionMasks1: ; 0xbb800 - INCBIN "data/collision/masks/red_stage_top_1.masks" - + INCBIN "data/collision/masks/red_stage_top_1.masks" SECTION "bank2f", ROMX, BANK[$2f] StageRedFieldTopCollisionMasks2: ; 0xbc000 - INCBIN "data/collision/masks/red_stage_top_2.masks" + INCBIN "data/collision/masks/red_stage_top_2.masks" StageRedFieldTopCollisionMasks3: ; 0xbc800 - INCBIN "data/collision/masks/red_stage_top_3.masks" + INCBIN "data/collision/masks/red_stage_top_3.masks" StageRedFieldTopCollisionAttributes7: ; 0xbd000 - INCBIN "data/collision/maps/red_stage_top_7.collision" - -INCBIN "baserom.gbc",$bd400,$bd800 - $bd400 + INCBIN "data/collision/maps/red_stage_top_7.collision" + dr $bd400, $bd800 StageRedFieldBottomCollisionAttributes: ; 0xbd800 - INCBIN "data/collision/maps/red_stage_bottom.collision" - -INCBIN "baserom.gbc",$bdc00,$be000 - $bdc00 + INCBIN "data/collision/maps/red_stage_bottom.collision" + dr $bdc00, $be000 StageRedFieldTopTilemap_GameBoyColor: ; 0xbe000 - INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor.map" + INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor.map" StageRedFieldTopTilemap2_GameBoyColor: ; 0xbe400 - INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor_2.map" + INCBIN "gfx/tilemaps/stage_red_field_top_gameboycolor_2.map" StageRedFieldBottomTilemap_GameBoyColor: ; 0xbe800 - INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor.map" + INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor.map" StageRedFieldBottomTilemap2_GameBoyColor: ; 0xbec00 - INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor_2.map" + INCBIN "gfx/tilemaps/stage_red_field_bottom_gameboycolor_2.map" StageBlueFieldTopTilemap_GameBoy: ; 0xbf000 - INCBIN "gfx/tilemaps/stage_blue_field_top_gameboy.map" - -INCBIN "baserom.gbc",$bf400,$bf800 - $bf400 + INCBIN "gfx/tilemaps/stage_blue_field_top_gameboy.map" + dr $bf400, $bf800 EraseAllDataTilemap: ; 0xbf800 - INCBIN "gfx/tilemaps/erase_all_data.map" + INCBIN "gfx/tilemaps/erase_all_data.map" EraseAllDataBGAttributes: ; 0xbfc00 - INCBIN "gfx/bgattr/erase_all_data.bgattr" - + INCBIN "gfx/bgattr/erase_all_data.bgattr" SECTION "bank30", ROMX, BANK[$30] StageBlueFieldBottomTilemap_GameBoy: ; 0xc0000 - INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboy.map" - -INCBIN "baserom.gbc",$c0400,$c0800 - $c0400 + INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboy.map" + dr $c0400, $c0800 StageBlueFieldTopCollisionMasks: ; 0xc0800 - INCBIN "data/collision/masks/blue_stage_top.masks" + INCBIN "data/collision/masks/blue_stage_top.masks" StageBlueFieldTopCollisionAttributesBallEntrance: ; 0xc1000 - INCBIN "data/collision/maps/blue_stage_top_ball_entrance.collision" - -INCBIN "baserom.gbc",$c1400,$c1800 - $c1400 + INCBIN "data/collision/maps/blue_stage_top_ball_entrance.collision" + dr $c1400, $c1800 HighScoresTilemap2: ; 0xc1800 - INCBIN "gfx/tilemaps/high_scores_screen_2.map" + INCBIN "gfx/tilemaps/high_scores_screen_2.map" HighScoresTilemap5: ; 0xc1c00 - INCBIN "gfx/tilemaps/high_scores_screen_5.map" + INCBIN "gfx/tilemaps/high_scores_screen_5.map" HighScoresTilemap: ; 0xc2000 - INCBIN "gfx/tilemaps/high_scores_screen.map" + INCBIN "gfx/tilemaps/high_scores_screen.map" HighScoresTilemap4: ; 0xc2400 - INCBIN "gfx/tilemaps/high_scores_screen_4.map" + INCBIN "gfx/tilemaps/high_scores_screen_4.map" StageBlueFieldTopCollisionAttributes: ; 0xc2800 - INCBIN "data/collision/maps/blue_stage_top.collision" - -INCBIN "baserom.gbc",$c2c00,$c3000 - $c2c00 + INCBIN "data/collision/maps/blue_stage_top.collision" + dr $c2c00, $c3000 OptionMenuTilemap2: ; 0xc3000 - INCBIN "gfx/tilemaps/option_menu_2.map" - -INCBIN "baserom.gbc",$c3240,$c3400 - $c3240 + INCBIN "gfx/tilemaps/option_menu_2.map" + dr $c3240, $c3400 OptionMenuTilemap4: ; 0xc3400 - INCBIN "gfx/tilemaps/option_menu_4.map" - -INCBIN "baserom.gbc",$c3640,$c3800 - $c3640 + INCBIN "gfx/tilemaps/option_menu_4.map" + dr $c3640, $c3800 OptionMenuTilemap: ; 0xc3800 - INCBIN "gfx/tilemaps/option_menu.map" - -INCBIN "baserom.gbc",$c3a40,$c3c00 - $c3a40 + INCBIN "gfx/tilemaps/option_menu.map" + dr $c3a40, $c3c00 OptionMenuTilemap3: ; 0xc3c00 - INCBIN "gfx/tilemaps/option_menu_3.map" - -INCBIN "baserom.gbc",$c3e40,$c4000 - $c3e40 - + INCBIN "gfx/tilemaps/option_menu_3.map" + dr $c3e40, $c4000 SECTION "bank31", ROMX, BANK[$31] StageBlueFieldBottomCollisionAttributes: ; 0xc4000 - INCBIN "data/collision/maps/blue_stage_bottom.collision" + INCBIN "data/collision/maps/blue_stage_bottom.collision" + dr $c4400, $c4800 + +Data_c4800: + dr $c4800, $c4c00 + +Data_c4c00: + dr $c4c00, $c5000 + +Data_c5000: + dr $c5000, $c5100 + +Data_c5100: + dr $c5100, $c5120 -INCBIN "baserom.gbc",$c4400,$c5800 - $c4400 +Data_c5120: + dr $c5120, $c5400 + +Data_c5400: + dr $c5400, $c5800 TitlescreenTilemap: ; 0xc5800 - INCBIN "gfx/tilemaps/titlescreen.map" + INCBIN "gfx/tilemaps/titlescreen.map" TitlescreenBGAttributes: ; 0xc5c00 - INCBIN "gfx/bgattr/titlescreen.bgattr" - -INCBIN "baserom.gbc",$c5e40,$c6000 - $c5e40 + INCBIN "gfx/bgattr/titlescreen.bgattr" + dr $c5e40, $c6000 CopyrightScreenTilemap: ; 0xc6000 - INCBIN "gfx/tilemaps/copyright_screen.map" + INCBIN "gfx/tilemaps/copyright_screen.map" CopyrightScreenBGAttributes: ; 0xc6400 - INCBIN "gfx/bgattr/copyright_screen.bgattr" + INCBIN "gfx/bgattr/copyright_screen.bgattr" StageBlueFieldTopTilemap_GameBoyColor: ; 0xc6800 - INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor.map" + INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor.map" StageBlueFieldTopTilemap2_GameBoyColor: ; 0xc6c00 - INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor_2.map" + INCBIN "gfx/tilemaps/stage_blue_field_top_gameboycolor_2.map" StageBlueFieldBottomTilemap_GameBoyColor: ; 0xc7000 - INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor.map" + INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor.map" StageBlueFieldBottomTilemap2_GameBoyColor: ; 0xc7400 - INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor_2.map" + INCBIN "gfx/tilemaps/stage_blue_field_bottom_gameboycolor_2.map" StageGengarBonusCollisionAttributesBallEntrance: ; 0xc7800 - INCBIN "data/collision/maps/gengar_bonus_ball_entrance.collision" - + INCBIN "data/collision/maps/gengar_bonus_ball_entrance.collision" SECTION "bank32", ROMX, BANK[$32] StageGengarBonusCollisionAttributes: ; 0xc8000 - INCBIN "data/collision/maps/gengar_bonus.collision" - -INCBIN "baserom.gbc",$c8400,$c8800 - $c8400 + INCBIN "data/collision/maps/gengar_bonus.collision" + dr $c8400, $c8800 GengarBonusTilemap_GameBoy: ; 0xc8800 - INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboy.map" - -INCBIN "baserom.gbc",$c8c00,$c9000 - $c8c00 + INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboy.map" + dr $c8c00, $c9000 GengarBonusBottomTilemap_GameBoyColor: ; 0xc9000 - INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor.map" + INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor.map" GengarBonusBottomTilemap2_GameBoyColor: ; 0xc9400 - INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor_2.map" + INCBIN "gfx/tilemaps/stage_gengar_bonus_gameboycolor_2.map" MewtwoBonus3Gfx: ; 0xc9800 - INCBIN "gfx/stage/mewtwo_bonus/mewtwo_3.2bpp" + INCBIN "gfx/stage/mewtwo_bonus/mewtwo_3.2bpp" MewtwoBonus1Gfx: ; 0xc99a0 - INCBIN "gfx/stage/mewtwo_bonus/mewtwo_1.2bpp" + INCBIN "gfx/stage/mewtwo_bonus/mewtwo_1.2bpp" MewtwoBonus2Gfx: ; 0xc9c00 - INCBIN "gfx/stage/mewtwo_bonus/mewtwo_2.2bpp" + INCBIN "gfx/stage/mewtwo_bonus/mewtwo_2.2bpp" MewtwoBonus4Gfx: ; 0xc9c60 - INCBIN "gfx/stage/mewtwo_bonus/mewtwo_4.2bpp" - -INCBIN "baserom.gbc",$c9f00,$ca000 - $c9f00 + INCBIN "gfx/stage/mewtwo_bonus/mewtwo_4.2bpp" + dr $c9f00, $ca000 StageMewtwoBonusCollisionAttributesBallEntrance: ; 0xca000 - INCBIN "data/collision/maps/mewtwo_bonus_ball_entrance.collision" - -INCBIN "baserom.gbc",$ca400,$ca800 - $ca400 + INCBIN "data/collision/maps/mewtwo_bonus_ball_entrance.collision" + dr $ca400, $ca800 StageMewtwoBonusCollisionAttributes: ; 0xca800 - INCBIN "data/collision/maps/mewtwo_bonus.collision" - -INCBIN "baserom.gbc",$cac00,$cb000 - $cac00 + INCBIN "data/collision/maps/mewtwo_bonus.collision" + dr $cac00, $cb000 MewtwoBonusTilemap_GameBoy: ; 0xcb000 - INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboy.map" - -INCBIN "baserom.gbc",$cb400,$cb800 - $cb400 + INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboy.map" + dr $cb400, $cb800 MewtoBonusBottomTilemap_GameBoyColor: ; 0xcb800 - INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor.map" + INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor.map" MewtoBonusBottomTilemap2_GameBoyColor: ; 0xcbc00 - INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor_2.map" - + INCBIN "gfx/tilemaps/stage_mewtwo_bonus_gameboycolor_2.map" SECTION "bank33", ROMX, BANK[$33] MeowthBonusMeowth3Gfx: ; 0xcc000 - INCBIN "gfx/stage/meowth_bonus/meowth_3.2bpp" + INCBIN "gfx/stage/meowth_bonus/meowth_3.2bpp" MeowthBonusMeowth1Gfx: ; 0xcc1a0 - INCBIN "gfx/stage/meowth_bonus/meowth_1.2bpp" + INCBIN "gfx/stage/meowth_bonus/meowth_1.2bpp" MeowthBonusMeowth2Gfx: ; 0xcc400 - INCBIN "gfx/stage/meowth_bonus/meowth_2.2bpp" + INCBIN "gfx/stage/meowth_bonus/meowth_2.2bpp" MeowthBonusMeowth4Gfx: ; 0xcc460 - INCBIN "gfx/stage/meowth_bonus/meowth_4.2bpp" - -INCBIN "baserom.gbc",$cc7c0,$cc800 - $cc7c0 + INCBIN "gfx/stage/meowth_bonus/meowth_4.2bpp" + dr $cc7c0, $cc800 StageMeowthBonusCollisionAttributesBallEntrance: ; 0xcc800 - INCBIN "data/collision/maps/meowth_bonus_ball_entrance.collision" - -INCBIN "baserom.gbc",$ccc00,$cd000 - $ccc00 + INCBIN "data/collision/maps/meowth_bonus_ball_entrance.collision" + dr $ccc00, $cd000 StageMeowthBonusCollisionAttributes: ; 0xcd000 - INCBIN "data/collision/maps/meowth_bonus.collision" - -INCBIN "baserom.gbc",$cd400,$cd800 - $cd400 + INCBIN "data/collision/maps/meowth_bonus.collision" + dr $cd400, $cd800 MeowthBonusTilemap_GameBoy: ; 0xcd800 - INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboy.map" - -INCBIN "baserom.gbc",$cdc00,$ce000 - $cdc00 + INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboy.map" + dr $cdc00, $ce000 MeowthBonusTilemap_GameBoyColor: ; 0xce000 - INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboycolor.map" + INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboycolor.map" MeowthBonusTilemap2_GameBoyColor: ; 0xce400 - INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboycolor_2.map" + INCBIN "gfx/tilemaps/stage_meowth_bonus_gameboycolor_2.map" StageDiglettBonusCollisionAttributesBallEntrance: ; 0xce800 - INCBIN "data/collision/maps/diglett_bonus_ball_entrance.collision" - -INCBIN "baserom.gbc",$cec00,$cf000 - $cec00 + INCBIN "data/collision/maps/diglett_bonus_ball_entrance.collision" + dr $cec00, $cf000 StageDiglettBonusCollisionAttributes: ; 0xcf000 - INCBIN "data/collision/maps/diglett_bonus.collision" - -INCBIN "baserom.gbc",$cf400,$cf800 - $cf400 + INCBIN "data/collision/maps/diglett_bonus.collision" + dr $cf400, $cf800 DiglettBonusTilemap_GameBoy: ; 0xcf800 - INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboy.map" - -INCBIN "baserom.gbc",$cfc00,$d0000 - $cfc00 - + INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboy.map" + dr $cfc00, $d0000 SECTION "bank34", ROMX, BANK[$34] MagikarpAnimatedCollisionMask: ; 0xd04000 - INCBIN "data/collision/mon_masks/magikarp_collision.1bpp" + INCBIN "data/collision/mon_masks/magikarp_collision.1bpp" LaprasAnimatedCollisionMask: ; 0xd04080 - INCBIN "data/collision/mon_masks/lapras_collision.1bpp" + INCBIN "data/collision/mon_masks/lapras_collision.1bpp" DittoAnimatedCollisionMask: ; 0xd04100 - INCBIN "data/collision/mon_masks/ditto_collision.1bpp" + INCBIN "data/collision/mon_masks/ditto_collision.1bpp" EeveeAnimatedCollisionMask: ; 0xd04180 - INCBIN "data/collision/mon_masks/eevee_collision.1bpp" + INCBIN "data/collision/mon_masks/eevee_collision.1bpp" PorygonAnimatedCollisionMask: ; 0xd04200 - INCBIN "data/collision/mon_masks/porygon_collision.1bpp" + INCBIN "data/collision/mon_masks/porygon_collision.1bpp" OmanyteAnimatedCollisionMask: ; 0xd04280 - INCBIN "data/collision/mon_masks/omanyte_collision.1bpp" + INCBIN "data/collision/mon_masks/omanyte_collision.1bpp" KabutoAnimatedCollisionMask: ; 0xd04300 - INCBIN "data/collision/mon_masks/kabuto_collision.1bpp" + INCBIN "data/collision/mon_masks/kabuto_collision.1bpp" AerodactylAnimatedCollisionMask: ; 0xd04380 - INCBIN "data/collision/mon_masks/aerodactyl_collision.1bpp" + INCBIN "data/collision/mon_masks/aerodactyl_collision.1bpp" SnorlaxAnimatedCollisionMask: ; 0xd04400 - INCBIN "data/collision/mon_masks/snorlax_collision.1bpp" + INCBIN "data/collision/mon_masks/snorlax_collision.1bpp" ArticunoAnimatedCollisionMask: ; 0xd04480 - INCBIN "data/collision/mon_masks/articuno_collision.1bpp" + INCBIN "data/collision/mon_masks/articuno_collision.1bpp" ZapdosAnimatedCollisionMask: ; 0xd04500 - INCBIN "data/collision/mon_masks/zapdos_collision.1bpp" + INCBIN "data/collision/mon_masks/zapdos_collision.1bpp" MoltresAnimatedCollisionMask: ; 0xd04580 - INCBIN "data/collision/mon_masks/moltres_collision.1bpp" + INCBIN "data/collision/mon_masks/moltres_collision.1bpp" DratiniAnimatedCollisionMask: ; 0xd04600 - INCBIN "data/collision/mon_masks/dratini_collision.1bpp" + INCBIN "data/collision/mon_masks/dratini_collision.1bpp" MewtwoAnimatedCollisionMask: ; 0xd04680 - INCBIN "data/collision/mon_masks/mewtwo_collision.1bpp" + INCBIN "data/collision/mon_masks/mewtwo_collision.1bpp" MewAnimatedCollisionMask: ; 0xd04700 - INCBIN "data/collision/mon_masks/mew_collision.1bpp" + INCBIN "data/collision/mon_masks/mew_collision.1bpp" INCBIN "baserom.gbc",$d0780,$80 LickitungAnimatedCollisionMask: ; 0xd04800 - INCBIN "data/collision/mon_masks/lickitung_collision.1bpp" + INCBIN "data/collision/mon_masks/lickitung_collision.1bpp" KoffingAnimatedCollisionMask: ; 0xd04880 - INCBIN "data/collision/mon_masks/koffing_collision.1bpp" + INCBIN "data/collision/mon_masks/koffing_collision.1bpp" RhyhornAnimatedCollisionMask: ; 0xd04900 - INCBIN "data/collision/mon_masks/rhyhorn_collision.1bpp" + INCBIN "data/collision/mon_masks/rhyhorn_collision.1bpp" ChanseyAnimatedCollisionMask: ; 0xd04980 - INCBIN "data/collision/mon_masks/chansey_collision.1bpp" + INCBIN "data/collision/mon_masks/chansey_collision.1bpp" TangelaAnimatedCollisionMask: ; 0xd04A00 - INCBIN "data/collision/mon_masks/tangela_collision.1bpp" + INCBIN "data/collision/mon_masks/tangela_collision.1bpp" KangaskhanAnimatedCollisionMask: ; 0xd04A80 - INCBIN "data/collision/mon_masks/kangaskhan_collision.1bpp" + INCBIN "data/collision/mon_masks/kangaskhan_collision.1bpp" HorseaAnimatedCollisionMask: ; 0xd04B00 - INCBIN "data/collision/mon_masks/horsea_collision.1bpp" + INCBIN "data/collision/mon_masks/horsea_collision.1bpp" GoldeenAnimatedCollisionMask: ; 0xd04B80 - INCBIN "data/collision/mon_masks/goldeen_collision.1bpp" + INCBIN "data/collision/mon_masks/goldeen_collision.1bpp" StaryuAnimatedCollisionMask: ; 0xd04C00 - INCBIN "data/collision/mon_masks/staryu_collision.1bpp" + INCBIN "data/collision/mon_masks/staryu_collision.1bpp" MrMimeAnimatedCollisionMask: ; 0xd04C80 - INCBIN "data/collision/mon_masks/mrmime_collision.1bpp" + INCBIN "data/collision/mon_masks/mrmime_collision.1bpp" ScytherAnimatedCollisionMask: ; 0xd04D00 - INCBIN "data/collision/mon_masks/scyther_collision.1bpp" + INCBIN "data/collision/mon_masks/scyther_collision.1bpp" JynxAnimatedCollisionMask: ; 0xd04D80 - INCBIN "data/collision/mon_masks/jynx_collision.1bpp" + INCBIN "data/collision/mon_masks/jynx_collision.1bpp" ElectabuzzAnimatedCollisionMask: ; 0xd04E00 - INCBIN "data/collision/mon_masks/electabuzz_collision.1bpp" + INCBIN "data/collision/mon_masks/electabuzz_collision.1bpp" MagmarAnimatedCollisionMask: ; 0xd04E80 - INCBIN "data/collision/mon_masks/magmar_collision.1bpp" + INCBIN "data/collision/mon_masks/magmar_collision.1bpp" PinsirAnimatedCollisionMask: ; 0xd04F00 - INCBIN "data/collision/mon_masks/pinsir_collision.1bpp" + INCBIN "data/collision/mon_masks/pinsir_collision.1bpp" TaurosAnimatedCollisionMask: ; 0xd04F80 - INCBIN "data/collision/mon_masks/tauros_collision.1bpp" + INCBIN "data/collision/mon_masks/tauros_collision.1bpp" SlowpokeAnimatedCollisionMask: ; 0xd05000 - INCBIN "data/collision/mon_masks/slowpoke_collision.1bpp" + INCBIN "data/collision/mon_masks/slowpoke_collision.1bpp" MagnemiteAnimatedCollisionMask: ; 0xd05080 - INCBIN "data/collision/mon_masks/magnemite_collision.1bpp" + INCBIN "data/collision/mon_masks/magnemite_collision.1bpp" FarfetchdAnimatedCollisionMask: ; 0xd05100 - INCBIN "data/collision/mon_masks/farfetchd_collision.1bpp" + INCBIN "data/collision/mon_masks/farfetchd_collision.1bpp" DoduoAnimatedCollisionMask: ; 0xd05180 - INCBIN "data/collision/mon_masks/doduo_collision.1bpp" + INCBIN "data/collision/mon_masks/doduo_collision.1bpp" SeelAnimatedCollisionMask: ; 0xd05200 - INCBIN "data/collision/mon_masks/seel_collision.1bpp" + INCBIN "data/collision/mon_masks/seel_collision.1bpp" GrimerAnimatedCollisionMask: ; 0xd05280 - INCBIN "data/collision/mon_masks/grimer_collision.1bpp" + INCBIN "data/collision/mon_masks/grimer_collision.1bpp" ShellderAnimatedCollisionMask: ; 0xd05300 - INCBIN "data/collision/mon_masks/shellder_collision.1bpp" + INCBIN "data/collision/mon_masks/shellder_collision.1bpp" GastlyAnimatedCollisionMask: ; 0xd05380 - INCBIN "data/collision/mon_masks/gastly_collision.1bpp" + INCBIN "data/collision/mon_masks/gastly_collision.1bpp" OnixAnimatedCollisionMask: ; 0xd05400 - INCBIN "data/collision/mon_masks/onix_collision.1bpp" + INCBIN "data/collision/mon_masks/onix_collision.1bpp" DrowzeeAnimatedCollisionMask: ; 0xd05480 - INCBIN "data/collision/mon_masks/drowzee_collision.1bpp" + INCBIN "data/collision/mon_masks/drowzee_collision.1bpp" KrabbyAnimatedCollisionMask: ; 0xd05500 - INCBIN "data/collision/mon_masks/krabby_collision.1bpp" + INCBIN "data/collision/mon_masks/krabby_collision.1bpp" VoltorbAnimatedCollisionMask: ; 0xd05580 - INCBIN "data/collision/mon_masks/voltorb_collision.1bpp" + INCBIN "data/collision/mon_masks/voltorb_collision.1bpp" ExeggcuteAnimatedCollisionMask: ; 0xd05600 - INCBIN "data/collision/mon_masks/exeggcute_collision.1bpp" + INCBIN "data/collision/mon_masks/exeggcute_collision.1bpp" CuboneAnimatedCollisionMask: ; 0xd05680 - INCBIN "data/collision/mon_masks/cubone_collision.1bpp" + INCBIN "data/collision/mon_masks/cubone_collision.1bpp" HitmonleeAnimatedCollisionMask: ; 0xd05700 - INCBIN "data/collision/mon_masks/hitmonlee_collision.1bpp" + INCBIN "data/collision/mon_masks/hitmonlee_collision.1bpp" HitmonchanAnimatedCollisionMask: ; 0xd05780 - INCBIN "data/collision/mon_masks/hitmonchan_collision.1bpp" + INCBIN "data/collision/mon_masks/hitmonchan_collision.1bpp" ZubatAnimatedCollisionMask: ; 0xd05800 - INCBIN "data/collision/mon_masks/zubat_collision.1bpp" + INCBIN "data/collision/mon_masks/zubat_collision.1bpp" OddishAnimatedCollisionMask: ; 0xd05880 - INCBIN "data/collision/mon_masks/oddish_collision.1bpp" + INCBIN "data/collision/mon_masks/oddish_collision.1bpp" ParasAnimatedCollisionMask: ; 0xd05900 - INCBIN "data/collision/mon_masks/paras_collision.1bpp" + INCBIN "data/collision/mon_masks/paras_collision.1bpp" VenonatAnimatedCollisionMask: ; 0xd05980 - INCBIN "data/collision/mon_masks/venonat_collision.1bpp" + INCBIN "data/collision/mon_masks/venonat_collision.1bpp" DiglettAnimatedCollisionMask: ; 0xd05A00 - INCBIN "data/collision/mon_masks/diglett_collision.1bpp" + INCBIN "data/collision/mon_masks/diglett_collision.1bpp" MeowthAnimatedCollisionMask: ; 0xd05A80 - INCBIN "data/collision/mon_masks/meowth_collision.1bpp" + INCBIN "data/collision/mon_masks/meowth_collision.1bpp" PsyduckAnimatedCollisionMask: ; 0xd05B00 - INCBIN "data/collision/mon_masks/psyduck_collision.1bpp" + INCBIN "data/collision/mon_masks/psyduck_collision.1bpp" MankeyAnimatedCollisionMask: ; 0xd05B80 - INCBIN "data/collision/mon_masks/mankey_collision.1bpp" + INCBIN "data/collision/mon_masks/mankey_collision.1bpp" GrowlitheAnimatedCollisionMask: ; 0xd05C00 - INCBIN "data/collision/mon_masks/growlithe_collision.1bpp" + INCBIN "data/collision/mon_masks/growlithe_collision.1bpp" PoliwagAnimatedCollisionMask: ; 0xd05C80 - INCBIN "data/collision/mon_masks/poliwag_collision.1bpp" + INCBIN "data/collision/mon_masks/poliwag_collision.1bpp" AbraAnimatedCollisionMask: ; 0xd05D00 - INCBIN "data/collision/mon_masks/abra_collision.1bpp" + INCBIN "data/collision/mon_masks/abra_collision.1bpp" MachopAnimatedCollisionMask: ; 0xd05D80 - INCBIN "data/collision/mon_masks/machop_collision.1bpp" + INCBIN "data/collision/mon_masks/machop_collision.1bpp" BellsproutAnimatedCollisionMask: ; 0xd05E00 - INCBIN "data/collision/mon_masks/bellsprout_collision.1bpp" + INCBIN "data/collision/mon_masks/bellsprout_collision.1bpp" TentacoolAnimatedCollisionMask: ; 0xd05E80 - INCBIN "data/collision/mon_masks/tentacool_collision.1bpp" + INCBIN "data/collision/mon_masks/tentacool_collision.1bpp" GeodudeAnimatedCollisionMask: ; 0xd05F00 - INCBIN "data/collision/mon_masks/geodude_collision.1bpp" + INCBIN "data/collision/mon_masks/geodude_collision.1bpp" PonytaAnimatedCollisionMask: ; 0xd05F80 - INCBIN "data/collision/mon_masks/ponyta_collision.1bpp" + INCBIN "data/collision/mon_masks/ponyta_collision.1bpp" BulbasaurAnimatedCollisionMask: ; 0xd06000 - INCBIN "data/collision/mon_masks/bulbasaur_collision.1bpp" + INCBIN "data/collision/mon_masks/bulbasaur_collision.1bpp" CharmanderAnimatedCollisionMask: ; 0xd06080 - INCBIN "data/collision/mon_masks/charmander_collision.1bpp" + INCBIN "data/collision/mon_masks/charmander_collision.1bpp" SquirtleAnimatedCollisionMask: ; 0xd06100 - INCBIN "data/collision/mon_masks/squirtle_collision.1bpp" + INCBIN "data/collision/mon_masks/squirtle_collision.1bpp" CaterpieAnimatedCollisionMask: ; 0xd06180 - INCBIN "data/collision/mon_masks/caterpie_collision.1bpp" + INCBIN "data/collision/mon_masks/caterpie_collision.1bpp" WeedleAnimatedCollisionMask: ; 0xd06200 - INCBIN "data/collision/mon_masks/weedle_collision.1bpp" + INCBIN "data/collision/mon_masks/weedle_collision.1bpp" PidgeyAnimatedCollisionMask: ; 0xd06280 - INCBIN "data/collision/mon_masks/pidgey_collision.1bpp" + INCBIN "data/collision/mon_masks/pidgey_collision.1bpp" RattataAnimatedCollisionMask: ; 0xd06300 - INCBIN "data/collision/mon_masks/rattata_collision.1bpp" + INCBIN "data/collision/mon_masks/rattata_collision.1bpp" SpearowAnimatedCollisionMask: ; 0xd06380 - INCBIN "data/collision/mon_masks/spearow_collision.1bpp" + INCBIN "data/collision/mon_masks/spearow_collision.1bpp" EkansAnimatedCollisionMask: ; 0xd06400 - INCBIN "data/collision/mon_masks/ekans_collision.1bpp" + INCBIN "data/collision/mon_masks/ekans_collision.1bpp" PikachuAnimatedCollisionMask: ; 0xd06480 - INCBIN "data/collision/mon_masks/pikachu_collision.1bpp" + INCBIN "data/collision/mon_masks/pikachu_collision.1bpp" SandshrewAnimatedCollisionMask: ; 0xd06500 - INCBIN "data/collision/mon_masks/sandshrew_collision.1bpp" + INCBIN "data/collision/mon_masks/sandshrew_collision.1bpp" NidoranfAnimatedCollisionMask: ; 0xd06580 - INCBIN "data/collision/mon_masks/nidoranf_collision.1bpp" + INCBIN "data/collision/mon_masks/nidoranf_collision.1bpp" NidoranmAnimatedCollisionMask: ; 0xd06600 - INCBIN "data/collision/mon_masks/nidoranm_collision.1bpp" + INCBIN "data/collision/mon_masks/nidoranm_collision.1bpp" ClefairyAnimatedCollisionMask: ; 0xd06680 - INCBIN "data/collision/mon_masks/clefairy_collision.1bpp" + INCBIN "data/collision/mon_masks/clefairy_collision.1bpp" VulpixAnimatedCollisionMask: ; 0xd06700 - INCBIN "data/collision/mon_masks/vulpix_collision.1bpp" + INCBIN "data/collision/mon_masks/vulpix_collision.1bpp" JigglypuffAnimatedCollisionMask: ; 0xd06780 - INCBIN "data/collision/mon_masks/jigglypuff_collision.1bpp" - -INCBIN "baserom.gbc",$d2800,$d3000 - $d2800 + INCBIN "data/collision/mon_masks/jigglypuff_collision.1bpp" + dr $d2800, $d3000 DiglettBonusTilemap_GameBoyColor: ; 0xd3000 - INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboycolor.map" + INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboycolor.map" DiglettBonusTilemap2_GameBoyColor: ; 0xd3400 - INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboycolor_2.map" - -INCBIN "baserom.gbc",$d3800,$d4000 - $d3800 - + INCBIN "gfx/tilemaps/stage_diglett_bonus_gameboycolor_2.map" + dr $d3800, $d4000 SECTION "bank35", ROMX, BANK[$35] StageSeelBonusCollisionAttributesBallEntrance: ; 0xd4000 - INCBIN "data/collision/maps/seel_bonus_ball_entrance.collision" - -INCBIN "baserom.gbc",$d4400,$d4800 - $d4400 + INCBIN "data/collision/maps/seel_bonus_ball_entrance.collision" + dr $d4400, $d4800 StageSeelBonusCollisionAttributes: ; 0xd4800 - INCBIN "data/collision/maps/seel_bonus.collision" - -INCBIN "baserom.gbc",$d4c00,$d5000 - $d4c00 + INCBIN "data/collision/maps/seel_bonus.collision" + dr $d4c00, $d5000 SeelBonusTilemap_GameBoy: ; 0xd5000 - INCBIN "gfx/tilemaps/stage_seel_bonus_gameboy.map" - -INCBIN "baserom.gbc",$d5400,$d5800 - $d5400 + INCBIN "gfx/tilemaps/stage_seel_bonus_gameboy.map" + dr $d5400, $d5800 SeelBonusTilemap_GameBoyColor: ; 0xd5800 - INCBIN "gfx/tilemaps/stage_seel_bonus_gameboycolor.map" + INCBIN "gfx/tilemaps/stage_seel_bonus_gameboycolor.map" SeelBonusTilemap2_GameBoyColor: ; 0xd5c00 - INCBIN "gfx/tilemaps/stage_seel_bonus_gameboycolor_2.map" + INCBIN "gfx/tilemaps/stage_seel_bonus_gameboycolor_2.map" Alphabet1Gfx: ; 0xd6000 - INCBIN "gfx/stage/alphabet_1.2bpp" + INCBIN "gfx/stage/alphabet_1.2bpp" -INCBIN "baserom.gbc",$d61a0,$d6200 - $d61a0 +GFX_d61a0: INCBIN "gfx/unknown/d61a0.2bpp" +GFX_d61b0: INCBIN "gfx/unknown/d61b0.2bpp" +GFX_d61c0: INCBIN "gfx/stage/e_acute_mono.2bpp" +GFX_d61d0: INCBIN "gfx/unknown/d61d0.2bpp" +GFX_d61e0: INCBIN "gfx/unknown/d61e0.2bpp" + dr $d61f0, $d6200 Alphabet2Gfx: ; 0xd6200 - INCBIN "gfx/stage/alphabet_2.2bpp" + INCBIN "gfx/stage/alphabet_2.2bpp" -INCBIN "baserom.gbc",$d63a0,$d6450 - $d63a0 +GFX_d63a0: INCBIN "gfx/unknown/d63a0.2bpp" +GFX_d63b0: INCBIN "gfx/unknown/d63b0.2bpp" +GFX_d63c0: INCBIN "gfx/stage/e_acute_color.2bpp" +GFX_d63d0: INCBIN "gfx/unknown/d63d0.2bpp" +GFX_d63e0: INCBIN "gfx/unknown/d63e0.2bpp" -InGameMenuSymbolsGfx: ; 0xd6450 - INCBIN "gfx/stage/menu_symbols.2bpp" + dr $d63f0, $d6410 + +GFX_d6410: INCBIN "gfx/unknown/d6410.2bpp" + + dr $d6420, $d6430 -INCBIN "baserom.gbc",$d6490,$d6600 - $d6490 +GFX_d6430: INCBIN "gfx/unknown/d6430.2bpp" +GFX_d6440: INCBIN "gfx/unknown/d6440.2bpp" + +InGameMenuSymbolsGfx: ; 0xd6450 + INCBIN "gfx/stage/menu_symbols.2bpp" +GFX_d6480: INCBIN "gfx/unknown/d6480.2bpp" + dr $d6490, $d6600 StageBlueFieldTopGfx3: ; 0xd6600 - INCBIN "gfx/stage/blue_top/blue_top_3.2bpp" + INCBIN "gfx/stage/blue_top/blue_top_3.2bpp" StageBlueFieldTopGfx1: ; 0xd67a0 - INCBIN "gfx/stage/blue_top/blue_top_1.2bpp" + INCBIN "gfx/stage/blue_top/blue_top_1.2bpp" StageBlueFieldTopGfx2: ; 0xd6a00 - INCBIN "gfx/stage/blue_top/blue_top_2.2bpp" + INCBIN "gfx/stage/blue_top/blue_top_2.2bpp" StageRedJapaneseCharactersGfx: ; 0xd6c00 - INCBIN "gfx/stage/red_bottom/japanese_characters.2bpp" + INCBIN "gfx/stage/red_bottom/japanese_characters.2bpp" StageRedJapaneseCharactersGfx2: ; 0xd7000 - INCBIN "gfx/stage/red_bottom/japanese_characters_2.2bpp" + INCBIN "gfx/stage/red_bottom/japanese_characters_2.2bpp" NidorinoBillboardBGPaletteMap: ; 0xd7200 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 NidokingBillboardBGPaletteMap: ; 0xd7218 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 ClefairyBillboardBGPaletteMap: ; 0xd7230 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 ClefableBillboardBGPaletteMap: ; 0xd7248 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 VulpixBillboardBGPaletteMap: ; 0xd7260 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 NinetalesBillboardBGPaletteMap: ; 0xd7278 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 JigglypuffBillboardBGPaletteMap: ; 0xd7290 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $7, $7, $7, $6 - db $6, $7, $7, $7, $7, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $7, $7, $6 + db $6, $7, $7, $7, $7, $6 + db $6, $6, $6, $6, $6, $6 WigglytuffBillboardBGPaletteMap: ; 0xd72a8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $7, $6, $6 - db $6, $7, $6, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $7, $6, $6 + db $6, $7, $6, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 ZubatBillboardBGPaletteMap: ; 0xd72c0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 GolbatBillboardBGPaletteMap: ; 0xd72d8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 OddishBillboardBGPaletteMap: ; 0xd72f0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $7, $7, $7, $7, $6 - db $6, $7, $7, $7, $7, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $7, $7, $7, $7, $6 + db $6, $7, $7, $7, $7, $6 GloomBillboardBGPaletteMap: ; 0xd7308 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $7, $7, $7, $6 - db $7, $7, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $7, $7, $6 + db $7, $7, $7, $7, $7, $7 VileplumeBillboardBGPaletteMap: ; 0xd7320 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $7, $7, $7, $6 - db $6, $6, $7, $7, $7, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $7, $7, $6 + db $6, $6, $7, $7, $7, $6 ParasBillboardBGPaletteMap: ; 0xd7338 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 ParasectBillboardBGPaletteMap: ; 0xd7350 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 VenonatBillboardBGPaletteMap: ; 0xd7368 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - -INCBIN "baserom.gbc",$d7380,$d7600 - $d7380 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + dr $d7380, $d7600 VenomothBillboardBGPaletteMap: ; 0xd7600 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 DiglettBillboardBGPaletteMap: ; 0xd7618 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $6, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $6, $7, $7, $6, $6 DugtrioBillboardBGPaletteMap: ; 0xd7630 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 MeowthBillboardBGPaletteMap: ; 0xd7648 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 PersianBillboardBGPaletteMap: ; 0xd7660 - db $6, $6, $6, $6, $6, $6 - db $7, $7, $7, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 PsyduckBillboardBGPaletteMap: ; 0xd7678 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 GolduckBillboardBGPaletteMap: ; 0xd7690 - db $6, $7, $7, $7, $6, $6 - db $6, $7, $7, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $7, $6, $6 + db $6, $7, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 MankeyBillboardBGPaletteMap: ; 0xd76a8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 PrimeapeBillboardBGPaletteMap: ; 0xd76c0 - db $6, $6, $6, $6, $6, $6 - db $7, $6, $6, $6, $6, $7 - db $7, $6, $6, $6, $6, $7 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $6, $6, $6, $6, $7 + db $7, $6, $6, $6, $6, $7 + db $6, $6, $6, $6, $6, $6 GrowlitheBillboardBGPaletteMap: ; 0xd76d8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $6, $6, $6 ArcanineBillboardBGPaletteMap: ; 0xd76f0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 PoliwagBillboardBGPaletteMap: ; 0xd7708 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $6, $6, $6 - db $6, $6, $7, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $6, $6, $6 + db $6, $6, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 PoliwhirlBillboardBGPaletteMap: ; 0xd7720 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 PoliwrathBillboardBGPaletteMap: ; 0xd7738 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 AbraBillboardBGPaletteMap: ; 0xd7750 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 KadabraBillboardBGPaletteMap: ; 0xd7768 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $6, $6, $6, $6 - db $6, $7, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - -INCBIN "baserom.gbc",$d7780,$d7a00 - $d7780 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $6, $6, $6, $6 + db $6, $7, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + dr $d7780, $d7a00 AlakazamBillboardBGPaletteMap: ; 0xd7a00 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $6, $6, $7, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $6, $6, $7, $6 + db $6, $6, $6, $6, $6, $6 MachopBillboardBGPaletteMap: ; 0xd7a18 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $7 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 MachokeBillboardBGPaletteMap: ; 0xd7a30 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 MachampBillboardBGPaletteMap: ; 0xd7a48 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 BellsproutBillboardBGPaletteMap: ; 0xd7a60 - db $6, $6, $6, $6, $7, $7 - db $6, $7, $7, $6, $7, $7 - db $6, $7, $7, $6, $6, $7 - db $6, $6, $6, $6, $7, $7 + db $6, $6, $6, $6, $7, $7 + db $6, $7, $7, $6, $7, $7 + db $6, $7, $7, $6, $6, $7 + db $6, $6, $6, $6, $7, $7 WeepinbellBillboardBGPaletteMap: ; 0xd7a78 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $7, $7, $7, $6, $6, $6 - db $7, $7, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $6, $6, $6 + db $7, $7, $7, $6, $6, $6 VictreebellBillboardBGPaletteMap: ; 0xd7a90 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $6, $6, $6 - db $6, $6, $7, $7, $7, $7 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $6, $6, $6 + db $6, $6, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 TentacoolBillboardBGPaletteMap: ; 0xd7aa8 - db $6, $7, $6, $6, $7, $6 - db $6, $6, $7, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $7, $6, $6, $7, $6 + db $6, $6, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 TentacruelBillboardBGPaletteMap: ; 0xd7ac0 - db $6, $6, $7, $6, $7, $6 - db $6, $6, $6, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $6, $7, $6 + db $6, $6, $6, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 GeodudeBillboardBGPaletteMap: ; 0xd7ad8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 GravelerBillboardBGPaletteMap: ; 0xd7af0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 GolemBillboardBGPaletteMap: ; 0xd7b08 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $7, $6, $6, $6 - db $6, $7, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $6, $6, $6 + db $6, $7, $7, $6, $6, $6 PonytaBillboardBGPaletteMap: ; 0xd7b20 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $6, $6, $7 - db $6, $6, $6, $6, $6, $7 - db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $6, $6, $7 + db $6, $6, $6, $6, $6, $7 + db $6, $6, $6, $6, $6, $6 RapidashBillboardBGPaletteMap: ; 0xd7b38 - db $7, $7, $7, $7, $7, $6 - db $7, $7, $7, $6, $7, $6 - db $7, $7, $6, $6, $6, $6 - db $7, $7, $6, $6, $6, $6 + db $7, $7, $7, $7, $7, $6 + db $7, $7, $7, $6, $7, $6 + db $7, $7, $6, $6, $6, $6 + db $7, $7, $6, $6, $6, $6 SlowpokeBillboardBGPaletteMap: ; 0xd7b50 - db $6, $6, $6, $6, $6, $6 - db $7, $7, $7, $7, $6, $6 - db $7, $7, $7, $7, $6, $6 - db $7, $7, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $7, $6, $6 + db $7, $7, $7, $7, $6, $6 + db $7, $7, $7, $7, $6, $6 SlowbroBillboardBGPaletteMap: ; 0xd7b68 - db $7, $7, $7, $7, $7, $7 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - -INCBIN "baserom.gbc",$d7b80,$d8000 - $d7b80 - + db $7, $7, $7, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + dr $d7b80, $d8000 SECTION "bank36", ROMX, BANK[$36] - -INCBIN "baserom.gbc",$d8000,$d8400 - $d8000 + dr $d8000, $d8400 MagnemiteBillboardBGPaletteMap: ; 0xd8400 - db $7, $7, $6, $6, $6, $6 - db $7, $7, $6, $6, $6, $7 - db $6, $6, $6, $6, $6, $7 - db $6, $6, $6, $6, $6, $6 + db $7, $7, $6, $6, $6, $6 + db $7, $7, $6, $6, $6, $7 + db $6, $6, $6, $6, $6, $7 + db $6, $6, $6, $6, $6, $6 MagnetonBillboardBGPaletteMap: ; 0xd8418 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 FarfetchdBillboardBGPaletteMap: ; 0xd8430 - db $6, $6, $6, $6, $7, $7 - db $6, $6, $6, $6, $7, $7 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $7, $7 + db $6, $6, $6, $6, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 DoduoBillboardBGPaletteMap: ; 0xd8448 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 DodrioBillboardBGPaletteMap: ; 0xd8460 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 SeelBillboardBGPaletteMap: ; 0xd8478 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $7, $7, $6 - db $6, $6, $7, $7, $7, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $7, $7, $6 + db $6, $6, $7, $7, $7, $6 DewgongBillboardBGPaletteMap: ; 0xd8490 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 GrimerBillboardBGPaletteMap: ; 0xd84a8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 MukBillboardBGPaletteMap: ; 0xd84c0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 ShellderBillboardBGPaletteMap: ; 0xd84d8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $7, $6, $6 CloysterBillboardBGPaletteMap: ; 0xd84f0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 GastlyBillboardBGPaletteMap: ; 0xd8508 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $7, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 HaunterBillboardBGPaletteMap: ; 0xd8520 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $7, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 GengarBillboardBGPaletteMap: ; 0xd8538 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $6, $7, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $6, $7, $6 + db $6, $6, $6, $6, $6, $6 OnixBillboardBGPaletteMap: ; 0xd8550 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 DrowzeeBillboardBGPaletteMap: ; 0xd8568 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - -INCBIN "baserom.gbc",$d8580,$d8800 - $d8580 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + dr $d8580, $d8800 HypnoBillboardBGPaletteMap: ; 0xd8800 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $7, $7 - db $7, $6, $6, $6, $7, $7 - db $7, $6, $6, $6, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $7, $7 + db $7, $6, $6, $6, $7, $7 + db $7, $6, $6, $6, $7, $7 KrabbyBillboardBGPaletteMap: ; 0xd8818 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 KinglerBillboardBGPaletteMap: ; 0xd8830 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 VoltorbBillboardBGPaletteMap: ; 0xd8848 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $7 - db $6, $6, $6, $6, $7, $7 - db $7, $6, $6, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $7 + db $6, $6, $6, $6, $7, $7 + db $7, $6, $6, $7, $7, $7 ElectrodeBillboardBGPaletteMap: ; 0xd8860 - db $6, $6, $6, $7, $7, $6 - db $6, $6, $6, $7, $7, $7 - db $6, $6, $6, $6, $7, $7 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $7, $7, $6 + db $6, $6, $6, $7, $7, $7 + db $6, $6, $6, $6, $7, $7 + db $6, $6, $6, $6, $6, $6 ExeggcuteBillboardBGPaletteMap: ; 0xd8878 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 ExeggutorBillboardBGPaletteMap: ; 0xd8890 - db $6, $6, $6, $6, $6, $6 - db $6, $7, $7, $7, $7, $6 - db $6, $7, $7, $7, $7, $6 - db $6, $7, $7, $7, $7, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $7, $7, $7, $7, $6 + db $6, $7, $7, $7, $7, $6 + db $6, $7, $7, $7, $7, $6 CuboneBillboardBGPaletteMap: ; 0xd88a8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $7, $7, $7, $7, $7, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $7, $7, $6 MarowakBillboardBGPaletteMap: ; 0xd88c0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $7, $7 HitmonleeBillboardBGPaletteMap: ; 0xd88d8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 HitmonchanBillboardBGPaletteMap: ; 0xd88f0 - db $6, $6, $7, $7, $7, $7 - db $6, $6, $6, $7, $7, $7 - db $6, $6, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $6, $6, $7, $7, $7, $7 + db $6, $6, $6, $7, $7, $7 + db $6, $6, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 LickitungBillboardBGPaletteMap: ; 0xd8908 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $7, $6, $6 KoffingBillboardBGPaletteMap: ; 0xd8920 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 WeezingBillboardBGPaletteMap: ; 0xd8938 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 RhyhornBillboardBGPaletteMap: ; 0xd8950 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 RhydonBillboardBGPaletteMap: ; 0xd8968 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - -INCBIN "baserom.gbc",$d8980,$d8c00 - $d8980 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + dr $d8980, $d8c00 SaverTextOffGfx: ; 0xd8c00 - INCBIN "gfx/stage/saver_off.2bpp" + INCBIN "gfx/stage/saver_off.2bpp" + dr $d8c40, $d8c80 -INCBIN "baserom.gbc",$d8c40,$d9000 - $d8c40 +CatchTextGfx: + INCBIN "gfx/stage/catch.w48.2bpp" + dr $d8ce0, $d8e80 + +Data_d8e80: + dr $d8e80, $d8f60 + +Data_d8f60: + dr $d8f60, $d9000 StageRedFieldBottomCollisionMasks: ; 0xd9000 - INCBIN "data/collision/masks/red_stage_bottom.masks" + INCBIN "data/collision/masks/red_stage_bottom.masks" MagikarpBillboardBGPaletteMap: ; 0xd9400 - db $6, $6, $6, $6, $6, $6 - db $7, $7, $6, $6, $6, $6 - db $7, $7, $6, $6, $6, $6 - db $7, $7, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $7, $6, $6, $6, $6 + db $7, $7, $6, $6, $6, $6 + db $7, $7, $6, $6, $6, $6 GyaradosBillboardBGPaletteMap: ; 0xd9418 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $6, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $6, $7, $7, $6, $6 LaprasBillboardBGPaletteMap: ; 0xd9430 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 DittoBillboardBGPaletteMap: ; 0xd9448 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 EeveeBillboardBGPaletteMap: ; 0xd9460 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 VaporeonBillboardBGPaletteMap: ; 0xd9478 - db $7, $7, $7, $6, $6, $6 - db $7, $7, $6, $6, $7, $7 - db $7, $7, $6, $6, $7, $7 - db $6, $6, $6, $6, $6, $6 + db $7, $7, $7, $6, $6, $6 + db $7, $7, $6, $6, $7, $7 + db $7, $7, $6, $6, $7, $7 + db $6, $6, $6, $6, $6, $6 JolteonBillboardBGPaletteMap: ; 0xd9490 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 FlareonBillboardBGPaletteMap: ; 0xd94a8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 PorygonBillboardBGPaletteMap: ; 0xd94c0 - db $6, $6, $6, $6, $7, $6 - db $6, $6, $7, $6, $6, $7 - db $6, $7, $7, $6, $6, $7 - db $6, $7, $7, $7, $6, $6 + db $6, $6, $6, $6, $7, $6 + db $6, $6, $7, $6, $6, $7 + db $6, $7, $7, $6, $6, $7 + db $6, $7, $7, $7, $6, $6 OmanyteBillboardBGPaletteMap: ; 0xd94d8 - db $6, $7, $6, $6, $6, $6 - db $6, $7, $6, $6, $6, $6 - db $7, $7, $6, $6, $6, $6 - db $7, $7, $6, $6, $6, $6 + db $6, $7, $6, $6, $6, $6 + db $6, $7, $6, $6, $6, $6 + db $7, $7, $6, $6, $6, $6 + db $7, $7, $6, $6, $6, $6 OmastarBillboardBGPaletteMap: ; 0xd94f0 - db $6, $6, $6, $6, $7, $6 - db $6, $6, $6, $6, $7, $7 - db $6, $7, $7, $6, $6, $7 - db $6, $6, $7, $6, $6, $7 + db $6, $6, $6, $6, $7, $6 + db $6, $6, $6, $6, $7, $7 + db $6, $7, $7, $6, $6, $7 + db $6, $6, $7, $6, $6, $7 KabutoBillboardBGPaletteMap: ; 0xd9508 - db $6, $6, $6, $7, $7, $6 - db $6, $6, $7, $7, $7, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $7, $7, $6 + db $6, $6, $7, $7, $7, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 KabutopsBillboardBGPaletteMap: ; 0xd9520 - db $7, $6, $6, $6, $6, $7 - db $7, $6, $6, $6, $7, $7 - db $7, $6, $6, $7, $6, $7 - db $6, $6, $7, $7, $6, $6 + db $7, $6, $6, $6, $6, $7 + db $7, $6, $6, $6, $7, $7 + db $7, $6, $6, $7, $6, $7 + db $6, $6, $7, $7, $6, $6 AerodactylBillboardBGPaletteMap: ; 0xd9538 - db $7, $7, $6, $6, $7, $7 - db $7, $7, $6, $7, $7, $7 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $7, $7, $6, $6, $7, $7 + db $7, $7, $6, $7, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 SnorlaxBillboardBGPaletteMap: ; 0xd9550 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $6, $7, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $6, $7, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 ArticunoBillboardBGPaletteMap: ; 0xd9568 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - -INCBIN "baserom.gbc",$d9580,$d9800 - $d9580 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + dr $d9580, $d9800 ZapdosBillboardBGPaletteMap: ; 0xd9800 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 MoltresBillboardBGPaletteMap: ; 0xd9818 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 DratiniBillboardBGPaletteMap: ; 0xd9830 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 DragonairBillboardBGPaletteMap: ; 0xd9848 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 DragoniteBillboardBGPaletteMap: ; 0xd9860 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $7, $6, $6, $6, $6, $7 - db $7, $7, $6, $6, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $7, $6, $6, $6, $6, $7 + db $7, $7, $6, $6, $7, $7 MewtwoBillboardBGPaletteMap: ; 0xd9878 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 MewBillboardBGPaletteMap: ; 0xd9890 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - -INCBIN "baserom.gbc",$d98a8,$d9c00 - $d98a8 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + dr $d98a8, $d9c00 UnusedTextGfx: ; 0xd9c00 - INCBIN "gfx/unused_text.2bpp" + INCBIN "gfx/unused_text.2bpp" CopyrightTextGfx: ; 0xda000 - INCBIN "gfx/copyright_text.2bpp" + INCBIN "gfx/copyright_text.2bpp" ChanseyBillboardBGPaletteMap: ; 0xda400 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 TangelaBillboardBGPaletteMap: ; 0xda418 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 KangaskhanBillboardBGPaletteMap: ; 0xda430 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 HorseaBillboardBGPaletteMap: ; 0xda448 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $7, $7 SeadraBillboardBGPaletteMap: ; 0xda460 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 GoldeenBillboardBGPaletteMap: ; 0xda478 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 SeakingBillboardBGPaletteMap: ; 0xda490 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 StaryuBillboardBGPaletteMap: ; 0xda4a8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 StarmieBillboardBGPaletteMap: ; 0xda4c0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 MrMimeBillboardBGPaletteMap: ; 0xda4d8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 ScytherBillboardBGPaletteMap: ; 0xda4f0 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 JynxBillboardBGPaletteMap: ; 0xda508 - db $6, $7, $7, $7, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $6, $6, $6 + db $6, $7, $7, $7, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $6, $6, $6 ElectabuzzBillboardBGPaletteMap: ; 0xda520 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 MagmarBillboardBGPaletteMap: ; 0xda538 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 PinsirBillboardBGPaletteMap: ; 0xda550 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $7, $6, $6, $6 - db $6, $6, $7, $6, $6, $6 - db $6, $6, $6, $6, $7, $7 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $7, $6, $6, $6 + db $6, $6, $7, $6, $6, $6 + db $6, $6, $6, $6, $7, $7 TaurosBillboardBGPaletteMap: ; 0xda568 - db $7, $7, $6, $6, $7, $7 - db $7, $7, $6, $7, $7, $7 - db $6, $7, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - -INCBIN "baserom.gbc",$da580,$da800 - $da580 + db $7, $7, $6, $6, $7, $7 + db $7, $7, $6, $7, $7, $7 + db $6, $7, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + dr $da580, $da800 BulbasaurBillboardBGPaletteMap: ; 0xda800 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $6, $7, $7 - db $7, $7, $7, $6, $6, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $6, $7, $7 + db $7, $7, $7, $6, $6, $7 IvysaurBillboardBGPaletteMap: ; 0xda818 - db $6, $7, $7, $7, $7, $7 - db $7, $6, $6, $6, $6, $7 - db $6, $6, $6, $7, $6, $7 - db $6, $6, $6, $7, $7, $7 + db $6, $7, $7, $7, $7, $7 + db $7, $6, $6, $6, $6, $7 + db $6, $6, $6, $7, $6, $7 + db $6, $6, $6, $7, $7, $7 VenusaurBillboardBGPaletteMap: ; 0xda830 - db $7, $7, $6, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $6, $6, $6, $6, $7 - db $7, $7, $6, $6, $6, $7 + db $7, $7, $6, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $6, $6, $6, $6, $7 + db $7, $7, $6, $6, $6, $7 CharmanderBillboardBGPaletteMap: ; 0xda848 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 CharmeleonBillboardBGPaletteMap: ; 0xda860 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 CharizardBillboardBGPaletteMap: ; 0xda878 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 SquirtleBillboardBGPaletteMap: ; 0xda890 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $6, $6, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $6, $6, $7, $7 WartortleBillboardBGPaletteMap: ; 0xda8a8 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $6, $6, $7, $7 - db $7, $6, $6, $6, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $6, $6, $7, $7 + db $7, $6, $6, $6, $7, $7 BlastoiseBillboardBGPaletteMap: ; 0xda8c0 - db $6, $6, $6, $6, $7, $7 - db $6, $7, $7, $7, $7, $7 - db $6, $6, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $6, $6, $6, $6, $7, $7 + db $6, $7, $7, $7, $7, $7 + db $6, $6, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 CaterpieBillboardBGPaletteMap: ; 0xda8d8 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 - db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 + db $6, $6, $6, $6, $6, $6 MetapodBillboardBGPaletteMap: ; 0xda8f0 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 ButterfreeBillboardBGPaletteMap: ; 0xda908 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $6, $6, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $6, $6, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 WeedleBillboardBGPaletteMap: ; 0xda920 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 KakunaBillboardBGPaletteMap: ; 0xda938 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 BeedrillBillboardBGPaletteMap: ; 0xda950 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 PidgeyBillboardBGPaletteMap: ; 0xda968 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - db $7, $7, $7, $7, $7, $7 - -INCBIN "baserom.gbc",$da980,$dac00 - $da980 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + db $7, $7, $7, $7, $7, $7 + dr $da980, $dac00 StageSharedBonusSlotGlowGfx: ; 0xdac00 - INCBIN "gfx/stage/shared/bonus_slot_glow.2bpp" - -INCBIN "baserom.gbc",$dad60,$dade0 - $dad60 + INCBIN "gfx/stage/shared/bonus_slot_glow.2bpp" + dr $dad60, $dade0 StageSharedBonusSlotGlow2Gfx: ; 0xdade0 - INCBIN "gfx/stage/shared/bonus_slot_glow_2.2bpp" + INCBIN "gfx/stage/shared/bonus_slot_glow_2.2bpp" StageRedFieldTopGfx5: ; 0xdae00 - INCBIN "gfx/stage/red_top/red_top_5.2bpp" - -INCBIN "baserom.gbc",$db000,$db200 - $db000 + INCBIN "gfx/stage/red_top/red_top_5.2bpp" + dr $db000, $db200 TimerDigitsGfx: ; 0xdb200 - INCBIN "gfx/stage/timer_digits.2bpp" - -INCBIN "baserom.gbc",$db360,$db600 - $db360 + INCBIN "gfx/stage/timer_digits.2bpp" + dr $db360, $db600 StageGengarBonusCollisionMasks: ; 0xdb600 - INCBIN "data/collision/masks/gengar_bonus.masks" + INCBIN "data/collision/masks/gengar_bonus.masks" ZubatAnimatedObjPalette1: ; 0xdb780 - RGB 31, 31, 31 - RGB 15, 19, 31 - RGB 14, 9, 21 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 19, 31 + RGB 14, 9, 21 + RGB 0, 0, 0 ZubatAnimatedObjPalette2: ; 0xdb3788 - RGB 31, 31, 31 - RGB 15, 19, 31 - RGB 14, 9, 21 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 19, 31 + RGB 14, 9, 21 + RGB 0, 0, 0 OddishAnimatedObjPalette1: ; 0xdb790 - RGB 31, 31, 31 - RGB 27, 29, 5 - RGB 5, 16, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 29, 5 + RGB 5, 16, 0 + RGB 0, 0, 0 OddishAnimatedObjPalette2: ; 0xdb798 - RGB 31, 31, 31 - RGB 27, 29, 5 - RGB 5, 16, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 29, 5 + RGB 5, 16, 0 + RGB 0, 0, 0 ParasAnimatedObjPalette1: ; 0xdb7a0 - RGB 31, 31, 31 - RGB 31, 15, 1 - RGB 22, 5, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 15, 1 + RGB 22, 5, 2 + RGB 0, 0, 0 ParasAnimatedObjPalette2: ; 0xdb7a8 - RGB 31, 31, 31 - RGB 31, 15, 1 - RGB 22, 5, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 15, 1 + RGB 22, 5, 2 + RGB 0, 0, 0 VenonatAnimatedObjPalette1: ; 0xdb7b0 - RGB 31, 31, 31 - RGB 24, 15, 28 - RGB 12, 5, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 15, 28 + RGB 12, 5, 18 + RGB 0, 0, 0 VenonatAnimatedObjPalette2: ; 0xdb7b8 - RGB 31, 31, 31 - RGB 24, 15, 28 - RGB 12, 5, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 15, 28 + RGB 12, 5, 18 + RGB 0, 0, 0 DiglettAnimatedObjPalette1: ; 0xdb7c0 - RGB 31, 31, 31 - RGB 31, 18, 1 - RGB 24, 9, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 1 + RGB 24, 9, 3 + RGB 0, 0, 0 DiglettAnimatedObjPalette2: ; 0xdb7c8 - RGB 31, 31, 31 - RGB 31, 18, 1 - RGB 24, 9, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 1 + RGB 24, 9, 3 + RGB 0, 0, 0 MeowthAnimatedObjPalette1: ; 0xdb7d0 - RGB 31, 31, 31 - RGB 30, 25, 16 - RGB 23, 12, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 25, 16 + RGB 23, 12, 6 + RGB 0, 0, 0 MeowthAnimatedObjPalette2: ; 0xdb7d8 - RGB 31, 31, 31 - RGB 30, 25, 16 - RGB 23, 12, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 25, 16 + RGB 23, 12, 6 + RGB 0, 0, 0 PsyduckAnimatedObjPalette1: ; 0xdb7e0 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 19, 17, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 0 + RGB 19, 17, 0 + RGB 0, 0, 0 PsyduckAnimatedObjPalette2: ; 0xdb7e8 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 19, 17, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 0 + RGB 19, 17, 0 + RGB 0, 0, 0 MankeyAnimatedObjPalette1: ; 0xdb7f0 - RGB 31, 31, 31 - RGB 31, 21, 19 - RGB 23, 8, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 21, 19 + RGB 23, 8, 4 + RGB 0, 0, 0 MankeyAnimatedObjPalette2: ; 0xdb7f8 - RGB 31, 31, 31 - RGB 31, 21, 19 - RGB 23, 8, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 21, 19 + RGB 23, 8, 4 + RGB 0, 0, 0 GrowlitheAnimatedObjPalette1: ; 0xdb800 - RGB 31, 31, 31 - RGB 31, 18, 1 - RGB 24, 9, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 1 + RGB 24, 9, 3 + RGB 0, 0, 0 GrowlitheAnimatedObjPalette2: ; 0xdb808 - RGB 31, 31, 31 - RGB 31, 18, 1 - RGB 24, 9, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 1 + RGB 24, 9, 3 + RGB 0, 0, 0 PoliwagAnimatedObjPalette1: ; 0xdb810 - RGB 31, 31, 31 - RGB 17, 19, 23 - RGB 9, 10, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 23 + RGB 9, 10, 12 + RGB 0, 0, 0 PoliwagAnimatedObjPalette2: ; 0xdb818 - RGB 31, 31, 31 - RGB 17, 19, 23 - RGB 9, 10, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 23 + RGB 9, 10, 12 + RGB 0, 0, 0 AbraAnimatedObjPalette1: ; 0xdb820 - RGB 31, 31, 31 - RGB 30, 24, 0 - RGB 17, 10, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 24, 0 + RGB 17, 10, 4 + RGB 0, 0, 0 AbraAnimatedObjPalette2: ; 0xdb828 - RGB 31, 31, 31 - RGB 30, 24, 0 - RGB 17, 10, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 24, 0 + RGB 17, 10, 4 + RGB 0, 0, 0 MachopAnimatedObjPalette1: ; 0xdb830 - RGB 31, 31, 31 - RGB 17, 19, 23 - RGB 9, 10, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 23 + RGB 9, 10, 12 + RGB 0, 0, 0 MachopAnimatedObjPalette2: ; 0xdb838 - RGB 31, 31, 31 - RGB 17, 19, 23 - RGB 9, 10, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 23 + RGB 9, 10, 12 + RGB 0, 0, 0 BellsproutAnimatedObjPalette1: ; 0xdb840 - RGB 31, 31, 31 - RGB 29, 26, 5 - RGB 5, 16, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 26, 5 + RGB 5, 16, 0 + RGB 0, 0, 0 BellsproutAnimatedObjPalette2: ; 0xdb848 - RGB 31, 31, 31 - RGB 29, 26, 5 - RGB 5, 16, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 26, 5 + RGB 5, 16, 0 + RGB 0, 0, 0 TentacoolAnimatedObjPalette1: ; 0xdb850 - RGB 31, 31, 31 - RGB 16, 22, 31 - RGB 0, 11, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 16, 22, 31 + RGB 0, 11, 22 + RGB 0, 0, 0 TentacoolAnimatedObjPalette2: ; 0xdb858 - RGB 31, 31, 31 - RGB 16, 22, 31 - RGB 0, 11, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 16, 22, 31 + RGB 0, 11, 22 + RGB 0, 0, 0 GeodudeAnimatedObjPalette1: ; 0xdb860 - RGB 31, 31, 31 - RGB 19, 23, 20 - RGB 8, 11, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 20 + RGB 8, 11, 7 + RGB 0, 0, 0 GeodudeAnimatedObjPalette2: ; 0xdb868 - RGB 31, 31, 31 - RGB 19, 23, 20 - RGB 8, 11, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 20 + RGB 8, 11, 7 + RGB 0, 0, 0 PonytaAnimatedObjPalette1: ; 0xdb870 - RGB 31, 31, 31 - RGB 31, 28, 11 - RGB 31, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 28, 11 + RGB 31, 6, 0 + RGB 0, 0, 0 PonytaAnimatedObjPalette2: ; 0xdb878 - RGB 31, 31, 31 - RGB 31, 28, 11 - RGB 31, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 28, 11 + RGB 31, 6, 0 + RGB 0, 0, 0 SlowpokeAnimatedObjPalette1: ; 0xdb880 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 31, 11, 9 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 31, 11, 9 + RGB 0, 0, 0 SlowpokeAnimatedObjPalette2: ; 0xdb888 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 31, 11, 9 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 31, 11, 9 + RGB 0, 0, 0 MagnemiteAnimatedObjPalette1: ; 0xdb890 - RGB 31, 31, 31 - RGB 17, 19, 23 - RGB 9, 10, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 23 + RGB 9, 10, 12 + RGB 0, 0, 0 MagnemiteAnimatedObjPalette2: ; 0xdb898 - RGB 31, 31, 31 - RGB 17, 19, 23 - RGB 9, 10, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 23 + RGB 9, 10, 12 + RGB 0, 0, 0 FarfetchdAnimatedObjPalette1: ; 0xdb8a0 - RGB 31, 31, 31 - RGB 31, 22, 5 - RGB 19, 11, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 22, 5 + RGB 19, 11, 4 + RGB 0, 0, 0 FarfetchdAnimatedObjPalette2: ; 0xdb8a8 - RGB 31, 31, 31 - RGB 31, 22, 5 - RGB 19, 11, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 22, 5 + RGB 19, 11, 4 + RGB 0, 0, 0 DoduoAnimatedObjPalette1: ; 0xdb8b0 - RGB 31, 31, 31 - RGB 30, 20, 5 - RGB 22, 5, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 20, 5 + RGB 22, 5, 2 + RGB 0, 0, 0 DoduoAnimatedObjPalette2: ; 0xdb8b8 - RGB 31, 31, 31 - RGB 30, 20, 5 - RGB 22, 5, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 20, 5 + RGB 22, 5, 2 + RGB 0, 0, 0 SeelAnimatedObjPalette1: ; 0xdb8c0 - RGB 31, 31, 31 - RGB 20, 24, 29 - RGB 8, 11, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 24, 29 + RGB 8, 11, 20 + RGB 0, 0, 0 SeelAnimatedObjPalette2: ; 0xdb8c8 - RGB 31, 31, 31 - RGB 20, 24, 29 - RGB 8, 11, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 24, 29 + RGB 8, 11, 20 + RGB 0, 0, 0 GrimerAnimatedObjPalette1: ; 0xdb8d0 - RGB 31, 31, 31 - RGB 27, 15, 31 - RGB 16, 7, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 15, 31 + RGB 16, 7, 19 + RGB 0, 0, 0 GrimerAnimatedObjPalette2: ; 0xdb8d8 - RGB 31, 31, 31 - RGB 27, 15, 31 - RGB 16, 7, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 15, 31 + RGB 16, 7, 19 + RGB 0, 0, 0 ShellderAnimatedObjPalette1: ; 0xdb8e0 - RGB 31, 31, 31 - RGB 26, 19, 29 - RGB 15, 11, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 19, 29 + RGB 15, 11, 17 + RGB 0, 0, 0 ShellderAnimatedObjPalette2: ; 0xdb8e8 - RGB 31, 31, 31 - RGB 26, 19, 29 - RGB 15, 11, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 19, 29 + RGB 15, 11, 17 + RGB 0, 0, 0 GastlyAnimatedObjPalette1: ; 0xdb8f0 - RGB 31, 31, 31 - RGB 25, 17, 28 - RGB 12, 7, 15 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 17, 28 + RGB 12, 7, 15 + RGB 0, 0, 0 GastlyAnimatedObjPalette2: ; 0xdb8f8 - RGB 31, 31, 31 - RGB 31, 23, 17 - RGB 23, 8, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 23, 17 + RGB 23, 8, 4 + RGB 0, 0, 0 OnixAnimatedObjPalette1: ; 0xdb900 - RGB 31, 31, 31 - RGB 17, 19, 23 - RGB 9, 10, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 23 + RGB 9, 10, 12 + RGB 0, 0, 0 OnixAnimatedObjPalette2: ; 0xdb908 - RGB 31, 31, 31 - RGB 17, 19, 23 - RGB 9, 10, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 23 + RGB 9, 10, 12 + RGB 0, 0, 0 DrowzeeAnimatedObjPalette1: ; 0xdb910 - RGB 31, 31, 31 - RGB 30, 24, 0 - RGB 17, 10, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 24, 0 + RGB 17, 10, 4 + RGB 0, 0, 0 DrowzeeAnimatedObjPalette2: ; 0xdb918 - RGB 31, 31, 31 - RGB 30, 24, 0 - RGB 17, 10, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 24, 0 + RGB 17, 10, 4 + RGB 0, 0, 0 KrabbyAnimatedObjPalette1: ; 0xdb920 - RGB 31, 31, 31 - RGB 31, 20, 8 - RGB 28, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 8 + RGB 28, 6, 0 + RGB 0, 0, 0 KrabbyAnimatedObjPalette2: ; 0xdb928 - RGB 31, 31, 31 - RGB 31, 20, 8 - RGB 28, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 8 + RGB 28, 6, 0 + RGB 0, 0, 0 VoltorbAnimatedObjPalette1: ; 0xdb930 - RGB 31, 31, 31 - RGB 31, 17, 14 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 14 + RGB 31, 0, 0 + RGB 0, 0, 0 VoltorbAnimatedObjPalette2: ; 0xdb938 - RGB 31, 31, 31 - RGB 31, 17, 14 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 14 + RGB 31, 0, 0 + RGB 0, 0, 0 ExeggcuteAnimatedObjPalette1: ; 0xdb940 - RGB 31, 31, 31 - RGB 31, 17, 16 - RGB 20, 8, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 16 + RGB 20, 8, 5 + RGB 0, 0, 0 ExeggcuteAnimatedObjPalette2: ; 0xdb948 - RGB 31, 31, 31 - RGB 31, 17, 16 - RGB 20, 8, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 16 + RGB 20, 8, 5 + RGB 0, 0, 0 CuboneAnimatedObjPalette1: ; 0xdb950 - RGB 31, 31, 31 - RGB 30, 15, 5 - RGB 18, 9, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 15, 5 + RGB 18, 9, 4 + RGB 0, 0, 0 CuboneAnimatedObjPalette2: ; 0xdb958 - RGB 31, 31, 31 - RGB 20, 22, 29 - RGB 13, 8, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 22, 29 + RGB 13, 8, 6 + RGB 0, 0, 0 HitmonleeAnimatedObjPalette1: ; 0xdb960 - RGB 31, 31, 31 - RGB 26, 13, 7 - RGB 16, 10, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 13, 7 + RGB 16, 10, 7 + RGB 0, 0, 0 HitmonleeAnimatedObjPalette2: ; 0xdb968 - RGB 31, 31, 31 - RGB 26, 13, 7 - RGB 16, 10, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 13, 7 + RGB 16, 10, 7 + RGB 0, 0, 0 HitmonchanAnimatedObjPalette1: ; 0xdb970 - RGB 31, 31, 31 - RGB 27, 17, 10 - RGB 24, 4, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 17, 10 + RGB 24, 4, 2 + RGB 0, 0, 0 HitmonchanAnimatedObjPalette2: ; 0xdb978 - RGB 31, 31, 31 - RGB 27, 17, 10 - RGB 24, 4, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 17, 10 + RGB 24, 4, 2 + RGB 0, 0, 0 LickitungAnimatedObjPalette1: ; 0xdb980 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 31, 11, 9 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 31, 11, 9 + RGB 0, 0, 0 LickitungAnimatedObjPalette2: ; 0xdb988 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 31, 11, 9 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 31, 11, 9 + RGB 0, 0, 0 KoffingAnimatedObjPalette1: ; 0xdb990 - RGB 31, 31, 31 - RGB 26, 19, 29 - RGB 15, 11, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 19, 29 + RGB 15, 11, 17 + RGB 0, 0, 0 KoffingAnimatedObjPalette2: ; 0xdb998 - RGB 31, 31, 31 - RGB 26, 19, 29 - RGB 15, 11, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 19, 29 + RGB 15, 11, 17 + RGB 0, 0, 0 RhyhornAnimatedObjPalette1: ; 0xdb9a0 - RGB 31, 31, 31 - RGB 26, 13, 24 - RGB 15, 4, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 13, 24 + RGB 15, 4, 14 + RGB 0, 0, 0 RhyhornAnimatedObjPalette2: ; 0xdb9a8 - RGB 31, 31, 31 - RGB 26, 13, 24 - RGB 15, 4, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 13, 24 + RGB 15, 4, 14 + RGB 0, 0, 0 ChanseyAnimatedObjPalette1: ; 0xdb9b0 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 31, 11, 9 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 31, 11, 9 + RGB 0, 0, 0 ChanseyAnimatedObjPalette2: ; 0xdb9b8 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 31, 11, 9 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 31, 11, 9 + RGB 0, 0, 0 TangelaAnimatedObjPalette1: ; 0xdb9c0 - RGB 31, 31, 31 - RGB 13, 19, 31 - RGB 1, 6, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 19, 31 + RGB 1, 6, 20 + RGB 0, 0, 0 TangelaAnimatedObjPalette2: ; 0xdb9c8 - RGB 31, 31, 31 - RGB 13, 19, 31 - RGB 1, 6, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 19, 31 + RGB 1, 6, 20 + RGB 0, 0, 0 KangaskhanAnimatedObjPalette1: ; 0xdb9d0 - RGB 31, 31, 31 - RGB 28, 21, 11 - RGB 16, 10, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 21, 11 + RGB 16, 10, 5 + RGB 0, 0, 0 KangaskhanAnimatedObjPalette2: ; 0xdb9d8 - RGB 31, 31, 31 - RGB 28, 21, 11 - RGB 16, 10, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 21, 11 + RGB 16, 10, 5 + RGB 0, 0, 0 HorseaAnimatedObjPalette1: ; 0xdb9e0 - RGB 31, 31, 31 - RGB 13, 19, 31 - RGB 1, 6, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 19, 31 + RGB 1, 6, 20 + RGB 0, 0, 0 HorseaAnimatedObjPalette2: ; 0xdb9e8 - RGB 31, 31, 31 - RGB 13, 19, 31 - RGB 1, 6, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 19, 31 + RGB 1, 6, 20 + RGB 0, 0, 0 GoldeenAnimatedObjPalette1: ; 0xdb9f0 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 29, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 29, 0, 0 + RGB 0, 0, 0 GoldeenAnimatedObjPalette2: ; 0xdb9f8 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 29, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 29, 0, 0 + RGB 0, 0, 0 StaryuAnimatedObjPalette1: ; 0xdba00 - RGB 31, 31, 31 - RGB 31, 22, 5 - RGB 19, 7, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 22, 5 + RGB 19, 7, 1 + RGB 0, 0, 0 StaryuAnimatedObjPalette2: ; 0xdba08 - RGB 31, 31, 31 - RGB 31, 22, 5 - RGB 19, 7, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 22, 5 + RGB 19, 7, 1 + RGB 0, 0, 0 MrMimeAnimatedObjPalette1: ; 0xdba10 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 29, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 29, 0, 0 + RGB 0, 0, 0 MrMimeAnimatedObjPalette2: ; 0xdba18 - RGB 31, 31, 31 - RGB 31, 18, 16 - RGB 29, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 16 + RGB 29, 0, 0 + RGB 0, 0, 0 ScytherAnimatedObjPalette1: ; 0xdba20 - RGB 31, 31, 31 - RGB 22, 29, 5 - RGB 6, 17, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 29, 5 + RGB 6, 17, 1 + RGB 0, 0, 0 ScytherAnimatedObjPalette2: ; 0xdba28 - RGB 31, 31, 31 - RGB 22, 29, 5 - RGB 6, 17, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 29, 5 + RGB 6, 17, 1 + RGB 0, 0, 0 JynxAnimatedObjPalette1: ; 0xdba30 - RGB 31, 31, 31 - RGB 31, 16, 16 - RGB 25, 1, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 16 + RGB 25, 1, 3 + RGB 0, 0, 0 JynxAnimatedObjPalette2: ; 0xdba38 - RGB 31, 31, 31 - RGB 31, 16, 16 - RGB 25, 1, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 16 + RGB 25, 1, 3 + RGB 0, 0, 0 ElectabuzzAnimatedObjPalette1: ; 0xdba40 - RGB 31, 31, 31 - RGB 31, 30, 0 - RGB 21, 14, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 30, 0 + RGB 21, 14, 1 + RGB 0, 0, 0 ElectabuzzAnimatedObjPalette2: ; 0xdba48 - RGB 31, 31, 31 - RGB 31, 30, 0 - RGB 21, 14, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 30, 0 + RGB 21, 14, 1 + RGB 0, 0, 0 MagmarAnimatedObjPalette1: ; 0xdba50 - RGB 31, 31, 31 - RGB 31, 23, 2 - RGB 31, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 23, 2 + RGB 31, 3, 0 + RGB 0, 0, 0 MagmarAnimatedObjPalette2: ; 0xdba58 - RGB 31, 31, 31 - RGB 31, 23, 2 - RGB 31, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 23, 2 + RGB 31, 3, 0 + RGB 0, 0, 0 PinsirAnimatedObjPalette1: ; 0xdba60 - RGB 31, 31, 31 - RGB 28, 20, 13 - RGB 17, 12, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 20, 13 + RGB 17, 12, 6 + RGB 0, 0, 0 PinsirAnimatedObjPalette2: ; 0xdba68 - RGB 31, 31, 31 - RGB 28, 20, 13 - RGB 17, 12, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 20, 13 + RGB 17, 12, 6 + RGB 0, 0, 0 TaurosAnimatedObjPalette1: ; 0xdba70 - RGB 31, 31, 31 - RGB 31, 21, 5 - RGB 20, 9, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 21, 5 + RGB 20, 9, 3 + RGB 0, 0, 0 TaurosAnimatedObjPalette2: ; 0xdba78 - RGB 31, 31, 31 - RGB 31, 21, 5 - RGB 20, 9, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 21, 5 + RGB 20, 9, 3 + RGB 0, 0, 0 PidgeottoBillboardBGPalette1: ; 0xdba80 - RGB 31, 31, 31 - RGB 30, 21, 0 - RGB 28, 6, 1 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 21, 0 + RGB 28, 6, 1 + RGB 3, 2, 0 PidgeottoBillboardBGPalette2: ; 0xdba88 - RGB 31, 31, 31 - RGB 30, 21, 0 - RGB 28, 6, 1 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 21, 0 + RGB 28, 6, 1 + RGB 3, 2, 0 PidgeotBillboardBGPalette1: ; 0xdba90 - RGB 31, 31, 31 - RGB 26, 23, 0 - RGB 28, 6, 1 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 26, 23, 0 + RGB 28, 6, 1 + RGB 3, 2, 0 PidgeotBillboardBGPalette2: ; 0xdba98 - RGB 31, 31, 31 - RGB 26, 23, 0 - RGB 28, 6, 1 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 26, 23, 0 + RGB 28, 6, 1 + RGB 3, 2, 0 RattataBillboardBGPalette1: ; 0xdbaa0 - RGB 31, 31, 31 - RGB 30, 16, 24 - RGB 21, 4, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 16, 24 + RGB 21, 4, 7 + RGB 0, 0, 0 RattataBillboardBGPalette2: ; 0xdbaa8 - RGB 31, 31, 31 - RGB 30, 16, 24 - RGB 21, 4, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 16, 24 + RGB 21, 4, 7 + RGB 0, 0, 0 RaticateBillboardBGPalette1: ; 0xdbab0 - RGB 31, 31, 31 - RGB 30, 24, 7 - RGB 27, 7, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 24, 7 + RGB 27, 7, 0 + RGB 3, 2, 0 RaticateBillboardBGPalette2: ; 0xdbab8 - RGB 31, 31, 31 - RGB 30, 24, 7 - RGB 27, 7, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 24, 7 + RGB 27, 7, 0 + RGB 3, 2, 0 SpearowBillboardBGPalette1: ; 0xdbac0 - RGB 31, 31, 31 - RGB 31, 24, 2 - RGB 30, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 24, 2 + RGB 30, 3, 0 + RGB 0, 0, 0 SpearowBillboardBGPalette2: ; 0xdbac8 - RGB 31, 31, 31 - RGB 31, 24, 2 - RGB 30, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 24, 2 + RGB 30, 3, 0 + RGB 0, 0, 0 FearowBillboardBGPalette1: ; 0xdbad0 - RGB 31, 31, 31 - RGB 31, 24, 2 - RGB 30, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 24, 2 + RGB 30, 3, 0 + RGB 0, 0, 0 FearowBillboardBGPalette2: ; 0xdbad8 - RGB 31, 31, 31 - RGB 31, 24, 2 - RGB 30, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 24, 2 + RGB 30, 3, 0 + RGB 0, 0, 0 EkansBillboardBGPalette1: ; 0xdbae0 - RGB 31, 31, 31 - RGB 30, 16, 24 - RGB 21, 4, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 16, 24 + RGB 21, 4, 7 + RGB 0, 0, 0 EkansBillboardBGPalette2: ; 0xdbae8 - RGB 31, 31, 31 - RGB 30, 16, 24 - RGB 21, 4, 7 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 16, 24 + RGB 21, 4, 7 + RGB 0, 0, 0 ArbokBillboardBGPalette1: ; 0xdbaf0 - RGB 31, 31, 31 - RGB 30, 16, 24 - RGB 26, 1, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 16, 24 + RGB 26, 1, 5 + RGB 0, 0, 0 ArbokBillboardBGPalette2: ; 0xdbaf8 - RGB 31, 31, 31 - RGB 30, 16, 24 - RGB 26, 1, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 16, 24 + RGB 26, 1, 5 + RGB 0, 0, 0 PikachuBillboardBGPalette1: ; 0xdbb00 - RGB 31, 31, 31 - RGB 30, 24, 4 - RGB 27, 7, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 24, 4 + RGB 27, 7, 0 + RGB 3, 2, 0 PikachuBillboardBGPalette2: ; 0xdbb08 - RGB 31, 31, 31 - RGB 30, 24, 4 - RGB 27, 7, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 24, 4 + RGB 27, 7, 0 + RGB 3, 2, 0 RaichuBillboardBGPalette1: ; 0xdbb10 - RGB 31, 31, 31 - RGB 30, 26, 3 - RGB 29, 16, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 26, 3 + RGB 29, 16, 0 + RGB 3, 2, 0 RaichuBillboardBGPalette2: ; 0xdbb18 - RGB 31, 31, 31 - RGB 30, 26, 3 - RGB 29, 16, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 30, 26, 3 + RGB 29, 16, 0 + RGB 3, 2, 0 SandshrewBillboardBGPalette1: ; 0xdbb20 - RGB 31, 31, 31 - RGB 31, 25, 7 - RGB 23, 14, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 25, 7 + RGB 23, 14, 0 + RGB 0, 0, 0 SandshrewBillboardBGPalette2: ; 0xdbb28 - RGB 31, 31, 31 - RGB 31, 25, 7 - RGB 23, 14, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 25, 7 + RGB 23, 14, 0 + RGB 0, 0, 0 SandslashBillboardBGPalette1: ; 0xdbb30 - RGB 31, 31, 31 - RGB 31, 25, 7 - RGB 25, 10, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 25, 7 + RGB 25, 10, 0 + RGB 3, 2, 0 SandslashBillboardBGPalette2: ; 0xdbb38 - RGB 31, 31, 31 - RGB 31, 25, 7 - RGB 25, 10, 0 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 25, 7 + RGB 25, 10, 0 + RGB 3, 2, 0 NidoranFBillboardBGPalette1: ; 0xdbb40 - RGB 31, 31, 31 - RGB 19, 23, 31 - RGB 8, 8, 24 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 31 + RGB 8, 8, 24 + RGB 0, 0, 0 NidoranFBillboardBGPalette2: ; 0xdbb48 - RGB 31, 31, 31 - RGB 19, 23, 31 - RGB 8, 8, 24 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 31 + RGB 8, 8, 24 + RGB 0, 0, 0 NidorinaBillboardBGPalette1: ; 0xdbb50 - RGB 31, 31, 31 - RGB 19, 23, 31 - RGB 8, 8, 24 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 31 + RGB 8, 8, 24 + RGB 0, 0, 0 NidorinaBillboardBGPalette2: ; 0xdbb58 - RGB 31, 31, 31 - RGB 19, 23, 31 - RGB 8, 8, 24 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 31 + RGB 8, 8, 24 + RGB 0, 0, 0 NidoqueenBillboardBGPalette1: ; 0xdbb60 - RGB 31, 31, 31 - RGB 10, 18, 31 - RGB 6, 5, 23 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 10, 18, 31 + RGB 6, 5, 23 + RGB 0, 0, 0 NidoqueenBillboardBGPalette2: ; 0xdbb68 - RGB 31, 31, 31 - RGB 10, 18, 31 - RGB 6, 5, 23 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 10, 18, 31 + RGB 6, 5, 23 + RGB 0, 0, 0 NidoranMBillboardBGPalette1: ; 0xdbb70 - RGB 31, 31, 31 - RGB 28, 16, 25 - RGB 17, 1, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 16, 25 + RGB 17, 1, 12 + RGB 0, 0, 0 NidoranMBillboardBGPalette2: ; 0xdbb78 - RGB 31, 31, 31 - RGB 28, 16, 25 - RGB 17, 1, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 16, 25 + RGB 17, 1, 12 + RGB 0, 0, 0 StageRedFieldTopGfx6: ; 0xdbb80 - INCBIN "gfx/stage/red_top/red_top_6.2bpp" - -INCBIN "baserom.gbc",$dbbc0,$dbc80 - $dbbc0 + INCBIN "gfx/stage/red_top/red_top_6.2bpp" + dr $dbbc0, $dbc80 StageMewtwoBonusCollisionMasks: ; 0xdbc80 - INCBIN "data/collision/masks/mewtwo_bonus.masks" + INCBIN "data/collision/masks/mewtwo_bonus.masks" MagikarpAnimatedObjPalette1: ; 0xdbd80 - RGB 31, 31, 31 - RGB 31, 16, 10 - RGB 28, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 10 + RGB 28, 6, 0 + RGB 0, 0, 0 MagikarpAnimatedObjPalette2: ; 0xdbd88 - RGB 31, 31, 31 - RGB 31, 16, 10 - RGB 28, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 10 + RGB 28, 6, 0 + RGB 0, 0, 0 LaprasAnimatedObjPalette1: ; 0xdbd90 - RGB 31, 31, 31 - RGB 11, 22, 31 - RGB 0, 10, 30 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 22, 31 + RGB 0, 10, 30 + RGB 0, 0, 0 LaprasAnimatedObjPalette2: ; 0xdbd98 - RGB 31, 31, 31 - RGB 11, 22, 31 - RGB 0, 10, 30 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 22, 31 + RGB 0, 10, 30 + RGB 0, 0, 0 DittoAnimatedObjPalette1: ; 0xdbda0 - RGB 31, 31, 31 - RGB 25, 18, 28 - RGB 15, 7, 16 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 18, 28 + RGB 15, 7, 16 + RGB 0, 0, 0 DittoAnimatedObjPalette2: ; 0xdbda8 - RGB 31, 31, 31 - RGB 25, 18, 28 - RGB 15, 7, 16 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 18, 28 + RGB 15, 7, 16 + RGB 0, 0, 0 EeveeAnimatedObjPalette1: ; 0xdbdb0 - RGB 31, 31, 31 - RGB 29, 20, 10 - RGB 17, 9, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 20, 10 + RGB 17, 9, 4 + RGB 0, 0, 0 EeveeAnimatedObjPalette2: ; 0xdbdb8 - RGB 31, 31, 31 - RGB 29, 20, 10 - RGB 17, 9, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 20, 10 + RGB 17, 9, 4 + RGB 0, 0, 0 PorygonAnimatedObjPalette1: ; 0xdbdc0 - RGB 31, 31, 31 - RGB 29, 8, 20 - RGB 0, 0, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 8, 20 + RGB 0, 0, 31 + RGB 0, 0, 0 PorygonAnimatedObjPalette2: ; 0xdbdc8 - RGB 31, 31, 31 - RGB 29, 8, 20 - RGB 0, 0, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 8, 20 + RGB 0, 0, 31 + RGB 0, 0, 0 OmanyteAnimatedObjPalette1: ; 0xdbdd0 - RGB 31, 31, 31 - RGB 13, 18, 31 - RGB 1, 6, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 18, 31 + RGB 1, 6, 20 + RGB 0, 0, 0 OmanyteAnimatedObjPalette2: ; 0xdbdd8 - RGB 31, 31, 31 - RGB 13, 18, 31 - RGB 1, 6, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 18, 31 + RGB 1, 6, 20 + RGB 0, 0, 0 KabutoAnimatedObjPalette1: ; 0xdbde0 - RGB 31, 31, 31 - RGB 29, 21, 6 - RGB 20, 7, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 21, 6 + RGB 20, 7, 1 + RGB 0, 0, 0 KabutoAnimatedObjPalette2: ; 0xdbde8 - RGB 31, 31, 31 - RGB 29, 21, 6 - RGB 20, 7, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 21, 6 + RGB 20, 7, 1 + RGB 0, 0, 0 AerodactylAnimatedObjPalette1: ; 0xdbdf0 - RGB 31, 31, 31 - RGB 25, 20, 29 - RGB 10, 8, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 20, 29 + RGB 10, 8, 17 + RGB 0, 0, 0 AerodactylAnimatedObjPalette2: ; 0xdbdf8 - RGB 31, 31, 31 - RGB 25, 20, 29 - RGB 10, 8, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 20, 29 + RGB 10, 8, 17 + RGB 0, 0, 0 SnorlaxAnimatedObjPalette1: ; 0xdbe00 - RGB 31, 31, 31 - RGB 31, 25, 9 - RGB 17, 7, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 25, 9 + RGB 17, 7, 2 + RGB 0, 0, 0 SnorlaxAnimatedObjPalette2: ; 0xdbe08 - RGB 31, 31, 31 - RGB 31, 25, 9 - RGB 17, 7, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 25, 9 + RGB 17, 7, 2 + RGB 0, 0, 0 ArticunoAnimatedObjPalette1: ; 0xdbe10 - RGB 31, 31, 31 - RGB 11, 22, 31 - RGB 0, 4, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 22, 31 + RGB 0, 4, 31 + RGB 0, 0, 0 ArticunoAnimatedObjPalette2: ; 0xdbe18 - RGB 31, 31, 31 - RGB 11, 22, 31 - RGB 0, 4, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 22, 31 + RGB 0, 4, 31 + RGB 0, 0, 0 ZapdosAnimatedObjPalette1: ; 0xdbe20 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 22, 7, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 22, 7, 3 + RGB 0, 0, 0 ZapdosAnimatedObjPalette2: ; 0xdbe28 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 22, 7, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 22, 7, 3 + RGB 0, 0, 0 MoltresAnimatedObjPalette1: ; 0xdbe30 - RGB 31, 31, 31 - RGB 31, 26, 0 - RGB 31, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 26, 0 + RGB 31, 3, 0 + RGB 0, 0, 0 MoltresAnimatedObjPalette2: ; 0xdbe38 - RGB 31, 31, 31 - RGB 31, 26, 0 - RGB 31, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 26, 0 + RGB 31, 3, 0 + RGB 0, 0, 0 DratiniAnimatedObjPalette1: ; 0xdbe40 - RGB 31, 31, 31 - RGB 20, 22, 31 - RGB 6, 8, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 22, 31 + RGB 6, 8, 18 + RGB 0, 0, 0 DratiniAnimatedObjPalette2: ; 0xdbe48 - RGB 31, 31, 31 - RGB 20, 22, 31 - RGB 6, 8, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 22, 31 + RGB 6, 8, 18 + RGB 0, 0, 0 MewtwoAnimatedObjPalette1: ; 0xdbe50 - RGB 31, 31, 31 - RGB 31, 19, 27 - RGB 23, 8, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 19, 27 + RGB 23, 8, 17 + RGB 0, 0, 0 MewtwoAnimatedObjPalette2: ; 0xdbe58 - RGB 31, 31, 31 - RGB 31, 19, 27 - RGB 23, 8, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 19, 27 + RGB 23, 8, 17 + RGB 0, 0, 0 MewAnimatedObjPalette1: ; 0xdbe60 - RGB 31, 31, 31 - RGB 31, 19, 27 - RGB 23, 8, 17 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 19, 27 + RGB 23, 8, 17 + RGB 0, 0, 0 MewAnimatedObjPalette2: ; 0xdbe68 - RGB 31, 31, 31 - RGB 31, 19, 27 - RGB 23, 8, 17 - RGB 0, 0, 0 - -INCBIN "baserom.gbc",$dbe70,$dc000 - $dbe70 + RGB 31, 31, 31 + RGB 31, 19, 27 + RGB 23, 8, 17 + RGB 0, 0, 0 + dr $dbe70, $dbe80 +Data_dbe80: + dr $dbe80, $dc000 SECTION "bank37", ROMX, BANK[$37] StageSharedArrowsGfx: ; 0xdc000 - INCBIN "gfx/stage/shared/arrows.2bpp" - -INCBIN "baserom.gbc",$dc080,$dc100 - $dc080 + INCBIN "gfx/stage/shared/arrows.2bpp" + dr $dc080, $dc100 NidorinoBillboardBGPalette1: ; 0xdc100 - RGB 31, 31, 31 - RGB 31, 15, 24 - RGB 21, 3, 15 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 15, 24 + RGB 21, 3, 15 + RGB 0, 0, 0 NidorinoBillboardBGPalette2: ; 0xdc108 - RGB 31, 31, 31 - RGB 31, 15, 24 - RGB 21, 3, 15 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 15, 24 + RGB 21, 3, 15 + RGB 0, 0, 0 NidokingBillboardBGPalette1: ; 0xdc110 - RGB 31, 31, 31 - RGB 25, 14, 31 - RGB 17, 0, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 14, 31 + RGB 17, 0, 26 + RGB 0, 0, 0 NidokingBillboardBGPalette2: ; 0xdc118 - RGB 31, 31, 31 - RGB 25, 14, 31 - RGB 17, 0, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 14, 31 + RGB 17, 0, 26 + RGB 0, 0, 0 ClefairyBillboardBGPalette1: ; 0xdc120 - RGB 31, 31, 31 - RGB 31, 14, 18 - RGB 20, 8, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 14, 18 + RGB 20, 8, 4 + RGB 0, 0, 0 ClefairyBillboardBGPalette2: ; 0xdc128 - RGB 31, 31, 31 - RGB 31, 14, 18 - RGB 20, 8, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 14, 18 + RGB 20, 8, 4 + RGB 0, 0, 0 ClefableBillboardBGPalette1: ; 0xdc130 - RGB 31, 31, 31 - RGB 31, 14, 18 - RGB 20, 8, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 14, 18 + RGB 20, 8, 4 + RGB 0, 0, 0 ClefableBillboardBGPalette2: ; 0xdc138 - RGB 31, 31, 31 - RGB 31, 14, 18 - RGB 20, 8, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 14, 18 + RGB 20, 8, 4 + RGB 0, 0, 0 VulpixBillboardBGPalette1: ; 0xdc140 - RGB 31, 31, 31 - RGB 31, 17, 13 - RGB 25, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 13 + RGB 25, 6, 0 + RGB 0, 0, 0 VulpixBillboardBGPalette2: ; 0xdc148 - RGB 31, 31, 31 - RGB 31, 17, 13 - RGB 25, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 13 + RGB 25, 6, 0 + RGB 0, 0, 0 NinetalesBillboardBGPalette1: ; 0xdc150 - RGB 31, 31, 31 - RGB 28, 26, 0 - RGB 23, 12, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 26, 0 + RGB 23, 12, 3 + RGB 0, 0, 0 NinetalesBillboardBGPalette2: ; 0xdc158 - RGB 31, 31, 31 - RGB 28, 26, 0 - RGB 23, 12, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 26, 0 + RGB 23, 12, 3 + RGB 0, 0, 0 JigglypuffBillboardBGPalette1: ; 0xdc160 - RGB 31, 31, 31 - RGB 31, 16, 19 - RGB 22, 6, 11 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 16, 19 + RGB 22, 6, 11 + RGB 3, 2, 0 JigglypuffBillboardBGPalette2: ; 0xdc168 - RGB 31, 31, 31 - RGB 31, 16, 19 - RGB 13, 2, 21 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 19 + RGB 13, 2, 21 + RGB 0, 0, 0 WigglytuffBillboardBGPalette1: ; 0xdc170 - RGB 31, 31, 31 - RGB 31, 16, 19 - RGB 22, 6, 11 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 16, 19 + RGB 22, 6, 11 + RGB 3, 2, 0 WigglytuffBillboardBGPalette2: ; 0xdc178 - RGB 31, 31, 31 - RGB 31, 16, 19 - RGB 13, 5, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 19 + RGB 13, 5, 19 + RGB 0, 0, 0 ZubatBillboardBGPalette1: ; 0xdc180 - RGB 31, 31, 31 - RGB 14, 15, 30 - RGB 10, 5, 26 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 14, 15, 30 + RGB 10, 5, 26 + RGB 3, 2, 0 ZubatBillboardBGPalette2: ; 0xdc188 - RGB 31, 31, 31 - RGB 14, 15, 30 - RGB 10, 5, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 14, 15, 30 + RGB 10, 5, 26 + RGB 0, 0, 0 GolbatBillboardBGPalette1: ; 0xdc190 - RGB 31, 31, 31 - RGB 15, 15, 30 - RGB 10, 5, 26 - RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 15, 15, 30 + RGB 10, 5, 26 + RGB 3, 2, 0 GolbatBillboardBGPalette2: ; 0xdc198 - RGB 31, 31, 31 - RGB 15, 15, 30 - RGB 10, 5, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 15, 30 + RGB 10, 5, 26 + RGB 0, 0, 0 OddishBillboardBGPalette1: ; 0xdc1a0 - RGB 31, 31, 31 - RGB 22, 28, 2 - RGB 7, 18, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 28, 2 + RGB 7, 18, 0 + RGB 0, 0, 0 OddishBillboardBGPalette2: ; 0xdc1a8 - RGB 31, 31, 31 - RGB 31, 6, 0 - RGB 4, 8, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 6, 0 + RGB 4, 8, 14 + RGB 0, 0, 0 GloomBillboardBGPalette1: ; 0xdc1b0 - RGB 31, 31, 31 - RGB 30, 19, 15 - RGB 28, 4, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 19, 15 + RGB 28, 4, 0 + RGB 0, 0, 0 GloomBillboardBGPalette2: ; 0xdc1b8 - RGB 31, 31, 31 - RGB 19, 20, 31 - RGB 4, 8, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 20, 31 + RGB 4, 8, 14 + RGB 0, 0, 0 VileplumeBillboardBGPalette1: ; 0xdc1c0 - RGB 31, 31, 31 - RGB 30, 19, 15 - RGB 28, 4, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 19, 15 + RGB 28, 4, 0 + RGB 0, 0, 0 VileplumeBillboardBGPalette2: ; 0xdc1c8 - RGB 31, 31, 31 - RGB 19, 20, 31 - RGB 4, 8, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 20, 31 + RGB 4, 8, 14 + RGB 0, 0, 0 ParasBillboardBGPalette1: ; 0xdc1d0 - RGB 31, 31, 31 - RGB 31, 20, 11 - RGB 23, 6, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 11 + RGB 23, 6, 3 + RGB 0, 0, 0 ParasBillboardBGPalette2: ; 0xdc1d8 - RGB 31, 31, 31 - RGB 31, 20, 11 - RGB 23, 6, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 11 + RGB 23, 6, 3 + RGB 0, 0, 0 ParasectBillboardBGPalette1: ; 0xdc1e0 - RGB 31, 31, 31 - RGB 31, 20, 11 - RGB 23, 6, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 11 + RGB 23, 6, 3 + RGB 0, 0, 0 ParasectBillboardBGPalette2: ; 0xdc1e8 - RGB 31, 31, 31 - RGB 31, 20, 11 - RGB 23, 6, 3 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 11 + RGB 23, 6, 3 + RGB 0, 0, 0 VenonatBillboardBGPalette1: ; 0xdc1f0 - RGB 31, 31, 31 - RGB 24, 15, 28 - RGB 12, 5, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 15, 28 + RGB 12, 5, 18 + RGB 0, 0, 0 VenonatBillboardBGPalette2: ; 0xdc1f8 - RGB 31, 31, 31 - RGB 24, 15, 28 - RGB 12, 5, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 15, 28 + RGB 12, 5, 18 + RGB 0, 0, 0 VenomothBillboardBGPalette1: ; 0xdc200 - RGB 31, 31, 31 - RGB 27, 17, 29 - RGB 17, 7, 16 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 17, 29 + RGB 17, 7, 16 + RGB 0, 0, 0 VenomothBillboardBGPalette2: ; 0xdc208 - RGB 31, 31, 31 - RGB 27, 17, 29 - RGB 17, 7, 16 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 17, 29 + RGB 17, 7, 16 + RGB 0, 0, 0 DiglettBillboardBGPalette1: ; 0xdc210 - RGB 31, 31, 31 - RGB 24, 17, 5 - RGB 15, 7, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 17, 5 + RGB 15, 7, 0 + RGB 0, 0, 0 DiglettBillboardBGPalette2: ; 0xdc218 - RGB 31, 31, 31 - RGB 24, 17, 5 - RGB 23, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 17, 5 + RGB 23, 3, 0 + RGB 0, 0, 0 DugtrioBillboardBGPalette1: ; 0xdc220 - RGB 31, 31, 31 - RGB 24, 17, 5 - RGB 15, 7, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 17, 5 + RGB 15, 7, 0 + RGB 0, 0, 0 DugtrioBillboardBGPalette2: ; 0xdc228 - RGB 31, 31, 31 - RGB 24, 17, 5 - RGB 23, 3, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 17, 5 + RGB 23, 3, 0 + RGB 0, 0, 0 MeowthBillboardBGPalette1: ; 0xdc230 - RGB 31, 31, 31 - RGB 29, 28, 7 - RGB 19, 10, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 28, 7 + RGB 19, 10, 0 + RGB 0, 0, 0 MeowthBillboardBGPalette2: ; 0xdc238 - RGB 31, 31, 31 - RGB 29, 28, 7 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 28, 7 + RGB 31, 0, 0 + RGB 0, 0, 0 PersianBillboardBGPalette1: ; 0xdc240 - RGB 31, 31, 31 - RGB 29, 28, 7 - RGB 19, 10, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 28, 7 + RGB 19, 10, 0 + RGB 0, 0, 0 PersianBillboardBGPalette2: ; 0xdc248 - RGB 31, 31, 31 - RGB 29, 28, 7 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 28, 7 + RGB 31, 0, 0 + RGB 0, 0, 0 PsyduckBillboardBGPalette1: ; 0xdc250 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 19, 17, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 0 + RGB 19, 17, 0 + RGB 0, 0, 0 PsyduckBillboardBGPalette2: ; 0xdc258 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 19, 17, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 0 + RGB 19, 17, 0 + RGB 0, 0, 0 GolduckBillboardBGPalette1: ; 0xdc260 - RGB 31, 31, 31 - RGB 26, 25, 7 - RGB 13, 15, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 25, 7 + RGB 13, 15, 27 + RGB 0, 0, 0 GolduckBillboardBGPalette2: ; 0xdc268 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 13, 15, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 13, 15, 27 + RGB 0, 0, 0 MankeyBillboardBGPalette1: ; 0xdc270 - RGB 31, 31, 31 - RGB 28, 20, 17 - RGB 22, 9, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 20, 17 + RGB 22, 9, 5 + RGB 0, 0, 0 MankeyBillboardBGPalette2: ; 0xdc278 - RGB 31, 31, 31 - RGB 28, 20, 17 - RGB 22, 9, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 20, 17 + RGB 22, 9, 5 + RGB 0, 0, 0 PrimeapeBillboardBGPalette1: ; 0xdc280 - RGB 31, 31, 31 - RGB 28, 20, 17 - RGB 22, 9, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 20, 17 + RGB 22, 9, 5 + RGB 0, 0, 0 PrimeapeBillboardBGPalette2: ; 0xdc288 - RGB 31, 31, 31 - RGB 15, 15, 15 - RGB 22, 9, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 15, 15 + RGB 22, 9, 5 + RGB 0, 0, 0 GrowlitheBillboardBGPalette1: ; 0xdc290 - RGB 31, 31, 31 - RGB 28, 27, 10 - RGB 26, 12, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 27, 10 + RGB 26, 12, 0 + RGB 0, 0, 0 GrowlitheBillboardBGPalette2: ; 0xdc298 - RGB 31, 31, 31 - RGB 28, 27, 10 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 27, 10 + RGB 31, 0, 0 + RGB 0, 0, 0 ArcanineBillboardBGPalette1: ; 0xdc2a0 - RGB 31, 31, 31 - RGB 28, 27, 10 - RGB 26, 12, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 27, 10 + RGB 26, 12, 0 + RGB 0, 0, 0 ArcanineBillboardBGPalette2: ; 0xdc2a8 - RGB 31, 31, 31 - RGB 28, 27, 10 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 27, 10 + RGB 31, 0, 0 + RGB 0, 0, 0 PoliwagBillboardBGPalette1: ; 0xdc2b0 - RGB 31, 31, 31 - RGB 20, 20, 27 - RGB 11, 11, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 27 + RGB 11, 11, 18 + RGB 0, 0, 0 PoliwagBillboardBGPalette2: ; 0xdc2b8 - RGB 31, 31, 31 - RGB 31, 17, 14 - RGB 11, 11, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 17, 14 + RGB 11, 11, 18 + RGB 0, 0, 0 PoliwhirlBillboardBGPalette1: ; 0xdc2c0 - RGB 31, 31, 31 - RGB 20, 20, 27 - RGB 11, 11, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 27 + RGB 11, 11, 18 + RGB 0, 0, 0 PoliwhirlBillboardBGPalette2: ; 0xdc2c8 - RGB 31, 31, 31 - RGB 20, 20, 27 - RGB 11, 11, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 27 + RGB 11, 11, 18 + RGB 0, 0, 0 PoliwrathBillboardBGPalette1: ; 0xdc2d0 - RGB 31, 31, 31 - RGB 20, 20, 27 - RGB 11, 11, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 27 + RGB 11, 11, 18 + RGB 0, 0, 0 PoliwrathBillboardBGPalette2: ; 0xdc2d8 - RGB 31, 31, 31 - RGB 20, 20, 27 - RGB 11, 11, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 27 + RGB 11, 11, 18 + RGB 0, 0, 0 AbraBillboardBGPalette1: ; 0xdc2e0 - RGB 31, 31, 31 - RGB 31, 30, 0 - RGB 19, 11, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 30, 0 + RGB 19, 11, 6 + RGB 0, 0, 0 AbraBillboardBGPalette2: ; 0xdc2e8 - RGB 31, 31, 31 - RGB 31, 30, 0 - RGB 19, 11, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 30, 0 + RGB 19, 11, 6 + RGB 0, 0, 0 KadabraBillboardBGPalette1: ; 0xdc2f0 - RGB 31, 31, 31 - RGB 31, 30, 0 - RGB 19, 11, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 30, 0 + RGB 19, 11, 6 + RGB 0, 0, 0 KadabraBillboardBGPalette2: ; 0xdc2f8 - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 19, 11, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 21, 21, 21 + RGB 19, 11, 6 + RGB 0, 0, 0 HypnoBillboardBGPalette1: ; 0xdc300 - RGB 31, 31, 31 - RGB 31, 30, 0 - RGB 21, 15, 5 + RGB 31, 31, 31 + RGB 31, 30, 0 + RGB 21, 15, 5 HypnoBillboardBGPalette2: ; 0xdc308 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 19, 23, 31 - RGB 21, 15, 5 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 31 + RGB 21, 15, 5 + RGB 0, 0, 0 KrabbyBillboardBGPalette1: ; 0xdc310 - RGB 31, 31, 31 - RGB 31, 16, 17 - RGB 25, 6, 0 + RGB 31, 31, 31 + RGB 31, 16, 17 + RGB 25, 6, 0 KrabbyBillboardBGPalette2: ; 0xdc318 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 16, 17 - RGB 25, 6, 0 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 17 + RGB 25, 6, 0 + RGB 0, 0, 0 KinglerBillboardBGPalette1: ; 0xdc320 - RGB 31, 31, 31 - RGB 31, 16, 17 - RGB 25, 6, 0 + RGB 31, 31, 31 + RGB 31, 16, 17 + RGB 25, 6, 0 KinglerBillboardBGPalette2: ; 0xdc328 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 16, 17 - RGB 25, 6, 0 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 17 + RGB 25, 6, 0 + RGB 0, 0, 0 VoltorbBillboardBGPalette1: ; 0xdc330 - RGB 31, 31, 31 - RGB 31, 16, 17 - RGB 25, 6, 0 + RGB 31, 31, 31 + RGB 31, 16, 17 + RGB 25, 6, 0 VoltorbBillboardBGPalette2: ; 0xdc338 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 19, 23, 31 - RGB 25, 6, 0 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 31 + RGB 25, 6, 0 + RGB 0, 0, 0 ElectrodeBillboardBGPalette1: ; 0xdc340 - RGB 31, 31, 31 - RGB 31, 15, 12 - RGB 25, 6, 0 + RGB 31, 31, 31 + RGB 31, 15, 12 + RGB 25, 6, 0 ElectrodeBillboardBGPalette2: ; 0xdc348 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 19, 23, 31 - RGB 25, 6, 0 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 23, 31 + RGB 25, 6, 0 + RGB 0, 0, 0 ExeggcuteBillboardBGPalette1: ; 0xdc350 - RGB 31, 31, 31 - RGB 31, 15, 12 - RGB 18, 8, 6 + RGB 31, 31, 31 + RGB 31, 15, 12 + RGB 18, 8, 6 ExeggcuteBillboardBGPalette2: ; 0xdc358 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 15, 12 - RGB 18, 8, 6 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 15, 12 + RGB 18, 8, 6 + RGB 0, 0, 0 ExeggutorBillboardBGPalette1: ; 0xdc360 - RGB 31, 31, 31 - RGB 31, 27, 5 - RGB 7, 18, 0 + RGB 31, 31, 31 + RGB 31, 27, 5 + RGB 7, 18, 0 ExeggutorBillboardBGPalette2: ; 0xdc368 - RGB 3, 2, 0 - RGB 31, 31, 31 - RGB 31, 23, 5 - RGB 20, 10, 3 - RGB 0, 0, 0 + RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 23, 5 + RGB 20, 10, 3 + RGB 0, 0, 0 CuboneBillboardBGPalette1: ; 0xdc370 - RGB 31, 31, 31 - RGB 18, 20, 27 - RGB 20, 10, 3 + RGB 31, 31, 31 + RGB 18, 20, 27 + RGB 20, 10, 3 CuboneBillboardBGPalette2: ; 0xdc378 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 29, 23, 10 - RGB 20, 10, 3 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 23, 10 + RGB 20, 10, 3 + RGB 0, 0, 0 MarowakBillboardBGPalette1: ; 0xdc380 - RGB 31, 31, 31 - RGB 18, 20, 27 - RGB 20, 10, 3 + RGB 31, 31, 31 + RGB 18, 20, 27 + RGB 20, 10, 3 MarowakBillboardBGPalette2: ; 0xdc388 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 29, 23, 10 - RGB 20, 10, 3 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 23, 10 + RGB 20, 10, 3 + RGB 0, 0, 0 HitmonleeBillboardBGPalette1: ; 0xdc390 - RGB 31, 31, 31 - RGB 29, 23, 10 - RGB 21, 13, 3 + RGB 31, 31, 31 + RGB 29, 23, 10 + RGB 21, 13, 3 HitmonleeBillboardBGPalette2: ; 0xdc398 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 29, 23, 10 - RGB 21, 13, 3 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 23, 10 + RGB 21, 13, 3 + RGB 0, 0, 0 HitmonchanBillboardBGPalette1: ; 0xdc3a0 - RGB 31, 31, 31 - RGB 31, 21, 13 - RGB 23, 3, 3 + RGB 31, 31, 31 + RGB 31, 21, 13 + RGB 23, 3, 3 HitmonchanBillboardBGPalette2: ; 0xdc3a8 - RGB 3, 2, 0 - RGB 31, 31, 31 - RGB 31, 21, 13 - RGB 22, 3, 25 - RGB 0, 0, 0 + RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 31, 21, 13 + RGB 22, 3, 25 + RGB 0, 0, 0 LickitungBillboardBGPalette1: ; 0xdc3b0 - RGB 31, 31, 31 - RGB 31, 21, 21 - RGB 31, 9, 8 + RGB 31, 31, 31 + RGB 31, 21, 21 + RGB 31, 9, 8 LickitungBillboardBGPalette2: ; 0xdc3b8 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 20, 12 - RGB 31, 9, 8 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 12 + RGB 31, 9, 8 + RGB 0, 0, 0 KoffingBillboardBGPalette1: ; 0xdc3c0 - RGB 31, 31, 31 - RGB 21, 13, 28 - RGB 10, 7, 14 + RGB 31, 31, 31 + RGB 21, 13, 28 + RGB 10, 7, 14 KoffingBillboardBGPalette2: ; 0xdc3c8 - RGB 3, 2, 0 - RGB 31, 31, 31 - RGB 21, 13, 28 - RGB 21, 4, 7 - RGB 0, 0, 0 + RGB 3, 2, 0 + RGB 31, 31, 31 + RGB 21, 13, 28 + RGB 21, 4, 7 + RGB 0, 0, 0 WeezingBillboardBGPalette1: ; 0xdc3d0 - RGB 31, 31, 31 - RGB 21, 13, 28 - RGB 10, 7, 14 + RGB 31, 31, 31 + RGB 21, 13, 28 + RGB 10, 7, 14 WeezingBillboardBGPalette2: ; 0xdc3d8 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 21, 13, 28 - RGB 21, 4, 7 - RGB 3, 2, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 21, 13, 28 + RGB 21, 4, 7 + RGB 3, 2, 0 RhyhornBillboardBGPalette1: ; 0xdc3e0 - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 13, 11, 16 + RGB 31, 31, 31 + RGB 21, 21, 21 + RGB 13, 11, 16 RhyhornBillboardBGPalette2: ; 0xdc3e8 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 13, 11, 16 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 21, 21, 21 + RGB 13, 11, 16 + RGB 0, 0, 0 RhydonBillboardBGPalette1: ; 0xdc3f0 - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 13, 11, 16 + RGB 31, 31, 31 + RGB 21, 21, 21 + RGB 13, 11, 16 RhydonBillboardBGPalette2: ; 0xdc3f8 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 13, 11, 16 - RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 21, 21, 21 + RGB 13, 11, 16 + RGB 0, 0, 0 MagnemiteBillboardBGPalette1: ; 0xdc400 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 11, 11, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 11, 11, 20 + RGB 0, 0, 0 MagnemiteBillboardBGPalette2: ; 0xdc408 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 31, 0, 0 + RGB 0, 0, 0 MagnetonBillboardBGPalette1: ; 0xdc410 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 11, 11, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 11, 11, 20 + RGB 0, 0, 0 MagnetonBillboardBGPalette2: ; 0xdc418 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 11, 11, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 11, 11, 20 + RGB 0, 0, 0 FarfetchdBillboardBGPalette1: ; 0xdc420 - RGB 31, 31, 31 - RGB 31, 29, 13 - RGB 20, 12, 9 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 13 + RGB 20, 12, 9 + RGB 0, 0, 0 FarfetchdBillboardBGPalette2: ; 0xdc428 - RGB 31, 31, 31 - RGB 21, 31, 17 - RGB 7, 20, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 21, 31, 17 + RGB 7, 20, 6 + RGB 0, 0, 0 DoduoBillboardBGPalette1: ; 0xdc430 - RGB 31, 31, 31 - RGB 29, 26, 14 - RGB 26, 16, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 26, 14 + RGB 26, 16, 4 + RGB 0, 0, 0 DoduoBillboardBGPalette2: ; 0xdc438 - RGB 31, 31, 31 - RGB 29, 26, 14 - RGB 26, 16, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 26, 14 + RGB 26, 16, 4 + RGB 0, 0, 0 DodrioBillboardBGPalette1: ; 0xdc440 - RGB 31, 31, 31 - RGB 29, 26, 14 - RGB 26, 16, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 26, 14 + RGB 26, 16, 4 + RGB 0, 0, 0 DodrioBillboardBGPalette2: ; 0xdc448 - RGB 31, 31, 31 - RGB 29, 26, 14 - RGB 26, 16, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 26, 14 + RGB 26, 16, 4 + RGB 0, 0, 0 SeelBillboardBGPalette1: ; 0xdc450 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 11, 11, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 11, 11, 20 + RGB 0, 0, 0 SeelBillboardBGPalette2: ; 0xdc458 - RGB 31, 31, 31 - RGB 29, 26, 14 - RGB 31, 11, 10 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 26, 14 + RGB 31, 11, 10 + RGB 0, 0, 0 DewgongBillboardBGPalette1: ; 0xdc460 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 11, 11, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 11, 11, 20 + RGB 0, 0, 0 DewgongBillboardBGPalette2: ; 0xdc468 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 11, 11, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 11, 11, 20 + RGB 0, 0, 0 GrimerBillboardBGPalette1: ; 0xdc470 - RGB 31, 31, 31 - RGB 27, 18, 30 - RGB 15, 7, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 18, 30 + RGB 15, 7, 19 + RGB 0, 0, 0 GrimerBillboardBGPalette2: ; 0xdc478 - RGB 31, 31, 31 - RGB 27, 18, 30 - RGB 15, 7, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 18, 30 + RGB 15, 7, 19 + RGB 0, 0, 0 MukBillboardBGPalette1: ; 0xdc480 - RGB 31, 31, 31 - RGB 27, 18, 30 - RGB 15, 7, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 18, 30 + RGB 15, 7, 19 + RGB 0, 0, 0 MukBillboardBGPalette2: ; 0xdc488 - RGB 31, 31, 31 - RGB 27, 18, 30 - RGB 15, 7, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 18, 30 + RGB 15, 7, 19 + RGB 0, 0, 0 ShellderBillboardBGPalette1: ; 0xdc490 - RGB 31, 31, 31 - RGB 24, 21, 25 - RGB 13, 11, 15 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 21, 25 + RGB 13, 11, 15 + RGB 0, 0, 0 ShellderBillboardBGPalette2: ; 0xdc498 - RGB 31, 31, 31 - RGB 24, 21, 25 - RGB 31, 13, 13 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 21, 25 + RGB 31, 13, 13 + RGB 0, 0, 0 CloysterBillboardBGPalette1: ; 0xdc4a0 - RGB 31, 31, 31 - RGB 25, 21, 26 - RGB 14, 11, 16 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 21, 26 + RGB 14, 11, 16 + RGB 0, 0, 0 CloysterBillboardBGPalette2: ; 0xdc4a8 - RGB 31, 31, 31 - RGB 25, 21, 26 - RGB 14, 11, 16 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 25, 21, 26 + RGB 14, 11, 16 + RGB 0, 0, 0 GastlyBillboardBGPalette1: ; 0xdc4b0 - RGB 31, 31, 31 - RGB 26, 18, 27 - RGB 15, 8, 16 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 18, 27 + RGB 15, 8, 16 + RGB 0, 0, 0 GastlyBillboardBGPalette2: ; 0xdc4b8 - RGB 31, 31, 31 - RGB 26, 18, 27 - RGB 26, 10, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 18, 27 + RGB 26, 10, 8 + RGB 0, 0, 0 HaunterBillboardBGPalette1: ; 0xdc4c0 - RGB 31, 31, 31 - RGB 26, 18, 27 - RGB 15, 8, 16 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 18, 27 + RGB 15, 8, 16 + RGB 0, 0, 0 HaunterBillboardBGPalette2: ; 0xdc4c8 - RGB 31, 31, 31 - RGB 31, 13, 13 - RGB 14, 9, 15 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 13, 13 + RGB 14, 9, 15 + RGB 0, 0, 0 GengarBillboardBGPalette1: ; 0xdc4d0 - RGB 31, 31, 31 - RGB 18, 21, 23 - RGB 10, 12, 13 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 18, 21, 23 + RGB 10, 12, 13 + RGB 0, 0, 0 GengarBillboardBGPalette2: ; 0xdc4d8 - RGB 31, 31, 31 - RGB 31, 11, 6 - RGB 10, 12, 13 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 11, 6 + RGB 10, 12, 13 + RGB 0, 0, 0 OnixBillboardBGPalette1: ; 0xdc4e0 - RGB 31, 31, 31 - RGB 20, 20, 24 - RGB 10, 10, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 24 + RGB 10, 10, 14 + RGB 0, 0, 0 OnixBillboardBGPalette2: ; 0xdc4e8 - RGB 31, 31, 31 - RGB 20, 20, 24 - RGB 10, 10, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 24 + RGB 10, 10, 14 + RGB 0, 0, 0 DrowzeeBillboardBGPalette1: ; 0xdc4f0 - RGB 31, 31, 31 - RGB 31, 30, 0 - RGB 21, 19, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 30, 0 + RGB 21, 19, 0 + RGB 0, 0, 0 DrowzeeBillboardBGPalette2: ; 0xdc4f8 - RGB 31, 31, 31 - RGB 31, 30, 0 - RGB 21, 19, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 30, 0 + RGB 21, 19, 0 + RGB 0, 0, 0 AlakazamBillboardBGPalette1: ; 0xdc500 - RGB 31, 31, 31 - RGB 31, 30, 0 - RGB 19, 11, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 30, 0 + RGB 19, 11, 6 + RGB 0, 0, 0 AlakazamBillboardBGPalette2: ; 0xdc508 - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 19, 11, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 21, 21, 21 + RGB 19, 11, 6 + RGB 0, 0, 0 MachopBillboardBGPalette1: ; 0xdc510 - RGB 31, 31, 31 - RGB 19, 19, 21 - RGB 12, 12, 13 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 19, 21 + RGB 12, 12, 13 + RGB 0, 0, 0 MachopBillboardBGPalette2: ; 0xdc518 - RGB 31, 31, 31 - RGB 19, 19, 21 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 19, 19, 21 + RGB 31, 0, 0 + RGB 0, 0, 0 MachokeBillboardBGPalette1: ; 0xdc520 - RGB 31, 31, 31 - RGB 18, 18, 22 - RGB 11, 11, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 18, 18, 22 + RGB 11, 11, 14 + RGB 0, 0, 0 MachokeBillboardBGPalette2: ; 0xdc528 - RGB 31, 31, 31 - RGB 18, 18, 22 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 18, 18, 22 + RGB 31, 0, 0 + RGB 0, 0, 0 MachampBillboardBGPalette1: ; 0xdc530 - RGB 31, 31, 31 - RGB 18, 21, 22 - RGB 9, 12, 13 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 18, 21, 22 + RGB 9, 12, 13 + RGB 0, 0, 0 MachampBillboardBGPalette2: ; 0xdc538 - RGB 31, 31, 31 - RGB 18, 21, 22 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 18, 21, 22 + RGB 31, 0, 0 + RGB 0, 0, 0 BellsproutBillboardBGPalette1: ; 0xdc540 - RGB 31, 31, 31 - RGB 26, 29, 7 - RGB 11, 20, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 29, 7 + RGB 11, 20, 0 + RGB 0, 0, 0 BellsproutBillboardBGPalette2: ; 0xdc548 - RGB 31, 31, 31 - RGB 26, 29, 7 - RGB 31, 11, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 29, 7 + RGB 31, 11, 8 + RGB 0, 0, 0 WeepinbellBillboardBGPalette1: ; 0xdc550 - RGB 31, 31, 31 - RGB 26, 29, 7 - RGB 11, 20, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 29, 7 + RGB 11, 20, 0 + RGB 0, 0, 0 WeepinbellBillboardBGPalette2: ; 0xdc558 - RGB 31, 31, 31 - RGB 26, 29, 7 - RGB 31, 11, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 29, 7 + RGB 31, 11, 8 + RGB 0, 0, 0 VictreebellBillboardBGPalette1: ; 0xdc560 - RGB 31, 31, 31 - RGB 29, 31, 9 - RGB 11, 20, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 31, 9 + RGB 11, 20, 0 + RGB 0, 0, 0 VictreebellBillboardBGPalette2: ; 0xdc568 - RGB 31, 31, 31 - RGB 29, 31, 9 - RGB 31, 11, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 31, 9 + RGB 31, 11, 8 + RGB 0, 0, 0 TentacoolBillboardBGPalette1: ; 0xdc570 - RGB 31, 31, 31 - RGB 16, 22, 31 - RGB 0, 11, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 16, 22, 31 + RGB 0, 11, 22 + RGB 0, 0, 0 TentacoolBillboardBGPalette2: ; 0xdc578 - RGB 31, 31, 31 - RGB 16, 22, 31 - RGB 31, 5, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 16, 22, 31 + RGB 31, 5, 6 + RGB 0, 0, 0 TentacruelBillboardBGPalette1: ; 0xdc580 - RGB 31, 31, 31 - RGB 16, 22, 31 - RGB 0, 11, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 16, 22, 31 + RGB 0, 11, 22 + RGB 0, 0, 0 TentacruelBillboardBGPalette2: ; 0xdc588 - RGB 31, 31, 31 - RGB 16, 22, 31 - RGB 31, 5, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 16, 22, 31 + RGB 31, 5, 6 + RGB 0, 0, 0 GeodudeBillboardBGPalette1: ; 0xdc590 - RGB 31, 31, 31 - RGB 20, 23, 22 - RGB 10, 13, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 23, 22 + RGB 10, 13, 12 + RGB 0, 0, 0 GeodudeBillboardBGPalette2: ; 0xdc598 - RGB 31, 31, 31 - RGB 20, 23, 22 - RGB 10, 13, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 23, 22 + RGB 10, 13, 12 + RGB 0, 0, 0 GravelerBillboardBGPalette1: ; 0xdc5a0 - RGB 31, 31, 31 - RGB 20, 23, 22 - RGB 10, 13, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 23, 22 + RGB 10, 13, 12 + RGB 0, 0, 0 GravelerBillboardBGPalette2: ; 0xdc5a8 - RGB 31, 31, 31 - RGB 20, 23, 22 - RGB 10, 13, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 23, 22 + RGB 10, 13, 12 + RGB 0, 0, 0 GolemBillboardBGPalette1: ; 0xdc5b0 - RGB 31, 31, 31 - RGB 26, 25, 15 - RGB 10, 13, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 25, 15 + RGB 10, 13, 12 + RGB 0, 0, 0 GolemBillboardBGPalette2: ; 0xdc5b8 - RGB 31, 31, 31 - RGB 26, 25, 15 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 25, 15 + RGB 31, 0, 0 + RGB 0, 0, 0 PonytaBillboardBGPalette1: ; 0xdc5c0 - RGB 31, 31, 31 - RGB 27, 26, 11 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 26, 11 + RGB 31, 0, 0 + RGB 0, 0, 0 PonytaBillboardBGPalette2: ; 0xdc5c8 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 31, 0, 0 + RGB 0, 0, 0 RapidashBillboardBGPalette1: ; 0xdc5d0 - RGB 31, 31, 31 - RGB 27, 26, 11 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 26, 11 + RGB 31, 0, 0 + RGB 0, 0, 0 RapidashBillboardBGPalette2: ; 0xdc5d8 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 31, 0, 0 + RGB 0, 0, 0 SlowpokeBillboardBGPalette1: ; 0xdc5e0 - RGB 31, 31, 31 - RGB 31, 21, 21 - RGB 31, 11, 11 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 21, 21 + RGB 31, 11, 11 + RGB 0, 0, 0 SlowpokeBillboardBGPalette2: ; 0xdc5e8 - RGB 31, 31, 31 - RGB 31, 27, 15 - RGB 31, 11, 11 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 15 + RGB 31, 11, 11 + RGB 0, 0, 0 SlowbroBillboardBGPalette1: ; 0xdc5f0 - RGB 31, 31, 31 - RGB 31, 27, 15 - RGB 31, 11, 11 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 27, 15 + RGB 31, 11, 11 + RGB 0, 0, 0 SlowbroBillboardBGPalette2: ; 0xdc5f8 - RGB 31, 31, 31 - RGB 23, 23, 23 - RGB 12, 12, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 23, 23, 23 + RGB 12, 12, 12 + RGB 0, 0, 0 StageMeowthBonusCollisionMasks: ; 0xdc600 - INCBIN "data/collision/masks/meowth_bonus.masks" + INCBIN "data/collision/masks/meowth_bonus.masks" ZapdosBillboardBGPalette1: ; 0xdc700 - RGB 31, 31, 31 - RGB 29, 27, 0 - RGB 20, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 27, 0 + RGB 20, 6, 0 + RGB 0, 0, 0 ZapdosBillboardBGPalette2: ; 0xdc708 - RGB 31, 31, 31 - RGB 29, 27, 0 - RGB 20, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 27, 0 + RGB 20, 6, 0 + RGB 0, 0, 0 MoltresBillboardBGPalette1: ; 0xdc710 - RGB 31, 31, 31 - RGB 30, 25, 0 - RGB 30, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 25, 0 + RGB 30, 6, 0 + RGB 0, 0, 0 MoltresBillboardBGPalette2: ; 0xdc718 - RGB 31, 31, 31 - RGB 30, 25, 0 - RGB 30, 6, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 25, 0 + RGB 30, 6, 0 + RGB 0, 0, 0 DratiniBillboardBGPalette1: ; 0xdc720 - RGB 31, 31, 31 - RGB 17, 19, 24 - RGB 6, 11, 15 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 24 + RGB 6, 11, 15 + RGB 0, 0, 0 DratiniBillboardBGPalette2: ; 0xdc728 - RGB 31, 31, 31 - RGB 17, 19, 24 - RGB 6, 11, 15 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 19, 24 + RGB 6, 11, 15 + RGB 0, 0, 0 DragonairBillboardBGPalette1: ; 0xdc730 - RGB 31, 31, 31 - RGB 9, 19, 30 - RGB 2, 4, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 9, 19, 30 + RGB 2, 4, 26 + RGB 0, 0, 0 DragonairBillboardBGPalette2: ; 0xdc738 - RGB 31, 31, 31 - RGB 9, 19, 30 - RGB 2, 4, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 9, 19, 30 + RGB 2, 4, 26 + RGB 0, 0, 0 DragoniteBillboardBGPalette1: ; 0xdc740 - RGB 31, 31, 31 - RGB 31, 23, 7 - RGB 27, 11, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 23, 7 + RGB 27, 11, 0 + RGB 0, 0, 0 DragoniteBillboardBGPalette2: ; 0xdc748 - RGB 31, 31, 31 - RGB 13, 22, 16 - RGB 27, 11, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 22, 16 + RGB 27, 11, 0 + RGB 0, 0, 0 MewtwoBillboardBGPalette1: ; 0xdc750 - RGB 31, 31, 31 - RGB 28, 23, 28 - RGB 13, 7, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 23, 28 + RGB 13, 7, 20 + RGB 0, 0, 0 MewtwoBillboardBGPalette2: ; 0xdc758 - RGB 31, 31, 31 - RGB 28, 23, 28 - RGB 20, 5, 18 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 28, 23, 28 + RGB 20, 5, 18 + RGB 0, 0, 0 MewBillboardBGPalette1: ; 0xdc760 - RGB 31, 31, 31 - RGB 31, 18, 24 - RGB 31, 7, 12 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 24 + RGB 31, 7, 12 + RGB 0, 0, 0 MewBillboardBGPalette2: ; 0xdc768 - RGB 31, 31, 31 - RGB 31, 18, 24 - RGB 0, 10, 31 - RGB 0, 0, 0 - -INCBIN "baserom.gbc",$dc770,$dc880 - $dc770 + RGB 31, 31, 31 + RGB 31, 18, 24 + RGB 0, 10, 31 + RGB 0, 0, 0 + dr $dc770, $dc880 SeelBonusPalettes: ; 0xdc880 SeelBonusBGPalette0: ; 0xdc880 - RGB 31, 31, 31 - RGB 13, 20, 31 - RGB 31, 4, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 20, 31 + RGB 31, 4, 4 + RGB 0, 0, 0 SeelBonusBGPalette1: ; 0xdc888 - RGB 31, 31, 31 - RGB 30, 24, 4 - RGB 27, 7, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 30, 24, 4 + RGB 27, 7, 0 + RGB 0, 0, 0 SeelBonusBGPalette2: ; 0xdc890 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 16, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 16, 0, 0 + RGB 0, 0, 0 SeelBonusBGPalette3: ; 0xdc898 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 SeelBonusBGPalette4: ; 0xdc8a0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 SeelBonusBGPalette5: ; 0xdc8a8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 SeelBonusBGPalette6: ; 0xdc8b0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 SeelBonusBGPalette7: ; 0xdc8b8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 SeelBonusOBJPalette0: ; 0xdc8c0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 SeelBonusOBJPalette1: ; 0xdc8c8 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 31, 11, 10 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 31, 11, 10 + RGB 0, 0, 0 SeelBonusOBJPalette2: ; 0xdc8d0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 21, 21, 27 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 21, 21, 27 + RGB 0, 0, 0 SeelBonusOBJPalette3: ; 0xdc8d8 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 11, 11, 20 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 11, 11, 20 + RGB 0, 0, 0 SeelBonusOBJPalette4: ; 0xdc8e0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 SeelBonusOBJPalette5: ; 0xdc8e8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 SeelBonusOBJPalette6: ; 0xdc8f0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 SeelBonusOBJPalette7: ; 0xdc8f8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 - -INCBIN "baserom.gbc",$dc900,$dc980 - $dc900 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 + dr $dc900, $dc980 StageRedFieldTopPalettes: ; 0xdc980 StageRedFieldTopBGPalette0: ; 0xdc980 - RGB 31, 31, 31 - RGB 13, 20, 31 - RGB 31, 4, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 20, 31 + RGB 31, 4, 4 + RGB 0, 0, 0 StageRedFieldTopBGPalette1: ; 0xdc988 - RGB 31, 31, 31 - RGB 24, 31, 0 - RGB 31, 0, 0 - RGB 3, 0, 0 + RGB 31, 31, 31 + RGB 24, 31, 0 + RGB 31, 0, 0 + RGB 3, 0, 0 StageRedFieldTopBGPalette2: ; 0xdc990 - RGB 31, 31, 31 - RGB 11, 25, 31 - RGB 0, 11, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 25, 31 + RGB 0, 11, 31 + RGB 0, 0, 0 StageRedFieldTopBGPalette3: ; 0xdc998 - RGB 31, 31, 31 - RGB 31, 13, 13 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 13, 13 + RGB 31, 0, 0 + RGB 0, 0, 0 StageRedFieldTopBGPalette4: ; 0xdc9a0 - RGB 31, 31, 31 - RGB 31, 0, 31 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 31 + RGB 31, 0, 0 + RGB 0, 0, 0 StageRedFieldTopBGPalette5: ; 0xdc9a8 - RGB 24, 31, 0 - RGB 31, 0, 31 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 24, 31, 0 + RGB 31, 0, 31 + RGB 31, 0, 0 + RGB 0, 0, 0 StageRedFieldTopBGPalette6: ; 0xdc9b0 - RGB 31, 31, 31 - RGB 13, 13, 31 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 13, 31 + RGB 31, 0, 0 + RGB 0, 0, 0 StageRedFieldTopBGPalette7: ; 0xdc9b8 - RGB 31, 31, 31 - RGB 31, 13, 13 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 13, 13 + RGB 31, 0, 0 + RGB 0, 0, 0 StageRedFieldTopOBJPalette0: ; 0xdc9c0 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 StageRedFieldTopOBJPalette1: ; 0xdc9c8 - RGB 31, 31, 31 - RGB 31, 19, 22 - RGB 21, 0, 0 - RGB 4, 0, 0 + RGB 31, 31, 31 + RGB 31, 19, 22 + RGB 21, 0, 0 + RGB 4, 0, 0 StageRedFieldTopOBJPalette2: ; 0xdc9d0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 31, 0, 31 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 31, 0, 31 + RGB 0, 0, 0 StageRedFieldTopOBJPalette3: ; 0xdc9d8 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 22, 0 - RGB 10, 4, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 22, 0 + RGB 10, 4, 0 StageRedFieldTopOBJPalette4: ; 0xdc9e0 - RGB 20, 20, 20 - RGB 18, 31, 18 - RGB 5, 19, 0 - RGB 0, 7, 0 + RGB 20, 20, 20 + RGB 18, 31, 18 + RGB 5, 19, 0 + RGB 0, 7, 0 StageRedFieldTopOBJPalette5: ; 0xdc9e8 - RGB 31, 31, 31 - RGB 31, 20, 0 - RGB 31, 15, 16 - RGB 5, 2, 0 + RGB 31, 31, 31 + RGB 31, 20, 0 + RGB 31, 15, 16 + RGB 5, 2, 0 StageRedFieldTopOBJPalette6: ; 0xdc9f0 - RGB 20, 20, 20 - RGB 0, 31, 25 - RGB 0, 18, 14 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 0, 31, 25 + RGB 0, 18, 14 + RGB 0, 0, 0 StageRedFieldTopOBJPalette7: ; 0xdc9f8 - RGB 31, 31, 31 - RGB 31, 15, 13 - RGB 21, 0, 0 - RGB 4, 0, 0 + RGB 31, 31, 31 + RGB 31, 15, 13 + RGB 21, 0, 0 + RGB 4, 0, 0 DiglettBonusPalettes: ; 0xdca00 DiglettBonusBGPalette0: ; 0xdca00 - RGB 31, 31, 31 - RGB 13, 20, 31 - RGB 31, 4, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 20, 31 + RGB 31, 4, 4 + RGB 0, 0, 0 DiglettBonusBGPalette1: ; 0xdca08 - RGB 31, 31, 31 - RGB 10, 24, 20 - RGB 5, 13, 10 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 10, 24, 20 + RGB 5, 13, 10 + RGB 0, 0, 0 DiglettBonusBGPalette2: ; 0xdca10 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 16, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 16, 0, 0 + RGB 0, 0, 0 DiglettBonusBGPalette3: ; 0xdca18 - RGB 31, 31, 31 - RGB 31, 18, 8 - RGB 27, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 8 + RGB 27, 0, 0 + RGB 0, 0, 0 DiglettBonusBGPalette4: ; 0xdca20 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 DiglettBonusBGPalette5: ; 0xdca28 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 DiglettBonusBGPalette6: ; 0xdca30 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 DiglettBonusBGPalette7: ; 0xdca38 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 DiglettBonusOBJPalette0: ; 0xdca40 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 DiglettBonusOBJPalette1: ; 0xdca48 - RGB 31, 31, 31 - RGB 31, 18, 8 - RGB 27, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 8 + RGB 27, 0, 0 + RGB 0, 0, 0 DiglettBonusOBJPalette2: ; 0xdca50 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 21, 21, 27 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 21, 21, 27 + RGB 0, 0, 0 DiglettBonusOBJPalette3: ; 0xdca58 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 DiglettBonusOBJPalette4: ; 0xdca60 - RGB 20, 20, 20 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 DiglettBonusOBJPalette5: ; 0xdca68 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 DiglettBonusOBJPalette6: ; 0xdca70 - RGB 20, 20, 20 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 DiglettBonusOBJPalette7: ; 0xdca78 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 StageRedFieldBottomPalettes: ; 0xdca80 StageRedFieldBottomBGPalette0: ; 0xdca80 - RGB 31, 31, 31 - RGB 13, 20, 31 - RGB 31, 4, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 20, 31 + RGB 31, 4, 4 + RGB 0, 0, 0 StageRedFieldBottomBGPalette1: ; 0xdca88 - RGB 31, 31, 31 - RGB 24, 31, 0 - RGB 31, 0, 0 - RGB 3, 0, 0 + RGB 31, 31, 31 + RGB 24, 31, 0 + RGB 31, 0, 0 + RGB 3, 0, 0 StageRedFieldBottomBGPalette2: ; 0xdca90 - RGB 31, 31, 31 - RGB 11, 25, 31 - RGB 0, 11, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 25, 31 + RGB 0, 11, 31 + RGB 0, 0, 0 StageRedFieldBottomBGPalette3: ; 0xdca98 - RGB 31, 31, 31 - RGB 31, 13, 13 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 13, 13 + RGB 31, 0, 0 + RGB 0, 0, 0 StageRedFieldBottomBGPalette4: ; 0xdcaa0 - RGB 31, 31, 31 - RGB 31, 0, 31 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 31 + RGB 31, 0, 0 + RGB 0, 0, 0 StageRedFieldBottomBGPalette5: ; 0xdcaa8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 StageRedFieldBottomBGPalette6: ; 0xdcab0 - RGB 29, 30, 31 - RGB 27, 20, 10 - RGB 2, 16, 1 - RGB 0, 0, 0 + RGB 29, 30, 31 + RGB 27, 20, 10 + RGB 2, 16, 1 + RGB 0, 0, 0 StageRedFieldBottomBGPalette7: ; 0xdcab8 - RGB 29, 30, 31 - RGB 5, 17, 31 - RGB 26, 3, 1 - RGB 0, 0, 0 + RGB 29, 30, 31 + RGB 5, 17, 31 + RGB 26, 3, 1 + RGB 0, 0, 0 StageRedFieldBottomOBJPalette0: ; 0xdcac0 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 StageRedFieldBottomOBJPalette1: ; 0xdcac8 - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 27, 21, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 21, 21, 21 + RGB 27, 21, 0 + RGB 0, 0, 0 StageRedFieldBottomOBJPalette2: ; 0xdcad0 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 21, 21, 27 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 21, 21, 27 + RGB 0, 0, 0 StageRedFieldBottomOBJPalette3: ; 0xdcad8 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 StageRedFieldBottomOBJPalette4: ; 0xdcae0 - RGB 21, 21, 21 - RGB 31, 28, 0 - RGB 29, 0, 0 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 28, 0 + RGB 29, 0, 0 + RGB 0, 0, 0 StageRedFieldBottomOBJPalette5: ; 0xdcae8 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 StageRedFieldBottomOBJPalette6: ; 0xdcaf0 - RGB 20, 20, 20 - RGB 0, 31, 25 - RGB 0, 18, 14 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 0, 31, 25 + RGB 0, 18, 14 + RGB 0, 0, 0 StageRedFieldBottomOBJPalette7: ; 0xdcaf8 - RGB 31, 31, 31 - RGB 31, 30, 16 - RGB 27, 24, 8 - RGB 23, 19, 3 + RGB 31, 31, 31 + RGB 31, 30, 16 + RGB 27, 24, 8 + RGB 23, 19, 3 StageBlueFieldTopPalettes: ; 0xdcb00 StageBlueFieldTopBGPalette0: ; 0xdcb00 - RGB 31, 31, 31 - RGB 13, 20, 31 - RGB 31, 4, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 20, 31 + RGB 31, 4, 4 + RGB 0, 0, 0 StageBlueFieldTopBGPalette1: ; 0xdcb08 - RGB 31, 31, 31 - RGB 11, 25, 31 - RGB 0, 11, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 25, 31 + RGB 0, 11, 31 + RGB 0, 0, 0 StageBlueFieldTopBGPalette2: ; 0xdcb10 - RGB 31, 31, 31 - RGB 4, 23, 13 - RGB 0, 13, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 4, 23, 13 + RGB 0, 13, 4 + RGB 0, 0, 0 StageBlueFieldTopBGPalette3: ; 0xdcb18 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 15, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 15, 8, 0 + RGB 0, 0, 0 StageBlueFieldTopBGPalette4: ; 0xdcb20 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 16, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 16, 0, 0 + RGB 0, 0, 0 StageBlueFieldTopBGPalette5: ; 0xdcb28 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 StageBlueFieldTopBGPalette6: ; 0xdcb30 - RGB 31, 31, 31 - RGB 13, 13, 31 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 13, 31 + RGB 31, 0, 0 + RGB 0, 0, 0 StageBlueFieldTopBGPalette7: ; 0xdcb38 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 StageBlueFieldTopOBJPalette0: ; 0xdcb40 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 StageBlueFieldTopOBJPalette1: ; 0xdcb48 - RGB 31, 31, 31 - RGB 31, 13, 15 - RGB 23, 4, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 13, 15 + RGB 23, 4, 6 + RGB 0, 0, 0 StageBlueFieldTopOBJPalette2: ; 0xdcb50 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 31, 26, 0 - RGB 10, 6, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 31, 26, 0 + RGB 10, 6, 0 StageBlueFieldTopOBJPalette3: ; 0xdcb58 - RGB 31, 31, 31 - RGB 24, 22, 26 - RGB 12, 10, 14 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 22, 26 + RGB 12, 10, 14 + RGB 0, 0, 0 StageBlueFieldTopOBJPalette4: ; 0xdcb60 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 StageBlueFieldTopOBJPalette5: ; 0xdcb68 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 StageBlueFieldTopOBJPalette6: ; 0xdcb70 - RGB 21, 21, 21 - RGB 0, 31, 25 - RGB 0, 18, 14 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 0, 31, 25 + RGB 0, 18, 14 + RGB 0, 0, 0 StageBlueFieldTopOBJPalette7: ; 0xdcb78 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 StageBlueFieldBottomPalettes: ; 0xdcb80 StageBlueFieldBottomBGPalette0: ; 0xdcb80 - RGB 31, 31, 31 - RGB 13, 20, 31 - RGB 31, 4, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 20, 31 + RGB 31, 4, 4 + RGB 0, 0, 0 StageBlueFieldBottomBGPalette1: ; 0xdcb88 - RGB 31, 31, 31 - RGB 11, 25, 31 - RGB 0, 11, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 25, 31 + RGB 0, 11, 31 + RGB 0, 0, 0 StageBlueFieldBottomBGPalette2: ; 0xdcb90 - RGB 31, 31, 31 - RGB 4, 23, 13 - RGB 0, 13, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 4, 23, 13 + RGB 0, 13, 4 + RGB 0, 0, 0 StageBlueFieldBottomBGPalette3: ; 0xdcb98 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 15, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 15, 8, 0 + RGB 0, 0, 0 StageBlueFieldBottomBGPalette4: ; 0xdcba0 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 16, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 16, 0, 0 + RGB 0, 0, 0 StageBlueFieldBottomBGPalette5: ; 0xdcba8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 StageBlueFieldBottomBGPalette6: ; 0xdcbb0 - RGB 31, 31, 31 - RGB 15, 20, 31 - RGB 7, 11, 21 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 20, 31 + RGB 7, 11, 21 + RGB 0, 0, 0 StageBlueFieldBottomBGPalette7: ; 0xdcbb8 - RGB 31, 31, 31 - RGB 27, 20, 10 - RGB 24, 7, 5 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 27, 20, 10 + RGB 24, 7, 5 + RGB 0, 0, 0 StageBlueFieldBottomOBJPalette0: ; 0xdcbc0 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 StageBlueFieldBottomOBJPalette1: ; 0xdcbc8 - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 27, 21, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 21, 21, 21 + RGB 27, 21, 0 + RGB 0, 0, 0 StageBlueFieldBottomOBJPalette2: ; 0xdcbd0 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 21, 21, 27 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 21, 21, 27 + RGB 0, 0, 0 StageBlueFieldBottomOBJPalette3: ; 0xdcbd8 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 StageBlueFieldBottomOBJPalette4: ; 0xdcbe0 - RGB 21, 21, 21 - RGB 31, 28, 0 - RGB 29, 0, 0 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 28, 0 + RGB 29, 0, 0 + RGB 0, 0, 0 StageBlueFieldBottomOBJPalette5: ; 0xdcbe8 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 StageBlueFieldBottomOBJPalette6: ; 0xdcbf0 - RGB 21, 21, 21 - RGB 0, 31, 25 - RGB 0, 18, 14 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 0, 31, 25 + RGB 0, 18, 14 + RGB 0, 0, 0 StageBlueFieldBottomOBJPalette7: ; 0xdcbf8 - RGB 31, 31, 31 - RGB 31, 30, 16 - RGB 27, 24, 8 - RGB 23, 19, 3 + RGB 31, 31, 31 + RGB 31, 30, 16 + RGB 27, 24, 8 + RGB 23, 19, 3 PaletteData_dcc00: ; 0xdcc00 - RGB 31, 31, 31 - RGB 31, 28, 0 - RGB 0, 11, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 28, 0 + RGB 0, 11, 31 + RGB 0, 0, 0 PaletteData_dcc08: ; 0xdcc08 - RGB 31, 31, 31 - RGB 31, 28, 0 - RGB 29, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 28, 0 + RGB 29, 0, 0 + RGB 0, 0, 0 PaletteData_dcc10: ; 0xdcc10 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 16, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 16, 0, 0 + RGB 0, 0, 0 PaletteData_dcc18: ; 0xdcc18 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 15, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 15, 8, 0 + RGB 0, 0, 0 PaletteData_dcc20: ; 0xdcc20 - RGB 31, 31, 31 - RGB 4, 23, 13 - RGB 29, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 4, 23, 13 + RGB 29, 0, 0 + RGB 0, 0, 0 PaletteData_dcc28: ; 0xdcc28 - RGB 31, 31, 31 - RGB 29, 0, 0 - RGB 0, 0, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 29, 0, 0 + RGB 0, 0, 22 + RGB 0, 0, 0 PaletteData_dcc30: ; 0xdcc30 - RGB 31, 31, 31 - RGB 31, 0, 15 - RGB 11, 0, 13 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 15 + RGB 11, 0, 13 + RGB 0, 0, 0 PaletteData_dcc38: ; 0xdcc38 - RGB 31, 31, 31 - RGB 11, 25, 31 - RGB 0, 11, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 25, 31 + RGB 0, 11, 31 + RGB 0, 0, 0 PaletteData_dcc40: ; 0xdcc40 - RGB 31, 31, 31 - RGB 15, 15, 19 - RGB 31, 0, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 15, 19 + RGB 31, 0, 31 + RGB 0, 0, 0 PaletteData_dcc48: ; 0xdcc48 - RGB 31, 31, 31 - RGB 31, 25, 31 - RGB 31, 0, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 25, 31 + RGB 31, 0, 31 + RGB 0, 0, 0 PaletteData_dcc50: ; 0xdcc50 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 27, 11, 2 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 0 + RGB 27, 11, 2 + RGB 0, 0, 0 PaletteData_dcc58: ; 0xdcc58 - RGB 31, 31, 31 - RGB 31, 18, 8 - RGB 27, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 18, 8 + RGB 27, 0, 0 + RGB 0, 0, 0 PaletteData_dcc60: ; 0xdcc60 - RGB 31, 31, 31 - RGB 20, 20, 26 - RGB 31, 11, 10 - RGB 0, 0, 0 - -INCBIN "baserom.gbc",$dcc68,$dcc80 - $dcc68 + RGB 31, 31, 31 + RGB 20, 20, 26 + RGB 31, 11, 10 + RGB 0, 0, 0 + dr $dcc68, $dcc80 MeowthBonusPalettes: ; 0xdcc80 MeowthBonusBGPalette0: ; 0xdcc80 - RGB 31, 31, 31 - RGB 13, 20, 31 - RGB 31, 4, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 20, 31 + RGB 31, 4, 4 + RGB 0, 0, 0 MeowthBonusBGPalette1: ; 0xdcc88 - RGB 31, 31, 31 - RGB 31, 16, 0 - RGB 15, 7, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 0 + RGB 15, 7, 0 + RGB 0, 0, 0 MeowthBonusBGPalette2: ; 0xdcc90 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 16, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 16, 0, 0 + RGB 0, 0, 0 MeowthBonusBGPalette3: ; 0xdcc98 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MeowthBonusBGPalette4: ; 0xdcca0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MeowthBonusBGPalette5: ; 0xdcca8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MeowthBonusBGPalette6: ; 0xdccb0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MeowthBonusBGPalette7: ; 0xdccb8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MeowthBonusOBJPalette0: ; 0xdccc0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 MeowthBonusOBJPalette1: ; 0xdccc8 - RGB 31, 31, 31 - RGB 31, 26, 16 - RGB 25, 9, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 26, 16 + RGB 25, 9, 0 + RGB 0, 0, 0 MeowthBonusOBJPalette2: ; 0xdccd0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 21, 21, 27 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 21, 21, 27 + RGB 0, 0, 0 MeowthBonusOBJPalette3: ; 0xdccd8 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 23, 7, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 0 + RGB 23, 7, 0 + RGB 0, 0, 0 MeowthBonusOBJPalette4: ; 0xdcce0 - RGB 20, 20, 20 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MeowthBonusOBJPalette5: ; 0xdcce8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MeowthBonusOBJPalette6: ; 0xdccf0 - RGB 20, 20, 20 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MeowthBonusOBJPalette7: ; 0xdccf8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 HighScoresBlueStagePalettes: ; 0xdcd00 HighScoresBlueStageBGPalette0: ; 0xdcd00 - RGB 31, 31, 31 - RGB 23, 23, 23 - RGB 14, 14, 14 - RGB 5, 5, 5 + RGB 31, 31, 31 + RGB 23, 23, 23 + RGB 14, 14, 14 + RGB 5, 5, 5 HighScoresBlueStageBGPalette1: ; 0xdcd08 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 9, 9, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 9, 9, 27 + RGB 0, 0, 0 HighScoresBlueStageBGPalette2: ; 0xdcd10 - RGB 31, 31, 31 - RGB 31, 8, 0 - RGB 9, 9, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 8, 0 + RGB 9, 9, 27 + RGB 0, 0, 0 HighScoresBlueStageBGPalette3: ; 0xdcd18 - RGB 31, 31, 31 - RGB 31, 16, 0 - RGB 9, 9, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 16, 0 + RGB 9, 9, 27 + RGB 0, 0, 0 HighScoresBlueStageBGPalette4: ; 0xdcd20 - RGB 31, 31, 31 - RGB 31, 24, 0 - RGB 9, 9, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 24, 0 + RGB 9, 9, 27 + RGB 0, 0, 0 HighScoresBlueStageBGPalette5: ; 0xdcd28 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 9, 9, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 0 + RGB 9, 9, 27 + RGB 0, 0, 0 HighScoresBlueStageBGPalette6: ; 0xdcd30 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 HighScoresBlueStageBGPalette7: ; 0xdcd38 - RGB 31, 29, 4 - RGB 29, 18, 0 - RGB 31, 0, 0 - RGB 5, 5, 5 + RGB 31, 29, 4 + RGB 29, 18, 0 + RGB 31, 0, 0 + RGB 5, 5, 5 HighScoresBlueStageOBJPalette0: ; 0xdcd40 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 9, 9, 27 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 9, 9, 27 + RGB 0, 0, 0 HighScoresBlueStageOBJPalette1: ; 0xdcd48 - RGB 31, 31, 31 - RGB 31, 29, 4 - RGB 29, 18, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 4 + RGB 29, 18, 0 + RGB 0, 0, 0 HighScoresBlueStageOBJPalette2: ; 0xdcd50 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 14, 14, 14 - RGB 5, 5, 5 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 14, 14, 14 + RGB 5, 5, 5 HighScoresBlueStageOBJPalette3: ; 0xdcd58 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 HighScoresBlueStageOBJPalette4: ; 0xdcd60 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 31, 31, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 31, 31, 31 + RGB 0, 0, 0 HighScoresBlueStageOBJPalette5: ; 0xdcd68 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 HighScoresBlueStageOBJPalette6: ; 0xdcd70 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 HighScoresBlueStageOBJPalette7: ; 0xdcd88 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 HighScoresRedStagePalettes: ; 0xdcd80 HighScoresRedStageBGPalette0: ; 0xdcd80 - RGB 31, 31, 31 - RGB 23, 23, 23 - RGB 14, 14, 14 - RGB 5, 5, 5 + RGB 31, 31, 31 + RGB 23, 23, 23 + RGB 14, 14, 14 + RGB 5, 5, 5 HighScoresRedStageBGPalette1: ; 0xdcd88 - RGB 31, 31, 31 - RGB 0, 0, 31 - RGB 31, 6, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 0, 31 + RGB 31, 6, 6 + RGB 0, 0, 0 HighScoresRedStageBGPalette2: ; 0xdcd90 - RGB 31, 31, 31 - RGB 0, 8, 31 - RGB 31, 6, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 8, 31 + RGB 31, 6, 6 + RGB 0, 0, 0 HighScoresRedStageBGPalette3: ; 0xdcd98 - RGB 31, 31, 31 - RGB 0, 16, 31 - RGB 31, 6, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 16, 31 + RGB 31, 6, 6 + RGB 0, 0, 0 HighScoresRedStageBGPalette4: ; 0xdcda0 - RGB 31, 31, 31 - RGB 0, 24, 31 - RGB 31, 6, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 24, 31 + RGB 31, 6, 6 + RGB 0, 0, 0 HighScoresRedStageBGPalette5: ; 0xdcda8 - RGB 31, 31, 31 - RGB 0, 31, 31 - RGB 31, 6, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 31, 31 + RGB 31, 6, 6 + RGB 0, 0, 0 HighScoresRedStageBGPalette6: ; 0xdcdb0 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 HighScoresRedStageBGPalette7: ; 0xdcdb8 - RGB 31, 29, 4 - RGB 29, 18, 0 - RGB 31, 0, 0 - RGB 5, 5, 5 + RGB 31, 29, 4 + RGB 29, 18, 0 + RGB 31, 0, 0 + RGB 5, 5, 5 HighScoresRedStageOBJPalette0: ; 0xdcdc0 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 6, 6 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 6, 6 + RGB 0, 0, 0 HighScoresRedStageOBJPalette1: ; 0xdcdc8 - RGB 31, 31, 31 - RGB 31, 29, 4 - RGB 29, 18, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 4 + RGB 29, 18, 0 + RGB 0, 0, 0 HighScoresRedStageOBJPalette2: ; 0xdcdd0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 14, 14, 14 - RGB 5, 5, 5 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 14, 14, 14 + RGB 5, 5, 5 HighScoresRedStageOBJPalette3: ; 0xdcdd8 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 HighScoresRedStageOBJPalette4: ; 0xdcde0 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 31, 31, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 31, 31, 31 + RGB 0, 0, 0 HighScoresRedStageOBJPalette5: ; 0xdcde8 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 HighScoresRedStageOBJPalette6: ; 0xdcdf0 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 HighScoresRedStageOBJPalette7: ; 0xdcdf8 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 OptionMenuPalettes: ; 0xdce00 OptionMenuBGPalette0: ; 0xdce00 - RGB 31, 31, 31 - RGB 31, 30, 9 - RGB 22, 21, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 30, 9 + RGB 22, 21, 0 + RGB 0, 0, 0 OptionMenuBGPalette1: ; 0xdce08 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 31, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 31, 8, 0 + RGB 0, 0, 0 OptionMenuBGPalette2: ; 0xdce10 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 26, 18, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 26, 18, 0 + RGB 0, 0, 0 OptionMenuBGPalette3: ; 0xdce18 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 22, 10, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 22, 10, 0 + RGB 0, 0, 0 OptionMenuBGPalette4: ; 0xdce20 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 OptionMenuBGPalette5: ; 0xdce28 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 OptionMenuBGPalette6: ; 0xdce30 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 OptionMenuBGPalette7: ; 0xdce38 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 OptionMenuOBJPalette0: ; 0xdce40 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 31, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 31, 8, 0 + RGB 0, 0, 0 OptionMenuOBJPalette1: ; 0xdce48 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 0, 0, 0 OptionMenuOBJPalette2: ; 0xdce50 - RGB 31, 31, 31 - RGB 31, 31, 11 - RGB 26, 23, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 11 + RGB 26, 23, 0 + RGB 0, 0, 0 OptionMenuOBJPalette3: ; 0xdce58 - RGB 31, 31, 31 - RGB 22, 22, 22 - RGB 11, 11, 11 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 22, 22 + RGB 11, 11, 11 + RGB 0, 0, 0 OptionMenuOBJPalette4: ; 0xdce60 - RGB 31, 31, 31 - RGB 23, 23, 27 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 23, 23, 27 + RGB 31, 0, 0 + RGB 0, 0, 0 OptionMenuOBJPalette5: ; 0xdce68 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 OptionMenuOBJPalette6: ; 0xdce70 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 OptionMenuOBJPalette7: ; 0xdce78 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 -INCBIN "baserom.gbc",$dce80,$dcf00 - $dce80 +Data_dce80: + dr $dce80, $dcf00 MewtwoBonusPalettes: ; 0xdcf00 MewtwoBonusBGPalette0: ; 0xdcf00 - RGB 31, 31, 31 - RGB 13, 20, 31 - RGB 31, 4, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 20, 31 + RGB 31, 4, 4 + RGB 0, 0, 0 MewtwoBonusBGPalette1: ; 0xdcf08 - RGB 31, 31, 31 - RGB 15, 15, 21 - RGB 6, 6, 11 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 15, 21 + RGB 6, 6, 11 + RGB 0, 0, 0 MewtwoBonusBGPalette2: ; 0xdcf10 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 16, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 16, 0, 0 + RGB 0, 0, 0 MewtwoBonusBGPalette3: ; 0xdcf18 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MewtwoBonusBGPalette4: ; 0xdcf20 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MewtwoBonusBGPalette5: ; 0xdcf28 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MewtwoBonusBGPalette6: ; 0xdcf30 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MewtwoBonusBGPalette7: ; 0xdcf38 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MewtwoBonusOBJPalette0: ; 0xdcf40 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 MewtwoBonusOBJPalette1: ; 0xdcf48 - RGB 31, 31, 31 - RGB 24, 19, 0 - RGB 13, 8, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 24, 19, 0 + RGB 13, 8, 0 + RGB 0, 0, 0 MewtwoBonusOBJPalette2: ; 0xdcf50 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 21, 21, 27 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 21, 21, 27 + RGB 0, 0, 0 MewtwoBonusOBJPalette3: ; 0xdcf58 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MewtwoBonusOBJPalette4: ; 0xdcf60 - RGB 20, 20, 20 - RGB 31, 25, 31 - RGB 31, 0, 31 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 25, 31 + RGB 31, 0, 31 + RGB 0, 0, 0 MewtwoBonusOBJPalette5: ; 0xdcf68 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MewtwoBonusOBJPalette6: ; 0xdcf70 - RGB 20, 20, 20 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 MewtwoBonusOBJPalette7: ; 0xdcf78 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 TitlescreenPalettes: ; 0xdcf80 TitlescreenBGPalette0: ; 0xdcf80 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 31, 0, 0 + RGB 0, 0, 0 TitlescreenBGPalette1: ; 0xdcf88 - RGB 31, 31, 31 - RGB 0, 12, 26 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 12, 26 + RGB 31, 0, 0 + RGB 0, 0, 0 TitlescreenBGPalette2: ; 0xdcf90 - RGB 31, 31, 31 - RGB 23, 31, 24 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 23, 31, 24 + RGB 31, 0, 0 + RGB 0, 0, 0 TitlescreenBGPalette3: ; 0xdcf98 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 0, 12, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 0, 12, 26 + RGB 0, 0, 0 TitlescreenBGPalette4: ; 0xdcfa0 - RGB 31, 31, 31 - RGB 20, 20, 31 - RGB 0, 12, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 31 + RGB 0, 12, 26 + RGB 0, 0, 0 TitlescreenBGPalette5: ; 0xdcfa8 - RGB 31, 31, 31 - RGB 23, 31, 24 - RGB 0, 12, 26 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 23, 31, 24 + RGB 0, 12, 26 + RGB 0, 0, 0 TitlescreenBGPalette6: ; 0xdcfb0 - RGB 31, 31, 31 - RGB 20, 20, 31 - RGB 23, 31, 24 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 31 + RGB 23, 31, 24 + RGB 0, 0, 0 TitlescreenBGPalette7: ; 0xdcfb8 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 TitlescreenOBJPalette0: ; 0xdcfc0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 31, 29, 0 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 31, 29, 0 + RGB 0, 0, 0 TitlescreenOBJPalette1: ; 0xdcfc8 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 0, 0, 0 TitlescreenOBJPalette2: ; 0xdcfd0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 23, 23, 27 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 23, 23, 27 + RGB 0, 0, 0 TitlescreenOBJPalette3: ; 0xdcfd8 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 TitlescreenOBJPalette4: ; 0xdcfe0 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 TitlescreenOBJPalette5: ; 0xdcfe8 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 TitlescreenOBJPalette6: ; 0xdcff0 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 TitlescreenOBJPalette7: ; 0xdcff8 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 - RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 + RGB 0, 6, 0 CopyrightScreenPalettes: ; 0xdd000 CopyrightScreenBGPalette0: ; 0xdd000 - RGB 31, 31, 31 - RGB 22, 22, 22 - RGB 11, 11, 11 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 22, 22 + RGB 11, 11, 11 + RGB 0, 0, 0 CopyrightScreenBGPalette1: ; 0xdd008 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenBGPalette2: ; 0xdd010 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenBGPalette3: ; 0xdd018 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenBGPalette4: ; 0xdd020 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenBGPalette5: ; 0xdd028 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenBGPalette6: ; 0xdd030 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenBGPalette7: ; 0xdd038 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenOBJPalette0: ; 0xdd040 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 22, 22, 22 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 22, 22, 22 + RGB 0, 0, 0 CopyrightScreenOBJPalette1: ; 0xdd048 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 11, 11, 11 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 11, 11, 11 + RGB 0, 0, 0 CopyrightScreenOBJPalette2: ; 0xdd050 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenOBJPalette3: ; 0xdd058 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenOBJPalette4: ; 0xdd060 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenOBJPalette5: ; 0xdd068 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenOBJPalette6: ; 0xdd070 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 CopyrightScreenOBJPalette7: ; 0xdd078 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 GengarBonusPalettes: ; 0xdd080 GengarBonusBGPalette0: ; 0xdd080 - RGB 31, 31, 31 - RGB 13, 20, 31 - RGB 31, 4, 4 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 20, 31 + RGB 31, 4, 4 + RGB 0, 0, 0 GengarBonusBGPalette1: ; 0xdd088 - RGB 28, 31, 4 - RGB 8, 14, 31 - RGB 4, 5, 15 - RGB 0, 0, 0 + RGB 28, 31, 4 + RGB 8, 14, 31 + RGB 4, 5, 15 + RGB 0, 0, 0 GengarBonusBGPalette2: ; 0xdd090 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 GengarBonusBGPalette3: ; 0xdd098 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 GengarBonusBGPalette4: ; 0xdd0a0 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 GengarBonusBGPalette5: ; 0xdd0a8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 GengarBonusBGPalette6: ; 0xdd0b0 - RGB 31, 31, 31 - RGB 13, 13, 31 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 13, 13, 31 + RGB 31, 0, 0 + RGB 0, 0, 0 GengarBonusBGPalette7: ; 0xdd0b8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 GengarBonusOBJPalette0: ; 0xdd0c0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 GengarBonusOBJPalette1: ; 0xdd0c8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 GengarBonusOBJPalette2: ; 0xdd0d0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 21, 21, 27 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 21, 21, 27 + RGB 0, 0, 0 GengarBonusOBJPalette3: ; 0xdd0d8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 GengarBonusOBJPalette4: ; 0xdd0e0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 29, 0, 31 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 29, 0, 31 + RGB 0, 0, 0 GengarBonusOBJPalette5: ; 0xdd0e8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 GengarBonusOBJPalette6: ; 0xdd0f0 - RGB 20, 20, 20 - RGB 31, 31, 31 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 20, 20, 20 + RGB 31, 31, 31 + RGB 8, 8, 8 + RGB 0, 0, 0 GengarBonusOBJPalette7: ; 0xdd0f8 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 8, 8, 8 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 8, 8, 8 + RGB 0, 0, 0 FieldSelectScreenPalettes: ; 0xdd100 FieldSelectScreenBGPalette0: ; 0xdd100 - RGB 31, 31, 31 - RGB 31, 20, 0 - RGB 31, 0, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 20, 0 + RGB 31, 0, 0 + RGB 0, 0, 0 FieldSelectScreenBGPalette1: ; 0xdd108 - RGB 31, 31, 31 - RGB 0, 22, 31 - RGB 0, 0, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 0, 22, 31 + RGB 0, 0, 31 + RGB 0, 0, 0 FieldSelectScreenBGPalette2: ; 0xdd110 - RGB 31, 31, 31 - RGB 31, 0, 0 - RGB 0, 25, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 0, 0 + RGB 0, 25, 0 + RGB 0, 0, 0 FieldSelectScreenBGPalette3: ; 0xdd118 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 FieldSelectScreenBGPalette4: ; 0xdd120 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 FieldSelectScreenBGPalette5: ; 0xdd128 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 FieldSelectScreenBGPalette6: ; 0xdd130 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 FieldSelectScreenBGPalette7: ; 0xdd138 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 - RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 + RGB 31, 0, 31 FieldSelectScreenOBJPalette0: ; 0xdd140 - RGB 10, 10, 10 - RGB 31, 31, 31 - RGB 21, 21, 21 - RGB 0, 0, 0 + RGB 10, 10, 10 + RGB 31, 31, 31 + RGB 21, 21, 21 + RGB 0, 0, 0 CinnabarIslandBillboardBGPalette1: ; 0xdd148 - RGB 31, 31, 31 - RGB 14, 21, 0 - RGB 0, 10, 31 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 14, 21, 0 + RGB 0, 10, 31 + RGB 0, 0, 0 CinnabarIslandBillboardBGPalette2: ; 0xdd150 - RGB 31, 31, 31 - RGB 14, 21, 0 - RGB 2, 11, 1 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 14, 21, 0 + RGB 2, 11, 1 + RGB 0, 0, 0 IndigoPlateauBillboardBGPalette1: ; 0xdd158 - RGB 31, 31, 31 - RGB 11, 18, 31 - RGB 7, 9, 19 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 18, 31 + RGB 7, 9, 19 + RGB 0, 0, 0 IndigoPlateauBillboardBGPalette2: ; 0xdd160 - RGB 31, 31, 31 - RGB 11, 18, 31 - RGB 9, 20, 0 - RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 11, 18, 31 + RGB 9, 20, 0 + RGB 0, 0, 0 PokeBallObjPalette: ; 0xdd168 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 31, 5, 4 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 31, 5, 4 + RGB 0, 0, 0 GreatBallObjPalette: ; 0xdd170 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 2, 8, 31 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 2, 8, 31 + RGB 0, 0, 0 UltraBallObjPalette: ; 0xdd178 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 27, 21, 0 - RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 27, 21, 0 + RGB 0, 0, 0 MasterBallObjPalette: ; 0xdd180 - RGB 21, 21, 21 - RGB 31, 31, 31 - RGB 21, 3, 21 - RGB 0, 0, 0 - -INCBIN "baserom.gbc",$dd188,$e0000 - $dd188 + RGB 21, 21, 21 + RGB 31, 31, 31 + RGB 21, 3, 21 + RGB 0, 0, 0 +Data_dd188: + dr $dd188, $e0000 SECTION "bank38", ROMX, BANK[$38] - -INCBIN "baserom.gbc",$e0000,$e4000 - $e0000 ; 0xe0000 - + dr $e0000, $e4000 ; 0xe0000 SECTION "bank39", ROMX, BANK[$39] - -INCBIN "baserom.gbc",$e4000,$e8000 - $e4000 ; 0xe4000 - +Data_e4000: + dr $e4000, $e8000 ; 0xe4000 SECTION "bank3a", ROMX, BANK[$3a] +Data_e8000: + dr $e8000, $e8c00 ; 0xe8000 -INCBIN "baserom.gbc",$e8000,$ec000 - $e8000 ; 0xe8000 +Data_e8c00: + dr $e8c00, $e9100 ; 0xe8000 +Data_e9100: + dr $e9100, $e9500 ; 0xe8000 -SECTION "bank3b", ROMX, BANK[$3b] +Data_e9500: + dr $e9500, $e9c80 ; 0xe8000 -INCBIN "baserom.gbc",$ec000,$f0000 - $ec000 ; 0xec000 +Data_e9c80: + dr $e9c80, $ec000 ; 0xe8000 +SECTION "bank3b", ROMX, BANK[$3b] +Data_ec000: + dr $ec000, $f0000 ; 0xec000 SECTION "bank3c", ROMX, BANK[$3c] - -INCBIN "baserom.gbc",$f0000,$f4000 - $f0000 ; 0xf0000 - +Data_f0000: + dr $f0000, $f2400 ; 0xf0000 + +TiltRightOnlyForce: ; 0xf2400 + INCBIN "data/tilt/right_only" +TiltUpRightForce: + INCBIN "data/tilt/up_right" +TiltUpOnlyForce: + INCBIN "data/tilt/up_only" +TiltUpLeftForce: + INCBIN "data/tilt/up_left" +TiltLeftOnlyForce: + INCBIN "data/tilt/left_only" + dr $f3800, $f4000 ; 0xf0000 SECTION "bank3d", ROMX, BANK[$3d] FlipperHorizontalCollisionAttributes: ; 0xf4000 - INCBIN "data/collision/flippers/horizontal_attributes_0" - + INCBIN "data/collision/flippers/horizontal_attributes_0" SECTION "bank3e", ROMX, BANK[$3e] FlipperHorizontalCollisionAttributes2: ; 0xf8000 - INCBIN "data/collision/flippers/horizontal_attributes_1" + INCBIN "data/collision/flippers/horizontal_attributes_1" FlipperVerticalCollisionAttributes: ; 0xfa000 - INCBIN "data/collision/flippers/vertical_attributes_0" - + INCBIN "data/collision/flippers/vertical_attributes_0" SECTION "bank3f", ROMX, BANK[$3f] FlipperVerticalCollisionAttributes2: ; 0xfc000 - INCBIN "data/collision/flippers/vertical_attributes_1" + INCBIN "data/collision/flippers/vertical_attributes_1" diff --git a/pokemon-reverse-engineering-tools b/pokemon-reverse-engineering-tools -Subproject 5648b88ec22a84624db709f2f3de7187234ee4f +Subproject 74c620d01ad59bfb09cf4111ace549b925fcb9a diff --git a/sram.asm b/sram.asm new file mode 100755 index 0000000..374a0fc --- /dev/null +++ b/sram.asm @@ -0,0 +1,15 @@ +SECTION "SRAM 0", SRAM, BANK [$0] + +saved_data: MACRO +\1:: ds \2 +\1Signature:: ds 2 +\1Checksum:: dw +\1Backup:: ds \2 +\1BackupSignature:: ds 2 +\1BackupChecksum:: dw +ENDM + + saved_data sHighScores, $82 + saved_data sPokedexFlags, $98 + saved_data sKeyConfigs, $e + saved_data sSaveGame, $4c3 diff --git a/text.asm b/text.asm new file mode 100755 index 0000000..f301b55 --- /dev/null +++ b/text.asm @@ -0,0 +1,400 @@ +; 6-byte header +; Byte 1: Character delay + +BallSavedText: + db $05, $54, $45, $14, $00, $33 + db "BALL SAVED @" + +ShootAgainText: + db $05, $54, $44, $14, $00, $34 + db "SHOOT AGAIN @" + +EndOfBallBonusText: + db $05, $54, $41, $14, $00, $3a + db "END OF BALL BONUS @" + +FieldMultiplierText: + db $05, $54, $40, $14, $00, $3c + db "FIELD MULTIPLIER x0 @" + +FieldMultiplierSpecialBonusText: + db $07, $54, $00, $00, $00, $33 + db "FIELD MULTIPLIER SPECIAL BONUS @" + +DigitsText1to8: + db $07, $73, $46, $14, $20, $50 + db "12345678 @" + +BonusMultiplierText: + db $05, $54, $40, $14, $00, $3d + db "BONUS MULTIPLIER x0 @" + +ExtraBallText: + db $05, $54, $45, $14, $00, $33 + db "EXTRA BALL @" + +ExtraBallSpecialBonusText: + db $07, $54, $00, $00, $00, $2d + db "EXTRA BALL SPECIAL BONUS @" + +DigitsText1to9: + db $07, $6d, $45, $14, $20, $4b + db "123456789 @" + +LetsGetPokemonText: + db $05, $54, $41, $14, $00, $3a + db "LET`S GET POKeMON @" + +PokemonRanAwayText: + db $05, $54, $42, $14, $00, $39 + db "POKeMON RAN AWAY @" + +PokemonCaughtSpecialBonusText: + db $07, $54, $00, $00, $00, $31 + db "POKeMON CAUGHT SPECIAL BONUS @" + +OneBillionText: + db $07, $6e, $45, $14, $20, $50 + db "1,000,000,000 @" + +Data_2a21: + db $44, $00, $40, $00 + db "HIT @" + +Data_2a2a: + db $48, $10, $40, $00, $00, $00 + +Data_2a30: + db $42, $00, $40, $00 + db "FLIPPED @" + +Data_2a3d: + db $4a, $10, $40, $00, $00, $00 + +JackpotText: + db $42, $00, $b4, $00 + db "JACKPOT @" + +Data_2a50: + db $4a, $10, $b4, $00, $00, $00 + +YouGotAText: + db $05, $54, $00, $00, $00, $1e + db "YOU GOT A @" + +YouGotAnText: + db $05, $54, $00, $00, $00, $1f + db "YOU GOT AN @" + +Data_2a79: + db $05, $5e, $40, $14, $20, $43 + db " @" + +Data_2a91: + db $05, $5f, $40, $14, $20, $44 + db " @" + +StartTrainingText: + db $05, $54, $43, $14, $00, $37 + db "START TRAINING @" + +FindItemsText: + db $05, $54, $45, $14, $00, $33 + db "FIND ITEMS @" + +EvolutionFailedText: + db $05, $54, $42, $14, $00, $39 + db "EVOLUTION FAILED @" + +ItEvolvedIntoAText: + db $05, $54, $00, $00, $00, $26 + db "IT EVOLVED INTO A @" + +ItEvolvedIntoAnText: + db $05, $54, $00, $00, $00, $27 + db "IT EVOLVED INTO AN @" + +Data_2b1c: + db $05, $66, $40, $14, $20, $4b + db " @" + +Data_2b34: + db $05, $67, $40, $14, $20, $4c + db " @" + +EvolutionSpecialBonusText: + db $07, $54, $00, $00, $00, $2c + db "EVOLUTION SPECIAL BONUS @" + +Data_2b6b: + db $07, $6c, $46, $14, $20, $49 + db "12345678 @" + +PokemonIsTiredText: + db $05, $54, $42, $14, $00, $39 + db "POKeMON IS TIRED @" + +ItemNotFoundText: + db $05, $54, $43, $14, $00, $37 + db "ITEM NOT FOUND @" + +PokemonRecoveredText: + db $05, $54, $41, $14, $00, $3a + db "POKeMON RECOVERED @" + +TryNextPlaceText: + db $05, $54, $43, $14, $00, $37 + db "TRY NEXT PLACE @" + +YeahYouGotItText: + db $05, $54, $42, $14, $00, $39 + db "YEAH! YOU GOT IT @" + +Data_2bf0: + dw Data_2c45 + dw Data_2c78 + dw Data_2c14 + dw Data_2c60 + dw Data_2c2c + dw Data_2c90 + dw Data_2bfe + +Data_2bfe: + db $05, $54, $43, $14, $00, $37 + db "GET EXPERIENCE @" + +Data_2c14: + db $05, $54, $42, $14, $00, $39 + db "GET A FIRE STONE @" + +Data_2c2c: + db $05, $54, $41, $14, $00, $3a + db "GET A WATER STONE @" + +Data_2c45: + db $05, $54, $40, $14, $00, $3c + db "GET A THUNDER STONE @" + +Data_2c60: + db $05, $54, $42, $14, $00, $39 + db "GET A LEAF STONE @" + +Data_2c78: + db $05, $54, $42, $14, $00, $39 + db "GET A MOON STONE @" + +Data_2c90: + db $05, $54, $42, $14, $00, $39 + db "GET A LINK CABLE @" + +Data_2ca8: + db $05, $54, $42, $14, $00, $38 + db "MAP MOVE FAILED @" + +Data_2cbf: + db $05, $54, $00, $00, $00, $1f + db "ARRIVED AT @" + +Data_2cd1: + db $05, $54, $00, $00, $00, $1f + db "START FROM @" + +Data_2ce3: + dw Data_2d07 + dw Data_2d1a + dw Data_2d2f + dw Data_2d46 + dw Data_2d59 + dw Data_2d68 + dw Data_2d7d + dw Data_2d98 + dw Data_2db3 + dw Data_2dc8 + dw Data_2ddd + dw Data_2df1 + dw Data_2e05 + dw Data_2e18 + dw Data_2e2b + dw Data_2e3f + dw Data_2e56 + dw Data_2e6d + +Data_2d07: + db $05, $5f, $44, $14, $20, $3f + db "PALLET TOWN @" + +Data_2d1a: + db $05, $5f, $43, $14, $20, $41 + db "VIRIDIAN CITY @" + +Data_2d2f: + db $05, $5f, $42, $14, $20, $43 + db "VIRIDIAN FOREST @" + +Data_2d46: + db $05, $5f, $44, $14, $20, $3f + db "PEWTER CITY @" + +Data_2d59: + db $05, $5f, $46, $14, $20, $3b + db "MT.MOON @" + +Data_2d68: + db $05, $5f, $43, $14, $20, $41 + db "CERULEAN CITY @" + +Data_2d7d: + db $05, $5f, $40, $14, $20, $47 + db "VERMILION : SEASIDE @" + +Data_2d98: + db $05, $5f, $40, $14, $20, $47 + db "VERMILION : STREETS @" + +Data_2db3: + db $05, $5f, $43, $14, $20, $41 + db "ROCK MOUNTAIN @" + +Data_2dc8: + db $05, $5f, $43, $14, $20, $41 + db "LAVENDER TOWN @" + +Data_2ddd: + db $05, $5f, $44, $14, $20, $40 + db "CELADON CITY @" + +Data_2df1: + db $05, $5f, $44, $14, $20, $40 + db "CYCLING ROAD @" + +Data_2e05: + db $05, $5f, $44, $14, $20, $3f + db "FUCHIA CITY @" + +Data_2e18: + db $05, $5f, $44, $14, $20, $3f + db "SAFARI ZONE @" + +Data_2e2b: + db $05, $5f, $44, $14, $20, $40 + db "SAFFRON CITY @" + +Data_2e3f: + db $05, $5f, $42, $14, $20, $43 + db "SEAFOAM ISLANDS @" + +Data_2e56: + db $05, $5f, $42, $14, $20, $43 + db "CINNABAR ISLAND @" + +Data_2e6d: + db $05, $5f, $43, $14, $20, $42 + db "INDIGO PLATEAU @" + +Data_2e83: + db $05, $54, $40, $14, $00, $3c + db "GO TO DIGLETT STAGE @" + +Data_2e9e: + db $05, $54, $41, $14, $00, $3b + db "GO TO GENGAR STAGE @" + +Data_2eb8: + db $05, $54, $41, $14, $00, $3b + db "GO TO MEWTWO STAGE @" + +Data_2ed2: + db $05, $54, $41, $14, $00, $3b + db "GO TO MEOWTH STAGE @" + +Data_2eec: + db $05, $54, $42, $14, $00, $39 + db "GO TO SEEL STAGE @" + +Data_2f04: + db $05, $54, $42, $14, $00, $39 + db "END GENGAR STAGE @" + +Data_2f1c: + db $05, $54, $42, $14, $00, $39 + db "END MEWTWO STAGE @" + +Data_2f34: + db $05, $54, $41, $14, $00, $3a + db "END DIGLETT STAGE @" + +Data_2f4d: + db $05, $54, $42, $14, $00, $39 + db "END MEOWTH STAGE @" + +Data_2f65: + db $05, $54, $43, $14, $00, $37 + db "END SEEL STAGE @" + +Data_2f7b: + db $05, $54, $40, $14, $00, $3d + db "GENGAR STAGE CLEARED @" + +Data_2f97: + db $05, $54, $40, $14, $00, $3d + db "MEWTWO STAGE CLEARED @" + +Data_2fb3: + db $05, $54, $3f, $14, $00, $3e + db "DIGLETT STAGE CLEARED @" + +Data_2fd0: + db $05, $54, $40, $14, $00, $3d + db "MEOWTH STAGE CLEARED @" + +Data_2fec: + db $05, $54, $41, $14, $00, $3b + db "SEEL STAGE CLEARED @" + +Data_3006: + db " 0 POKeMON CAUGHT@" + +Data_3019: + db " 0 POKeMON EVOLVED@" + +BellsproutCounterText: + db " 0 BELLSPROUT@" + +DugtrioCounterText: + db " 0 DUGTRIO@" + +CaveShotCounterText: + db " 0 CAVE SHOTS@" + +SpinnerTurnsCounterText: + db " 0 SPINNER TURNS@" + +Data_3069: + db " BONUS@" + +Data_3070: + db " SUBTOTAL@" + +Data_307a: + db " MULTIPLIER@" + +Data_3086: + db " TOTAL@" + +Data_308d: + db " SCORE@" + +Data_3094: + db " GAME OVER @" + +PsyduckCounterText: + db " 0 PSYDUCK@" + +PoliwagCounterText: + db " 0 POLIWAG@" + +CloysterCounterText: + db " 0 CLOYSTER@" + +SlowpokeCounterText: + db " 0 SLOWPOKE@" @@ -1,5 +1,5 @@ -vTiles0 EQU $8000 -vTiles1 EQU $8800 -vTiles2 EQU $9000 -vBGMap0 EQU $9800 -vBGMap1 EQU $9c00 +vTilesOB EQU $8000 +vTilesSH EQU $8800 +vTilesBG EQU $9000 +vBGMap EQU $9800 +vBGWin EQU $9c00 @@ -1,676 +1,2562 @@ SECTION "WRAM Bank 0", WRAM0 -wc000:: - ds $400 +wc000:: ; 0xc000 + ds $10 + +wc010:: ; 0xc010 + ds $140 + +wc150:: ; 0xc150 + ds $68 + +wc1b8:: ; 0xc1b8 + ds $c8 + +wc280:: ; 0xc280 + ds $9 + +wc289:: ; 0xc289 + ds $37 + +wc2c0:: ; 0xc2c0 + ds $140 wMonAnimatedCollisionMask:: ; 0xc400 - ds $80 + ds $80 - ds $80 +wc480:: ; 0xc480 + ds $40 -wcBottomMessageText:: ; 0xc500 - ds $200 +wc4c0:: ; 0xc4c0 + ds $c + +wc4cc:: ; 0xc4cc + ds $34 + +wBottomMessageText:: ; 0xc500 + ds $100 + +wc600:: ; 0xc600 + ds $100 wStageCollisionMap:: ; 0xc700 -; Collision data for each tile for the current stage. - ds $300 + ds $68 + +wc768:: ; 0xc768 + ds $46 + +wc7ae:: ; 0xc7ae + ds $19 + +wc7c7:: ; 0xc7c7 + ds $1c + +wc7e3:: ; 0xc7e3 + ds $d + +wc7f0:: ; 0xc7f0 + ds $13 + +wc803:: ; 0xc803 + ds $d + +wc810:: ; 0xc810 + ds $13 + +wc823:: ; 0xc823 + ds $2a + +wc84d:: ; 0xc84d + ds $6 + +wc853:: ; 0xc853 + ds $1f + +wc872:: ; 0xc872 + ds $1 + +wc873:: ; 0xc873 + ds $1f + +wc892:: ; 0xc892 + ds $1 + +wc893:: ; 0xc893 + ds $16d - ds $600 +wca00:: + ds $63 + +wca63:: ; 0xca63 + ds $9d + +wcb00:: ; 0xcb00 + ds $500 SECTION "WRAM Bank 1", WRAMX, BANK[1] -wOAMBuffer:: ; d000 - ; buffer for OAM data. Copied to OAM by DMA - ds 4 * 40 +wOAMBuffer:: ; 0xd000 + ds $a0 - ds $160 +wOAMBufferEnd:: ; 0xd0a0 + ds $160 wPaletteData:: ; 0xd200 - ; 16 palette definitions - ds $100 + ds $80 + +wd280:: ; 0xd280 + ds $40 + +wd2c0:: ; 0xd2c0 + ds $40 wPartyMons:: ; 0xd300 -; List of pokemon in the player's party. -; When a pokemon is caught, it's appended to this list. -; When a pokemon is evolved, the pokemon's evolution replaces its entry in the list. - ds $160 + ds $100 + +wAddScoreQueue:: ; 0xd400 + ds $60 +wAddScoreQueueEnd:: ; 0xd460 + +wNumPartyMons:: ; 0xd460 + ds $1 -wNumPartyMons:: ; ; 0xd460 -; Number of pokemon in the wPartyMons list. - ds 1 +wd461:: ; 0xd461 + ds $1 - ds 9 +wd462:: ; 0xd462 + ds $1 + +wd463:: ; 0xd463 + ds $1 + +wd464:: ; 0xd464 + ds $6 wScore:: ; 0xd46a -; player's current score - ds 6 + ds $6 + +wd470:: ; 0xd470 + ds $1 + +wd471:: ; 0xd471 + ds $1 + +wd472:: ; 0xd472 + ds $1 + +wd473:: ; 0xd473 + ds $4 - ds $e +wAddScoreQueueOffset:: ; 0xd477 + ds $1 + +wd478:: ; 0xd478 + ds $1 + +wd479:: ; 0xd479 + ds $1 + +wd47a:: ; 0xd47a + ds $4 wBallType:: ; 0xd47e -; PokeBall, Great Ball, Ultra Ball, or Master Ball - ds 1 + ds $1 + wBallTypeCounter:: ; 0xd47f -; two-byte counter that represents how many frames remain until the Ball uprade goes down to the next level. - ds 2 + ds $2 + wBallTypeBackup:: ; 0xd481 -; Holds the ball type during bonus stages, since they always use a regular pokeball. - ds 1 + ds $1 + +wd482:: ; 0xd482 + ds $1 + +wd483:: ; 0xd483 + ds $5 + +wd488:: ; 0xd488 + ds $1 + +wd489:: ; 0xd489 + ds $5 + +wd48e:: ; 0xd48e + ds $1 + +wd48f:: ; 0xd48f + ds $5 - ds $1f +wd494:: ; 0xd494 + ds $1 + +wd495:: ; 0xd495 + ds $1 + +wd496:: ; 0xd496 + ds $1 + +wd497:: ; 0xd497 + ds $1 + +wd498:: ; 0xd498 + ds $1 + +wd499:: ; 0xd499 + ds $1 + +wd49a:: ; 0xd49a + ds $1 + +wd49b:: ; 0xd49b + ds $1 + +wd49c:: ; 0xd49c + ds $1 + +wd49d:: ; 0xd49d + ds $1 + +wd49e:: ; 0xd49e + ds $1 + +wd49f:: ; 0xd49f + ds $2 wBallSaverIconOn:: ; 0xd4a1 -; The blue Ball Saver icon is illuminated when this byte is non-zero. - ds 1 + ds $1 - ds 1 +wd4a2:: ; 0xd4a2 + ds $1 wBallSaverTimerFrames:: ; 0xd4a3 -; Count the number of frames until wBallSaverTimerSeconds should be decremented - ds 1 + ds $1 + wBallSaverTimerSeconds:: ; 0xd4a4 -; Remaining seconds for Ball Saver - ds 1 + ds $1 - ds 1 +wNumTimesBallSavedTextWillDisplay:: ; 0xd4a5 + ds $1 wBallSaverTimerFramesBackup:: ; 0xd4a6 -; Used to store a backup of wBallSaverTimerFrames - ds 1 + ds $1 + wBallSaverTimerSecondsBackup:: ; 0xd4a7 -; Used to store a backup of wBallSaverTimerSeconds - ds 1 + ds $1 + +wd4a8:: ; 0xd4a8 + ds $1 + +wd4a9:: ; 0xd4a9 + ds $1 +wd4aa:: ; 0xd4aa + ds $1 - ds 4 +wd4ab:: ; 0xd4ab + ds $1 wCurrentStage:: ; 0xd4ac - ds 1 + ds $1 - ds 2 +wd4ad:: ; 0xd4ad + ds $1 + +wd4ae:: ; 0xd4ae + ds $1 wStageCollisionState:: ; 0xd4af -; Stores the current collision state id for the stage -; For example, the Red stage can have different collision states when -; the Ditto lane is open, or when there is a wall above the Voltorbs. - ds 1 + ds $1 - ds 3 +wd4b0:: ; 0xd4b0 + ds $3 wBallXPos:: ; 0xd4b3 -; x coordinate of the center of the pokeball -; little-endian word -; Most-significant byte is the pixel, and least-significant byte is fraction of a pixel - ds 2 + ds $1 + +wd4b4:: ; 0xd4b4 + ds $1 wBallYPos:: ; 0xd4b5 -; y coordinate of the center of the pokeball -; little-endian word -; Most-significant byte is the pixel, and least-significant byte is fraction of a pixel - ds 2 + ds $1 + +wd4b6:: ; 0xd4b6 + ds $1 wPreviousBallXPos:: ; 0xd4b7 -; x coordinate of the center of the pokeball in the previous frame -; little-endian word -; Most-significant byte is the pixel, and least-significant byte is fraction of a pixel - ds 2 + ds $2 wPreviousBallYPos:: ; 0xd4b9 -; y coordinate of the center of the pokeball in the previous frame -; little-endian word -; Most-significant byte is the pixel, and least-significant byte is fraction of a pixel - ds 2 + ds $2 wBallXVelocity:: ; 0xd4bb -; little-endian word -; This is added to wBallXPos every frame. - ds 2 + ds $2 wBallYVelocity:: ; 0xd4bd -; little-endian word -; This is added to wBallYPos every frame. - ds 2 - - ds 4 + ds $6 wBallSpin:: ; 0xd4c3 - ds 1 + ds $1 + wBallRotation:: ; 0xd4c4 -; wBallSpin is added to this every frame - ds 1 + ds $1 + +wd4c5:: ; 0xd4c5 + ds $1 + +wd4c6:: ; 0xd4c6 + ds $1 + +wd4c7:: ; 0xd4c7 + ds $1 - ds $1c +wd4c8:: ; 0xd4c8 + ds $1 + +wd4c9:: ; 0xd4c9 + ds $1 + +wd4ca:: ; 0xd4ca + ds $1 + +wd4cb:: ; 0xd4cb + ds $1 + +wd4cc:: ; 0xd4cc + ds $1 + +wd4cd:: ; 0xd4cd + ds $3 + +wd4d0:: ; 0xd4d0 + ds $3 + +wd4d3:: ; 0xd4d3 + ds $3 + +wd4d6:: ; 0xd4d6 + ds $1 + +wd4d7:: ; 0xd4d7 + ds $1 + +wd4d8:: ; 0xd4d8 + ds $1 + +wd4d9:: ; 0xd4d9 + ds $1 + +wd4da:: ; 0xd4da + ds $1 + +wd4db:: ; 0xd4db + ds $1 + +wd4dc:: ; 0xd4dc + ds $2 + +wd4de:: ; 0xd4de + ds $1 + +wd4df:: ; 0xd4df + ds $1 + +wd4e0:: ; 0xd4e0 + ds $1 wInitialMapSelectionIndex:: ; 0xd4e1 -; index to keep track of the spinning map selection at the start of a new game - ds 1 + ds $1 + +wd4e2:: ; 0xd4e2 + ds $1 + +wd4e3:: ; 0xd4e3 + ds $1 + +wd4e4:: ; 0xd4e4 + ds $1 + +wd4e5:: ; 0xd4e5 + ds $1 + +wd4e6:: ; 0xd4e6 + ds $1 - ds $d +wd4e7:: ; 0xd4e7 + ds $1 - ds 1 +wd4e8:: ; 0xd4e8 + ds $2 + +wd4ea:: ; 0xd4ea + ds $1 + +wd4eb:: ; 0xd4eb + ds $1 + +wd4ec:: ; 0xd4ec + ds $1 + +wd4ed:: ; 0xd4ed + ds $1 + +wd4ee:: ; 0xd4ee + ds $1 + +wd4ef:: ; 0xd4ef + ds $1 wLeftMapMoveCounter:: ; 0xd4f0 -; Diglett or Poliwag counter that counts to three to trigger a Map Move - ds 1 + ds $1 - ds 1 +wd4f1:: ; 0xd4f1 + ds $1 wRightMapMoveCounter:: ; 0xd4f2 -; Diglett or Psyduck counter that counts to three to trigger a Map Move\ - ds 1 + ds $1 wLeftMapMoveDiglettAnimationCounter:: ; 0xd4f3 -; Counter that loops to control the left-side map move diglett head bobbing animation - ds 1 + ds $1 + wLeftMapMoveDiglettFrame:: ; 0xd4f4 -; Contains frame for map move diglett head bobbing animation - ds 1 -wRightMapMoveDiglettAnimationCounter :: ; 0xd4f5 -; Counter that loops to control the left-side map move diglett head bobbing animation - ds 1 + ds $1 + +wRightMapMoveDiglettAnimationCounter:: ; 0xd4f5 + ds $1 + wRightMapMoveDiglettFrame:: ; 0xd4f6 -; Contains frame for map move diglett head bobbing animation - ds 1 + ds $1 + +wd4f7:: ; 0xd4f7 + ds $1 + +wd4f8:: ; 0xd4f8 + ds $1 + +wd4f9:: ; 0xd4f9 + ds $1 - ds 6 +wd4fa:: ; 0xd4fa + ds $1 + +wd4fb:: ; 0xd4fb + ds $2 wBellsproutAnimationFrameCounter:: ; 0xd4fd - ds 1 + ds $1 + wBellsproutAnimationFrame:: ; 0xd4fe - ds 1 + ds $1 + wBellsproutAnimationFrameIndex:: ; 0xd4ff - ds 1 + ds $1 + +wd500:: ; 0xd500 + ds $2 + +wd502:: ; 0xd502 + ds $1 + +wd503:: ; 0xd503 + ds $1 + +wd504:: ; 0xd504 + ds $1 + +wd505:: ; 0xd505 + ds $1 + +wd506:: ; 0xd506 + ds $1 + +wd507:: ; 0xd507 + ds $2 + +wd509:: ; 0xd509 + ds $1 - ds $19 +wd50a:: ; 0xd50a + ds $1 + +wd50b:: ; 0xd50b + ds $1 + +wd50c:: ; 0xd50c + ds $1 + +wd50d:: ; 0xd50d + ds $1 + +wd50e:: ; 0xd50e + ds $1 + +wd50f:: ; 0xd50f + ds $3 + +wd512:: ; 0xd512 + ds $1 + +wd513:: ; 0xd513 + ds $1 + +wd514:: ; 0xd514 + ds $1 + +wd515:: ; 0xd515 + ds $1 + +wd516:: ; 0xd516 + ds $1 + +wd517:: ; 0xd517 + ds $1 + +wd518:: ; 0xd518 + ds $1 wPikachuSaverAnimationFrameCounter:: ; 0xd519 - ds 1 + ds $1 + wPikachuSaverAnimationFrame:: ; 0xd51a - ds 1 + ds $1 + wPikachuSaverAnimationFrameIndex:: ; 0xd51b - ds 1 + ds $1 + +wd51c:: ; 0xd51c + ds $1 + +wd51d:: ; 0xd51d + ds $1 + +wd51e:: ; 0xd51e + ds $1 + +wd51f:: ; 0xd51f + ds $1 + +wd520:: ; 0xd520 + ds $1 + +wd521:: ; 0xd521 + ds $1 + +wd522:: ; 0xd522 + ds $1 + +wd523:: ; 0xd523 + ds $1 - ds $13 +wd524:: ; 0xd524 + ds $1 + +wd525:: ; 0xd525 + ds $1 + +wd526:: ; 0xd526 + ds $1 + +wd527:: ; 0xd527 + ds $1 + +wd528:: ; 0xd528 + ds $7 wIndicatorStates:: ; 0xd52f -; Each byte represents the status of each possible indicator on the stage. -; An indicator is a blinking icon telling the player to hit the pinball in -; a certain area. For example, when the Cloyster can be entered in the Blue -; Stage, the blue right arrow will starting blinking in the bottom half of that -; stage. - ds $13 + ds $13 wLeftAlleyTrigger:: ; 0xd542 -; Set to $1 when ball passes over the bottom-left corner of the Blue/Red field top screen -; It's used to determine if the Ball was hit up the left side alley. - ds 1 + ds $1 + wLeftAlleyCount:: ; 0xd543 -; Increments when the Ball travels up the left alley. -; When the count is 3, evolution mode can be triggered. - ds 1 + ds $1 + wRightAlleyTrigger:: ; 0xd544 -; Set to $1 when Ball passes over the bottom-right corner of the Blue/Red field top screen -; It's used to determine if the Ball was hit up the right side alley. - ds 1 + ds $1 + wRightAlleyCount:: ; 0xd545 -; Increments when the Ball travels up the right alley. -; When the count is 2, Catch 'Em Mode can be triggered. -; If the count is 3, the current map's rare pokemon will be used for Catch 'Em Mode. - ds 1 + ds $1 + wSecondaryLeftAlleyTrigger:: ; 0xd546 -; Set to $1 when Ball passes over the bottom of the skinny alley between the left alley and Staryu button on the Red Field top screen. -; It's used to determine if the Ball was hit up the Red Stage's secondary left-side alley. - ds 1 + ds $2 + +wd548:: ; 0xd548 + ds $1 - ds 3 +wd549:: ; 0xd549 + ds $1 wCurrentMap:: ; 0xd54a -; Current map during play. See map_constants.asm - ds 1 + ds $1 wInSpecialMode:: ; 0xd54b -; Set to non-zero when things like Catch 'em Mode or Map Move mode start. - ds 1 + ds $1 + +wd54c:: ; 0xd54c + ds $1 + +wd54d:: ; 0xd54d + ds $1 + +wd54e:: ; 0xd54e + ds $1 - ds 4 +wd54f:: ; 0xd54f + ds $1 wSpecialMode:: ; 0xd550 -; wInSpecialMode must be non-zero to activate this. -; 0 = Catch Em Mode -; 1 = Evolution Mode -; 2 = Map Move Mode - ds 1 + ds $1 - ds 1 +wd551:: ; 0xd551 + ds $1 wCurrentEvolutionMon:: ; 0xd552 -; Current mon id for Evolution Mode. -; It stores (mon id - 1). - ds 1 + ds $1 + wCurrentEvolutionType:: ; 0xd553 -; Evolution type for the current mon in Evolution Mode. -; See evolution_type_constants.asm - ds 1 + ds $1 + +wd554:: ; 0xd554 + ds $1 + +wd555:: ; 0xd555 + ds $1 + +wd556:: ; 0xd556 + ds $1 + +wd557:: ; 0xd557 + ds $1 + +wd558:: ; 0xd558 + ds $1 - ds 7 +wd559:: ; 0xd559 + ds $1 + +wd55a:: ; 0xd55a + ds $1 wRareMonsFlag:: ; 0xd55b -; Gets set to $8 when the rare mons should be used for catch 'em mode. $8 is then doubled to add $10 to the base address of the map's wild mons table. - ds 1 + ds $1 + +wd55c:: ; 0xd55c + ds $1 + +wd55d:: ; 0xd55d + ds $1 + +wd55e:: ; 0xd55e + ds $1 + +wd55f:: ; 0xd55f + ds $1 - ds $1d +wd560:: ; 0xd560 + ds $1 + +wd561:: ; 0xd561 + ds $1 + +wd562:: ; 0xd562 + ds $1 + +wd563:: ; 0xd563 + ds $1 + +wd564:: ; 0xd564 + ds $1 + +wd565:: ; 0xd565 + ds $1 + +wd566:: ; 0xd566 + ds $c + +wd572:: ; 0xd572 + ds $6 + +wd578:: ; 0xd578 + ds $1 wCurrentCatchEmMon:: ; 0xd579 -; Current mon id for CatchEm Mode. -; It stores (mon id - 1). - ds 1 + ds $1 wTimerSeconds:: ; 0xd57a - ds 1 + ds $1 + wTimerMinutes:: ; 0xd57b - ds 1 -wTimerFrames:: ; 0xd57c - ds 1 + ds $1 + +wTimerFrames:: ; 0xd57c + ds $1 + +wd57d:: ; 0xd57d + ds $1 + +wd57e:: ; 0xd57e + ds $1 + +wd57f:: ; 0xd57f + ds $1 + +wd580:: ; 0xd580 + ds $1 + +wd581:: ; 0xd581 + ds $1 + +wd582:: ; 0xd582 + ds $4 + +wd586:: ; 0xd586 + ds $30 + +wd5b6:: ; 0xd5b6 + ds $5 + +wd5bb:: ; 0xd5bb + ds $1 + +wd5bc:: ; 0xd5bc + ds $1 + +wd5bd:: ; 0xd5bd + ds $1 + +wd5be:: ; 0xd5be + ds $1 - ds $43 +wBallHitWildMon:: ; 0xd5bf + ds $1 wNumMonHits:: ; 0xd5c0 -; Number of times the wild pokemon has been hit in Catch'em mode - ds 1 + ds $1 - ds $33 +wd5c1:: ; 0xd5c1 + ds $1 + +wd5c2:: ; 0xd5c2 + ds $1 + +wd5c3:: ; 0xd5c3 + ds $1 + +wd5c4:: ; 0xd5c4 + ds $1 + +wNumMewHitsLow:: ; 0xd5c5 + ds $1 + +wd5c6:: ; 0xd5c6 + ds $1 + +wd5c7:: ; 0xd5c7 + ds $3 + +wd5ca:: ; 0xd5ca + ds $1 + +wd5cb:: ; 0xd5cb + ds $1 + +wd5cc:: ; 0xd5cc + ds $8 + +wd5d4:: ; 0xd5d4 + ds $4 + +wd5d8:: ; 0xd5d8 + ds $3 + +wd5db:: ; 0xd5db + ds $1 + +wd5dc:: ; 0xd5dc + ds $8 + +wd5e4:: ; 0xd5e4 + ds $5 + +wd5e9:: ; 0xd5e9 + ds $5 + +wd5ee:: ; 0xd5ee + ds $5 + +wd5f3:: ; 0xd5f3 + ds $1 wBallCaptureAnimationFrameCounter:: ; 0xd5f4 - ds 1 + ds $1 + wBallCaptureAnimationFrame:: ; 0xd5f5 -; OAM id - ds 1 + ds $1 + wBallCaptureAnimationFrameIndex:: ; 0xd5f6 - ds 1 + ds $1 + +wd5f7:: ; 0xd5f7 + ds $1 + +wd5f8:: ; 0xd5f8 + ds $1 + +wd5f9:: ; 0xd5f9 + ds $2 + +wd5fb:: ; 0xd5fb + ds $1 + +wd5fc:: ; 0xd5fc + ds $1 + +wd5fd:: ; 0xd5fd + ds $1 + +wd5fe:: ; 0xd5fe + ds $2 + +wd600:: ; 0xd600 + ds $1 + +wd601:: ; 0xd601 + ds $2 + +wd603:: ; 0xd603 + ds $1 + +wd604:: ; 0xd604 + ds $2 + +wd606:: ; 0xd606 + ds $1 + +wd607:: ; 0xd607 + ds $1 + +wd608:: ; 0xd608 + ds $1 + +wd609:: ; 0xd609 + ds $1 + +wd60a:: ; 0xd60a + ds $1 + +wd60b:: ; 0xd60b + ds $1 + +wd60c:: ; 0xd60c + ds $1 + +wd60d:: ; 0xd60d + ds $1 + +wd60e:: ; 0xd60e + ds $1 + +wd60f:: ; 0xd60f + ds $1 + +wd610:: ; 0xd610 + ds $1 + +wd611:: ; 0xd611 + ds $1 + +wd612:: ; 0xd612 + ds $1 + +wd613:: ; 0xd613 + ds $1 + +wd614:: ; 0xd614 + ds $1 + +wd615:: ; 0xd615 + ds $1 - ds $38 +wGameOver:: ; 0xd616 + ds $3 + +wd619:: ; 0xd619 + ds $1 + +wd61a:: ; 0xd61a + ds $1 + +wd61b:: ; 0xd61b + ds $2 + +wd61d:: ; 0xd61d + ds $1 + +wd61e:: ; 0xd61e + ds $1 + +wCurSlotBonus:: ; 0xd61f + ds $1 + +wd620:: ; 0xd620 + ds $1 + +wd621:: ; 0xd621 + ds $1 + +wd622:: ; 0xd622 + ds $1 + +wd623:: ; 0xd623 + ds $1 + +wd624:: ; 0xd624 + ds $1 + +wd625:: ; 0xd625 + ds $1 + +wd626:: ; 0xd626 + ds $2 + +wd628:: ; 0xd628 + ds $1 + +wd629:: ; 0xd629 + ds $1 + +wd62a:: ; 0xd62a + ds $1 + +wd62b:: ; 0xd62b + ds $1 + +wd62c:: ; 0xd62c + ds $1 + +wd62d:: ; 0xd62d + ds $1 + +wd62e:: ; 0xd62e + ds $1 -; Number of times the Mewtwo Bonus stage has been defeated. -; Counts up at most to 2, and is reset if Mew is encountered. wNumMewtwoBonusCompletions:: ; 0xd62f - ds 1 + ds $1 + +wd630:: ; 0xd630 + ds $2 + +wd632:: ; 0xd632 + ds $1 + +wd633:: ; 0xd633 + ds $1 - ds $e +wd634:: ; 0xd634 + ds $1 + +wd635:: ; 0xd635 + ds $2 + +wd637:: ; 0xd637 + ds $1 + +wd638:: ; 0xd638 + ds $1 + +wd639:: ; 0xd639 + ds $1 + +wd63a:: ; 0xd63a + ds $1 + +wd63b:: ; 0xd63b + ds $1 + +wd63c:: ; 0xd63c + ds $1 + +wd63d:: ; 0xd63d + ds $1 wBlueStageForceFieldDirection:: ; 0xd63e -; Controls the direction of the arrow force field in between Cloyster and Slowpoke in the Blue Stage. -; $0 = up -; $1 = right -; $2 = down -; $3 = left - ds 1 + ds $1 + +wd63f:: ; 0xd63f + ds $1 + +wd640:: ; 0xd640 + ds $1 + +wd641:: ; 0xd641 + ds $1 + +wd642:: ; 0xd642 + ds $1 + +wd643:: ; 0xd643 + ds $1 + +wd644:: ; 0xd644 + ds $1 + +wd645:: ; 0xd645 + ds $1 + +wd646:: ; 0xd646 + ds $1 + +wd647:: ; 0xd647 + ds $1 + +wd648:: ; 0xd648 + ds $1 + +wd649:: ; 0xd649 + ds $1 + +wd64a:: ; 0xd64a + ds $1 + +wd64b:: ; 0xd64b + ds $1 + +wd64c:: ; 0xd64c + ds $1 + +wd64d:: ; 0xd64d + ds $1 + +wd64e:: ; 0xd64e + ds $1 + +wd64f:: ; 0xd64f + ds $1 + +wd650:: ; 0xd650 + ds $1 + +wd651:: ; 0xd651 + ds $1 + +wd652:: ; 0xd652 + ds $1 + +wd653:: ; 0xd653 + ds $1 + +wd654:: ; 0xd654 + ds $2 + +wd656:: ; 0xd656 + ds $1 + +wd657:: ; 0xd657 + ds $1 + +wd658:: ; 0xd658 + ds $1 + +wd659:: ; 0xd659 + ds $2 + +wd65b:: ; 0xd65b + ds $2 + +wd65d:: ; 0xd65d + ds $2 + +wd65f:: ; 0xd65f + ds $2 + +wd661:: ; 0xd661 + ds $1 + +wd662:: ; 0xd662 + ds $2 + +wd664:: ; 0xd664 + ds $2 + +wd666:: ; 0xd666 + ds $2 + +wd668:: ; 0xd668 + ds $2 + +wd66a:: ; 0xd66a + ds $1 + +wd66b:: ; 0xd66b + ds $2 + +wd66d:: ; 0xd66d + ds $2 + +wd66f:: ; 0xd66f + ds $2 + +wd671:: ; 0xd671 + ds $2 + +wd673:: ; 0xd673 + ds $1 + +wd674:: ; 0xd674 + ds $1 + +wd675:: ; 0xd675 + ds $2 + +wd677:: ; 0xd677 + ds $2 + +wd679:: ; 0xd679 + ds $2 + +wd67b:: ; 0xd67b + ds $1 + +wd67c:: ; 0xd67c + ds $1 + +wd67d:: ; 0xd67d + ds $1 + +wd67e:: ; 0xd67e + ds $2 + +wd680:: ; 0xd680 + ds $2 + +wd682:: ; 0xd682 + ds $2 + +wd684:: ; 0xd684 + ds $2 + +wd686:: ; 0xd686 + ds $1 + +wd687:: ; 0xd687 + ds $2 + +wd689:: ; 0xd689 + ds $2 + +wd68b:: ; 0xd68b + ds $2 + +wd68d:: ; 0xd68d + ds $2 + +wd68f:: ; 0xd68f + ds $1 + +wd690:: ; 0xd690 + ds $1 + +wd691:: ; 0xd691 + ds $2 + +wd693:: ; 0xd693 + ds $2 + +wd695:: ; 0xd695 + ds $1 + +wd696:: ; 0xd696 + ds $1 + +wd697:: ; 0xd697 + ds $1 + +wd698:: ; 0xd698 + ds $2 + +wd69a:: ; 0xd69a + ds $1 + +wd69b:: ; 0xd69b + ds $1 + +wd69c:: ; 0xd69c + ds $2 + +wd69e:: ; 0xd69e + ds $1 + +wd69f:: ; 0xd69f + ds $1 + +wd6a0:: ; 0xd6a0 + ds $1 + +wd6a1:: ; 0xd6a1 + ds $1 + +wd6a2:: ; 0xd6a2 + ds $1 + +wd6a3:: ; 0xd6a3 + ds $1 + +wd6a4:: ; 0xd6a4 + ds $1 + +wd6a5:: ; 0xd6a5 + ds $1 + +wd6a6:: ; 0xd6a6 + ds $1 + +wd6a7:: ; 0xd6a7 + ds $1 + +wd6a8:: ; 0xd6a8 + ds $1 + +wd6a9:: ; 0xd6a9 + ds $1 + +wd6aa:: ; 0xd6aa + ds $2 + +wd6ac:: ; 0xd6ac + ds $1 + +wd6ad:: ; 0xd6ad + ds $1 + +wd6ae:: ; 0xd6ae + ds $1 + +wd6af:: ; 0xd6af + ds $1 + +wd6b0:: ; 0xd6b0 + ds $1 + +wd6b1:: ; 0xd6b1 + ds $1 + +wd6b2:: ; 0xd6b2 + ds $1 + +wd6b3:: ; 0xd6b3 + ds $1 + +wd6b4:: ; 0xd6b4 + ds $1 + +wd6b5:: ; 0xd6b5 + ds $1 + +wd6b6:: ; 0xd6b6 + ds $4 + +wd6ba:: ; 0xd6ba + ds $1 + +wd6bb:: ; 0xd6bb + ds $2 + +wd6bd:: ; 0xd6bd + ds $1 + +wd6be:: ; 0xd6be + ds $7 + +wd6c5:: ; 0xd6c5 + ds $1 + +wd6c6:: ; 0xd6c6 + ds $7 + +wd6cd:: ; 0xd6cd + ds $1 + +wd6ce:: ; 0xd6ce + ds $7 + +wd6d5:: ; 0xd6d5 + ds $1 + +wd6d6:: ; 0xd6d6 + ds $7 + +wd6dd:: ; 0xd6dd + ds $1 + +wd6de:: ; 0xd6de + ds $7 + +wd6e5:: ; 0xd6e5 + ds $1 - ds $aa +wd6e6:: ; 0xd6e6 + ds $1 + +wd6e7:: ; 0xd6e7 + ds $2 wMeowthAnimationFrameCounter:: ; 0xd6e9 -; Counts down. When it hits 0, the next animation frame happens. - ds 1 + ds $1 + wMeowthAnimationFrame:: ; 0xd6ea -; OAM id - ds 1 + ds $1 + wMeowthAnimationFrameIndex:: ; 0xd6eb - ds 1 + ds $1 - ds 1 +wd6ec:: ; 0xd6ec + ds $1 wMeowthXPosition:: ; 0xd6ed - ds 1 -wMeowthYPosition:: ; 0xd6ee - ds 1 + ds $1 - ds 1 +wMeowthYPosition:: ; 0xd6ee + ds $2 wMeowthXMovement:: ; 0xd6f0 -; Used to move meowth horizontally. -; Value is $01 when moving right. -; Value is $ff when moving left. - ds 1 + ds $1 + wMeowthYMovement:: ; 0xd6f1 -; Used to move meowth vertically. -; Value is $01 when moving down. -; Value is $ff when moving up. - ds 1 + ds $2 + +wd6f3:: ; 0xd6f3 + ds $1 + +wd6f4:: ; 0xd6f4 + ds $1 + +wd6f5:: ; 0xd6f5 + ds $1 + +wd6f6:: ; 0xd6f6 + ds $1 + +wd6f7:: ; 0xd6f7 + ds $1 + +wd6f8:: ; 0xd6f8 + ds $1 + +wd6f9:: ; 0xd6f9 + ds $1 + +wd6fa:: ; 0xd6fa + ds $1 + +wd6fb:: ; 0xd6fb + ds $1 + +wd6fc:: ; 0xd6fc + ds $1 + +wd6fd:: ; 0xd6fd + ds $2 + +wd6ff:: ; 0xd6ff + ds $1 + +wd700:: ; 0xd700 + ds $1 + +wd701:: ; 0xd701 + ds $1 + +wd702:: ; 0xd702 + ds $1 + +wd703:: ; 0xd703 + ds $1 + +wd704:: ; 0xd704 + ds $1 - ds $1d +wd705:: ; 0xd705 + ds $1 + +wd706:: ; 0xd706 + ds $1 + +wd707:: ; 0xd707 + ds $4 + +wd70b:: ; 0xd70b + ds $1 + +wd70c:: ; 0xd70c + ds $3 wMeowthStageBonusCounter:: ; 0xd70f -; Keeps track of how many bonus points you get from collecting a coin. -; The bonus increases by 1 each time you collect a coin. -; If Meowth is hit, the bonus resets to 0. - ds 1 + ds $1 - ds 1 +wd710:: ; 0xd710 + ds $1 wMeowthStageScore:: ; 0xd711 -; Number of Meowth coins collected. - ds 1 + ds $1 + +wd712:: ; 0xd712 + ds $1 + +wd713:: ; 0xd713 + ds $1 + +wd714:: ; 0xd714 + ds $1 + +wd715:: ; 0xd715 + ds $1 + +wd716:: ; 0xd716 + ds $1 + +wd717:: ; 0xd717 + ds $1 + +wd718:: ; 0xd718 + ds $1 + +wd719:: ; 0xd719 + ds $1 + +wd71a:: ; 0xd71a + ds $1 + +wd71b:: ; 0xd71b + ds $1 + +wd71c:: ; 0xd71c + ds $2 + +wd71e:: ; 0xd71e + ds $1 + +wd71f:: ; 0xd71f + ds $1 + +wd720:: ; 0xd720 + ds $1 + +wd721:: ; 0xd721 + ds $1 + +wd722:: ; 0xd722 + ds $1 + +wd723:: ; 0xd723 + ds $1 + +wd724:: ; 0xd724 + ds $1 + +wd725:: ; 0xd725 + ds $1 - ds $2b +wd726:: ; 0xd726 + ds $1 + +wd727:: ; 0xd727 + ds $1 + +wd728:: ; 0xd728 + ds $1 + +wd729:: ; 0xd729 + ds $1 + +wd72a:: ; 0xd72a + ds $1 + +wd72b:: ; 0xd72b + ds $1 + +wd72c:: ; 0xd72c + ds $5 + +wd731:: ; 0xd731 + ds $1 + +wd732:: ; 0xd732 + ds $1 + +wd733:: ; 0xd733 + ds $1 + +wd734:: ; 0xd734 + ds $1 + +wd735:: ; 0xd735 + ds $1 + +wd736:: ; 0xd736 + ds $3 + +wd739:: ; 0xd739 + ds $1 + +wd73a:: ; 0xd73a + ds $1 + +wd73b:: ; 0xd73b + ds $1 + +wd73c:: ; 0xd73c + ds $1 wDiglettStates:: ; 0xd73d -; Each diglett has a sprite state 1 - 5. -; The animation wiggles back and forth. -; $0 = diglett has been hit -; $1 = hiding in hole -; $2 = straight up -; $3 = leaning left -; $4 = straight up -; $5 = leaning right -; $6 = getting hit - ds 31 + ds $1f wCurrentDiglett:: ; 0xd75c -; Keeps track of which diglett is being updated. - ds 1 + ds $1 wDiglettsInitializedFlag:: ; 0xd75d -; bit 0 is set after all digletts have been initialized - ds 1 + ds $1 wDiglettInitDelayCounter:: ; 0xd75e -; used to faciliate how fast the digletts are initialized - ds 1 + ds $1 - ds 2 +wd75f:: ; 0xd75f + ds $2 wDugtrioAnimationFrameCounter:: ; 0xd761 - ds 1 + ds $1 + wDugtrioAnimationFrame:: ; 0xd762 -; OAM id - ds 1 + ds $1 + wDugtrioAnimationFrameIndex:: ; 0xd763 - ds 1 + ds $1 wDugrioState:: ; 0xd764 -; Similar function as wDiglettStates. -; $0 = Dugtrio hasn't appeared yet -; $1 = 3 healthy dugtrio -; $2 = Getting hit first time -; $3 = 2 healthy dugtrio -; $4 = Getting hit second time -; $5 = 1 healthy dugtrio -; $6 = Getting hit third time -; $7 = Disappearing - ds 1 - - ds $3c + ds $1 + +wd765:: ; 0xd765 + ds $1 + +wd766:: ; 0xd766 + ds $1 + +wd767:: ; 0xd767 + ds $1 + +wd768:: ; 0xd768 + ds $3 + +wd76b:: ; 0xd76b + ds $1 + +wd76c:: ; 0xd76c + ds $1 + +wd76d:: ; 0xd76d + ds $1 + +wd76e:: ; 0xd76e + ds $2 + +wd770:: ; 0xd770 + ds $1 + +wd771:: ; 0xd771 + ds $1 + +wd772:: ; 0xd772 + ds $3 + +wd775:: ; 0xd775 + ds $1 + +wd776:: ; 0xd776 + ds $1 + +wd777:: ; 0xd777 + ds $1 + +wd778:: ; 0xd778 + ds $2 + +wd77a:: ; 0xd77a + ds $1 + +wd77b:: ; 0xd77b + ds $1 + +wd77c:: ; 0xd77c + ds $3 + +wd77f:: ; 0xd77f + ds $1 + +wd780:: ; 0xd780 + ds $1 + +wd781:: ; 0xd781 + ds $1 + +wd782:: ; 0xd782 + ds $2 + +wd784:: ; 0xd784 + ds $1 + +wd785:: ; 0xd785 + ds $1 + +wd786:: ; 0xd786 + ds $b + +wd791:: ; 0xd791 + ds $1 + +wd792:: ; 0xd792 + ds $1 + +wd793:: ; 0xd793 + ds $1 + +wd794:: ; 0xd794 + ds $1 + +wd795:: ; 0xd795 + ds $1 + +wd796:: ; 0xd796 + ds $1 + +wd797:: ; 0xd797 + ds $1 + +wd798:: ; 0xd798 + ds $1 + +wd799:: ; 0xd799 + ds $1 + +wd79a:: ; 0xd79a + ds $2 + +wd79c:: ; 0xd79c + ds $2 + +wd79e:: ; 0xd79e + ds $1 + +wd79f:: ; 0xd79f + ds $1 + +wd7a0:: ; 0xd7a0 + ds $1 wLeftTiltCounter:: ; 0xd7a1 -; Counts up to 3 and back down to time the left tilt animation - ds 1 + ds $1 + wLeftTiltReset:: ; 0xd7a2 -; Set to $1 when the left tilt button has been held down long enough - ds 1 + ds $1 + wRightTiltCounter:: ; 0xd7a3 -; Counts up to 3 and back down to time the right tilt animation - ds 1 + ds $1 + wRightTiltReset:: ; 0xd7a4 -; Set to $1 when the right tilt button has been held down long enough - ds 1 + ds $1 + wUpperTiltCounter:: ; 0xd7a5 -; Counts up to 3 and back down to time the upper tilt animation - ds 1 + ds $1 + wUpperTiltReset:: ; 0xd7a6 -; Set to $1 when the upper tilt button has been held down long enough - ds 1 + ds $1 wLeftTiltPushing:: ; 0xd7a7 -; Set to $1 when the left tilt is in the first half of its animation - ds 1 + ds $1 + wRightTiltPushing:: ; 0xd7a8 -; Set to $1 when the right tilt is in the first half of its animation - ds 1 + ds $1 + wUpperTiltPushing:: ; 0xd7a9 -; Set to $1 when the upper tilt is in the first half of its animation - ds 1 + ds $1 + +wd7aa:: ; 0xd7aa + ds $1 + +wd7ab:: ; 0xd7ab + ds $1 + +wd7ac:: ; 0xd7ac + ds $1 + +wd7ad:: ; 0xd7ad + ds $1 - ds 12 +wd7ae:: ; 0xd7ae + ds $1 + +wd7af:: ; 0xd7af + ds $1 + +wd7b0:: ; 0xd7b0 + ds $1 + +wd7b1:: ; 0xd7b1 + ds $1 + +wd7b2:: ; 0xd7b2 + ds $1 + +wd7b3:: ; 0xd7b3 + ds $1 + +wd7b4:: ; 0xd7b4 + ds $1 + +wd7b5:: ; 0xd7b5 + ds $1 wLeftFlipperAnimationState:: ; 0xd7b6 -; Counts from $0 to $f when using the left flipper. - ds 1 + ds $1 + wRightFlipperAnimationState:: ; 0xd7b7 -; Counts from $0 to $f when using the right flipper. - ds 1 + ds $1 wFlipperXCollisionAttribute:: ; 0xd7b8 -; Goes with hFlipperYCollisionAttribute - ds 1 + ds $1 wFlipperCollision:: ; 0xd7b9 -; Set to $1 when the ball is colliding with a flipper - ds 1 + ds $1 + +wd7ba:: ; 0xd7ba + ds $1 + +wd7bb:: ; 0xd7bb + ds $1 + +wd7bc:: ; 0xd7bc + ds $1 - ds 9 +wd7bd:: ; 0xd7bd + ds $1 + +wd7be:: ; 0xd7be + ds $1 + +wd7bf:: ; 0xd7bf + ds $1 + +wd7c0:: ; 0xd7c0 + ds $1 + +wd7c1:: ; 0xd7c1 + ds $1 + +wd7c2:: ; 0xd7c2 + ds $1 wSubTileBallXPos:: ; 0xd7c3 - ds 1 + ds $1 + wSubTileBallYPos:: ; 0xd7c4 - ds 1 + ds $1 wUpperLeftCollisionAttribute:: ; 0xd7c5 - ds 1 + ds $1 + wLowerLeftCollisionAttribute:: ; 0xd7c6 - ds 1 + ds $1 + wUpperRightCollisionAttribute:: ; 0xd7c7 - ds 1 + ds $1 + wLowerRightCollisionAttribute:: ; 0xd7c8 - ds 1 + ds $1 + +wd7c9:: ; 0xd7c9 + ds $10 + +wd7d9:: ; 0xd7d9 + ds $10 - ds $23 +wd7e9:: ; 0xd7e9 + ds $1 + +wd7ea:: ; 0xd7ea + ds $1 + +wd7eb:: ; 0xd7eb + ds $1 wStageCollisionMapPointer:: ; 0xd7ec -; pointer to the current collision map (always points to wStageCollisionMapPointer, except when loading new attributes) - ds 2 + ds $2 + wStageCollisionMapBank:: ; 0xd7ee -; holds bank of current collision map (always $00, except when loading new attributes) - ds 1 + ds $1 wStageCollisionMasksPointer:: ; 0xd7ef -; Pointer to the current collision masks array - ds 2 + ds $2 + wStageCollisionMasksBank:: ; 0xd7f1 -; Holds bank of current collision masks array - ds 1 + ds $1 + +wd7f2:: ; 0xd7f2 + ds $1 + +wd7f3:: ; 0xd7f3 + ds $1 - ds 7 +wd7f4:: ; 0xd7f4 + ds $1 + +wd7f5:: ; 0xd7f5 + ds $1 + +wd7f6:: ; 0xd7f6 + ds $1 + +wd7f7:: ; 0xd7f7 + ds $1 + +wd7f8:: ; 0xd7f8 + ds $1 wInGameMenuIndex:: ; 0xd7f9 - ds 1 + ds $1 + +wd7fa:: ; 0xd7fa + ds $1 + +wd7fb:: ; 0xd7fb + ds $1 + +wd7fc:: ; 0xd7fc + ds $1 + +wd7fd:: ; 0xd7fd + ds $1 + +wd7fe:: ; 0xd7fe + ds $2 + +wSFXTimer:: ; 0xd800 + ds $1 + +wd801:: ; 0xd801 + ds $1 + +wOAMBufferSize:: ; 0xd802 + ds $1 + +wd803:: ; 0xd803 + ds $1 + +wd804:: ; 0xd804 + ds $1 + +wd805:: ; 0xd805 + ds $1 + +wd806:: ; 0xd806 + ds $1 + +wd807:: ; 0xd807 + ds $1 - ds $61 +wd808:: ; 0xd808 + ds $1 + +wd809:: ; 0xd809 + ds $1 + +wd80a:: ; 0xd80a + ds $2 + +wd80c:: ; 0xd80c + ds $1 + +wd80d:: ; 0xd80d + ds $1 + +wd80e:: ; 0xd80e + ds $1 + +wd80f:: ; 0xd80f + ds $1 + +wd810:: ; 0xd810 + ds $1 + +wd811:: ; 0xd811 + ds $1 + +wd812:: ; 0xd812 + ds $18 + +wd82a:: ; 0xd82a + ds $7 + +wd831:: ; 0xd831 + ds $c + +wd83d:: ; 0xd83d + ds $9 + +wd846:: ; 0xd846 + ds $2 + +wd848:: ; 0xd848 + ds $1 + +wd849:: ; 0xd849 + ds $1 + +wd84a:: ; 0xd84a + ds $1 + +wd84b:: ; 0xd84b + ds $4 + +wd84f:: ; 0xd84f + ds $c wCurrentSongBank:: ; 0xd85b - ds 1 + ds $2 + +wd85d:: ; 0xd85d + ds $1 + +wd85e:: ; 0xd85e + ds $1 + +wd85f:: ; 0xd85f + ds $1 + +wd860:: ; 0xd860 + ds $1 - ds $95 +wd861:: ; 0xd861 + ds $1 + +wd862:: ; 0xd862 + ds $1 + +wd863:: ; 0xd863 + ds $1 + +wd864:: ; 0xd864 + ds $1 + +wd865:: ; 0xd865 + ds $1 + +wd866:: ; 0xd866 + ds $1 + +wd867:: ; 0xd867 + ds $1 + +wd868:: ; 0xd868 + ds $1 + +wd869:: ; 0xd869 + ds $1 + +wd86a:: ; 0xd86a + ds $1 + +wd86b:: ; 0xd86b + ds $1 + +wd86c:: ; 0xd86c + ds $1 + +wd86d:: ; 0xd86d + ds $1 + +wd86e:: ; 0xd86e + ds $1d + +wd88b:: ; 0xd88b + ds $12 + +wd89d:: ; 0xd89d + ds $a + +wd8a7:: ; 0xd8a7 + ds $1 + +wd8a8:: ; 0xd8a8 + ds $1 + +wd8a9:: ; 0xd8a9 + ds $1 + +wd8aa:: ; 0xd8aa + ds $1 + +wd8ab:: ; 0xd8ab + ds $1 + +wd8ac:: ; 0xd8ac + ds $1 + +wd8ad:: ; 0xd8ad + ds $1 + +wd8ae:: ; 0xd8ae + ds $1 + +wd8af:: ; 0xd8af + ds $1 + +wd8b0:: ; 0xd8b0 + ds $1 + +wd8b1:: ; 0xd8b1 + ds $1 + +wd8b2:: ; 0xd8b2 + ds $1 + +wd8b3:: ; 0xd8b3 + ds $1 + +wd8b4:: ; 0xd8b4 + ds $1 + +wd8b5:: ; 0xd8b5 + ds $1 + +wd8b6:: ; 0xd8b6 + ds $1 + +wd8b7:: ; 0xd8b7 + ds $1 + +wd8b8:: ; 0xd8b8 + ds $1 + +wd8b9:: ; 0xd8b9 + ds $1 + +wd8ba:: ; 0xd8ba + ds $1 + +wd8bb:: ; 0xd8bb + ds $1 + +wd8bc:: ; 0xd8bc + ds $1 + +wd8bd:: ; 0xd8bd + ds $1 + +wd8be:: ; 0xd8be + ds $1 + +wd8bf:: ; 0xd8bf + ds $1 + +wd8c0:: ; 0xd8c0 + ds $1 + +wd8c1:: ; 0xd8c1 + ds $1 + +wd8c2:: ; 0xd8c2 + ds $1 + +wd8c3:: ; 0xd8c3 + ds $1 + +wd8c4:: ; 0xd8c4 + ds $1 + +wd8c5:: ; 0xd8c5 + ds $1 + +wd8c6:: ; 0xd8c6 + ds $1 + +wd8c7:: ; 0xd8c7 + ds $1 + +wd8c8:: ; 0xd8c8 + ds $2 + +wd8ca:: ; 0xd8ca + ds $1 + +wd8cb:: ; 0xd8cb + ds $1 + +wd8cc:: ; 0xd8cc + ds $1 + +wd8cd:: ; 0xd8cd + ds $1 + +wd8ce:: ; 0xd8ce + ds $1 + +wd8cf:: ; 0xd8cf + ds $1 + +wd8d0:: ; 0xd8d0 + ds $1 + +wd8d1:: ; 0xd8d1 + ds $1 + +wd8d2:: ; 0xd8d2 + ds $1 + +wd8d3:: ; 0xd8d3 + ds $1 + +wd8d4:: ; 0xd8d4 + ds $1 + +wd8d5:: ; 0xd8d5 + ds $1 + +wd8d6:: ; 0xd8d6 + ds $1 + +wd8d7:: ; 0xd8d7 + ds $1 + +wd8d8:: ; 0xd8d8 + ds $3 + +wd8db:: ; 0xd8db + ds $1 + +wd8dc:: ; 0xd8dc + ds $1 + +wd8dd:: ; 0xd8dd + ds $1 + +wd8de:: ; 0xd8de + ds $2 + +wd8e0:: ; 0xd8e0 + ds $1 + +wd8e1:: ; 0xd8e1 + ds $1 + +wd8e2:: ; 0xd8e2 + ds $1 + +wd8e3:: ; 0xd8e3 + ds $1 + +wd8e4:: ; 0xd8e4 + ds $1 + +wd8e5:: ; 0xd8e5 + ds $1 + +wd8e6:: ; 0xd8e6 + ds $1 + +wd8e7:: ; 0xd8e7 + ds $1 + +wd8e8:: ; 0xd8e8 + ds $1 + +wd8e9:: ; 0xd8e9 + ds $1 + +wd8ea:: ; 0xd8ea + ds $1 + +wd8eb:: ; 0xd8eb + ds $1 + +wd8ec:: ; 0xd8ec + ds $1 + +wd8ed:: ; 0xd8ed + ds $1 + +wd8ee:: ; 0xd8ee + ds $1 + +wd8ef:: ; 0xd8ef + ds $1 + +wd8f0:: ; 0xd8f0 + ds $1 wCurrentScreen:: ; 0xd8f1 -; The game is driven by state machines. This is the current screen. - ds 1 + ds $1 + wScreenState:: ; 0xd8f2 -; The game is driven by state machines. This is the current state for the current screen. - ds 1 + ds $4 - ds 22 +wd8f6:: ; 0xd8f6 + ds $12 + +wd908:: ; 0xd908 + ds $1 wTitleScreenCursorSelection:: ; 0xd909 -; 0 = Game Start -; 1 = PokeDex -; 2 = Option - ds 1 + ds $1 wTitleScreenGameStartCursorSelection:: ; 0xd90a -; 0 = New Game -; 1 = Continue - ds 1 - - ds 1 + ds $2 wTitleScreenBlinkAnimationFrame:: ; 0xd90c -; Pikachu's blinking animation is looped through frames. This keeps track of the current frame. - ds 1 + ds $1 wTitleScreenBlinkAnimationCounter:: ; 0xd90d -; Counts down. When it hits 0, wTitleScreenBlinkAnimationFrame is incremented. - ds 1 + ds $1 wTitleScreenBouncingBallAnimationFrame:: ; 0xd90e -; The bouncing Pokeball on the title screen has a 6-frame animation. This keeps track of the current frame. - ds 1 + ds $1 wTitleScreenPokeballAnimationCounter:: ; 0xd90f - ds 1 + ds $1 + +wd910:: ; 0xd910 + ds $1 - ds 2 +wd911:: ; 0xd911 + ds $1 wFieldSelectBlinkingBorderTimer:: ; 0xd912 -; Number of frames to blink the field select screen border after the player chooses a field. - ds 1 + ds $1 -wSelectedFieldIndex:: ; d913 -; $0 if player is hovering cursor over Red Stage -; $1 if player is hovering cursor over Blue Stage - ds 1 +wSelectedFieldIndex:: ; 0xd913 + ds $1 wFieldSelectBlinkingBorderFrame:: ; 0xd914 -; The blinking border's current animation frame. - ds 1 + ds $1 + +wd915:: ; 0xd915 + ds $1 + +wd916:: ; 0xd916 + ds $1 - ds 5 +wd917:: ; 0xd917 + ds $1 + +wd918:: ; 0xd918 + ds $1 + +wd919:: ; 0xd919 + ds $1 + +wSoundTestCurrentBackgroundMusic:: ; 0xd91a + ds $1 -wSoundTestCurrentBackgroundMusic:: ; d91a - ds 1 wSoundTextCurrentSoundEffect:: ; 0xd91b - ds 1 + ds $1 + +wd91c:: ; 0xd91c + ds $1 + +wd91d:: ; 0xd91d + ds $1 + +wd91e:: ; 0xd91e + ds $1 + +wd91f:: ; 0xd91f + ds $1 + +wd920:: ; 0xd920 + ds $1 + +wd921:: ; 0xd921 + ds $1 + +wd922:: ; 0xd922 + ds $14 + +wd936:: ; 0xd936 + ds $8 + +wd93e:: ; 0xd93e + ds $1 - ds 44 +wd93f:: ; 0xd93f + ds $8 -wKeyConfigs:: ; 0xd948 -; each function map to two joypad buttons (see joy_constants.asm) +wd947:: ; 0xd947 + ds $1 + +wKeyConfigs:: wKeyConfigBallStart:: ; 0xd948 - ds 2 + ds $2 + wKeyConfigLeftFlipper:: ; 0xd94a - ds 2 + ds $2 + wKeyConfigRightFlipper:: ; 0xd94c - ds 2 + ds $2 + wKeyConfigLeftTilt:: ; 0xd94e - ds 2 + ds $2 + wKeyConfigRightTilt:: ; 0xd950 - ds 2 + ds $2 + wKeyConfigUpperTilt:: ; 0xd952 - ds 2 + ds $2 + wKeyConfigMenu:: ; 0xd954 - ds 2 + ds $2 + +wd956:: ; 0xd956 + ds $1 + +wd957:: ; 0xd957 + ds $1 - ds 3 +wd958:: ; 0xd958 + ds $1 wCurPokedexIndex:: ; 0xd959 -; Stores the mon index of which pokemon the cursor is on in the Pokedex screen. - ds 1 + ds $1 + wPokedexOffset:: ; 0xd95a -; Stores the number of pokedex entries that are above the current displayed pokemon entries. - ds 1 + ds $1 + +wd95b:: ; 0xd95b + ds $1 - ds 7 +wd95c:: ; 0xd95c + ds $1 + +wd95d:: ; 0xd95d + ds $1 + +wd95e:: ; 0xd95e + ds $1 + +wd95f:: ; 0xd95f + ds $1 + +wd960:: ; 0xd960 + ds $1 + +wd961:: ; 0xd961 + ds $1 wPokedexFlags:: ; 0xd962 -; Each pokemon is represented by one byte in the normal Pokedex order -; byte == 0: mon hasn't been seen -; byte == 1: mon has been seen -; byte >= 2: mon has been captured - ds 151 + ds $96 + +wd9f8:: ; 0xd9f8 + ds $1 + wNumPokemonSeen:: ; 0xd9f9 - ds 2 + ds $2 + wNumPokemonOwned:: ; 0xd9fb - ds 2 + ds $2 + +high_scores: MACRO +\1Points:: ds 6 +\1Name:: ds 3 +\1Unknown0x09:: ds 4 +ENDM wRedHighScores:: ; 0xd9fd -wRedHighScore1Points:: ; 0xd9fd - ds 6 -wRedHighScore1Name:: ; 0xda03 - ds 3 - ds 4 - -wRedHighScore2Points:: ; 0xda0a - ds 6 -wRedHighScore2Name:: ; 0xda10 - ds 3 - ds 4 - -wRedHighScore3Points:: ; 0xda17 - ds 6 -wRedHighScore3Name:: ; 0xda1d - ds 3 - ds 4 - -wRedHighScore4Points:: ; 0xda24 - ds 6 -wRedHighScore4Name:: ; 0xda2a - ds 3 - ds 4 - -wRedHighScore5Points:: ; 0xda31 - ds 6 -wRedHighScore5Name:: ; 0xda37 - ds 3 - ds 4 - -wBlueHighScores:: ; 0xda3e -wBlueHighScore1Points:: ; 0xda3e - ds 6 -wBlueHighScore1Name:: ; 0xda44 - ds 3 - ds 4 - -wBlueHighScore2Points:: ; 0xda4b - ds 6 -wBlueHighScore2Name:: ; 0xda52 - ds 3 - ds 4 - -wBlueHighScore3Points:: ; 0xda58 - ds 6 -wBlueHighScore3Name:: ; 0xda5e - ds 3 - ds 4 - -wBlueHighScore4Points:: ; 0xda65 - ds 6 -wBlueHighScore4Name:: ; 0xda6b - ds 3 - ds 4 - -wBlueHighScore5Points:: ; 0xda72 - ds 6 -wBlueHighScore5Name:: ; 0xda78 - ds 3 - ds 4 - - ds 4 + high_scores wRedHighScore1 + high_scores wRedHighScore2 + high_scores wRedHighScore3 + high_scores wRedHighScore4 + high_scores wRedHighScore5 + +wBlueHighScores:: ; 0xd9fd + high_scores wBlueHighScore1 + high_scores wBlueHighScore2 + high_scores wBlueHighScore3 + high_scores wBlueHighScore4 + high_scores wBlueHighScore5 + +wda7f:: ; 0xda7f + ds $1 + +wda80:: ; 0xda80 + ds $1 + +wda81:: ; 0xda81 + ds $1 + +wda82:: ; 0xda82 + ds $1 wHighScoresStage:: ; 0xda83 -; Current stage's high scores. -; 0 = Red Stage -; 1 = Blue stage - ds 1 + ds $1 wHighScoresArrowAnimationCounter:: ; 0xda84 -; Counts up to $28 and wraps around to $0 to control the animation of the -; arrows in the bottom corner of the high scores screen. - ds 1 + ds $1 - ds 2 +wda85:: ; 0xda85 + ds $1 + +wda86:: ; 0xda86 + ds $1 wSendHighScoresAnimationFrameCounter:: ; 0xda87 - ds 1 + ds $1 + wSendHighScoresAnimationFrame:: ; 0xda88 - ds 1 + ds $1 + wSendHighScoresAnimationFrameIndex:: ; 0xda89 - ds 1 + ds $1 + +wda8a:: ; 0xda8a + ds $18 + +wdaa2:: ; 0xdaa2 + ds $1 + +wdaa3:: ; 0xdaa3 + ds $20a + +wdcad:: ; 0xdcad + ds $53 + +wdd00:: ; 0xdd00 + ds $1 + +wdd01:: ; 0xdd01 + ds $32 + +wdd33:: ; 0xdd33 + ds $32 + +wdd65:: ; 0xdd65 + ds $32 + +wdd97:: ; 0xdd97 + ds $32 + +wddc9:: ; 0xddc9 + ds $2 + +wddcb:: ; 0xddcb + ds $30 + +wddfb:: ; 0xddfb + ds $2 + +wddfd:: ; 0xddfd + ds $24 + +wde21:: ; 0xde21 + ds $c + +wde2d:: ; 0xde2d + ds $2 + +wde2f:: ; 0xde2f + ds $30 + +wde5f:: ; 0xde5f + ds $2 + +wde61:: ; 0xde61 + ds $24 + +wde85:: ; 0xde85 + ds $c + +wde91:: ; 0xde91 + ds $1 + +wde92:: ; 0xde92 + ds $1 + +wde93:: ; 0xde93 + ds $1 + +wde94:: ; 0xde94 + ds $1 + +wde95:: ; 0xde95 + ds $1 + +wde96:: ; 0xde96 + ds $1 + +wde97:: ; 0xde97 + ds $1 + +wde98:: ; 0xde98 + ds $1 + +wde99:: ; 0xde99 + ds $1 + +wde9a:: ; 0xde9a + ds $1 + +wde9b:: ; 0xde9b + ds $1 + +wde9c:: ; 0xde9c + ds $1 + +wde9d:: ; 0xde9d + ds $1 + +wde9e:: ; 0xde9e + ds $1 + +wde9f:: ; 0xde9f + ds $2 + +wdea1:: ; 0xdea1 + ds $1 + +wdea2:: ; 0xdea2 + ds $1 + +wdea3:: ; 0xdea3 + ds $1 + +wdea4:: ; 0xdea4 + ds $1 + +wdea5:: ; 0xdea5 + ds $3 + +wdea8:: ; 0xdea8 + ds $1 + +wdea9:: ; 0xdea9 + ds $1 + +wdeaa:: ; 0xdeaa + ds $1 + +wdeab:: ; 0xdeab + ds $1 + +wdeac:: ; 0xdeac + ds $1 + +wdead:: ; 0xdead + ds $1 + +wdeae:: ; 0xdeae + ds $2 + +wdeb0:: ; 0xdeb0 + ds $50 + +wStack:: ; 0xdf00 + ds $ff + +wdfff:: ; 0xdfff + ds $1 + |