summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-03-14 18:23:07 -0700
committerGitHub <noreply@github.com>2017-03-14 18:23:07 -0700
commit5791b7b524fd1c17f7af4dd44472bec7d9941c3e (patch)
tree7bb6ab16b5c74e39882480d562be735360b307e8
parentb5de46b8902c37562eb05d02f7166e2d3c231224 (diff)
parent8bb81d151ab0647ea4e944f59c5d03967a48b8d9 (diff)
Merge pull request #8 from PikalaxALT/master
Hardcoded pointers
-rwxr-xr-xMakefile8
-rwxr-xr-xaudio/engine_0f.asm2967
-rwxr-xr-xaudio/engine_10.asm19
-rwxr-xr-xaudio/engine_11.asm17
-rwxr-xr-xaudio/engine_12.asm17
-rwxr-xr-xaudio/engine_13.asm13
-rwxr-xr-xaudio/pikapcm.asm141
-rwxr-xr-xcharmap.asm41
-rwxr-xr-xcompare.sh12
-rwxr-xr-xconstants.asm1
-rwxr-xr-xconstants/evolution_line_constants.asm160
-rwxr-xr-xconstants/joy_constants.asm4
-rwxr-xr-xconstants/map_constants.asm36
-rwxr-xr-xconstants/pokemon_constants.asm302
-rwxr-xr-xdata/blue_wild_mons.asm770
-rwxr-xr-xdata/catchem_timer_values.asm302
-rwxr-xr-xdata/diglett_stage/diglett_stage_animation_data.asm3600
-rwxr-xr-xdata/evolution_line_starts.asm79
-rwxr-xr-xdata/evolution_lines.asm158
-rwxr-xr-xdata/evolution_methods.asm758
-rwxr-xr-xdata/mon_names.asm302
-rwxr-xr-xdata/red_wild_mons.asm770
-rw-r--r--data/tilt/left_onlybin0 -> 1024 bytes
-rw-r--r--data/tilt/right_onlybin0 -> 1024 bytes
-rw-r--r--data/tilt/up_leftbin0 -> 1024 bytes
-rw-r--r--data/tilt/up_onlybin0 -> 1024 bytes
-rw-r--r--data/tilt/up_rightbin0 -> 1024 bytes
-rwxr-xr-xdata/unknown_17679.asm525
-rwxr-xr-xgbhw.asm124
-rw-r--r--gfx/stage/catch.w48.pngbin0 -> 135 bytes
-rw-r--r--gfx/stage/e_acute_color.pngbin0 -> 82 bytes
-rw-r--r--gfx/stage/e_acute_mono.pngbin0 -> 82 bytes
-rw-r--r--gfx/stage/menu_symbols.pngbin109 -> 107 bytes
-rwxr-xr-xgfx/unknown/a8800.interleave.w32.pngbin0 -> 385 bytes
-rw-r--r--gfx/unknown/d61a0.pngbin0 -> 74 bytes
-rw-r--r--gfx/unknown/d61b0.pngbin0 -> 71 bytes
-rw-r--r--gfx/unknown/d61d0.pngbin0 -> 74 bytes
-rw-r--r--gfx/unknown/d61e0.pngbin0 -> 73 bytes
-rw-r--r--gfx/unknown/d63a0.pngbin0 -> 73 bytes
-rw-r--r--gfx/unknown/d63b0.pngbin0 -> 71 bytes
-rw-r--r--gfx/unknown/d63d0.pngbin0 -> 74 bytes
-rw-r--r--gfx/unknown/d63e0.pngbin0 -> 73 bytes
-rw-r--r--gfx/unknown/d6400.pngbin0 -> 173 bytes
-rw-r--r--gfx/unknown/d6410.pngbin0 -> 80 bytes
-rw-r--r--gfx/unknown/d6430.pngbin0 -> 87 bytes
-rw-r--r--gfx/unknown/d6440.pngbin0 -> 84 bytes
-rw-r--r--gfx/unknown/d6480.pngbin0 -> 80 bytes
-rwxr-xr-xhome.asm5654
-rwxr-xr-xhome/save.asm170
-rwxr-xr-xhome/serial.asm782
-rwxr-xr-xhome/sgb.asm277
-rwxr-xr-xhome/text.asm708
-rwxr-xr-xhram.asm44
-rwxr-xr-xmacros.asm57
-rwxr-xr-xmacros/sound.asm11
-rwxr-xr-xmain.asm88362
m---------pokemon-reverse-engineering-tools0
-rwxr-xr-xsram.asm15
-rwxr-xr-xtext.asm400
-rwxr-xr-xvram.asm10
-rwxr-xr-xwram.asm2720
61 files changed, 55745 insertions, 54591 deletions
diff --git a/Makefile b/Makefile
index c7e15d8..43d9a51 100755
--- a/Makefile
+++ b/Makefile
@@ -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
new file mode 100644
index 0000000..d68143e
--- /dev/null
+++ b/data/tilt/left_only
Binary files differ
diff --git a/data/tilt/right_only b/data/tilt/right_only
new file mode 100644
index 0000000..af9472d
--- /dev/null
+++ b/data/tilt/right_only
Binary files differ
diff --git a/data/tilt/up_left b/data/tilt/up_left
new file mode 100644
index 0000000..70ebbcc
--- /dev/null
+++ b/data/tilt/up_left
Binary files differ
diff --git a/data/tilt/up_only b/data/tilt/up_only
new file mode 100644
index 0000000..beb2d4e
--- /dev/null
+++ b/data/tilt/up_only
Binary files differ
diff --git a/data/tilt/up_right b/data/tilt/up_right
new file mode 100644
index 0000000..75987a5
--- /dev/null
+++ b/data/tilt/up_right
Binary files differ
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
new file mode 100644
index 0000000..0090bb0
--- /dev/null
+++ b/gfx/stage/catch.w48.png
Binary files differ
diff --git a/gfx/stage/e_acute_color.png b/gfx/stage/e_acute_color.png
new file mode 100644
index 0000000..1921813
--- /dev/null
+++ b/gfx/stage/e_acute_color.png
Binary files differ
diff --git a/gfx/stage/e_acute_mono.png b/gfx/stage/e_acute_mono.png
new file mode 100644
index 0000000..bf129fb
--- /dev/null
+++ b/gfx/stage/e_acute_mono.png
Binary files differ
diff --git a/gfx/stage/menu_symbols.png b/gfx/stage/menu_symbols.png
index 6c03769..823d2f9 100644
--- a/gfx/stage/menu_symbols.png
+++ b/gfx/stage/menu_symbols.png
Binary files differ
diff --git a/gfx/unknown/a8800.interleave.w32.png b/gfx/unknown/a8800.interleave.w32.png
new file mode 100755
index 0000000..55c07e6
--- /dev/null
+++ b/gfx/unknown/a8800.interleave.w32.png
Binary files differ
diff --git a/gfx/unknown/d61a0.png b/gfx/unknown/d61a0.png
new file mode 100644
index 0000000..1ae5327
--- /dev/null
+++ b/gfx/unknown/d61a0.png
Binary files differ
diff --git a/gfx/unknown/d61b0.png b/gfx/unknown/d61b0.png
new file mode 100644
index 0000000..4a07793
--- /dev/null
+++ b/gfx/unknown/d61b0.png
Binary files differ
diff --git a/gfx/unknown/d61d0.png b/gfx/unknown/d61d0.png
new file mode 100644
index 0000000..5fb300d
--- /dev/null
+++ b/gfx/unknown/d61d0.png
Binary files differ
diff --git a/gfx/unknown/d61e0.png b/gfx/unknown/d61e0.png
new file mode 100644
index 0000000..bebd547
--- /dev/null
+++ b/gfx/unknown/d61e0.png
Binary files differ
diff --git a/gfx/unknown/d63a0.png b/gfx/unknown/d63a0.png
new file mode 100644
index 0000000..fdb2920
--- /dev/null
+++ b/gfx/unknown/d63a0.png
Binary files differ
diff --git a/gfx/unknown/d63b0.png b/gfx/unknown/d63b0.png
new file mode 100644
index 0000000..2b18d63
--- /dev/null
+++ b/gfx/unknown/d63b0.png
Binary files differ
diff --git a/gfx/unknown/d63d0.png b/gfx/unknown/d63d0.png
new file mode 100644
index 0000000..cc2e370
--- /dev/null
+++ b/gfx/unknown/d63d0.png
Binary files differ
diff --git a/gfx/unknown/d63e0.png b/gfx/unknown/d63e0.png
new file mode 100644
index 0000000..ef72665
--- /dev/null
+++ b/gfx/unknown/d63e0.png
Binary files differ
diff --git a/gfx/unknown/d6400.png b/gfx/unknown/d6400.png
new file mode 100644
index 0000000..a7b1bbe
--- /dev/null
+++ b/gfx/unknown/d6400.png
Binary files differ
diff --git a/gfx/unknown/d6410.png b/gfx/unknown/d6410.png
new file mode 100644
index 0000000..e09c4ea
--- /dev/null
+++ b/gfx/unknown/d6410.png
Binary files differ
diff --git a/gfx/unknown/d6430.png b/gfx/unknown/d6430.png
new file mode 100644
index 0000000..5ff8267
--- /dev/null
+++ b/gfx/unknown/d6430.png
Binary files differ
diff --git a/gfx/unknown/d6440.png b/gfx/unknown/d6440.png
new file mode 100644
index 0000000..ee265f8
--- /dev/null
+++ b/gfx/unknown/d6440.png
Binary files differ
diff --git a/gfx/unknown/d6480.png b/gfx/unknown/d6480.png
new file mode 100644
index 0000000..17c173a
--- /dev/null
+++ b/gfx/unknown/d6480.png
Binary files differ
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
+
diff --git a/hram.asm b/hram.asm
index 9a6f085..36e2800 100755
--- a/hram.asm
+++ b/hram.asm
@@ -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.
diff --git a/macros.asm b/macros.asm
index f30995f..51091bc 100755
--- a/macros.asm
+++ b/macros.asm
@@ -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
-
diff --git a/main.asm b/main.asm
index d6e3aa2..5d1f25a 100755
--- a/main.asm
+++ b/main.asm
@@ -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@"
diff --git a/vram.asm b/vram.asm
index 23a4415..3bf8abf 100755
--- a/vram.asm
+++ b/vram.asm
@@ -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
diff --git a/wram.asm b/wram.asm
index 3c31929..a0c922c 100755
--- a/wram.asm
+++ b/wram.asm
@@ -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
+